aboutsummaryrefslogtreecommitdiff
path: root/.ai/workflows/spec-review.org
Commit message (Collapse)AuthorAgeFilesLines
* feat(workflows): SUPERSEDED/CANCELLED decision states + old-model gateCraig Jennings2026-06-121-2/+7
| | | | | | 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.
* feat(workflows): spec decisions become org TODO/DONE tasksCraig Jennings2026-06-121-1/+7
| | | | | | 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.
* docs(spec-review): check generated config resolves where consumedCraig Jennings2026-06-101-1/+1
| | | | A generated config gets read in a different namespace than the one that wrote it. Build host, chroot, image runtime, target system, container, and VM are distinct, so a path valid where the config is generated can be absent where it's read. I added the check to the Architecture & maintainability dimension.
* feat(workflows): promote reusable spec-review checks from emacs-d review passesCraig Jennings2026-06-061-12/+67
| | | | | | I folded the reusable, product-neutral checks from two emacs-d review passes into the canonical spec-review.org, so they survive the startup rsync and reach every project instead of living only in a downstream copy. The additions cover package-readiness and Makefile scope, actionable error strings, observability and diagnostics, long-running performance and failure-mode research, defcustom surface, a documentation plan, architecture weak-point mitigation, simplicity controls, extension/plugin developer experience, comparable-product sentiment, terminal-state discovery, CLI-wrapper value, and rollout/rollback, plus three reviewer principles and a generalizable-question harvesting rule. The promotion is a pure superset. Every change adds or expands a generic check, nothing regresses. Project-specific findings stayed in the source spec. The handoff that asked for this is preserved under docs/design.
* docs(spec-review): enumerate implementation tasks in Phase 6Craig Jennings2026-05-311-0/+24
| | | | From a pearl handoff: Phase 6 logged deferred and v1 work only in passing, so the implementer handoff was a re-read of the spec rather than a paste. I added a step that lifts the spec's Implementation phases section into a drop-in todo.org block: one [#B] TODO per phase plus a test-surface entry mirroring the Acceptance criteria. A spec with no phase decomposition fails the step, surfacing the shape problem as a finding before Ready rather than inventing phases. Added Exit Criterion 6 and a review-history entry.
* feat(workflows): add -spec.org precondition to spec-review and spec-responseCraig Jennings2026-05-291-0/+16
| | | | | | | | | | | | | | | | | | | | | | | | Both workflows now check that the file under review (or the spec being responded to) ends with -spec.org before proceeding. If it does not, the workflow stops and surfaces the mismatch with the rename suggestion. The suffix is the identifier per Craig's spec-naming convention: every design, decision, or planning document under a project's docs/ directory ends with -spec.org. The .org extension alone is not enough because docs/ holds non-spec org files too (tutorials, frozen inventories, reference material). spec-review.org gained a top-level Precondition section between When to Use and Approach. spec-response.org gained the same Precondition section in the parallel position, with a note that the review-file convention <spec-basename>-review.org means a misnamed spec produces a mis-pointed review file too. Inbox source: 2026-05-28-0858-from-home-spec-naming-convention-apply-to-spec.org. Home renamed two docs to the new convention and asked rulesets to update the template workflows so the next startup rsync in every project picks up the guard.
* feat(workflows): backfill iteration history in spec workflowsCraig Jennings2026-05-281-0/+22
| | | | | | Closes the org-drill backfill TODO. Both workflow files now carry a bottom "Review and iteration history" section with four entries: Draft 1 (linear-emacs origin, 2026-05-23, placeholder timestamp), Review-and-Fold (commit 7f2aea1, 2026-05-23), Requirement addition (commit 55adf6e, 2026-05-28), and this backfill commit. Canonical and mirror updated together. Working directory working/spec-workflows-iteration-history-backfill/ removed on this commit. The spec-response cycle on the working draft (two Codex reviews, three rulesets responses) validated the entry-shape and the content before splice. Codex caught file-history conflation that would have made per-file provenance inaccurate. Craig's direct rationale on the Iteration 1 and Iteration 3 Why lines replaced the original INFERRED markers.
* feat(workflows): add iteration-history requirement to spec workflowsCraig Jennings2026-05-281-1/+21
| | | | | | Specs reviewed under either workflow now carry a bottom =Review and iteration history= section. Each entry is an org subheading with a compound id (timestamp, contributor, role) plus What/Why/Artifacts body fields. The id is opaque. Timestamp, contributor, and role concatenate without implying any decision ordering. spec-review.org adds the gate item, the entry-shape spec, and a "Preserve iteration provenance" principle. spec-response.org adds the matching Phase 4 step and a "history explains provenance" principle. Canonical and mirror updated together.
* feat(workflows): add spec-review and spec-response workflow pairCraig Jennings2026-05-231-0/+208
These two workflows form a reviewer side and an author side for taking a design spec to implementation-ready. spec-review judges a spec against a readiness gate, reads the code before critiquing, evaluates across dimensions, assigns a rubric (Ready / Ready-with-caveats / Not-ready / Needs-research), and writes a <spec>-review.org file when it isn't ready. spec-response consumes that file: it decides accept / modify / reject for every recommendation, weaves the accepts into the spec body, records the modifies and rejects with reasons in a "Review dispositions" section, and reconciles tensions when coupled specs get reviewed together. The review file is the contract between them. Both were validated by a real run on 2026-05-23 before landing here. I then reviewed them against established practice and tightened five things. The readiness gate now covers security/privacy and observability, since a spec shouldn't pass with those undefined. Phase 1 is a fast triage and Phase 3 is the authoritative gate after the code read. Finding severity maps to blocking power. A rejection goes back to the reviewer instead of standing as a unilateral call. And the response loop has an explicit termination condition. I added both to INDEX.org under a new "Specs and design" section with trigger phrases, cross-linked as a pair, and kept the canonical and mirror copies identical.