agentleFS
taoluotaoluo/claude-skills/skills/debug-log/SKILL.md

debug-log

Skill2 starsChanged 6 months agoMITView on GitHub

Records smoke-test and execution-time debugging findings as an append-only, plan-linked bug log. Use during implementation debugging to capture observed behavior, expected behavior, root cause, fix, verification evidence, regression coverage, and plan-revision implications.

1 other project uses a version of this.

Adopted by

Most recently taken up by

  • Other versions1 project uses a version of this.

    Word for word · 0

    None found.

    Edited · 0

    None found.

    Wrote their own version · 1

    1. nielsmadan/skills★ 1same name

    How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.

  • In this repository4 other files it gives its agents.

The file

Show its rules and text

We split this skill into the rules it gives an agent

38 rules. About 0 are common, 12 are distinctive, and 26 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈12

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 26

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  • could be automatic: a setting could enforce it
  1. Distinctive:

    Not a coding skill: Does not modify code, run tests, install dependencies, or shell out to runtime tools.

    line 26
  2. Very specific:

    Not a plan or scope generator: Does not classify items as MVP / forbidden / overengineering — that is scope-triage's job.

    line 27
  3. Distinctive:

    Not an issue tracker: No status workflows beyond the controlled status vocabulary.

    line 28
  4. Very specific:

    Not an automatic plan-patcher: When a bug reveals plan drift, the skill emits a Plan Revision Suggestion.

    line 30
  5. Distinctive:

    If a bug reveals plan drift:

    line 40
  6. Very specific:

    Every long-lived fact should trace back to PLAN.md (or its TLDR projection).

    line 85
  7. Very specific:

    If <short note> is omitted, prompt the user in chat for the note before writing anything.

    line 101
  8. Very specific:

    If no plan path is supplied, fall back to current plan inference (most recent plans/*.md referenced in the conversation, or ./PLAN.md in …

    line 102
  9. Very specific:

    If the user supplies a path that already ends in .tldr.md, .scope.md, or .debug.md, refuse with one of:

    line 107
  10. Very specific:

    If the input plan path is read-only / outside the workspace, write to ./<plan-stem>.debug.md in CWD with a console note explaining the …

    line 123
  11. Very specific:

    If no plan file is supplied, fall back to ./current-plan.debug.md.

    line 125
  12. Very specific:

    If the file exists, read it to recover existing BUG-* / SESSION-* / REV-* / RUN-* IDs.

    line 131
  13. Distinctive:

    Do not rewrite history unless the user explicitly asks.

    line 134
  14. Very specific:

    Use the canonical Conservative merge rule in references/classification-rules.md: merge a new note into an existing bug only when at least …

    line 138
  15. Distinctive:

    Every bug entry must separate four orthogonal layers:

    line 142
  16. Very specific:

    Use the canonical vocabularies and decision rules in references/classification-rules.md:

    line 170
  17. Very specific:

    Keep SKILL.md free of duplicate taxonomy definitions.

    line 180
  18. Very specific:

    Do not directly edit PLAN.md.

    line 229
  19. Very specific:

    Update <plan-stem>.debug.md via targeted patch/edit (Edit, not Write, when the file already exists).

    line 233
  20. Very specific:

    After appending or updating a bug entry, follow the status-table update protocol in references/output-layout.md.

    line 237
  21. Distinctive:

    Never accept "fixed bug" or similar vague entries.

    line 255
  22. Very specific:

    Use unknown when information is unavailable.

    line 258
  23. Distinctive:

    Before finalizing the artifact, verify:

    line 263
  24. Very specific:

    No bug is RESOLVED without an evidence-typed Verification: line.

    line 267
  25. Distinctive:

    Every bug entry separates Symptom / Root cause / Fix / Verification.

    line 268
  26. Very specific:

    Every Plan impact value other than NO_PLAN_CHANGE has a corresponding §5 row with Status: PROPOSED (or later) and a Rerun needed value.

    line 269
  27. Very specific:

    No fabricated logs, commands, files, or fixes — unknown is used wherever evidence is absent.

    line 271
  28. Very specific:

    Do not edit PLAN.md, <plan-stem>.tldr.md, or <plan-stem>.scope.md.

    line 277
  29. Very specific:

    Do not regenerate <plan-stem>.debug.md from scratch when it already exists.

    line 278
  30. Very specific:

    Do not classify implementation scope (MVP / defer / forbidden / overengineering) — that is scope-triage's job.

    line 279
  31. Very specific:

    Do not generate a D0–D6 decision trace — that is tldr-plan's job.

    line 280
  32. Very specific:

    Do not maintain F* scope anchors.

    line 281
  33. Distinctive:

    Do not paste long logs verbatim into the artifact.

    line 282
  34. Very specific:

    Do not mark a bug RESOLVED without an evidence-typed verification line.

    line 283
  35. Distinctive:

    Do not delete or renumber resolved bug entries, retest timeline rows, or plan revision suggestions.

    line 284
  36. Distinctive:

    Do not silently merge two distinct bugs (Conservative merge rule).

    line 285
  37. Very specific:

    Do not auto-trigger tldr-plan or scope-triage reruns.

    line 286
  38. Distinctive:

    Read these only when needed (per progressive disclosure):

    line 292

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Debug Log

Append-only execution record. Primary readers: the implementer mid-debug and the postmortem reviewer afterward. The source plan stays authoritative — debug-log records execution reality and may suggest plan revisions, but never silently edits PLAN.md.

What this is

debug-log records what actually happened during implementation debugging — observed failures, hypotheses, attempted fixes, retests, regressions, and (when applicable) findings that prove the source plan was wrong or incomplete. Each event is captured as a structured entry in a single per-plan artifact: <plan-stem>.debug.md.

It is the execution-record sibling to tldr-plan (audit projection) and scope-triage (boundary review):

tldr-plan     = makes the plan auditable by a human         (overwrite-from-scratch)
scope-triage  = makes the implementation boundary reviewable (overwrite-from-scratch)
debug-log     = records execution reality during debugging  (append-only)

The debug log is not a Jira tracker, not a plan, not a coding skill. It does not modify code, does not run tests, does not open issues, and does not modify the source plan, the TLDR artifact, or the scope artifact.

What this is NOT

  • Not a coding skill. Does not modify code, run tests, install dependencies, or shell out to runtime tools.
  • Not a plan or scope generator. Does not classify items as MVP / forbidden / overengineering — that is scope-triage's job. Does not generate D0–D6 decision traces — that is tldr-plan's job.
  • Not an issue tracker. No status workflows beyond the controlled status vocabulary; no assignees; no priorities beyond the bug-class taxonomy; no integration with external systems.
  • Not a changelog. Vague entries like "fixed router bug" must be rejected; every entry separates symptom, root cause, fix, and verification.
  • Not an automatic plan-patcher. When a bug reveals plan drift, the skill emits a Plan Revision Suggestion. It does not edit PLAN.md.

Relationship to sibling skills

  • tldr-plan makes the source plan auditable.
  • scope-triage makes the implementation boundary reviewable.
  • debug-log records execution reality during implementation and smoke-test debugging.

The source plan is authoritative. The debug log is a derived execution record.

If a bug reveals plan drift:

  • patch PLAN.md only when the user explicitly asks
  • otherwise emit a Plan Revision Suggestion (§5 of the artifact)
  • rerun tldr-plan if assumptions / constraints / AC / evidence changed
  • rerun scope-triage if MVP / defer / forbidden / overengineering boundaries changed

debug-log answers two questions:

  • Does this bug require patching PLAN.md?
  • After patching, do tldr-plan / scope-triage need to rerun?

It does not maintain traceability to derived scope IDs — every long-lived fact should trace back to the source plan.

When not to use

  • Pre-implementation work (planning, brainstorming, architecture exploration). Use tldr-plan / scope-triage instead.
  • A general activity log or changelog of code changes. Use git log + commit messages.
  • A one-off fix the user does not care to record. Append-only logs work best when the team will read them later.
  • Recording user feedback / feature requests / non-bug observations. Use the appropriate planning surface.

Source-of-truth rule

Primary input (authoritative):

<plan-dir>/<plan-stem>.md

Optional context (anchor navigation only):

<plan-dir>/<plan-stem>.tldr.md

Optional context (presence noted, but never an anchor source):

<plan-dir>/<plan-stem>.scope.md

Rules:

  • The source plan is authoritative. The TLDR artifact may be read to recover plan anchors (AC* / C* / D* / E* / M* / A*) when the source plan is large.
  • The scope artifact is optional context only. Its path is recorded in the header (Scope context: <path | missing, optional>) and may be acknowledged in a per-bug Related artifacts: line, but debug-log never anchors bugs to F* scope IDs.
  • Every long-lived fact should trace back to PLAN.md (or its TLDR projection). This keeps the three sibling skills cleanly layered: tldr-plan projects, scope-triage classifies, debug-log records — and only the source plan is shared ground.
  • The debug log records execution observations and may suggest plan revisions but never silently edits the source plan.

Invocation

The user invokes the skill with one of:

/debug-log @PLAN.md "<short note about the event>"
/debug-log @PLAN.md
/debug-log current plan "<short note>"
/debug-log

Behavior:

  • If <short note> is omitted, prompt the user in chat for the note before writing anything.
  • If no plan path is supplied, fall back to current plan inference (most recent plans/*.md referenced in the conversation, or ./PLAN.md in CWD).
  • The note is the user's framing of the event (new failure / suspected root cause / fix applied / retest passed / etc.). The skill classifies the event type from this note + any logs the user pasted.

Refuse-list

If the user supplies a path that already ends in .tldr.md, .scope.md, or .debug.md, refuse with one of:

Input appears to be a TLDR artifact. Run debug-log on the source plan instead. Input appears to be a scope-triage artifact. Run debug-log on the source plan instead. Input appears to be an existing debug log. Run debug-log on the source plan instead — debug-log will read the existing .debug.md automatically and append/update entries by stable ID.

Output file

Naming rule: <plan-dir>/<plan-stem>.debug.md

Input plantldr-plan outputscope-triage outputdebug-log output
plans/miles-port-unified-plan.mdplans/miles-port-unified-plan.tldr.mdplans/miles-port-unified-plan.scope.mdplans/miles-port-unified-plan.debug.md
docs/proposal.mddocs/proposal.tldr.mddocs/proposal.scope.mddocs/proposal.debug.md
PLAN.mdPLAN.tldr.mdPLAN.scope.mdPLAN.debug.md

If the input plan path is read-only / outside the workspace, write to ./<plan-stem>.debug.md in CWD with a console note explaining the relocation.

If no plan file is supplied, fall back to ./current-plan.debug.md.

Append-only rule (load-bearing — inverts the sibling pattern)

tldr-plan and scope-triage regenerate their artifacts from scratch on every run. debug-log does not.

  • If the file exists, read it to recover existing BUG-* / SESSION-* / REV-* / RUN-* IDs.
  • Update existing debug logs by targeted patch/edit, not full-file regeneration. In Claude Code, use Edit rather than Write when <plan-stem>.debug.md already exists. (Phrasing is tool-agnostic so the rule survives if the skill is reused under a different runtime; the Claude Code mapping is given as a concrete instance.)
  • Resolved entries stay in §3 Bug Entries — never delete them, never renumber BUG-* IDs.
  • Do not rewrite history unless the user explicitly asks. The whole point of an append-only log is to preserve the trail of failed hypotheses and partial fixes that led to the eventual root cause.

Merge discipline

Use the canonical Conservative merge rule in references/classification-rules.md: merge a new note into an existing bug only when at least two match signals line up. If unsure, create a new BUG-* and cross-link with Related bugs:.

Core model

Every bug entry must separate four orthogonal layers:

  1. Symptom (what failed) — Observed behavior + Failure excerpt.
  2. Root cause (why) — confidence-tagged.
  3. Fix (what changed) — Files changed + Verification command + Regression coverage.
  4. Plan impact (does this require revising PLAN.md?) — orthogonal to the first three.

A reader scanning the log should be able to extract any of the four layers without reading the others.

Bad entry:

Fixed router bug.

Good entry:

Symptom: router request hangs forever after all workers disabled.
Root cause: enable_worker updated enabled_workers but did not notify _workers_changed.
Fix: added notify_all() after state mutation in enable_worker.
Verification: TEST_PASS — pytest tests/router/test_zero_active_suspend.py -q passed.

The skill must reject vague entries unless the user has truly exhausted available evidence — in which case the missing fields are explicitly marked unknown and surfaced in §6 Remaining Risks.

Taxonomies

Use the canonical vocabularies and decision rules in references/classification-rules.md:

  • bug class
  • bug status and resolution rule
  • root-cause confidence
  • verification evidence type and Verification: field format
  • plan impact and sibling-rerun recommendation
  • revision suggestion status
  • Conservative merge rule

Keep SKILL.md free of duplicate taxonomy definitions; when a rule is needed during execution, read the reference file.

Workflow

Step 1 — Resolve artifacts

Given the input plan path, locate sibling artifacts:

<plan-stem>.tldr.md     (optional — read for plan-anchor navigation)
<plan-stem>.scope.md    (optional — presence noted, never anchored)
<plan-stem>.debug.md    (existing debug log — read in full if present)

Record paths in the artifact header. Mark missing siblings as missing. Mark Scope context as <path | missing, optional>.

Step 2 — Determine event type

Classify the user's note as one of:

  • new bug observed
  • root cause suspected
  • root cause confirmed
  • fix applied
  • retest passed
  • retest failed
  • bug reopened
  • session summary
  • final smoke-test pass
  • plan revision suggestion

Step 3 — Match to existing bug or create new

Apply the Conservative merge rule from references/classification-rules.md. Otherwise create a new BUG-* and add Related bugs:.

Step 4 — Extract evidence

Capture: test command, observed behavior, expected behavior, failure excerpt (short — summarize long logs), environment, root cause, files changed, verification, regression coverage. Do not invent logs, commands, files, or fixes — use unknown and surface in §6 Remaining Risks.

Step 5 — Link anchors

Required when available: source-plan / TLDR anchors AC* / C* / D* / E* / M* / A*. Use unknown when no plan anchor exists.

The skill does not require or maintain F* scope anchors — every long-lived fact should trace back to PLAN.md. Cross-references inside the debug log itself (BUG-* / REV-* / RUN-*) are tracked normally.

Step 6 — Decide plan impact

Classify against the 6-value Plan impact taxonomy. If not NO_PLAN_CHANGE, add a row to §5 Plan Revision Suggestions with Status: PROPOSED and the appropriate Rerun needed value (tldr-plan / scope-triage / both / none).

Do not directly edit PLAN.md.

Step 7 — Update the debug log

Update <plan-stem>.debug.md via targeted patch/edit (Edit, not Write, when the file already exists). If creating the file for the first time, use Write.

Step 8 — Update status tables

After appending or updating a bug entry, follow the status-table update protocol in references/output-layout.md. Do not remove resolved entries from §3 Bug Entries — they stay forever.

Output layout

The artifact has a fixed structure (§0–§6). Full template skeleton + per-section column specs in references/output-layout.md.

Header → §0 Session Summary → §1 Active Bugs → §2 Resolved Bugs
       → §3 Bug Entries → §4 Retest Timeline → §5 Plan Revision Suggestions
       → §6 Remaining Risks

§4 Retest Timeline precedes §5 Plan Revision Suggestions intentionally: during debugging the chronological evidence usually matters more than plan patches.

Style rules

  • Direct, technical language.
  • Tables for status / timeline / revisions; bullets for per-bug entries.
  • Never accept "fixed bug" or similar vague entries.
  • Mandatory separation of symptom / root cause / fix / verification.
  • Short log excerpts only — summarize long logs and reference the full log path if needed.
  • Use unknown when information is unavailable; pending verification when a fix is applied but not retested.
  • Stable IDs (BUG-001, SESSION-001, REV-001, RUN-001) — never renumber across edits.

Quality checklist

Before finalizing the artifact, verify:

  • File path is <plan-dir>/<plan-stem>.debug.md (or fallback per the Output file rules).
  • Header lists Source plan, TLDR context, Scope context (optional), Current smoke target, Current status.
  • No bug is RESOLVED without an evidence-typed Verification: line.
  • Every bug entry separates Symptom / Root cause / Fix / Verification.
  • Every Plan impact value other than NO_PLAN_CHANGE has a corresponding §5 row with Status: PROPOSED (or later) and a Rerun needed value.
  • Append-only preserved: existing BUG-* / REV-* / RUN-* IDs are not renumbered; resolved entries are still present.
  • No fabricated logs, commands, files, or fixes — unknown is used wherever evidence is absent.
  • Source plan, TLDR, and scope artifacts have NOT been modified.
  • Plan anchors: populated when available; no F* scope anchors anywhere.

What NOT to do

  • Do not edit PLAN.md, <plan-stem>.tldr.md, or <plan-stem>.scope.md.
  • Do not regenerate <plan-stem>.debug.md from scratch when it already exists. Read it; update by stable ID.
  • Do not classify implementation scope (MVP / defer / forbidden / overengineering) — that is scope-triage's job.
  • Do not generate a D0–D6 decision trace — that is tldr-plan's job.
  • Do not maintain F* scope anchors. Bugs link to source plan / TLDR only.
  • Do not paste long logs verbatim into the artifact. Summarize and reference.
  • Do not mark a bug RESOLVED without an evidence-typed verification line.
  • Do not delete or renumber resolved bug entries, retest timeline rows, or plan revision suggestions. Transition status; never remove rows.
  • Do not silently merge two distinct bugs (Conservative merge rule).
  • Do not auto-trigger tldr-plan or scope-triage reruns. The artifact only recommends reruns via the Rerun needed column.

References

This skill is part of the shared plan-artifact pipeline. See .claude/skills/README.md for the overview.

Read these only when needed (per progressive disclosure):

  • references/output-layout.md — full §0–§6 template + per-section column specs + status-table update protocol
  • references/bug-entry-template.md — canonical bug entry field list + per-field rules + Verification format
  • references/classification-rules.md — full taxonomies (bug class, plan impact, verification evidence type, revision status) + resolution rule + conservative merge rule + plan revision rule

Examples:

  • examples/input-session-notes.md — a router zero-active-suspend smoke-debug session
  • examples/output-debug-log.md — the corresponding .debug.md artifact

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.