<feed xmlns='http://www.w3.org/2005/Atom'>
<title>rulesets/start-work, branch main</title>
<subtitle>Claude Code skills, rules, and language bundles
</subtitle>
<id>https://git.cjennings.net/rulesets/atom?h=main</id>
<link rel='self' href='https://git.cjennings.net/rulesets/atom?h=main'/>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/rulesets/'/>
<updated>2026-05-06T11:17:08+00:00</updated>
<entry>
<title>refactor(skills): convert 16 user-invoked skills to commands</title>
<updated>2026-05-06T11:17:08+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-05-06T11:17:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/rulesets/commit/?id=aa6924591127970d3241ab6b1a50f4bab457da27'/>
<id>urn:sha1:aa6924591127970d3241ab6b1a50f4bab457da27</id>
<content type='text'>
I converted 16 user-invoked skills to commands. Skills cost ~150-300 tokens each per session for descriptions the model uses to auto-route. Commands cost nothing until you type the slash. These 16 are workflows I always trigger deliberately. The auto-routing wasn't earning its keep. This reclaims ~4-5k tokens per session.

Nine skills stayed where auto-routing genuinely helps: debug, root-cause-trace, five-whys, add-tests, frontend-design, humanizer, playwright-js, playwright-py, and pairwise-tests. Pairwise-tests stays a skill because its helper files don't fit a single-file command shape.

For arch-decide, I preserved the upstream MIT LICENSE alongside the command at .claude/commands/arch-decide.LICENSE so attribution stays intact.
</content>
</entry>
<entry>
<title>refactor: scope start-work refactor audit to every touched file</title>
<updated>2026-04-23T06:49:26+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-04-23T06:49:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/rulesets/commit/?id=7e008b7709283f789c194ff23a6c61f827a93fa9'/>
<id>urn:sha1:7e008b7709283f789c194ff23a6c61f827a93fa9</id>
<content type='text'>
The old "refactor pass" framed the step as a polish over new code. Expanded to "refactor audit" — walks each touched file against the checklist, top to bottom, and every finding lands somewhere: fixed on this branch or filed as a ticket. Drops "skip" as a first-class disposition. Tightens Phase 6 gate 3 to require filed ticket IDs, not just surfaced intent.
</content>
</entry>
<entry>
<title>feat(skills): add start-work</title>
<updated>2026-04-22T13:00:27+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-04-22T13:00:27+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/rulesets/commit/?id=36bf98003a794cd8c780c32a6246cb3eaea04148'/>
<id>urn:sha1:36bf98003a794cd8c780c32a6246cb3eaea04148</id>
<content type='text'>
A workflow for picking up a specific task (Linear ticket, GitHub issue, todo.org heading, or a described scope) and carrying it through to handoff. Seven phases, three user-approval gates.

The phases in order:
- Claim: mark in-progress, assign, label, verify project.
- Justify (gate 1): benefits, costs, impact, urgency, effort, alternatives, ticket quality.
- Approach (gate 2): root cause, risk, test strategy, migration, flag, commit decomposition, branch name.
- Implement (TDD): red, green, edge cases, and a refactor pass with a nine-point language-agnostic checklist.
- Verify: end-to-end or scripted manual test in the local environment. Playwright for web projects, step-by-step walkthrough for everything else. Never production.
- Ready to commit (gate 3): report, deviations from the approach, any follow-ups spotted.
- Hand off to the Review-and-Publish flow in commits.md.

Cross-referenced from testing.md, commits.md, subagents.md, review-code, brainstorm, arch-design, arch-decide, debug, pairwise-tests, playwright-js, and playwright-py.
</content>
</entry>
</feed>
