- name
- kw:work
- description
- Execute a knowledge work plan. Break it into tasks, do the work, and track what happened. Use after planning to actually produce the deliverables.
- argument-hint
- [plan file to execute]
<work_target> #$ARGUMENTS </work_target>
# Work
You have a plan. Now execute it. Break it into tasks, do them, track what happened.
## When to Use
* After `/kw:plan` or `/kw:review` — the plan is ready, time to execute
* "Start working on this", "Execute the plan", "Let's do this"
* When you have a clear plan and need to produce deliverables
## Process
### Step 1: Load the plan
Read the plan file. If no plan is specified:
1. Check for the most recently modified file in `plans/`
2. Ask: "Which plan should I execute? Point me to a file."
### Step 2: Break into tasks
Extract concrete deliverables from the plan. For each deliverable, create a task:
```
## Tasks
- [ ] [Task 1] — [what needs to be produced]
- [ ] [Task 2] — [what needs to be produced]
- [ ] [Task 3] — [what needs to be produced]
```
Present the task list to the user:
> "I see \[N] deliverables in this plan. Here's how I'd break them down. Want to adjust before I start?"
**Task types in knowledge work:**
| Deliverable | How to execute |
| -------------------- | -------------------------------------------- |
| Strategy doc / brief | Write it using the plan as structure |
| Email draft | Write it, check tone, present for review |
| Social copy | Write variations, check against style guides |
| Data analysis | Pull data, analyze, summarize findings |
| Presentation | Structure slides, write content |
| Research synthesis | Gather sources, extract insights, summarize |
| Meeting agenda | Structure topics, time-box, add context |
| Notion page / doc | Create and populate |
| Campaign assets | Create copy, briefs, timelines |
### Step 3: Group tasks by dependency
Before executing, sort tasks into **batches**:
```
## Execution Plan
### Batch 1 (parallel) — no dependencies
- [ ] [Task A] — independent
- [ ] [Task B] — independent
### Batch 2 (parallel) — depends on Batch 1
- [ ] [Task C] — needs output from Task A
- [ ] [Task D] — independent of C, but needs Batch 1 context
### Batch 3 (sequential) — needs user direction
- [ ] [Task E] — depends on user feedback from earlier batches
```
**Grouping rules:**
* Tasks with no dependencies on each other go in the same batch
* Tasks that need another task's output go in a later batch
* Tasks that need user feedback before starting go in their own batch
Present the execution plan to the user:
> "I've grouped these into \[N] batches. Batch 1 has \[N] independent tasks I can run in parallel. Want to adjust before I start?"
### Step 4: Execute batch by batch
**For each batch:**
1. **Announce the batch** — "Starting Batch 1: \[task names]"
2. **Launch independent tasks in parallel** — Use Task agents for tasks that don't depend on each other. For single tasks or tasks requiring heavy interaction, execute inline.
3. **Show all outputs** — Present results from the batch together
4. **Get feedback** — "Good? Or adjust before I move to Batch 2?"
5. **Mark complete** — Move to next batch
**When to parallelize within a batch:**
| Situation | Approach |
| ------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- |
| 2+ independent deliverables (e.g., 3 social posts, a brief + a data pull) | Launch as parallel Task agents |
| Single deliverable | Execute inline |
| Deliverable needs back-and-forth (e.g., iterating on tone) | Execute inline, don't delegate |
**Execution principles:**
* **Use what's available.** If there are MCP tools, APIs, or skills that can help, use them. Don't recreate what exists.
* **Follow project conventions.** Check CLAUDE.md for style guides, data sources, tool preferences.
* **Show, don't describe.** Produce the actual deliverable, not a description of what it would look like.
* **Approve between batches, not between every task.** Independent tasks don't need individual sign-off. Check in after each batch completes.
* **Fall back to sequential if unsure.** When in doubt about whether tasks are independent, run them one at a time. Wrong parallelism is worse than no parallelism.
### Step 5: Handle blockers
If you can't complete a task:
* **Missing information** — Ask the user. Be specific about what you need.
* **Missing access** — Note it and move to the next task. Come back when unblocked.
* **Scope creep** — If a task is bigger than expected, flag it: "This is turning into its own project. Should I keep going or add it as a separate plan?"
* **Quality concern** — If the output doesn't feel right, say so. "I produced this but I'm not confident about \[X]. Want to review before I continue?"
### Step 6: Track what happened
As you work, maintain a running log. After each batch completes, **append the log to the plan file** under a `## Execution Log` section:
```
## Execution Log
### [timestamp] Batch 1: [batch name]
- [Task 1] ✅ — Produced: [what], Location: [path]
- [Task 2] ✅ — Produced: [what], Location: [path]
- Notes: [anything notable]
### [timestamp] Batch 2: [batch name]
- [Task 3] ✅ — Produced: [what], Location: [path]
- [Task 4] ⏳ Blocked — [blocker], Next step: [what needs to happen]
```
<critical_requirement>
Write the execution log to the plan file after each batch. Do not keep it only in conversation. This log feeds /kw:compound with concrete material to extract learnings from.
</critical_requirement>
### Step 7: Wrap up
When all tasks are complete (or blocked), summarize:
```
## Execution Summary
**Plan:** [plan name]
**Tasks completed:** [N] of [total]
**Deliverables produced:**
- [deliverable 1] — [location]
- [deliverable 2] — [location]
**Still open:**
- [blocked task] — [blocker]
**Discoveries:**
- [anything learned during execution worth noting]
```
### Step 8: Offer next steps
Use AskUserQuestion:
**Question:** "Execution complete. \[N] deliverables produced. What next?"
**Options:**
1. **Run `/kw:review`** — Quality check the outputs
2. **Run `/kw:compound`** — Save learnings from this session
3. **Push to Proof** — Share execution summary for review
4. **Continue working** — Pick up blocked tasks or add new ones
5. **Ship it** — Done, move on
## Important Rules
* **Produce, don't plan.** This is execution mode. If you find yourself writing another plan, you're in the wrong workflow. Use `/kw:plan` for that.
* **Show your work.** After each task, show the actual output. Don't say "I would create a doc that..." — create the doc.
* **Respect scope.** The plan defines what to do. If something isn't in the plan, ask before adding it. Scope creep is the enemy of finishing.
* **Track everything.** The work log is how you know what happened. It also feeds `/kw:compound` with concrete results to learn from.
* **Ask for feedback between batches.** Knowledge work is subjective. Check in after each batch rather than producing everything and hoping it's right. Independent tasks within a batch don't need individual sign-off.
## Pipeline Mode
When invoked with `disable-model-invocation` context (e.g., from an orchestrator or automation):
- Skip all AskUserQuestion prompts
- Use sensible defaults for all choices
- Write output files without waiting for confirmation
- Proceed to the next suggested skill automatically
- Output structured results that the calling context can parse
View on GitHub