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 chan4lk/specclaw --skill bf-domaingit clone --depth 1 https://github.com/chan4lk/specclawWrote 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/chan4lk/specclaw/bf-domain)<a href="https://agentmods.dev/skills/chan4lk/specclaw/bf-domain"><img src="https://agentmods.dev/badge/skills/chan4lk/specclaw/bf-domain/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/chan4lk/specclaw/bf-domain"><img src="https://agentmods.dev/badge/skills/chan4lk/specclaw/bf-domain.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector pass
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.00267 | $0.01824 |
| Opus 5 | $0.00133 | $0.00912 |
| Sonnet 5 | $0.00053 | $0.00365 |
| Haiku 4.5 | $0.00027 | $0.00182 |
Grade A, and why
bf-domain 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 4d 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 — 53 lines — stays where its author put it; the contents beside it link to each section on GitHub.
specclaw bf-domain
First, run specclaw-ensure-init .specclaw — idempotently creates .specclaw/ if it doesn't exist (silent if already initialized; auto-inits using the current directory's basename as the project name).
Analyze an existing codebase's business domain and user-facing functionality, writing .specclaw/analysis/domain-model.md, .specclaw/analysis/functional-spec.md, and .specclaw/analysis/module-map.md. Read-only side-command — no specclaw-validate-change call, no <change> involved, matching the analyze/architecture/patterns/status pattern.
-
Resolve and collect:
specclaw-bf-domain-collect collect .specclaw [path][path]defaults to the repository root when omitted. The script delegates tospecclaw-bf-analyze-codebase collectfor path validation, manifests,dependency_graph, anddiscovered_docs, then adds domain-specific facts (forms,xaml_forms,other_ui_files,handler_implementations,main_form_hint,type_declarations,const_declarations,validation_routine_candidates) plusarchitecture_mdpresence and themodule_mapblock — the prior map'sstatus, itsprior_modules[]roster (id/name/status/owned entities/rules, ID-level facts only), andnext_mod_id.validation_routine_candidatesis a hint list only: a narrowValid*/Check*/Can*naming heuristic, never an exhaustive inventory of business rules — an empty array means the heuristic matched nothing, never that the codebase has no rules (see the analyst's Candidate-Hint Rule). If it exits non-zero, surface its stderr message to the user verbatim and stop — don't retry, don't guess a different path. This validation already lives inside the delegated call tospecclaw-bf-analyze-codebase collect; do not reimplement it here.Run this step before Step 2's archive, and pass its JSON to the agent verbatim. The
module_map.prior_modules[]roster is read from the livemodule-map.md, which Step 2 is about to move — it is the only thing that lets the agent carry survivingMOD-###ids forward instead of renumbering them, and MOD ids are permanent. -
Archive all three prior documents, if they exist, before writing new ones:
mkdir -p .specclaw/analysis/archive mv .specclaw/analysis/domain-model.md .specclaw/analysis/archive/$(date +%Y-%m-%d-%H%M%S)-domain-model.md mv .specclaw/analysis/functional-spec.md .specclaw/analysis/archive/$(date +%Y-%m-%d-%H%M%S)-functional-spec.md mv .specclaw/analysis/module-map.md .specclaw/analysis/archive/$(date +%Y-%m-%d-%H%M%S)-module-map.mdSkip each
mvindependently if that specific file doesn't exist yet — one may exist without the others on an unusual prior run, andmodule-map.mdis absent entirely on any project that predates the module hierarchy. This is the same shared archive directoryanalyze/architecturealready use — all document types land in.specclaw/analysis/archive/, distinguished by filename. -
Spawn the analysis agent:
Agenttool,subagent_type: "bf-domain-analyst", on the model fromconfig.yamlmodels.review(default:anthropic/claude-sonnet-4-5). Pass as context:- The collected JSON (stdout of Step 1) — including
pending_questions/clarificationspresence + resolved paths for the agent's own Ask, Don't Guess de-duplication, and themodule_map/architecture_mdblocks for rubric row 9. - The resolved target path.
- The collected JSON (stdout of Step 1) — including
-
The agent writes
.specclaw/analysis/domain-model.md,.specclaw/analysis/functional-spec.md, and.specclaw/analysis/module-map.mditself, per its own Output section — this skill does not write any of them. -
Present a short summary to the user: the path analyzed, entity/rule/capability counts, and any Named Gaps the agent flagged.
-
Relay the module map and ask the human to confirm it. Report the module count with each module's name and owned-entity count, every cross-module reference the map recorded (an entity one module owns and another references — that is where a flow crosses a boundary), anything under
## Unassigned, and name every module or placement the agent marked⚠ PROVISIONALtogether with itsPQ-NNN. Then state plainly that the map isPROPOSEDand ask the user to review it and either confirm it — by editing its**Status:**line toCONFIRMED by <name>, <YYYY-MM-DD>— or tell you what to regroup.
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.
- 4d ago First seen · 53 lines · 0 tokens per session scan A fabcbe53fac6
bf-domain is a skill published in the GitHub repository chan4lk/specclaw (12 stars, last pushed 5d ago), licensed MIT. It adds 267 tokens to every session and 1,824 once invoked, about $0.0013 per session on Opus 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-09-05.
Other skills, from other repositories
from-intake
A workflow for reviewing material brought from another workspace and carrying relevant brand evidence into the project's assets. It checks inventories, brand guides, logos, and image sources before anything is used.
upload-assets
An asset-upload workflow that sends files to a console’s content-delivery network and prepares a review-request payload for a person to submit.
review-spec
A workflow for comparing an existing feature specification with the project's review checklist and implementation. It looks for missing requirements, differences between documented screens and actual screens, and lessons from rejected submissions.
wire-sdk
An SDK integration guide for 앱인토스, a platform for building apps inside Toss. It covers permissions, persistent storage, sharing links, screen controls, safe-area spacing, and secure WebSocket connections.
optimize-seo-geo
A workflow for filling only the SEO and GEO sections of a post's front matter. SEO helps a page appear in search results, while GEO prepares information for answer systems that may quote or cite it.
write-spec
A feature-specification workflow that turns a feature request into a Markdown file describing screens, acceptance checks, boundaries, and unanswered questions.