feat(ultraplan-local)!: v2.4.0 — orchestrator agents as inline reference

Redefine research-orchestrator, planning-orchestrator, and
architect-orchestrator from "background executor" to "inline
reference documentation". The agent files remain as the canonical
workflow descriptions, but the /ultra* commands now execute the
phases directly in the main command context instead of spawning
these agents as sub-agents.

The /ultra* command markdowns are now the de-facto orchestrators.
Splitting work into a separate sub-agent was incompatible with the
harness's treatment of the Agent tool (not exposed to sub-agents).

BREAKING CHANGE: These agents are no longer invoked. Any external
integration that spawned them directly should now invoke the
corresponding /ultra* command instead.
This commit is contained in:
Kjell Tore Guttormsen 2026-04-19 21:24:45 +02:00
commit c8a6506384
3 changed files with 65 additions and 100 deletions

View file

@ -1,29 +1,14 @@
---
name: architect-orchestrator
description: |
Use this agent to run the full /ultra-cc-architect-local pipeline as a
background task. Receives a brief + research paths and produces an
architecture note that matches the task against available CC features,
with explicit coverage gaps.
<example>
Context: ultra-cc-architect default mode transitions to background
user: "/ultra-cc-architect-local --project .claude/projects/2026-04-18-jwt-auth"
assistant: "Inputs validated. Launching architect-orchestrator in background."
<commentary>
Phase 2 of ultra-cc-architect spawns this agent with the brief + research paths
to run Phases 37 autonomously.
</commentary>
</example>
<example>
Context: User wants to re-run architecture with updated research
user: "Re-run architecture after the new research brief was added"
assistant: "Launching architect-orchestrator with the updated project dir."
<commentary>
Re-run request triggers the orchestrator fresh against the current project state.
</commentary>
</example>
Inline reference (v2.4.0) — documents the architect workflow that
/ultra-cc-architect-local executes in main context. This file is NOT
spawned as a sub-agent anymore. The Claude Code harness does not expose
the Agent tool to sub-agents, so an orchestrator launched with
run_in_background: true cannot spawn the documented swarm (feature-matcher,
gap-identifier, architecture-critic) and would degrade to single-context
reasoning. The /ultra-cc-architect-local command now orchestrates the
phases below directly in the main session.
model: opus
color: cyan
tools: ["Agent", "Read", "Glob", "Grep", "Write", "Edit", "Bash"]
@ -35,13 +20,21 @@ tools: ["Agent", "Read", "Glob", "Grep", "Write", "Edit", "Bash"]
Orchestrator Phase 3 = Command Phase 5 (Synthesis — write overview.md)
Orchestrator Phase 4 = Command Phase 6 (Adversarial review)
Orchestrator Phase 5 = Command Phase 7 (Present + gaps.md + stats)
This agent handles Phases 37 when mode = default (background). -->
As of v2.4.0, /ultra-cc-architect-local runs these phases inline in
main context instead of spawning this agent. Keep this file as the
canonical reference for what those phases do. -->
You are the orchestrator for `/ultra-cc-architect-local`. You receive
a task brief, zero or more research briefs, and the skill catalog
path. You produce an architecture note that matches the task against
available Claude Code features, with explicit coverage gaps. You run
as a background agent while the user continues other work.
This document is the canonical workflow description for the ultra-cc-architect
pipeline as of v2.4.0. The `/ultra-cc-architect-local` command reads it as
reference and executes the phases below **inline in the main command
context**. It is no longer spawned as a background sub-agent — that mode
silently lost the Agent tool and degraded the swarm to single-context
reasoning.
The role of the "orchestrator" now belongs to the command markdown itself:
the main Opus session launches feature-matcher / gap-identifier /
architecture-critic via the Agent tool, collects their results, synthesizes
the architecture note, and writes overview.md + gaps.md.
## Input