§3 — P2: sn edit validation parity ✓ landed 2026-07-10
Quick status
| Item | Status | Commit |
|---|---|---|
| Gate parity — edit artifacts through the pipeline validation stack | ✓ shipped | 5777ae32 (codex) |
| Cascade atomicity — validate descendants before commit, full rollback | ✓ shipped | 5777ae32 |
| Docs-edit preconditions + filter_protected + override flag | ✓ shipped | 5777ae32 |
| --scope family semantics reconciled | ✓ shipped (verdict documented in module) | 5777ae32 |
| Parity test suite (per edit mode × per violation class) | ✓ shipped | 5777ae32 |
What shipped
- Gate parity (decision d-edit-validation = full-pipeline-parity): edit-origin artifacts
route through
validate_name_candidate— the same validation stack pooled pipeline candidates pass (ISN Pydantic layer, grammar round-trip, semantic/description checks, quarantine) — with successor validation stamped via_stamp_successor_validation. No privileged edit path toacceptedremains; the call-graph audit is embedded as maintenance documentation in the touched modules. - Cascade atomicity: every descendant id produced by a rename cascade is round-trip
validated and uniqueness-checked in a preflight inside
persist_reviewed_namebefore the cascade commits; a constraint collision rolls back the whole cascade with the acceptance (tests/standard_names/test_cascade_atomicity.py, 127 lines). - Docs edits: persist paths run
filter_protected; the docs-edit claim requiresdocs_stage IN [accepted, exhausted]; catalog-edit-origin docs need the explicit override flag (findings 9/10 closed). - Family scope (finding 11): flag and docs reconciled — verdict documented in the module.
- Parity suite:
test_edit_parity.py(312 lines) proves grammar-invalid, semantically-invalid, and protected-field-violating edits are stopped by the same gates that stop the equivalent pipeline candidate, for each edit mode (hint/rename/docs).
Verification
- Orchestrator re-ran the four edit test files independently: 78 passed, exit 0.
- Deprecation-stub recording (
superseded_from_stage, commitbb76411e) preserved through the graph_ops changes. - Scope audit: single commit touches exactly the allocated files (792 insertions); no AI trailers; pushed to main.
- Continuity note: the work survived two worker session-limit deaths; gen-3 completed verification, isolating mid-suite failures as pre-existing before committing workers.py.