<feed xmlns='http://www.w3.org/2005/Atom'>
<title>rulesets, 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-04-19T23:25:11+00:00</updated>
<entry>
<title>skills: add create-v2mom; extend add-tests with refactor-for-testability</title>
<updated>2026-04-19T23:25:11+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-04-19T23:25:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/rulesets/commit/?id=c90683ed477c891e54034de595c97f149c420c17'/>
<id>urn:sha1:c90683ed477c891e54034de595c97f149c420c17</id>
<content type='text'>
New standalone create-v2mom skill (converted from the homelab
workflow template, markdown + YAML frontmatter, context-hygiene
references removed in favor of the global session-context protocol).

add-tests/SKILL.md gains a 'Core Principle — Refactor for Testability
First' section and three inserts into the phase instructions:
- Phase 1 flags testability-blocked functions during inventory
- Phase 2 surfaces refactor-first candidates per function
- Phase 3 adds a test-failure-vs-production-bug triage step

Sourced from the retired refactor.org homelab workflow (which was a
TDD-for-testability guide, not a general refactoring guide — general
refactoring is already covered by the /refactor slash command).
</content>
</entry>
<entry>
<title>docs(todo): add OV-1 skill build plan triggered by SOFWeek (May 2026)</title>
<updated>2026-04-19T22:53:46+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-04-19T22:53:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/rulesets/commit/?id=e7d39522dd5f483a057cac762db30a657ff56e2b'/>
<id>urn:sha1:e7d39522dd5f483a057cac762db30a657ff56e2b</id>
<content type='text'>
</content>
</entry>
<entry>
<title>docs(todo): expand c4-* rename entry with DoD notation landscape (SysML / DoDAF / UAF / IDEF1X)</title>
<updated>2026-04-19T22:48:09+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-04-19T22:48:09+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/rulesets/commit/?id=92e4ecf5fb60f3050ec1537b8d1bc16c85ebb1b7'/>
<id>urn:sha1:92e4ecf5fb60f3050ec1537b8d1bc16c85ebb1b7</id>
<content type='text'>
</content>
</entry>
<entry>
<title>docs(todo): note c4-* rename trigger and future notation skills (UML, ERD, arc42)</title>
<updated>2026-04-19T22:43:43+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-04-19T22:43:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/rulesets/commit/?id=99804f83e8400240a82e99083c7292fabfe53437'/>
<id>urn:sha1:99804f83e8400240a82e99083c7292fabfe53437</id>
<content type='text'>
</content>
</entry>
<entry>
<title>feat(hooks+skills): destructive-bash confirm + architecture suite + problem-solving routing</title>
<updated>2026-04-19T22:39:33+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-04-19T22:39:33+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/rulesets/commit/?id=560c29ade19be74968d8fec26d469913d383f2e8'/>
<id>urn:sha1:560c29ade19be74968d8fec26d469913d383f2e8</id>
<content type='text'>
Three improvements bundled together:

1. New hook — `destructive-bash-confirm.py` (PreToolUse/Bash):
   Gates `git push --force`, `git reset --hard`, `git clean -f`,
   `git branch -D`, and `rm -rf` behind a confirmation modal with the
   command, local context (branch, uncommitted counts, targeted paths),
   and a severity banner. Elevates severity when force-pushing protected
   branches (main/master/develop/release/prod) or when rm -rf targets
   root, home, or wildcard paths. Reuses _common.py.

2. Architecture suite rename — the "Part of the arch-* suite" footer in
   arch-design, arch-decide, arch-document, arch-evaluate descriptions
   now reads "Part of the architecture suite (arch-design / arch-decide
   / arch-document / arch-evaluate + c4-analyze / c4-diagram for
   notation-specific diagramming)." Matching footers added to c4-analyze
   and c4-diagram. c4-* keep their framework-specific prefix (C4 is a
   notation, arch-* is framework-agnostic workflow) but are now
   discoverable as suite members.

3. Problem-solving cluster routing — added YAML frontmatter with
   descriptions (including "Do NOT use for X (use Y)" clauses) to
   debug/SKILL.md and fix-issue/SKILL.md. Previously both had no
   frontmatter at all, which broke skill-router discovery. The four
   cluster members (debug, fix-issue, root-cause-trace, five-whys) now
   route unambiguously by description alone.
</content>
</entry>
<entry>
<title>feat(rules): add subagents.md — when, how, and when not to delegate</title>
<updated>2026-04-19T22:23:37+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-04-19T22:23:37+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/rulesets/commit/?id=c96296a30e3f712561b5f05f3f1e9d95588f643e'/>
<id>urn:sha1:c96296a30e3f712561b5f05f3f1e9d95588f643e</id>
<content type='text'>
Cross-cutting rule covering subagent hygiene:

- Decision table: parallel-safe (read-only investigation, independent
  test failures, multi-domain research) vs sequential-with-review
  (plan execution, coupled edits) vs never-parallel (concurrent writes)
  vs don't-subagent-at-all (target known, work fits in ~10 tool calls).
- Prompt contract: scope / pasted context / explicit 'do NOT' list /
  required output format. Missing any field yields shallow work.
- Context-pollution rule: subagents absorb noise the main thread
  shouldn't carry. When one fails, dispatch a fix-agent with the
  failure report — do not retry in the orchestrator.
- Review-gate cadence: after each sequential task, or every ~3 in
  parallel batches.
- Anti-patterns including parallel implementation on overlapping
  files, broad 'fix all the tests' prompts, timeout-tuning to mask
  flakes, and letting the agent decide scope.

Added one-line cross-references to subagents.md from debug/,
review-code/, and finish-branch/ SKILL.md — the skills that most
rely on delegation.

Clean-room synthesis from NeoLabHQ/context-engineering-kit's
subagent-driven-development pattern (MIT).
</content>
</entry>
<entry>
<title>feat(hooks): shared _common.py helpers + systemMessage AI-attribution warning</title>
<updated>2026-04-19T22:14:54+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-04-19T22:14:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/rulesets/commit/?id=208a079f4230edd520f5aa92288ae48247340910'/>
<id>urn:sha1:208a079f4230edd520f5aa92288ae48247340910</id>
<content type='text'>
Consolidates stdin-parse and response-emit across the two confirm hooks
into `hooks/_common.py` (stdlib-only, sibling symlinked alongside the
hooks it serves). Net ~28 lines less duplication.

Adds a `systemMessage` banner alongside the confirmation modal when the
commit message or PR title/body contains AI-attribution patterns:

  - Co-Authored-By: Claude|Anthropic|GPT|AI trailers
  - 🤖 robot emoji
  - "Generated with Claude Code" / similar footers
  - "Created with …" / "Assisted by …" variants

Scanning targets structural leak patterns only — bare mentions of
"Claude" or "Anthropic" in diff context don't fire, so discussing the
tools themselves in a commit message doesn't false-positive.

Clean-room synthesis from GowayLee/cchooks (MIT) — specifically, the
systemMessage-alongside-reason pattern and event-aware stdin helpers.
</content>
</entry>
<entry>
<title>feat(hooks): add global hooks — PreCompact priorities + git/gh confirm modals</title>
<updated>2026-04-19T22:06:10+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-04-19T22:06:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/rulesets/commit/?id=4957c60c9ee985628ad59344e593d20a18ca8fdb'/>
<id>urn:sha1:4957c60c9ee985628ad59344e593d20a18ca8fdb</id>
<content type='text'>
Three new machine-wide hooks installed via `make install-hooks`:

- `precompact-priorities.sh` (PreCompact) — injects a priority block into
  the compaction prompt so the generated summary retains information most
  expensive to reconstruct: unanswered questions, root causes with
  file:line, subagent findings as primary evidence, exact numbers/IDs,
  A-vs-B decisions, open TODOs, classified-data handling.

- `git-commit-confirm.py` (PreToolUse/Bash) — gates `git commit` behind a
  confirmation modal showing parsed message, staged files, diff stats,
  author. Parses both HEREDOC and `-m`/`--message` forms.

- `gh-pr-create-confirm.py` (PreToolUse/Bash) — gates `gh pr create`
  behind a modal showing title, base ← head, reviewers, labels,
  assignees, milestone, draft flag, body (HEREDOC or quoted).

Makefile: adds `install-hooks` / `uninstall-hooks` targets and extends
`list` with a Hooks section. Install prints the settings.json snippet
(in `hooks/settings-snippet.json`) to merge into `~/.claude/settings.json`.

Also: `languages/elisp/claude/hooks/validate-el.sh` now emits JSON with
`hookSpecificOutput.additionalContext` on failure (via new `fail_json()`
helper) so Claude sees a structured error in context, in addition to
the existing stderr output and exit 2.

Patterns synthesized clean-room from fcakyon/claude-codex-settings
(Apache-2.0). Each hook is original content.
</content>
</entry>
<entry>
<title>docs(todo): shelve /research-writer design pending a real writing task as trigger</title>
<updated>2026-04-19T21:48:10+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-04-19T21:48:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/rulesets/commit/?id=ab4a07b3c081609a81ee049ec9bbe6ccded09b54'/>
<id>urn:sha1:ab4a07b3c081609a81ee049ec9bbe6ccded09b54</id>
<content type='text'>
</content>
</entry>
<entry>
<title>feat: add finish-branch skill (clean-room synthesis from obra/superpowers pattern)</title>
<updated>2026-04-19T21:41:58+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-04-19T21:41:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/rulesets/commit/?id=8127307278160a2a7a744169180d2eea7c3bf731'/>
<id>urn:sha1:8127307278160a2a7a744169180d2eea7c3bf731</id>
<content type='text'>
Clean-room synthesis of the 'finishing a development branch' pattern from
obra/superpowers (MIT) — adopted as the forced-choice workflow scaffold,
not the substantive rules. Substantive rules defer to existing ones:
- Verification → verification.md
- Commit conventions + no AI attribution → commits.md
- Review discipline → review-code

Core patterns implemented:
- Phase 1 verify-before-options (hard-stop on failing tests)
- Phase 2 base branch + commit range + worktree detection
- Phase 3 forced-choice menu (exactly 4 options, no editorializing, stop+wait)
- Phase 4 execution per-option with:
  - Option 1 (merge locally): re-verify after merge, delete branch, prompt
    about remote-branch cleanup separately
  - Option 2 (push + PR): gh pr create with inline template (no AI
    attribution in the body); do NOT remove worktree
  - Option 3 (keep): no git state changes; preserve worktree
  - Option 4 (discard): typed-word "discard" confirmation gate required;
    lists what will be permanently lost; force-delete + remote cleanup
- Phase 5 worktree cleanup matrix (cleanup for 1 and 4; preserve for 2 and 3)

Notable over the upstream superpowers skill:
- Explicit delegation to verification.md / commits.md / review-code rather
  than re-teaching those standards inline
- Cross-references to /review-code (pre) and /arch-evaluate (if architectural)
- Handles remote-branch cleanup question separately from local branch
  (upstream conflates them)
- "Common Mistakes" section names the specific failure modes this skill
  prevents (open-ended "what now", accidental deletes, merge-then-oops,
  worktree amnesia, trailing AI attribution in PRs)

Rubric coverage vs upstream: M (verify → options → execute → cleanup);
M (forced-choice menu pattern); M (typed-discard confirmation gate);
M (worktree cleanup matrix); M (hard-stop on failing tests);
+ (explicit deferral to existing rules vs upstream's inline rules);
+ (remote-branch cleanup as separate prompt); + (skill integration notes
for /review-code and /arch-evaluate); no dropped capabilities.

Makefile SKILLS extended; make install symlinks globally at
~/.claude/skills/finish-branch.
</content>
</entry>
</feed>
