# IDAW Commands ## One-Liner **IDAW (Independent Development Autonomous Workflow) is the batch task execution engine** — queue development tasks, execute skill chains serially with per-task git checkpoints, and resume from interruptions. ## Core Concepts | Concept | Description | Location | |---------|-------------|----------| | **Task** | Independent JSON task definition | `.workflow/.idaw/tasks/IDAW-*.json` | | **Session** | Execution session with progress tracking | `.workflow/.idaw/sessions/IDA-*/` | | **Skill Chain** | Ordered sequence of skills per task type | Mapped from `SKILL_CHAIN_MAP` | | **Checkpoint** | Per-task git commit after successful execution | Automatic `git add -A && git commit` | ## IDAW vs Issue System | Aspect | Issue System | IDAW | |--------|-------------|------| | **Granularity** | Fine-grained, multi-step orchestration | Coarse-grained, batch autonomous | | **Pipeline** | new → plan → queue → execute | add → run (all-in-one) | | **Execution** | DAG parallel | Serial with checkpoints | | **Storage** | `.workflow/issues.jsonl` | `.workflow/.idaw/tasks/IDAW-*.json` | | **Use Case** | Individual issue resolution | Batch task queue, unattended execution | ## Command List | Command | Function | Syntax | |---------|----------|--------| | [`add`](#add) | Create tasks manually or import from issue | `/idaw:add [-y] [--from-issue ] "description" [--type ] [--priority 1-5]` | | [`run`](#run) | Execute task queue with git checkpoints | `/idaw:run [-y] [--task ] [--dry-run]` | | [`status`](#status) | View task and session progress | `/idaw:status [session-id]` | | [`resume`](#resume) | Resume interrupted session | `/idaw:resume [-y] [session-id]` | ## Command Details ### add **Function**: Create IDAW tasks manually or import from existing ccw issues. **Syntax**: ```bash /idaw:add [-y|--yes] [--from-issue [,,...]] "description" [--type ] [--priority <1-5>] ``` **Options**: - `--from-issue `: Import from ccw issue (comma-separated for multiple) - `--type `: Explicit task type (see [Task Types](#task-types)) - `--priority 1-5`: Priority (1=critical, 5=low, default=3) **Modes**: | Mode | Trigger | Behavior | |------|---------|----------| | Manual | No `--from-issue` | Parse description, generate task | | Import | `--from-issue` | Fetch issue, freeze snapshot, create task | **Examples**: ```bash # Manual creation /idaw:add "Fix login timeout bug" --type bugfix --priority 2 /idaw:add "Add rate limiting to API endpoints" --priority 1 /idaw:add "Refactor auth module to use strategy pattern" # Import from ccw issue /idaw:add --from-issue ISS-20260128-001 /idaw:add --from-issue ISS-20260128-001,ISS-20260128-002 # Auto mode (skip clarification) /idaw:add -y "Quick fix for typo in header" ``` **Output**: ``` Created IDAW-001: Fix login timeout bug Type: bugfix | Priority: 2 | Source: manual → Next: /idaw:run or /idaw:status ``` --- ### run **Function**: Main orchestrator — execute task skill chains serially with git checkpoints. **Syntax**: ```bash /idaw:run [-y|--yes] [--task [,,...]] [--dry-run] ``` **Options**: - `--task `: Execute specific tasks (default: all pending) - `--dry-run`: Show execution plan without running - `-y`: Auto mode — skip confirmations, auto-skip on failure **6-Phase Execution**: ``` Phase 1: Load Tasks └─ Glob IDAW-*.json → filter → sort by priority ASC, ID ASC Phase 2: Session Setup └─ Create session.json + progress.md + TodoWrite Phase 3: Startup Protocol ├─ Check running sessions → offer resume or fresh └─ Check git status → stash/continue/abort Phase 4: Main Loop (serial) For each task: ├─ Resolve: skill_chain || SKILL_CHAIN_MAP[task_type || inferred] ├─ Execute each skill (retry once on failure) └─ On error: skip (autoYes) or ask (interactive) Phase 5: Checkpoint (per task) ├─ git add -A && git commit ├─ Update task.json + session.json └─ Append to progress.md Phase 6: Report └─ Summary: completed/failed/skipped counts + git commits ``` **Examples**: ```bash # Execute all pending tasks (auto mode) /idaw:run -y # Execute specific tasks /idaw:run --task IDAW-001,IDAW-003 # Preview execution plan /idaw:run --dry-run ``` --- ### status **Function**: Read-only view of IDAW task queue and session progress. **Syntax**: ```bash /idaw:status [session-id] ``` **View Modes**: | Mode | Trigger | Output | |------|---------|--------| | Overview | No arguments | All tasks table + latest session summary | | Session Detail | Session ID provided | Task × status × commit table + progress.md | **Examples**: ```bash # Overview /idaw:status # Specific session /idaw:status IDA-auth-fix-20260301 ``` **Output Example**: ``` # IDAW Tasks | ID | Title | Type | Priority | Status | |----------|--------------------------|---------|----------|-----------| | IDAW-001 | Fix auth token refresh | bugfix | 1 | completed | | IDAW-002 | Add rate limiting | feature | 2 | pending | | IDAW-003 | Refactor payment module | refactor| 3 | pending | Total: 3 | Pending: 2 | Completed: 1 | Failed: 0 ``` --- ### resume **Function**: Resume an interrupted IDAW session from the last checkpoint. **Syntax**: ```bash /idaw:resume [-y|--yes] [session-id] ``` **Options**: - `session-id`: Resume specific session (default: latest running) - `-y`: Auto-skip interrupted task, continue with remaining **Recovery Flow**: ``` 1. Find session with status=running 2. Handle interrupted task (in_progress): ├─ autoYes → mark as skipped └─ interactive → ask: Retry or Skip 3. Build remaining task queue 4. Execute Phase 4-6 from /idaw:run ``` **Examples**: ```bash # Resume most recent running session /idaw:resume # Resume specific session /idaw:resume IDA-auth-fix-20260301 # Resume with auto mode /idaw:resume -y ``` ## Task Types IDAW supports 10 task types, each mapping to a specific skill chain: | Task Type | Skill Chain | Use Case | |-----------|-------------|----------| | `bugfix` | lite-plan → test-fix | Standard bug fixes | | `bugfix-hotfix` | lite-plan (--hotfix) | Urgent production fixes | | `feature` | lite-plan → test-fix | New features | | `feature-complex` | plan → execute → test-fix | Multi-module features | | `refactor` | refactor-cycle | Code restructuring | | `tdd` | tdd-plan → execute | Test-driven development | | `test` | test-fix | Test generation | | `test-fix` | test-fix | Fix failing tests | | `review` | review-cycle | Code review | | `docs` | lite-plan | Documentation | **Type Resolution**: Explicit `task_type` field takes priority. When null, the type is inferred from title and description using keyword matching at execution time. ## Task Schema ```json { "id": "IDAW-001", "title": "Fix auth token refresh race condition", "description": "Detailed problem/goal description...", "status": "pending", "priority": 2, "task_type": "bugfix", "skill_chain": null, "context": { "affected_files": ["src/auth/token-manager.ts"], "acceptance_criteria": ["No concurrent refresh requests"], "constraints": [], "references": [] }, "source": { "type": "manual", "issue_id": null, "issue_snapshot": null }, "execution": { "session_id": null, "started_at": null, "completed_at": null, "skill_results": [], "git_commit": null, "error": null }, "created_at": "2026-03-01T10:00:00Z", "updated_at": "2026-03-01T10:00:00Z" } ``` **Key Fields**: - `task_type`: Optional — inferred from title/description when null - `skill_chain`: Optional — overrides automatic mapping when set - `source.type`: `manual` or `import-issue` - `source.issue_snapshot`: Frozen copy of original issue data (import only) - `execution`: Runtime state populated by `/idaw:run` ## Task Lifecycle ```mermaid graph TD A["/idaw:add"] --> B["pending"] B --> C["/idaw:run"] C --> D["in_progress"] D --> E{"Skill Chain"} E -->|Success| F["completed (git commit)"] E -->|Retry once| G{"Retry"} G -->|Success| F G -->|Fail| H{"autoYes?"} H -->|Yes| I["failed (skip)"] H -->|No| J["Ask: Skip/Abort"] J -->|Skip| I J -->|Abort| K["Session failed"] L["/idaw:resume"] --> M{"Interrupted task"} M -->|Retry| B M -->|Skip| N["skipped"] ``` ## Directory Structure ``` .workflow/.idaw/ ├── tasks/ # Task definitions (persist across sessions) │ ├── IDAW-001.json │ ├── IDAW-002.json │ └── IDAW-003.json └── sessions/ # Execution sessions └── IDA-{slug}-YYYYMMDD/ ├── session.json # Session state + task queue └── progress.md # Human-readable progress log ``` ## Error Handling | Error | Resolution | |-------|------------| | No tasks found | Suggest `/idaw:add` | | Task JSON parse error | Skip malformed task, log warning | | Task type unresolvable | Default to `feature` chain | | Skill failure | Retry once → skip (autoYes) or ask (interactive) | | Git commit fails (no changes) | Record `no-commit`, continue | | Dirty git tree | autoYes: proceed; interactive: ask | | Session ID collision | Append `-2` suffix | | Issue fetch fails (import) | Log error, skip issue | | Duplicate import (same issue_id) | Warn and skip | | No resumable sessions | Suggest `/idaw:run` | ## Typical Workflow ```bash # 1. Queue tasks /idaw:add "Fix login timeout bug" --type bugfix --priority 1 /idaw:add "Add rate limiting to API" --priority 2 /idaw:add --from-issue ISS-20260128-001,ISS-20260128-002 # 2. Preview execution plan /idaw:run --dry-run # 3. Execute all (unattended) /idaw:run -y # 4. Check progress /idaw:status # 5. Resume if interrupted /idaw:resume -y ``` ## Related Documentation - [Issue Commands](./issue.md) — Fine-grained issue management - [Core Orchestration](./core-orchestration.md) — `/ccw` main orchestrator - [Workflow Commands](./workflow.md) — Individual workflow skills