
I wanted research-backed guidance for my Claude Code agents. I had Claude read everything Anthropic has published on agent design, then ran deep research reports from ChatGPT, Gemini, and Claude on the same topic. Notes are in the wiki (Anthropic guidance, deep research synthesis). Here's what I applied.
Some key findings:
Security baseline: the OWASP Top 10 for LLM Applications. All three deep research reports recommended it. I use it as a checklist for the Security Auditor agent.
The agents from the org-chart post were made off-the-cuff. 16 agents, too ambitious, didn't have the infrastructure to support them. I deleted most and got down to 7. This time: I had Claude load the deep research synthesis, I extracted the best practices that applied, and I updated the agent definitions with specific, traceable changes.
| Agent | Model | Role & Applied Research |
|---|---|---|
| Publisher | Opus | Content pipeline orchestration, writing. Delegation specs, trigger phrase. |
| Analyst | Opus | Research ingestion, system improvements. Trigger phrase. |
| Synthesizer | Opus | Compare/contrast Deep Research reports. No changes needed. |
| Researcher | Sonnet | Sourced facts, research briefs. Start wide, then narrow search strategy, trigger phrase. |
| Reviewer | Opus | Style, substance, sourcing. Context isolation from producer. |
| QA | Sonnet | Build, render, links via Playwright. Trigger phrase. |
| Security Auditor | Opus | OWASP LLM Top 10, confidential data. Added LLM05 check. |
graph TD
Claude["Vanilla Claude"]
Publisher["Publisher (Opus)"]
Analyst["Analyst (Opus)"]
Synthesizer["Synthesizer (Opus)"]
Researcher["Researcher (Sonnet)"]
Reviewer["Reviewer (Opus)"]
QA["QA (Sonnet)"]
Security["Security Auditor (Opus)"]
Claude --> Publisher
Claude --> Analyst
Claude --> Synthesizer
Claude --> Researcher
Claude --> Reviewer
Claude --> QA
Claude --> Security
Publisher --> Researcher
Publisher --> Reviewer
Publisher --> QA
Publisher --> Security
Three report directly to me (Publisher, Analyst, Synthesizer). Four are subagents under Publisher. Model routing follows the research: Opus for judgment calls (review, security, editorial, synthesis), Sonnet for mechanical work (research, QA).
Three ways to use them:
Vanilla Claude auto-delegates. Each agent definition has a
description field that Claude reads when deciding whether to
spawn a subagent. The trigger phrases ("MUST BE USED when
writing blog posts", "MUST BE USED when gathering facts") tell
Claude when to invoke each one. If I ask vanilla Claude to
write a blog post, it sees the Publisher's description and
delegates. It can also run multiple subagents in parallel
when the tasks are independent.
CLAUDE.md tells Claude what's available. The project's
CLAUDE.md includes a section listing all 7 agents with their
roles and invocation commands. This gives vanilla Claude the
full picture of what agents exist without having to discover
them from the file system.
claude --agent publisher for the full pipeline. This
starts Claude with the Publisher's system prompt as the main
thread. Publisher then orchestrates the entire content
pipeline: research, substance gate, write, review, QA,
security audit. It spawns each subagent natively using Claude
Code's Agent tool, not CLI calls. Independent stages (QA and
security audit) run in parallel. This is the heavy path for
writing a full post from scratch.
Claude Code enforces a single-level subagent hierarchy. Publisher can spawn subagents, but those subagents can't spawn their own. If Reviewer needs research, it doesn't call Researcher. It reports back to Publisher, which decides what to do next.