board-doctor

board-doctor is a skill for Claude Code, Codex from vmobifystudio/app-dev-team. It costs 71 tokens per session (3,463 once invoked), scanned C, original, MIT.

Use to validate docs/31-board.md before spawning any agent, and to verify a developer's "DONE" claim before moving a row to review. Triggers as step 0 of /app-build and /app-run, from /app-status, and any time the board looks inconsistent. Catches tickets the sprint loop cannot see.

Skill for Claude CodeCodex

Installs and runs on its own, but its text points at files inside the plugin that ships it — anything it tells you to read at a ${CLAUDE_PLUGIN_ROOT} path is only there once the plugin is installed.

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.

agentmods
npx agentmods add skills/vmobifystudio/app-dev-team/board-doctor
Any agent
npx skills add vmobifystudio/app-dev-team --skill board-doctor
Clone the repo
git clone --depth 1 https://github.com/vmobifystudio/app-dev-team

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 board-doctor

README.md
[![agentmods](https://agentmods.dev/badge/skills/vmobifystudio/app-dev-team/board-doctor.svg)](https://agentmods.dev/skills/vmobifystudio/app-dev-team/board-doctor)
Your own site
<a href="https://agentmods.dev/skills/vmobifystudio/app-dev-team/board-doctor"><img src="https://agentmods.dev/badge/skills/vmobifystudio/app-dev-team/board-doctor.svg" alt="Measured on agentmods" height="20"></a>
Per session 71 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 3,463 The whole file, excluding the scripts and references it only reads on demand.
Security scan C 1 finding. Scan, not verified.
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 $0.00071 $0.03463
Opus 5 $0.00036 $0.01732
Sonnet 5 $0.00014 $0.00693
Haiku 4.5 $0.00007 $0.00346

Measured today against content hash 951d0dbc6db1, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade C, and why

board-doctor scanned grade C with 1 finding 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.

Tells the agent never to refusehighAnti-refusal

Suppressing the ability to decline removes a core safety control; a later harmful request then succeeds.

described below, and every check still blocks. Do not refuse to run such a project — it is the
skills/board-doctor/SKILL.md · 223 lines

How it starts

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

Board doctor

The board is the team's only memory across agent invocations, and every row is written by an LLM editing a Markdown table. That means the board can drift into states the sprint loop is structurally unable to notice.

The worst one, and the reason this skill exists:

/app-build treats a ticket as ready when Status = todo and every Depends on ID is merged (qa or done), and it exits the loop when there are no ready todo rows and nothing in review/qa. A ticket whose dependency is blocked therefore satisfies neither condition — so the loop terminates and prints a successful sprint summary without ever mentioning it.

Same for a row with a missing owner, an owner that isn't a real role, or a Depends on pointing at an ID that doesn't exist. The work is on the board, scheduled to nobody, reported as complete.

Rule: nothing spawns while an anomaly is open.

Two kinds of board, and what this skill is for on each

Generated board (docs/31-board-events.jsonl exists). docs/31-board.md is a rendering of the event log, and scripts/board.mjs refuses the illegal transition before it is written — a self-approval, a merge with no non-owner approval, a review requested on an unverified DONE, a claim on an unmerged dependency. Those states are unrepresentable, not merely detectable, so on this board the doctor is mostly a drift detector.

Mostly, and the exception matters. Anomalies on a generated board come in two kinds, and treating them alike sends you hunting something that never happened:

  • Driftmalformed_row, status_invalid, duplicate_id, cycles_invalid, self_review, done_without_review. The CLI cannot produce these, so something wrote the Markdown directly or appended to the log by hand. Find what did it before you re-render over the evidence, because the next board.mjs call erases the edit and the trail with it.
  • Emergentstranded, dependency_cycle, cycle_cap_breached, owner_not_spawnable. These are properties of the ticket graph, not of the file. board.mjs produces them legally: blocking a ticket strands every todo that depends on it, and no single append was illegal. There is no hand-edit to find. Fix the graph — unblock the dependency, re-scope the ticket, or file it blocked in the first place (board.mjs add <ID> --depends X --status blocked), which is the honest shape when a bug is filed against a ticket that is itself stuck.

Read the full file on GitHub · 223 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 · 223 lines · 71 tokens per session scan C 951d0dbc6db1

Subscribe to this mod's changes

board-doctor is a skill published in the GitHub repository vmobifystudio/app-dev-team (4 stars, last pushed 24d ago), licensed MIT. It adds 71 tokens to every session and 3,463 once invoked, about $0.0004 per session on Opus 5. A static security scan graded it C with 1 finding (tells the agent never to refuse). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-09-03.

Related

Other skills, from other repositories

seeds-issue-audit

Audit and triage open Seeds (sd) issues — find which can be closed, auto-close high-confidence completed ones, and report borderline cases. Activate for prompts like "audit open issues", "which seeds issues can be closed", "clean up the issue tracker", "triage the seeds backlog".

jayminwest/warren · 67 tokens

good-first-issue-batch

File a batch of contributor-ready GitHub issues from the seeds backlog, re-verifying every candidate against HEAD first so no dead issue reaches a contributor. Activate for prompts like "file some good first issues", "open a batch of GFIs", "publish backlog issues to GitHub", "find contributor-ready work", or after an…

jayminwest/warren · 80 tokens

warren-dogfood-pipeline

Full prioritize → dispatch → shepherd → track pipeline against the live warren instance. Audits the seeds backlog around a focus theme, dispatches the surviving issues to warren agents one at a time, babysits the resulting PRs to merge (update-branch, conflict-repair runs, auto-merge), and closes the loop in the…

jayminwest/warren · 116 tokens

run

Conduct a task end to end, from a one-line fix to a multi-day programme - a short interview, then autonomous execution to the finish. Classifies the task S/M/L/XL, configures itself to the repo, routes each role to a cost tier, drives the agent team from the kanban board, and stops only at genuine decisions. Use for…

jjanczur/tyran · 97 tokens

status

Where is the work right now. Regenerates the projections and the kanban board from the journal and answers with the progress line, the agents still running, the open gates and the resume steps. Read-only. Use for /tyran:status or when asked what is going on.

jjanczur/tyran · 58 tokens

heartbeat

This skill should be used when the user asks to "run a heartbeat", "run the agent loop", "process GitHub issues", "check for work", or runs the /heartbeat command. Executes the WoterClip heartbeat — picks up GitHub issues, resolves personas, does work, and reports back.

wotai-dev/woterclip · 64 tokens