# /sdd:story-continue ## Meta - Version: 2.0 - Category: workflow - Complexity: standard - Purpose: Resume work on the most recently active story with context-aware status reporting ## Definition **Purpose**: Resume development on the most recently modified story by displaying current status, git branch information, and suggesting appropriate next actions based on story stage. **Syntax**: `/sdd:story-continue` ## Parameters | Parameter | Type | Required | Default | Description | Validation | |-----------|------|----------|---------|-------------|------------| | - | - | - | - | No parameters required | - | ## INSTRUCTION: Continue Story Development ### INPUTS - Story files from `/docs/stories/development/`, `/docs/stories/review/`, `/docs/stories/qa/` - Current git branch and status - Project context from `/docs/project-context/` (optional for enhanced guidance) ### PROCESS #### Phase 1: Story Discovery 1. **SEARCH** for most recently modified story in order: - CHECK `/docs/stories/development/` (highest priority) - CHECK `/docs/stories/review/` (if no development stories) - CHECK `/docs/stories/qa/` (if no review stories) - CHECK `/docs/stories/backlog/` (fallback if nothing active) 2. **IDENTIFY** most recent story by: - SORT by file modification time (most recent first) - SELECT first result - IF no stories found: PROCEED to Phase 6 (No Active Stories) 3. **EXTRACT** story ID from filename: - PARSE filename pattern: `STORY-YYYY-NNN.md` - VALIDATE story ID format #### Phase 2: Story File Analysis 1. **READ** story file content 2. **PARSE** and **EXTRACT** key information: - Story title - Current status (backlog/development/review/qa/completed) - Branch name - Last progress log entry (most recent) - Implementation checklist with status - Success criteria (marked/unmarked) - Technical notes and dependencies - Started date - Completed date (if applicable) 3. **IDENTIFY** incomplete checklist items: - COUNT total checklist items - COUNT completed items (`[x]`) - COUNT remaining items (`[ ]`) - LIST remaining items for display #### Phase 3: Git Status Check 1. **GET** current git branch: - RUN: `git branch --show-current` - STORE current branch name 2. **COMPARE** with story branch: - IF current branch matches story branch: * SHOW: "✅ On correct branch: [branch-name]" - IF current branch differs from story branch: * SHOW: "⚠️ Not on story branch" * CURRENT: [current-branch] * EXPECTED: [story-branch] * OFFER: "Switch to story branch? (y/n)" 3. **CHECK** git working tree status: - RUN: `git status --porcelain` - IF uncommitted changes exist: * COUNT modified files * COUNT untracked files * SHOW: "⚠️ You have uncommitted changes" * LIST: Modified and untracked files * SUGGEST: `/sdd:story-save` to commit progress - IF working tree clean: * SHOW: "✅ Working tree clean" 4. **CHECK** branch sync status: - RUN: `git rev-list --left-right --count origin/[branch]...[branch]` - IF branch ahead of remote: * SHOW: "⬆️ [N] commits ahead of remote" * SUGGEST: Push to remote when ready - IF branch behind remote: * SHOW: "⬇️ [N] commits behind remote" * SUGGEST: Pull latest changes - IF diverged: * SHOW: "⚠️ Branch has diverged from remote" * SUGGEST: Rebase or merge required #### Phase 4: Progress Summary Display 1. **DISPLAY** comprehensive story status: ``` 📖 RESUMING STORY ════════════════════════════════════ Story: [STORY-ID] - [Title] Status: [development/review/qa] Branch: [branch-name] 📅 Timeline: Started: [date] Last Updated: [date] [If completed:] Completed: [date] 📊 Progress: Implementation: [X/Y] tasks complete ([Z%]) - [x] Completed item 1 - [x] Completed item 2 - [ ] Remaining item 1 - [ ] Remaining item 2 📝 Last Progress Entry: [Most recent progress log entry with timestamp] 🔧 Git Status: [Branch status - on correct branch or need to switch] [Working tree status - clean or uncommitted changes] [Sync status - ahead/behind/diverged from remote] ``` #### Phase 5: Context-Aware Next Actions **IF status is "development":** 1. **SUGGEST** development actions: ``` 💡 NEXT STEPS: 1. /sdd:story-implement [story-id] - Continue implementation 2. /sdd:story-save - Commit current progress 3. /sdd:story-review - Move to code review when complete Development Commands: - Run server: [detected from project context] - Run tests: [detected from project context] - Run linter: [detected from project context] ``` **IF status is "review":** 1. **CHECK** for review issues: - READ story file for review notes - IDENTIFY any failed checks or requested changes - LIST issues that need addressing 2. **SUGGEST** review actions: ``` 💡 NEXT STEPS: [If issues exist:] Issues to Address: - [Issue 1 from review notes] - [Issue 2 from review notes] Actions: 1. Fix identified issues in code 2. /sdd:story-save - Commit fixes 3. /sdd:story-qa - Move to QA when review passes [If no issues:] Review Status: ✅ All checks passed 1. /sdd:story-qa - Move to quality assurance 2. /sdd:story-refactor - Optional improvements ``` **IF status is "qa":** 1. **SUGGEST** QA actions: ``` 💡 NEXT STEPS: 1. /sdd:story-test-integration - Run integration tests 2. /sdd:story-validate - Perform final validation checks 3. /sdd:story-ship - Deploy when QA complete QA Checklist: - [ ] Manual testing across browsers - [ ] Performance testing - [ ] Accessibility testing - [ ] Security review - [ ] Documentation verification ``` **IF status is "backlog":** 1. **SUGGEST** starting development: ``` 💡 NEXT STEPS: This story is still in backlog. 1. /sdd:story-start [story-id] - Begin development 2. /sdd:story-start [story-id] --boilerplate - Start with boilerplate ``` #### Phase 6: No Active Stories Found 1. **IF** no stories found in development, review, or qa: - **SEARCH** for completed stories - **COUNT** total completed stories - **DISPLAY**: ``` ✅ NO ACTIVE STORIES ════════════════════════════════════ All stories are complete or in backlog. Completed Stories: [count] [List last 3 completed stories with titles] 💡 NEXT STEPS: 1. /sdd:story-new - Create a new story 2. /sdd:story-start [story-id] - Start a backlog story 3. /sdd:project-status - View full project status Backlog Stories Available: [List backlog stories if any exist] ``` ### OUTPUTS - Formatted story status summary - Git branch and working tree status - Progress metrics and completion percentage - Incomplete checklist items - Context-aware next action suggestions - Optional: Switch to story branch (if needed) ### RULES - MUST search development, review, and qa directories in order - MUST display most recently modified story - MUST show current git status and branch - MUST suggest actions appropriate to story status - SHOULD offer to switch branches if not on story branch - SHOULD highlight uncommitted changes if present - SHOULD calculate and display progress percentage - MUST handle case when no active stories exist - NEVER modify story file (read-only command) - NEVER create or delete files ## Examples ### Example 1: Resume Development Story ```bash INPUT: /sdd:story-continue PROCESS: → Searching for active stories... → Found: /docs/stories/development/STORY-AUTH-001.md → Modified: 2 hours ago → Analyzing story status... → Checking git branch... → Current branch: feature/auth-001-login-form ✅ OUTPUT: 📖 RESUMING STORY ════════════════════════════════════ Story: STORY-AUTH-001 - Implement Login Form Status: development Branch: feature/auth-001-login-form 📅 Timeline: Started: 2025-09-28 Last Updated: 2 hours ago 📊 Progress: Implementation: 6/10 tasks complete (60%) - [x] Feature implementation - [x] Unit tests - [x] Integration tests - [x] Error handling - [x] Loading states - [x] Browser tests - [ ] Performance optimization - [ ] Accessibility - [ ] Security review - [ ] Documentation 📝 Last Progress Entry: [2025-09-28 14:30] Implemented login form with validation. Added unit tests and feature tests. All tests passing. Created browser test for login flow. 🔧 Git Status: ✅ On correct branch: feature/auth-001-login-form ⚠️ You have uncommitted changes (3 files modified) Files: M app/Livewire/Auth/LoginForm.php M tests/Feature/Auth/LoginTest.php M stories/development/STORY-AUTH-001.md 💡 NEXT STEPS: 1. /sdd:story-implement STORY-AUTH-001 - Continue implementation 2. /sdd:story-save - Commit current progress 3. /sdd:story-review - Move to code review when complete Development Commands: - Run server: composer dev - Run tests: vendor/bin/pest - Run linter: vendor/bin/pint ``` ### Example 2: Resume Review Story ```bash INPUT: /sdd:story-continue PROCESS: → Searching for active stories... → No stories in development → Found: /docs/stories/review/STORY-PROFILE-002.md → Modified: 1 day ago → Analyzing story status... → Checking git branch... → Current branch: main → Expected branch: feature/profile-002-settings OUTPUT: 📖 RESUMING STORY ════════════════════════════════════ Story: STORY-PROFILE-002 - User Profile Settings Status: review Branch: feature/profile-002-settings 📅 Timeline: Started: 2025-09-27 Last Updated: 1 day ago 📊 Progress: Implementation: 10/10 tasks complete (100%) All implementation tasks completed ✅ 📝 Last Progress Entry: [2025-09-27 16:45] Code review completed. Minor formatting issues found. Need to run Pint and update comments. 🔧 Git Status: ⚠️ Not on story branch Current: main Expected: feature/profile-002-settings ✅ Working tree clean Review Notes: - Fix code formatting (run Pint) - Add missing PHPDoc comments for public methods - Update test descriptions to be more descriptive 💡 NEXT STEPS: Issues to Address: - Code formatting needs fixes - Missing documentation comments - Test descriptions need improvement Actions: 1. Switch to feature/profile-002-settings branch 2. Fix identified issues in code 3. /sdd:story-save - Commit fixes 4. /sdd:story-qa - Move to QA when review passes Switch to story branch now? [y/n] ``` ### Example 3: Resume QA Story ```bash INPUT: /sdd:story-continue PROCESS: → Searching for active stories... → No stories in development or review → Found: /docs/stories/qa/STORY-CART-003.md → Modified: 3 hours ago → Analyzing story status... → Checking git branch... OUTPUT: 📖 RESUMING STORY ════════════════════════════════════ Story: STORY-CART-003 - Shopping Cart Checkout Status: qa Branch: feature/cart-003-checkout 📅 Timeline: Started: 2025-09-25 Last Updated: 3 hours ago Expected Completion: 2025-09-29 📊 Progress: Implementation: 10/10 tasks complete (100%) QA Progress: 3/5 checks complete (60%) 📝 Last Progress Entry: [2025-09-28 13:20] QA testing in progress. Manual testing complete across Chrome, Firefox, Safari. Performance testing shows good results. Starting accessibility review. 🔧 Git Status: ✅ On correct branch: feature/cart-003-checkout ✅ Working tree clean ⬆️ 2 commits ahead of remote QA Checklist: - [x] Manual testing across browsers - [x] Performance testing - [x] Security review - [ ] Accessibility testing - [ ] Documentation verification 💡 NEXT STEPS: 1. Complete accessibility testing 2. Verify documentation is up to date 3. /sdd:story-validate - Perform final validation checks 4. /sdd:story-ship - Deploy when QA complete QA Commands: - Run accessibility audit: npm run a11y - Run security scan: npm run security-check - Run full test suite: vendor/bin/pest ``` ### Example 4: No Active Stories ```bash INPUT: /sdd:story-continue PROCESS: → Searching for active stories... → No stories in development → No stories in review → No stories in qa → Checking completed stories... → Found 5 completed stories OUTPUT: ✅ NO ACTIVE STORIES ════════════════════════════════════ All stories are complete or in backlog. Completed Stories: 5 Recently completed: - STORY-AUTH-001: Implement Login Form (completed 2025-09-28) - STORY-PROFILE-002: User Profile Settings (completed 2025-09-27) - STORY-CART-003: Shopping Cart (completed 2025-09-26) 💡 NEXT STEPS: 1. /sdd:story-new - Create a new story 2. /sdd:story-start [story-id] - Start a backlog story 3. /sdd:project-status - View full project status Backlog Stories Available: - STORY-SEARCH-004: Search Functionality - STORY-NOTIF-005: Notification System - STORY-EXPORT-006: Data Export Feature ``` ### Example 5: Branch Diverged ```bash INPUT: /sdd:story-continue PROCESS: → Searching for active stories... → Found: /docs/stories/development/STORY-API-004.md → Checking git status... → Branch has diverged from remote OUTPUT: 📖 RESUMING STORY ════════════════════════════════════ Story: STORY-API-004 - REST API Endpoints Status: development Branch: feature/api-004-endpoints 📅 Timeline: Started: 2025-09-28 Last Updated: 30 minutes ago 📊 Progress: Implementation: 4/10 tasks complete (40%) - [x] Feature implementation - [x] Unit tests - [x] Integration tests - [x] Error handling - [ ] Loading states - [ ] Browser tests - [ ] Performance optimization - [ ] Accessibility - [ ] Security review - [ ] Documentation 📝 Last Progress Entry: [2025-09-28 15:45] Implemented API endpoints for user resources. Added authentication middleware. 🔧 Git Status: ✅ On correct branch: feature/api-004-endpoints ⚠️ You have uncommitted changes (2 files modified) ⚠️ Branch has diverged from remote Local: 3 commits ahead Remote: 2 commits ahead Action required: Rebase or merge 💡 NEXT STEPS: ⚠️ IMPORTANT: Resolve branch divergence first 1. Option A: Rebase on remote git fetch origin git rebase origin/feature/api-004-endpoints 2. Option B: Merge remote changes git fetch origin git merge origin/feature/api-004-endpoints After resolving: 3. /sdd:story-implement STORY-API-004 - Continue implementation 4. /sdd:story-save - Commit progress ``` ## Edge Cases ### Multiple Stories Modified Simultaneously ``` IF multiple stories have same modification time: - SELECT story with most recent progress log entry - IF still tied: SELECT by alphabetical story ID - LOG: "Multiple stories modified recently, selected: [story-id]" ``` ### Story File Corrupted or Invalid ``` IF story file cannot be parsed: - LOG: "Warning: Story file appears corrupted" - SHOW: Available story metadata (ID, file path, mod time) - SUGGEST: Manual review of story file - OFFER: Try next most recent story ``` ### Git Repository Not Initialized ``` IF not in git repository: - SKIP git status checks - SHOW: Story information only - WARN: "Not in git repository, git status unavailable" - SUGGEST: Initialize git repository ``` ### Branch Deleted Remotely ``` IF story branch no longer exists on remote: - WARN: "Story branch not found on remote" - SUGGEST: Push branch to remote or create new branch - SHOW: Local branch status only ``` ### Working Directory Outside Project Root ``` IF cwd not in project root: - ATTEMPT to find project root - IF found: Continue from project root - IF not found: HALT with error - SUGGEST: Run from project root directory ``` ## Error Handling - **No story directories exist**: Return "Error: No story directories found. Run /sdd:project-init first" - **Story file read error**: Show "Error reading story file: [error]" and try next story - **Invalid story format**: Warn and show what could be parsed - **Git command fails**: Show git error and continue with story info only - **Branch switch fails**: Show error and offer manual switch instructions ## Performance Considerations - Scan directories once and cache file list - Use file modification time for quick sorting (no need to read all files) - Read only the most recent story file completely - Parse story file sections on-demand (not all at once) - Git commands run in parallel when possible - Cache git status results within command execution ## Related Commands - `/sdd:story-start [id]` - Start new story development - `/sdd:story-implement [id]` - Continue implementation - `/sdd:story-save` - Commit current progress - `/sdd:story-review` - Move story to code review - `/sdd:story-qa` - Move story to quality assurance - `/sdd:project-status` - View all project stories ## Constraints - ✅ MUST find most recently modified story - ✅ MUST display comprehensive story status - ✅ MUST check and display git status - ✅ MUST suggest context-appropriate next actions - ⚠️ NEVER modify story files (read-only) - ⚠️ NEVER create or delete files - 📋 SHOULD offer to switch branches if needed - 💡 SHOULD highlight uncommitted changes - 🔧 SHOULD detect and report sync issues