spec(proposal): Phase 5 — approval semantics over the Phase-2 Ward (threads-uqx)#6
spec(proposal): Phase 5 — approval semantics over the Phase-2 Ward (threads-uqx)#6BunsDev wants to merge 6 commits into
Conversation
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…s-k9s)
Cave implementation wraps route-1 data as { weaves, degraded } rather than
overloading a WeaveSummary[] with degraded entries — the wrapped shape avoids
any fabricated health fields on degraded familiars. Same-day alignment of the
2026-07-18 §2.7/R12 amendment.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
All 8 open questions resolved on Sage's recommended defaults: - ApprovalPath separate from Channel (load axis preserved) - Delayed apply only for veto windows (fail-closed posture) - Classify-first for harness regions - Deterministic + probe for invariants (not LLM-judge-only) - RFC #3/#4 blocker resolved (familiar-contract@2a5bb98) - Daemon contract before Cave ProposalView extension - Display labels preserved, typed variants internal - proposal_window_opened audit event lands with delayed apply Rename PHASE-5-PROPOSAL -> PHASE-5-APPROVAL-SEMANTICS to reflect open status. Co-authored-by: Nova <nova@opencoven.dev>
…uqx) Add substantive annotations from Sage and Echo review (2026-07-18): Decision #1: rationale callback — ApprovalPath is authoritative, Channel is derived; if enforcement rule shifts, revisit all eight decisions. Decision #2: audit implication — close event needs reason field (applied|vetoed|expired|superseded); delayed-apply without it is a post-hoc audit black hole. Decision #3: forward-only promotion — retroactive region projection corrupts authority trail with apparently-authored writes from before promotion. Decision #4: fail-closed on extraction ambiguity — not silent LLM fallback; ambiguity is an explicit ignored/blocked state. Decision #5: RFC provenance pointer added. Decision #6: Cave ProposalView labeled [DESIGNED, NOT SHIPPED] from the start. Decision #7: label-variant round-trip is daemon wire contract (load-time reject on drift); Cave has zero policy freedom over label strings. Decision #8: proposal_window_opened paired with close event; window is a first-class audit interval. threads-uqx.3 design constraints (Sage): evidence_replay_hash on ProposalClassification; VetoWindow.min_visible: Duration; label mapping as daemon wire contract. Co-authored-by: Sage <sage@opencoven.dev> Co-authored-by: Echo <echo@opencoven.dev> Co-authored-by: Nova <nova@opencoven.dev>
|
Independent coherence review (fresh-context, commissioned by coordinator session; reviewed branch tip 3fe72ca) — NEEDS-REVISION, record-level. Five findings before/alongside merge: HIGH — decision #1 annotation contradicts frozen Phase-0. "ApprovalPath is authoritative; Channel is a derived load descriptor. Never gate on Channel" — but frozen PHASE-0 makes Channel a first-class enforcement axis: §2.1 (every gate check = 'does thread T hold under channel C'), §5 (unknown channel → Reject), §3.3 (C7 requires SerializationMarker under Channel::Serialization; two-compaction is channel-keyed). Taken literally the rule makes C7 unimplementable, and it misbinds the Phase-0 term descriptor (§2.2) onto Channel (§2.5 violation). Rescope to: "never derive ApprovalPath from Channel" — the underlying decision (classification independence) is sound. Urgent because uqx.3–.5 are already committed on MEDIUM×4:
Verified sound: ApprovalPath lattice = RFC §5.3 exactly (incl. MUST NOT auto-promote protected surface); delayed-apply-only holds everywhere (no provisional-apply reintroduction); strand-kind and channel extension discipline respected; metaphor binding otherwise exemplary. Full analysis on bead threads-uqx. |
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
|
Authority-review remediation is now pushed in |
|
Upstream RFC/schema gate is now implemented as stacked draft OpenCoven/familiar-contract#4 ( |
Summary
Records the provisional Phase 5 approval-semantics design over the Phase-2 Ward.
Val opened implementation on the recorded defaults; independent Nova attestation
and final Val freeze remain explicit human gates.
Authority constraints
Channelremains the load/enforcement axis;ApprovalPathis an orthogonalpromotion ceremony.
authorize promotion.
or Val gates.
Remaining freeze gates
threads-uqx.2: merge familiar-contract PR RFC-0001 §5.5: add S_p(F) ∈ S_p(F) as explicit closure precondition (Cody soundness flag) #3 for closure and provenance.threads-uqx.12: align RFC/schema approval-tier declarations with typeddaemon semantics.
threads-uqx.13: create an authorized, sanitized, reproducible v0.1 migrationfixture.
threads-uqx.8: complete implementation and migration fidelity.threads-uqx.7: extend the Cave contract after daemon read models exist.threads-uqx.9: independently attributable Nova coherence sign-off.threads-uqx.10: direct Val freeze or rejection.Review evidence
Fresh-context authority review identified four blocking defects. Commit
7eb8522fixes all four and a second fresh-context review reported nosignificant issues. The Beads graph is acyclic.