Forge
Forge is Shoehorn’s self-service workflow engine. Teams use it to scaffold new services, create repositories, provision infrastructure, and run multi-step automations through a form-based UI with built-in approval workflows.
Concepts
Section titled “Concepts”A mold is a reusable YAML template that defines inputs, steps, and actions. Molds live in your repository under .shoehorn/molds/ and are discovered automatically by the crawler. Once indexed, they appear in the Forge section of the portal.
A run is a single execution of a mold. Runs track status in real time:
| Status | Description |
|---|---|
pending | Queued for execution |
pending_approval | Waiting for approval before execution |
executing | Currently running steps |
completed | All steps finished successfully |
failed | A step encountered an error |
cancelled | Cancelled by the user |
Approval workflows
Section titled “Approval workflows”Molds can require approval before execution. You define who needs to approve and how many approvals are needed. Runs enter pending_approval status until all approval steps are satisfied.
Using Forge
Section titled “Using Forge”- Open Forge in the sidebar
- Browse or search for a mold
- Click the mold card to view its details and input form
- Fill in the required fields, the form validates as you type
- Click the primary action button to create a run
- Monitor progress in the Events tab on the run detail page
Use Dry Run to validate inputs without executing the steps.
Use an Idempotency Key to prevent duplicate runs when retrying.
Two step formats
Section titled “Two step formats”Molds support two step formats. The engine detects which one you are using automatically.
Scaffolder steps use action: and are best for GitHub operations (create repos, files, topics, PRs). All five GitHub actions are idempotent, safe to re-run.
Workflow steps use adapter: and are best for multi-system orchestration (HTTP calls, catalog lookups, logging). Steps support explicit dependencies and conditional execution.
Creating molds
Section titled “Creating molds”For the complete guide on writing molds, see:
- Creating Molds, mold structure, scaffolder actions, workflow adapters, input schemas, conditional fields, approval flows, and complete examples
- Approval Workflows, configuring multi-step approval chains
Permissions
Section titled “Permissions”| Role | Can do |
|---|---|
| Any authenticated user | Browse molds, run workflows, cancel/retry own runs |
| Approver (listed in approval flow) | Approve or reject pending approval requests |
| Admin | Manage all molds, cancel/retry any run |