Shared References This directory contains shared reference documents used by multiple skills: validation-contract.md - Verification requirements for accepting spawned work references/claude-code-latest-features.md - Claude Code feature contract (slash commands, agent isolation, hooks, settings) references/backend-claude-teams.md - Concrete examples for Claude native teams ( TeamCreate + SendMessage ) references/backend-codex-subagents.md - Concrete examples for Codex CLI and Codex sub-agents references/backend-background-tasks.md - Fallback: Task(run_in_background=true) references/backend-inline.md - Degraded single-agent mode (no spawn) references/claude-cli-verified-commands.md - Verified Claude CLI command shapes and caveats references/codex-cli-verified-commands.md - Verified Codex CLI command shapes and caveats references/cli-command-failures-2026-02-26.md - Dated failure log and mitigations from live runs These are not directly invocable skills . They are loaded by other skills (council, crank, swarm, research, implement) when needed. CLI Availability Pattern All skills that reference external CLIs MUST degrade gracefully when those CLIs are absent. Check Pattern
Before using any external CLI, check availability
if command -v bd &> /dev/null ; then
Full behavior with bd
else echo "Note: bd CLI not installed. Using plain text tracking."
Fallback: use TaskList, plain markdown, or skip
fi
Fallback Table
Capability
When Missing
Fallback Behavior
bd
Issue tracking unavailable
Use TaskList for tracking. Note "install bd for persistent issue tracking"
ao
Knowledge flywheel unavailable
Write learnings to
.agents/learnings/
directly. Skip flywheel metrics
gt
Workspace management unavailable
Work in current directory. Skip convoy/sling operations
codex
CLI missing or model unavailable
Fall back to runtime-native agents. Council pre-flight checks CLI presence (
which codex
) and model availability for
--mixed
mode.
cass
Session search unavailable
Skip transcript search. Note "install cass for session history"
Required Multi-Agent Capabilities
Council, swarm, and crank require a runtime that provides these capabilities. If a capability is missing, the corresponding feature degrades.
Capability
What it does
If missing
Spawn subagent
Create a parallel agent with a prompt
Cannot run multi-agent. Fall back to
--quick
(inline single-agent).
Agent-to-agent messaging
Send a message to a specific agent
No debate R2. Workers run fire-and-forget.
Broadcast
Message all agents at once
Per-agent messaging fallback.
Graceful shutdown
Request an agent to terminate
Agents terminate on their own when done.
Shared task list
Agents see shared work state
Lead tracks manually.
Every runtime maps these capabilities to its own API. Skills describe WHAT to do, not WHICH tool to call.
After detecting your backend (see Backend Detection below), load the matching reference for concrete tool call examples:
Backend
Reference
Claude feature contract
skills/shared/references/claude-code-latest-features.md
Claude Native Teams
skills/shared/references/backend-claude-teams.md
Codex Sub-Agents / CLI
skills/shared/references/backend-codex-subagents.md
Background Tasks (fallback)
skills/shared/references/backend-background-tasks.md
Inline (no spawn)
skills/shared/references/backend-inline.md
Backend Detection
Use capability detection at runtime, not hardcoded tool names. The same skill must work across any agent harness that provides multi-agent primitives. If no multi-agent capability is detected, degrade to single-agent inline mode (
--quick
).
Selection policy (runtime-native first):
If running in a Claude session and
TeamCreate
/
SendMessage
are available, use
Claude Native Teams
as the primary backend.
If running in a Codex session and
spawn_agent
is available, use
Codex sub-agents
as the primary backend.
If both are technically available, pick the backend native to the current runtime unless the user explicitly requests mixed/cross-vendor execution.
Only use background tasks when neither native backend is available.
Operation
Codex Sub-Agents
Claude Native Teams
OpenCode Subagents
Inline Fallback
Spawn
spawn_agent(message=...)
TeamCreate
+
Task(team_name=...)
task(subagent_type="general", prompt=...)
Execute inline
Spawn (read-only)
spawn_agent(message=...)
Task(subagent_type="Explore")
task(subagent_type="explore", prompt=...)
Execute inline
Wait
wait(ids=[...])
Completion via
SendMessage
Task returns result directly
N/A
Retry/follow-up
send_input(id=..., message=...)
SendMessage(type="message", ...)
task(task_id="