Skip to content
Back to skills

Qstack Fix Root Causes

ASecurity

Reproduce and diagnose a failure until its root cause is supported by direct evidence, or trace a constraint presented as fixed down to what actually fixes it. Use for debugging, recurring symptoms, restart-only failures, a proposed guard that may only hide the real defect, or a claim that something is impossible, too expensive, or has always been done this way.

  • 7 stars
  • 0 votes
  • 0 copies
  • 3 views
  • Added September 5, 2026
ai-agentsdebugginggit

Works with

  • cursor

Security analysis

A100/100

Pro scans all 2 files and shows the line behind each finding

Scanned September 21, 2026

npx -y skills add hani-q/qstack --skill qstack-fix-root-causes --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Qstack Fix Root Causes?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Qstack Fix Root Causes
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/hani-q-qstack-fix-root-causes/badge)](https://www.skillsdirectory.com/skills/hani-q-qstack-fix-root-causes)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: qstack-fix-root-causes
description: >
  Reproduce and diagnose a failure until its root cause is supported by direct
  evidence, or trace a constraint presented as fixed down to what actually
  fixes it. Use for debugging, recurring symptoms, restart-only failures, a
  proposed guard that may only hide the real defect, or a claim that something
  is impossible, too expensive, or has always been done this way.
license: MIT
---

# Fix root causes

Diagnosis precedes remediation. A request to diagnose is read-only and does not
authorize implementing a fix, adding instrumentation, clearing state, or
changing every related instance. It also does not authorize commits, pushes,
publishing, deployment, or external messages.

## Diagnose a failure

1. Reproduce the symptom with the smallest faithful path. If it cannot be
   reproduced, state that limitation and keep the eventual fix unverified.
2. Gather the actual error, state, inputs, and timing. Use existing logs and
   observability first; instrument only when the request authorizes that edit.
3. Follow the causal chain by repeatedly asking why each observed condition
   exists. Stop at the layer whose behavior explains the full reproduction.
4. Reject symptom patches such as a nil guard that merely silences a crash or a
   long comment defending a workaround.
5. Search for the same causal pattern across the relevant codebase. Report
   out-of-scope instances, but modify only the authorized scope.
6. For failures that appear only after restart, inspect changing persistent
   state before unchanged code: configuration, caches, lockfiles, serialized
   state, and abandoned temporary artifacts. Clearing state can support a
   diagnosis; it is not itself a durable fix.

Report the reproduction, evidence, causal chain, root cause, pattern scan,
proposed repair, and verification path. Implement only when the user's request
includes fixing the problem.

## Trace a constraint

A cost, an estimate, a limit, or "we always do it this way" is a claim with a
source, not a fact to plan around. Follow its causal chain the same way.

1. Quote the constraint as stated and name its source: a person, a ticket, a
   vendor quote, a past plan, or a measurement. "The ticket says so" locates
   the source; it is not the evidence.
2. Break the constraint into the parts that produce it. Stop one or two levels
   below the claim, where the verdict stops changing.
3. Tag each part. Fixed: physics, math, or a measured limit, with the evidence
   cited. Priced: a contract, regulation, or policy that can change, with its
   change cost named. Inherited: a habit, an old estimate, or an analogy to a
   past project, with nothing behind it.
4. Compute the floor from the fixed parts alone, using the few parts that
   dominate it. Say what the gap between the floor and the claim is made of
   and whether it is removable.

Report the constraint, its source, each part with its tag and evidence, the
floor, the gap, and the cheapest test that would settle it. Inside a plan, an
inherited constraint becomes an open question, never a requirement.

Adapted from Lauren Tan's PStack
[`principle-fix-root-causes`](https://github.com/cursor/plugins/blob/60c641e4fad674784b30abcf9f8915dea39df38d/pstack/skills/principle-fix-root-causes/SKILL.md)
at commit `60c641e4fad674784b30abcf9f8915dea39df38d` under the MIT License.
See [third-party notices](../../THIRD_PARTY_NOTICES.md). The constraint
section follows the method in Farnam Street's
[What is First Principles Thinking?](https://fs.blog/first-principles/).

Files in this skill

  • SKILL.md2 KB
  • agents/openai.yaml301 B

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.