Files
stack/docs/PRDs/2026-08-31_PRD_rev1/GOV.5-open-questions.md
T
jason.woltje ad21ad7ac5
ci/woodpecker/pr/ci Pipeline failed
docs: ratify PRD rev1 — consolidated bundle, permanent shim, rev0 archived
Ratifies the Mosaic Stack PRD rev1 (Jason Woltje, 2026-09-01) as project
source of truth and installs the GOV.1 lifecycle model:

- docs/PRD.md becomes a permanent shim (kind: shim, current_rev ->
  docs/PRDs/2026-08-31_PRD_rev1/). Its path never changes again.
- docs/PRDs/2026-08-26_PRD_rev0/PRD.md archives the 2026-08-26 North Star
  verbatim (sha256 60cc2f98...36afdf unchanged). Archive, never delete.
- docs/PRDs/2026-08-31_PRD_rev1/ is the frozen rev1 bundle: 18 sectioned
  documents (VIS, DATA, AUTHN, AUTHZ, SEAT, ROLE, HARN, PROV, SESS, UI, CLI,
  GOV.1-5) consolidating rev0 D1-D15, the fleet north star, the agent-runtime
  L1/L2 contracts and the control-plane-surfaces lane findings, with a single
  decision map (GOV.3) and a closed open-questions frontier (GOV.5, grill
  rounds 1-8). Drafting inputs (_source-* snapshots) are not shipped.

Consequences of the ratified rulings carried in the same change:

- Q-T1 (ruling B, "shipped but frozen"): D3 amended in GOV.3/VIS.1;
  federation M1-M3 acknowledged as shipped behind tier === 'federated',
  excluded from the v1 bar and frozen, with a security re-audit gate before
  any resumption. docs/MISSION-MANIFEST.md, docs/federation/MISSION-MANIFEST.md
  and docs/scratchpads/mvp-20260312.md get status: superseded + banners
  (content preserved verbatim); docs/guides/deployment.md gains a
  "Relationship to the PRD (D15)" section. NORTH_STAR.yaml adds dormant
  workstream M (projects no goals by design); NORTH_STAR.md regenerated.
- Q-G2 (distinct registry prefixes): every citation of the operator
  DECISION-REGISTER in the bundle reads OD-nn; the stack registry stays
  D1-D15; L1-Dnn/L2-Dnn untouched. Prefix rule recorded in GOV.1.

Follow-ups (not in this PR): CI parity drift-gate witness (Q-C1); brain-side
DECISION-REGISTER rename to OD- with redirect table on its next touch.
2026-09-01 18:32:14 -05:00

172 lines
9.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
id: GOV.5
status: ratified
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 38 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.env` folds
into `profile.json` (one seat record). Precondition verified same day:
`mosaic-core/lib/loader.ts seatRole()` parses profile.json as a generic
record and reads only `role` — 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.json` carries 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 apply` path). 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 by
`validate`. 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`/`plan`
ships; 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-57OD-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 D1D15; 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 M1M3 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.md` is 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 to `fleet/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: lane `CANON-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: lane
`S2-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 — M1M3 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).