#+TITLE: Claude Code Notes - Rulesets #+AUTHOR: Craig Jennings & Claude #+DATE: 2026-05-06 * About This File This file contains project-specific information for this project. **When to read this:** - At the start of EVERY session (after reading protocols.org) - When needing project context or history - When checking reminders or pending decisions **What's in this file:** - Project-specific context and goals - Pending decisions - Active reminders **Session history is NOT in this file.** Each session's record lives in =.ai/sessions/YYYY-MM-DD-HH-MM-description.org= — one file per session. Catch-up reads the Summary sections of the most recent 5. **For protocols and conventions, see:** [[file:protocols.org][protocols.org]] * Project-Specific Context ** What this project is Craig's personal Claude Code configuration: skills, rules, hooks, and per-language bundles installed into =~/.claude/= machine-wide or copied into individual projects. See [[file:../README.org][README.org]] for the full layout, install modes, and language-bundle structure. ** Layout (high level) - =claude-rules/= — generic rules (=commits.md=, =testing.md=, =verification.md=, =subagents.md=) symlinked into =~/.claude/rules/= and applied to every Claude Code session on the machine. - Top-level skill directories (=add-tests/=, =debug/=, =five-whys/=, =frontend-design/=, =pairwise-tests/=, =playwright-js/=, =playwright-py/=, =root-cause-trace/=, =voice/=) — each a Claude Code skill, symlinked into =~/.claude/skills/= by =make install=. - =languages/= — per-language bundles (rules + hooks + settings) copied into target projects via =make install-lang LANG= PROJECT==. Both =LANG= and =PROJECT= are optional — fzf picks them interactively when omitted. Bundles currently shipping: =elisp=, =python=. - =.claude/= — repo-local Claude Code config: =settings.json= and =commands/=. - =hooks/=, =scripts/= — install helpers and PostToolUse validators that ride along with bundles. - =Makefile= — install / uninstall / list entry points. ** Task tracker =todo.org= at the project root holds the active task list. The file is large (~73 KB) — search rather than scan when looking for specific items. ** Current state Recent inflection point: 16 user-invoked skills were converted to commands (commit =aa69245=, =refactor(skills): convert 16 user-invoked skills to commands=). The skill / command split is the current mental model — user-triggered entry points are commands, model-triggered behaviors stay as skills. ** Remote =git@cjennings.net:rulesets.git=. No GitHub remote — PRs and reviews don't apply here. * PENDING DECISIONS This section tracks decisions that need Craig's input before work can proceed. ** Current Pending Decisions (None currently — will be added as they arise) * Active Reminders ** Current Reminders (None currently — will be added as needed) ** Instructions for This Section When Craig says "remind me" about something: 1. Add it here with timestamp and description 2. If it's a TODO, also add to =/home/cjennings/org/roam/inbox.org= scheduled for today 3. Check this section at start of every session 4. Remove reminders once addressed Format: - =[YYYY-MM-DD]= Description of what to remind Craig about * Workflow State Markers maintained by workflows to record when they last ran. Read by other workflows that gate their behavior on freshness. :LAST_AUDIT: 2026-05-28 :LAST_INBOX_PROCESS: 2026-06-13 (midday: two .emacs.d handoffs — validate-el -L fix applied to elisp bundle canonical; inbox-zero single-destination workflow built + wired into startup/wrap-up) Format: one =:MARKER: YYYY-MM-DD= line per workflow. Workflows overwrite their own marker on completion.