Repository navigation
feat(spec-polish): add /ccmagic:spec-polish and ccm-spec-polish (RV-90) - #108
Merged
Merged
Conversation
Review rounds over an OpenSpec change before Reeve plans it, each with a fresh read-only reviewer, the owner accepting or rejecting each finding, and validate, ccm-propose-check, and reeve openspec render --grade passing after each round. Two consecutive clean rounds (nothing accepted, no file changed) end the loop and write openspec/changes/<change>/.reeve.yml, which Reeve reads at planning. ccm-spec-polish computes the record's files hash as Reeve's polishFilesHash does, writes and checks the record, and refuses a change already on the default branch.
…skill (RV-90) The files hash is held against a vector Reeve computed for the propose fixture's add-reset, so a change to the hash rule on either side fails.
…opose-check and ccm-openspec-scope (RV-90)
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-90
/ccmagic:spec-polish <change>reviews an OpenSpec change in rounds before Reeve plans it, then writes the polish recordopenspec/changes/<change>/.reeve.ymlthat Reeve reads at planning (Reeve PR linked on the ticket).How the loop works
review-prompt.md. It reads the change against the specs and the code and lists every problem it finds. Findings you rejected in earlier rounds are passed to later reviewers so they are not raised again.openspec validate --strict --no-interactive,ccm-propose-check, andreeve openspec render --grademust pass.--max-roundsdefaults to 6.polished, commits after a final stop, and pushes only toorigin/<current branch>. It never merges.Changes
bin/ccm-spec-polish(new) has four modes:hash: Reeve'spolishFilesHashfromgit hash-object.write: writes the record.check: reads the record as Reeve does and exits 0 only forpolished.preflight: the change-name rule, the folder and itstasks.md, andplannedfor a change already on the default branch, where an edit is drift forreeve replan.skills/spec-polish/SKILL.mdandreview-prompt.md(new). The write grants are limited toopenspec/changes/**.tests/run.sh: tests for every mode, including a files-hash vector Reeve computed for the propose fixture, plus the skill's grant and workflow checks.spec-polishis registered as a standalone skill.propose/change-format.md, and release 3.23.0.Verified
bash tests/run.sh: 431 passed with OpenSpec 1.14.1 on PATH.shellcheck -xas CI runs it reports no findings.Not built
ccm-external-reviewreviews diffs or file lists with code-review prompts, and adding a spec-review dimension to it is a separate piece of work.Second review pass
These commits follow Reeve's changes from its second review (reeve#169):
b637c9b:ccm-propose-checkreportsmetafor a.openspec.yamllarger than 64 KB, andccm-openspec-scopestops with exit 3 on such a base file in archive mode. Reeve's planner now rejects that file, and its gate parks the archive PR asmeta-unreadable, so both mirror checks agree with Reeve again.f8bc79a:ccm-spec-polishnever covers a symlinked kept file.hashlists such files underlinks,writerefuses (exit 3), andcheckreads the record asmalformed. This matches Reeve, which reads a mode-120000 kept file as malformed. The script header now points toccm-openspec-versionfor the OpenSpec version, which fixesopenspecver_version_in_one_place.bash tests/run.sh: 434 passed with OpenSpec 1.14.1 on PATH.shellcheck -xreports no findings.