name: ask
description: Send a request to a CCB agent with ask.
metadata:
short-description: Ask agent
Use this when the user asks you to delegate with CCB, or when project memory
says to use CCB ask for collaboration.
Decision Card
Before every ask, decide:
- Need delegation? If no, answer directly.
- Result intent:
--silence: publish/execute task; success result not needed. Failures, blockers, risks, or required next actions still surface.--compact: result wanted, but only distilled findings/status/risks/blockers/next actions.+ --artifact-reply: consultation/analysis/report where full text should be preserved.- plain
ask: short question or short handoff where inline text is enough. --callback: active CCB parent job + child result required to finish. Combine with--compactor--artifact-replyas needed. Submit, then stop for continuation.
- Request fidelity:
+ --artifact-request: exact transient input (logs/output/diffs/copied contents/config/JSON/YAML/table/structured text). Prefer repo paths when the target can read files directly.--artifact-io: request and reply both need artifacts.
Guardrails
- Do not probe
--callback; if unsure there is an active parent job, use plainask. - If CCB says
ask --callback requires an active parent job, retry once with plainaskfor user-requested delegation. --callbackand--silenceusually conflict; avoid mixing unless explicit.- Avoid
--silence --artifact-reply; silence means no caller result needed; artifact-reply preserves one. - Artifact flags are orthogonal to
--callback,--silence, and--compact. They preserve content, not dependency shape. - Automatic spill for text over 4 KiB is a fallback, not the primary rule.
--artifact-*modes are CCB/daemon managed; targets do not write artifact reply files.- Plain nested
askfrom an active CCB task is rejected; use--callbackor--silence. - In
A --silence -> B, B still runs an active job. B-to-C depends on whether B needs C's result. - In callback chains, each waiting hop uses callback; CCB then propagates continuations.
ask get,pend,watch, andpingare diagnostics-only commands for explicit debugging requests, not normal ask workflow tools.- Do not manually append output-policy text;
askinjects reply guidance.
Always send MESSAGE through the <<'EOF' ... EOF heredoc below. No other form
is allowed. Use no flags or insert selected flags before "$TARGET":
command ask "$TARGET" <<'EOF'
$MESSAGE
EOF
command ask --callback --artifact-reply "$TARGET" <<'EOF'
$MESSAGE
EOF
After the command returns, end the turn. Do not wait for a reply,
do not run ask get / pend / ping / watch, do not poll.
For --callback, report only that delegation was submitted.