Command Reference
Every command of bun run fireskill, with real syntax and behavior.
All commands run from the repository root as bun run fireskill <command>. Common option: --project <path> (root of the project; default is the current directory). Most commands also accept --json.
| Command | Purpose |
|---|---|
transition <id> <folder> | move a spec one step |
effort <id> <1-10> --reason "…" | set the effort score |
validate <id> [--strict] | quick linter of spec.md |
progress [--json] [--watch] [--interval <s>] | progress of the specs |
milestones sync | refresh specs.md and milestone progress |
test | run the project tests |
lesson add / list / status / prune | lessons learned |
migrate | move specs from the old layout |
config show / set | per-project settings |
<id> is the spec number (0001) or the full directory name (<NNNN>-<slug>).
transition
bun run fireskill transition <id> <draft|defined|planned|in-progress|review|completed>
Moves the spec package one step and rewrites Status (Draft, Defined, Planned, Implementing, Reviewing, Complete). Allowed moves: draft→defined; defined→draft/planned; planned→defined/in-progress; in-progress→planned/review; review→in-progress/completed; completed→review. Other moves fail with invalid transition.
After the move it refreshes the milestone index (like milestones sync). It does not check the gates: the skills move a spec only after their gate passes.
0001-convite-de-membros-por-e-mail draft → defined Defined
effort
bun run fireskill effort <id> <1-10> --reason "<rationale>"
Sets Effort, Effort updated at (ISO timestamp) and Effort rationale. A score outside 1–10 or an empty reason is rejected. Output: 0001-convite-de-membros-por-e-mail Effort 4/10.
validate
bun run fireskill validate <id> [--strict] [--json]
A quick linter, not the Definition Gate. It reports errors for: missing Effort or one outside 1–10, missing or too short Effort rationale, missing Status, and any of five sections not found by heading (context/problem, actors/stories/requirements/scope, scenarios/BDD/acceptance, tasks/phases, tests/evidence/validation). It warns about a missing BDD scenario, a missing task list and [TODO], [TBD], [preencher], [em aberto], [descrever] placeholders. --strict turns warnings into errors. The exit code is 1 when invalid.
It does not count acceptance criteria, check the interface contract, change gates or move the spec. The gate is node fireskills/skills/fireskill-04-validate/scripts/validate_spec.mjs <spec.md>.
Status: VALID (Passed spec linter)
Errors: 0 | Warnings: 0
progress
bun run fireskill progress [--json] [--watch] [--interval <seconds>]
One summary line and one line per spec, with task and item counts:
Summary 1 specs 0/6 tasks 0/55 items 0%
0001-convite-de-membros-por-e-mail Draft 0/6 tasks 0/55 items 0%
--watch prints again when a spec changes; the default interval is shown by config show (0.75 s).
milestones sync
bun run fireskill milestones sync
Updates the derived blocks of specs.md (repository root) and of specs/milestones/<ID>.md. Text outside the blocks is preserved.
test
bun run fireskill test
Runs bun run test from the project root (the Vitest aggregator vitest.config.mts) and returns its exit code. It does not choose a database: see the safety guard.
lesson
bun run fireskill lesson add --signal <signal> --summary "<text>" --rule "<text>" --source "<spec or PR>"
bun run fireskill lesson list [--all]
bun run fireskill lesson status
bun run fireskill lesson prune
--signal is ac_gap, surviving_mutant, spec_precision_gap, spec_deviation or gate_fail; --signal, --summary, --rule and --source are all required. list shows confirmed lessons; --all adds candidates and quarantined ones. status prints counts (0 confirmed, 1 candidate, 0 quarantined). prune removes expired candidates. Files: .fireskills/lessons.json and .fireskills/LESSONS.md. See Governance & decisions.
migrate
bun run fireskill migrate
Once, moves specs of the previous layout (specs/specs/) into the state folders.
config
bun run fireskill config show
bun run fireskill config set --watch-interval <seconds>
show prints project and watch_interval (default 0.75). set changes the watch interval.
Ready to build and launch your SaaS?
Get 100% full source code ownership, zero proprietary wrappers, and architecture engineered for millions of requests on Cloudflare.