[Spec 984] Multi-architect coordination layer — spec + plan review (DRAFT, do not merge)#1010
Draft
waleedkadous wants to merge 18 commits into
Draft
[Spec 984] Multi-architect coordination layer — spec + plan review (DRAFT, do not merge)#1010waleedkadous wants to merge 18 commits into
waleedkadous wants to merge 18 commits into
Conversation
Multi-architect coordination layer: roster, board, dedup-at-spawn ledger, formal lifecycle, bounded state files, per-architect checkout isolation. Six points framed as one SPIR with recommended defaults + flagged Open Questions for the consequential forks (#6 approach/slicing, state rotation mechanism, architect-state-file convention).
Incorporated Gemini/Codex (REQUEST_CHANGES) + Claude (COMMENT) feedback: - Resolved acceptance-critical OQs (state-file location, override flag, rotation mechanism, last-activity source, retire policy) into a new Resolved Design Decisions section. - #5 rotation: parseable <!-- ARCHIVE BOUNDARY --> delimiter, whole-entry moves, loss-free reconstruction test (no markdown-splitting). - #6: .architects/<name>/ (gitignored), dirty-worktree abort-unless-force retire guard, spawn-base-resolution sketch, resolved migration/compat contradiction (main=main checkout, new architects isolated by default). - Ledger: override release-and-reinsert semantics, partial unique index for atomic dedup (concurrent-spawn race), close/reopen + cleanup rules. - Roster: overview-cache intersection for open/closed + unknown-on-outage. - who-owes-next as a total function; CODEV_ARCHITECT_NAME N>1 validation. - Added test scenarios 12-16 + consultation log.
…ect decision) Architect approved at spec-approval gate with one change: Point #6 becomes builder-base SHA-pinning (documented fallback B) instead of per-architect checkout isolation. Capture a fresh integration-branch-tip SHA (fetch + rev-parse) at spawn, branch builder from it, fail-fast on fetch error, --base override. Architects keep sharing the main checkout; 'never switch branches' stays for architects. Dropped: migrate-architect surface, dirty-worktree retire guard, .architects/ worktrees. Consequences: #6 PR-slicing moot (ships in main PR), migration ergonomics moot. Updated #6 section, Desired State, Success Criterion, Current State, Constraints, Assumptions, Performance, Risks, Test Scenarios 10/11/14, non-functional #2, Resolved Decisions, Open Questions, Notes + Amendment log.
7 phases in dependency order: (1) ownership ledger + dedup-at-spawn, (2) afx architects roster, (3) bounded/rotated state files, (4) architect lifecycle (state file on add / archive+release on retire), (5) board / who-owes-next dashboard grouping, (6) builder-base SHA-pin (architect- directed #6), (7) documentation. All ship in one PR. Grounded in verified integration points (schema/migrations, state CRUD, spawn paths, Tower routes/client, overview cache, dashboard, CLI, Vitest patterns).
Incorporated Codex REQUEST_CHANGES + Gemini/Claude APPROVE notes: - Phase 1: claim ownership BEFORE worktree/session creation (+ rollback on failure); scope to numbered spawns only; add types.ts/spawn.test.ts plumbing; resolve closed-issue dedup default (treat same as open). - Phase 6: attached-branch flow (was detaching); modify createWorktree() only (not createWorktreeFromBranch); default-branch fallback chain; stale-HEAD test fixture. - Phase 5: board joins the ledger + synthesizes owned-but-unspawned overview rows (not just architectCount + spawnedByArchitect). - Minor: state-rotation -> codev/src/lib; correct addArchitect/removeArchitect line numbers; mkdir -p for new state dirs; workspace-path risk; SSE optional. - Migration: db.exec(LOCAL_SCHEMA) auto-applies IF NOT EXISTS to existing DBs.
Collaborator
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.


This builder is paused at the
plan-approvalgate. This draft PR exists solely to get other eyes on the spec and plan before implementation begins. There is no implementation code here yet — the diff is purely the spec, plan, rebuttals, thread, and porch status.What to review
codev/specs/984-multi-architect-coordination-l.mdcodev/plans/984-multi-architect-coordination-l.mdcodev/reviews/984-specify-iter1-rebuttals.mdKey design decision to sanity-check
Phase 6 is SHA-pin (builder-base pinning), NOT per-architect worktrees — this was an architect-level decision that diverged from one earlier option. Reviewers should weigh in on whether SHA-pin is the right mechanism for the multi-architect coordination guarantee.
Prior review
The plan already went through an iter-1 multi-agent consult (Gemini: REQUEST_CHANGES, Codex: REQUEST_CHANGES, Claude: COMMENT); the builder incorporated the findings and posted a rebuttal (above). This round is for independent human / other-architect eyes, not another AI pass.
How to leave feedback
Comment inline on the spec/plan files, or drop overall notes in the PR conversation. Once feedback is in, the human approves the
plan-approvalgate and the builder resumes into the implement phase.