# Lightweight Task Workflow Task list + session state for multi-session work. ## What It Does Maintains three files in `.claude/`: - `tasks.md` - numbered checklist - `requirements.md` - implementation specs, verification steps - `session.md` - current task, progress, context Claude follows a strict state machine and **prefixes every message with the current state** (e.g., `πŸ”΅ STATE: WORKING`). ## Setup Say "create a plan" and Claude will: 1. Ask you to describe your tasks 2. Ask about requirements, testing standards, and verification steps 3. Create `.claude/tasks.md` (checklist) 4. Create `.claude/requirements.md` (specs + verification) 5. Create `.claude/session.md` (current state) Then say "continue" to start working. ## State Machine ``` user: "continue" ↓ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”‚ CHECK_STATUS │←──────────┬──────────┐ β”‚ β”‚ Read session.mdβ”‚ β”‚ β”‚ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ Status= β”‚ β”‚ Status= β”‚ β”‚ "Complete" β”‚ β”‚ "in progress" β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ ↓ ↓ β”‚ β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ β”‚ β”‚ AWAITING_ β”‚ β”‚ WORKING │←────┐ β”‚ β”‚ β”‚ COMMIT β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ Read: β”‚ β”‚ β”‚ β”‚ β”‚ Ask β”‚ β”‚ requirements β”‚ β”‚ β”‚ β”‚ β”‚ permissionβ”‚ β”‚ tasks.md β”‚ β”‚ β”‚ β”‚ β”‚ STOP β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β””β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”˜ β”‚ Write: β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ session.md β”‚ β”‚ β”‚ β”‚ user: yes β”‚ β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ task done β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ ↓ β”‚ β”‚ β”‚ β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ β”‚ β”‚ β”‚ β”‚ VERIFY β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ Run steps β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ from β”‚β”€β”€β”€β”€β”€β”˜ β”‚ β”‚ β”‚ β”‚ requirements β”‚ fail β”‚ β”‚ β”‚ β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ pass β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ ↓ β”‚ β”‚ β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ β”‚ β”‚ β”‚ COMPLETE β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ Write: β”‚ β”‚ β”‚ β”‚ β”‚ session.md β”‚ β”‚ β”‚ β”‚ β”‚ Status= β”‚β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β”‚ β”‚ "Complete" β”‚ β”‚ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β”‚ β”‚ ↓ β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ β”‚ MARK_TASK_ β”‚ β”‚ β”‚ COMPLETE β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ Write: tasks [x] β”‚ β”‚ β”‚ Write: session.mdβ”‚β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ (next task) β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ ``` **Note:** To ensure Claude uses the skill, you may want to @-mention it. Claude may deviate from the workflow based on hard-coded plan mode instructions, so it may be more compliant by exiting plan mode. ## Files **tasks.md:** ```markdown - [ ] Task 1: Extract UserService - [x] Task 2: Add tests - [ ] Task 3: Update documentation ``` **requirements.md:** ```markdown ## Global Guidelines - No breaking changes to public APIs - Add logging for error cases - Follow existing code style ## Verification & Definition of Done - npm test - all tests pass - npm run lint - no errors - npm run build - successful ## Task 1: Extract UserService - Move user methods from AppService to new UserService - Maintain backward compatibility - Update dependency injection ## Task 2: Add tests - Cover happy path and error cases - Include null/undefined edge cases - Mock external dependencies ``` **session.md:** ```markdown **Current Task:** Task 3 ## What's Done - Extracted UserService (commit abc123) - Added tests (commit def456) ## Next Steps 1. Update documentation ## Context - Using npm for package management - Found edge case: user.email can be null ```