<feed xmlns='http://www.w3.org/2005/Atom'>
<title>rulesets/docs/specs, 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-07-02T09:27:35+00:00</updated>
<entry>
<title>docs(spec): flip autonomous-batch to IMPLEMENTED after the live trial</title>
<updated>2026-07-02T09:27:35+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-07-02T09:27:35+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/rulesets/commit/?id=5eae9e07a529f557819d514e8ae58d17e0e0ec7d'/>
<id>urn:sha1:5eae9e07a529f557819d514e8ae58d17e0e0ec7d</id>
<content type='text'>
The first speedrun ran Craig's three-task set end to end: pre-flight Q&amp;A once, three reviewed commits, one metrics record per task, one end-of-set page. He confirmed the run and granted :LOOP_MAY_COMMIT:, so the recurring loop may now commit here alongside the existing :COMMIT_AUTONOMY: waiver.
</content>
</entry>
<entry>
<title>feat(docs): convert spec-target file links to id form</title>
<updated>2026-07-02T09:14:39+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-07-02T09:14:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/rulesets/commit/?id=78bbaae5d8634d52588c1a60d7b7f430bed238c7'/>
<id>urn:sha1:78bbaae5d8634d52588c1a60d7b7f430bed238c7</id>
<content type='text'>
All 13 file:docs/specs/ links lived in todo.org. Eleven converted directly. The two carrying a Review-findings search target now point at a new :ID: minted on that heading, since the id index scans whole files and heading-level ids stay rename-safe. The residue grep is zero and every id resolves to its target's :ID:.

The commit also carries the routine archive sweep of freshly-closed tasks and the speedrun pre-flight answer stamps.
</content>
</entry>
<entry>
<title>docs(spec): decompose the speedrun build into phase tasks; flip to DOING</title>
<updated>2026-07-02T04:46:58+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-07-02T04:46:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/rulesets/commit/?id=9ad415d654a0b2751c4472aeeb10571239f795fc'/>
<id>urn:sha1:9ad415d654a0b2751c4472aeeb10571239f795fc</id>
<content type='text'>
spec-response pass on the autonomous-batch execution spec: the build parent carries the :SPEC_ID: binding, Phases 1-6 are broken out as tasks alongside the live-trial validation and the flip-to-IMPLEMENTED task, and the spec's status heading is DOING with the Metadata mirror updated.
</content>
</entry>
<entry>
<title>feat(startup): add the spec-sort nudge; notify .emacs.d the convention is live</title>
<updated>2026-07-02T04:24:26+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-07-02T04:24:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/rulesets/commit/?id=21639cb395bd363f9406694adebd9a3675bf1096'/>
<id>urn:sha1:21639cb395bd363f9406694adebd9a3675bf1096</id>
<content type='text'>
The Phase A batch gains a read-only probe that prints one line when a project has an unsorted docs pile (a docs/design/ or stray docs/*-spec.org files) and no :LAST_SPEC_SORT: marker. Phase C surfaces the "run spec-sort" offer when the probe fired and stays silent otherwise.

The stray-root check uses find instead of the spec's compgen sketch: compgen is bash-only and zsh aborts on an unmatched glob, so the original snippet false-negatived on stray root specs under zsh. The spec's snippet is updated with a note, and the probe is fixture-verified in both shells across the four project shapes.

I also fixed startup.org's reference to the encourage-kb-contribution spec's pre-pilot path and sent .emacs.d the convention-live note with the id-index ask.
</content>
</entry>
<entry>
<title>docs(specs): pilot the spec-sort retrofit on rulesets' own pile</title>
<updated>2026-07-02T04:19:56+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-07-02T04:19:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/rulesets/commit/?id=f4b64d6141156cf0ee2a2c2a13cda256f0bf0c84'/>
<id>urn:sha1:f4b64d6141156cf0ee2a2c2a13cda256f0bf0c84</id>
<content type='text'>
Five specs moved to docs/specs/ with confirmed lifecycle keywords: agent-knowledge-base IMPLEMENTED (with the stated reason in its history line), inbox-workflow-consolidation READY, autonomous-batch-execution READY, encourage-kb-contribution READY, and wrapup-routing DOING. spec-sort recomputed twelve todo.org links and the moved specs' own outbound links, and stamped :LAST_SPEC_SORT:. The status board now answers "what's live" in one grep. The four -spec.org-named files in docs/design without a spec spine stay put as notes.
</content>
</entry>
<entry>
<title>docs(spec): decompose docs-lifecycle build into phase tasks; flip to DOING</title>
<updated>2026-07-02T03:35:29+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-07-02T03:35:29+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/rulesets/commit/?id=328ca18a15c4dd14cc4898b483cc6b2681dbf7eb'/>
<id>urn:sha1:328ca18a15c4dd14cc4898b483cc6b2681dbf7eb</id>
<content type='text'>
The build parent carries the :SPEC_ID: binding, one task per phase plus the id-conversion follow-up, the tracked flip-to-IMPLEMENTED task, and a manual-testing child — the first live exercise of the spec's own transition-ownership table.
</content>
</entry>
<entry>
<title>docs(spec): record reviewer READY flip on the docs-lifecycle spec</title>
<updated>2026-07-02T03:33:31+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-07-02T03:33:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/rulesets/commit/?id=6923bc42f7728ce1cb2955af1c2669b37f6cd7fb'/>
<id>urn:sha1:6923bc42f7728ce1cb2955af1c2669b37f6cd7fb</id>
<content type='text'>
</content>
</entry>
<entry>
<title>docs(spec): fold in verify-pass nits on the docs-lifecycle spec</title>
<updated>2026-07-02T02:55:42+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-07-02T02:55:42+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/rulesets/commit/?id=43cecd4eec7d1c061ca546b50a3d095a6d01f524'/>
<id>urn:sha1:43cecd4eec7d1c061ca546b50a3d095a6d01f524</id>
<content type='text'>
Scope the zero-id-links acceptance check to links the sort actually rewrote (prose mentions of the syntax already exist and would false-positive a naive grep), add untracked-copy cleanup to the mid-apply recovery recipe, and refresh two stale prose spots (nudge skip condition, bats case list).
</content>
</entry>
<entry>
<title>docs(spec): fix the five re-review findings in the docs-lifecycle spec</title>
<updated>2026-07-02T02:52:25+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-07-02T02:52:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/rulesets/commit/?id=b163637008996031f5a16d4703d384209c4ace76'/>
<id>urn:sha1:b163637008996031f5a16d4703d384209c4ace76</id>
<content type='text'>
Canonical placement contract for every synced artifact of the feature; a :SPEC_ID: property binds a spec to its build parent so task-audit can police DOING specs by the parent's keyword; spec-sort --apply gains a fail-safe contract (clean-tree preflight, validate-then-write from a recorded plan, named recovery); id-link conversion is staged behind the executable .emacs.d id-index mechanism so no unclickable-link window exists; status confirmation is evidence-based with terminal states requiring a stated reason. Status stays DRAFT pending reviewer sign-off.
</content>
</entry>
<entry>
<title>docs(spec): flip docs-lifecycle spec to READY after verify pass</title>
<updated>2026-07-02T02:43:18+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-07-02T02:43:18+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/rulesets/commit/?id=642be351ae4dcc4807cb7f1e08745068ce041365'/>
<id>urn:sha1:642be351ae4dcc4807cb7f1e08745068ce041365</id>
<content type='text'>
The original reviewer re-checked all nine fixes against its findings: all held, verdict ready. Two minors folded in first — a refinement note under Decision 2 and a nudge probe that also fires on stray docs-root specs.
</content>
</entry>
</feed>
