Skip to content

Docs/sync gate order and pr template#65

Open
kenanay wants to merge 15 commits intomainfrom
docs/sync-gate-order-and-pr-template
Open

Docs/sync gate order and pr template#65
kenanay wants to merge 15 commits intomainfrom
docs/sync-gate-order-and-pr-template

Conversation

@kenanay
Copy link
Owner

@kenanay kenanay commented Mar 16, 2026

Freeze PR Template

Gate Run

  • Run ID:
  • Evidence Path (evidence/run-<id>/):

Gate Verdicts

  • ABI (ci-gate-abi):
  • Boundary (ci-gate-boundary):
  • Tooling Isolation (ci-gate-tooling-isolation):
  • Constitutional (ci-gate-constitutional):
  • Workspace (ci-gate-workspace):
  • Hygiene (ci-gate-hygiene):
  • Performance (ci-gate-performance):
  • Summary (ci-summarize):

Tooling Isolation Guard

  • Perf/preempt tooling touched in this PR: yes/no
  • If yes, kernel touch = 0: yes/no
  • Tooling isolation evidence path (evidence/run-<id>/gates/tooling-isolation/):

Contract Change

  • Changed contracts: yes/no
  • If yes, exact paths:

RFC / Waiver

  • RFC link (if required):
  • Waiver link (if required):

Claim Check

If this PR claims Completed/Production-ready, all must be true:

  1. summary.json verdict is PASS
  2. test + benchmark evidence linked
  3. related docs updated
  4. architecture review note linked

Notes

  • Planned gates may be hard-fail stubs during freeze hardening.
  • Do not merge feature work into mainline during active freeze.

kenanay added 11 commits March 15, 2026 20:52
- 4 architectural kill-switch CI gates
- property tests now mandatory
- Property 6: artifact_passthrough_integrity
- Property 7: diagnostics_read_only_surface
- diagnostics surface guaranteed read-only
- 104 tests passing
- Generate deterministic RUN_ID (YYYYMMDDTHHMMSSZ-<sha>) matching evidence/ naming convention
- Use EVIDENCE_DIR variable in failure output for accurate path reporting
- Aligns with evidence/run-<RUN_ID>/ directory structure
- docs/hooks/: hook configuration and .kiro.hook reference copies
- docs/steering/: steering reference copies (product, rules, structure, tech)
- docs/specs/pre-ci-discipline/: pre-CI discipline spec (requirements, design, tasks)
- docs/specs/phase13-trust-registry-propagation/: Phase 13 trust registry spec
- scripts/ci/test_pre_ci_discipline.sh: pre-CI discipline test script
- userspace/proofd/proptest-regressions/lib.txt: proptest regression seeds
…mization

- Add ci-kill-switch-phase13 target grouping all 13 Phase-13 kill-switch
  gates (proof integrity, distributed verification, observability isolation,
  reputation prohibition)
- Wire ci-kill-switch-phase13 into ci-freeze pipeline (was: implemented
  but not enforced)
- Add PRE_CI_MODE=1 support to ci-gate-boundary: skips kernel rebuild
  when existing artifact present, preventing local pre-ci timeout
- Update pre_ci_discipline.sh to pass PRE_CI_MODE=1 for boundary gate

Phase-13 kill-switch gates now enforced in CI. Local pre-ci discipline
remains advisory (4 gates only).
Shell grep-per-symbol loop was O(n*m) process forks causing boundary
gate timeout on macOS. Replace steps 2+3 with symbol_scan_match.py
which compiles all patterns once and runs in-process.

Before: timeout (>30s)
After:  0.4s

Evidence format and exit codes unchanged.
search() on anchored patterns (^...$) is functionally equivalent but
fullmatch() correctly expresses the intent: exact symbol match, not
substring. Consistent across both deny and allow steps.
…SS state (Constitutional Rule 7)

Phase status updates:
- Phase-10/11: OFFICIALLY CLOSED (remote CI run 22797401328)
- Phase-12: OFFICIALLY CLOSED (remote CI run 23099070483, PR #62, tag phase12-official-closure-confirmed)
- Phase-13: KILL_SWITCH_GATES_PASS (6/6 gates PASS, tag phase13-kill-switch-gates-pass at 0ec4bb5)
- CURRENT_PHASE=12 (formal transition at 0adb2a8)

Files updated:
- ARCHITECTURE_FREEZE.md: CI gate list updated to 23-gate chain, status section updated, version 1.4→1.5
- docs/roadmap/freeze-enforcement-workflow.md: Section 2.1 full gate list + execution order rationale + gate order change protocol; Section 2.3 gate order lock note
- docs/roadmap/README.md: Phase status and CURRENT_PHASE pointer corrected
- docs/development/PROJECT_STATUS_REPORT.md: Phase-12 CLOSED, Phase-13 kill-switch status, date updated
- docs/development/DOCUMENTATION_INDEX.md: CURRENT_PHASE=12, Phase-12/13 status corrected
- docs/steering/product.md: Current Status section updated with all phase closures and 23-gate count
- docs/steering/tech.md: Mandatory Gates section updated with full 23-gate ordered list

Refs: Constitutional Rule 7 (Documentation Synchronization)
Copy link

@chatgpt-codex-connector chatgpt-codex-connector bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 328a25b3f4

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

echo ""
echo "Inspect evidence under:"
echo " ${EVIDENCE_ROOT:-out/evidence}/run-<RUN_ID>/reports/"
echo " ${EVIDENCE_DIR}/"

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Report only evidence paths that match gate run IDs

The failure message now prints a concrete run-${RUN_ID} evidence directory, but this script-local RUN_ID is never exported or passed into the make gate commands, so each gate can write evidence under a different Makefile-generated run id; when a gate fails, users are directed to the wrong directory and cannot find the actual artifacts for debugging. This is reproducible by running the script with a mocked make and observing RUN_ID is unset in child invocations.

Useful? React with 👍 / 👎.

Comment on lines +66 to +69
case "\$1" in
ci-gate-abi) exit ${abi_exit} ;;
ci-gate-boundary) exit ${boundary_exit} ;;
ci-gate-hygiene) exit ${hygiene_exit} ;;

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Match boundary target after make variable assignments

The mock make dispatcher keys only on $1, but the updated boundary invocation is make PRE_CI_MODE=1 ci-gate-boundary, where $1 is PRE_CI_MODE=1 and the target is $2; this prevents boundary failures from being simulated, so fail-closed assertions for the boundary step become invalid (e.g., bash scripts/ci/test_pre_ci_discipline.sh reports boundary checks failing for the wrong reason). The mock should skip leading VAR=... args before matching the gate target.

Useful? React with 👍 / 👎.

kenanay added 4 commits March 16, 2026 23:41
…13 §4.1 spec

- GATE_REGISTRY.md: remove ci-gate-proof-bundle from verification artifact
  integrity supporting gates (consistent with Makefile change)
- PHASE13_KILL_SWITCH_GATES.md: same removal
- Add phase13-service-backed-verification-expansion spec:
  requirements.md, design.md, tasks.md
- design.md: add atomic manifest creation (O_CREAT|O_EXCL) design
- design.md: add path normalization flow (two-layer: segment safety + allowed set)
- design.md: add spec projection layer (FederationDiagnosticsProjection)
- design.md: add forbidden fields compile-time guard (PHASE13_FORBIDDEN_FIELDS const)
- design.md: add P9 path traversal normalization property test
- design.md: add 'diagnostics never influence verification result' kill-switch invariant
- design.md: update data models section with projection structs
- tasks.md: expand task 4 with path normalization sub-task (4.3)
- tasks.md: rewrite task 6 with projection struct sub-tasks (6.2-6.5)
- tasks.md: add P9 to task 7 (7.7)
- tasks.md: add task 8 (atomic manifest creation)
- tasks.md: add task 9 (spec projection layer isolation)
- tasks.md: add task 10 (forbidden fields serialize-level guard)
- requirements.md: already updated in previous session
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