Document
Generate minimal documentation through parallel agentsFrom its SKILL.md
npx -y skills add bitcraft-apps/spec-first --skill documentAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 4 stars4 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
2.7 KB, as published. Nobody here has run it
Document Command
Creates minimal, proportional documentation. Match doc weight to change weight. One agent does the steps in order.
Usage
/sf:document [SPECIFICATION_AND_IMPLEMENTATION_PATHS]
Context
Read .sf/implementation-summary.md if it exists.
Input Resolution
- If
$ARGUMENTSis non-empty: use it as the artifact and implementation paths - Else if
.sf/spec.mdand.sf/implementation-summary.mdexist: use them - Else: ask the user where the artifacts are. Wait for the answer.
Execution
Write each file in turn. All paths are under $SF_DIR/research/.
artifacts-summary.md— the requirements and outcomes in the artifacts. Read only what exists.implementation-summary.md— the real code structure: the main files, the changed interfaces.docs-inventory.md— every existing doc asfilepath | primary topic, from the headings only.
Gate 1 — Post-Analysis: run scripts/doc-gates.sh analysis, in this skill directory.
If doc-gates.sh fails (non-zero exit), halt immediately — do not write the documents.
technical-docs.md— what a developer needs to use or extend the change. Skip any section that does not apply.user-docs.md— only what the user must do differently. Skip it if the change is invisible.
An empty file is a valid result. It means the change does not need that document.
Gate 2 — Post-Generation: run scripts/doc-gates.sh generation.
If doc-gates.sh fails (non-zero exit), halt immediately — do not integrate.
- Integrate: for each topic in
docs-inventory.mdthat matches, edit that file. Create a file only when none fits. Cut duplicate content. Then delete the research files.
Output: Documentation updates (if any) + terminal summary
Gate Failure Behavior
On a non-zero gate exit: halt, report which gate failed and the reason it printed, and keep the output for inspection.
On Claude Code
Claude Code runs the steps as the sf-document workflow — schema-checked, and with no shared
file between the analysis agents. The workflow applies both gates itself.
- Implementation summary: !
test -f .sf/implementation-summary.md && head -20 .sf/implementation-summary.md || echo "none" - Use the AskUserQuestion tool to ask for the artifact locations.
- Workflow tool,
name: "sf-document". Passargsas a JSON object, never as a string:{"specPath": "<the artifact path>", "implementationPath": "<the implementation summary path>"} - Report the files the workflow says it changed. An empty list means the change needs no docs.