or.2: orchestrator-agent design correction — no nested subagent dispatch
Claude Code categorically forbids subagents from spawning other subagents (code.claude.com/docs/en/sub-agents and the Agent SDK subagents page). The `or.1` architecture (and `pr.1` that ran on top of it) presumed a named-exception for `ailang-implement- orchestrator` to dispatch implementer / spec-reviewer / quality- reviewer / tester per task. That exception never existed at the platform level; the `Agent` tool was silently dropped from the orchestrator-agent's tool set at dispatch time. Architecture revised, doc-only: - Per-task phases (implementer → spec-compliance check → quality check) now run as sequential role-switches in the orchestrator- agent's own context, not as nested subagents. - The four role-files (implementer / spec-reviewer / quality- reviewer / tester) become phase reference files the orchestrator-agent consults at role-switch boundaries. - Boss-context offload preserved; fresh-per-phase context given up (the property that drove or.1's nested-dispatch design is not buildable in Claude Code). Files touched: - skills/implement/agents/ailang-implement-orchestrator.md (frontmatter, Iron Law, Phase 2/3 rewrite, rationalisations, red flags) - skills/implement/SKILL.md (frontmatter, Iron Law, sub-status vocabulary note, cross-references) - skills/README.md (Conventions: no more named exception; agent roster: role-files recast as phase references) - docs/journals/INDEX.md (or.2 entry appended) - docs/journals/2026-05-11-iter-or.2.md (new — full rationale) - docs/roadmap.md (P1 tool-wiring item removed; resolved as categorically-not-fixable) - docs/WhatsNew.md (user-facing correction entry appended) No code changes; no bench impact; CLAUDE.md untouched (no stale references to fix there).
This commit is contained in:
@@ -41,22 +41,6 @@ context. Pick the next milestone from P1.)_
|
||||
|
||||
## P1 — Next
|
||||
|
||||
- [ ] **\[todo\]** `Agent` tool wiring for the dispatched
|
||||
orchestrator-agent — `skills/implement/agents/ailang-implement-orchestrator.md`
|
||||
declares `tools: Read, Edit, Write, Bash, Glob, Grep, Agent`, but
|
||||
the first real dispatch (pr.1) reported `Agent` was not in its
|
||||
actual tool set, forcing degraded-mode execution (per-task
|
||||
sub-loop did not run; all tasks executed inline in the
|
||||
orchestrator's own context). Diagnosis needed before fix-scope
|
||||
can be set: Claude Code restriction on nested-subagent dispatch?
|
||||
Frontmatter parsing detail? Deferred-tool issue at the harness
|
||||
layer? This blocks the or.1 design goal (Boss-context offload via
|
||||
fresh-subagent-per-task isolation); Boss-context offload itself
|
||||
still works because per-task detail collapses into one
|
||||
end-report regardless.
|
||||
- context: `docs/journals/2026-05-11-iter-pr.1.md` Boss-side
|
||||
addendum + Audit close section.
|
||||
|
||||
- [ ] **\[milestone\]** Post-22 Prelude — ship `Show` / `Eq` / `Ord`
|
||||
with the three total-orderable primitive instances (Int, Bool, Str);
|
||||
rewire `print` through `Show.show`. Float gets `Show` but **not**
|
||||
|
||||
Reference in New Issue
Block a user