Scafld
Run existing scafld v2 lifecycle commands under runx governance.From its SKILL.md
npx -y skills add runxhq/runx --skill scafldAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
SKILL.md
4.0 KB, ~1.0k tokens by cl100k_base, as published. Nobody here has run it
scafld
Use this skill when runx needs to govern an existing scafld lifecycle or projection command.
The skill does not replace scafld. It calls the scafld 2.4.0+ CLI with explicit argv, requires native JSON output for machine-readable commands, records the runx receipt for the hop, and lets the graph define which command is allowed at each step.
Lifecycle
scafld v2 manages code-change work through a linear lifecycle:
draft -> approved -> active -> review -> completed/failed/cancelled
Specs are Markdown files under .scafld/specs/:
drafts/- draft specsapproved/- approved specs ready to buildactive/- active or review-stage specsarchive/YYYY-MM/- completed, failed, or cancelled specs
The supported commands are:
init- bootstrap a scafld workspace.plan <task-id>- create.scafld/specs/drafts/<task-id>.md.harden <task-id>- open a hardening round before approval.harden <task-id> --mark-passed- close the current hardening round.validate <task-id>- validate the Markdown spec shape.approve <task-id>- move a draft into the approved lane.build <task-id>- activate approved work, run acceptance, and write evidence.build_to_review <task-id>- repeatedly run nativescafld build <task-id> --jsonuntil scafld reports statusreview, stopping on the first native build failure or blocker.exec <task-id>- run the execution path for the current task.review <task-id>- run scafld's native adversarial review gate.complete <task-id>- archive reviewed work after the native gate passes.status <task-id>- inspect native task state.list- list native task specs.report- aggregate native run/spec metrics.handoff <task-id>- render model-facing Markdown transport.fail <task-id>andcancel <task-id>- archive incomplete work.
Branch creation, issue updates, PR creation, and CI publication are wrapper responsibilities. scafld owns the local lifecycle, spec projection, session evidence, and review gate.
Spec Shape
The spec file (.scafld/specs/.../<task-id>.md) is Markdown with YAML front
matter:
spec_version: "2.0"task_id,created,updated,status,harden_statussize,risk_level# Title, plus sections such as## Summary,## Objectives,## Scope,## Acceptance,## Phase N: ...,## Review, and## Planning Log- executable acceptance criteria use
CommandandExpected kind
Inputs
command(required): one ofinit,plan,harden,validate,approve,build,build_to_review,exec,review,complete,fail,cancel,status,list,report, orhandoff.task_id: scafld task id. Required for all commands exceptinit,list, andreport.fixture: workspace root containing.scafld/; used as scafld working directory.title,summary,size,risk,acceptance_command: forwarded toplan.mark_passed: forwarded toharden --mark-passed.provider,provider_command,provider_binary,model: forwarded toreview.max_builds: optional cap forbuild_to_review; defaults to 12 native build advances.scafld_bin: explicit scafld executable path. Defaults toSCAFLD_BINorscafldon PATH.scafld_min_version: optional minimum accepted scafld version; defaults to2.4.0.
Structured Output
runx does not rebuild scafld state locally. For commands with native JSON
contracts, the wrapper forwards the scafld payload directly after argv/env
sanitization. scafld 2.4.0 command providers may print provider progress before
the final JSON envelope; the runner extracts and forwards that native envelope.
build_to_review is a bounded lifecycle driver over native scafld build
outputs, not a local state reconstruction. handoff is the exception: it
forwards native Markdown because handoff is model transport, not lifecycle
state.
What ships with it: 4 files
19.0 KB alongside SKILL.md, 2 of them executable
.scafld/
fixtures/
- scafld-v2-harness.mjsruns1.4 KB
tools/
- scafld-cli.mjsruns14.3 KB
- X.yaml3.2 KB