Install
openclaw skills install @drumrobot/wipTrack in-session work progress. Register steps for 3+ step tasks, update status per step, handle completion/abort. On /wip invocation, when remaining tasks exist, AskUserQuestion is required for the per-item direction (proceed / split / merge / hold / defer-to-checklist / delete) — asking only about start priority is forbidden. After a compact, show prior-work summary then AskUserQuestion(multiSelect) for restore selection and re-register via TodoWrite. antigravity - task.md artifact-based checklist (Antigravity environment) [antigravity.md], claude - TodoWrite/TaskCreate API guide (Claude Code environment) [claude.md], resume - environment-agnostic task cleanup + remaining-work workflow [resume.md]. "wip", "track progress", "register tasks", "task register", "step tracking", "compact recovery", "task resume", "resume task", "cleanup + resume" triggers.
openclaw skills install @drumrobot/wipTrack current session work as a checklist.
| Topic | Description | Guide |
|---|---|---|
| antigravity | task.md artifact-based checklist for Antigravity sessions | antigravity.md |
| claude | TodoWrite/TaskCreate API for Claude Code sessions | claude.md |
| resume | Environment-agnostic task cleanup + remaining-work workflow | resume.md |
wip (entry — /wip or "task cleanup + remaining work")
└─→ resume (environment-agnostic workflow)
├─→ claude (Claude Code: TaskList/TaskCreate/TaskUpdate/AskUserQuestion)
└─→ antigravity (Antigravity: task.md artifact + ask.md emulation)
Record in-progress work via at least one of:
checklist.md, fix_plan.md and similar markdown files — persists across sessionsWIP: tag for later amend/squashEmitting only a text summary without persistent recording does not satisfy /wip.
Before dispatching to any topic, classify the args intent. The /wip skill has two mutually-exclusive dispatch paths — resume workflow vs new-task registration — and the wrong choice wastes user time and misapplies the resume gate.
Read args + call TaskList (Claude Code) or read task.md (Antigravity). Then classify:
| Signal | Mode | Dispatch |
|---|---|---|
| args contains new-work instructions (verbs like write / create / add / record / draft, referring to concrete deliverables), AND (existing tasks are 0 OR the new work is clearly independent) | Registration mode | Register new tasks via TaskCreate (Claude) / append lines to task.md (Antigravity). Skip resume workflow |
| args empty, or contains cleanup/resume keywords only (cleanup / remaining / resume / continue), AND existing tasks ≥1 | Resume mode | Follow 3 steps in resume.md |
| args contains new-work instructions AND existing tasks ≥1 with unclear direction | Mixed mode | (a) TaskCreate new work first, (b) then resume workflow on the combined list |
| args contains new-work instructions AND 0 existing tasks | Registration mode (0-task early exit) | TaskCreate only. Do NOT enter resume Step 1 (nothing to clean) |
Self-check (before proceeding) — answer all 5:
TaskList / read task.md to count existing tasks?TaskCreate directly, not resume Step 1?TaskCreate first, then resume?AskUserQuestion before dispatching?Follow the 3 steps in resume.md in order:
fix_plan.md / checklist.md to recover their state before askingRegister BEFORE execute (HARD STOP): TaskCreate must run before any deliverable work — no Read / Edit / Write / Bash on the target artifact until the task exists. "The edit is small / one file / ≤2 steps" is not an exception: an explicit /wip means the user asked for the work to be tracked first. Registering after the edit (or not at all) is the exact violation this path prevents. Reading a file solely to compose the task's registration is fine; editing/producing the deliverable before the task exists is not.
TaskCreate (Claude) or append lines to task.md (Antigravity) — one entry per item — as the first execution tool call, before touching the deliverableAskUserQuestion for start priority; else mark the sole item in_progress and execute| # | Don't | Do |
|---|---|---|
| 1 | Enter resume Step 1 (Cleanup) blindly on every /wip invocation | Run Step 0 classification first. 0-task + new-work args = skip resume, go to Registration path |
| 2 | Interpret "3 steps in resume.md must follow" as unconditional | The 3-step chain applies only when Resume mode is selected (Step 0). Registration mode has its own 3-step path (parse → register → execute) |
| 3 | Force resume workflow onto args that request new deliverables | New-work verbs → Registration mode. Resume workflow does not apply to work that does not exist yet |
| 4 | Skip TaskList before deciding mode | TaskList is the primary source for existing-task count. Guessing from context memory is unreliable |
| 5 | Mixed mode: register new tasks + immediately mark in_progress without resume Step 2 direction ask on existing | Mixed mode: (a) register new, (b) then run resume on the combined list — old tasks may still need per-item direction |
| 6 | Treat an explicit /wip <small edit> as a Skip-Condition case and go straight to Read/Edit of the deliverable | Explicit /wip = registration requested. Run Step 0 → Registration/Resume path → TaskCreate first, then execute. Skip Conditions gate self-invocation, not explicit calls |
| 7 | Interrupt-stacked instructions arrive right after a registration-mode /wip (a newer directive: reword, investigate, etc.) → pivot to the newest instruction and never register the original /wip args | The original /wip args still require TaskCreate first. Register them before pivoting to any interrupt-stacked instruction — including Bash investigation for the newer directive. The register-before-execute guard hook only covers the case where /wip is the last user turn; the interrupt-stacked case (a newer non-/wip turn follows) is caught only by this discipline |
Environment implementations:
Prior violations: see ~/.claude/skills/cleanup/data/failed-attempts.md under keywords "wip resume dispatch", "wip cleanup skip", "wip registration vs resume".
/wip or "task cleanup + remaining work" → Step 1 cleanup → Step 1.5 checklist state recovery (context-opaque tasks) → Step 2 per-item direction ask → Step 3 execute. Per-environment tooling lives in claude / antigravity.
See detailed guide.
Use TodoWrite for sequential steps, TaskCreate for parallel tasks with dependencies.
After compact, restore prior work: show summary → multiSelect → re-register via TodoWrite.
See detailed guide.
Use task.md artifact with standard markdown checkboxes (- [ ], - [/], - [x]).
Do NOT wrap checkboxes in backticks.
See detailed guide.
Scope (HARD STOP) — these gate the auto-decision of whether to reach for /wip unprompted. They do NOT override an explicit /wip invocation. When the user explicitly types /wip (or "task cleanup / remaining work / register task"), registration is already requested → run Step 0 classification and the Registration/Resume path; do NOT skip TaskCreate because the work "looks trivial / is one file / is ≤2 steps". "Tasks with 2 or fewer steps" is a reason not to self-invoke /wip, never a reason to skip registration once /wip was invoked.
WIP tracking is unnecessary (do not self-invoke /wip) for: