ci/woodpecker/pr/ci Pipeline failed
Addresses CPS-PRD-REV1-REVIEW-Q90 findings F1 and F3 on PR #1491: F1 (format gate): `prettier --write` on the 18 rev1 bundle documents. Whitespace, table padding, list markers and emphasis delimiters only — a normalized token comparison of every file before/after shows zero content difference, so the ratified text is unchanged and no re-ratification applies. F3 (rev0 relative links): the archived rev0 PRD stays byte-identical (sha256 60cc2f98...36afdf verified) per GOV.1 archive-never-edit. A sibling docs/PRDs/2026-08-26_PRD_rev0/README.md records the digest, the original location, the owner disposition that the in-file links are intentionally historical, and a resolution table for all 9 targets (11 occurrences), each verified to exist. Future relocated archives ship the same README instead of edited bytes. F2 (test step) is investigated separately against the CI log.
9.9 KiB
9.9 KiB
id, status, ratified
| id | status | ratified |
|---|---|---|
| GOV.5 | ratified | 2026-09-01 (Jason Woltje; PRD rev1 ratification PR) |
GOV.5 — Open questions (the grill list)
Every question the corpus could not settle. This is the E5 ms-grill-me input; ratification is blocked until this list is empty or every remaining row is explicitly deferred with an owner. IDs are stable; answered questions get their ruling recorded here and flow into the owning section.
Frontier status (2026-09-01, grill rounds 3–8 complete): EMPTY. Every row
is ruled, dissolved, or deferred-with-owner. The operator-side Q-T3 canon
coalescence closed in round 8 and was executed the same day (brain commit
59d43270). E6 ratification executed 2026-09-01; this list is frozen with the
bundle.
Data model
- Q-D1 — RULED, Jason 2026-09-01: consolidate.
launch.envfolds intoprofile.json(one seat record). Precondition verified same day:mosaic-core/lib/loader.ts seatRole()parses profile.json as a generic record and reads onlyrole— widened files tolerated by construction. Migration staged as lane work (ledger B1). - Q-D2 — RULED, Jason 2026-09-01: per-provider map + broker refs.
profile.jsoncarries a per-provider map whose values are credential-broker references (environment/service/component/secret-name), never secrets — one seat, N providers, zero secrets in the brain tree. Flows to DATA.1-record-authority and AUTHN.1-auth-accounts. - Q-D3 — RULED, Jason 2026-09-01: the projection engine owns. One
writer: the role-projection engine (
role applypath). The launcher seeds nothing itself — it invokes the projector; Pi and every harness get regenerated files on each role/seat change; hand edits are drift, flagged byvalidate. Consistent with L2-D19 + Q-T5. Unblocks the reconciliation features (lane ledger B3 → D8). - Q-D4 — RULED, Jason 2026-09-01: role ceiling + seat choice. The Role Revision defines the allowed model set (policy ceiling); the seat records preferences within it; effective models = intersection, consistent with the L2-D39 intersection chain. Flows to HARN.1-harness-config and role-harness-config DESIGN Q2 (same ruling, both doors).
- Q-D5 — DEFERRED with owner (Jason 2026-09-01): the mutating
config-engine half gets its own ruling after v1 read-only
validate/planships; owner = the mosaic-config workstream. (CLI.1-parity §v1 subset)
Sessions
- Q-S1 — DEFERRED with owner (Jason 2026-09-01): the session-id ↔ incarnation-id contract is settled inside the session-lifecycle draft before it lands (which now carries the Q-S4 two-path requirement); owner = that draft's ratification. (SESS.1-session-continuity)
- Q-S2 — RULED, Jason 2026-09-01: step-up re-auth required. Role rebinding is an authority-changing act: fresh principal re-authentication ≤10 minutes before the confirmation lands, matching the S2 identity-lifecycle linking precedent. Flows to SEAT.1-seat-profile §role-binding and the UI.1 seat-page spec.
- Q-S3 — DEFERRED with owner (Jason 2026-09-01): the measurable continuity-degradation bar is settled inside the session-lifecycle draft before it lands; owner = that draft's ratification.
- Q-S4 — RULED, Jason 2026-09-01: two-path requirement ratified. The session-lifecycle draft may not land with one relaunch path. Role change → clean-session path (new incarnation + fencing token, ephemeral context discarded, OD-02/OD-03); harness/model/provider change → continuity path (same Stack session id, checkpointed context restored, OD-57–OD-61, no noticeable degradation). Binding requirement on the draft, recorded in SESS.1-session-continuity §state machine.
Audit
- Q-A1 — RULED, Jason 2026-09-01: mechanical tooling. The audit is deterministic tooling over the grant/assignment record (witness-style, per the S2 writer-coverage pattern); its output feeds the audit page read-only. Agents may consume audit output but never produce the verdict ("prompt adherence is not an enforcement mechanism"). Flows to AUTHZ.1-capability-authority and UI.1-webui-surfaces §audit.
- Q-A2 — DISSOLVED by the Q-A1 ruling: the auditor is code, audited by ordinary review and CI witnesses, not a seat subject to misdirection.
- Q-A3 — DEFERRED with owner (Jason 2026-09-01): the computable misdirection metric is designed inside the mechanical audit tooling ruled by Q-A1; owner = the audit-tooling workstream (lane ledger C2).
Surfaces
- Q-N1 — DEFERRED with owner (Jason 2026-09-01): technical investigation of the in-browser OAuth flow (tmux-bridged terminal vs server-side) runs before the auth page builds; owner = the auth-page workstream (lane ledger D6). (AUTHN.1-auth-accounts)
- Q-C1 — RULED, Jason 2026-09-01: CI witness in the stack repo. The parity matrix becomes a generated artifact with a drift-gate witness (contract-9 pattern): CI regenerates the inventory from code and fails on divergence from the committed matrix. Flows to CLI.1-parity; the witness itself is E6-return follow-up work.
Governance
- Q-G1 — RULED, Jason 2026-09-01: both ratified. L2-D52 (least-privilege Assignment issuance, closes G1+G2) and the G6 WebUI surface-scope fix applied per their return procedures after digest re-verification; amendment files flipped to ratified; lane ledger A3/A4 closed.
- Q-G2 — RULED, Jason 2026-09-01: distinct prefixes at source. Stack keeps D1–D15; the operator DECISION-REGISTER renames to OD-01…OD-65 with a redirect table at the source doc; file-local D-numbering in drafts is prohibited going forward (each decision doc declares a unique registry prefix, rule lands in GOV.1-prd-lifecycle). Applied at E6 return for stack references; brain-side rename on next DECISION-REGISTER touch.
- Q-G3 — RULED, Jason 2026-09-01: Jason marks; archive in bundle. Graduation is a ratification act — Jason marks it (grill or direct ruling); the graduated contract text archives inside the then-current PRD revision bundle (GOV.4-workstream-contracts gains a graduated-set section), keeping the frozen-bundle model intact.
Triage-raised (E2 sweep, 2026-08-31)
- Q-T1 — RULED B, Jason 2026-09-01: "shipped but frozen." Amend D3 to
acknowledge federation M1–M3 exist (Step-CA, enrollment, grants, mTLS auth
guard, ScopeService, list/get/capabilities verbs; M3 landed 2026-06-24/25),
are excluded from the v1 bar, and are frozen; re-home tracking in
NORTH_STAR.yaml as a dormant workstream; frozen cert/auth code carries a
security re-audit gate before any resumption. Consequences at E6 return:
supersession/status banners on the three stale docs (root MISSION-MANIFEST,
federation/MISSION-MANIFEST, scratchpads/mvp-20260312), reconcile
guides/deployment.md with D15, NORTH_STAR.yaml dormant entry. The P5
scope ambiguity (governance-federation vs shipped mTLS-query federation)
stays open inside the future federation PRD, not rev1. Evidence: lane
FEDERATION-DOSSIER-2026-08-31.md. - Q-T2 — RULED, Jason 2026-09-01: all three re-ratified into the rev1 decision map (GOV.3-decision-map §re-ratified orphans): "No Python" in the monorepo; Matrix/MACP exactly-three-install-modes with Mode A (split-domain) primary; OpenBrain excluded from consolidation scope. The Matrix ruling's open DNS/domain prerequisite gets its own row (Q-T6).
- Q-T3 — RULED (partial), Jason 2026-09-01: coalesce under the
STRUCTURE-CANON name. MOSAIC-CANON's more comprehensive content is
authoritative;
STRUCTURE-CANON.mdis the logical surviving document name; the two coalesce into one. Conflict report delivered and all six decision points ruled (grill round 8, 2026-09-01): per-seat credential slots win; doc paths corrected tofleet/auth//fleet/memory/; ENTITY.md/README.md stay required with a 42-seat backfill task; merge executed with the full reference sweep, MOSAIC-CANON reduced to a pointer shim. Record: laneCANON-COALESCENCE-2026-09-01.md. Operator-side; not a rev1 blocker. - Q-T4 — RULED, Jason 2026-09-01, two parts.
(a) Two independent axes: "Standalone/Enterprise" in the S2 corpus is a
multi-tenancy/isolation mode (
platform_mode, D3/D11); D15's "compose standalone tier" is deployment packaging. Orthogonal. rev1 text always says "standalone mode" vs "compose tier"; mode-conversion.md needs a terminology note only, not a rewrite. (b) Own track, rev1 cites: rev1 ratifies citing the nine contracts as DRAFT successor material with status noted; each contract ratifies on its own PR when its family lands. Extraction record: laneS2-EXTRACTION-2026-08-31.md. - Q-T5 — RULED, Jason 2026-09-01: scope to files. Adopted wording:
"Generated settings files are projections of the active Role Revision,
never authority (L2-D19). DB settings records written through audited
Gateway commands (
platform_mode,registration_mode,custody_config,bootstrap.seed-company-name, and their successors) are records of authority like any other SOT row." No corpus conflict remains. Case law: contract 1 §5.4, contract 8 §2.4, contract 9 §3.2. - Q-T6 — DEFERRED with owner (Jason 2026-09-01): the Matrix/MACP
Mode A DNS/domain prerequisite (
archive/planning/matrix-macp/rfc-001:428) rules before any Matrix install work resumes; owner = whoever reopens Matrix. Until then Mode A is primary-on-paper only.
Deferred-by-scope (recorded, not blocking rev1)
- Federation design (D3 — roadmap placeholder; nothing in v1 may foreclose it). Q-T1 ruled B (2026-09-01): D3 to be amended — M1–M3 acknowledged, frozen, security re-audit gate before resumption; design itself stays deferred.
- OS/kernel-level seat sandboxing (explicit lane non-goal; role-lane discipline, not process containment).