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.

CommandPurpose
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 syncrefresh specs.md and milestone progress
testrun the project tests
lesson add / list / status / prunelessons learned
migratemove specs from the old layout
config show / setper-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.

Nuxfire Production Kit

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.

© 2026 Nuxfire