// Audit implementation progress against a plan, verify completed work, identify remaining tasks, and validate quality. Use when user asks to check plan status, verify implementation, see what's left to do, or validate plan completion.
| name | check-plan |
| description | Audit implementation progress against a plan, verify completed work, identify remaining tasks, and validate quality. Use when user asks to check plan status, verify implementation, see what's left to do, or validate plan completion. |
Perform comprehensive audit of implementation progress against a plan, verify quality of completed work, and generate actionable task list for remaining items.
.plans/# See what files changed
git status
# See detailed changes
git diff
# See commit history on this branch
git log --oneline -20
This helps understand scope of changes made.
Create comprehensive list:
git statusCreate todo list with one item per file to check.
For EACH file in the todo list:
Identify which plan step(s) relate to this file:
Check if planned changes are present:
For each file, assess:
any)?Check implementation quality:
any, using existing types?Store in memory:
File: path/to/file.ts
Plan Item: Step X - [description]
Status: [DONE|PARTIAL|NOT DONE|NEEDS REVIEW]
Notes: [What's good, what's missing, what needs fixing]
Quality Issues: [Any problems found]
Mark file as checked in the todo list.
CRITICAL: Verify old code was actually removed.
Extract all items listed for removal:
For each item in REMOVAL SPEC:
For code to remove:
# Check if old code still exists
grep -n "old_function_name" path/to/file.ts
For files to delete:
# Check if file still exists
ls path/to/old-file.ts
For deprecated imports/references:
# Search entire codebase
grep -r "old_symbol" src/
Files changed that are NOT in the plan:
Plan items without corresponding implementation:
Total Plan Steps: X
Completed Steps: Y
Partial Steps: Z
Not Started: W
Completion: (Y / X) * 100%
Weighted Completion: ((Y + 0.5*Z) / X) * 100%
Create report at .plans/[plan-name].progress.md:
# Plan Progress Report: [Plan Name]
**Date**: [timestamp]
**Plan File**: [path]
**Status**: [In Progress | Ready for Review | Completed]
---
## Summary
- **Overall Completion**: X%
- **Steps Complete**: Y / Total
- **Steps Partial**: Z
- **Steps Not Started**: W
- **Critical Issues**: N
---
## Progress by Plan Step
### ✅ Step 1: [Description]
**Status**: DONE
**Files**: [list]
**Notes**: [Any relevant notes]
### ⚠️ Step 2: [Description]
**Status**: PARTIAL (60% complete)
**Files**: [list]
**Completed**:
- [What's done]
**Remaining**:
- [What's not done]
**Issues**: [Any problems]
### ❌ Step 3: [Description]
**Status**: NOT DONE
**Blocking**: [What's blocking this]
---
## REMOVAL SPEC Status
### ✅ Completed Removals
- `old_function` from `file.ts` - Successfully removed
- `old-file.ts` - Successfully deleted
### ❌ Pending Removals (HIGH PRIORITY)
- `legacy_code` from `file.ts:lines 50-100` - **STILL EXISTS**
- `deprecated-helper.ts` - **FILE STILL EXISTS**
**Critical**: Old code must be removed before plan can be marked complete.
---
## Quality Assessment
### Passed
- ✅ TypeScript types used correctly
- ✅ CLAUDE.md naming conventions followed
- ✅ Architecture matches plan
### Issues Found
- ⚠️ `any` type used in `file.ts:42` (should use existing type)
- ⚠️ Missing error handling in step 5 implementation
---
## Files Changed
### Planned Changes (from plan)
- ✅ `path/to/file1.ts` - DONE
- ⚠️ `path/to/file2.ts` - PARTIAL
- ❌ `path/to/file3.ts` - NOT DONE
### Unplanned Changes (scope creep)
- `path/to/unexpected.ts` - Why: [reason]
---
## Remaining Work
### High Priority
1. **Remove old code** (REMOVAL SPEC items)
- [ ] Remove `legacy_code` from `file.ts`
- [ ] Delete `deprecated-helper.ts`
2. **Complete Step 3**
- [ ] Implement [specific requirement]
- [ ] Add proper types
### Medium Priority
3. **Fix quality issues**
- [ ] Replace `any` in `file.ts:42`
- [ ] Add error handling in step 5
### Low Priority
4. **Polish**
- [ ] [Minor improvements]
---
## Validation Status
### Pre-Validation
- [ ] All plan steps completed
- [ ] All REMOVAL SPEC items removed
- [ ] TypeScript compiles
- [ ] Linting passes
- [ ] No `any` types added
**Ready for Final Validation**: NO (pending items remain)
---
## Next Steps
1. Complete REMOVAL SPEC items (remove old code)
2. Finish Step 3 implementation
3. Fix quality issues
4. Run validation checks
5. Update plan status when 100% complete
# Run type checking
npm run typecheck
# or
tsc --noEmit
Record results:
# Run linter
npm run lint
# or
eslint .
Record results:
npm run build
Ensure build succeeds.
Create actionable todo list for remaining work:
# Remaining Tasks for [Plan Name]
## Critical (Must Do)
- [ ] Remove `legacy_code` from `file.ts:50-100` (REMOVAL SPEC)
- [ ] Delete `deprecated-helper.ts` (REMOVAL SPEC)
- [ ] Complete Step 3: [description]
## Important (Should Do)
- [ ] Fix TypeScript error in `file.ts:42`
- [ ] Add error handling in step 5
## Polish (Nice to Have)
- [ ] [Minor improvement]
## Validation
- [ ] TypeScript passes (`npm run typecheck`)
- [ ] Linting passes (`npm run lint`)
- [ ] Build succeeds (`npm run build`)
- [ ] All REMOVAL SPEC items removed
**When all tasks complete**: Update plan file from `.todo.md` to `.done.md`
Provide concise summary:
# Plan Check Complete: [Plan Name]
## Overall Status
**X% Complete** (Y of Z steps done)
## Completed ✅
- Step 1: [description]
- Step 2: [description]
## In Progress ⚠️
- Step 3: [description] (60% done)
## Not Started ❌
- Step 4: [description]
## Critical Issues 🚨
- **REMOVAL SPEC not complete**: Old code still exists
- `legacy_code` in `file.ts` must be removed
- `deprecated-helper.ts` must be deleted
## Quality Issues
- `any` type used in `file.ts:42`
- Missing error handling in step 5
## Validation
- ❌ TypeScript: 3 errors
- ✅ Linting: Passed
- Build: Not tested
## Next Steps
1. Remove old code (REMOVAL SPEC)
2. Complete Step 3
3. Fix quality issues
4. Run final validation
**Detailed Report**: `.plans/[plan-name].progress.md`
**Task List**: See remaining work section above
A plan can be marked as .done.md ONLY when:
tsc --noEmit succeeds)any types added (strict typing maintained)Anything less = plan stays as .todo.md