Initial commit
This commit is contained in:
231
commands/story-blocked.md
Normal file
231
commands/story-blocked.md
Normal file
@@ -0,0 +1,231 @@
|
||||
# /sdd:story-blocked
|
||||
|
||||
Marks story as blocked and logs the reason.
|
||||
|
||||
## Implementation
|
||||
|
||||
**Format**: Imperative (comprehensive)
|
||||
**Actions**: Multi-step status update with tracking
|
||||
**Modifications**: Updates story file, adds progress log entry
|
||||
|
||||
### Input Parameters
|
||||
```
|
||||
/sdd:story-blocked [STORY-ID] [reason]
|
||||
```
|
||||
- `STORY-ID` (optional): Defaults to current active story
|
||||
- `reason` (optional): Prompted if not provided
|
||||
|
||||
### Execution Steps
|
||||
|
||||
#### 1. Identify Target Story
|
||||
- If `STORY-ID` provided, locate story file across all directories
|
||||
- Otherwise, determine current active story from git branch
|
||||
- Verify story exists and is not already completed
|
||||
|
||||
#### 2. Capture Blocking Details
|
||||
|
||||
Prompt user for:
|
||||
|
||||
```
|
||||
🚫 BLOCKING ISSUE
|
||||
================
|
||||
|
||||
Story: [ID] - [Title]
|
||||
Blocked since: [timestamp]
|
||||
|
||||
Reason for block:
|
||||
- [ ] Waiting on external dependency
|
||||
- [ ] Need clarification on requirements
|
||||
- [ ] Technical issue/bug
|
||||
- [ ] Waiting for code review
|
||||
- [ ] Infrastructure/environment issue
|
||||
- [ ] Missing access/permissions
|
||||
- [ ] Other: [specify]
|
||||
|
||||
Detailed description:
|
||||
[What exactly is blocking progress]
|
||||
|
||||
What's needed to unblock:
|
||||
[Specific action or information needed]
|
||||
|
||||
Who can help:
|
||||
[Person/team who can resolve]
|
||||
|
||||
Estimated resolution:
|
||||
[When might this be resolved]
|
||||
```
|
||||
|
||||
#### 3. Update Story File
|
||||
|
||||
Modifications to make:
|
||||
1. Update YAML frontmatter:
|
||||
```yaml
|
||||
status: blocked
|
||||
blocked_since: [ISO timestamp]
|
||||
blocked_reason: [selected reason]
|
||||
```
|
||||
|
||||
2. Add progress log entry:
|
||||
```markdown
|
||||
## [Timestamp] - BLOCKED
|
||||
|
||||
**Reason**: [selected reason]
|
||||
**Details**: [detailed description]
|
||||
**Needed to unblock**: [requirements]
|
||||
**Can help**: [person/team]
|
||||
**Estimated resolution**: [timeframe]
|
||||
|
||||
**Completed before block**:
|
||||
- [List work finished before blocking]
|
||||
```
|
||||
|
||||
3. Add `[BLOCKED]` tag to story title if not present
|
||||
|
||||
#### 4. Suggest Alternative Work
|
||||
|
||||
```
|
||||
💡 WHILE BLOCKED, YOU COULD:
|
||||
|
||||
Related work:
|
||||
- [ ] Write tests for completed parts
|
||||
- [ ] Document what's built so far
|
||||
- [ ] Refactor existing code
|
||||
|
||||
Other stories:
|
||||
- [Story X]: Ready to start
|
||||
- [Story Y]: Quick bug fix
|
||||
|
||||
Improvements:
|
||||
- Update documentation
|
||||
- Fix technical debt
|
||||
- Review other PRs
|
||||
```
|
||||
|
||||
#### 5. Track Blocked Time
|
||||
|
||||
Calculate and display:
|
||||
|
||||
```
|
||||
⏱️ BLOCKED TIME TRACKING
|
||||
|
||||
This story:
|
||||
- Previously blocked: [X hours total]
|
||||
- Current block: Started [timestamp]
|
||||
|
||||
All stories this week:
|
||||
- Total blocked time: [X hours]
|
||||
- Main block reasons: [Top 3]
|
||||
```
|
||||
|
||||
Update story metadata:
|
||||
```yaml
|
||||
blocked_time_total: [X hours]
|
||||
blocked_instances: [count]
|
||||
```
|
||||
|
||||
#### 6. Create Follow-up Reminder
|
||||
|
||||
```
|
||||
📅 FOLLOW-UP SCHEDULED
|
||||
|
||||
Check status in: [X hours/days]
|
||||
Reminder for: [date/time]
|
||||
|
||||
Auto-check will:
|
||||
- Verify if still blocked
|
||||
- Suggest escalation if needed
|
||||
- Track resolution time
|
||||
```
|
||||
|
||||
Add to story metadata:
|
||||
```yaml
|
||||
follow_up_date: [ISO timestamp]
|
||||
```
|
||||
|
||||
#### 7. Pattern Detection
|
||||
|
||||
If same blocking reason appears multiple times:
|
||||
|
||||
```
|
||||
⚠️ PATTERN DETECTED
|
||||
|
||||
This is the [Nth] time blocked by:
|
||||
[Similar blocking reason]
|
||||
|
||||
Consider:
|
||||
- Process improvement
|
||||
- Better communication
|
||||
- Different approach
|
||||
```
|
||||
|
||||
Add note to project context or retrospective file.
|
||||
|
||||
### Output Format
|
||||
|
||||
#### Block Confirmation
|
||||
|
||||
```
|
||||
✅ STORY BLOCKED
|
||||
===============
|
||||
|
||||
Story: [STORY-ID] - [Title]
|
||||
Blocked since: [timestamp]
|
||||
Reason: [selected reason]
|
||||
|
||||
📊 BLOCK REPORT
|
||||
==============
|
||||
|
||||
Current blocks:
|
||||
1. [Story ID]: [Reason] - [Duration]
|
||||
2. [Story ID]: [Reason] - [Duration]
|
||||
|
||||
This week's blocks:
|
||||
- External deps: [X hours]
|
||||
- Clarifications: [X hours]
|
||||
- Technical: [X hours]
|
||||
|
||||
Impact:
|
||||
- Velocity reduced by [X]%
|
||||
- [X] stories delayed
|
||||
```
|
||||
|
||||
#### Unblock Procedure
|
||||
|
||||
For future reference:
|
||||
|
||||
When running `/sdd:story-continue` or `/sdd:story-unblock`:
|
||||
```
|
||||
✅ UNBLOCKED!
|
||||
============
|
||||
|
||||
Was blocked for: [total time]
|
||||
Resolution: [what resolved it]
|
||||
|
||||
Actions taken:
|
||||
- Remove [BLOCKED] tag
|
||||
- Update status to previous state
|
||||
- Log resolution in progress
|
||||
- Resume work
|
||||
```
|
||||
|
||||
#### Escalation Path
|
||||
|
||||
If blocked > 4 hours:
|
||||
```
|
||||
⚠️ ESCALATION RECOMMENDED
|
||||
========================
|
||||
|
||||
Blocked for: [X hours]
|
||||
|
||||
Actions:
|
||||
- Notify: [escalation contact]
|
||||
- Consider: Alternative approach
|
||||
- Document: For retrospective
|
||||
```
|
||||
|
||||
### Notes
|
||||
- Modifies story YAML frontmatter and progress log
|
||||
- Tracks blocking time in metadata
|
||||
- Suggests productive alternatives
|
||||
- Does not automatically switch stories (waits for user decision)
|
||||
- Creates follow-up reminder for resolution checking
|
||||
Reference in New Issue
Block a user