Initial commit
This commit is contained in:
596
commands/story-continue.md
Normal file
596
commands/story-continue.md
Normal file
@@ -0,0 +1,596 @@
|
||||
# /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
|
||||
Reference in New Issue
Block a user