Executing Single Task
Overview
This skill is the execution counterpart to find-next-task . It takes a single task (via the full find-next-task output JSON), executes it with minimal context, verifies results with evidence, updates the plan JSON by setting only passes , and commits once.
Announce at start: "I'm using the executing-single-task skill to execute exactly one task and update passes."
Required First Step
Invoke using-superpowers before any response or action. If any additional skill might apply (even 1%), invoke it before proceeding.
Input
The input is the full JSON output of find-next-task (verbatim). Treat plan_file as the source of truth.
Fail-fast conditions (no file changes):
-
error != null
-
selection_required == true
-
next_task == null
-
plan_file missing or not an absolute path
-
next_task.id missing
Output
Output exactly one JSON object and nothing else (no prose, no markdown fences).
{ "plan_file": "/abs/path/to/plan.json", "task_id": 4, "result": "SUCCESS", "passes_written": true, "commit": { "created": true, "sha": "abc123", "message": "feat(task): 4 Login Page Implementation" }, "verification_evidence": [ { "kind": "command", "command": "npm test", "exit_code": 0, "summary": "PASS (all tests)" } ], "errors": [] }
result values:
-
SUCCESS : Task executed, verified, passes set to true , commit created.
-
FAIL : Task executed but verification failed or incomplete, passes kept/set to false , commit may or may not exist (see rules).
-
BLOCKED : Cannot proceed (invalid input, missing task, parse failure). No changes made.
Workflow
- Validate input JSON
If fail-fast conditions match, output result: "BLOCKED" with an errors[] entry and stop.
- Load plan and locate task
-
Read plan_file and parse JSON.
-
Locate the task whose id matches next_task.id .
-
If not found, output result: "BLOCKED" and stop.
- Execute steps with strict boundaries
Execute task.steps in order.
Boundaries:
-
Prefer task.files.create/modify/test as the only files you read/modify.
-
Do not perform broad repo exploration unless a step explicitly requires it.
-
If a step is ambiguous, invoke the most relevant skill before acting.
- Verification and pass/fail decision
You may set passes: true ONLY with fresh, evidence-backed verification.
Verification priority:
-
Explicit verification commands in task.steps
-
Evidence-backed checks derived from validation_criteria (if present)
-
If still ambiguous: invoke using-superpowers , then invoke the most relevant verification skill(s) and follow them to obtain verification evidence
Record each verification as an entry in verification_evidence .
- Update plan JSON (passes only)
Update only the located task’s passes field in plan_file .
-
Write passes: true only when verification evidence supports success.
-
Otherwise write or keep passes: false .
-
Do not add/remove/reorder any other fields.
- Git commit (exactly one)
Create exactly one commit for this task.
Commit must include:
-
Any code changes made for the task
-
The plan JSON change (the updated passes )
Commit message:
-
feat(task): <id> <title> when implementing functionality
-
fix(task): <id> <title> when fixing a bug
-
Otherwise: chore(task): <id> <title>
If result: "BLOCKED" , do not commit.
- Emit final JSON output
Return the JSON object matching the schema above. No additional text.