feat: redistribution-boundary check for dimension 12 and Step 5 - #1467
Open
tvna wants to merge 5 commits into
Open
feat: redistribution-boundary check for dimension 12 and Step 5#1467tvna wants to merge 5 commits into
tvna wants to merge 5 commits into
Conversation
…tribution-boundary check A docstring disclosure alone does not satisfy dimension 12's "synchronization check" bar, and consolidation is not an available resolution when duplicate-bearing artifacts sit on different sides of a redistribution boundary (deployed-to-consumers vs. never-deployed) -- deliberate duplication plus an automated parity test is the correct fix instead. Added a worked example citing the existing hooks/gitapex_check_skill_audit_disclosure_or_waiver.py + tests/test_gitapex_check_skill_audit_disclosure_hook_sync.py pair. Prompted by a ponytail-audit-style pass that recommended consolidating a hooks/ script into a .github/scripts/ shared module (issue #729), which would have crossed this exact boundary. Refs #1456
…undary check For any ACM row whose planned files/operations couple two or more files (a consolidation- or shared-module-shaped criterion), Step 5's re-verification now confirms the calling repository's own layout documentation puts all of them on the same side of any deployed-to-consumers vs. never-deployed boundary before accepting the row -- the same check evaluating-deterministic-gate-quality's own dimension 12 applies at review time (issue #1456), applied here before implementation instead, so a redistribution-boundary mismatch is caught at planning time rather than only by a separately-invoked review skill. Refs #1462
…ssue): close audit findings on the redistribution-boundary checks Two isolated evaluating-skill-quality + battle-testing-a-skill dispatches reviewed the dimension-12 (issue #1456) and Step-5 (issue #1462) additions. Dimension 12 (issue #1456): the consolidation ban was over-broad -- it blocked any consolidation whenever a redistribution boundary existed anywhere between the carriers, not only when the proposed shared module actually lands on the never-deployed side. Narrowed to the directional harm. Also required a concrete, checkable artifact before an "actively building toward" boundary claim counts, instead of an unfalsifiable assertion. Fixed a missing [elided] marker on a spliced worked-example quotation, and retitled a pre-existing, differently-scoped adjacent section (mechanism-fit criterion 5, not dimension 12) that the new heading sat beside without disambiguating. Step 5 (issue #1462): the trigger clause ("merge, import, or otherwise couple two or more files") was broad enough to match an ordinary row where one file merely calls another. Narrowed to rows proposing to combine logic from two or more files into one shared file/module. Added an explicit trivial-satisfaction clause for a calling repository with no distribution-boundary concept at all. Both skills re-verified: gitapex_check_skill_shape.py 61/61 and 51/51 respectively; tests/test_gitapex_scan_dimensions_numbering_drift.py and tests/test_gitapex_evaluating_deterministic_gate_quality_dimension_coverage.py green (43 tests). Refs #1456, #1462
… parity with dimension 12 A second isolated evaluating-skill-quality + battle-testing-a-skill dispatch, run after dimension 12's own directional-placement fix landed in the same PR, found Step 5 had not been updated to match: it still required all combined files on the "same side" of the boundary and flagged any crossing, while the sibling dimension 12 it claims to mirror now permits a shared module placed on the deployed side. Reworded Step 5's criterion to the same directional test: only flag a row whose planned shared-file location would land on the never-deployed side. Re-verified: gitapex_check_skill_shape.py 51/51. Refs #1462
|
Important
This repository does not receive automatic reviews because it has fewer than 10 stars. ⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Plus Run ID: Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #1467 +/- ##
=======================================
Coverage 99.57% 99.57%
=======================================
Files 126 127 +1
Lines 22500 22539 +39
Branches 2761 2766 +5
=======================================
+ Hits 22404 22443 +39
Misses 96 96 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
…ft in metadata CI's test_gitapex_gate_metadata_outcome_lines.py (a real-repository drift gate this session was not previously aware of) failed: this sidecar's own most recent line-count claim for gitapex-worked-examples.md and dimensions.md used a "+N" delta shape the gate's claim heuristic does not recognize, so two much older claims (511->561 and 601->602) were still treated as the current, unsuperseded claim and no longer matched the working tree (595 and 638 lines respectively after this PR's edits). Rewrote the claim to the arrow-delta shape the gate expects, with the correct final line counts measured directly against the working tree. gitapex_gate_metadata_outcome_lines.py now reports "No outcome.lines claim drift found." (exit 0); full pytest suite: 6706 passed. Refs #1456
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.
<!--
This file is hand-maintained pending the planned gitapex CLI (Rust,
design stage only -- see docs/superpowers/specs/
2026-07-15-gitapex-cli-governance-design.md). Once that CLI ships, it
is expected to supply this file's content instead.
-->
Summary
Adds a redistribution-boundary check to both the review side (
evaluating-deterministic-gate-qualitydimension 12) and the planning side (planning-a-branch-from-an-issueStep 5), so a consolidation-shaped Acceptance Criteria Map row is caught before implementation and at review time, not only by chance.Facts
hooks/script into a.github/scripts/shared module (issue refactor(gates): extract shared stdin-decode / GitHub-API-retry / JSON-shape modules out of .github/scripts/*.py #729). That would have violated this repository's own hooks/-vs-.github/ standalone-execution convention, caught only by hand-finding a sibling file (hooks/gitapex_check_skill_audit_disclosure_or_waiver.py) that already resolves the identical situation with a parity test.evaluating-deterministic-gate-quality's dimension 12 (duplication/drift risk) so a review catches this class of mismatch by procedure.planning-a-branch-from-an-issue's Step 5 with the same check applied at ACM-authoring/re-verification time, before implementation begins.evaluating-skill-quality+battle-testing-a-skilldispatches reviewed both additions (see Skill audit evidence below): round 1 found both additions over-broad; round 2, run after round 1's dimension-12 fix, found Step 5 had gone stale relative to dimension 12's own corrected directional test; a final targeted consistency check confirms the two now state the identical rule.Assumptions
None beyond what is stated in issues #1456 and #1462 -- both are drafted ACM issues, independently re-verified against the current repository state before this PR's own commits were written.
Risk / blast radius
Both changes are prose-only additions to existing skill files (
references/dimensions.md,references/gitapex-worked-examples.md,SKILL.md, plusmetadata/gitapex.yamlhistory entries). No script, hook, or CI workflow behavior changes. If either addition is still wrong, the worst case is a future review or plan being over- or under-cautious about a consolidation recommendation -- not a broken gate or a silent security regression.Rollback
Revert this PR's commits; both skills' own mechanical shape checks and the numbering-drift/dimension-coverage pytest suite would immediately show a clean revert (no dependent code references the new text).
Verification
Acceptance Criteria Map rows, restated per criterion -> proof method -> result:
Issue #1456 (dimension 12):
evaluating-skill-qualityshape-checker run -> PASS.battle-testing-a-skill) -> round 1 FAIL (over-broad ban, unfalsifiable hedge), fixed; round 2 (fresh dispatch on the fixed text) PASS.toc/links-inside-skill/anchor-targets-resolve/no-bare-issue-citationchecks -> PASS;evaluating-skill-qualityre-audit -> WELL-FORMED-AND-MATURE.metadata/gitapex.yaml-> confirmed.Issue #1462 (Step 5):
evaluating-skill-qualityshape-checker -> PASS.battle-testing-a-skill-> FAIL (over-broad trigger, no hedge for a repository with no boundary concept), fixed.evaluating-skill-quality+battle-testing-a-skill(run after dimension 12's own round-1 fix) -> FAIL (parity claim had gone stale), fixed; a final targeted consistency dispatch confirms the two texts now state the identical rule verbatim-equivalent.no-bare-issue-citation-> PASS.Commands run:
Skill audit evidence
Three rounds of isolated (fresh-context) subagent dispatches, per both skills' own Subagent-dispatch requirement (this session authored the diffs under review, so grading in-context would not be neutral). Final verdicts below; full round-by-round findings recorded in each skill's own
metadata/gitapex.yaml.(
evaluating-deterministic-gate-quality, dimension 12, issue #1456 -- round-1 FAIL/WELL-FORMED-NOT-MATURE with 4 combined findings, all fixed and confirmed clean on round-2 re-audit.)(
planning-a-branch-from-an-issue, Step 5, issue #1462 -- round-1 FAIL/WELL-FORMED-NOT-MATURE with 2 findings (over-broad trigger, missing no-boundary hedge), fixed; round-2 re-audit (after dimension 12's directional fix landed) found the parity claim had gone stale and returned FAIL, fixed by rewording to the identical directional test. A final lightweight consistency dispatch (not a full nine-dimension re-run, to bound audit rounds per this repository's own quality-vs-volume principle) confirms the two texts now state the identical rule and the shape checker passes 51/51 -- disclosed as WELL-FORMED-NOT-MATURE rather than re-claiming WELL-FORMED-AND-MATURE without a full fresh dispatch to back it.)Checklist
SKILL.md/references/files)evals/*/split.mdKept-edit-log entry in this PRMerge gate: independent review
This PR is also subject to the
independent-review-pendingrequiredstatus check (see
.github/workflows/independent-review-pending.yml/.github/scripts/gitapex_gate_independent_review_pending.py). It stayspending/failing until a
## Independent review verdictsection namingthis PR's current head commit is recorded in this body --
drafting-a-pr-to-merge's own Step 8 records it once its independentreview completes. There is nothing for you to do here now: do not
pre-fill this section yourself, and do not remove this note.
Related Issue
Closes #1456
Closes #1462
Generated by Claude Code