Fixloop (deprecated)
Deprecated 2026-07-05 — do not install or invoke. Production incident debugging now splits into three pieces:
- Handles: per-stack one-liners live in the Matias profile's
STACK.md (Sentry evidence + known-good commands).
- Method: the
diagnosing-bugs skill from github.com/mattpocock/skills (skills/engineering/diagnosing-bugs).
- Repo footguns: each repo's
AGENTS.md "Debugging notes" section.
The original skill body is preserved below for history only.
Vocabulary
- Alerting surface: where production errors surface automatically. Default: Sentry.
- Ledger: the durable incident record. Default: GitHub issues. One issue per incident grouping. The ledger is the only durable artifact of an investigation.
- Handles doc:
DEBUGGING.md at the host repo root — project handles, known-good commands, gotchas, symptom routing.
- Evidence pass: the read-only investigation. See references/evidence.md.
- Doctor: first-run discovery that probes the stack and writes the handles doc. See references/doctor.md.
First Move
Read DEBUGGING.md at the host repo root.
- Exists → proceed with its handles, commands, and gotchas.
- Missing → run the doctor (references/doctor.md), write
DEBUGGING.md, then proceed.
Also read the host repo's agent instructions (AGENTS.md, CLAUDE.md). Repo policy wins over this skill's defaults — verification commands, testing policy, language rules, deploy path.
Entry Points
- Alert-driven: "run the Sentry loop", error spike, regression alert → run the full loop from step 2.
- Report-driven: a customer or user reports a production bug with no alert in hand → skip alert discovery, start the evidence pass, search the alerting surface for a matching grouping anyway, and still record the incident in the ledger.
Invoked with no specific incident → alert-driven full loop.
The Loop
- Start clean. Confirm branch, remote, and dirty state. Never disturb unrelated work.
- Inspect the alerting surface. Unresolved and recently regressed production issues. Prioritize by last-seen recency, user impact, and proximity to recent deploys. Capture IDs, first/last seen, event count, release, environment, culprit, URL, request/replay IDs when available. Inspect the latest event — never decide impact from the title alone. When several groupings are one user journey, merge them into one incident and list every alert ID.
- Classify. Search the ledger for the grouping IDs before creating anything. Open match → fresh evidence comment. Closed match with a newer event → reopen as regression. No match → new ledger issue. Templates: references/ledger.md.
- Evidence pass (read-only): references/evidence.md. Comment findings, root cause confidence, and recommendation on the ledger issue.
- Decide.
- Fix when evidence shows a current product bug, a missing production-compatible data guard, config/deploy drift that belongs in the repo, or a missing guardrail.
- Do not fix when the event is stale on current code/data, the grouping is bot/noise, or the only action is operational outside the repo. Comment the rationale, close the ledger issue, resolve or ignore on the alerting surface.
- Fix. Smallest production-compatible change, scoped to the ledger evidence. Never weaken auth, permissions, or product contracts to silence an error.
- Verify. Use the host repo's verification workflow (handles doc + repo instructions). Propose regression coverage in the ledger issue; write tests only when repo policy or the user asks.
- Ship. Follow the repo's deploy path. Commit message references the ledger issue and alert IDs.
- Close the loop. Ledger comment with root cause, fix commit, verification results, deploy status. Close the ledger issue only after the deploy is complete or explicitly not required. Resolve the alert with the ledger reference.
Repeat from step 2 while actionable alerts remain or until the user stops the loop.
Rules
- The evidence pass is read-only. No production writes without explicit user approval.
- Never print secrets, tokens, PII, or raw env values.
- One ledger issue per incident grouping; reopen instead of duplicating.
- If the alerting CLI or token is missing or unauthorized, report the blocker and stop — do not guess from code.
- Do not stage or overwrite unrelated dirty work; stop and report the conflict.
- New gotcha discovered (hanging command, secret-leaking flag, unsupported subcommand) → append it to the handles doc. Include the handles-doc change in the fix commit; if no fix ships, commit the doc change alone.
Done
Anti-Patterns
- Diagnosing from the alert title without opening the latest event.
- Calling root cause from one surface — cross-check at least two.
- Writing a fix before the evidence pass.
- A second incident write-up outside the ledger — the ledger is the only durable artifact.
- Letting this skill's defaults override host repo policy.
1---2name: fixloop3description: Fixloop (deprecated)4---56# Fixloop (deprecated)78**Deprecated 2026-07-05 — do not install or invoke.** Production incident debugging now splits into three pieces:910- **Handles**: per-stack one-liners live in the Matias profile's `STACK.md` (Sentry evidence + known-good commands).11- **Method**: the `diagnosing-bugs` skill from [github.com/mattpocock/skills](https://github.com/mattpocock/skills) (`skills/engineering/diagnosing-bugs`).12- **Repo footguns**: each repo's `AGENTS.md` "Debugging notes" section.1314The original skill body is preserved below for history only.1516## Vocabulary1718- **Alerting surface**: where production errors surface automatically. Default: Sentry.19- **Ledger**: the durable incident record. Default: GitHub issues. One issue per incident grouping. The ledger is the only durable artifact of an investigation.20- **Handles doc**: `DEBUGGING.md` at the host repo root — project handles, known-good commands, gotchas, symptom routing.21- **Evidence pass**: the read-only investigation. See [references/evidence.md](references/evidence.md).22- **Doctor**: first-run discovery that probes the stack and writes the handles doc. See [references/doctor.md](references/doctor.md).2324## First Move2526Read `DEBUGGING.md` at the host repo root.2728- Exists → proceed with its handles, commands, and gotchas.29- Missing → run the doctor ([references/doctor.md](references/doctor.md)), write `DEBUGGING.md`, then proceed.3031Also read the host repo's agent instructions (`AGENTS.md`, `CLAUDE.md`). Repo policy wins over this skill's defaults — verification commands, testing policy, language rules, deploy path.3233## Entry Points3435- **Alert-driven**: "run the Sentry loop", error spike, regression alert → run the full loop from step 2.36- **Report-driven**: a customer or user reports a production bug with no alert in hand → skip alert discovery, start the evidence pass, search the alerting surface for a matching grouping anyway, and still record the incident in the ledger.3738Invoked with no specific incident → alert-driven full loop.3940## The Loop41421. **Start clean.** Confirm branch, remote, and dirty state. Never disturb unrelated work.432. **Inspect the alerting surface.** Unresolved and recently regressed production issues. Prioritize by last-seen recency, user impact, and proximity to recent deploys. Capture IDs, first/last seen, event count, release, environment, culprit, URL, request/replay IDs when available. Inspect the latest event — never decide impact from the title alone. When several groupings are one user journey, merge them into one incident and list every alert ID.443. **Classify.** Search the ledger for the grouping IDs before creating anything. Open match → fresh evidence comment. Closed match with a newer event → reopen as regression. No match → new ledger issue. Templates: [references/ledger.md](references/ledger.md).454. **Evidence pass** (read-only): [references/evidence.md](references/evidence.md). Comment findings, root cause confidence, and recommendation on the ledger issue.465. **Decide.**47 - Fix when evidence shows a current product bug, a missing production-compatible data guard, config/deploy drift that belongs in the repo, or a missing guardrail.48 - Do not fix when the event is stale on current code/data, the grouping is bot/noise, or the only action is operational outside the repo. Comment the rationale, close the ledger issue, resolve or ignore on the alerting surface.496. **Fix.** Smallest production-compatible change, scoped to the ledger evidence. Never weaken auth, permissions, or product contracts to silence an error.507. **Verify.** Use the host repo's verification workflow (handles doc + repo instructions). Propose regression coverage in the ledger issue; write tests only when repo policy or the user asks.518. **Ship.** Follow the repo's deploy path. Commit message references the ledger issue and alert IDs.529. **Close the loop.** Ledger comment with root cause, fix commit, verification results, deploy status. Close the ledger issue only after the deploy is complete or explicitly not required. Resolve the alert with the ledger reference.5354Repeat from step 2 while actionable alerts remain or until the user stops the loop.5556## Rules5758- The evidence pass is read-only. No production writes without explicit user approval.59- Never print secrets, tokens, PII, or raw env values.60- One ledger issue per incident grouping; reopen instead of duplicating.61- If the alerting CLI or token is missing or unauthorized, report the blocker and stop — do not guess from code.62- Do not stage or overwrite unrelated dirty work; stop and report the conflict.63- New gotcha discovered (hanging command, secret-leaking flag, unsupported subcommand) → append it to the handles doc. Include the handles-doc change in the fix commit; if no fix ships, commit the doc change alone.6465## Done6667- [ ] Every inspected alert is fixed and resolved, ignored with documented rationale, or left open with a ledger comment saying why.68- [ ] Ledger issues carry the alert IDs; alerts carry the ledger reference.69- [ ] Final response lists: alerts touched, ledger URLs, commits pushed, verification run, deploy state, residual caveats.7071## Anti-Patterns7273- Diagnosing from the alert title without opening the latest event.74- Calling root cause from one surface — cross-check at least two.75- Writing a fix before the evidence pass.76- A second incident write-up outside the ledger — the ledger is the only durable artifact.77- Letting this skill's defaults override host repo policy.