Route deck implementation to deck-builder-agent for Slidev pitch deck generation
name skill-deck-implement description Route deck implementation to deck-builder-agent for Slidev pitch deck generation allowed-tools Task, Bash, Edit, Read, Write Deck Implement Skill Routes deck-specific implementation requests to the deck-builder-agent , generating Slidev pitch decks from plans created by skill-deck-plan and research from skill-deck-research . Context Pointers Reference (do not load eagerly): Path: .claude/context/formats/subagent-return.md Purpose: Return validation Load at: Subagent execution only Note: This skill is a thin wrapper. Context is loaded by the delegated agent, not this skill. Trigger Conditions This skill activates when: Direct Invocation /implement command on a task with language: founder and task_type: deck Extension routing lookup finds routing.implement["founder:deck"] Task-Type-Based Routing Task type is "founder" AND task_type is "deck" /implement {N} where task {N} has language="founder", task_type="deck" When NOT to trigger Do not invoke for: Tasks with other task_types (market, analyze, strategy, legal, project, sheet, finance) Tasks with other language types (general, meta, neovim, etc.) Quick mode operations ( --quick flag) Tasks in [NOT STARTED] status (need plan first) Tasks already [COMPLETED] Execution
if [ -z " $task_number " ]; then return error "task_number is required" fi
if [ -z " $session_id " ]; then return error "session_id is required" fi
if
[ -z
"
$plan_path
"
] || [ ! -f
"
$plan_path
"
];
then
return
error
"plan_path is required and must exist. Run /plan first."
fi
2. Preflight Status Update
Update task status to "implementing" in state.json:
jq --argjson num
"
$task_number
"
--arg ts
"
$(date -u +%Y-%m-%dT%H:%M:%SZ)
"
'(.active_projects[] | select(.project_number == $num)) += {
status: "implementing",
last_updated: $ts
}'
specs/state.json > specs/tmp/state.json &&
mv
specs/tmp/state.json specs/state.json
Update TODO.md status marker to [IMPLEMENTING].
3. Create Postflight Marker
Create marker file to signal postflight operations needed:
padded_num=$(
printf
"%03d"
"
$task_number
"
)
project_name=$(jq -r --argjson num
"
$task_number
"
'.active_projects[] | select(.project_number == $num) | .project_name'
specs/state.json)
task_dir=
"specs/
${padded_num}
_
${project_name}
"
mkdir
-p
"
$task_dir
"
cat
" $task_dir /.postflight-pending" << EOF { "session_id": "${session_id}", "skill": "skill-deck-implement", "task_number": ${task_number}, "operation": "implement", "reason": "Postflight pending: status update, artifact linking, git commit", "created": "$(date -u +%Y-%m-%dT%H:%M:%SZ)" } EOF 4. Context Preparation Extract template palette from the plan file:
template_palette=$(grep -oP '(?:palette|template):\s*\K[\w-]+' " $plan_path " | head -1) template_palette= " ${template_palette:-dark-blue} "
forcing_data=$(jq -r --argjson num
"
$task_number
"
'.active_projects[] | select(.project_number == $num) | .forcing_data // null'
specs/state.json)
Prepare delegation context for agent:
{
"task_context"
:
{
"task_number"
:
234
,
"project_name"
:
"seed_round_pitch_deck"
,
"description"
:
"Seed round pitch deck"
,
"task_type"
:
"founder"
,
"task_type"
:
"deck"
}
,
"plan_path"
:
"specs/234_seed_round_pitch_deck/plans/01_deck-plan.md"
,
"resume_phase"
:
1
,
"output_dir"
:
"strategy/"
,
"template_palette"
:
"dark-blue"
,
"forcing_data"
:
{
"purpose"
:
"INVESTOR"
,
"source_materials"
:
[
"task:233"
]
}
,
"metadata_file_path"
:
"specs/234_seed_round_pitch_deck/.return-meta.json"
,
"metadata"
:
{
"session_id"
:
"sess_{timestamp}_{random}"
,
"delegation_depth"
:
2
,
"delegation_path"
:
[
"orchestrator"
,
"implement"
,
"skill-deck-implement"
]
}
}
5. Invoke Agent
CRITICAL
: You MUST use the
Task
tool to spawn the agent.
Required Tool Invocation
:
Tool: Task (NOT Skill)
Parameters:
jq --argjson num
"
$task_number
"
--arg ts
"
$(date -u +%Y-%m-%dT%H:%M:%SZ)
"
'(.active_projects[] | select(.project_number == $num)) += {
status: "completed",
last_updated: $ts
}'
specs/state.json > specs/tmp/state.json &&
mv
specs/tmp/state.json specs/state.json
artifacts=$(
echo
"
$metadata
"
| jq
'.artifacts'
)
for
i
in
$(
seq
0 $(($(echo "
$artifacts
" | jq 'length') -
1
)));
do
artifact_type=$(
echo
"
$artifacts
"
| jq -r
".[
$i
].type"
)
artifact_path=$(
echo
"
$artifacts
"
| jq -r
".[
$i
].path"
)
artifact_summary=$(
echo
"
$artifacts
"
| jq -r
".[
$i
].summary"
)
jq --argjson num
"
$task_number
"
--arg
type
"
$artifact_type
"
--arg path
"
$artifact_path
"
--arg summary
"
$artifact_summary
"
'(.active_projects[] | select(.project_number == $num)).artifacts += [{
type: $type,
path: $path,
summary: $summary
}]'
specs/state.json > specs/tmp/state.json &&
mv
specs/tmp/state.json specs/state.json
done
Update TODO.md status marker to [COMPLETED], add Completed date, and link summary artifact per
@.claude/context/patterns/artifact-linking-todo.md
with
field_name=Summary
,
next_field=Description
.
If partial (status == "partial"):
Keep status as "implementing"
Note resume point in metadata
8. Git Commit
git add -A
git commit -m
"
$(cat <<'EOF'
task {N}: complete implementation
Session: {session_id}
EOF ) " 9. Cleanup and Return Remove postflight markers and metadata: rm -f " $task_dir /.postflight-pending" rm -f " $task_dir /.postflight-loop-guard" rm -f " $task_dir /.return-meta.json" Return brief text summary to caller. MUST NOT (Postflight Boundary) After the agent returns -- whether with status implemented, partial, or failed -- this skill MUST proceed immediately to postflight (Stage 6). The skill MUST NOT: Edit slides/deck files