๐ŸŽฏ

ccw-loop

๐ŸŽฏSkill

from catlog22/claude-code-workflow

VibeIndex|
What it does

ccw-loop skill from catlog22/claude-code-workflow

๐Ÿ“ฆ

Part of

catlog22/claude-code-workflow(15 items)

ccw-loop

Installation

npm installInstall npm package
npm install -g claude-code-workflow
pip installInstall Python package
pip install -e .
๐Ÿ“– Extracted from docs: catlog22/claude-code-workflow
9Installs
1,241
-
Last UpdatedJan 26, 2026

Skill Details

SKILL.md

Stateless iterative development loop workflow with documented progress. Supports develop, debug, and validate phases with file-based state tracking. Triggers on "ccw-loop", "dev loop", "development loop", "ๅผ€ๅ‘ๅพช็Žฏ", "่ฟญไปฃๅผ€ๅ‘".

Overview

# CCW Loop - Stateless Iterative Development Workflow

ๆ— ็Šถๆ€่ฟญไปฃๅผ€ๅ‘ๅพช็Žฏๅทฅไฝœๆต๏ผŒๆ”ฏๆŒๅผ€ๅ‘ (develop)ใ€่ฐƒ่ฏ• (debug)ใ€้ชŒ่ฏ (validate) ไธ‰ไธช้˜ถๆฎต๏ผŒๆฏไธช้˜ถๆฎต้ƒฝๆœ‰็‹ฌ็ซ‹็š„ๆ–‡ไปถ่ฎฐๅฝ•่ฟ›ๅฑ•ใ€‚

Arguments

| Arg | Required | Description |

|-----|----------|-------------|

| task | No | Task description (for new loop, mutually exclusive with --loop-id) |

| --loop-id | No | Existing loop ID to continue (from API or previous session) |

| --auto | No | Auto-cycle mode (develop โ†’ debug โ†’ validate โ†’ complete) |

Unified Architecture (API + Skill Integration)

```

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”

โ”‚ Dashboard (UI) โ”‚

โ”‚ [Create] [Start] [Pause] [Resume] [Stop] [View Progress] โ”‚

โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

โ”‚

โ–ผ

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”

โ”‚ loop-v2-routes.ts (Control Plane) โ”‚

โ”‚ โ”‚

โ”‚ State: .loop/{loopId}.json (MASTER) โ”‚

โ”‚ Tasks: .loop/{loopId}.tasks.jsonl โ”‚

โ”‚ โ”‚

โ”‚ /start โ†’ Trigger ccw-loop skill with --loop-id โ”‚

โ”‚ /pause โ†’ Set status='paused' (skill checks before action) โ”‚

โ”‚ /stop โ†’ Set status='failed' (skill terminates) โ”‚

โ”‚ /resume โ†’ Set status='running' (skill continues) โ”‚

โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

โ”‚

โ–ผ

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”

โ”‚ ccw-loop Skill (Execution Plane) โ”‚

โ”‚ โ”‚

โ”‚ Reads/Writes: .loop/{loopId}.json (unified state) โ”‚

โ”‚ Writes: .loop/{loopId}.progress/* (progress files) โ”‚

โ”‚ โ”‚

โ”‚ BEFORE each action: โ”‚

โ”‚ โ†’ Check status: paused/stopped โ†’ exit gracefully โ”‚

โ”‚ โ†’ running โ†’ continue with action โ”‚

โ”‚ โ”‚

โ”‚ Actions: init โ†’ develop โ†’ debug โ†’ validate โ†’ complete โ”‚

โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

```

Key Design Principles

  1. ็ปŸไธ€็Šถๆ€: API ๅ’Œ Skill ๅ…ฑไบซ .loop/{loopId}.json ็Šถๆ€ๆ–‡ไปถ
  2. ๆŽงๅˆถไฟกๅท: Skill ๆฏไธช Action ๅ‰ๆฃ€ๆŸฅ status ๅญ—ๆฎต (paused/stopped)
  3. ๆ–‡ไปถ้ฉฑๅŠจ: ๆ‰€ๆœ‰่ฟ›ๅบฆใ€็†่งฃใ€็ป“ๆžœ้ƒฝ่ฎฐๅฝ•ๅœจ .loop/{loopId}.progress/
  4. ๅฏๆขๅค: ไปปไฝ•ๆ—ถๅ€™ๅฏไปฅ็ปง็ปญไน‹ๅ‰็š„ๅพช็Žฏ (--loop-id)
  5. ๅŒ่งฆๅ‘: ๆ”ฏๆŒ API ่งฆๅ‘ (--loop-id) ๅ’Œ็›ดๆŽฅ่ฐƒ็”จ (task description)
  6. Gemini ่พ…ๅŠฉ: ไฝฟ็”จ CLI ๅทฅๅ…ท่ฟ›่กŒๆทฑๅบฆๅˆ†ๆžๅ’Œๅ‡่ฎพ้ชŒ่ฏ

Execution Modes

Mode 1: Interactive (ไบคไบ’ๅผ)

็”จๆˆทๆ‰‹ๅŠจ้€‰ๆ‹ฉๆฏไธชๅŠจไฝœ๏ผŒ้€‚ๅˆๅคๆ‚ไปปๅŠกใ€‚

```

็”จๆˆท โ†’ ้€‰ๆ‹ฉๅŠจไฝœ โ†’ ๆ‰ง่กŒ โ†’ ๆŸฅ็œ‹็ป“ๆžœ โ†’ ้€‰ๆ‹ฉไธ‹ไธ€ๅŠจไฝœ

```

Mode 2: Auto-Loop (่‡ชๅŠจๅพช็Žฏ)

ๆŒ‰้ข„่ฎพ้กบๅบ่‡ชๅŠจๆ‰ง่กŒ๏ผŒ้€‚ๅˆๆ ‡ๅ‡†ๅผ€ๅ‘ๆต็จ‹ใ€‚

```

Develop โ†’ Debug โ†’ Validate โ†’ (ๅฆ‚ๆœ‰้—ฎ้ข˜) โ†’ Develop โ†’ ...

```

Session Structure (Unified Location)

```

.loop/

โ”œโ”€โ”€ {loopId}.json # ไธป็Šถๆ€ๆ–‡ไปถ (API + Skill ๅ…ฑไบซ)

โ”œโ”€โ”€ {loopId}.tasks.jsonl # ไปปๅŠกๅˆ—่กจ (API ็ฎก็†)

โ””โ”€โ”€ {loopId}.progress/ # Skill ่ฟ›ๅบฆๆ–‡ไปถ

โ”œโ”€โ”€ develop.md # ๅผ€ๅ‘่ฟ›ๅบฆ่ฎฐๅฝ•

โ”œโ”€โ”€ debug.md # ็†่งฃๆผ”ๅ˜ๆ–‡ๆกฃ

โ”œโ”€โ”€ validate.md # ้ชŒ่ฏๆŠฅๅ‘Š

โ”œโ”€โ”€ changes.log # ไปฃ็ ๅ˜ๆ›ดๆ—ฅๅฟ— (NDJSON)

โ””โ”€โ”€ debug.log # ่ฐƒ่ฏ•ๆ—ฅๅฟ— (NDJSON)

```

Directory Setup

```javascript

// loopId ๆฅๆบ:

// 1. API ่งฆๅ‘ๆ—ถ: ไปŽ --loop-id ๅ‚ๆ•ฐ่Žทๅ–

// 2. ็›ดๆŽฅ่ฐƒ็”จๆ—ถ: ็”Ÿๆˆๆ–ฐ็š„ loop-v2-{timestamp}-{random}

const loopId = args['--loop-id'] || generateLoopId()

const loopFile = .loop/${loopId}.json

const progressDir = .loop/${loopId}.progress

// ๅˆ›ๅปบ่ฟ›ๅบฆ็›ฎๅฝ•

Bash(mkdir -p "${progressDir}")

```

Action Catalog

| Action | Purpose | Output Files | CLI Integration |

|--------|---------|--------------|-----------------|

| [action-init](phases/actions/action-init.md) | ๅˆๅง‹ๅŒ–ๅพช็Žฏไผš่ฏ | meta.json, state.json | - |

| [action-develop-with-file](phases/actions/action-develop-with-file.md) | ๅผ€ๅ‘ไปปๅŠกๆ‰ง่กŒ | progress.md, tasks.json | gemini --mode write |

| [action-debug-with-file](phases/actions/action-debug-with-file.md) | ๅ‡่ฎพ้ฉฑๅŠจ่ฐƒ่ฏ• | understanding.md, hypotheses.json | gemini --mode analysis |

| [action-validate-with-file](phases/actions/action-validate-with-file.md) | ๆต‹่ฏ•ไธŽ้ชŒ่ฏ | validation.md, test-results.json | gemini --mode analysis |

| [action-complete](phases/actions/action-complete.md) | ๅฎŒๆˆๅพช็Žฏ | summary.md | - |

| [action-menu](phases/actions/action-menu.md) | ๆ˜พ็คบๆ“ไฝœ่œๅ• | - | - |

Usage

```bash

# ๅฏๅŠจๆ–ฐๅพช็Žฏ (็›ดๆŽฅ่ฐƒ็”จ)

/ccw-loop "ๅฎž็Žฐ็”จๆˆท่ฎค่ฏๅŠŸ่ƒฝ"

# ็ปง็ปญ็Žฐๆœ‰ๅพช็Žฏ (API ่งฆๅ‘ๆˆ–ๆ‰‹ๅŠจๆขๅค)

/ccw-loop --loop-id loop-v2-20260122-abc123

# ่‡ชๅŠจๅพช็Žฏๆจกๅผ

/ccw-loop --auto "ไฟฎๅค็™ปๅฝ•bugๅนถๆทปๅŠ ๆต‹่ฏ•"

# API ่งฆๅ‘่‡ชๅŠจๅพช็Žฏ

/ccw-loop --loop-id loop-v2-20260122-abc123 --auto

```

Execution Flow

```

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”

โ”‚ /ccw-loop [ | --loop-id ] [--auto] โ”‚

โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค

โ”‚ โ”‚

โ”‚ 1. Parameter Detection: โ”‚

โ”‚ โ”œโ”€ IF --loop-id provided: โ”‚

โ”‚ โ”‚ โ”œโ”€ Read .loop/{loopId}.json โ”‚

โ”‚ โ”‚ โ”œโ”€ Validate status === 'running' โ”‚

โ”‚ โ”‚ โ””โ”€ Continue from skill_state.current_action โ”‚

โ”‚ โ””โ”€ ELSE (task description): โ”‚

โ”‚ โ”œโ”€ Generate new loopId โ”‚

โ”‚ โ”œโ”€ Create .loop/{loopId}.json โ”‚

โ”‚ โ””โ”€ Initialize with action-init โ”‚

โ”‚ โ”‚

โ”‚ 2. Orchestrator Loop: โ”‚

โ”‚ โ”œโ”€ Read state from .loop/{loopId}.json โ”‚

โ”‚ โ”œโ”€ Check control signals: โ”‚

โ”‚ โ”‚ โ”œโ”€ status === 'paused' โ†’ Exit (wait for resume) โ”‚

โ”‚ โ”‚ โ”œโ”€ status === 'failed' โ†’ Exit with error โ”‚

โ”‚ โ”‚ โ””โ”€ status === 'running' โ†’ Continue โ”‚

โ”‚ โ”œโ”€ Show menu / auto-select next action โ”‚

โ”‚ โ”œโ”€ Execute action โ”‚

โ”‚ โ”œโ”€ Update .loop/{loopId}.progress/{action}.md โ”‚

โ”‚ โ”œโ”€ Update .loop/{loopId}.json (skill_state) โ”‚

โ”‚ โ””โ”€ Loop or exit based on user choice / completion โ”‚

โ”‚ โ”‚

โ”‚ 3. Action Execution: โ”‚

โ”‚ โ”œโ”€ BEFORE: checkControlSignals() โ†’ exit if paused/stopped โ”‚

โ”‚ โ”œโ”€ Develop: Plan โ†’ Implement โ†’ Document progress โ”‚

โ”‚ โ”œโ”€ Debug: Hypothesize โ†’ Instrument โ†’ Analyze โ†’ Fix โ”‚

โ”‚ โ”œโ”€ Validate: Test โ†’ Check โ†’ Report โ”‚

โ”‚ โ””โ”€ AFTER: Update skill_state in .loop/{loopId}.json โ”‚

โ”‚ โ”‚

โ”‚ 4. Termination: โ”‚

โ”‚ โ”œโ”€ Control signal: paused (graceful exit, wait resume) โ”‚

โ”‚ โ”œโ”€ Control signal: stopped (failed state) โ”‚

โ”‚ โ”œโ”€ User exits (interactive mode) โ”‚

โ”‚ โ”œโ”€ All tasks completed (status โ†’ completed) โ”‚

โ”‚ โ””โ”€ Max iterations reached โ”‚

โ”‚ โ”‚

โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

```

Reference Documents

| Document | Purpose |

|----------|---------|

| [phases/orchestrator.md](phases/orchestrator.md) | ็ผ–ๆŽ’ๅ™จ๏ผš็Šถๆ€่ฏปๅ– + ๅŠจไฝœ้€‰ๆ‹ฉ |

| [phases/state-schema.md](phases/state-schema.md) | ็Šถๆ€็ป“ๆž„ๅฎšไน‰ |

| [specs/loop-requirements.md](specs/loop-requirements.md) | ๅพช็Žฏ้œ€ๆฑ‚่ง„่Œƒ |

| [specs/action-catalog.md](specs/action-catalog.md) | ๅŠจไฝœ็›ฎๅฝ• |

| [templates/progress-template.md](templates/progress-template.md) | ่ฟ›ๅบฆๆ–‡ๆกฃๆจกๆฟ |

| [templates/understanding-template.md](templates/understanding-template.md) | ็†่งฃๆ–‡ๆกฃๆจกๆฟ |

Integration with Loop Monitor (Dashboard)

ๆญค Skill ไธŽ CCW Dashboard ็š„ Loop Monitor ๅฎž็Žฐ ๆŽงๅˆถๅนณ้ข + ๆ‰ง่กŒๅนณ้ข ๅˆ†็ฆปๆžถๆž„๏ผš

Control Plane (Dashboard/API โ†’ loop-v2-routes.ts)

  1. ๅˆ›ๅปบๅพช็Žฏ: POST /api/loops/v2 โ†’ ๅˆ›ๅปบ .loop/{loopId}.json
  2. ๅฏๅŠจๆ‰ง่กŒ: POST /api/loops/v2/:loopId/start โ†’ ่งฆๅ‘ /ccw-loop --loop-id {loopId} --auto
  3. ๆš‚ๅœๆ‰ง่กŒ: POST /api/loops/v2/:loopId/pause โ†’ ่ฎพ็ฝฎ status='paused' (Skill ไธ‹ๆฌกๆฃ€ๆŸฅๆ—ถ้€€ๅ‡บ)
  4. ๆขๅคๆ‰ง่กŒ: POST /api/loops/v2/:loopId/resume โ†’ ่ฎพ็ฝฎ status='running' โ†’ ้‡ๆ–ฐ่งฆๅ‘ Skill
  5. ๅœๆญขๆ‰ง่กŒ: POST /api/loops/v2/:loopId/stop โ†’ ่ฎพ็ฝฎ status='failed'

Execution Plane (ccw-loop Skill)

  1. ่ฏปๅ–็Šถๆ€: ไปŽ .loop/{loopId}.json ่ฏปๅ– API ่ฎพ็ฝฎ็š„็Šถๆ€
  2. ๆฃ€ๆŸฅๆŽงๅˆถ: ๆฏไธช Action ๅ‰ๆฃ€ๆŸฅ status ๅญ—ๆฎต
  3. ๆ‰ง่กŒๅŠจไฝœ: develop โ†’ debug โ†’ validate โ†’ complete
  4. ๆ›ดๆ–ฐ่ฟ›ๅบฆ: ๅ†™ๅ…ฅ .loop/{loopId}.progress/*.md ๅ’Œๆ›ดๆ–ฐ skill_state
  5. ็Šถๆ€ๅŒๆญฅ: Dashboard ้€š่ฟ‡่ฏปๅ– .loop/{loopId}.json ่Žทๅ–่ฟ›ๅบฆ

CLI Integration Points

Develop Phase

```bash

ccw cli -p "PURPOSE: Implement {task}...

TASK: โ€ข Analyze requirements โ€ข Write code โ€ข Update progress

MODE: write

CONTEXT: @progress.md @tasks.json

EXPECTED: Implementation + updated progress.md

" --tool gemini --mode write --rule development-implement-feature

```

Debug Phase

```bash

ccw cli -p "PURPOSE: Generate debugging hypotheses...

TASK: โ€ข Analyze error โ€ข Generate hypotheses โ€ข Add instrumentation

MODE: analysis

CONTEXT: @understanding.md @debug.log

EXPECTED: Hypotheses + instrumentation plan

" --tool gemini --mode analysis --rule analysis-diagnose-bug-root-cause

```

Validate Phase

```bash

ccw cli -p "PURPOSE: Validate implementation...

TASK: โ€ข Run tests โ€ข Check coverage โ€ข Verify requirements

MODE: analysis

CONTEXT: @validation.md @test-results.json

EXPECTED: Validation report

" --tool gemini --mode analysis --rule analysis-review-code-quality

```

Error Handling

| Situation | Action |

|-----------|--------|

| Session not found | Create new session |

| State file corrupted | Rebuild from file contents |

| CLI tool fails | Fallback to manual analysis |

| Tests fail | Loop back to develop/debug |

| >10 iterations | Warn user, suggest break |

Post-Completion Expansion

ๅฎŒๆˆๅŽ่ฏข้—ฎ็”จๆˆทๆ˜ฏๅฆๆ‰ฉๅฑ•ไธบ issue (test/enhance/refactor/doc)๏ผŒ้€‰ไธญ้กน่ฐƒ็”จ /issue:new "{summary} - {dimension}"