Skip to content

docs: reframe the subagent-dispatch rule as a justified default#100

Draft
taminomara wants to merge 3 commits into
testdouble:mainfrom
taminomara:fix/stale-subagent-dispatch-rule
Draft

docs: reframe the subagent-dispatch rule as a justified default#100
taminomara wants to merge 3 commits into
testdouble:mainfrom
taminomara:fix/stale-subagent-dispatch-rule

Conversation

@taminomara

@taminomara taminomara commented Jun 30, 2026

Copy link
Copy Markdown
Contributor

What changed

Reframes the agent-building guidance's "subagents cannot spawn subagents" rule from a flat platform prohibition into a preferred default with a justification clause, across six files:

  • Dispatch flows from skills to agents, so an agent defaults to no Agent tool. The default keeps dispatch boundaries clean, keeps every dispatch namespaced through a skill, and keeps the orchestrating context economical.
  • The default is broken only when the agent's own protocol dispatches sub-agents. The Agent tool then earns its place the way every tool does, by being used in the body, so the dispatch steps are the justification and nothing extra is recorded. The worked example is a review coordinator that dispatches a dedicated review agent so the reviewers get fresh context and the panel's deliberation stays out of the coordinator's window.
  • The platform's nesting behavior is left unstated rather than asserted in either direction. These files guide people building agents and skills; they are not the place to assert or track platform versioning.

The Han convention itself is kept (all 23 han-core/agents/*.md withhold the Agent tool; skills carry it and do the dispatching). What changes is the rationale, and the agent-builder conformance check shifts from "remove the Agent tool" to "default to none; keep it only when the agent's body dispatches sub-agents."

Closes #99

Key file changes

  • han-plugin-builder/skills/guidance/references/agent-building-guidelines/agent-external-files.md — rewrote the "Subagents cannot spawn subagents" section (now "Default to no Agent tool: prefer dispatch from skills to agents") into the preferred-default-with-justification, and dropped the flat platform-rule statement.
  • han-plugin-builder/skills/guidance/references/skill-building-guidance/agent-dispatch-namespacing.md — de-conditionalized the "If your agents do not have the Agent tool" framing back to a prescriptive convention, dropped the platform-rule citation, and added a reciprocal cross-link to the exception discussion.
  • han-plugin-builder/skills/guidance/references/plugin-entity-taxonomy.md — reconciled the composition rule so "agents can dispatch other agents" reads as a deliberate exception, not the default.
  • han-plugin-builder/skills/agent-builder/SKILL.md — reworded the design-tree question and the Step 6 conformance criterion so the Agent tool is kept only when the agent's own protocol dispatches sub-agents (present only if the body uses it).
  • docs/how-to/create-a-new-agent.md and docs/skills/han-plugin-builder/agent-builder.md — reworded the operator-facing echoes to match.

Notes for review

  • Out of scope (deliberately not edited): docs/research/guidance-currency-review.md and docs/research/guidance-update-plan.md carry the same stale framing but are protected from edits by docs/research/CLAUDE.md. Whoever later executes the guidance-update plan should re-check the current platform behavior before adding a platform-rule citation.
  • Not in this PR: plugin version bumps and CHANGELOG.md edits, per the PR template (handled by /han-release).

Docs-only change; no test plan.

🤖 Generated with Claude Code

The agent-building guidance asserted, as a flat platform rule, that a
subagent cannot dispatch another subagent. Git history shows this was an
accurately-sourced platform constraint layered onto a pre-existing Han
convention, then flattened by a repo-agnostic generalization edit that
stripped the "not just a Han convention" qualifier. The platform's
nesting behavior has since varied by version, so the flat rule is stale.

Reframe the rule across six live files from a flat prohibition into a
preferred default with a justification clause: dispatch flows from skills
to agents, so an agent defaults to no `Agent` tool, and that default is
broken only with a documented, concrete need. The platform's current
nesting behavior is left unstated rather than asserted in either
direction. The Han convention (agents withhold the `Agent` tool; skills
dispatch) is kept; only its rationale changes, and the agent-builder
conformance check shifts from unconditional removal to a justify-gate.

Refs testdouble#99

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@taminomara taminomara force-pushed the fix/stale-subagent-dispatch-rule branch from 54b596d to 55fb66c Compare June 30, 2026 14:45
taminomara and others added 2 commits June 30, 2026 19:07
The reframed tool-set question in the agent-builder design tree carried a
mid-sentence em-dash forward from the original line. Swap it for a comma
to follow docs/writing-voice.md, leaving the list-structural em-dashes
that match the sibling design-tree items untouched.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Per review feedback, an agent does not record a separate rationale for
carrying the `Agent` tool. The tool earns its place the way every tool
does: the agent's body protocol actually dispatches sub-agents, and those
dispatch steps are the justification, so there is nothing extra to write
into the agent. Reword the guidance, the agent-builder design-tree
question and Step 6 conformance check, and the two operator-facing docs
so the exception is gated on the body using the tool (present only if
used), not on documenting a rationale.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Stale "subagents cannot spawn subagents" rule in agent-building guidance

1 participant