principle-outcome-oriented-execution — Claude Code skill: rewrites
A rule for planned rewrites and migrations: the agent converges on the target architecture instead of propping up intermediate states with compatibility code.
npx skills add backnotprop/pstack --skill principle-outcome-oriented-execution -a claude-codeWhat principle-outcome-oriented-execution does
The skill sets one expectation for the agent: optimize for the verifiable end state, not for smoothness at every step along the way. Intermediate breakage is fine when it is planned, scoped and reversible.
It ships as a single SKILL.md with four parts: the reasoning, the core rule, and two guardrail lists. The guardrails name the scope outright — planned rewrites and migrations with explicit phase boundaries. You declare up front where temporary breakage is acceptable, and keep high-signal checks running for the areas you are actively touching. Full static and runtime verification is required when the plan finishes.
The frontmatter carries disable-model-invocation: true, so the agent will not pull it in on its own; you have to invoke it. And it is not a blanket rule for every commit. On a live project with no phase boundaries it produces exactly the instability you were trying to avoid.
What it helps with
- migrate to a new architecture without dragging a compatibility layer along
- tell the agent where temporary breakage is acceptable and where it is not
- delete throwaway code that outlived its phase
- agree on verification points before the rewrite starts
- stop the agent from patching intermediate states just to keep tests green
Example prompts for the agent
- Apply principle-outcome-oriented-execution: we are rewriting the data access layer, phase boundaries are in the plan
- Use the principle-outcome-oriented-execution skill for the schema migration, breakage in the reports module is acceptable
- Run this migration under principle-outcome-oriented-execution and finish with full static and runtime verification
How to install principle-outcome-oriented-execution
1Skills CLI (Vercel)
npx skills add backnotprop/pstack --skill principle-outcome-oriented-execution -a claude-code2Manually: put the files in place
~/.claude/skills/principle-outcome-oriented-execution/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/principle-outcome-oriented-execution/
1Skills CLI (Vercel)
npx skills add backnotprop/pstack --skill principle-outcome-oriented-execution -a codex2Manually: put the files in place
.agents/skills/principle-outcome-oriented-execution/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add backnotprop/pstack --skill principle-outcome-oriented-execution -a cursor2Manually: put the files in place
.cursor/skills/principle-outcome-oriented-execution/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install backnotprop/pstack principle-outcome-oriented-execution2Manually: put the files in place
.github/skills/principle-outcome-oriented-execution/SKILL.md1Skills CLI (Vercel)
npx skills add backnotprop/pstack --skill principle-outcome-oriented-execution -a gemini-cli2Platform CLI
gemini skills install https://github.com/backnotprop/pstack --path skills/principle-outcome-oriented-executionManually: put the files in place
.devin/skills/principle-outcome-oriented-execution/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add backnotprop/pstack --skill principle-outcome-oriented-execution -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about principle-outcome-oriented-execution
How do I install principle-outcome-oriented-execution in Claude?
Run npx skills add backnotprop/pstack --skill principle-outcome-oriented-execution -a claude-code. The skill file then sits at ~/.claude/skills/principle-outcome-oriented-execution/SKILL.md.
What does principle-outcome-oriented-execution do?
It points the agent at the verifiable end state during planned rewrites and migrations. Intermediate states do not have to stay working as long as the breakage is planned and reversible.
Why doesn't the skill trigger on its own?
It sets disable-model-invocation: true, so the model will not call it unprompted. Name the skill explicitly when you start a migration with phase boundaries.
Source text
SKILL.md · MIT
--- name: principle-outcome-oriented-execution description: "Apply during planned rewrites and migrations with explicit phase boundaries. Converge on the target architecture; don't preserve smooth intermediate states with throwaway compatibility code." disable-model-invocation: true --- # Outcome-Oriented Execution Optimize for the intended, verifiable end state rather than preserving smooth intermediate states. **Why:** Keeping every intermediate step fully stable often creates temporary compatibility code that becomes long-lived debt. Converge on the target architecture and prove correctness at explicit verification boundaries. **Core rule:** - Prioritize end-state integrity over transitional stability - Intermediate breakage is acceptable when it is planned, scoped, and reversible **Guardrails:** - Use this for planned rewrites and migrations with explicit phase boundaries - Declare where temporary breakage is acceptable - Keep high-signal checks for actively touched areas while migrating - Require full static and runtime verification at plan completion
© backnotprop · MIT · backnotprop/pstack