Borrowing it
Nothing to install: this file belongs to auerbachb/claude-code-config. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.
curl -O https://raw.githubusercontent.com/auerbachb/claude-code-config/main/.claude/skills/board/SKILL.mdgit clone --depth 1 https://github.com/auerbachb/claude-code-configWrote 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/auerbachb/claude-code-config/board)<a href="https://agentmods.dev/skills/auerbachb/claude-code-config/board"><img src="https://agentmods.dev/badge/skills/auerbachb/claude-code-config/board/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/auerbachb/claude-code-config/board"><img src="https://agentmods.dev/badge/skills/auerbachb/claude-code-config/board.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.00151 | $0.13165 |
| Opus 5 | $0.00076 | $0.06582 |
| Sonnet 5 | $0.00030 | $0.02633 |
| Haiku 4.5 | $0.00015 | $0.01316 |
Grade A, and why
board 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.
How it starts
The opening of the file, as written. The whole thing — 853 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Answer "where is everything right now?" with one keystroke instead of one sentence.
The "Running now" table (.claude/reference/time-estimates.md §"Running now Table")
already renders at dispatch, on every heartbeat tick, and whenever the user asks a
progress question in plain language. What it lacked was a name: a short command
that summons the current board immediately, from any orchestration thread, without
composing a question. /board is that name. Natural-language asks keep working
exactly as before — this is an alias, not a replacement.
Invocable from any orchestration thread, including one resumed after a context compaction: every clock it prints — starts above all — is read back from durable session state rather than from the thread's memory of the round.
It boards the repo it is invoked for, resolved by the standard scoping every
other surface uses (Step 1) — not whichever repo happened to dispatch. Run from
another repo, it shows that repo's round; to span several, pass --all-repos. The
resolution is deliberately not special-cased here: the freshness record in Step 5 has
to land on the same key the armed floor watch polls, and a /board that resolved its
repo differently from /subagent would write a record nothing reads.
Round membership is durable, and where it is missing /board says so rather than
implying it. The dispatcher records the whole round — launched and queued alike —
at dispatch (/subagent Step 7.0 → .repos["<key>"].round.members), so all three
row classes reconstruct from state for any thread: Running rows from
pipelines, Queued rows as members with no recorded started_at, and
Completed this round rows as members whose PR merged (Step 3). No queue in
memory, no timestamp inference, and a compaction costs nothing.
The residual case is a round with no such record — one dispatched before this field existed, or one whose write degraded. There the old behaviour stands and is labelled: a non-dispatching thread renders no queued rows, and bounds completed rows by timestamp, so it calls that delivered count approximate (Step 4's summary line). The board is then honest but partial, never silently short a row. The dispatching thread keeps one advantage in both cases — only it can confirm a pre-PR row from the live agent handle it is holding (Step 3).
/board is symlinked globally, but its helper scripts are not, so Step 0 resolves
each one — never a bare .claude/scripts/… path
(.claude/reference/portable-skill-resolution.md).
Scope boundary. /status is the PR-fleet dashboard — every open PR with its
review state, whether or not this session dispatched it. /subagent is the
dispatcher that owns this same table at launch and on heartbeats. /board neither
dispatches nor reviews nor merges: it reads state and prints one table. Its only
write is the shared table-render timestamp in Step 5, which is not a change to any
pipeline — it is how the hourly freshness floor learns the user has just seen a
current board (time-estimates.md §"Table freshness — the hourly floor").
Step 0: Resolve shared tooling
resolve_script() {
local name="$1" candidate
for candidate in \
"$HOME/.claude/skills-worktree/.claude/scripts/$name" \
"$HOME/.claude/scripts/$name" \
".claude/scripts/$name"; do
if [[ -x "$candidate" ]]; then echo "$candidate"; return 0; fi
done
return 1
}
SESSION_STATE_SH=$(resolve_script session-state.sh || true)
ESTIMATE_RESOLVE_SH=$(resolve_script estimate-resolve.sh || true)
OVERRUN_CHECK_SH=$(resolve_script overrun-check.sh || true)
TABLE_FRESHNESS_SH=$(resolve_script table-freshness.sh || true)
Read time-estimates.md through the matching .claude/reference/ candidate order.
When something does not resolve, say so in one line; never skip the contract silently.
SESSION_STATE_SHempty → required. PrintERROR: session-state.sh not found (checked all three paths) — /board cannot read round stateand stop. Every row on this board comes from that file; there is no degraded board without it, and inventing rows from the current clock is the one failure the recorded starts exist to prevent.ESTIMATE_RESOLVE_SHempty → optional. PrintDEGRADED: estimate-resolve.sh not found (checked all three paths) — Est column renders as unestimatedand continue.OVERRUN_CHECK_SHempty → optional. PrintDEGRADED: overrun-check.sh not found (checked all three paths) — clock columns render as —and continue. Still print the table: it carries the round's shape and run order even with three empty columns, and the line above already said why they are empty.TABLE_FRESHNESS_SHempty → optional. PrintDEGRADED: table-freshness.sh not found (checked all three paths) — this render is not recorded against the hourly table-freshness floorand continue. The board is still correct; only the clock in Step 5 is lost.
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.
- today Changed · +117 lines · +6 tokens per session 35226f09d848
- 6d ago Changed · +1 lines 307e7b4ac482
- 7d ago First seen · 735 lines · 145 tokens per session scan A 0fbb41d659ef
board is a skill published in the GitHub repository auerbachb/claude-code-config (5 stars, last pushed today), licensed MIT. It adds 151 tokens to every session and 13,165 once invoked, about $0.0008 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
jira
Unified Jira entry point. Routes to preview (default), create, or review subcommands.
magpie-reviewer-routing
Given an open issue or PR, scores the project's configured reviewer roster across three signals — touched-area eligibility, git-history familiarity with the changed paths, and current open-review load — and proposes a primary reviewer (plus an optional backup). Read-only and propose-then-confirm: nothing is assigned…
revert
Git-aware revert that understands Draft tracks, phases, and tasks. Safely undo work at task, phase, or track level. Use when the user asks to 'revert this track', 'undo a phase', 'revert task X', or says 'roll back the last task', 'undo this work'.
standup
Generate standup summary from git history, track progress, and Jira/GitHub activity. Read-only — makes no changes to the codebase.
status
Display current progress of Draft tracks and active tasks. Shows phases, completion percentages, and blocked items.
integrations
Canonical integrations parent command. Handles external system exports and syncs. Routes intent to jira-preview or jira-create based on context.