<feed xmlns='http://www.w3.org/2005/Atom'>
<title>rulesets/.ai/workflows/spec-create.org, 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-06-13T00:33:12+00:00</updated>
<entry>
<title>feat(workflows): SUPERSEDED/CANCELLED decision states + old-model gate</title>
<updated>2026-06-13T00:33:12+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-06-13T00:33:12+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/rulesets/commit/?id=22edacfd03de68eabd96d9aaa98a4dd5693535a6'/>
<id>urn:sha1:22edacfd03de68eabd96d9aaa98a4dd5693535a6</id>
<content type='text'>
A superseded decision now flips to SUPERSEDED (linking its replacement) and a moot one to CANCELLED. Both are done-class via a #+TODO: header the spec template auto-adds, so the [/] cookie counts them resolved and neither blocks implementation-ready. The TODO/DONE pair alone had lost the old State: field's superseded value.

spec-review's gate and Ready rubric now read "no decision is still TODO", and a spec still on the retired State: field model fails the gate item until converted. The gate as first written would have vacuously passed old specs, which have no decision tasks at all.
</content>
</entry>
<entry>
<title>feat(workflows): spec decisions become org TODO/DONE tasks</title>
<updated>2026-06-13T00:15:15+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-06-13T00:15:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/rulesets/commit/?id=7c052535f371c67956947a5afe711c71350feaf4'/>
<id>urn:sha1:7c052535f371c67956947a5afe711c71350feaf4</id>
<content type='text'>
Each spec decision is now an org TODO task that flips to DONE when the decision-maker agrees, with a [/] cookie on the Decisions heading and a Discussion child for disputes. This replaces the inline State: proposed | accepted | superseded field. spec-response folds settled decisions by flipping them to DONE. spec-review's readiness gate and Ready rubric require the cookie to read complete. A spec can't move past draft to implementation-ready while any decision is still TODO.

From the .emacs.d handoff 2026-06-12.
</content>
</entry>
<entry>
<title>feat(workflows): add spec-create, the author leg of the spec trio</title>
<updated>2026-06-09T22:11:49+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-06-09T22:11:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/rulesets/commit/?id=1f0900281b8262539137bc1aff3f01cc05745139'/>
<id>urn:sha1:1f0900281b8262539137bc1aff3f01cc05745139</id>
<content type='text'>
spec-create is the front of the spec-create → spec-review → spec-response trio: the author writes a short design spec before non-trivial code, shaped to pass spec-review's readiness gate. It runs a when-to-spec proportionality gate first, then problem-first framing, design with forced alternatives and inline mini-ADR decisions, implementation phases with acceptance criteria and a readiness-dimensions menu, a terseness pass, and a hand-off self-check against the review rubric.
</content>
</entry>
</feed>
