Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Diagnose CCB runtime, mounted daemon graph, tmux namespace and panes, provider context, queue/inbox/trace, replies/artifacts, config drift, and storage boundaries. Use when the user asks what is broken, which agent is stuck, whether CCB is mounted, why a reply did not arrive, or what to check first.
.claude/skills/seemseam-ccb-self-diagnose/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-10 | ✗→✓ | ▲ Improved | 5% | 0% |
| case-08 | ✗→✓ | ▲ Improved | 3% | 0% |
| case-15 | ✗→✓ | ▲ Improved | -27% | 0% |
| case-19 | ✗→✓ | ▲ Improved | 95% | 0% |
| case-05 | ✓→✗ | ▼ Worse | 20% | 0% |
Use this skill for read-only triage. Prefer CCB control-plane diagnostics and read-only tmux evidence. Do not mutate runtime state from this skill.
Keep these categories separate in every diagnosis:
configured-agent runtime records, and loaded config.
ccb ping, ccb doctor, ccb ps, ccb queue, ccb pend,ccb trace, ccb fault list, ccb doctor logs <agent>, reply/artifact records, tmux pane metadata/text capture, provider session files, pid files, and config validation or reload dry-run output.
.ccb/agents/* directories for unknown agents, stalepanes, stale sockets, old session artifacts, dead helpers, and orphaned provider state.
Configured-agent and restart target authority comes from the mounted daemon graph, not disk config, tmux panes, or .ccb/agents/* residue.
ccb ping ccbdccb doctorccb psccb queue --detail allccb fault listccb pend --inbox --detail <agent> when one agent is suspectedccb trace <job_id|message_id|attempt_id|reply_id> for lineage issuesccb doctor logs <agent> when provider/API evidence is neededwithout reading secret or private provider-state contents
ccb config validate first, thenccb reload --dry-run. Do not treat disk config as live graph until reload has succeeded and the daemon graph has been rechecked.
acting. If the full file is absent or expired, report a blocker and do not infer from preview text alone.
storage boundary -> ccb-self-recover
ccb-self-chainccb-configWhen the user names an Agent, or says that an Agent is visibly stuck, pane inspection is required whenever the current daemon graph exposes a pane. Do not conclude ok from successful ccb command exit codes alone.
discover a restart target from an arbitrary tmux listing or residue.
if the request, provider prompt, error, or update marker is not visible.
text fingerprints/metadata to classify progress versus a frozen screen.
user input, stale prompt, update/install prompt, authentication/quota/rate limit/API error, dead/blank pane, and misframed layout.
ccb trace, queue head, andmailbox state. Old pane text is evidence of residue until the current lineage is proven.
a visual/layout diagnosis; capture only a CCB-owned target.
Return pane evidence as a compact classification and artifact reference, not a large raw dump. Redact before creating any incident bundle or GitHub issue. Pane text never overrides mounted-agent, lifecycle, runtime, mailbox, or trace authority.
Use the smallest domain that explains the evidence:
generation, socket issue.
text not changing, layout/sidebar mismatch.
URL, network, provider outage, or corrupted conversation context. Do not read secrets.
artifact-backed reply not read, or retry/resubmit/ack decision.
blocked, role binding missing, or changed startup inputs need post-reload runtime refresh.
project/runtime relocation rules are violated.
Return a concise diagnosis:
textStatus: ok|warn|error Suspected domain: ... Authority: ... Evidence: ... Residue: ... Confidence: high|medium|low Next action: ... Blocked by: ...
ccb reload, ccb clear, ccb repair, ccb restart, ccb kill,or raw tmux mutation from this skill.
provider state.
target is CCB-owned.
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→fail | 7,961 | 20,632 | +159% | 1 | 1 | 0% | 339 | 2,247 | +563% | 0 | 0 | — |
case-02 | fail→fail | 13,261 | 10,186 | -23% | 1 | 1 | 0% | 1,953 | 1,941 | -1% | 0 | 0 | — |
case-03 | fail→fail | 5,418 | 5,409 | -0% | 1 | 1 | 0% | 270 | 1,599 | +492% | 0 | 0 | — |
case-04 | fail→fail | 5,597 | 8,625 | +54% | 1 | 1 | 0% | 162 | 1,862 | +1049% | 0 | 0 | — |
case-05 | pass→fail | 8,616 | 8,423 | -2% | 1 | 1 | 0% | 1,499 | 1,803 | +20% | 0 | 0 | — |
case-10 | fail→pass | 19,492 | 12,662 | -35% | 1 | 1 | 0% | 3,003 | 3,158 | +5% | 0 | 0 | — |
case-06 | fail→fail | 7,920 | 8,934 | +13% | 1 | 1 | 0% | 1,131 | 1,952 | +73% | 0 | 0 | — |
case-07 | pass→pass | 12,151 | 4,093 | -66% | 1 | 1 | 0% | 1,692 | 2,121 | +25% | 0 | 0 | — |
case-08 | fail→pass | 14,861 | 6,519 | -56% | 1 | 1 | 0% | 2,346 | 2,409 | +3% | 0 | 0 | — |
case-09 | pass→pass | 9,051 | 6,225 | -31% | 1 | 1 | 0% | 1,390 | 2,218 | +60% | 0 | 0 | — |
case-11 | pass→pass | 8,350 | 3,303 | -60% | 1 | 1 | 0% | 1,309 | 1,885 | +44% | 0 | 0 | — |
case-12 | pass→fail | 4,079 | 8,575 | +110% | 1 | 1 | 0% | 628 | 1,991 | +217% | 0 | 0 | — |
case-13 | pass→pass | 11,229 | 6,506 | -42% | 1 | 1 | 0% | 1,777 | 2,418 | +36% | 0 | 0 | — |
case-14 | fail→fail | 12,457 | 9,190 | -26% | 1 | 1 | 0% | 2,322 | 3,022 | +30% | 0 | 0 | — |
case-15 | fail→pass | 16,928 | 4,209 | -75% | 1 | 1 | 0% | 2,836 | 2,068 | -27% | 0 | 0 | — |
case-16 | pass→pass | 8,748 | 8,952 | +2% | 1 | 1 | 0% | 1,397 | 2,566 | +84% | 0 | 0 | — |
case-17 | pass→pass | 13,226 | 8,487 | -36% | 1 | 1 | 0% | 2,401 | 2,823 | +18% | 0 | 0 | — |
case-18 | pass→pass | 6,468 | 4,747 | -27% | 1 | 1 | 0% | 994 | 2,094 | +111% | 0 | 0 | — |
case-19 | fail→pass | 31,942 | 5,421 | -83% | 1 | 1 | 0% | 1,224 | 2,392 | +95% | 0 | 0 | — |
case-20 | pass→pass | 4,576 | 5,804 | +27% | 1 | 1 | 0% | 672 | 2,389 | +256% | 0 | 0 | — |
case-21 | pass→pass | 8,913 | 2,363 | -73% | 1 | 1 | 0% | 1,165 | 1,801 | +55% | 0 | 0 | — |
case-22 | pass→pass | 7,520 | 3,394 | -55% | 1 | 1 | 0% | 1,003 | 1,899 | +89% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted, and 14 counted toward the lift figure. The other 8 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +9 percentage points is the difference between those two pass rates over the 14 comparable cases. 2 cases got worse with the skill loaded, and they are included in that figure.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.