98 lines
4.9 KiB
HTML
98 lines
4.9 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
<title>ln-222-story-creator Workflow</title>
|
|
<link rel="stylesheet" href="../shared/css/diagram.css">
|
|
<script src="https://cdn.jsdelivr.net/npm/mermaid@10/dist/mermaid.min.js"></script>
|
|
<script>
|
|
mermaid.initialize({
|
|
startOnLoad: true,
|
|
theme: 'base',
|
|
themeVariables: {
|
|
primaryColor: '#4A90E2',
|
|
primaryTextColor: '#fff',
|
|
primaryBorderColor: '#2E5C8A',
|
|
lineColor: '#5C6BC0',
|
|
secondaryColor: '#7E57C2',
|
|
tertiaryColor: '#26A69A'
|
|
}
|
|
});
|
|
</script>
|
|
</head>
|
|
<body>
|
|
<div class="container">
|
|
<h1>ln-222-story-creator: Story Creator</h1>
|
|
|
|
<div class="diagram-section">
|
|
<h2>Workflow Diagram</h2>
|
|
<div class="mermaid">
|
|
graph TD
|
|
Start([Input: epicData, idealPlan, standardsResearch]) --> Phase1[Phase 1: Generate Story Documents]
|
|
|
|
Phase1 --> ReadTemplate[Read story_template_universal.md]
|
|
ReadTemplate --> GenerateDocs[For EACH Story in idealPlan:<br/>Generate 8 sections<br/>INSERT Standards Research]
|
|
GenerateDocs --> Phase2[Phase 2: Validate INVEST]
|
|
|
|
Phase2 --> ValidateAll[For EACH Story:<br/>Check I-N-V-E-S-T criteria]
|
|
ValidateAll --> CheckInvest{All pass?}
|
|
CheckInvest -->|No| Error[❌ STOP<br/>Report to orchestrator]
|
|
CheckInvest -->|Yes| Phase3[Phase 3: Show Preview]
|
|
|
|
Phase3 --> ShowPreview[Display:<br/>Story summaries<br/>Totals<br/>Standards Research<br/>INVEST: ✓]
|
|
ShowPreview --> Phase4[Phase 4: User Confirmation]
|
|
|
|
Phase4 --> CheckApprove{autoApprove?}
|
|
CheckApprove -->|true| Phase5
|
|
CheckApprove -->|false| WaitConfirm[Wait for 'confirm']
|
|
WaitConfirm --> Phase5[Phase 5: Create in Linear + Update Kanban]
|
|
|
|
Phase5 --> CreateLinear[For EACH Story:<br/>create_issue<br/>project=Epic, labels=user-story]
|
|
CreateLinear --> UpdateKanban[Update kanban_board.md:<br/>Epic Grouping Algorithm<br/>Update Epic Story Counters]
|
|
UpdateKanban --> Summary[Display Summary:<br/>URLs, Standards Research, Next Steps]
|
|
Summary --> End([Done])
|
|
|
|
style Start fill:#4A90E2,stroke:#2E5C8A,color:#fff
|
|
style End fill:#26A69A,stroke:#1B5E20,color:#fff
|
|
style Phase1 fill:#7E57C2,stroke:#4A148C,color:#fff
|
|
style Phase2 fill:#7E57C2,stroke:#4A148C,color:#fff
|
|
style Phase3 fill:#7E57C2,stroke:#4A148C,color:#fff
|
|
style Phase4 fill:#7E57C2,stroke:#4A148C,color:#fff
|
|
style Phase5 fill:#26A69A,stroke:#1B5E20,color:#fff
|
|
style Error fill:#F44336,stroke:#B71C1C,color:#fff
|
|
style CheckInvest fill:#FF9800,stroke:#E65100,color:#fff
|
|
style CheckApprove fill:#FF9800,stroke:#E65100,color:#fff
|
|
</div>
|
|
</div>
|
|
|
|
<div class="info-section">
|
|
<h2>Key Information</h2>
|
|
<ul>
|
|
<li><strong>Type:</strong> Worker (L3)</li>
|
|
<li><strong>Phases:</strong> 5 (Generate → Validate → Preview → Confirm → Create)</li>
|
|
<li><strong>Invoked by:</strong> ln-220-story-coordinator (Phase 5a, CREATE MODE)</li>
|
|
<li><strong>Input:</strong> epicData, idealPlan (5-10 Stories), standardsResearch, teamId, autoApprove</li>
|
|
<li><strong>Output:</strong> N Story URLs in Linear + kanban_board.md updated</li>
|
|
<li><strong>Validation:</strong> INVEST criteria (stop if ANY fails)</li>
|
|
<li><strong>Version:</strong> 1.0.0</li>
|
|
</ul>
|
|
</div>
|
|
|
|
<div class="notes-section">
|
|
<h2>Important Notes</h2>
|
|
<ul>
|
|
<li><strong>Phase 1:</strong> Generate 8-section Story documents for ALL Stories, INSERT Standards Research in Technical Notes → Library Research</li>
|
|
<li><strong>Phase 2:</strong> Validate INVEST (Independent, Negotiable, Valuable, Estimable, Small, Testable) for ALL Stories before creation</li>
|
|
<li><strong>Phase 3:</strong> Show preview with story summaries, totals (hours, tests), Standards Research included, INVEST validation passed</li>
|
|
<li><strong>Phase 4:</strong> autoApprove=true (automation mode) skips user confirmation, otherwise wait for "confirm"</li>
|
|
<li><strong>Phase 5:</strong> Create ALL Stories in Linear (project=Epic, labels=user-story, state=Backlog), update kanban_board.md with Epic Grouping Algorithm</li>
|
|
<li><strong>Standards Research:</strong> Inserted in EVERY Story (from ln-221-standards-researcher via ln-220 Phase 2), reused for consistency</li>
|
|
<li><strong>Epic Grouping:</strong> Reuse Epic header if exists (search by Epic number), don't duplicate</li>
|
|
<li><strong>Story Numbering:</strong> Sequential across ALL Epics (read Next Story from kanban_board.md Epic Story Counters)</li>
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
</body>
|
|
</html>
|