with one click
init
// Initialize a new task module in AiTasks/ directory with system files, git branch, and optional worktree. Use when starting a new feature, bug fix, or refactoring task that needs structured lifecycle tracking.
// Initialize a new task module in AiTasks/ directory with system files, git branch, and optional worktree. Use when starting a new feature, bug fix, or refactoring task that needs structured lifecycle tracking.
Process Plan panel annotations ā triage, cross-impact assessment, and execution. Triggered automatically when annotations (Insert/Delete/Replace/Comment) are submitted from the Plan panel UI.
Autonomous execution loop ā single Claude session orchestrates plan/check/exec cycle internally
Cancel a task module ā set status to cancelled, stop auto if running, optionally clean up worktree. Use when a task becomes infeasible, is deprioritized, or needs to be abandoned.
Check plan feasibility at key checkpoints ā post-plan, mid-execution, post-execution
Execute the implementation plan for a reviewed task module. Triggered after check PASS (from review status) or on NEEDS_FIX continuation (from executing status with fix guidance).
Query task status and relationships ā read-only, no file writes. Use to inspect task inventory, check progress, view dependency graphs, or audit status transition history.
| name | init |
| description | Initialize a new task module in AiTasks/ directory with system files, git branch, and optional worktree. Use when starting a new feature, bug fix, or refactoring task that needs structured lifecycle tracking. |
| arguments | [{"name":"module_name","description":"Name of the task module directory to create (e.g., auth-refactor, add-search)","required":true},{"name":"title","description":"Human-readable title for the task (defaults to module_name)","required":false},{"name":"tags","description":"Comma-separated tags (e.g., feature,backend,urgent)","required":false},{"name":"worktree","description":"Create isolated git worktree for parallel execution (flag, no value)","required":false}] |
Create a new task module under the project's AiTasks/ directory with the standard system file structure.
/moonview:init <module_name> [--title "Task Title"] [--tags feature,backend] [--worktree]
AiTasks/
āāā <module_name>/
āāā .index.json # Task metadata (JSON) ā machine-readable
āāā .target.md # Task target / requirements ā human-authored
The .index.json file uses JSON as the single source of truth for task state:
{
"title": "Human-readable task title",
"type": "",
"status": "draft",
"phase": "",
"completed_steps": 0,
"created": "2024-01-01T00:00:00Z",
"updated": "2024-01-01T00:00:00Z",
"depends_on": [],
"tags": [],
"branch": "task/module-name",
"worktree": ".worktrees/task-module-name"
}
| Status | Description |
|---|---|
draft | Initial state, task target being defined |
planning | Implementation plan being researched |
review | Plan complete, awaiting feasibility evaluation |
executing | Implementation in progress |
re-planning | Execution hit issues, plan being revised |
complete | Task finished and verified |
blocked | Blocked by dependency or unresolved issue |
cancelled | Task abandoned |
Dependencies reference other task modules. Two formats ā simple string (requires complete) and extended object (custom minimum status):
"depends_on": [
"auth-refactor",
{ "module": "api-design", "min_status": "review" }
]
| File | Purpose | Created by |
|---|---|---|
.index.json | Task metadata, state machine | init (always) |
.target.md | Task requirements / objectives | init (always) |
.analysis/ | Evaluation history (one file per assessment) | check (on demand) |
.test/ | Test criteria & results (one file per phase) | plan/exec/check (on demand) |
.bugfix/ | Issue history (one file per mid-exec issue) | check (on demand) |
.notes/ | Research notes & experience log (one file per entry) | plan/exec (on demand) |
.summary.md | Condensed context summary | plan/check/exec (on demand) |
.report.md | Completion report | report (on demand) |
.tmp-annotations.json | Transient annotation transport | Frontend (ephemeral) |
.plan-superseded.md | Archived plan on re-plan (renamed from .plan.md) | plan (on re-plan) |
.plan.md is the implementation plan, generated by plan and editable through the Plan annotation panel.
The root AiTasks/.index.json is a JSON array of module entries, auto-managed by init:
[
{ "module": "auth-refactor", "title": "User auth refactoring" },
{ "module": "add-search-v2", "title": "Add search functionality v2" }
]
Each entry: { "module": "<module_name>", "title": "<title>" }.
Created automatically by init if AiTasks/ directory does not exist (initialized as []). init appends one entry per new module. No other sub-command modifies this file.
[a-zA-Z0-9_-]+), no whitespace, no leading dot, no path separatorsAiTasks/ directory exists; create with root .index.json if missing (initialized as []). Also create AiTasks/.type-registry.md with seed types if missing (read references/seed-types/.summary.md for the predefined type index; see plan/references/type-profiling.md for registry format). First-time setup: if AiTasks/ was just created, append gitignore entries to project .gitignore (create if missing): .worktrees/, AiTasks/**/.tmp-annotations.json, AiTasks/**/.auto-signal, AiTasks/**/.auto-signal.tmp, AiTasks/**/.auto-stop, AiTasks/**/.lock, AiTasks/.experiences/.lock, AiTasks/.references/.lock, AiTasks/.type-profiles/.lockAiTasks/<module_name>/ does not already exist; abort with error if it doestask/<module_name> branch does not already exist (git branch --list task/<module_name>). If exists, abort with error suggesting --cleanup the old task or choose a different namegit status --porcelain then filter out ?? untracked entries). Untracked and gitignored files (e.g., stale .auto-signal, AiTasks/ ephemeral files) do NOT block init. If tracked files have modifications, abort with error ā branch should be created from a clean state to avoid mixing unrelated changes. User should commit or stash firsttask/<module_name> from current HEAD--worktree: git worktree add .worktrees/task-<module_name> task/<module_name>git checkout task/<module_name>AiTasks/<module_name>/ directory (in worktree if applicable)AiTasks/<module_name>/.index.json with JSON:title: from --title argument or module_namestatus: draftphase: "" (empty)completed_steps: 0created: current ISO timestampupdated: current ISO timestampdepends_on: []tags: parsed from --tags argument or []branch: task/<module_name>worktree: .worktrees/task-<module_name> (or empty if no worktree)AiTasks/<module_name>/.target.md with default template (type is auto-discovered by research during planning):
# Task Target: <title>
## Objective
<!-- Describe the goal of this task -->
## Requirements
<!-- List specific requirements -->
## Constraints
<!-- Any constraints or limitations -->
AiTasks/.index.json: append { "module": "<module_name>", "title": "<title>" } entry to the array (if not already listed)-- ai-cli-task(<module_name>):init initialize task moduletask/<module_name> from current HEADgit checkout task/<module_name> before creating files.worktrees/task-<module_name>-- ai-cli-task(<module_name>):init initialize task module[a-zA-Z0-9_-]+). No whitespace, no leading dot, no path separators. Examples: auth-refactor, add-search-v2.target.md is for human authoring ā users fill in requirements via the Plan annotation panel. The default template (Objective / Requirements / Constraints) is domain-generic; users may freely restructure it for their domain (e.g., Synopsis / Characters for literary tasks). The plan skill reads .target.md content, not its structure.target.md.target.md ā /moonview:plan ā /moonview:check ā /moonview:exec--worktree, the task runs in an isolated directory; multiple tasks can execute simultaneouslytask/<module_name> branch already exists (from a previous cancelled/completed task), init aborts. User should delete the old branch first (git branch -d task/<name>) or choose a different module namegit commit or git stash tracked changes first