dox-describe

dox-describe is a skill for Claude Code, Codex from BlackBeltTechnology/pi-agent-dashboard. It costs 79 tokens per session (1,280 once invoked), scanned A, original, MIT.

Fill the empty Purpose cells of a directory AGENTS.md tree with one-line LLM summaries (one subagent per file, plan-then-confirm, cap 50 rows/run). Use for a path-only kb dox init tree, or when asked to "describe the tree", "fill AGENTS.md purposes", or "populate the kb corpus".

Skill for Claude CodeCodex

Written for no agent in particular: nothing here depends on one. Also seen: mentions subagents; mentions AGENTS.md.

Install with agentmods
npx agentmods add skills/blackbelttechnology/pi-agent-dashboard/dox-describe
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 BlackBeltTechnology/pi-agent-dashboard --skill dox-describe
Clone the repo
git clone --depth 1 https://github.com/BlackBeltTechnology/pi-agent-dashboard

Made for: Claude Code, Codex.

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 dox-describe

README.md
[![agentmods](https://agentmods.dev/badge/skills/blackbelttechnology/pi-agent-dashboard/dox-describe/github.svg)](https://agentmods.dev/skills/blackbelttechnology/pi-agent-dashboard/dox-describe)
Your own site
<a href="https://agentmods.dev/skills/blackbelttechnology/pi-agent-dashboard/dox-describe"><img src="https://agentmods.dev/badge/skills/blackbelttechnology/pi-agent-dashboard/dox-describe/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 dox-describe

Your own site · 80×15
<a href="https://agentmods.dev/skills/blackbelttechnology/pi-agent-dashboard/dox-describe"><img src="https://agentmods.dev/badge/skills/blackbelttechnology/pi-agent-dashboard/dox-describe.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 79 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 1,280 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.
Origin unknown 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.00079 $0.01280
Opus 5 $0.00039 $0.00640
Sonnet 5 $0.00016 $0.00256
Haiku 4.5 $0.00008 $0.00128

Measured today against content hash c21a369bcaf6, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-11, from the pricing page.

Security

Grade A, and why

dox-describe 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 today.

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.

packages/kb-extension/.pi/skills/dox-describe/SKILL.md · 105 lines

How it starts

The opening of the file, as written. The whole thing — 105 lines — stays where its author put it; the contents beside it link to each section on GitHub.

dox-describe

Turn a path-only directory AGENTS.md tree into a searchable kb corpus. A fresh kb dox init tree carries rows shaped | `file.ts` | | — the Purpose cell is empty, so the agents retrieval lane (the one file-lookup queries depend on) finds nothing. This skill fills those cells with one-line, caveman-style purposes, one subagent per AGENTS.md.

Read-only first: the CLI enumerates empty rows; the LLM only ever writes a Purpose cell. The parent never edits an AGENTS.md itself, and a subagent edits only the single file it was assigned.

Step 1 — enumerate the empty rows

kb dox describe --list --json

Parse { groups: [{ agentsPath, subjects: string[] }], total }. Each group is one AGENTS.md; each subject is a path whose Purpose cell is empty. Nothing to do when total === 0 — say so and stop.

Step 2 — present the plan and confirm

Show the user, then WAIT (ask_user, confirm) for approval before any write:

  • number of AGENTS.md files (groups) and number of rows (total);
  • a rough cost estimate (≈ rows × one short file read, plus one subagent per group; state it is a rough bound, not a promise);
  • the per-run cap: 50 rows. Rows beyond the cap are DEFERRED to a re-run (the walk is empty-cells-only, so a re-run is resumable by construction);
  • any row whose subject file is missing or unreadable (report, do not assign).

Never start fan-out without an explicit yes.

Step 3 — fan out ONE subagent per AGENTS.md

Cap concurrency at 2 in flight (the extension schedules a debounced reindex on every markdown write, and every subagent contends on the single SQLite index; ≤2 keeps SQLITE_BUSY recoverable — the parent's final reindex is authoritative). Skip groups whose rows are entirely past the cap.

Spawn with an inline Agent label (write-capable, parent defaults). Do NOT use Explore — it is read-only and cannot fill cells.

Each subagent's task must include:

  • the absolute AGENTS.md path and its assigned subjects (cap 50 total across all groups for this run);
  • must read every file it describes — never guess from the filename;
  • the row rules:
    • ONE line per row, exactly the schema | `file` | purpose |;
    • purpose ≤ 200 chars, caveman style: short declarative fragments, drop articles/copulas, subject → verb → object;
    • name key exports / contracts / params verbatim (symbolName, paths, env vars); concrete tokens over prose;
    • CONDENSE, never promote to a <File>.AGENTS.md sidecar — sidecar splitting is the parent's/scripts/split-large-agents.mjs job;
    • edit ONLY its own AGENTS.md; do not touch any other file;
    • write the purpose into the EXISTING row (same line, same path cell) — do not add, delete, or reorder rows;
    • a subject file that cannot be read (missing, binary, 0-byte) → leave its Purpose cell EMPTY and report it back; never invent a purpose.

Read the full file on GitHub · 105 lines

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. today First seen · 105 lines · 79 tokens per session scan A c21a369bcaf6

Subscribe to this mod's changes

dox-describe is a skill published in the GitHub repository BlackBeltTechnology/pi-agent-dashboard (280 stars, last pushed today), licensed MIT. It adds 79 tokens to every session and 1,280 once invoked, about $0.0004 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-12.