The cta-format Skill — One Primary Action, Every Time
How the cta-format skill enforces a structured "Next Step" block at the end of every pipeline command, eliminating the mental load of mapping task IDs to the next action.
Every /dr-* command ends with the same question: what do I run next? Without a fixed format, the answer comes out differently each time — sometimes prose, sometimes a bullet list, sometimes nothing at all. The cta-format skill defines one canonical shape for that answer and requires every pipeline command to use it.
What the block looks like
The output is a numbered list wrapped between two Markdown horizontal rules. One entry carries the рекомендуется marker — exactly one, never zero, never two. Each entry names a specific command with the task ID inline, so the operator can copy-paste it directly into the terminal. A Stage Header on the first line of every response tells the operator which task the output belongs to, because 40+ concurrent tasks make context ambiguous without it.
The format has three variants. The standard variant handles a single active task. When multiple tasks are active, a second section lists the recommended next command for each of them. When a QA or compliance check fails, a fail-routing variant changes the header to name the earliest failed layer and points back to the right command to fix it.
Why the ceiling is five options
The hard ceiling on numbered options is five. The rationale cites Miller's Law, Hick's Law, and Chernev (2015) — the cognitive cost of choosing rises with the number of options. The sweet spot identified in the skill is three options. Anything beyond five is ruled out as choice paralysis.
The primary marker solves a related problem. An operator running several tasks in parallel should not have to re-read the whole block to find the recommended path. The bold marker makes it scannable in under a second.
Fail-routing
When /dr-qa returns BLOCKED or /dr-compliance returns NON-COMPLIANT, the block changes shape. The header names the earliest failed layer — Layer 1 (PRD), Layer 3 (Plan), Layer 4 (Code), and so on — and the primary option points to the corresponding fix command. The layer-to-command mapping is fixed in the skill, so the routing is deterministic regardless of which agent emits the block.
A special Expectations-BLOCKED variant carries a --focus-items argument inline in the primary option. The argument lists only the wish IDs that failed, so the developer can re-enter /dr-do targeting exactly those items without re-running the full implementation.
Snapshot emission
After the CTA block appears, every /dr-* command persists the final operator-visible response to datarim/snapshots/{TASK-ID}.snapshot.md via a runtime-resolved wrapper script. The snapshot serves as primary context for /dr-next after a terminal close or /clear — the command reads the snapshot before falling through to the task description file.
An optional Claude Code Stop hook enforces the Stage Header on every response: a missing header on the first occurrence blocks the output; a second miss downgrades to a stderr advisory. The hook is opt-in and documented in docs/how-to/dr-output-hook.md.
Read what Datarim is for the full pipeline picture, or see the /dr-next command for how snapshots are consumed at resume time.