skills/ballee/wip-lifecycle-manager/SKILL.md
Manage WIP document lifecycle: create, track, review, and archive work-in-progress documentation; use when starting features, reviewing active WIPs, or archiving completed work (project)
npx skillsauth add javeedishaq/ai-workflow-orchestrator wip-lifecycle-managerInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Manage work-in-progress documentation for multi-step tasks, features, and investigations.
# List all active WIPs with status
./scripts/wip-list.sh
# Review WIPs and identify completable ones
./scripts/wip-review.sh
# Archive completed WIPs
./scripts/wip-archive.sh "WIP_feature_name_2025_12_24.md"
# Create new WIP from template
./scripts/wip-create.sh "implementing_new_feature"
DO create a WIP for:
DON'T create a WIP for:
docs/wip/
├── active/ # Currently being worked on
├── archive/
│ └── 2025-12/ # Organized by month
└── README.md # Index of active WIPs
Format: WIP_{gerund_description}_{YYYY_MM_DD}.md
Examples:
WIP_implementing_feedback_system_2025_12_19.mdWIP_fixing_rls_policy_issues_2025_12_18.mdWIP_building_mobile_app_2025_12_21.mdRules:
# WIP: {Feature Name in Title Case}
**Created**: {YYYY-MM-DD}
**Last Updated**: {YYYY-MM-DD}
**Status**: In Progress | On Hold | Complete
**Priority**: P0 (Critical) | P1 (High) | P2 (Medium) | P3 (Low)
**Target Completion**: {YYYY-MM-DD} (optional)
## Objective
One paragraph describing what we're building and why.
## Progress Tracker
| Phase | Status | Description |
|-------|--------|-------------|
| Phase 1: Database | Complete | Migrations and RLS |
| Phase 2: Service | In Progress | Business logic |
| Phase 3: UI | Pending | Components and forms |
| Phase 4: Testing | Pending | E2E tests |
## Implementation Details
### Phase 1: Database (Complete)
- [x] Create migration `20251224_add_feature.sql`
- [x] Add RLS policies
- [x] Regenerate types
### Phase 2: Service (In Progress)
- [x] Create `feature.service.ts`
- [ ] Implement core methods
- [ ] Add error handling
### Phase 3: UI (Pending)
- [ ] Create form component
- [ ] Add to page
- [ ] Wire up actions
## Files Modified
| File | Change |
|------|--------|
| `supabase/migrations/...` | Added feature table |
| `services/feature.service.ts` | New service |
## Decisions & Notes
- Decision 1: Why we chose approach X over Y
- Note: Important gotcha discovered
## Completion Criteria
- [ ] All phases complete
- [ ] Tests passing
- [ ] Types regenerated
- [ ] Verified in staging
# Option A: Use script
./scripts/wip-create.sh "implementing_user_auth"
# Option B: Manual
touch docs/wip/active/WIP_implementing_user_auth_2025_12_24.md
Update the WIP as you work:
[x]# Check all WIPs for completeness
./scripts/wip-review.sh
Indicators a WIP is complete:
[ ] boxes checked# Archive a single WIP
./scripts/wip-archive.sh "WIP_feature_2025_12_20.md"
# Archive multiple
./scripts/wip-archive.sh "WIP_a.md" "WIP_b.md" "WIP_c.md"
This moves files to docs/wip/archive/YYYY-MM/.
| Status | Meaning | Action | |--------|---------|--------| | In Progress | Actively being worked on | Continue work | | On Hold | Paused intentionally | Document why, resume later | | Blocked | Cannot proceed | Document blocker, escalate | | Complete | All work done | Archive within 1 week |
Run on the 1st of each month:
# 1. Review all active WIPs
./scripts/wip-review.sh
# 2. Archive any completed ones
./scripts/wip-archive.sh <files...>
# 3. Update docs/wip/README.md if needed
When starting multi-step work, Claude should:
ls docs/wip/active/database-migration-manager - For database phasesservice-patterns - For service layer phasesui-patterns - For UI phasestest-patterns - For testing phasestools
# Test Patterns Testing patterns for reliable, maintainable, and fast tests. > **Template Usage:** Customize for your test framework (Vitest, Jest, Playwright, etc.) and assertion library. ## Test Structure ```typescript // user.test.ts import { describe, it, expect, beforeEach, afterEach } from 'vitest'; import { userService } from '@/services/user.service'; import { createTestUser, cleanupTestData } from '@/tests/helpers'; describe('UserService', () => { let testUserId: string; befor
tools
# State Management Patterns Client-side state management patterns for modern applications. > **Template Usage:** Customize for your state library (React Query, Zustand, Jotai, Redux, etc.). ## State Categories | Type | Description | Solution | |------|-------------|----------| | **Server State** | Data from API/database | React Query, SWR | | **Client State** | UI state, user preferences | Zustand, Jotai, useState | | **Form State** | Form inputs, validation | React Hook Form, Formik | | **U
development
# Service Patterns Service layer patterns for clean architecture with proper error handling, logging, and type safety. > **Template Usage:** Customize for your ORM (Prisma, Drizzle, TypeORM, etc.) and logging solution. ## Result Type Pattern Never throw exceptions from services. Always return a Result type. ```typescript // lib/result.ts export type Result<T, E = Error> = | { success: true; data: T } | { success: false; error: E }; export function ok<T>(data: T): Result<T, never> { r
testing
# Row-Level Security Patterns Database security patterns for multi-tenant and user-scoped data. > **Template Usage:** Customize for your database (PostgreSQL, Supabase, etc.) and auth system. ## RLS Fundamentals ### Enable RLS on Tables ```sql -- Enable RLS (required before policies take effect) ALTER TABLE users ENABLE ROW LEVEL SECURITY; ALTER TABLE posts ENABLE ROW LEVEL SECURITY; ALTER TABLE comments ENABLE ROW LEVEL SECURITY; -- Force RLS for table owners too (recommended) ALTER TABLE