Executes features and tasks. Reads plans from .lo/work/, handles branch isolation and parallel agent dispatch. Creates backlog entries on the fly for ad-hoc tasks. Delegates execution to superpowers. Use when user says "let's build", "work on this", "start working", "execute", or "/lo:work". Stops when complete — does not ship.
Executes features and tasks. Handles branch isolation, plan discovery, and progress tracking. Delegates execution patterns to superpowers.
/lo:ship..lo/ directory must exist. If missing, tell user to run /lo:setup first.Determine what to work on from the argument provided.
If argument is an ID (f{NNN} or t{NNN}):
.lo/work/If argument is a description string (not an ID):
# 1. Read counter
grep 'last_task:' .lo/BACKLOG.md # → last_task: 15
# Next task ID = 15 + 1 → t016
# 2. Add under ## Tasks in BACKLOG.md:
- [ ] t016 Fix dark mode toggle on settings page
# 3. Increment counter in frontmatter:
last_task: 16
If no argument:
Scan .lo/work/ for directories containing plan files
Read open items from BACKLOG.md
Present a combined view:
Active work:
f009 Image Generation — .lo/work/f009-image-gen/ (phase 1 of 2)
Open in backlog:
f010 Real-time Collab Editing
t015 Fix button color
Pick up active work, or start something new?
Wait for the user to choose before continuing.
Gather everything needed before execution begins.
# 1. Project status
cat .lo/project.yml # → status: "build"
# 2. Plan files
ls .lo/work/<id>-slug/0*.md 2>/dev/null # → 001-image-service.md
# 3. EARS contract
ls .lo/work/<id>-slug/ears-requirements.md 2>/dev/null
# 4. Parked context (moved by /lo:plan)
ls .lo/work/<id>-slug/parked-context.md 2>/dev/null
If feature with plans:
references/execution-patterns.md for dispatch details.If task without plan:
Read the project status and current branch:
cat .lo/project.yml # → status: "build"
git branch --show-current # → main
git status --short # check for uncommitted changes
Apply these defaults:
| Status | Current Branch | Default Action |
|---|---|---|
| explore | any | Stay on current branch (no prompt) |
| build/open | main | New branch: feat/f{NNN}-slug or fix/t{NNN}-slug |
| build/open | release branch | Branch off the release branch |
| build/open | already on feature branch | Stay on current branch |
| any | dirty working tree | Warn, offer stash or worktree |
For explore status: skip the branch prompt entirely. Stay where you are.
For build/open status: present the recommendation but allow override:
You're on main. Recommendation: feat/f009-image-gen
1. New branch (recommended)
2. Stay on main
3. Something else
Create the branch if chosen:
git checkout -b feat/f{NNN}-slug
Choose the execution path based on the work item type.
Check the plan task structure for [parallel] markers in task descriptions.
Sequential tasks (no parallel markers):
Invoke Skill: superpowers:executing-plans
Context: plan files from .lo/work/<id>-slug/, EARS contract if present, project status
Parallel markers present:
Invoke Skill: superpowers:subagent-driven-development
Context: same as above — the superpower handles agent dispatch, worktrees, and merge
Execute directly. No subagents, no formal plan. Commit after each logical change:
git add <changed-files>
git commit -m "<type>(<id>): <description>"
Test expectations by project status:
explore → no tests mentionedbuild → write tests alongside if the work involves testable logicopen → tests expected for all testable code
</tasks-without-plans>
Execute directly, commit as you go. Same test expectations as tasks without plans. </ad-hoc-tasks>
When all work is done, report and stop.
Work complete: <id> "<name>"
Branch: <branch-name>
Ready to ship? Run /lo:ship
[Worth a milestone? Run /lo:stream]
[Anything reusable? Run /lo:solution]
HARD GATE: Do NOT automatically proceed to shipping. Do not push, create a PR, or mark the item done. The user decides when to ship. </work-flow>
.lo/ directory → Stop. Tell the user: "Run /lo:setup first to initialize the project."/lo:plan <id> first, or work on it directly?" If the user chooses direct execution, treat it as a task without plans.Reading BACKLOG.md... found f009 "Image Generation" Reading .lo/work/f009-image-gen/001-image-service.md... Reading .lo/work/f009-image-gen/ears-requirements.md... Reading .lo/project.yml... status: build
Plan summary: Phase 1 — Image Service (3 tasks, 2 parallel) Task 1: Create image generation service [parallel] Task 2: Add storage adapter [parallel] Task 3: Wire into MDX pipeline [depends on 1, 2]
Proceed? (yes / adjust)
User: yes
You're on main. Recommendation: feat/f009-image-gen
User: 1
Created branch: feat/f009-image-gen Dispatching parallel tasks via superpowers...
[execution proceeds]
Work complete: f009 "Image Generation" Branch: feat/f009-image-gen
Ready to ship? Run /lo:ship
[Worth a milestone? Run /lo:stream] [Anything reusable? Run /lo:solution] </example>
Searching BACKLOG.md... no match found. Creating ad-hoc task: t016 "Fix dark mode toggle on settings page" Reading .lo/project.yml... status: explore
Staying on current branch (explore status). Executing directly...
[fixes the toggle, commits]
Work complete: t016 "Fix dark mode toggle on settings page" Branch: main
Ready to ship? Run /lo:ship </example>
Reading BACKLOG.md... found t015 "Fix button color" No plan files in .lo/work/. Direct execution. Reading .lo/project.yml... status: build
You're on main. Recommendation: fix/t015-button-color
User: 1
Created branch: fix/t015-button-color
[fixes button color, writes test, commits]
Work complete: t015 "Fix button color" Branch: fix/t015-button-color
Ready to ship? Run /lo:ship </example>