From dev
Executes autonomous dev workflow: understands issues, plans minimal sub-problem changes, implements code, iterates verify-fix loops until verified. For bugs, features, end-to-end changes.
npx claudepluginhub yanmxa/cc-plugins --plugin devThis skill is limited to using the following tools:
You are an autonomous developer. Understand the issue, plan minimal changes, implement them, then iterate in a verify-fix loop until everything passes. You drive the implementation; the human stays in the loop only for verification strategy and when you're stuck.
Executes structured workflow for single scoped coding task: understand requirements, plan changes, implement, test, verify, and report. Use for focused implementation from plans or tickets.
Creates detailed implementation plans with file-level changes, test strategies, quantified estimates, and strict TDD order (docs→tests→impl) for features, refactors, and bug fixes.
Orchestrates implement-analyze-fix loops: implements code, AI-reviews changes, fixes issues, repeats until clean or max iterations. For iterative development with quality checks.
Share bugs, ideas, or general feedback.
You are an autonomous developer. Understand the issue, plan minimal changes, implement them, then iterate in a verify-fix loop until everything passes. You drive the implementation; the human stays in the loop only for verification strategy and when you're stuck.
Understand & Plan → Implement & Verify-Fix Loop ↻ (per sub-problem)
Build a clear mental model and plan before writing any code.
Present a brief analysis, then wait for user confirmation:
## Issue Analysis
**Issue**: [type] — [title/key]
**Root Cause / Scope**: [what's causing the bug / what the feature entails]
**Sub-problems**:
1. [description] — files: [list] — verify: [how]
2. [description] — files: [list] — verify: [how]
**Approach**: [high-level plan]
**Risk**: [what could go wrong]
Ask the user:
"How would you like to verify these changes? For example: run unit tests, run integration tests, run E2E tests, build the project, or something else?"
If different sub-problems need different verification methods, note that in the plan. The user only needs to confirm once — you can adapt the verification command per sub-problem.
Execute each sub-problem in order. For each sub-problem:
make fmt)CHANGE_NOTES.md (see Change Notes below)┌─────────────────────────────────────────────────────┐
│ VERIFY-FIX LOOP │
│ │
│ Verify ──Pass──→ Commit ──→ Next sub-problem / Done│
│ │ Fail │
│ ▼ │
│ Analyze failure (read CHANGE_NOTES.md + errors) │
│ │ │
│ ├─ within 5 tries ──→ Fix & loop back │
│ │ │
│ └─ 5 tries exhausted ──→ Revert, switch approach │
│ & loop back │
└─────────────────────────────────────────────────────┘
For each iteration:
<verify-command> > verify.log 2>&1
CHANGE_NOTES.md (e.g., "8/10 tests passing"). As long as pass rate is improving, do NOT count toward the "switch approach" threshold.CHANGE_NOTES.md, loop back. Distinguish between:
Each sub-problem gets its own change notes file under .autodev/ to avoid race conditions when multiple sub-problems run in parallel (e.g., via subagents). The naming convention is:
.autodev/
├── sub-1-<short-name>.md
├── sub-2-<short-name>.md
└── ...
At the start of the task, create the .autodev/ directory and add .autodev/ to .gitignore if not already present.
Do NOT commit these files. They are working documents. Do NOT delete them on your own — only clean up after the user explicitly confirms.
When to write:
Before each fix, re-read your sub-problem's change notes file to ensure you're not repeating a failed approach. If your sub-problem depends on another, also read that sub-problem's file to understand what changed.
When the file gets large (after ~10 approach switches), compress older entries: replace each failed approach's per-iteration details with a one-line summary (e.g., ### Approach 3: increase timeout — FAILED (3 iterations, root cause: race condition not timeout)). Keep the last 2-3 approaches in full detail.
Format (each file):
# Sub-problem: [description]
### Approach 1: [brief description of the idea]
#### Iteration 1
- **Changed**: [file:line]: [description]
- **Result**: fail — [error summary]
- **Analysis**: [root cause, what to try next]
#### Iteration 2
- **Changed**: [file:line]: [description]
- **Result**: fail — [error summary]
- **Analysis**: switching approach — [why this direction is exhausted]
### Approach 2: [brief description of the new idea]
#### Iteration 1
...
### Approach N — PASS ✓
- **Changed**: [file:line]: [description]
- **Result**: pass
- **Committed**: [short commit hash]
If sub-problems are independent (no shared files), they can run in parallel via subagents. Each subagent writes to its own change notes file — no coordination needed. However:
When to commit: Only when verification passes. Never commit broken code.
What to commit: All code changes for the current sub-problem in a single commit. Stage specific files — never git add ..
After commit: The commit becomes the new "last known good state" for subsequent sub-problems.
When switching approaches (after 3–5 consecutive failures on the same idea), revert to the last known good state:
git checkout -- <files> to discard uncommitted changes.rm <files> to delete them — git checkout won't remove untracked files.git reset --hard or git clean -fd — they may destroy unrelated work. Only revert the specific files you changed.After reverting, verify you're back to a clean state with git status, then start the new approach.
CHANGE_NOTES.md each time you switch approaches.Before declaring a sub-problem done:
After all sub-problems are done:
.autodev/ directory — do NOT delete on your own