01-projects/skill-pipelines

multi agent pipeline architecture

2026-05-12·architecture-doc·status: load-bearing-choices-locked-2026-05-12
architecturemulti-agentpipelineskill-build-outmacsanity-checkwebsite-discoveryrlhf

Founder locks (2026-05-12 20:39 ET iMessage)

The 2 load-bearing choices are locked. The 3 smaller questions remain open (no rush).

The 3 smaller questions (section 4 items 3-5) remain open — first domain pick, decision-page click-back as v1 or v1.1, axis-fragment registry path.


Multi-agent skill build-out pipeline — architecture (draft for founder review)

1. Purpose

This doc enumerates the load-bearing design choices for the 4-seat skill build-out pipeline (spec author → test author → code author → critic) so the founder can lock the architecture before any seats, configs, or smoke tests are built. For each choice it lists 2-4 options with terse pros/cons and a recommended option. Output of approval: a YAML schema for per-domain configs, four SKILL.md drafts for the utility seats, and a smoke test against one toy domain. Nothing in this doc commits code — it only commits shape.

2. Reading-derived context

The four sources collectively say the same load-bearing thing from four vantage points. Lloyd (Warp) is the lived-experience proof: ship the canonical reference set first, run a sharded fleet of CV-comparison critics in parallel, hill-climb 10-15 runs until visual diffs go to zero. Tan (YC) names the temporal mechanism: every agent turn must produce tests + docs + evals so the next turn cannot regress — the "agent complexity ratchet." Jaynit names the pattern-formation mechanism: volume + tight feedback + articulation; warns of false-pattern overfitting when feedback is loose. The decision page captures the founder's structural worry: when the same seat writes spec + tests + code, tests rubber-stamp the code instead of the ground truth — separating seats is the structural fix. Cross-cutting tension surfaced in the reading: Lloyd had a reference implementation (mermaid.js) to generate the canonical set; most RDCO skill domains do not, so the canonical-set construction step is heavier for us than Lloyd's case study admits.

3. Load-bearing design choices

3.1 Seat invocation pattern

Question: How does a workflow command (/build-<domain>) invoke the 4 seats in sequence?

Options:

Recommendation: A. It's the only option that preserves the structural property the founder asked for (no seat sees upstream reasoning, only upstream artifacts). The 4 round-trips cost is bounded and worth it.

3.2 Seat-to-seat handoff format

Question: How does spec-author hand its artifact to test-author? Test-author to code-author?

Options:

Recommendation: A. Per-run dir at ~/rdco-vault/01-projects/skill-pipelines/runs/<domain>-<timestamp>/{spec.md, tests.md, code/, critic/}. Durable, auditable, satisfies the ratchet's "docs + evals accumulate" requirement.

3.3 Critic shard parallelization

Question: How do the N critic axes (e.g. frontmatter completeness, RDCO mapping strength, sponsor disclosure, cross-link richness) run?

Options:

Recommendation: A. Critic axes are declared in the per-domain YAML; the single pipeline-critic seat fans them out as parallel subagent dispatches with axis=<name> as the seat parameter. Preserves Lloyd's parallel-isolation property without proliferating skill files.

3.4 Convergence detection

Question: How does the loop know to stop?

Options:

Recommendation: D. Aligns with /video-critic's existing PASS/ITERATE/SCRAP shape; the confidence field is the audit hook Tan's ratchet wants without making the loop manual.

3.5 Canonical-set representation

Question: How is the ground truth structured for the critic to compare against?

Options:

Recommendation: D. Maps to the actual shape of RDCO domains — frontmatter/cross-link checks are mechanical (B-style), voice/RDCO-mapping/judgment checks need reference exemplars (A-style). Mitigates the Lloyd-gap surfaced in section 2 (most RDCO domains don't have a programmatic oracle).

3.6 Failure mode handling

Question: What happens when the critic can't converge after N iterations?

Options:

Recommendation: D. Preserves the ratchet's forward-only motion (no silent fallback), uses the decision-page surface the founder already trusts, and gives an early-warning signal before full failure.

3.7 Bootstrap problem

Question: The pipeline-spec-author seat itself needs to be built. How do we resolve the "you can't use the pipeline to build itself" recursion?

Options:

Recommendation: D. The bootstrap is the only build where founder-as-critic doesn't violate the auto-mode signal-to-noise memory — it's a one-time meta-build, not a recurring workflow. After bootstrap, the pipeline runs autonomously.

3.8 Inter-domain config inheritance

Question: When MAC config and SC-article config share critic axes (e.g. both want a frontmatter-completeness check), do they share via inheritance or duplicate inline?

Options:

Recommendation: C. Fragments live at ~/rdco-vault/01-projects/skill-pipelines/axes/<name>.yaml. Domain configs list the axes they want. Matches the founder's existing mental model from the hyperframes registry pattern (blocks composed by name). Single source of truth per axis without the inheritance footgun.

3.9 Triggering surfaces

Question: Are the 3 triggering modes sufficient, or is there a 4th?

The 3 confirmed modes:

A 4th surface surfaced in the reading:

Recommendation: confirm 3 modes for v1, add the 4th (decision-page click-back) as a v1.1 enhancement. The first three cover the founder's question. The decision-page click-back is real but pulls work to a surface that isn't fully load-bearing yet; defer until at least one domain ships through the first three.

3.10 (Unprompted) Namespacing — utility seats vs domain workflows vs configs

Question: Where do the four files live and how are they named so the founder can find them?

The founder explicitly asked about namespacing. Proposed layout (this is the namespacing answer in concrete form):

~/.claude/skills/pipeline-spec-author/SKILL.md      # utility seat (domain-agnostic)
~/.claude/skills/pipeline-test-author/SKILL.md      # utility seat
~/.claude/skills/pipeline-code-author/SKILL.md      # utility seat
~/.claude/skills/pipeline-critic/SKILL.md           # utility seat

~/.claude/skills/build-website-discovery/SKILL.md   # domain workflow (orchestrator)
~/.claude/skills/build-mac-matrix/SKILL.md          # domain workflow (future)
~/.claude/skills/build-sc-article/SKILL.md          # domain workflow (future)

~/rdco-vault/01-projects/skill-pipelines/
  configs/website-discovery.yaml                    # per-domain config
  configs/mac-matrix.yaml
  configs/sc-article.yaml
  axes/frontmatter-completeness.yaml                # reusable critic-axis fragment
  axes/rdco-mapping-strength.yaml
  axes/sponsor-disclosure.yaml
  references/<domain>/<artifact>.md                 # canonical reference set per domain
  runs/<domain>-<timestamp>/                        # per-run scratch

Recommendation: use this layout exactly as drawn. The pipeline-* prefix segregates utility seats from domain workflows (build-*) at a glance. Configs and axes in the vault (not in ~/.claude/) because they're operational artifacts, not skill code; matches where MAC matrices and other domain operational state already lives.

3.11 (Unprompted) Critic axis count vs return-time tradeoff

Question: Lloyd ran 20 critic shards in parallel. RDCO domains likely want 3-7 axes (frontmatter, RDCO-mapping, cross-links, voice, sponsor-disclosure, ...). How is the axis count chosen per domain?

Options:

Recommendation: C. Lloyd's 20 was for visual rendering where axes were genuinely orthogonal (diagram type). RDCO domain axes correlate more (frontmatter ↔ cross-links ↔ RDCO-mapping all touch the same artifact), so fewer axes are warranted. 3-7 is the soft target.

4. Open questions for the founder

Below are the choices where I genuinely think the founder's judgment is needed before locking, ordered by load-bearingness:

  1. Bootstrap shape (section 3.7). Recommendation D treats the founder as the critic for the one-time bootstrap. Is the founder willing to be the bootstrap critic, or does he want option B (toy pipeline first) for additional safety? This determines whether we start building seats this week or build a haiku-generator toy first.

  2. Canonical-set representation (section 3.5). Recommendation D is a hybrid (structural YAML + reference-artifact folder). Does the founder agree that voice/judgment axes require reference exemplars, or does he want to push for fully-structural axes (option B) to keep the critic deterministic? This is the biggest "RDCO-specific gap from Lloyd's case study" question.

  3. First domain to ship through the pipeline (section 3.7 implies, not explicit above). The decision-page outcome named /build-website-discovery as the first worked example, currently Blocked. Confirm this is the right first-domain pick vs alternatives (e.g. /build-mac-matrix would be the most thesis-defining domain; /build-sc-article would be the highest-volume target).

  4. Decision-page click-back as v1 vs v1.1 (section 3.9). Defer to v1.1 keeps scope tight, but the founder has used the click-back wire heavily today — if he expects it from day one, we should pull it forward.

  5. Axis-fragment registry path (section 3.8). Confirm ~/rdco-vault/01-projects/skill-pipelines/axes/ is the right location vs ~/.claude/skills/pipeline-critic/axes/ (closer to the consumer) or ~/rdco-vault/06-reference/critic-axes/ (alongside other reference material). This is a minor question but locking it now prevents path churn later.

5. What lands after this doc is approved

  1. YAML schema for per-domain configs (configs/<domain>.yaml) and for reusable axis fragments (axes/<name>.yaml) — committed to ~/rdco-vault/01-projects/skill-pipelines/SCHEMA.md.
  2. SKILL.md drafts for the four utility seats: pipeline-spec-author, pipeline-test-author, pipeline-code-author, pipeline-critic.
  3. First domain workflow SKILL.md draftbuild-website-discovery/SKILL.md (or whichever domain the founder picks in open question 3), wiring the 4 utility seats together.
  4. Reference set for the first domain — 3-5 known-good artifacts curated into references/website-discovery/ plus the structural YAML at configs/website-discovery.yaml and axis fragments referenced.
  5. Smoke test — one end-to-end run of /build-website-discovery <toy-input> exercising all 4 seats, the parallel critic fan-out, the convergence loop, and the per-run scratch directory. Output: a run log at runs/<domain>-<timestamp>/ plus a one-page postmortem on what the pipeline got right vs what needs iteration. This validates the architecture before scaling to MAC, SC-article, and future domains.

Doc status: draft-for-founder-review. Lock the load-bearing choices, answer the 5 open questions, and item 1 (schema) is ready to land within the same session.