Install any skill in seconds. Free to start, no credit card required.
Get Started Free →gsd-build/forensics
Post-mortem a failed GSD auto-mode run. Traces from symptom to root cause using `.gsd/activity/*.jsonl`, `.gsd/journal/YYYY-MM-DD.jsonl`, `.gsd/metrics.json`, and `.gsd/auto.lock`. Produces a filing-ready bug report with file:line references and a concrete fix suggestion.
Passed 8 of 15 test cases with the skill, and 2 of 15 without it.
and 14 more in the full report
11 fixed0 passed either way8 still failing3 broke
Tokens, turns and time describe resource use, not a dollar price.
One of 11 test cases the skill fixed. Same model, same prompt, with and without the skill.
Auto-mode stopped suddenly without logging an error in activity streams. Which file under `.gsd/runtime/` holds the serialized state and reason for auto-mode pausing?
| Checked | Without skill | With skill |
|---|---|---|
| locates the serialized session file at `.gsd/runtime/paused-session.json` | Missed | Passed |
| extracts the session pause explanation from serialized session fields | Missed | Passed |
The instructions your model reads when the skill loads.
activity/{seq}-{unitType}-{unitId}.jsonl — full tool-call and message stream per unitjournal/YYYY-MM-DD.jsonl — iteration-level events. Orchestrator path emits orchestrator-* events (orchestrator-dispatch-match, orchestrator-guard-block, orchestrator-terminal, etc.); legacy loop events (dispatch-match, stuck-detected, guard-block, unit-start/end, terminal) can still appear on non-orchestrator paths.metrics.json — token/cost ledger; duplicate type/id entries indicate a stuck loopauto.lock — JSON snapshot of the currently-owning PID; stale lock = crash mid-unitforensics/ — saved prior reportsdebug/ — debug logs if enabledruntime/paused-session.json — serialized session when auto-mode pauseddoctor-history.jsonl — doctor check historyThe /gsd forensics command pre-computes a forensic report with anomalies flagged. This skill is the manual investigation that goes deeper, or runs when the automated report isn't enough.
Invocation points:
/gsd forensics has been run and user wants deeper analysisauto.lock is stale<core_principle>
READ-ONLY. Forensics touches no live state. Non-mutating inspection commands (e.g., ps, top -b, cat /proc/*) are allowed for checking process status or reading system files. Strictly prohibited: gsd_* writes, commands that modify state, executing binaries that produce side effects, writing to files (outside the final report), or re-running the failed unit. The evidence must stay pristine for future investigations.
SYMPTOM → ROOT CAUSE, WITH CITATIONS. Every claim in the report is backed by an artifact path and either a line number or a JSONL field. "The loop got stuck because of a race" is not useful; ".gsd/journal/2026-04-19.jsonl:142 shows stuck-detected with flowId X, caused by dispatch-guard.ts:87 returning the same unit after unit-end" is.
PRE-PARSED LEADS, NOT CONCLUSIONS. If /gsd forensics has surfaced anomalies, treat them as hypotheses to verify, not answers.
</core_principle>
Read what's in .gsd/:
test cases passed, vs 2 / 15 without
More skills from the same source and nearby in the registry, with their headline benchmark lift.