Repository navigation
feat: plain-ticket spec deltas archived in the same PR (RV-100, 3.22.0) - #107
Merged
Merged
Conversation
…hecks through ccm-lib.sh The change-name rule, the delta reader, the requirement-name reader, and the dash and email checks move to bin/ccm-lib.sh unchanged, so ccm-spec-delta can use them. ccm-propose-check's output is byte-identical.
…PR (RV-100) On a repository whose base has openspec/specs/, a ticket without a Reeve spec section that changes specified behavior writes its own delta, checks it, runs openspec archive and strict validation, and commits the result with the code. New bin/ccm-spec-delta (applies, name, collision, check, scope, reopen) applies the gate's plain-delta file rules and replays the archive on the merge base. review-ticket reports a missing or wrong delta, finish-ticket checks the branch before the merge or hand-off, and the handshake and run record carry spec_delta. The new lines sit in ccmagic:plain-delta blocks, so a repository without specs reads what the baseline did. Version 3.22.0.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Ticket: https://linear.app/blackmagicconsulting/issue/RV-100
ccmagic 3.22.0. On a repository whose base branch has
openspec/specs/<cap>/spec.md, a plain ticket (no Reevespec:section) that changes specified behavior now carries its own OpenSpec delta, archived in the same PR as the code. The design is the RV-100 amendment in Reeve's build contract and gate design (devondragon/reeve#160, approved 2026-10-14).Changes
bin/ccm-spec-delta(new), with modesapplies,name,collision,check,scope, andreopen.scopeapplies the gate's plain-delta file rules (delta-activethroughdelta-collision) and thendelta-not-applied, which replaysopenspec archiveon the merge base's OpenSpec tree in amktemp -ddirectory under$TMPDIR. It writes nothing to.gitand creates no worktree.work-ticket: decide whether specified behavior changed, then name, write, collision-check, check, archive, validate, and scope-check the delta, correcting it at most twice before parking. Adds the PR body's## OpenSpecsection, the fix-pass rules (reopen), and thespec_delta:handshake line.review-ticket: findings for a missing delta, a delta that doesn't match the code, main specs that don't match the delta, and other scope rule failures (all fixable), and for a collision (needs-human).finish-ticket:ccm-spec-delta scopebefore a merge or hand-off.auto-ticket, the contract, andauto-work: keepspec_deltaand write it to the run record (staysversion: 2).spec_delta:.ccm-propose-check's shared checks moved toccm-lib.sh, with byte-identical output.docs/cyrus-deployment.mdgrantsBash(ccm-spec-delta *). Also updated: README, help, CHANGELOG, and the version bump.Every new skill line sits in a
<!-- ccmagic:plain-delta -->block. The baseline regression test strips these blocks the same way as the spec-only blocks, so a repository without specs runs exactly as before. The only every-ticket change recorded is one sentence inhelp.Differences from the design
applies BASEmode so the skills can test "the base has specs" with their existing grants.nametakes BASE.openspec/either way).Testing
bash tests/run.sh: 423 passed, 0 failed, run locally with OpenSpec CLI 1.14.1. That includes 10specdelta_*tests: every scope rule, the replay passing after the base gains an unrelated edit to the same spec, a hand edit failing,reopenand the fix-pass correction path,.gitand$TMPDIRleft unchanged, and an unwritableTMPDIR.namewith a dash-leading title or an underscore key, the fix-pass route for scope rule failures, andspec_deltaafter a stop.Rollout
Merge, release, and pull into the Cyrus volume before Reeve's
reeve-refine-6template and gate PRs deploy. This release is safe on its own: today's gate merges a plain PR with an archived delta at its path tier, and an older Reeve dropsspec_deltawhen it parses the record.