Skip to content

merge queue: checking #302 on main (2dc9a9f) - #314

Closed
mergify[bot] wants to merge 2 commits into
mainfrom
mergify/merge-queue/d6da425310
Closed

merge queue: checking #302 on main (2dc9a9f)#314
mergify[bot] wants to merge 2 commits into
mainfrom
mergify/merge-queue/d6da425310

Conversation

@mergify

@mergify mergify Bot commented Sep 9, 2026

Copy link
Copy Markdown
Contributor

✨ Pull request #302 has been merged manually at 2dc9a9f. ✨

#302 is queued for merge on branch main (2dc9a9f).

This pull request has been created by Mergify to check the mergeability of #302.
You don't need to do anything. Mergify will close this pull request automatically when it is complete.

Required conditions of queue rule admin-bypass for merge:

  • check-success = lint
  • check-success = test

Required conditions to stay in the queue:

---
checking_base_sha: 2dc9a9fd4ac7e9ac81ac0e6f58f40b5c7431ee84
previous_check_retries: []
previous_failed_batches: []
pull_requests:
  - number: 302
    scopes: []
scopes: []
...

edbert-bot and others added 2 commits September 9, 2026 12:28
## Context
- Problem: catstack ships three hooks that enforce prove-it
  (prove-it-ship-gate, hedge-runs-prove-it, diu-stop) and eight skills that
  cite it, but does not own the rule. diu-stop tells the agent to read
  "skills/prove-it/SKILL.md in the Invoker repo"; ~/.claude/skills/
  invoker-prove-it is a real directory written by Invoker's installer, so
  ./install.sh cannot update it. Engine-only mode cites a file it does not
  install.
- Trigger: reading lauren (@poteto)'s pstack guide (mirrored at
  github.com/cursor/plugins/pstack/docs/guide) surfaced /how and /why as
  understand-before-edit skills catstack has no equivalent of. The gap is
  real: our only git-history rule is one bullet in
  principle-fix-root-causes:22, not a procedure.

## Considerations
- Chose: split the rule from the procedures. principle-prove-it holds the
  claim gate (corpus, because check_ecosystem_boundaries.py:206 requires
  principle-* live there). how / why / alternatives-considered /
  spike-and-validate hold the fan-outs (product, human-authored portable
  workflows per docs/ecosystem.md).
- Chose: principle-prove-it is the one principle that does NOT carry
  disable-model-invocation. The other 25 are steering vocabulary you invoke
  by name; this one is a gate whose job is to intercept a claim as it forms.
  A gate that only fires when someone remembers to name it is not a gate.
  prove-it-ship-gate already auto-fires from corpus, so there is precedent.
- Rejected: reusing independent-judge-swarm's board shape. That grades a
  finished artifact (verdict/score/blocking_issues); these four return
  findings about work that has not happened yet, so there is nothing to
  grade. Shared shape lives in principle-prove-it/references/
  finding-shape.md instead, reusing the fan-out mechanic and the
  document-the-null rule from reflect/references/lenses.md.
- Rejected: treating alternatives-considered as symmetric with how/why.
  how and why read what exists and can return an honest null;
  alternatives generates, so it can always produce three plausible options
  and manufacture evidence for the very gate it feeds. Every option is
  labeled considered (cited) or invented (untested), and an invented option
  may not decide anything until spike-and-validate turns it into a run with
  real output.
- Not done here: retiring invoker-prove-it, repointing diu-stop's message at
  the new principle, and documenting/enforcing which skills may auto-fire.
  The last one is the next slice in this stack — it found that
  product/skills/admin-bypass-sweep (force-merge past required checks) is
  auto-invocable today and held back only by prose in its description.

## Blast Radius
- Adds only. No existing file modified, no hook logic touched.
- New: corpus/skills/principle-prove-it/ (SKILL.md, references/
  finding-shape.md, 2 test fixtures); product/skills/{how,why,
  alternatives-considered,spike-and-validate}/ (SKILL.md + 2 fixtures each).
- principle-prove-it auto-fires, so it can now load on claim-shaped turns
  that previously loaded nothing. Cost is context on exactly the turns where
  the rule applies.
- Risk: `how` and `why` are generic names in a flat installed skill
  namespace. Verified no collision in ~/.claude/skills at authoring time.
- Revertable with git revert; ./install.sh prunes the symlinks on rerun.

## Verification
- python3 scripts/check_ecosystem_boundaries.py -> ok
- python3 scripts/check_skill_file_refs.py -> ok
- python3 scripts/check_skills_three_harnesses.py -> ok
- python3 scripts/check_skill_trigger_mechanism.py -> ok
- python3 scripts/check_skill_test_coverage.py --base origin/main --head HEAD
  -> ok (rerun post-commit; the pre-commit run compared origin/main to an
  unchanged HEAD and passed vacuously)
- check_codify_has_code.py run with --allow-prose-only: this slice adds rule
  prose whose enforcement already ships in engine/hooks/prove-it-ship-gate,
  engine/hooks/hedge-runs-prove-it, and engine/hooks/diu-stop.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JQMWSLRArEfEm1psa7RKdD
@mergify mergify Bot closed this Sep 9, 2026
@mergify
mergify Bot deleted the mergify/merge-queue/d6da425310 branch September 9, 2026 20:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant