Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add bitcraft-apps/spec-first --skill documentgit clone --depth 1 https://github.com/bitcraft-apps/spec-firstWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/bitcraft-apps/spec-first/document)<a href="https://agentmods.dev/skills/bitcraft-apps/spec-first/document"><img src="https://agentmods.dev/badge/skills/bitcraft-apps/spec-first/document/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/bitcraft-apps/spec-first/document"><img src="https://agentmods.dev/badge/skills/bitcraft-apps/spec-first/document.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00008 | $0.00644 |
| Opus 5.5 | $0.00003 | $0.00258 |
| Sonnet 5.5 | $0.00002 | $0.00129 |
| Haiku 4.5 | $0.00001 | $0.00064 |
Grade A, and why
document scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 1mo ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 66 lines — stays where its author put it; the contents beside it link to each section on GitHub.
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.
What ships with it
1 file beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 1mo ago First seen · 66 lines · 8 tokens per session scan A e4adb11630ef
document is a skill published in the GitHub repository bitcraft-apps/spec-first (4 stars, last pushed yesterday), licensed MIT. It adds 8 tokens to every session and 644 once invoked, about $0.0000 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other skills, from other repositories
espalier-migrate
Migrate an existing harness/espalier install to the current Espalier version — auto-detects which of v0.1→v0.2, v0.3→v0.4, v0.4→v0.5, the v0.5.3 coder-agent patch, v0.5→v0.6 (Stage 1 grill), v0.6→v0.7 (read-only /espalier-ask lane), v0.7→v0.8 (requirements approval gate), the v0.8.1 impact-analysis agent patch, the…
triage
Work a repo's needs-triage backlog, and outside contributors' issues and pull requests, in batches the decider approves in one pass: each item gets a cheap check and one proposed move with a plain-words reason, and only approved moves are applied. Use when asked to triage or work through a needs-triage pile, or to…
retro
Read a sample of one repo's past agent sessions, Claude Code and Codex, find the friction the agents hit, and return a short ranked list of fixes in plain words, each labeled and routed to whoever owns the fix. Use when the user asks for a retro or retrospective on agent work, asks what keeps going wrong in a repo's…
show-me-your-work
For autonomous multi-phase or unattended work, a reviewer needing an evidence trail, or an explicit decision-log/show-your-work request, keep an append-only decision log with why, evidence, and result. Record decisions and corrections, not hidden reasoning transcripts.
review
Reviews code changes for concrete bugs with P0-P2 prioritized findings. Uses parallel architectural and implementation reviewers, then validates findings to remove false positives. Use when reviewing a caller-supplied diff, branch, staged changes, file set, or pull request, and use fix mode with caller-supplied…
setup
For a new TeamWorkflow installation, binding refresh, or drift audit after a pack release, inspect and bind the project workflow. Reuse explicit recorded decisions with their sources; ask about missing, conflicting, or changed authority and bindings.