resolve-blocker
Resolve a blocker for a blocked story
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Resolve a blocker for a blocked story
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
Start autonomous story implementation
Releases a new version of SAGA (plugin + dashboard). Bumps version numbers, updates CHANGELOG.md, publishes dashboard to npm, and creates GitHub release. Use when the user says 'release', 'publish', 'new version', or 'version bump'.
Collaboratively plan a goal, then create stories (standalone or epic-based)
Create a new epic definition with vision and architecture
Generate stories from an epic
Initialize .saga/ directory structure for SAGA epic/story workflow
| name | resolve-blocker |
| description | Resolve a blocker for a blocked story |
| argument-hint | [story-id] |
| user-invocable | true |
| disable-model-invocation | true |
| allowed-tools | ["Bash","Read","Edit","Grep","Glob","AskUserQuestion","Task"] |
!node $SAGA_PLUGIN_ROOT/scripts/find.js "$0" --type story
The saga find command ran above. Handle the result:
data.storyId, continue to step 2question: "Which story's blocker do you want to resolve?"
header: "Story"
multiSelect: false
options: [
{label: "<storyId>", description: "<title> (Status: <status>)"}
...for each story in the matches array
]
After selection, continue with the selected story./task-list to see available stories.Compute paths to story files:
STORY_ID=<storyId from resolution>
WORKTREE="$SAGA_PROJECT_DIR/.saga/worktrees/$STORY_ID"
STORY_DIR=".saga/stories/$STORY_ID"
Story files within the worktree:
$WORKTREE/$STORY_DIR/story.json - Story definition$WORKTREE/$STORY_DIR/journal.md - Execution journalRead the story definition to understand what's being built:
cat $WORKTREE/$STORY_DIR/story.json
Extract:
Read the journal to find the blocker:
cat $WORKTREE/$STORY_DIR/journal.md
A blocker entry has this format:
## Blocker: [Brief title]
**Task**: [Which task is blocked]
**What I'm trying to do**: [Description]
**What I tried**: [Approaches attempted and why they didn't work]
**What I need**: [Specific decision or information required]
**Suggested options**: [If ideas exist, list them with pros/cons]
A resolution entry has this format:
## Resolution: [Reference to blocker title]
**Decision**: [Clear statement of the chosen approach]
**Implementation guidance**: [Specific steps or guidance for the worker]
**Rationale**: [Why this approach was chosen over alternatives]
**Approved**: [ISO timestamp]
## Blocker: sections in journal.md## Resolution: section existsIf no unresolved blocker found:
===============================================================
No Unresolved Blocker Found
===============================================================
Story $STORY_ID is not blocked. journal.md does not contain any
unresolved blocker entries.
If you expected a blocker:
- Check journal.md for the blocker entry format
- Ensure the implementation exited with BLOCKED status
To resume implementation: /execute-story $STORY_ID
===============================================================
STOP - do not continue
If blocker already resolved:
===============================================================
Blocker Already Resolved
===============================================================
The blocker "$BLOCKER_TITLE" already has a resolution in journal.md.
To resume implementation with the resolution applied:
/execute-story $STORY_ID
===============================================================
STOP - do not continue
Display the blocker context to the human:
===============================================================
Blocker Analysis: $BLOCKER_TITLE
===============================================================
Story: $STORY_ID ($STORY_TITLE)
Blocked Task: $BLOCKER_TASK
---------------------------------------------------------------
Problem Description
---------------------------------------------------------------
$BLOCKER_TRYING
---------------------------------------------------------------
What Was Tried
---------------------------------------------------------------
$BLOCKER_TRIED
---------------------------------------------------------------
What Is Needed
---------------------------------------------------------------
$BLOCKER_NEED
---------------------------------------------------------------
Worker's Suggested Options
---------------------------------------------------------------
$BLOCKER_OPTIONS (or "None provided")
===============================================================
Analyzing codebase to propose solutions...
===============================================================
This is the critical analysis phase. Use your full codebase access to:
Explore relevant code based on the blocker context:
Analyze the root cause:
Formulate solution options:
Present proposals to the human:
===============================================================
Proposed Solutions
===============================================================
Based on my analysis of the blocker and codebase:
## Option 1: [Name] (Recommended)
**Approach**: [Clear description of the approach]
**Pros**:
- [Benefit 1]
- [Benefit 2]
**Cons**:
- [Drawback 1]
- [Drawback 2]
**Implementation guidance**:
- [Specific step 1]
- [Specific step 2]
---------------------------------------------------------------
## Option 2: [Name]
**Approach**: [Clear description]
**Pros**:
- [Benefit 1]
**Cons**:
- [Drawback 1]
**Implementation guidance**:
- [Specific step 1]
===============================================================
CRITICAL: Do NOT proceed without explicit human approval.
Use AskUserQuestion to get the human's decision:
Which solution should I document as the resolution?
Options:
Wait for explicit response.
Append the resolution entry to journal.md using the Edit tool:
---
## Resolution: $BLOCKER_TITLE
**Decision**: $DECISION
**Implementation guidance**:
$GUIDANCE
**Rationale**: $RATIONALE
**Approved**: [Current ISO timestamp]
---
===============================================================
Resolution Documented
===============================================================
The resolution has been appended to journal.md.
Blocker: $BLOCKER_TITLE
Decision: $DECISION
To resume implementation with this resolution:
/execute-story $STORY_ID
The next worker will read the resolution from journal.md and
apply the guidance to complete the blocked task.
===============================================================