chore: retire --skip-specs hand-apply archive ceremony (D-052)#38
Conversation
- Loop contract: pre-seeded requirements carried as MODIFIED deltas; archive via 'openspec archive <id> --yes' (mechanical delta apply) + strict validate; --yes permitted ONLY on non-interactive archive; --skip-specs reserved for no-spec-impact changes - .omp archive skill/command updated to the same ceremony; ADDED-conflict recovery is now 'fix the delta header to MODIFIED', not a --skip-specs bypass - scripts/check-omp-ceremony.sh: deterministic gate (wired into check.sh, inherited by CI) failing if openspec regeneration reverts the patched .omp files or reintroduces dangling skill refs; mutation-tested - D-052 recorded in .raw/openspine-decision-log.md (narrows the blanket -y prohibition; grounded in PR #37 archive probes of 1.5.0 and 1.6.0-beta.1) Independent review: COMMIT-READY, zero blockers.
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
|
Warning Review limit reachedYou’ve reached a temporary PR review limit under our Fair Usage Limits Policy. Next review available in: 20 minutes Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (22)
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
There was a problem hiding this comment.
1 issue found across 22 files
Prompt for AI agents (unresolved issues)
Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.
<file name="scripts/check-omp-ceremony.sh">
<violation number="1" location="scripts/check-omp-ceremony.sh:21">
P2: The ceremony gate can report success even when expected generated OMP files are missing, because `forbid` treats `grep` read errors as a clean non-match. Checking file existence first in `forbid` would keep this guardrail from silently skipping missing-file drift.</violation>
</file>
Reply with feedback, questions, or to request a fix.
Re-trigger cubic
| } | ||
|
|
||
| forbid() { # file pattern description | ||
| if grep -qF -- "$2" "$1"; then |
There was a problem hiding this comment.
P2: The ceremony gate can report success even when expected generated OMP files are missing, because forbid treats grep read errors as a clean non-match. Checking file existence first in forbid would keep this guardrail from silently skipping missing-file drift.
Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At scripts/check-omp-ceremony.sh, line 21:
<comment>The ceremony gate can report success even when expected generated OMP files are missing, because `forbid` treats `grep` read errors as a clean non-match. Checking file existence first in `forbid` would keep this guardrail from silently skipping missing-file drift.</comment>
<file context>
@@ -0,0 +1,47 @@
+}
+
+forbid() { # file pattern description
+ if grep -qF -- "$2" "$1"; then
+ echo "FAIL: $1 contains '$2' ($3)" >&2
+ fail=1
</file context>
What
Ratified workflow change (D-052), grounded in the PR #37 archive probes:
openspec/openspine-change-sequence.md): requirements already present in a pre-seeded capability spec are carried as## MODIFIED Requirements(never re-ADDED); archive isopenspec archive <id> --yes(mechanical delta apply) followed byopenspec validate --all --strict.--yesis permitted ONLY on non-interactive archive; forbidden everywhere else.--skip-specsis reserved for genuinely no-spec-impact changes. Hand-copying deltas intoopenspec/specs/is retired..omp/skills/openspec-archive-change/SKILL.md,.omp/commands/opsx-archive.md) updated to the same ceremony; ADDED-conflict recovery is now "fix the delta header to MODIFIED".scripts/check-omp-ceremony.sh(wired intocheck.sh, inherited by CI): fails loudly ifopenspec init/update --tools oh-my-piregeneration reverts the patched files or reintroduces dangling skill references. Mutation-tested (appending upstream's rawmv "<changeRoot>"line trips it)..raw/openspine-decision-log.md+ change-log row; contract bullet cites it.Why
Probes (PR #37) proved there is no flag-free unattended archive path: plain
archiveprompts and dies non-TTY in both 1.5.0 and 1.6.0-beta.1;MODIFIEDdeltas apply mechanically under--yeswith a green post-apply corpus. Hand-applying deltas was the most error-prone canon-touching step an unattended loop performed; the archive prompt is confirmation theater without a TTY — the human gate is PR review, unchanged.Evidence
./scripts/check.shfully green (fmt, clippy, tests, file-size, claims, new ceremony gate, openspec 11/11 strict)Summary by cubic
Retires the manual
--skip-specsarchive path and standardizes onopenspec archive <id> --yesfollowed by strict validate to apply deltas mechanically. Updates the loop contract and.ompfiles, and adds a CI gate to prevent ceremony regressions.Refactors
MODIFIED, notADDED;--yesallowed only on non-interactiveopenspec archive;--skip-specsreserved for no-spec-impact changes..omp/skills/openspec-archive-change/SKILL.mdand.omp/commands/opsx-archive.mdto the new ceremony and simplified prompts; conflict recovery is to changeADDEDtoMODIFIED.scripts/check-omp-ceremony.shand wired it intoscripts/check.shto fail if generated.ompfiles drop the ceremony or reintroduce dangling skill refs..raw/openspine-decision-log.md; updatedopenspec/openspine-change-sequence.md.Migration
openspec archive <id> --yes, then runopenspec validate --all --strict.openspec/specs/; avoid--skip-specsunless the change has no spec impact.ADDED, change the delta header toMODIFIED.Written for commit ef607f8. Summary will update on new commits.