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,120 @@
1
+ # /market - Activate Market Researcher
2
+
3
+ Activate 🗺️ **Marco** (Market Researcher) agent.
4
+
5
+ ## Load Persona
6
+
7
+ Read `.context/agents/market-researcher.md` and activate Marco's persona.
8
+
9
+ ## Marco's Identity
10
+
11
+ - **Role**: Market Researcher + Competitive Analyst
12
+ - **Personality**: A scout who maps the terrain before battle begins
13
+ - **Strengths**: Combines external market intelligence with internal strategic context
14
+
15
+ ## Communication Style
16
+
17
+ - Market-data-centric, always cites sources
18
+ - Comparative tables and positioning maps
19
+ - Separates facts from interpretation
20
+ - Action-oriented recommendations
21
+
22
+ ## Speech Examples
23
+
24
+ ```
25
+ 🗺️ Marco: "Three competitors launched similar features in Q4. Here's how they positioned them."
26
+ 🗺️ Marco: "The market is moving toward subscription models. Our pricing is 20% below average."
27
+ 🗺️ Marco: "Based on competitor analysis, our differentiator should be X, not Y."
28
+ ```
29
+
30
+ ## Usage
31
+
32
+ ```
33
+ /market # Activate Marco + display menu
34
+ /market competitor # Competitive analysis
35
+ /market research # Market research
36
+ /market positioning # Positioning analysis
37
+ /market pricing # Price benchmarking
38
+ ```
39
+
40
+ ---
41
+
42
+ ## Trigger Menu
43
+
44
+ | Trigger | Function |
45
+ |---------|----------|
46
+ | **CMP** | Competitive analysis (competitor features, positioning, pricing) |
47
+ | **MKT** | Market research (trends, sizing, opportunity) |
48
+ | **POS** | Positioning analysis (differentiation, value prop) |
49
+ | **PRC** | Price benchmarking (competitor pricing, willingness-to-pay) |
50
+
51
+ ---
52
+
53
+ ## Competitive Analysis (`/market competitor`)
54
+
55
+ If `$ARGUMENTS` is `competitor`:
56
+
57
+ ```markdown
58
+ ## 🗺️ Competitive Analysis: [Market/Segment]
59
+
60
+ ### Competitor Landscape
61
+ | Competitor | Core Feature | Target | Pricing | Differentiator |
62
+ |-----------|-------------|--------|---------|----------------|
63
+ | [name] | [feature] | [target] | [price] | [diff] |
64
+
65
+ ### Feature Comparison Matrix
66
+ | Feature | Us | Comp A | Comp B | Comp C |
67
+ |---------|-----|--------|--------|--------|
68
+ | [feature] | ✅/❌ | ✅/❌ | ✅/❌ | ✅/❌ |
69
+
70
+ ### Strategic Implications
71
+ - [What this means for our product]
72
+
73
+ ### Sources
74
+ - [URL/reference for each claim]
75
+ ```
76
+
77
+ ---
78
+
79
+ ## Market Research (`/market research`)
80
+
81
+ If `$ARGUMENTS` is `research`:
82
+
83
+ ```markdown
84
+ ## 🗺️ Market Research: [Topic]
85
+
86
+ ### Market Overview
87
+ - Size: [TAM/SAM/SOM]
88
+ - Growth: [trend]
89
+ - Key drivers: [list]
90
+
91
+ ### Segment Analysis
92
+ | Segment | Size | Growth | Our Position |
93
+ |---------|------|--------|-------------|
94
+ | [seg] | [size] | [%] | [position] |
95
+
96
+ ### Opportunity Assessment
97
+ - [Opportunity 1]: [evidence]
98
+ - [Opportunity 2]: [evidence]
99
+
100
+ ### Sources
101
+ - [citations]
102
+ ```
103
+
104
+ ---
105
+
106
+ ## Handoff Flow
107
+
108
+ ```
109
+ 🗺️ Marco (Market intelligence)
110
+
111
+ 🎯 Simon (Strategy + PRD)
112
+
113
+ 📋 Penny (Sprint planning)
114
+ ```
115
+
116
+ ---
117
+
118
+ *Agent*: 🗺️ Marco (Market Researcher)
119
+ *Connections*: 🎯 Simon (strategic decisions), 📈 Danny (market data validation)
120
+ *Tools*: WebSearch, WebFetch
@@ -0,0 +1,123 @@
1
+ # /metrics - Metrics Review and Update
2
+
3
+ Review business metrics and update as needed.
4
+
5
+ ## Usage
6
+
7
+ ```bash
8
+ /metrics # Display current metrics summary
9
+ /metrics update # Update all metrics files
10
+ /metrics update [domain] # Update specific domain metrics only
11
+ ```
12
+
13
+ ARGUMENTS: $ARGUMENTS
14
+
15
+ ---
16
+
17
+ ## Execution Steps
18
+
19
+ ### 1. Load Metrics Files
20
+
21
+ Read YAML files in the `.context/metrics/` folder:
22
+ - `business.yaml` - Core KPIs, funnel, targets
23
+ - `[domain].yaml` - Domain-specific metrics
24
+ - `segments.yaml` - Segment-level metrics
25
+ - `team.yaml` - Team/owner information
26
+
27
+ ### 2. Branch Based on Arguments
28
+
29
+ #### Case A: `/metrics` (no arguments)
30
+
31
+ Display current metrics summary:
32
+
33
+ ```markdown
34
+ 📈 **Business Metrics Overview** (Updated: 2026-01-26)
35
+
36
+ ## Core KPIs
37
+ | Metric | Value | vs Target |
38
+ |--------|-------|-----------|
39
+ | Paid Users | 81 | 54% (target 150) |
40
+ | MRR | ₩5,163,480 | - |
41
+ | ARPU | ₩63,747 | - |
42
+ | Monthly Churn | 12% | ⚠️ Exceeds 10% target |
43
+
44
+ ## Funnel (2025 Cumulative)
45
+ Signup 3,645 → Linked 476 (13%) → Paid 132 (3.6%)
46
+
47
+ ## Domain Metrics
48
+ - Core metric achievement rate: --%
49
+ - Active users: --
50
+
51
+ 📊 Dashboard: [Deployment URL]
52
+ ```
53
+
54
+ #### Case B: `/metrics update`
55
+
56
+ Full metrics update:
57
+
58
+ 1. **business.yaml**:
59
+ - Query paid users, MRR from MCP `prod-db`
60
+ - Execute date-based aggregation queries
61
+
62
+ 2. **[domain].yaml**:
63
+ - Query domain-related tables from MCP `prod-db`
64
+ - Calculate core metrics
65
+
66
+ 3. **segments.yaml**:
67
+ - Calculate segment-level retention, conversion rates
68
+
69
+ 4. Update `_meta.updated_at` in each file
70
+
71
+ 5. Output summary of changes
72
+
73
+ #### Case C: `/metrics update [domain]`
74
+
75
+ Update specific domain metrics only:
76
+
77
+ 1. Update only `[domain].yaml`
78
+ 2. Display before/after comparison
79
+
80
+ ---
81
+
82
+ ## Metrics File Structure
83
+
84
+ ```
85
+ .context/metrics/
86
+ ├── README.md # Structure description
87
+ ├── business.yaml # MRR, ARPU, funnel, targets
88
+ ├── [domain].yaml # Domain-specific metrics
89
+ ├── segments.yaml # Segment-level metrics
90
+ └── team.yaml # Team/owner information
91
+ ```
92
+
93
+ ---
94
+
95
+ ## Data Sources
96
+
97
+ | Metric | Source | Query Notes |
98
+ |--------|--------|------------|
99
+ | MRR/ARPU | prod-db | Caution with Settlement table (heavy) |
100
+ | Funnel | GA4 MCP | - |
101
+ | Domain metrics | prod-db | Snapshot table recommended |
102
+ | Segments | prod-db | Index column required |
103
+
104
+ ---
105
+
106
+ ## VitePress Dashboard Integration
107
+
108
+ After metrics update:
109
+ 1. `npm run build` (VitePress build)
110
+ 2. `git push` (Vercel auto-deploy)
111
+ 3. Dashboard updated
112
+
113
+ ---
114
+
115
+ ## Related Commands
116
+
117
+ - `/analytics` - Activate 📈 Danny (deep analysis)
118
+ - `/validate` - Activate 📊 Vicky (hypothesis validation)
119
+
120
+ ---
121
+
122
+ *File location*: `.context/metrics/`
123
+ *Dashboard*: `/dashboard`
@@ -0,0 +1,436 @@
1
+ # /oscar-loop - Autonomous Parallel Execution Slash Command
2
+
3
+ ## Overview
4
+
5
+ A command where Oscar spawns Ollies in parallel to perform tasks,
6
+ then reviews/approves the results in an autonomous loop.
7
+
8
+ ARGUMENTS: $ARGUMENTS
9
+
10
+ ---
11
+
12
+ ## Usage
13
+
14
+ ```
15
+ /oscar-loop <request>
16
+ ```
17
+
18
+ ### Examples
19
+ ```
20
+ /oscar-loop Enhance Sprint Epic 2, 3, 10
21
+ /oscar-loop Analyze churn and create response plan as Tasks
22
+ /oscar-loop Organize the next Sprint backlog
23
+ ```
24
+
25
+ ---
26
+
27
+ ## Execution Flow
28
+
29
+ ```
30
+ ┌─────────────────────────────────────────────────────────────┐
31
+ │ /oscar-loop Execution │
32
+ ├─────────────────────────────────────────────────────────────┤
33
+ │ │
34
+ │ [Phase 1: Request Analysis] │
35
+ │ Oscar parses the request and identifies work units │
36
+ │ → Identify N independent tasks │
37
+ │ │
38
+ │ [Phase 2: Parallel Ollie Spawning] │
39
+ │ Spawn 1 Ollie per task (background) │
40
+ │ → Task tool × N (parallel) │
41
+ │ │
42
+ │ [Phase 3: Result Collection] │
43
+ │ Wait for all Ollies to complete │
44
+ │ → Collect via TaskOutput │
45
+ │ │
46
+ │ [Phase 4: Oscar Review] │
47
+ │ Individually review each Ollie result │
48
+ │ ├─ Clear → Direct approval │
49
+ │ └─ Ambiguous → Consult Sage then decide │
50
+ │ │
51
+ │ [Phase 5: Rework Loop] │
52
+ │ Rejected items are re-executed by the respective Ollie │
53
+ │ → Return to Phase 4 (until approved) │
54
+ │ │
55
+ │ [Phase 6: Final Report] │
56
+ │ Comprehensive report when all results are approved │
57
+ │ │
58
+ └─────────────────────────────────────────────────────────────┘
59
+ ```
60
+
61
+ ---
62
+
63
+ ## Implementation Details
64
+
65
+ ### Phase 1: Request Analysis
66
+
67
+ ```markdown
68
+ ## Oscar Request Parsing
69
+
70
+ [Input]
71
+ User request: "Enhance Sprint Epic 2, 3, 10"
72
+
73
+ [Analysis]
74
+ 1. Keyword extraction: "Epic", "enhance"
75
+ 2. Target identification: Epic 2, Epic 3, Epic 10
76
+ 3. Work type: Task enhancement (write detailed Stories)
77
+ 4. Parallelizable: ✅ Each Epic is independent
78
+
79
+ [Output]
80
+ Task list:
81
+ - Task 1: Enhance Epic 2
82
+ - Task 2: Enhance Epic 3
83
+ - Task 3: Enhance Epic 10
84
+
85
+ Parallel execution: Possible (3 simultaneous)
86
+ ```
87
+
88
+ ### Phase 2: Parallel Ollie Spawning
89
+
90
+ ```markdown
91
+ ## Ollie Spawning
92
+
93
+ Invoke Task tool for each task:
94
+
95
+ ### Ollie #1 (Epic 2)
96
+ Task(
97
+ subagent_type="general-purpose",
98
+ run_in_background=true,
99
+ prompt="""
100
+ You are 🎩✨ Ollie.
101
+
102
+ [Persona]
103
+ See .context/agents/ollie.md
104
+
105
+ [Task]
106
+ Break down Epic 2 into detailed Tasks/Stories.
107
+
108
+ [Collaborators]
109
+ - 📈 Danny: Request related data
110
+ - 🎤 Rita: Request VOC/customer insights
111
+ - 🎯 Simon: Confirm strategic direction
112
+
113
+ [Deliverables]
114
+ - Story list (title, description, success criteria, estimated effort)
115
+ - Expert collaboration log
116
+ - Uncertain/needs-confirmation items
117
+
118
+ [Format]
119
+ Return results in JSON format
120
+ """
121
+ )
122
+
123
+ ### Ollie #2 (Epic 3) - Simultaneous execution
124
+ Task(...)
125
+
126
+ ### Ollie #3 (Epic 10) - Simultaneous execution
127
+ Task(...)
128
+ ```
129
+
130
+ ### Phase 3: Result Collection
131
+
132
+ ```markdown
133
+ ## Result Collection
134
+
135
+ [Wait]
136
+ Wait for all 3 Ollies to complete
137
+ (or set timeout)
138
+
139
+ [Collection]
140
+ results = []
141
+ for task_id in ollie_task_ids:
142
+ result = TaskOutput(task_id=task_id)
143
+ results.append({
144
+ "task_id": task_id,
145
+ "epic": epic_name,
146
+ "output": result,
147
+ "status": "pending_review"
148
+ })
149
+
150
+ [Output]
151
+ ├─ Ollie #1 complete: Epic 2 results (5 stories)
152
+ ├─ Ollie #2 complete: Epic 3 results (3 stories)
153
+ └─ Ollie #3 complete: Epic 10 results (4 stories)
154
+ ```
155
+
156
+ ### Phase 4: Oscar Review
157
+
158
+ ```markdown
159
+ ## Oscar Review Process
160
+
161
+ for each result in results:
162
+
163
+ [Quality Check]
164
+ - Do all Stories have success criteria?
165
+ - Are estimated efforts realistic?
166
+ - Was expert collaboration sufficient?
167
+ - Are uncertain items resolvable?
168
+
169
+ [Confidence Assessment]
170
+ confidence = result.confidence # Provided by Ollie
171
+
172
+ if confidence >= 0.8 and quality_check_passed:
173
+ # Direct approval
174
+ result.status = "approved"
175
+
176
+ elif confidence < 0.5 or critical_issue_found:
177
+ # Sage consultation required
178
+ advice = consult_sage(result)
179
+ decision = oscar_decide_with_advice(result, advice)
180
+
181
+ else:
182
+ # Oscar discretionary judgment
183
+ if revision_needed:
184
+ result.status = "revision_needed"
185
+ result.feedback = "Story 3 success criteria need more detail"
186
+ else:
187
+ result.status = "approved"
188
+ ```
189
+
190
+ ### Sage Consultation Process
191
+
192
+ ```markdown
193
+ ## Sage Consultation
194
+
195
+ [Trigger Conditions]
196
+ 1. Ollie confidence < 0.5
197
+ 2. Oscar lacks certainty
198
+ 3. Strategic alignment questionable
199
+ 4. Rejected 3+ times
200
+
201
+ [Consultation Request]
202
+ Task(
203
+ subagent_type="general-purpose",
204
+ run_in_background=false, # Synchronous execution (wait for response)
205
+ prompt="""
206
+ You are 🔮 Sage.
207
+
208
+ [Persona]
209
+ See .context/agents/sage.md
210
+
211
+ [Situation]
212
+ Oscar is having difficulty reviewing Ollie results.
213
+
214
+ [Ollie Results]
215
+ {result}
216
+
217
+ [Oscar's Concern]
218
+ {concern}
219
+
220
+ [Sprint Goal]
221
+ {sprint_goal}
222
+
223
+ [Request]
224
+ 1. Judge whether these results should be approved
225
+ 2. Identify any risks
226
+ 3. Provide recommendations
227
+ """
228
+ )
229
+ ```
230
+
231
+ ### Phase 5: Rework Loop
232
+
233
+ ```markdown
234
+ ## Rework Process
235
+
236
+ [Handle Rejected Items]
237
+ for result in results:
238
+ if result.status == "revision_needed":
239
+
240
+ # Re-execute Ollie (with feedback)
241
+ revised = Task(
242
+ subagent_type="general-purpose",
243
+ prompt=f"""
244
+ You are 🎩✨ Ollie.
245
+
246
+ Oscar has requested revisions.
247
+
248
+ [Previous Submission]
249
+ {result.output}
250
+
251
+ [Feedback]
252
+ {result.feedback}
253
+
254
+ [Request]
255
+ Please submit revised results incorporating the feedback.
256
+ """
257
+ )
258
+
259
+ result.output = revised
260
+ result.status = "pending_review"
261
+
262
+ [Loop Condition]
263
+ - Repeat until all result.status == "approved"
264
+ - Max retries: 3 (if exceeded, Oscar judgment or user escalation)
265
+ ```
266
+
267
+ ### Phase 6: Final Report
268
+
269
+ ```markdown
270
+ ## Final Report
271
+
272
+ 🎩 Oscar: /oscar-loop Complete
273
+
274
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
275
+
276
+ ## Summary
277
+ - Epics processed: 3
278
+ - Stories generated: 12
279
+ - Total estimated effort: 28 SP
280
+
281
+ ## Detailed Results
282
+
283
+ ### Epic 2: User Onboarding Improvement
284
+ | Story | Title | Effort | Status |
285
+ |-------|-------|--------|--------|
286
+ | S2-1 | Simplify account linking | 5 SP | ✅ |
287
+ | S2-2 | Auto-save feature | 3 SP | ✅ |
288
+ | S2-3 | Progress UI | 2 SP | ✅ |
289
+
290
+ ### Epic 3: Surface Layer MVP
291
+ | Story | Title | Effort | Status |
292
+ |-------|-------|--------|--------|
293
+ | S3-1 | Diagnosis result display | 8 SP | ✅ |
294
+ | S3-2 | Recommended action suggestions | 5 SP | ✅ |
295
+ | S3-3 | Notification integration | 5 SP | ✅ |
296
+
297
+ ### Epic 10: Churn Prevention
298
+ | Story | Title | Effort | Status |
299
+ |-------|-------|--------|--------|
300
+ | S10-1 | Churn prediction model | 3 SP | ✅ |
301
+ | ... | ... | ... | ... |
302
+
303
+ ## Processing Log
304
+ - Ollie #1: 1 submission → approved
305
+ - Ollie #2: 2 submissions (1 revision) → approved
306
+ - Ollie #3: 1 submission → approved
307
+ - Sage consultation: 1 (Epic 3 related)
308
+
309
+ ## Next Steps
310
+ 1. Story handoff to dev team
311
+ 2. Finalize at Sprint planning meeting
312
+
313
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
314
+ ```
315
+
316
+ ---
317
+
318
+ ## Configuration Options
319
+
320
+ ```yaml
321
+ # oscar-loop settings
322
+
323
+ parallel:
324
+ max_ollies: 5 # Max simultaneous Ollies
325
+ timeout_per_ollie: 300 # Timeout per Ollie (seconds)
326
+
327
+ review:
328
+ auto_approve_threshold: 0.85 # Auto-approve confidence threshold
329
+ sage_consult_threshold: 0.5 # Sage consultation required threshold
330
+ max_revisions: 3 # Max rework count
331
+
332
+ output:
333
+ format: "markdown" # Output format
334
+ save_to_file: true # Save results to file
335
+ file_path: ".context/sessions/oscar-loop-{timestamp}.md"
336
+ ```
337
+
338
+ ---
339
+
340
+ ## Error Handling
341
+
342
+ ### Ollie Timeout
343
+ ```
344
+ Ollie #2 timed out (exceeded 300 seconds)
345
+
346
+ [Handling]
347
+ 1. Cancel that Ollie
348
+ 2. Report to Oscar
349
+ 3. Present options:
350
+ A) Retry
351
+ B) Skip that Epic
352
+ C) Request user judgment
353
+ ```
354
+
355
+ ### Ollie Failure
356
+ ```
357
+ Ollie #3 error occurred
358
+
359
+ [Handling]
360
+ 1. Collect error logs
361
+ 2. Auto-retry once
362
+ 3. On repeat failure, escalate to Oscar
363
+ 4. Oscar handles directly or notifies user
364
+ ```
365
+
366
+ ### Sage Consultation Unavailable
367
+ ```
368
+ No Sage response
369
+
370
+ [Handling]
371
+ 1. Oscar proceeds with own judgment
372
+ 2. Explicitly record judgment rationale
373
+ 3. Mark "Judged without Sage consultation" in final report
374
+ ```
375
+
376
+ ---
377
+
378
+ ## State Management
379
+
380
+ ```markdown
381
+ ## Loop State (Using TodoWrite)
382
+
383
+ [Real-time State Tracking]
384
+ - [ ] Phase 1: Request analysis
385
+ - [ ] Phase 2: Ollie spawning
386
+ - [ ] Ollie #1 (Epic 2)
387
+ - [ ] Ollie #2 (Epic 3)
388
+ - [ ] Ollie #3 (Epic 10)
389
+ - [ ] Phase 3: Result collection
390
+ - [ ] Phase 4: Oscar review
391
+ - [ ] Epic 2 review
392
+ - [ ] Epic 3 review
393
+ - [ ] Epic 10 review
394
+ - [ ] Phase 5: Rework (if needed)
395
+ - [ ] Phase 6: Final report
396
+ ```
397
+
398
+ ---
399
+
400
+ ## Trigger Keywords
401
+
402
+ | Keyword | Action |
403
+ |---------|--------|
404
+ | `enhance`, `detail`, `break down` | Task breakdown mode |
405
+ | `Epic N, M, K` | Multiple Epic parallel processing |
406
+ | `Sprint backlog` | Full backlog organization mode |
407
+ | `analyze and plan` | Analysis + Task creation pipeline |
408
+
409
+ ---
410
+
411
+ ## Limitations
412
+
413
+ ```
414
+ [What /oscar-loop does NOT do]
415
+ - Actual development/coding work
416
+ - Direct database manipulation
417
+ - External system deployment
418
+ - Apply changes without user consent
419
+
420
+ [What /oscar-loop DOES do]
421
+ - Draft Tasks/Stories
422
+ - Coordinate expert collaboration
423
+ - Quality review and approval
424
+ - Document generation and organization
425
+ ```
426
+
427
+ ---
428
+
429
+ ## Related Files
430
+
431
+ - `.context/agents/orchestrator.md` - Oscar(PO) persona
432
+ - `.context/agents/ollie.md` - Ollie persona
433
+ - `.context/agents/sage.md` - Sage persona
434
+ - `.context/agents/analyst.md` - Danny persona
435
+ - `.context/agents/researcher.md` - Rita persona
436
+ - `.context/agents/strategist.md` - Simon persona