forge
Clone forge-starter
3 skills todayprovision-app · add-a-feature · frontend-design
24 actionsone per capability, assumed
4 readsresources · events · logs · app-events

Skill actions

What a Builder says, the skill action it becomes, and the exact ./forge call the skill makes — the mapping is the skill. Three skills exist today; the rest are planned increments.

the Builder says…skill actionthe exact CLI callcapability
Create a new forge app called hello.forge → initialize-app./forge init app --name helloPOST /capabilities/initialize-app · control
Add a Postgres database to hello.forge → provision-environment./forge provision --app hello --with-postgresPOST /capabilities/provision-environment · control
Install hello's dependencies.forge → install-dependencies./forge install --app helloPOST /capabilities/install-dependencies · control
Run hello.forge → run-dev-server./forge dev --app hello [--stop | --status]POST /capabilities/run-dev-server · control
Build hello.forge → build./forge build --app helloPOST /capabilities/build · control
Run hello's tests.forge → test./forge test --app helloPOST /capabilities/test · control
Lint hello.forge → lint./forge lint --app helloPOST /capabilities/lint · control
Is hello healthy? What jobs does it have?forge → inspect./forge inspect health --app helloPOST /capabilities/inspect · both
Check that hello.example.com is serving correctly.forge → verifyplanned./forge verify --app hello --host hello.example.comPOST /capabilities/verify · both
Why did that build fail?forge → explain-failure./forge explain --resource res_01J…POST /capabilities/explain-failure · control
Plan a projects page for hello.forge → generate-feature-plan./forge plan --app hello --goal "a projects page"POST /capabilities/generate-feature-plan · control
Store hello's SMTP URL as a secret.forge → set-secretplanned./forge secrets set --app hello --name SMTP_URL --from-env SMTP_URLPOST /capabilities/set-secret · both
Remove hello's SMTP secret.forge → unset-secretplanned./forge secrets unset --app hello --name SMTP_URLPOST /capabilities/unset-secret · both
Schedule a nightly digest job for hello that POSTs to /api/cron/nightly-digest every 24h.forge → schedule-jobplanned./forge schedule --app hello --name nightly-digest --target /api/cron/nightly-digest --every 24hPOST /capabilities/schedule-job · both
Deploy hello.forge → deployplanned./forge deploy --app helloPOST /capabilities/deploy · control
Get hello ready for production at hello.example.com.forge → productionizeplanned./forge productionize --app hello --host hello.example.comPOST /capabilities/productionize · control
Release hello to production.forge → releaseplanned./forge release --app helloPOST /capabilities/release · control
(your app calls this at runtime)forge → agent-runplanned(HTTP only — not a skill action)POST /capabilities/agent-run · data
Send the verification email to this user.forge → send-emailplanned./forge email send --app hello --to … --template verify-emailPOST /capabilities/send-email · data
(your app calls this through POST /connect/:provider/send)forge → send-messageplanned(HTTP only — not a skill action)POST /capabilities/send-message · data
Send hello's traces and metrics to my collector.forge → setup-observabilityplanned(HTTP only — not a skill action)POST /capabilities/setup-observability · both
Set up dashboards and alerts for hello.forge → provision-monitoringplanned./forge provision-monitoring --dir monitoring --public-host grafana.example.comPOST /capabilities/provision-monitoring · control
Run the core eval suite against hello's MCP server.forge → evalplanned./forge eval suites/core.json --app hello --mcp-url https://hello.example.com/mcpPOST /capabilities/eval · control
Did the last release actually reach production?forge → delivery-checkplanned(HTTP only — not a skill action)POST /capabilities/delivery-check · control

Reads the skill uses to answer questions

the Builder asks…readroute
“What did you make?” “What is running?”forge → resourcesGET /resources?app_id&type&owner
“What happened?” “Why did that fail?”forge → events · forge → logsGET /events · GET /logs/:resourceId
“What happened to this user?”forge → app-eventsGET /app-events?owner&subject&type
“Is it healthy?”forge → inspect healthPOST /capabilities/inspect {type:'health'}
The three that exist

provision-app drives init → provision → install → build → test → lint and diagnoses with explain. add-a-feature runs spec → design → implement → validate → verify. frontend-design keeps the UI from reading as a template.

The rule

A skill never assumes a global install and never runs docker, npm or node itself: it runs the ./forge that ships in the starter, branches on the JSON status, and never reads app source to check state.