todowrite

Route TODO checklists to the right storage + TaskList conversational discipline. Topics — session (/wip), file (fix_plan.md), issue (GitHub Issues), completion-report, fix-plan-syn…

es6kr

@drumrobot

What This Skill Does

Routes TODO checklists to session tracking, persistent files, or GitHub Issues based on context. Enforces conversational discipline around TaskList items with priority prefixes, completion reports, and fix-plan synchronization.

Replaces manual juggling of TODO storage locations by automatically routing each item to the right medium (session, file, or issue) with consistent formatting and lifecycle rules.

When to Use It

  • Route a quick 5-step deploy checklist to session tracking via /wip
  • Persist a bug fix task to fix_plan.md for later completion
  • Create a GitHub Issue for a team-shared task requiring assignment
  • Add a priority prefix (P0, P1) to a task for execution ordering
  • Generate a completion report with file-change disclosure after finishing a task
  • Sync a task between a checklist file and a GitHub Issue for two-way tracking

Install

$ openclaw skills install @drumrobot/todowrite

TodoWrite

Route TODO checklists to the appropriate storage based on context, and enforce conversational/reporting discipline around TaskList items.

Routing Decision

New TODO arrives
  ├─ Only needed this session → /wip (TaskCreate/TodoWrite)
  ├─ Persists beyond session → file (fix_plan.md, TODO.md)
  └─ Team-shared → issue (GitHub Issues)

Topics

TopicStorageLifetimeTool / Guide
sessionTaskCreate/TodoWriteSession/wip skill
filefix_plan.md, TODO.mdWhile file existsWrite/Edit
issueGitHub IssuesPermanentgh issue create
conversation-idAlways-onconversation-id.md — subject-prefix references in user-visible output. Enforced by resources/block-tasklist-id-in-conversation.sh (PreToolUse:AskUserQuestion, registered in settings.json)
completion-reportAlways-oncompletion-report.md — TaskUpdate completion format + file-change disclosure
fix-plan-syncAlways-onfix-plan-sync.md — two-way sync between task medium and checklist medium
priority-prefixAlways-onpriority-prefix.md — priority/order via subject prefix (P{n}, PR-anchored, fix-* > P0)
media-separationOn-demandmedia-separation.md — 3-layer model: tracking files vs RAG vs LLM Wiki
claude-taskTask JSON CLIPermanent / Standaloneclaude-task.md — standalone Python CLI tool (claude-task.py) for managing Task JSON files directly from terminal shell

Skip exceptions

TodoWrite can be skipped when:

  • Running a single command (e.g., kubectl get, ls)
  • A task with 2 or fewer trivial steps
  • Information lookup only

AskUserQuestion can be skipped when:

  • The user gave a clear directive
  • The action is safe and reversible
  • The general best practice is unambiguous

Session → /wip

Current session task tracking is handled by the wip skill:

/wip    # Track session work with TodoWrite/TaskCreate

File-based TODO

fix_plan.md (Ralph projects)

## Pending

- [ ] Item 1 — description
- [ ] Item 2 — description

## Completed

- [x] Done item — (completed: 2026-04-03, commit abc1234)

Rules:

  • Move to Completed section on completion + timestamp
  • Mark blocked items with [BLOCKED] tag
  • Mark skipped items with [SKIPPED] tag

TODO.md (General projects)

# TODO

## High Priority
- [ ] Urgent item

## Normal
- [ ] Regular item

## Done
- [x] Completed item (2026-04-03)

Issue-based TODO

Team-shared TODOs go to GitHub Issues:

# Create issue (user approval required)
gh issue create --title "Item" --body "Description"

# List issues
gh issue list --label "todo"

Note: gh issue create only runs when user explicitly says "create an issue".

Routing Examples

SituationRouteReason
"Run this 5-step deploy"/wip (session)Session tracking is sufficient
"Fix this bug later"file (fix_plan.md)Persists beyond session
"Assign this to Jinju"issue (GitHub)Team sharing needed
"Note this from the review"file (fix_plan.md)Outside current PR scope

Top skills in this category