bf-analyze

bf-analyze is a skill for Claude Code from chan4lk/specclaw. It costs 105 tokens per session (910 once invoked), scanned A, original, MIT.

A read-only codebase analysis tool that examines an existing project and writes a report about its languages, dependencies, structure, business area, and risks. It supports projects ranging from Node and .NET to Java, Go, Rust, Python, and other stacks.

In plain words
What is it for?
Use it before planning changes or reviewing a legacy project to create a grounded codebase report from the repository.
Why use it?
It gives developers a documented view of an unfamiliar or older codebase without changing the source files. It also preserves an older report by moving it into the newer analysis archive location when needed.

Skill for Claude Code

Written for Claude Code: shipped in a Claude Code plugin.

Part of the specclaw plugin — 32 skills, 21 agents shipped together

Good fit Use it before planning changes or reviewing a legacy project to create a grounded codebase report from the repository.

Compare 6 skills from other repositories ↓
Install with agentmods
npx agentmods add skills/chan4lk/specclaw/bf-analyze
Install

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.

Any agent
npx skills add chan4lk/specclaw --skill bf-analyze
Clone the repo
git clone --depth 1 https://github.com/chan4lk/specclaw

Made for: Claude Code.

Or install specclaw, the plugin that ships this one along with the rest of its 32 skills, 21 agents.

Wrote 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.

agentmods badge for bf-analyze

README.md
[![agentmods](https://agentmods.dev/badge/skills/chan4lk/specclaw/bf-analyze/github.svg)](https://agentmods.dev/skills/chan4lk/specclaw/bf-analyze)
Your own site
<a href="https://agentmods.dev/skills/chan4lk/specclaw/bf-analyze"><img src="https://agentmods.dev/badge/skills/chan4lk/specclaw/bf-analyze/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.

agentmods 80×15 button for bf-analyze

Your own site · 80×15
<a href="https://agentmods.dev/skills/chan4lk/specclaw/bf-analyze"><img src="https://agentmods.dev/badge/skills/chan4lk/specclaw/bf-analyze.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 105 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 910 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe. Third-party audits
  • NVIDIA SkillSpector pass 7 Sept 2026
How audits are shown
Origin original No closer match found in the catalogue.
Token cost

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.

ModelPer sessionOnce invoked
Fable 5.1 $0.00105 $0.00910
Opus 5 $0.00053 $0.00455
Sonnet 5 $0.00021 $0.00182
Haiku 4.5 $0.00011 $0.00091

Measured 4d ago against content hash 387e59757e7f, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-09, from the pricing page.

Security

Grade A, and why

bf-analyze 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.

plugins/specclaw/skills/bf-analyze/SKILL.md · 48 lines

What it actually says

specclaw bf-analyze

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 and write .specclaw/analysis/codebase-report.md. Read-only side-command — no specclaw-validate-change call, no <change> involved, matching the patterns/status pattern.

  1. Resolve and collect:

    specclaw-bf-analyze-codebase collect .specclaw [path]
    

    [path] defaults to the repository root when omitted. The script itself validates that [path] exists, resolves inside the repository, and is not .specclaw itself or nested inside it. If it exits non-zero, surface its stderr message to the user verbatim and stop — don't retry, don't guess a different path.

  2. Migrate a pre-upgrade report, if present, before archiving: if .specclaw/codebase-report.md (the old path) exists and .specclaw/analysis/codebase-report.md (the new path) does not yet exist, move it into the new archive location so it is never orphaned:

    mkdir -p .specclaw/analysis/archive
    mv .specclaw/codebase-report.md .specclaw/analysis/archive/$(date +%Y-%m-%d-%H%M%S)-codebase-report.md
    

    Skip this step once the old path is gone — on every run after the first post-upgrade run for a given project, this is a no-op.

  3. Archive the prior report, if any, before writing a new one:

    mkdir -p .specclaw/analysis/archive
    mv .specclaw/analysis/codebase-report.md .specclaw/analysis/archive/$(date +%Y-%m-%d-%H%M%S)-codebase-report.md
    

    Skip this step if .specclaw/analysis/codebase-report.md doesn't exist yet.

  4. Spawn the analysis agent: Agent tool, subagent_type: "bf-codebase-analyst", on the model from config.yaml models.review (default: anthropic/claude-sonnet-4-5). Pass as context:

    • The collected JSON (stdout of Step 1).
    • The resolved target path.
  5. The agent writes .specclaw/analysis/codebase-report.md itself, per its own Output section — this skill does not write the file.

  6. Present a short summary to the user: the path analyzed, which report sections were written, and any low-confidence flags (Inference (low confidence): ...) the report surfaced.

  7. Show what comes next:

    specclaw-bf-status .specclaw --next
    

    Render its output verbatim, after the summary above — never instead of it. Read-only, writes nothing, costs a second.

    Only if this run completed. Step 1 says to surface collect's stderr and stop; that means stop. A run that did not finish must never print a next step, which would read as though the phase advanced when it did not.

    Never work the next step out yourself. specclaw-bf-status owns the lifecycle ordering for every bf-* command — which phase follows which, which open items are human work, and which command clears them. A next phase decided here would be a second copy of that ordering, diverging the moment either side changes.

Changes

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.

  1. 4d ago First seen · 48 lines · 0 tokens per session scan A 387e59757e7f

Subscribe to this mod's changes

bf-analyze is a skill published in the GitHub repository chan4lk/specclaw (12 stars, last pushed 5d ago), licensed MIT. It adds 105 tokens to every session and 910 once invoked, about $0.0005 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.

Related

Other skills, from other repositories