Skills cursor plugins pstack

principle-fix-root-causes

Use it when:
Debugging, and you want the fault fixed at its source rather than guarded where the error showed.
It does:
Reproduces first, asks why at each step until it reaches a wrong decision in the code, and instruments instead of guessing.
Key test:
Is the state that triggered the symptom legitimate? If it should never exist, a check where it broke only hides the bug.
Runs:
Only when you call it.

Skill 11 of 14 in the pstack bundle, after principle-type-system-discipline and before principle-prove-it-works.

TL;DR

One of pstack's principle skills, in Cursor's plugin repo. A symptom fix hides the evidence and leaves the fault free to surface somewhere else, and each one leaves a workaround for a bug nobody named. Guards, retries, swallowed errors, clamped values and discarded state are named as the usual ways to hide a bug. When something fails only after a restart, it suspects persisted state first: config files, caches, lock files, serialized state. It finds every place with the same fault, not only the one at hand, and fixes them all. A workaround that needs a paragraph of comment to justify it means the code is wrong. When the deciding fact took a deep dig, it proposes the cheap, always-on signal that would have shown it at first look.

Summarizes the skill at 8ecfb19.

npx skills add https://github.com/cursor/plugins --skill principle-fix-root-causes
Total Downloads
5,700 on skills.sh, Nov 9, 2026
Repo stars
15,776 cursor/plugins
First seen
May 24, 2026 on skills.sh
Weekly Downloads
320
-14% over the 8 weeks to Nov 9
Weekly values
Week toInstalls
Sep 21373
Sep 28413
Oct 5511
Oct 12410
Oct 19513
Oct 26500
Nov 2378
Nov 9320
Category

Find root causes, review code and test what you built.

Everything for building software: planning, coding, debugging, design, frameworks, cloud, agents and skills.

Type

Knowledge and rules the agent applies while it works: best practices, design principles, API references.

Effect

Adds no side effects of its own. It shapes how the agent thinks, writes or reviews. Guidelines and routers are always effect:none, even when the task they support edits code.

Needs

Instructions only. Works in any agent that supports skills.

Publisher

Everyone else. Unverified vendor claims default to community.

Topics

SKILL.md

From cursor/plugins at 8ecfb19. Checked daily, last changed Nov 6, 2026.

Frontmatter
name: principle-fix-root-causes
description: "Apply when debugging. Trace each symptom back to the first place the system went wrong and fix it there. A guard is a fix only when the state it handles is legitimate."
disable-model-invocation: true

Fix Root Causes

When debugging, fix the fault, not the place where it surfaced. The symptom is where a wrong state became visible. The root cause is the first place the system did something it should not do, or failed to handle a state it should handle.

Why: A symptom fix hides the evidence and leaves the fault free to surface somewhere else. Each one makes the system harder to reason about, because the code now carries a workaround for a bug that nobody named.

Pattern:

  • Reproduce first.
  • Ask "why" at each step until the answer is a wrong decision in the code, not a consequence of an earlier one.
  • When stuck, instrument. Read the actual error and the actual state. Do not guess.
  • Ask whether the state that triggered the symptom is legitimate. If the system may be in that state, the code that broke on it is the root cause, and handling the state there is the fix. If the state should never exist, a check where it broke hides the bug. Find what produced the state. Guards, retries, swallowed errors, clamped values, and discarded state are the usual ways to hide a bug.
  • When something fails only after a restart, suspect persisted state first: config files, caches, lock files, serialized state.
  • Check for the pattern, not just the instance. Find every place with the same fault and fix them all.
  • If a workaround needs a paragraph-long comment to justify it, the code is wrong. Fix the code, not the comment.
  • If the deciding fact took a deep dig to find, propose the cheap, always-on signal that would have shown it at first look.