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
Open
v0.4 Oz control-plane design — general infra reconciled to main; parked for v0.4 run#51BadGuyFranco wants to merge 14 commits into
BadGuyFranco wants to merge 14 commits into
Conversation
…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>
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
What remains on this branch is the v0.4-specific design only: the Disposition: parked open for the future v0.4-oz-control-plane run to rebase onto current |
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>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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).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 Fusiondesign-system/tokens (Josefin Sans + gold kanji marks). Reference, not production code.v0.4-oz-control-plane→ Active: "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, realrun.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.mdtrivially overlaps #50 (which adds v0.5). Merge #50 first, or resolve the few adjacent rows at merge.🤖 Generated with Claude Code