at-prompt-runner
Run existing prompts using agent-team orchestration.
Use this skill when the user invokes /run-at-prompt.
Group Syntax
->separates sequential phases.,separates prompts inside the same phase (parallel).
Examples:
220,221 -> 222,223 -> 224220 -> 221,222,223 -> 224220
Reference parse output:
[
{"phase": 1, "prompts": [220, 221], "strategy": "parallel"},
{"phase": 2, "prompts": [222, 223], "strategy": "parallel"},
{"phase": 3, "prompts": [224], "strategy": "parallel"}
]
Resolve Helpers
PLUGIN_ROOT=$(jq -r '.plugins."daplug@cruzanstx"[0].installPath' ~/.claude/plugins/installed_plugins.json)
AT_RUNNER="$PLUGIN_ROOT/skills/at-prompt-runner/scripts/at_runner.py"
PROMPT_MANAGER="$PLUGIN_ROOT/skills/prompt-manager/scripts/manager.py"
CLI Contract
python3 "$AT_RUNNER" parse "220,221 -> 222,223 -> 224"
python3 "$AT_RUNNER" parse "220 221 222" --auto-deps
python3 "$AT_RUNNER" validate "220,221 -> 222"
python3 "$AT_RUNNER" plan "220,221 -> 222" --model codex --worktree --json
Required Execution Flow
1. Parse Input
- If user passes explicit groups, parse directly.
- If user passes space-separated prompts with
--auto-deps, infer group order.
2. Validate Prompt References
Run:
python3 "$AT_RUNNER" validate "$GROUPS" [--auto-deps]
If validation fails, stop and report missing prompt IDs.
3. Auto-Deps Mode (--auto-deps)
When --auto-deps is set:
- Read prompt contents via prompt-manager.
- Spawn
at-planner(model: sonnet) to review inferred dependencies. - Ask user to confirm proposed group syntax before execution.
- Do not execute any
/run-promptcommand until confirmation is explicit.
Planner output should include:
- Proposed group syntax
- Dependency rationale per phase
- Any uncertainty/assumptions
4. Build Plan
Run:
python3 "$AT_RUNNER" plan "$GROUPS" --model "$MODEL" [--worktree] [--loop] [--validate] [--json]
If --dry-run is set:
- Show plan and generated
/run-promptcommands only. - Do not execute anything.
5. Execute Phase-by-Phase
For each phase:
- Launch one
at-monitortask per prompt (model: haiku,run_in_background: true). - Each monitor launches
/run-prompt ...through tmux and produces an Execution Report. - Collect reports via
TaskOutput()and triage in orchestrator. - Monitors only report and flag; they do not choose retries, merges, or architecture changes.
Decision rules:
- All reports
OK-> continue to next phase. - Any
ESCALATE-> inspect evidence and resolve before proceeding. - Complex unresolved failure -> spawn
at-fixer(model: opus). - File overlap/conflicts -> spawn
at-merger(model: sonnet).
6. Optional Final Validation (--validate)
Spawn at-validator (model: sonnet) after all phases complete.
Validator decides:
- PASS -> done
- RETRY -> rerun specific prompts
- ESCALATE -> call
at-fixerwith explicit log line references
Model Tiering (Mandatory)
at-monitor:haikuat-planner:sonnetat-validator:sonnetat-merger:sonnetat-fixer:opus(only on escalation)
Do not assign sonnet/opus to monitor role.
Monitor Contract (haiku)
Monitor agents are mechanical watchers. They do not debug or choose strategy.
Each report must include:
- log path
- exit code
- last 20 lines
- triage flags with line references
Report format requirement:
ESCALATE|OK: {description} (see log lines N-N if applicable)
Flags
--model <model>: default model for delegated/run-promptcommands--auto-deps: infer phase ordering from prompt contents--validate: append final validator phase--worktree: run each prompt in isolated worktree--loop: enable verification loop per prompt--dry-run: show plan only
Orchestrator Prompt Pattern
Use explicit role-based Task calls:
Task(subagent_type: "at-monitor", model: "haiku", run_in_background: true, prompt: "...phase command...")
Task(subagent_type: "at-validator", model: "sonnet", prompt: "...review reports...")
Task(subagent_type: "at-merger", model: "sonnet", prompt: "...resolve overlap...")
Task(subagent_type: "at-fixer", model: "opus", prompt: "...complex failure details...")
Always pass log path + line ranges when escalating.