Agent Compose v2: Core Roster, AOS convergence boundary, and eval-led releases #142
Labels
No labels
autonomy
async-consult
autonomy
epic
autonomy
headless
autonomy
live-collab
coherence-core
priority
P0
priority
P1
priority
P2
priority
P3
priority
P4
qa-fixture
role/ai
role/creator
role/design
role/director
role/engineer
role/exec
role/human
role/ops
role/qa
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
coilyco-flight-deck/agent-compose#142
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Outcome
Cut Agent Compose v2 around a smaller, opinionated product that remains useful immediately after installation. Keep a baked first-party Core Roster in Agent Compose, move environment-facing catalogue and tool convergence into AOS, reduce the role and personality surface, and make behavioral evaluations the center of the v2 minor cadence.
This issue supersedes #115. It is the parent program for the v2 boundary and release.
Product identity
Rename the embedded
person:kaiidentity toroster:coreand describe it as the Core Roster.The baked roster remains first-party product content. A fresh Agent Compose installation must be able to compose and launch a useful role without requiring an external package. External roster packages remain supported through the validated package contract.
composer:coreis not the identifier because the composer is the engine.roster:coreidentifies the bundled roles, personalities, seats, compatibility, and evaluation context.Ownership boundary
Agent Compose owns
roster:corepackage.AOS owns
AOS hydrates remote catalogues into verified local roots and passes local declarative inputs to Agent Compose. Agent Compose no longer fetches remote catalogues or mutates MCP and approval configuration.
The AOS implementation and consumer migration must land before Agent Compose removes the v1 surfaces.
Core Roster
Agent Compose v2 ships exactly these roles:
engineer- existing role, no material change.director- existing Ward-first-class role, no material change.qa- existing Ward-first-class role, no material change.ops- existing Ops mission and slug, display-name change only.design- existing Designer mission with the new slug.community- existing Community mission and slug, display-name change only.strats- replaces and absorbs Advisor, CEO, and PM.content- replaces and absorbs Technical Writer and Social.Remove these roles:
The migration documentation must map every removed or renamed v1 role to its v2 destination. v2 writes only v2 identifiers. Do not retain aliases by default merely to hide a major-version boundary.
New role contracts
Portfolio Strategist
Decide where Kai should invest attention across her real portfolio. Turn evidence into priorities, tradeoffs, and maintainable plans. Own the recommendation and portfolio plan, but not execution coordination or agent dispatch.
Director remains distinct: Portfolio Strategist determines what matters and why. Director turns an accepted direction into coordinated Ward work.
Default meld:
Content Manager
Turn real portfolio work into accurate, audience-aware, channel-specific content across technical documentation, public writing, and media. Technical accuracy and media production are equally first-class. Own the content artifact and its editorial fitness, but do not infer authority to publish externally.
Designer remains distinct: Designer owns product experience and visual design. Content Manager owns the narrative, documentation, media artifact, and channel adaptation.
Default meld:
Personality garbage collection
After the final eight-role meld graph validates, remove every personality definition that has no remaining reference.
The expected removals from the approved melds are:
Candid remains because QA uses it. The implementation must derive the final unused set from the owning roster loader rather than maintaining a duplicate test inventory.
Update seats, colors, inspiration records, appearance records, palette data, snapshots, roster output, docs, and evaluation inputs with the same change.
Evaluation program
Treat v2.0 as a fresh behavioral baseline. Preserve v1 scored records as historical evidence and do not rewrite them into the v2 schema or roster.
Required coverage
Release gates
Release cadence
Ordered migration
roster:corewith the eight-role graph.Done condition
Moonshot run contract
Goal
Land Agent Compose v2 as the Core Roster product described in this issue, including the prerequisite AOS ownership move and consumer migration.
Done-condition
All ordered migration steps are on canonical main, cross-repo validation and clean-host smoke evidence pass, the complete v2 evaluation and independent QA evidence are committed, v2.0 packaging publishes, and this parent issue closes.
Non-goals
I will append verified checkpoints here as each landed slice becomes a dependency for the next.
Moonshot checkpoint: the AOS ownership implementation is complete and pushed as agentic-os PR #809: coilyco-flight-deck/agentic-os#809
Delivered:
Validation is green: AOS Go tests, vet, all pre-commit guards, and the exact repo CI gate with 618 tests. The branch is remotely recoverable at ae83afeb.
Current lane: infrastructure #694 will render and invoke the new AOS surface before Agent Compose v1 ownership is removed.
Moonshot checkpoint: the ordered local-input bridge is ready in Agent Compose PR #145: #145
It adds strict aos.catalogues.v1 consumption, absolute local-directory validation, stable catalogue precedence, and pre-write failure behavior while retaining v1 remote/MCP compatibility until infrastructure lands. Validation is green across all Go packages, the palette build/test, repository guards, and vet. Remote checkpoint:
b1967c7.Infrastructure #694 is also authored and green at 288923b, but remains correctly unlanded until AOS PR #809 publishes release 0.262.0. Current lane moves into the Core Roster reduction while those gated dependencies await merge.
Moonshot checkpoint: the Core Roster implementation is ready in stacked PR #147: #147
Delivered at
3ae226e:roster:coreprovider provenance across bundles, snapshots, catalogues, project ownership, describe, diff, and evaluationValidation is green: full Go and palette suite, all pre-commit guards, static analysis, and isolated idempotent host smoke. PR #147 is intentionally stacked on the AOS catalogue bridge in #145. Current lane proceeds to remove the v1 remote-catalogue and MCP ownership surfaces after the ordered AOS dependency lands.
V2 checkpoint: the v1 convergence-removal slice is validated and remotely recoverable.
254f658Next active slice: build the fresh eight-role v2 evaluation matrix and evidence workflow.
V2 checkpoint: the complete evaluation program is defined in PR #151 at
9340c2f.The Core Roster now has 48 authored scenarios and 96 paired frontier/OSS cases. All eight roles cover mission, personality, authority, completion, and a real-portfolio replay. Approved adjacent-role boundaries are explicit, scorecard-visible, and machine-validated. Pack generation emits exact digests. V2 result provenance rejects self-review, abbreviated revisions, incomplete lanes, missing retries, digest drift, and inconsistent verdicts. Full repository validation and isolated host smoke pass.
Issue #150 remains open at the genuine external boundary: exact frontier and OSS model invocation plus independent QA scoring. No responses or scores have been fabricated. Current engineering lane moves to the release classifier and packaging boundary while that review is arranged.
V2 checkpoint: release classification and package metadata are ready in PR #153 at
026436d.Main always validates. Docs and scored-result-only pushes no longer manufacture versions. Product inputs still publish automatically. The tracked
.release-majorprevents the breaking stack from accidentally cutting a minor and reserves v2.0.0 for explicit manual major dispatch after all evaluation and clean-main gates pass. Fixture rendering proves the Homebrew formula and Scoop manifest at v2.0.0.The engineering stack is now authored end to end. Remaining walls are the human-gated PR merges, AOS release and infrastructure migration dependency, exact model runs, independent QA scoring, clean canonical-main smoke, and operator major dispatch.
V2 integration checkpoint: #145, #147, #149, #151, and #153 are merged, but the latter four landed through the stacked side branches rather than canonical main. #154 and PR #155 now collapse the exact combined tip onto main. The combined branch passes Ward test, smoke, lint, and pre-commit. PR #155 is mergeable and deliberately gated on infrastructure #694 consuming the published AOS CLI 0.140.0 artifact. The .release-major hold keeps landing separate from the manual v2 release. Exact-model evaluation and independent QA evidence remain in #150.
Migration step 2 is now landed: AOS aos-v0.140.0 is published and infrastructure #694 is on canonical main at 4623382. PR #155 is the remaining human-gated canonical integration merge. After it lands, #150 must generate packs from that exact main revision, run fresh frontier and OSS sessions, and receive independent QA scoring before the manual v2.0.0 dispatch.
Post-merge audit complete. The AOS and Agent Compose ownership boundary is correct, but infrastructure check mode had one real first-run defect: it validated a missing or stale canonical converge.yaml instead of the desired template. Infrastructure #697 fixed that with an ephemeral desired-config render and landed on main at 278ea36 after full validation. No live convergence was run. Agent Compose PR #158 now adds the canonical Ward evaluation-pack handoff. Two renders from
df58c30are byte-identical across 8 packs and 96 cases. #150 remains open for exact-model runs and independent QA.Tracker reconciliation after #159: #150 is the only open implementation child, so behavioral evaluations are the next Agent Compose work. One parallel release gate remains outside the sealed engineer lane: infrastructure #699 tracks live AOS convergence proof on client and server host classes. That verification does not block generating or scoring evaluation packs, but it must return before v2.0.0 dispatch.
V2 release preflight completed against clean canonical main
51d51ed1e4541893598cf1fe72abee16cb117333on 2026-07-30.Verified:
ward exec smokepassed every isolated convergence, idempotence, native-role, Codex-intro, and reapply check.ward exec testpassed all Go packages, release-impact and v2 package fixtures, palette tests, repository guards, and offline secret scan.v1.49.0. Nov2.0.0release was present or dispatched.Release remains held for one product-evidence wall. PR #162 records its evidence against
562be1a95883e35d80866eab890e5477d020cd95and explicitly says it does not clear the final-current gate becausedd81035changed the Design briefing and scenarios afterward. Current candidate51d51edtherefore lacks passing current-revision frontier and adjacent-role evidence for the changed Design contract.The guarded dispatch surface also cannot send the required
bump=majorworkflow input. Dispatch without it would select the default minor bump. That operator-surface defect is tracked in agentic-os#822.Decision and next action: keep
.release-majorin place. Produce and independently score current-revision evidence, or explicitly defer the post-baseline Design contract change through the normal product workflow. After that gate passes and agentic-os#822 lands, dispatchrelease.ymlonmainwithbump=major, verifyv2.0.0assets plus Homebrew and Scoop resolution, then remove the hold in the documented follow-up commit.