Skip to content

v0.4 Oz control-plane design — general infra reconciled to main; parked for v0.4 run#51

Open
BadGuyFranco wants to merge 14 commits into
mainfrom
oz-control-plane-design
Open

v0.4 Oz control-plane design — general infra reconciled to main; parked for v0.4 run#51
BadGuyFranco wants to merge 14 commits into
mainfrom
oz-control-plane-design

Conversation

@BadGuyFranco
Copy link
Copy Markdown
Owner

What

The claude.ai/design output — the "Oz — Control Plane Prototype" — landed. It realizes v0.4-oz-control-plane (the 5-nav control plane per ADR-0008), with the embedded Electron terminal harness explicitly deferred to the brief's "v2" (tracked as v0.6-cocoder-ide).

Note: this PR also carries your local commit d62e8f9 (Oz design brief + ADR-0008 5-section nav) which wasn't yet on origin/main — it's the design refinement this spec realizes, attributed to you. The new commit 3d30530 is the docs/planning work below.

Contents (docs/planning only — no code)

  • docs/oz-control-plane-design/ — the high-fidelity React prototype (app.jsx, dashboard.jsx, screens.jsx, components.jsx), brief (README.md), informal data model (data.js), the 18 component specs (dev-notes.js), and Fusion design-system/ tokens (Josefin Sans + gold kanji marks). Reference, not production code.
  • v0.4-oz-control-planeActive: "Design spec landed" section + designer-notes.md (simulated-vs-real wiring, what-not-to-inherit, architecture invariants, a11y gaps, scope).
  • v0.6-cocoder-ide → reframed to the deferred "v2" embedded Electron terminal harness.
  • PRIORITIES.md → v0.4 promoted to Active; v0.6 reframed.

Decisions flagged for ADR-0010 (next, not in this PR)

Pause/resume run primitive (Oscar blocks for a founder answer, then resumes), cocoder attach <run-id>, per-run transcript streaming + persistence, real run.progress, persona-roster reconciliation (spec adds Doc; Ian/Phil absent), and in-app update channels (founder-confirmed in scope; auth/identity/billing/telemetry deferred).

Merge note

PRIORITIES.md trivially overlaps #50 (which adds v0.5). Merge #50 first, or resolve the few adjacent rows at merge.

🤖 Generated with Claude Code

BadGuyFranco and others added 14 commits May 27, 2026 11:23
…o Dashboard

Correct the Oz control-plane IA to match the founder's stated layout:
- Left nav is exactly five sections — Dashboard, Workspaces, CLIs, Personas,
  Settings. No standalone Runs or Priorities pages.
- Dashboard is built around the Oz chat as the command center; priorities and
  runs are supporting panels inside it (Oz watches runs from the Dashboard).
- Design prompt rewritten to design from the brief alone (don't reuse the
  current shipped oz-dashboard UI), which is what caused the prior drift.
- ADR-0008: five surfaces + new decision on Dashboard composition; six-section
  layout recorded under rejected alternatives. v0.4 priority work items realigned.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
The claude.ai/design output (the "Oz — Control Plane Prototype") landed. It
realizes v0.4-oz-control-plane (5-nav control plane per ADR-0008), with the
embedded Electron terminal harness explicitly deferred to the brief's "v2".

- docs/oz-control-plane-design/: the high-fidelity React prototype + brief +
  Fusion design-system tokens. Reference, not production code.
- v0.4-oz-control-plane: status -> Active; "Design spec landed" section +
  designer-notes.md (simulated-vs-real wiring, what-not-to-inherit, arch
  invariants, a11y, scope). Decisions flagged for ADR-0010: pause/resume run
  primitive, `cocoder attach`, transcript streaming, persona-roster
  reconciliation (new "Doc"; Ian/Phil absent), in-app update channels.
- v0.6-cocoder-ide: reframed to the deferred "v2" embedded Electron harness.
- PRIORITIES.md: v0.4 promoted to Active; v0.6 reframed.

Docs/planning only; no code changes.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
v0.1-foundation only had the narrow dogfood-port-tests boundary (Talia ->
packages/core/tests/). Oz launches the oscar-lead route (oscar+bob), which was
unauthorized and gave Bob no writer boundary -> the launch CLI refused (boundary
safety) -> daemon reported the opaque "spawn-failed". Mirrors the working v0.3
oscar-lead boundary: Bob writes code/docs/templates/config; governance docs
(PRIORITIES.md, SESSION_LOG.md, cocoder/priorities, cocoder/decisions) excluded.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Every priority needs a per-route write-boundary or Oz launches fail with an
opaque "spawn-failed" (boundary-route-mismatch). Only v0.1 + v0.3 had one;
this closes the gap for all current priorities so future orchestration launches
don't wedge. Default shape mirrors v0.3 (Bob writes code/docs/templates/config;
governance docs + root deps excluded) — labeled "default — tighten as needed".

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…follow-on

- v0.2: founder decided not to pursue cloud/managed adapters in this roadmap.
- v0.6: folded into v0.4 — the embedded Electron terminal is a later phase of
  the control plane, not a separate priority.

Moved both folders to cocoder/priorities/zArchive/ (+ zArchive/INDEX.md);
dropped their PRIORITIES.md rows + parser blocks; removed their now-dead
oscar-lead boundaries. v0.4 README notes the Electron harness is a folded later
phase and that v0.3-workspace-lifecycle is its follow-on (engaged when v0.4
wires the Workspaces screen). v0.3 sequencing re-pointed to follow v0.4.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Oscar was canWrite:false and Bob was excluded from governance docs, so
priorities/plans/ADRs/PRIORITIES.md/SESSION_LOG/tickets were writable by
neither persona — blocking the orchestrator from its own lifecycle work
(exposed by m2ivp19j: Oscar got founder approval to archive v0.1 + fold into
v0.4 but could not execute).

- Profile cocoder-oscar: oscar lane canWrite:true + governance writeBoundary
  (priorities, plans, PRIORITIES.md, SESSION_LOG[+archive], tickets, decisions).
- All four oscar-lead priority boundaries: added an oscar writer lane (same
  governance scope) so launches don't block on writer-missing.
- Bob unchanged (code/product writer). Split: Oscar = orchestration state,
  Bob = the build. Oscar has full authority incl. accepting ADRs.
- ADR-0012 documents the decision + safety tradeoff.

(Profile also carries the founder's in-progress oscar adapter codex->claude.)

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…pproved)

Documents the run-lifecycle half of Oscar's authority: he wraps a live run
he leads autonomously (finalize-run-status, closeout, orchestrator-commit of
governance work — already enabled by the governance boundary; gated only by
terminal-run-locked). Teardown (stop-run / killing sessions) stays
founder-approved per session-wrap. Clearing an orphaned run (dead session,
non-terminal status) is the daemon's job, not Oscar's — tracked as a
run-lifecycle robustness fix.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
ADR-0012 made Oscar a governance writer, but oscar-lead was writePolicy:
one-writer — so Oscar(governance) + Bob(code) = two writers = one-writer-
violation, blocking every oscar-lead launch. Switch to writePolicy:
bounded-writers (the enum value for exactly this): multiple writer lanes,
each confined to its own (non-overlapping) write boundary. Also added
v0.4-oz-control-plane + v0.5-orchestration-services to supportedPriorityOwners
so those priorities can launch oscar-led. Verified: v0.1 + v0.4 compose ready
with writers [oscar, bob], no issues.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…eardown)

Two fixes for the slow/awkward teardown:

1. session-wrap fragment: documents the teardown PROCEDURE so Oscar follows
   it instead of reverse-engineering it — teardown is an external action he
   *recommends* (never runs from his own pane; stop-run kills lanes in order
   and a lead would kill itself before teammates). Confirm readiness, commit
   the wrap, recommend; founder/Oz executes stop-run from outside.

2. ADR-0010: the run-lifecycle model the v0.4 spec contemplated but didn't
   specify — wrap-up delegated to cheap headless cursor-agent services
   (ADR-0009), daemon-driven founder-approved teardown gated by a
   teardown-readiness check, and orphaned-run recovery (dead-session runs must
   not wedge launches; surface the real reason, not spawn-failed). Linked from
   the v0.4 README + decisions index.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Commits the v0.1 doc progress the suesc2sq run produced but left uncommitted
(teardown happened before orchestrator-commit — the gap the new wrap-before-
teardown rule now prevents):

- docs/faq.md (D-M1.5): commercial-use + zero-telemetry FAQ
- docs/getting-started.md (D-M1.1): extended to the clean-clone -> first-launch path
- cocoder/PRIORITIES.md + SESSION_LOG.md: Oscar's governance updates (D prereqs landed)
- plans/2026-05-21-docs-publish.plan.md: D status update

Authored by the suesc2sq Oscar/Bob run; committed on the founder's behalf.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…r decision)

Implements the founder's earlier decision that was dropped mid-session: Bob's
write boundary was still a narrow allowlist, so v0.1 publish surfaces (README,
ARCHITECTURE.md, .github/ CI gates) were unreachable by any lane — blocking
v0.1 completion. Bob's profile lane + all four oscar-lead priority boundaries
now allow packages/docs/templates/examples/.github/ + cocoder config + root
publish files, excluding only governance (priorities/decisions/PRIORITIES/
SESSION_LOG/tickets — Oscar's) and secrets (cocoder/local, local, secrets).
Verified: v0.1 composes ready with Bob able to write README/.github/.
(Priority boundary writer lanes require a non-empty allow-list, so this is a
broad allow-list + exclude-list rather than empty-allow.)

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…cklist

The port from CoBuilder scrubbed the structured wrap discipline, so it wasn't
happening reliably. Restore (CoCoder-neutral) into the standing wrap fragment
so Oscar does it EVERY run, not only when the founder specifies it:

- Write the next-start brief into the priority before wrapping — resumable
  (named next atom + route/personas/stop-conditions/tests/founder-decisions in
  the plan + PRIORITIES.md) OR archive-candidate (ask founder to confirm).
- Pre-report internal checklist (lane results reconciled; stale text handled;
  worktree classified; next atom named or archive-candidate; stop conditions/
  personas/route/tests/decisions explicit; orchestrator-commit succeeded).
- Emit the founder handoff in the exact Run Handoff shape (Priority worked /
  Disposition / Session wrapped / Briefed for next start / Next priority /
  Founder action) with Continue | Archive candidate | Blocked semantics.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
… zx0s33ag)

- docs/orchestration.md, personas.md, oz.md, freshness-policy.md (D-M1.2/1.3/1.4/1.6, authored by Bob)
- ADR-0001 decision 6 .command footnote (D-M1.9; founder chose option (i), inline footnote)
- PRIORITIES.md / SESSION_LOG.md / docs-publish plan: status reconciliation + checkbox flips
- Scope: external stranger test removed from v0.1 (PD-Q1 revised per founder)

Verified: check-doc-refs 0 missing across 34 in-scope refs (Class B).
PrioritiesPage.tsx (unrelated worktree dirt) deliberately excluded.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…reconciliation

- docs-publish plan: 'Next Session Start Here' (next atom D-M1.7/1.8 repo-root publish surfaces), Progress block updated
- v0.1-foundation README: Progress, Sub-Playbook D status row, stranger-test success criterion (PD-Q1 revised; external recruit removed)

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
BadGuyFranco added a commit that referenced this pull request May 28, 2026
… 1-3)

Make v0.5-orchestration-services launch-ready on this branch so a fresh
oscar-lead run picks up the full plan:
- README "Next Session Start Here": Phase 1 (land PR #50 — Bob fixes
  wrap-execution requiredChecks, Oscar rebases onto main + squash-merges),
  Phase 2 (reconcile PR #51), Phase 3 (adoption + v0.1 carryover/ADR-0011 +
  archive v0.1-foundation + ghost/dangling guard). Route, broadened-Bob
  boundary, stop conditions, required tests, founder decisions recorded.
- Sequencing DECIDED: v0.5 runs before v0.4 (founder 2026-05-27).
- PRIORITIES.md: promote v0.5 to Active with Phase-1 next-action + parser
  block updated (launch from orchestration-services-import).

Context: PR #50 was orphaned (engine + ADR-0009 + this priority never merged
to main), leaving a ghost v0.5 row in the route + a dangling ADR-0009 ref.
Phase 1 fixes that.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
BadGuyFranco added a commit that referenced this pull request May 28, 2026
Co-Authored-By: Bob (codex) <bob-codex@cocoder.local>
BadGuyFranco added a commit that referenced this pull request May 28, 2026
Support-Reason: Phase 2 PR #51 reconciliation: bring the general-infra ADR-0012 (Oscar governance write authority) to main where it was already referenced but missing, and fix the decisions index drift (add 0012, note 0010 reserved on PR #51).
Co-Authored-By: Oscar (lead-support) <oscar-lead-support@cocoder.local>
@BadGuyFranco BadGuyFranco changed the title Land Oz control-plane design spec; advance v0.4 to build-ready v0.4 Oz control-plane design — general infra reconciled to main; parked for v0.4 run May 28, 2026
@BadGuyFranco
Copy link
Copy Markdown
Owner Author

v0.5 Phase 2 PR #51 governance reconciliation — status update (2026-05-28).

The general orchestration infra that originated on this branch has been reconciled onto main independently of this PR:

  • Routes (oscar-lead.json), the cocoder-oscar profile, and all priority-boundary files are on main (main is ahead of this branch's versions).
  • personas/prompts/shared/session-wrap.md on main supersedes this branch's version.
  • ADR-0012 (persona write authority) was brought to main in ec1c4e2 (it was already referenced by main's v0.5 docs; this resolved a dangling reference).

What remains on this branch is the v0.4-specific design only: the docs/oz-control-plane-design/* design tree, the v0.4 priority spec + designer-notes.md, and ADR-0010 (run-lifecycle / Oz control-plane build).

Disposition: parked open for the future v0.4-oz-control-plane run to rebase onto current main and finish. Per the v0.5 priority, v0.4 is sequenced after v0.5 — do not merge wholesale now. This branch is intentionally stale vs main; the v0.4 run owns the rebase.

BadGuyFranco added a commit that referenced this pull request May 28, 2026
Support-Reason: Run 3xcelgzi wrap: mark Phases 1-2 complete, record lead-support-commit fix + PR #51 reconciliation, set Phase 3 guard as the resumable next atom, and rotate stale 2026-05-23 entries to the session-log archive.
Co-Authored-By: Oscar (lead-support) <oscar-lead-support@cocoder.local>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant