popilot 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (136) hide show
  1. package/README.md +372 -0
  2. package/adapters/claude-code/.claude/commands/_domain.md.hbs +32 -0
  3. package/adapters/claude-code/.claude/commands/analytics.md.hbs +55 -0
  4. package/adapters/claude-code/.claude/commands/daily.md.hbs +301 -0
  5. package/adapters/claude-code/.claude/commands/dev.md.hbs +62 -0
  6. package/adapters/claude-code/.claude/commands/handoff.md +258 -0
  7. package/adapters/claude-code/.claude/commands/market.md +120 -0
  8. package/adapters/claude-code/.claude/commands/metrics.md +123 -0
  9. package/adapters/claude-code/.claude/commands/oscar-loop.md +436 -0
  10. package/adapters/claude-code/.claude/commands/party.md +85 -0
  11. package/adapters/claude-code/.claude/commands/plan.md +43 -0
  12. package/adapters/claude-code/.claude/commands/research.md +203 -0
  13. package/adapters/claude-code/.claude/commands/retro.md +68 -0
  14. package/adapters/claude-code/.claude/commands/save.md +440 -0
  15. package/adapters/claude-code/.claude/commands/sessions.md +139 -0
  16. package/adapters/claude-code/.claude/commands/sprint.md +106 -0
  17. package/adapters/claude-code/.claude/commands/start.md +368 -0
  18. package/adapters/claude-code/.claude/commands/strategy.md +41 -0
  19. package/adapters/claude-code/.claude/commands/task.md +220 -0
  20. package/adapters/claude-code/.claude/commands/tracking.md +116 -0
  21. package/adapters/claude-code/.claude/commands/validate.md +58 -0
  22. package/adapters/claude-code/CLAUDE.md.hbs +208 -0
  23. package/adapters/claude-code/manifest.yaml +36 -0
  24. package/bin/cli.mjs +218 -0
  25. package/lib/adapter.mjs +68 -0
  26. package/lib/doctor.mjs +161 -0
  27. package/lib/hydrate.mjs +421 -0
  28. package/lib/prompt.mjs +78 -0
  29. package/lib/scaffold.mjs +155 -0
  30. package/lib/setup-wizard.mjs +331 -0
  31. package/lib/template-engine.mjs +164 -0
  32. package/lib/yaml-lite.mjs +476 -0
  33. package/package.json +30 -0
  34. package/scaffold/.context/.secrets.yaml.example +20 -0
  35. package/scaffold/.context/WORKFLOW.md.hbs +332 -0
  36. package/scaffold/.context/agents/TEMPLATE.md +115 -0
  37. package/scaffold/.context/agents/analyst.md.hbs +362 -0
  38. package/scaffold/.context/agents/developer.md.hbs +390 -0
  39. package/scaffold/.context/agents/handoff-specialist.md.hbs +292 -0
  40. package/scaffold/.context/agents/market-researcher.md.hbs +288 -0
  41. package/scaffold/.context/agents/ollie.md +323 -0
  42. package/scaffold/.context/agents/operations.md.hbs +293 -0
  43. package/scaffold/.context/agents/orchestrator.md.hbs +434 -0
  44. package/scaffold/.context/agents/planner.md.hbs +405 -0
  45. package/scaffold/.context/agents/qa.md.hbs +409 -0
  46. package/scaffold/.context/agents/researcher.md.hbs +330 -0
  47. package/scaffold/.context/agents/sage.md +349 -0
  48. package/scaffold/.context/agents/strategist.md.hbs +339 -0
  49. package/scaffold/.context/agents/tracking-governor.md.hbs +291 -0
  50. package/scaffold/.context/agents/validator.md.hbs +365 -0
  51. package/scaffold/.context/integrations/_registry.yaml +38 -0
  52. package/scaffold/.context/integrations/providers/channel_io.yaml +38 -0
  53. package/scaffold/.context/integrations/providers/corti.yaml +203 -0
  54. package/scaffold/.context/integrations/providers/ga4.yaml +116 -0
  55. package/scaffold/.context/integrations/providers/intercom.yaml +47 -0
  56. package/scaffold/.context/integrations/providers/linear.yaml +46 -0
  57. package/scaffold/.context/integrations/providers/mixpanel.yaml +73 -0
  58. package/scaffold/.context/integrations/providers/notebooklm.yaml +74 -0
  59. package/scaffold/.context/integrations/providers/notion.yaml +129 -0
  60. package/scaffold/.context/integrations/providers/prod_db.yaml +183 -0
  61. package/scaffold/.context/oscar/workflows/multi-agent.md +82 -0
  62. package/scaffold/.context/oscar/workflows/ollie-sage.md +128 -0
  63. package/scaffold/.context/oscar/workflows/session-git.md +71 -0
  64. package/scaffold/.context/oscar/workflows/setup.md +663 -0
  65. package/scaffold/.context/oscar/workflows/tracking.md +118 -0
  66. package/scaffold/.context/project.yaml.example +102 -0
  67. package/scaffold/.context/templates/dev-guide.md +217 -0
  68. package/scaffold/.context/templates/epic-spec.md +225 -0
  69. package/scaffold/.context/templates/guardrail.md +94 -0
  70. package/scaffold/.context/templates/handoff-checklist.md +197 -0
  71. package/scaffold/.context/templates/prd.md +80 -0
  72. package/scaffold/.context/templates/retrospective.md +78 -0
  73. package/scaffold/.context/templates/screen-spec.md +714 -0
  74. package/scaffold/.context/templates/sprint-plan.md +72 -0
  75. package/scaffold/.context/templates/sprint-status.yaml +109 -0
  76. package/scaffold/.context/templates/story-v2.md +228 -0
  77. package/scaffold/.context/templates/validation-report.md +99 -0
  78. package/scaffold/.gitignore.append +7 -0
  79. package/scaffold/spec-site/env.d.ts +7 -0
  80. package/scaffold/spec-site/index.html +14 -0
  81. package/scaffold/spec-site/package.json +20 -0
  82. package/scaffold/spec-site/src/App.vue +27 -0
  83. package/scaffold/spec-site/src/assets/icons/menu/ic_ads.svg +10 -0
  84. package/scaffold/spec-site/src/assets/icons/menu/ic_ads_on.svg +10 -0
  85. package/scaffold/spec-site/src/assets/icons/menu/ic_board.svg +14 -0
  86. package/scaffold/spec-site/src/assets/icons/menu/ic_board_on.svg +14 -0
  87. package/scaffold/spec-site/src/assets/icons/menu/ic_dashboard.svg +21 -0
  88. package/scaffold/spec-site/src/assets/icons/menu/ic_dashboard_on.svg +21 -0
  89. package/scaffold/spec-site/src/assets/icons/menu/ic_pricing.svg +20 -0
  90. package/scaffold/spec-site/src/assets/icons/menu/ic_pricing_on.svg +20 -0
  91. package/scaffold/spec-site/src/assets/icons/menu/ic_store.svg +11 -0
  92. package/scaffold/spec-site/src/assets/icons/menu/ic_store_on.svg +11 -0
  93. package/scaffold/spec-site/src/components/Accordion.vue +108 -0
  94. package/scaffold/spec-site/src/components/AppHeader.vue +304 -0
  95. package/scaffold/spec-site/src/components/Badge.vue +25 -0
  96. package/scaffold/spec-site/src/components/CoachingCard.vue +112 -0
  97. package/scaffold/spec-site/src/components/MemoSidebar.vue +239 -0
  98. package/scaffold/spec-site/src/components/MockupShell.vue +100 -0
  99. package/scaffold/spec-site/src/components/RuleTable.vue +99 -0
  100. package/scaffold/spec-site/src/components/ScenarioSwitcher.vue +103 -0
  101. package/scaffold/spec-site/src/components/SpecNav.vue +26 -0
  102. package/scaffold/spec-site/src/components/SpecSection.vue +59 -0
  103. package/scaffold/spec-site/src/components/SummaryGrid.vue +39 -0
  104. package/scaffold/spec-site/src/components/VersionBadge.vue +38 -0
  105. package/scaffold/spec-site/src/composables/useActiveSection.ts +53 -0
  106. package/scaffold/spec-site/src/composables/useMemo.ts +138 -0
  107. package/scaffold/spec-site/src/composables/useRetro.ts +313 -0
  108. package/scaffold/spec-site/src/composables/useScenario.ts +43 -0
  109. package/scaffold/spec-site/src/composables/useScenarioStore.ts +102 -0
  110. package/scaffold/spec-site/src/composables/useTurso.ts +160 -0
  111. package/scaffold/spec-site/src/composables/useUser.ts +25 -0
  112. package/scaffold/spec-site/src/data/navigation.ts +59 -0
  113. package/scaffold/spec-site/src/data/types.ts +90 -0
  114. package/scaffold/spec-site/src/data/wireframeRegistry.ts +25 -0
  115. package/scaffold/spec-site/src/layouts/SplitPaneLayout.vue +79 -0
  116. package/scaffold/spec-site/src/main.ts +10 -0
  117. package/scaffold/spec-site/src/pages/IndexPage.vue +66 -0
  118. package/scaffold/spec-site/src/pages/PolicyDetail.vue +215 -0
  119. package/scaffold/spec-site/src/pages/PolicyIndex.vue +74 -0
  120. package/scaffold/spec-site/src/pages/retro/RetroActions.vue +191 -0
  121. package/scaffold/spec-site/src/pages/retro/RetroBoard.vue +192 -0
  122. package/scaffold/spec-site/src/pages/retro/RetroCard.vue +131 -0
  123. package/scaffold/spec-site/src/pages/retro/RetroHeader.vue +287 -0
  124. package/scaffold/spec-site/src/pages/retro/RetroPage.vue +178 -0
  125. package/scaffold/spec-site/src/pages/shared/NoContentPlaceholder.vue +34 -0
  126. package/scaffold/spec-site/src/pages/shared/PlaceholderContent.vue +22 -0
  127. package/scaffold/spec-site/src/pages/shared/PlaceholderSpecPanel.vue +16 -0
  128. package/scaffold/spec-site/src/pages/shared/PolicyFallback.vue +145 -0
  129. package/scaffold/spec-site/src/pages/wireframe/WireframeShell.vue +151 -0
  130. package/scaffold/spec-site/src/router.ts +85 -0
  131. package/scaffold/spec-site/src/styles/base.css +21 -0
  132. package/scaffold/spec-site/src/styles/split-pane.css +143 -0
  133. package/scaffold/spec-site/src/styles/variables.css +47 -0
  134. package/scaffold/spec-site/src/utils/markdown.ts +197 -0
  135. package/scaffold/spec-site/tsconfig.json +20 -0
  136. package/scaffold/spec-site/vite.config.ts +18 -0
@@ -0,0 +1,118 @@
1
+ # Work Tracking & Session Management (Oscar Module)
2
+
3
+ > Referenced at session start/save, when work tracking is needed
4
+
5
+ ---
6
+
7
+ ## 1. Incomplete Work Tracking (Sisyphus Mode)
8
+
9
+ > *"Half-done is undone"* — Track started work to completion
10
+
11
+ ### Tracking Targets
12
+
13
+ | Work Type | Completion Criteria | Incomplete Notification |
14
+ |-----------|-------------------|------------------------|
15
+ | **PRD Writing** | One Question, OMTM, hypothesis all defined | "OMTM is missing from the PRD" |
16
+ | **Hypothesis Validation** | Before/After collected + judgment complete | "Validation period ended but no judgment" |
17
+ | **Sprint** | All KR measurements complete | "KR3 still not started" |
18
+ | **Handoff** | Checklist 100% complete | "3 items incomplete on handoff checklist" |
19
+ | **Retrospective** | Learnings + next actions derived | "Next actions missing from retrospective" |
20
+
21
+ ### Notification Timing
22
+
23
+ - **Immediate**: Work interruption detected (topic switch), incomplete items exist before session end
24
+ - **Periodic**: Previous incomplete items briefed at session start, D-7/D-3/D-1 deadline alerts
25
+ - **Proactive**: "You stopped writing the PRD — would you like to continue?"
26
+
27
+ ### Work Completion Enforcement
28
+
29
+ Oscar verifies whether work is "truly complete":
30
+
31
+ ```
32
+ User: "I'm done with the PRD"
33
+
34
+ 🎩 Oscar: Let me verify PRD completion.
35
+ ✅ One Question defined
36
+ ✅ Hypothesis written
37
+ ⚠️ OMTM not defined
38
+ ⚠️ Guard Rail not set
39
+
40
+ 🟡 Partially complete - 2 items need to be added
41
+ ```
42
+
43
+ ---
44
+
45
+ ## 2. Session Context Management
46
+
47
+ Automatically suggests context cleanup when sessions get long.
48
+
49
+ ### Trigger Conditions
50
+
51
+ | Condition | Suggestion |
52
+ |-----------|------------|
53
+ | 20+ conversation turns | "The session is getting long. Shall I clean up?" |
54
+ | 3+ topic switches | "We've covered multiple topics. Shall I distill the key points?" |
55
+ | New work started after task completion | "Shall I clean up the previous work and start fresh?" |
56
+ | Before session end | "Shall I save today's content? (`/save`)" |
57
+
58
+ ### Preservation Priority
59
+
60
+ ```
61
+ 🔴 Must Preserve
62
+ ├─ Current sprint goals/KR
63
+ ├─ In-progress work + status
64
+ ├─ Incomplete work list
65
+ ├─ Today's decisions
66
+ └─ Next action items
67
+
68
+ 🟡 Preserve Summary (key points only)
69
+ ├─ Analysis results (conclusions focused)
70
+ ├─ Key discussion points
71
+ └─ Inter-agent handoff content
72
+
73
+ 🟢 Can Omit
74
+ ├─ Detailed intermediate processes
75
+ ├─ Exploration/investigation processes
76
+ └─ Trial-and-error/revision processes
77
+ ```
78
+
79
+ ---
80
+
81
+ ## 3. Proactive Daily Log Intervention
82
+
83
+ > *"Important things must be recorded. Oscar suggests first."*
84
+
85
+ ### Recording Suggestion Triggers
86
+
87
+ | Importance | Situation | Oscar Action |
88
+ |------------|-----------|-------------|
89
+ | **High** | Policy decision, spec finalization, key insight | Immediately suggest "Shall I record this?" |
90
+ | **Medium** | Feature commit, epic/story creation, analysis complete | Suggest |
91
+ | **Low** | Typo fix, formatting, refactoring | Do not record |
92
+
93
+ ### Commit Auto-filtering
94
+
95
+ - **Record**: feat: / fix: / docs: (policy changes, spec additions)
96
+ - **Skip**: chore: / style: / refactor: / docs: (simple typos)
97
+
98
+ ### Log Types
99
+
100
+ | type | Description | Detection Pattern |
101
+ |------|-------------|-------------------|
102
+ | `decision` | Policy/direction decision | "decided to...", "let's go with..." |
103
+ | `commit` | Git commit | feat/fix/docs commit completed |
104
+ | `insight` | Data insight | "discovered that...", "the key is..." |
105
+ | `deploy` | Deployment complete | Deployment success message |
106
+ | `spec` | Spec finalized | Epic/Story finalized |
107
+ | `handoff` | Handoff | Inter-agent handover complete |
108
+
109
+ ### Log Addition Logic
110
+
111
+ 1. Read `.context/daily/{today's date}.yaml` (create if doesn't exist)
112
+ 2. Find the entry for the current session ID
113
+ 3. Append to `logs` array: `{time, type, content, context}`
114
+ 4. Update `_meta` and save
115
+
116
+ ### Natural Language Invocation Detection
117
+
118
+ "Organize what I did today", "daily work summary", "daily log" → Route to `/daily` skill
@@ -0,0 +1,102 @@
1
+ # Project Configuration - Generated/updated through Oscar Setup interview
2
+ # This file contains the core context of the project.
3
+ # The Setup Wizard (/start) automatically generates this file through an interview.
4
+
5
+ # ============================================================
6
+ # Project Basic Information
7
+ # ============================================================
8
+ project:
9
+ name: "" # {{project.name}}
10
+ tagline: "" # {{project.tagline}}
11
+ type: "" # brownfield | greenfield
12
+
13
+ # ============================================================
14
+ # Problem & Market
15
+ # ============================================================
16
+ problem:
17
+ core: ""
18
+ target: ""
19
+ alternatives: []
20
+ timing: ""
21
+
22
+ # ============================================================
23
+ # Solution & Differentiation
24
+ # ============================================================
25
+ solution:
26
+ approach: ""
27
+ differentiation: ""
28
+ outcome: []
29
+
30
+ # ============================================================
31
+ # Current State
32
+ # ============================================================
33
+ current_state:
34
+ stage: "" # idea | prototype | mvp | launched | pmf | growth
35
+ focus: ""
36
+ uncertainty: ""
37
+ next_milestone: ""
38
+
39
+ # ============================================================
40
+ # Validation & Learning
41
+ # ============================================================
42
+ validation:
43
+ confirmed: []
44
+ unknown: []
45
+ customer_feedback: ""
46
+
47
+ # ============================================================
48
+ # Operations Settings
49
+ # ============================================================
50
+ operations:
51
+ sprint:
52
+ enabled: true
53
+ current: 1
54
+ duration_weeks: 2
55
+ d_day: ""
56
+
57
+ domains: []
58
+ # Example:
59
+ # - { id: growth, name: "Growth", path: "domains/growth/" }
60
+ # - { id: marketing, name: "Marketing", path: "domains/marketing/" }
61
+
62
+ integrations:
63
+ ga4:
64
+ enabled: false
65
+ property_id: "" # {{integrations.ga4.property_id}}
66
+ notion:
67
+ enabled: false
68
+ workspace: ""
69
+ daily_page_id: ""
70
+ channel_io:
71
+ enabled: false
72
+ prod_db:
73
+ enabled: false
74
+ mcp_name: "" # {{integrations.prod_db.mcp_name}}
75
+ snapshot_mcp_name: "" # {{integrations.prod_db.snapshot_mcp_name}}
76
+ caution: [] # {{#each integrations.prod_db.caution}}
77
+ rules: ""
78
+ tunnel_script: ""
79
+ notebooklm:
80
+ enabled: false
81
+ notebook_name: "" # {{integrations.notebooklm.notebook_name}}
82
+ corti:
83
+ enabled: false
84
+ workspace_id: "" # {{integrations.corti.workspace_id}}
85
+ default_domain: "" # {{integrations.corti.default_domain}}
86
+
87
+ dev_scope:
88
+ repo_name: "" # {{dev_scope.repo_name}}
89
+ service_repo: "" # {{dev_scope.service_repo}}
90
+
91
+ spec_site:
92
+ title: "" # {{spec_site.title}}
93
+ deploy_url: "" # {{spec_site.deploy_url}}
94
+
95
+ # ============================================================
96
+ # Metadata
97
+ # ============================================================
98
+ _meta:
99
+ created_at: ""
100
+ created_by: "Oscar (Setup Wizard)"
101
+ last_interview: null
102
+ version: "1.0.0"
@@ -0,0 +1,217 @@
1
+ # Developer Agent Guide
2
+
3
+ > Development workflow guide for AI Agent Driven Development
4
+
5
+ ---
6
+
7
+ ## Overview
8
+
9
+ This guide defines the workflow that AI development agents (Claude Code, etc.) must follow when performing story-based development.
10
+
11
+ ---
12
+
13
+ ## Workflow
14
+
15
+ ```
16
+ ┌─────────────────────────────────────────────────────────────────┐
17
+ │ Dev Agent Workflow │
18
+ ├─────────────────────────────────────────────────────────────────┤
19
+ │ │
20
+ │ 1. Load Story │
21
+ │ └─→ Check for ready-for-dev in sprint-status.yaml │
22
+ │ │
23
+ │ 2. Understand Context │
24
+ │ ├─→ Understand user story │
25
+ │ ├─→ Review acceptance criteria │
26
+ │ └─→ Study Dev Notes │
27
+ │ │
28
+ │ 3. Review References │
29
+ │ ├─→ Check PRD │
30
+ │ ├─→ Check design │
31
+ │ └─→ Review existing implementations │
32
+ │ │
33
+ │ 4. Check Conflict Detection │
34
+ │ └─→ Resolve ⚠️ items first │
35
+ │ │
36
+ │ 5. Implement Tasks in Order │
37
+ │ └─→ Update checkboxes on subtask completion │
38
+ │ │
39
+ │ 6. Completion Processing │
40
+ │ ├─→ Update Dev Agent Record │
41
+ │ ├─→ Record modified file list │
42
+ │ └─→ Change status to review │
43
+ │ │
44
+ └─────────────────────────────────────────────────────────────────┘
45
+ ```
46
+
47
+ ---
48
+
49
+ ## Detailed Steps
50
+
51
+ ### Step 1: Load Story
52
+
53
+ 1. Check `sprint-status.yaml` file
54
+ 2. Select a story with `status: ready-for-dev`
55
+ 3. Load the story document
56
+
57
+ ```yaml
58
+ # sprint-status.yaml example
59
+ - id: E-01-S-01
60
+ title: "Landing page redesign"
61
+ status: ready-for-dev # ← Select this story
62
+ assignee: null
63
+ ```
64
+
65
+ ### Step 2: Understand Context
66
+
67
+ **Required checks**:
68
+
69
+ | Section | What to Check |
70
+ |---------|--------------|
71
+ | User Story | Understand role, feature, value |
72
+ | Acceptance Criteria | Understand Given-When-Then conditions |
73
+ | Dev Notes | Verify architecture pattern, tech stack |
74
+ | Task Breakdown | Determine implementation order |
75
+
76
+ ### Step 3: Review References
77
+
78
+ Check and understand all reference documents:
79
+
80
+ - **PRD**: Original business requirements
81
+ - **Design**: UI/UX details
82
+ - **Existing Implementation**: Code with similar patterns
83
+
84
+ ### Step 4: Check Conflict Detection
85
+
86
+ Check the "Conflict Detection" section in Dev Notes:
87
+
88
+ | Status | Meaning | Action |
89
+ |--------|---------|--------|
90
+ | ✅ None | No conflicts | Proceed |
91
+ | ⚠️ Caution | Potential conflict | **Resolve first, then proceed** |
92
+
93
+ ### Step 5: Implement Tasks in Order
94
+
95
+ **Rules**:
96
+
97
+ 1. **Do not change task order** - Dependencies have been considered
98
+ 2. **Do not add features beyond acceptance criteria** - Prevent scope creep
99
+ 3. **Update checkboxes on each subtask completion**
100
+
101
+ ```markdown
102
+ ### Task 1: Implement API endpoint `AC-01`
103
+ - [x] **1.1**: Create Controller ← Check on completion
104
+ - [x] **1.2**: Implement Service logic
105
+ - [ ] **1.3**: Connect Repository ← In progress
106
+ ```
107
+
108
+ ### Step 6: Completion Processing
109
+
110
+ 1. **Update Dev Agent Record**
111
+
112
+ ```markdown
113
+ ## Dev Agent Record
114
+
115
+ | Item | Value |
116
+ |------|-------|
117
+ | Created By Agent | Claude Opus 4.5 |
118
+ | Created Date | 2026-01-24 |
119
+ | Last Modified | 2026-01-24 |
120
+
121
+ ### Completion Notes
122
+ - Notable items: Maintained compatibility with existing API schema
123
+ - Changed parts: Added method to UserController
124
+ - Additional considerations: Cache invalidation logic needed
125
+ ```
126
+
127
+ 2. **Record modified file list**
128
+
129
+ ```markdown
130
+ ### Modified File List
131
+ - src/controllers/UserController.ts
132
+ - src/services/UserService.ts
133
+ - src/repositories/UserRepository.ts
134
+ - tests/UserController.test.ts (new)
135
+ ```
136
+
137
+ 3. **Change status**
138
+
139
+ Change status to `review` in `sprint-status.yaml`:
140
+
141
+ ```yaml
142
+ - id: E-01-S-01
143
+ status: review # ready-for-dev → review
144
+ ```
145
+
146
+ ---
147
+
148
+ ## Precautions
149
+
150
+ ### DO
151
+
152
+ - ✅ Implement tasks in order
153
+ - ✅ Only implement features defined in acceptance criteria
154
+ - ✅ Resolve conflict detection items first
155
+ - ✅ Record all modified files
156
+ - ✅ Write tests (when specified in Dev Notes)
157
+ - ✅ Follow code style guide
158
+
159
+ ### DON'T
160
+
161
+ - ❌ Change task order
162
+ - ❌ Add features beyond acceptance criteria
163
+ - ❌ Proceed ignoring ⚠️ conflicts
164
+ - ❌ Skip Dev Agent Record update
165
+ - ❌ Skip file list recording
166
+ - ❌ Skip status change
167
+
168
+ ---
169
+
170
+ ## Error Handling
171
+
172
+ ### When a Blocker Occurs During Implementation
173
+
174
+ 1. Revert story status to `backlog`
175
+ 2. Record blocker details in Dev Agent Record
176
+ 3. Notify PO/responsible person
177
+
178
+ ```markdown
179
+ ### Completion Notes
180
+ - Blocker: External API authentication key required
181
+ - Required action: Request API key from DevOps team
182
+ - Estimated resolution time: 1 day
183
+ ```
184
+
185
+ ### When Acceptance Criteria Are Unclear
186
+
187
+ 1. Stop implementation
188
+ 2. Request clarification via AskUserQuestion
189
+ 3. Update story document then proceed
190
+
191
+ ---
192
+
193
+ ## Quality Criteria
194
+
195
+ Pre-completion checks:
196
+
197
+ - [ ] All acceptance criteria met
198
+ - [ ] All task checkboxes completed
199
+ - [ ] Tests written and passing (if applicable)
200
+ - [ ] No linting errors
201
+ - [ ] Event logging verified (if applicable)
202
+ - [ ] Dev Agent Record updated
203
+ - [ ] Modified file list recorded
204
+
205
+ ---
206
+
207
+ ## Related Documents
208
+
209
+ | Document | Location |
210
+ |----------|----------|
211
+ | Story Template | `.context/templates/story-v2.md` |
212
+ | Sprint Status | `.context/sprints/s[N]/sprint-status.yaml` |
213
+ | Handoff Checklist | `.context/templates/handoff-checklist.md` |
214
+
215
+ ---
216
+
217
+ *Last updated: 2026-01-19*
@@ -0,0 +1,225 @@
1
+ # Epic Spec Template
2
+
3
+ > Detailed epic specification written by the PO
4
+ > This document must be finalized before Story creation
5
+
6
+ ---
7
+
8
+ ## [Epic ID]: [Epic Name]
9
+
10
+ ### Meta
11
+
12
+ | Item | Value |
13
+ |------|-------|
14
+ | **Epic ID** | E-XX |
15
+ | **Sprint** | SXX |
16
+ | **Status** | `draft` / `review` / `approved` |
17
+ | **PO Approval Date** | YYYY-MM-DD |
18
+ | **Assigned Developer** | - |
19
+
20
+ ---
21
+
22
+ ## 1. WHY: Why is this feature needed?
23
+
24
+ ### Problem Definition
25
+
26
+ [What problem are we trying to solve? Describe the specific situation]
27
+
28
+ ```
29
+ [Example]
30
+ Currently, users cannot determine "whether this is good or bad" even after viewing dashboard metrics.
31
+ They cannot tell what their key metrics look like relative to their goals, preventing them from making appropriate decisions.
32
+ ```
33
+
34
+ ### Supporting Data
35
+
36
+ | Metric | Value | Source |
37
+ |--------|-------|--------|
38
+ | [Problem severity metric] | [Value] | [GA4/DB/VOC] |
39
+
40
+ ```
41
+ [Example]
42
+ | Metric | Value | Source |
43
+ |--------|-------|--------|
44
+ | No action after entering detail page | 64% | GA4 |
45
+ | "Don't understand what the metrics mean" VOC | 12/month | Channel.io |
46
+ ```
47
+
48
+ ### Expected Outcome
49
+
50
+ [What changes are expected when this feature is deployed?]
51
+
52
+ ---
53
+
54
+ ## 2. WHAT: Detailed Requirements
55
+
56
+ ### Core Features
57
+
58
+ | # | Feature | Description | Required |
59
+ |---|---------|-------------|----------|
60
+ | 1 | [Feature name] | [Description] | Required/Optional |
61
+ | 2 | [Feature name] | [Description] | Required/Optional |
62
+
63
+ ### Business Logic
64
+
65
+ #### [Logic 1: Name]
66
+
67
+ ```
68
+ [Detailed formulas/rules/conditions]
69
+
70
+ Example:
71
+ Conversion rate = (Conversions / Visits) × 100
72
+ Goal achievement rate = (Current value / Target value) × 100
73
+
74
+ Conditions:
75
+ - If no target value → Show "Set a goal for more accuracy" guidance
76
+ - If achievement rate is below threshold → Show "Warning", red color
77
+ ```
78
+
79
+ #### [Logic 2: Name]
80
+
81
+ ```
82
+ [Detailed formulas/rules/conditions]
83
+ ```
84
+
85
+ ### User Scenarios
86
+
87
+ ```
88
+ [Concrete usage flow]
89
+
90
+ 1. User enters the dashboard page
91
+ 2. Sees "75% of goal achieved" displayed next to 15% conversion rate on the "Item A" card
92
+ 3. User understands "I have 25% left to reach my goal"
93
+ 4. ...
94
+ ```
95
+
96
+ ---
97
+
98
+ ## 3. HOW: Flow & Screens
99
+
100
+ ### User Flow
101
+
102
+ ```
103
+ [Start] → [Step 1] → [Step 2] → [Branch] → [Complete]
104
+
105
+ [Exception]
106
+ ```
107
+
108
+ ### Wireframe
109
+
110
+ ```
111
+ [ASCII or Figma link]
112
+
113
+ ┌────────────────────────────────────────┐
114
+ │ Item A 🟢 Good │
115
+ ├────────────────────────────────────────┤
116
+ │ │
117
+ │ Conversion Rate 15% │
118
+ │ ─────────────────────── │
119
+ │ 📊 75% of goal achieved │
120
+ │ │
121
+ │ [View Details →] │
122
+ └────────────────────────────────────────┘
123
+ ```
124
+
125
+ ### Design Requirements
126
+
127
+ | Item | Content |
128
+ |------|---------|
129
+ | Tone & Manner | [e.g., Friendly and easy expressions] |
130
+ | Colors | [e.g., Positive=green, Negative=red] |
131
+ | Reference Design | [Link] |
132
+
133
+ ---
134
+
135
+ ## 4. EDGE: Exceptions & Edge Cases
136
+
137
+ ### Data Exceptions
138
+
139
+ | Situation | Handling Method |
140
+ |-----------|----------------|
141
+ | Required input missing | [How to handle?] |
142
+ | Data value is 0 | [How to handle?] |
143
+ | No data available | [How to handle?] |
144
+
145
+ ### User Exceptions
146
+
147
+ | Situation | Handling Method |
148
+ |-----------|----------------|
149
+ | [Exception scenario] | [Handling method] |
150
+
151
+ ### System Exceptions
152
+
153
+ | Situation | Handling Method |
154
+ |-----------|----------------|
155
+ | API failure | [How to handle?] |
156
+ | Timeout | [How to handle?] |
157
+
158
+ ---
159
+
160
+ ## 5. Success Metrics
161
+
162
+ ### Success Criteria for This Epic
163
+
164
+ | Metric | Before | Target | Measurement Method |
165
+ |--------|--------|--------|-------------------|
166
+ | [Metric 1] | [Current value] | [Target value] | [Method] |
167
+ | [Metric 2] | [Current value] | [Target value] | [Method] |
168
+
169
+ ### GA4 Event Definitions
170
+
171
+ | Event Name | Trigger | Parameters |
172
+ |------------|---------|------------|
173
+ | [event_name] | [When] | [What] |
174
+
175
+ ---
176
+
177
+ ## 6. Dependencies & Constraints
178
+
179
+ ### Technical Dependencies
180
+
181
+ | Dependency | Status | Notes |
182
+ |-----------|--------|-------|
183
+ | [API/Data/Feature] | Confirmed/Unconfirmed | [Description] |
184
+
185
+ ### Constraints
186
+
187
+ - [Constraint 1: e.g., Maintain existing UI layout]
188
+ - [Constraint 2: e.g., No mobile support]
189
+
190
+ ---
191
+
192
+ ## 7. Story List (Planned)
193
+
194
+ > To be broken down by 📋 Penny after Epic Spec is finalized
195
+
196
+ | Story ID | Title | Size | Status |
197
+ |----------|-------|------|--------|
198
+ | E-XX-S-01 | [Title] | S/M/L | draft |
199
+ | E-XX-S-02 | [Title] | S/M/L | draft |
200
+
201
+ ---
202
+
203
+ ## Checklist
204
+
205
+ ### Pre-PO Approval Check
206
+
207
+ - [ ] Is the problem definition clear?
208
+ - [ ] Is the business logic specific? (formulas, conditions, etc.)
209
+ - [ ] Is there a wireframe/flow?
210
+ - [ ] Are edge cases defined?
211
+ - [ ] Are success metrics measurable?
212
+ - [ ] Are technical dependencies confirmed?
213
+
214
+ ### Approval
215
+
216
+ | Item | Confirmation |
217
+ |------|-------------|
218
+ | PO Approval | ☐ |
219
+ | Approval Date | YYYY-MM-DD |
220
+ | Notes | - |
221
+
222
+ ---
223
+
224
+ *Created: YYYY-MM-DD*
225
+ *Last Modified: YYYY-MM-DD*