From cascade-mcp
Writes or refines Jira stories using Figma designs, Confluence docs, Google Docs, and parent epics. Gathers resources, analyzes frames, runs scope analysis with markers, generates User Story, Acceptance Criteria (Gherkin), NFRs, and notes.
npx claudepluginhub bitovi/cascade-mcp --plugin cascade-mcpThis skill uses the workspace's default tool permissions.
Write or refine a Jira story description using comprehensive context from all linked sources (Figma, Confluence, Google Docs, parent epic).
Generates full Jira stories from next unwritten shell story in epic: User Story, Gherkin AC, NFRs, notes. Loads Figma screens, creates ticket, adds blockers, marks shell complete.
Generates user stories with Given/When/Then acceptance criteria following INVEST principles from PRDs, feature-persona-goal inputs, narratives, Jira epics, or screenshots.
Generates user stories via 3 C's and INVEST criteria with titles, descriptions, design links, and acceptance criteria. For feature breakdown into sprint-sized backlog items.
Share bugs, ideas, or general feedback.
Write or refine a Jira story description using comprehensive context from all linked sources (Figma, Confluence, Google Docs, parent epic).
Use when the user wants to:
Typical triggers:
PROJ-456) โ the story to write/refineCall MCP tool extract-linked-resources with the Jira issue URL (e.g., https://myco.atlassian.net/browse/PROJ-456).
Save the returned markdown+frontmatter directly to .temp/cascade/context/jira-PROJ-456.md.
Parse discoveredLinks from frontmatter to build .temp/cascade/context/to-load.md.
For each non-Figma URL in to-load.md (prioritize parent and blocks relationships first):
extract-linked-resources with the URL.temp/cascade/context/{type}-{identifier}.mddiscoveredLinks from frontmatter โ add any new URLs to to-load.mdFor each Figma URL:
figma-batch-load with the URLcurl -o .temp/cascade/figma/{fileKey}/batch.zip "{downloadUrl}"
cd .temp/cascade/figma/{fileKey} && unzip -o batch.zip
For each frame in manifest.json, launch a subagent with the analyze-figma-frame sub-skill.
Pass only the frame directory path (e.g., .temp/cascade/figma/{fileKey}/frames/{dirName}/). Do NOT read context.md, structure.xml, or image.png yourself โ the subagent reads all files internally.
Run all subagents in parallel.
Use analyze-feature-scope sub-skill to produce .temp/cascade/scope-analysis.md. This categorizes every feature by scope (โ/โ
/โฌ/โ/โ/๐ฌ) using the epic context as the primary source of truth.
Self-healing check: If the analyze-feature-scope sub-skill recommends CLARIFY (>5 unanswered โ and no previous scope analysis), warn the user that there are many open questions. Suggest running generate-behavior-questions first to get answers before writing the story. Proceed only if the user confirms.
Call atlassian-get-issue to get the current story description (if it exists). This is needed to:
Using the scope analysis (.temp/cascade/scope-analysis.md), frame analyses, content summaries, Figma comments, and existing description (if any), write the story description.
## User Story Statement
As a {role}, I want {capability} so that {benefit}.
## Supporting Artifacts
- **Figma**: [Screen Name](figma-url) | [Another Screen](figma-url)
- **Confluence**: [Spec Title](confluence-url)
- **Epic**: [PROJ-123](jira-url): {epic summary}
<details>
<summary>Scope Analysis</summary>
### {Feature Area}
- โ **{Feature}**: {description} โ [Screen Name](figma-url)
- โ
**{Existing Feature}**: {description}
- โ **{Out of Scope}**: {why excluded}
- โ **{Open Question}**: {what needs clarification}
- ๐ฌ **{Answered Question}**: {question} โ {answer from comments/context}
</details>
## Non-Functional Requirements
{ONLY include if explicitly mentioned in context โ do NOT invent}
- Performance: {specific requirement from specs}
- Accessibility: {specific requirement from specs}
## Developer Notes
{ONLY include if explicitly mentioned in context โ do NOT invent}
- {specific technical guidance from Confluence, Google Docs, or Jira comments}
## Acceptance Criteria
**GIVEN** {precondition}:
[View in Figma](figma-url)
- **WHEN** {user action}, **THEN**
- {expected result 1}
- {expected result 2}
[View state in Figma](figma-url)
- **WHEN** {subsequent action}, **THEN**
- {nested expected result}
**GIVEN** {another precondition}:
- **WHEN** {user action}, **THEN**
- {expected result}
Note on Scope Analysis formatting: Wrap the Scope Analysis content in <details><summary>Scope Analysis</summary>...</details> as shown above. The MCP tool will convert this to a collapsible expand panel in Jira automatically.
When the story already has a description:
Call MCP tool atlassian-update-issue-description to write the story description to Jira.
Present the updated description to the user and confirm the update was successful.
example-story.md in this skill folder for a complete worked example of the expected output format, including nested Gherkin, scope markers, and <details> wrapping.temp/cascade/ already has data from a prior generate-behavior-questions run, reuse it instead of re-fetching everything