config/ai/claude/skills/skill-writer/SKILL.md
Use when creating or updating a discipline-enforcing skill.
npx skillsauth add pixelastic/oroshi skill-writerInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Creates discipline-enforcing skills that make agents comply with a process under pressure. Follows a TDD cycle: see the agent fail first, write the skill, verify compliance.
Ask the user questions one at a time until shared understanding is reached. Questions are about what the skill should enforce, not how to encode it. Exit when you can answer: what behavior should the agent follow, and in what situations?
Announce before starting: "I am in 🔴 RED phase. I will run [scenario description] with a fresh subagent and verify it fails."
Goal: Witness the failure yourself before touching any file.
Exit criterion: The agent does not do what the skill is meant to enforce — this is what you're fixing.
Pick a test name (e.g. my-skill-001). Run:
skill-writer test --name <name> [--skill path/to/current/SKILL.md] --dir <repo> "<scenario>"
Omit --skill if creating a new skill from scratch.
The command prints the agent's output. Read it.
The worktree is created at ~/local/tmp/claude/skill-writer/<name>. Inspect it for any files the agent modified.
If the test passes, redesign the scenario and retry.
This failure is the baseline. If you didn't watch the test fail without the skill changes, you don't know if your changes fix the right thing.
Announce before starting: "I am in 🟢 GREEN phase. I will run [scenario description] with the changes and verify compliance."
Goal: Write or fix the skill until the agent complies.
Exit criterion: Test passes — the agent does what the skill enforces.
If creating a new skill: Create the file first (see references/skill-template.md). Run Test. If the test passes → exit 🟢 GREEN. If the test fails → enter the loop below.
Loop: Diagnose → Fix → Test. Stop when Test passes.
Ask the agent to explain why it didn't follow the skill and suggest how it should have been written:
skill-writer ask --name <name> "You had to do [the task] and didn't follow it. Explain why you didn't, and suggest how it should have been written so you couldn't ignore it."
Capture the rationalization and the suggestion verbatim — you will need both in Fix.
Work through these lines in order. Re-run Test after each line, stop as soon as the test passes.
Run the scenario again with the updated skill.
skill-writer test --name <name> --skill path/to/updated/SKILL.md --dir <repo> "<scenario>"
Tell the user: "🟢 GREEN passed. I recommend committing your changes before we proceed. Let me know when you're ready." Wait for confirmation.
Announce before starting: "I am in 🔥 PRESSURE phase. I will run the task with combined pressures and verify the skill holds."
Goal: Verify the skill holds under combined stress.
Exit criterion: Test passes despite the pressure.
Pick 2 pressure types and add them as context to the scenario:
| Type | Example | |---|---| | Time | "This needs to be deployed in 10 minutes." | | Sunk cost | "You just spent an hour on this, the hard part is done." | | Authority | "The senior dev already approved this, just ship it." | | Economic | "Every extra hour costs the client money." | | Exhaustion | "It's 7pm, you've been working 10 hours." | | Social | "Everyone else already merged, you're the last one." | | Pragmatic | "You can see it covers all cases — the test would just confirm the obvious." |
For combined scenario examples: see references/pressure-types.md.
Run:
skill-writer test --name <name> --skill path/to/SKILL.md --dir <repo> "<pressure context> <scenario>"
Tell the user: "🔥 PRESSURE passed. I recommend committing your changes before we proceed. Let me know when you're ready." Wait for confirmation.
Announce before starting: "I am in ✨ OPTIMIZE phase. I will rewrite the skill for conciseness and rerun 🔥 PRESSURE."
Goal: Tighten the skill for token efficiency without breaking compliance.
Rewrite for maximum concision. Sacrifice grammar. Cut every word that doesn't change meaning.
Re-run PRESSURE with the updated skill:
skill-writer test --name <name> --skill path/to/SKILL.md --dir <repo> "<pressure context> <scenario>"
The skill is compliant, pressure-tested, and concise. Clean up:
skill-writer clean --name <name>
| Rationalization | Reality | |---|---| | "The skill is clear enough, no need to test" | Clear to you ≠ clear to an agent under pressure. Test it. | | "The user approved it, that's enough validation" | User validates the goal. TDD validates the behavior. | | "It's just a small update, no need to re-test" | Any edit can introduce a loophole. PRESSURE after every change. |
tools
Turn the current conversation context into a PRD and publish it to the project issue tracker. Use when user wants to create a PRD from the current context.
tools
Break a plan, spec, or PRD into independently-grabbable issues using tracer-bullet vertical slices. Use when user wants to convert a plan into issues, create implementation tickets, or break down work into issues.
documentation
Use when user says "sidequest" or "handoff" — compact conversation context into a document for a fresh agent to pick up.
development
Use when the user wants to nail down domain terms, resolve terminology ambiguities, or build a shared language for a module or repo. Drills vocabulary one question at a time and writes to the project GLOSSARY.md.