<feed xmlns='http://www.w3.org/2005/Atom'>
<title>rulesets/codify, 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>docs: split Linear vs PR structure; propagate content-scope rule to Tier 1 skills</title>
<updated>2026-04-25T00:11:41+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-04-25T00:11:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/rulesets/commit/?id=e5b54c24afdd569765b215732884bd0a8f2758a9'/>
<id>urn:sha1:e5b54c24afdd569765b215732884bd0a8f2758a9</id>
<content type='text'>
Linear ticket bodies are now Problem + Fix only. PR descriptions keep
the four-section format (Problem, Fix, Why this fixes it, How it was
tested). Linear's GitHub integration handles the cross-link via the
PR body's Linear: line.

Cross-ref to the content-scope rule appended at the end of each Tier 1
skill that produces public artifacts: testing.md, arch-document,
arch-decide, arch-design, review-code, respond-to-review, brainstorm,
codify. Single-source the rule in commits.md, point at it from each
output-producing skill.
</content>
</entry>
<entry>
<title>rename: memorize → codify</title>
<updated>2026-04-19T19:48:04+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-04-19T19:48:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/rulesets/commit/?id=8b9eb12065ef567213bd3b78f2a4617610a83aa0'/>
<id>urn:sha1:8b9eb12065ef567213bd3b78f2a4617610a83aa0</id>
<content type='text'>
"memorize" implied passive storage (same mental model as auto-memory).
"codify" captures the actual operation: editorial selection, specific
phrasing, deliberate commit to a lasting artifact.

Changes:
- memorize/ → codify/
- SKILL.md: name: codify; title updated; all references changed
- Default CLAUDE.md section: ## Memorized Insights → ## Codified Insights
- Makefile SKILLS updated
- Old ~/.claude/skills/memorize symlink removed; codify symlink created
</content>
</entry>
</feed>
