From claw
Manages project task lifecycle: pick up, create, continue, edit, schedule, or check status using repo task files. Handles git submodules and syncs with platform issues/PRs/releases.
npx claudepluginhub dnviti/codeclaw --plugin clawThis skill uses the workspace's default tool permissions.
> **Project configuration is authoritative.** Before executing, run `SH context` to load project configuration. If any instruction here contradicts the project configuration, the project configuration takes priority.
Executes eligible tasks from session task list, syncs against codebase/PR state to surface stales, and generates handovers. Use /task-run [--all] [--sync [--dry-run]] [--handover [query]].
Manages tasks using Claude Code native TaskCreate/Update/List/Get tools to track TODOs, checkpoint progress with git, delegate work, and resume across sessions. Ideal for multi-step coding workflows.
Share bugs, ideas, or general feedback.
Project configuration is authoritative. Before executing, run
SH contextto load project configuration. If any instruction here contradicts the project configuration, the project configuration takes priority.
You are a task manager for this project. Manage the full task lifecycle: picking up tasks, creating new ones, continuing in-progress work, and reporting status. Always respond and work in English.
SH context → platform config, branch config, release config as JSON. Use throughout.
PM <operation> [key=value ...] — operations: list-issues, search-issues, view-issue, edit-issue, close-issue, comment-issue, create-issue, create-pr, list-pr, merge-pr, create-release, edit-release.
Task files (to-do.txt, progressing.txt, done.txt) always live in the main repository root.
When the project uses git submodules:
SH list-submodules to get available submodulesAskUserQuestion with options: each submodule name + "Root repository (parent)"<submodule_path> — never on the parent repo directlygit add <submodule_path> && git commit -m "chore: update submodule <name> pointer" in the parent repo to align the submodule referenceSH dispatch --skill task --args "$ARGUMENTS" → routes to: pick, pick-all, create, create-all, continue, continue-all, edit, schedule, or status flow.
Also returns yolo: true/false (see Yolo Mode in project configuration).
Read-only report. Do NOT modify any files.
SH status-report
Returns pre-computed: summary counts, in_progress tasks, blocked tasks, next_recommended tasks, and release_plan.
Platform-only supplement: Also query platform-cmd list-issues labels="task,status:to-test" state="open" for to-test tasks.
Dual-sync supplement: Run TM sync-from-platform --dry-run --format text 2>/dev/null || echo "(sync check not available)".
/release test-only TASK-CODE.next_recommended: code, title, priority, dependency status, brief scope.release_plan. If null/missing, skip. Show next release and upcoming releases summary.Pick up the next todo task for implementation.
Platform-only: List todos by priority (HIGH/MEDIUM/LOW) with platform-cmd list-issues labels="task,status:todo,priority:<level>" state="open" for each level. List completed: platform-cmd list-issues labels="task,status:done" state="closed" limit="20".
Local/Dual:
TM list --status todo --format summary
TM list --status done --format summary
TM sections --file to-do.txt
Based on mode:
platform-cmd search-issues. Check dependency status via labels.to-do.txt with [ ] status. Check dependencies are in done.txt as [x].Release check (after task selection, before proceeding):
Once the task is identified, verify it has a release/milestone assigned:
release:vX.Y.Z label or milestone on the issue.Release: field in the task block.If the task has no release assigned:
RM release-plan-list to get available releases.RM release-state-get). If no active release, use the next upcoming release. Log the auto-selection and proceed.AskUserQuestion: "Assign to vX.Y.Z (recommended)" | "Assign to different release" | "Cancel". STOP until user responds.TM set-release, RM release-plan-add-task, platform: add label + milestone.TM move TASK-CODE --to progressing — verify "success": true. If task appears in recommended order section of to-do.txt, update annotation to [IN PROGRESS].status:todo, add status:in-progress) and comment with branch name via platform-cmd edit-issue and platform-cmd comment-issue. Also auto-assign: PM edit-issue number=ISSUE_NUM add-assignee="@me".Create a dedicated task/<code> branch from {DEVELOPMENT_BRANCH} and check it out:
git checkout -b task/<code> {DEVELOPMENT_BRANCH}
If the branch already exists, check it out instead:
git checkout task/<code>
Inform: branch name, base branch. All subsequent steps operate on the checked-out task branch.
platform-cmd view-issue. Parse DESCRIPTION, TECHNICAL DETAILS, Files involved.TM parse TASK-CODE.For each file in "Files involved":
Related code heuristics: After the above file exploration, use local heuristics to find related code not listed in "Files involved":
TM duplicates --keywords "<task keywords>" to surface similar tasks.TM find-files "<keywords>" to locate likely source files.After codebase exploration, check if the task involves frontend code:
TM is-frontend-task TASK-CODE
Platform-only alternative: Pass issue body as JSON: TM is-frontend-task TASK-CODE --json-body '{"title":"...","description":"...","files_create":[...],"files_modify":[...]}'
If is_frontend is true, run the frontend design wizard:
python3 ${CLAW_ROOT}/scripts/frontend_wizard.py detect-framework --root <PROJECT_ROOT>
python3 ${CLAW_ROOT}/scripts/frontend_wizard.py search-templates --framework <DETECTED> --query "<task keywords>"
python3 ${CLAW_ROOT}/scripts/frontend_wizard.py list-palettes
search-templates results. In yolo mode, auto-select the first template.python3 ${CLAW_ROOT}/scripts/frontend_wizard.py apply-constraints --template <SELECTED> --palette <SELECTED> --typography modernSkip conditions: Skip this step if is_frontend is false or if the wizard has already been run for this task (check .claude/frontend-config.json).
Ask: "Ready to start implementation, or would you like to adjust the approach?"
If the task needs a visual asset, ask the user to provide it or use the frontend design wizard when the task is frontend-related. CodeClaw no longer ships a standalone image-generation workflow in this flow.
After full implementation and quality gate passes:
6-pre. No extra index refresh is required.
The current workflow relies on normal task tracking and docs sync. PostToolUse already records the edited files against the active task.
6-review. Run quality gate:
Run the local quality gate on changed files:
python3 ${CLAW_ROOT}/scripts/quality_gate.py --root <PROJECT_ROOT> --files <changed_files> --verify-command "<CTX.config.verify_command>" --json
Parse the JSON result. If passed is false:
result.dashboard.max_fix_iterations (default 3) internally, applying auto-fixes between iterations.GATE (blocking findings remain): "Fix remaining issues manually and re-run" / "Proceed despite findings (not recommended)" / "Cancel task closure"
If passed is true, or user chooses to proceed: continue to 6a.
This step is non-blocking and silent on failure (e.g., if the quality gate script is unavailable or errors out, log a warning and proceed).
6a. Generate the Testing Guide (do NOT present yet):
Derive from TECHNICAL DETAILS and Files involved. Format:
Testing Guide for [TASK-CODE] — [Task Title]
Prerequisites: [What needs to be running] Steps to test:
- [Concrete action] — Expected: [Result] Edge cases to check: [2-3 items]
Must be actionable — use real URLs, UI elements, API endpoints from the implementation.
6a.5. Route testing guide and persist:
| Mode | Deliver | status:to-test label | Platform comment | Local append |
|---|---|---|---|---|
| Platform-only | Comment + notify | Yes | Yes | No |
| Dual sync | Comment + notify | Yes | Yes | Yes |
| Local-only | Show on screen | No | No | Yes |
Platform label: platform-cmd edit-issue. Platform comment: platform-cmd comment-issue. Local append: TM add-test-procedure TASK-CODE --body "[guide text]".
6b. Ask for user confirmation:
Present summary of work done. Use AskUserQuestion with options:
6b.5. Remove to-test label:
Always remove status:to-test label after user responds (platform modes only, via platform-cmd edit-issue).
6c. Mark task as done:
status:in-progress, add status:done via platform-cmd edit-issue. Close via platform-cmd close-issue. Message: tests passed = "Task completed and verified." / testing skipped = "Task completed. Manual testing skipped. Branch not merged."TM move TASK-CODE --to done --completed-summary "Brief summary". Update recommended order annotation to [COMPLETED] if present. Dual: also sync labels + close on platform.Inform: "Task [TASK-CODE] has been closed."
Inform: "Task closed. Branch task/<code> preserved for PR."
6d. Ask to commit:
Use AskUserQuestion: "Yes, commit" | "No, skip commit"
6e. Ask to create PR (always offered):
Always offer PR creation after task completion, regardless of whether testing passed or was skipped.
Yolo mode: Auto-create the PR without asking. Log the auto-selection.
Normal mode: Use AskUserQuestion: "Yes, create PR into <DEVELOPMENT_BRANCH>" | "No, stay on task branch"
PR creation: Push with -u, check existing PR via platform-cmd list-pr (skip if exists). Build PR: title, summary, issue ref (platform modes). Include milestone parameter from the task's release assignment. Create via platform-cmd create-pr with assignee="@me". Report URL.
When testing was skipped: Still create the PR, but:
needs-testing label to the PRneeds-testing label. Run /release test-only [TASK-CODE] to complete testing before merge."Pick up and implement all pending tasks for the current active release. By default, tasks are implemented sequentially in dependency order so the review trail stays on the task itself.
This flow is triggered by /task pick all or /task pick all sequential.
Detect the active release:
RM release-state-get
/release X.X.X first to create a release, then re-run /task pick all." STOP.release_state.version.TM list-release-tasks --version X.X.X
Filter to only todo and progressing tasks. If none pending → "All tasks for release X.X.X are already complete. You can resume the release with /release resume." STOP.
Parse Dependencies: fields from each pending task. Group tasks into dependency batches so the next task is always clear.
Present: "Found N pending tasks for release X.X.X. M are ready in batch 1."
| Batch | Tasks | Notes |
|---|---|---|
| 1 | CODE1, CODE2 | Independent |
| 2 | CODE3 | Depends on CODE1 |
Default: GATE: "Implement tasks sequentially" / "Cancel"
For each batch, process the tasks one by one in dependency order:
{VERIFY_COMMAND} and fix any failures, up to 3 attempts.Wait for the current batch to finish before moving to the next batch.
| Code | Title | Result |
|---|---|---|
| CODE1 | Title | Success |
| CODE2 | Title | Failed (reason) |
Update completed tasks. Move to next batch if any remain (repeat from Step 3a/3b).
On failures → GATE: "Retry failed tasks" / "Skip failed tasks" / "Cancel"
When all batches complete, present:
All N tasks for release X.X.X have been implemented. Successful: M | Failed: K | Skipped: J
You can now resume the release pipeline with
/release resume.
Generate properly formatted task blocks and add to the backlog. Task content MUST be in English.
Platform-only — Next ID: Use platform-cmd list-issues labels="task" state="all" limit="500" to get titles, pipe to TM next-id --type task --source platform-titles.
Local/dual:
TM next-id --type task
TM sections --file to-do.txt
Platform-only section info: Derived from labels.sections mapping in tracker config.
If description after create is empty/unclear, use AskUserQuestion to ask for a task description. STOP. Do NOT proceed until the user responds.
Check prefixes from next-id data. Reuse existing prefix if task fits that domain. Otherwise create a new 3-5 letter prefix (meaningful: AUTH, FEAT, DOCS, PERF, SEC, API, DATA, CFG).
Use next_number from next-id JSON. Numbering is globally sequential across all prefixes.
Glob.Platform-only — Title: [PREFIX-XXXX] Task Title. Body: Code/Priority/Section/Dependencies/Release metadata line, then Description, Technical Details, Files Involved sections in markdown. Labels: claude-code,task,PRIORITY_LABEL,status:todo,SECTION_LABEL. If show_generated_footer is true (or absent) in .claude/project-config.json, append footer: *Generated by Claude Code via /task create*.
Local/dual — Text block with 78-dash separators, [ ] status, em dash in title, 2-space indent. Fields: Priority, Dependencies, Release, DESCRIPTION (4-10 lines), TECHNICAL DETAILS (structured by architecture), Files involved (CREATE/MODIFY). End with two blank lines.
Show the complete draft with task code, suggested section (with reasoning), and suggested priority (with reasoning).
AskUserQuestion: "Looks good, create it" | "Needs changes" | "Cancel"
STOP.
platform-cmd search-issues with key terms. Warn if similar found.TM duplicates --keywords "keyword1,keyword2,keyword3". Warn if similar found.Edit tool.platform-cmd create-issue with assignee="@me". On failure, hard fail.assignee="@me"), extract issue number, add GitHub: #NNN to task block via Edit. On platform failure, warn but keep local task.RM release-plan-listgh api repos/{owner}/{repo}/milestones --jq '.[] | select(.state=="open")'), sort by semver ascending, and select the next open milestone as the default.AskUserQuestion with the next version as the recommended first option:
TM set-release, RM release-plan-add-task, platform: add label + milestone.Report: code, priority, dependencies, section, file counts. Platform modes: include issue URL.
Read section headers from to-do.txt (local/dual) or label mappings (platform-only). If no clear fit, suggest Section B (enhancements).
Create tasks from all pending ideas in ideas.txt in one batch. Process ideas sequentially by default so each draft can be reviewed before the next one starts.
TM list --status idea --format summary
TM sections --file ideas.txt
Platform-only: platform-cmd list-issues labels="idea,status:pending" state="open"
If no pending ideas → "No pending ideas found in ideas.txt. Use /idea create to add ideas first." STOP.
Present: "Found N pending ideas to convert into tasks."
| # | Idea Code | Title |
|---|---|---|
| 1 | IDEA-XXX-0001 | Title |
| 2 | IDEA-YYY-0002 | Title |
GATE: "Create tasks from all ideas" / "Cancel"
For each idea in order, execute the standard Create Flow one at a time:
to-do.txt.Wait for user confirmation at each task's draft gate before moving to the next idea.
| Idea Code | Task Code | Title | Result |
|---|---|---|---|
| IDEA-XXX-0001 | AUTH-0005 | Title | Created |
| IDEA-YYY-0002 | — | Title | Failed (reason) |
On failures → GATE: "Retry failed" / "Skip failed" / "Cancel"
Created N tasks from M ideas. Successful: K | Failed: J | Skipped: L
Resume work on an in-progress task. Does NOT close or commit — use Pick Flow for that.
platform-cmd list-issues labels="task,status:in-progress" state="open"TM list --status progressing --format summary/task pick. Stop.AskUserQuestion to choose. STOP.Platform: search via platform-cmd search-issues with status:in-progress. Local/dual: read progressing.txt for [~] tasks.
git checkout task/<code>
If the branch does not exist, suggest /task pick <TASK-CODE> to create it. All subsequent steps operate on the checked-out task branch.
Auto-assign (platform-only/dual sync): PM edit-issue number=ISSUE_NUM add-assignee="@me" to track collaboration.
platform-cmd view-issue. Parse Description, Technical Details, Files Involved.TM parse TASK-CODE and verify-files TASK-CODE.CREATE files: Check existence via Glob. Classify: missing, stub, or implemented.
MODIFY files: Read and Grep for key changes. Note: applied vs still needed.
Cross-check each technical requirement against code artifacts.
Related code heuristics: Run TM duplicates --keywords "<task keywords>" and TM find-files "<keywords>" to discover any new or modified files across the project that are conceptually related to this task. This catches changes made by other work since the task was last active, revealing integration points that may need attention.
Read all related files: those to be modified, similar files for patterns, related types/interfaces/imports. Include any high-relevance files surfaced by the semantic exploration in Step 3.
/task pickAsk: "Ready to continue implementation, or would you like to adjust the approach?"
Resume work on all in-progress tasks sequentially by default so each update can be reviewed before the next task starts.
TM list --status progressing --format summary
Platform-only: platform-cmd list-issues labels="task,status:in-progress" state="open"
If no in-progress tasks → "No in-progress tasks found. Use /task pick to pick up a task first." STOP.
Present: "Found N in-progress tasks to continue."
| # | Code | Title | Priority |
|---|---|---|---|
| 1 | CODE1 | Title | HIGH |
| 2 | CODE2 | Title | MEDIUM |
GATE: "Implement tasks sequentially" / "Cancel"
For each task in priority order, execute the standard Continue Flow one at a time:
{VERIFY_COMMAND} and fix failures, up to 3 attempts.Wait for user direction before moving to the next task.
| Code | Title | Result |
|---|---|---|
| CODE1 | Title | Completed |
| CODE2 | Title | Failed (reason) |
On failures → GATE: "Retry failed tasks" / "Skip failed tasks" / "Cancel"
Continued N in-progress tasks. Completed: M | Failed: K | Skipped: J
Assign one or more tasks to a release milestone.
From dispatch: task_code contains comma-separated codes, remaining_args contains version.
RM release-plan-list and ask. If no releases exist → suggest /release create X.X.X first. Stop.RM release-plan-list
If version not found → GATE: "Release X.X.X does not exist. Create it with /release create X.X.X?" / "Cancel"
TM schedule-tasks --codes "CODE1,CODE2" --version X.X.X
In platform modes, also add release:vX.X.X label and milestone via PM edit-issue.
Present results table:
| Code | Title | Result |
|---|---|---|
| CODE1 | Title | Scheduled to X.X.X |
| CODE2 | Title | Failed (reason) |
Suggest: "Start the release with /release continue X.X.X" or "Schedule more tasks with /task schedule."
Modify fields of an existing task in-place without changing its status.
task_code field. If empty, ask: "Which task do you want to edit? Enter the task code." STOP.PM view-issue using the task code to search. Parse current fields (title, priority, dependencies, description, technical details, files involved).TM parse TASK-CODE. Parse current fields from the task block.Display the task's current values:
| # | Field | Current Value |
|---|---|---|
| 1 | Title | [current title] |
| 2 | Priority | [HIGH/MEDIUM/LOW] |
| 3 | Dependencies | [deps or None] |
| 4 | Release | [version or None] |
| 5 | Description | [first line or summary] |
| 6 | Technical Details | [first line or summary] |
| 7 | Files Involved | [count of files] |
AskUserQuestion multiSelect: "Which fields do you want to edit?" with options:
STOP.
For each selected field, present the current value and ask for the new value. Validate inputs before proceeding:
HIGH, MEDIUM, or LOW (case-insensitive). Reject other values and re-prompt.X.X.X and exist in RM release-plan-list. If not found, warn and re-prompt.Present a diff-style summary of old vs new values for each modified field.
AskUserQuestion: "Apply these changes" | "Needs adjustments" | "Cancel"
STOP.
Based on mode:
PM edit-issue to update the issue title, body, and labels as needed. For priority changes, swap priority labels (remove old, add new). For release changes, update milestone and release: label.Edit tool to modify the task block in the appropriate file (to-do.txt, progressing.txt, or done.txt). Preserve exact formatting: 78-dash separators, 2-space indent, field order.Report: "Task [TASK-CODE] updated. Fields changed: [list]." Include platform issue URL if applicable.
done.txt directly — use the move command.Glob before listing.progressing.txt or done.txt — only append to to-do.txt.