docs(decisions): add COR-040 process open region#423
Conversation
Ships the process substrate's deferred open-region slot (COR-033 P6): a single state with no internal edges, region-scoped invariants (un-defers COR-035's `applies_to`), and one COR-033-P4 exit gate. Boundary-enforcement is delivered as exit-gate predicate composition — the engine never blocks a move because of an invariant — so COR-035's report-only default is preserved verbatim. Mutation-time fail-closed stays the binding's command-wrapper job; liveness is the binding's gate-design problem (status surfaces non-progress). Additive (no migration); grounded on trip-planning DEC-014's `build`; supersedes nothing. Tracked by #417. Status: proposed. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Approved by Aleš Kalfas (approve-and-accept). Flips COR-040 proposed → accepted, unblocking the engine + shape work on #418. Status: accepted. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
New accepted-COR principle is a surface change (PRJ-002); broadens the adapter's requires_backbone ceiling. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
Reviewer agent (local, reviewer): CHANGES_REQUESTED Reviewed PR #423 ( Hard-reject (gate-blocking)
Warnings (non-blocking, worth addressing)
Passing criteria (noted, not blocking)
Resolve the missing |
|
Reviewer agent (local, reviewer): APPROVED Review of PR #423 ( Warnings (non-blocking):
Criteria that pass, worth noting given the self-host context:
No |
Closes #417.
What
Ships COR-040 — "A process may declare an open region", the last un-shipped slot in the process-substrate parking lot (EPIC #237). An open region is a single state with no internal edges +
applies_to-scoped invariants + one COR-033-P4 exit gate. Boundary-enforcement is delivered as exit-gate predicate composition (the engine never blocks a move because of an invariant), so COR-035's report-only default is preserved verbatim; mutation-time fail-closed stays the binding's command-wrapper job; liveness is the binding's gate-design problem (status surfaces non-progress).Additive un-defer of COR-033-P6 + COR-035's deferred
applies_to/ boundary-enforcement; supersedes nothing. Includes theminorversion bump 1.132.0 → 1.133.0 for the new accepted-COR principle (PRJ-002).Doc impact
None in this PR. The
.pkit/process/README.mddeferred→core row flip (open-region +applies_to/ boundary-enforcement) lands with the engine task #418, not here — this PR adds the decision record and the version bump only. No migration owed (pure addition;pkit migrations check-diffclean).Test plan
N/A for a decision-authoring PR. Review coverage:
architect+critic(design) andmethodology-reviewer(the authored record).Reviews
architect+critic(2026-07-01); the decisive fix (open region = single state; enforcement = gate composition, not move-blocking invariants) is baked in.methodology-reviewer— PASS, 0 blockers; additive-un-defer framing confirmed, report-only preserved verbatim.Scope
This is Task #417 (author + accept the COR). The engine + shape contract + engine-strategy ADR is #418 (unblocked by this); grounding on trip-planning
buildis #419.🤖 Generated with Claude Code