popilot 0.5.0 → 0.7.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 (171) hide show
  1. package/adapters/codex/.codex/commands/_domain.md.hbs +33 -0
  2. package/adapters/codex/.codex/commands/analytics.md.hbs +55 -0
  3. package/adapters/codex/.codex/commands/daily.md.hbs +301 -0
  4. package/adapters/codex/.codex/commands/dev.md.hbs +62 -0
  5. package/adapters/codex/.codex/commands/gtm.md +82 -0
  6. package/adapters/codex/.codex/commands/handoff.md +259 -0
  7. package/adapters/codex/.codex/commands/market.md +120 -0
  8. package/adapters/codex/.codex/commands/metrics.md +123 -0
  9. package/adapters/codex/.codex/commands/oscar-loop.md +436 -0
  10. package/adapters/codex/.codex/commands/party.md +85 -0
  11. package/adapters/codex/.codex/commands/plan.md +43 -0
  12. package/adapters/codex/.codex/commands/research.md +203 -0
  13. package/adapters/codex/.codex/commands/retro.md +68 -0
  14. package/adapters/codex/.codex/commands/save.md +440 -0
  15. package/adapters/codex/.codex/commands/sessions.md +139 -0
  16. package/adapters/codex/.codex/commands/sprint.md +106 -0
  17. package/adapters/codex/.codex/commands/start.md +396 -0
  18. package/adapters/codex/.codex/commands/strategy.md +41 -0
  19. package/adapters/codex/.codex/commands/task.md +220 -0
  20. package/adapters/codex/.codex/commands/tracking.md +116 -0
  21. package/adapters/codex/.codex/commands/validate.md +58 -0
  22. package/adapters/codex/AGENTS.md.hbs +210 -0
  23. package/adapters/codex/manifest.yaml +36 -0
  24. package/adapters/gemini/.gemini/commands/_domain.md.hbs +33 -0
  25. package/adapters/gemini/.gemini/commands/analytics.md.hbs +55 -0
  26. package/adapters/gemini/.gemini/commands/daily.md.hbs +301 -0
  27. package/adapters/gemini/.gemini/commands/dev.md.hbs +62 -0
  28. package/adapters/gemini/.gemini/commands/gtm.md +82 -0
  29. package/adapters/gemini/.gemini/commands/handoff.md +259 -0
  30. package/adapters/gemini/.gemini/commands/market.md +120 -0
  31. package/adapters/gemini/.gemini/commands/metrics.md +123 -0
  32. package/adapters/gemini/.gemini/commands/oscar-loop.md +436 -0
  33. package/adapters/gemini/.gemini/commands/party.md +85 -0
  34. package/adapters/gemini/.gemini/commands/plan.md +43 -0
  35. package/adapters/gemini/.gemini/commands/research.md +203 -0
  36. package/adapters/gemini/.gemini/commands/retro.md +68 -0
  37. package/adapters/gemini/.gemini/commands/save.md +440 -0
  38. package/adapters/gemini/.gemini/commands/sessions.md +139 -0
  39. package/adapters/gemini/.gemini/commands/sprint.md +106 -0
  40. package/adapters/gemini/.gemini/commands/start.md +396 -0
  41. package/adapters/gemini/.gemini/commands/strategy.md +41 -0
  42. package/adapters/gemini/.gemini/commands/task.md +220 -0
  43. package/adapters/gemini/.gemini/commands/tracking.md +116 -0
  44. package/adapters/gemini/.gemini/commands/validate.md +58 -0
  45. package/adapters/gemini/GEMINI.md.hbs +210 -0
  46. package/adapters/gemini/manifest.yaml +36 -0
  47. package/bin/cli.mjs +215 -4
  48. package/lib/doctor.mjs +38 -1
  49. package/lib/hydrate.mjs +15 -0
  50. package/lib/industry-presets.mjs +135 -0
  51. package/lib/scaffold.mjs +5 -0
  52. package/lib/setup-wizard.mjs +71 -2
  53. package/package.json +1 -1
  54. package/scaffold/.context/agents/TEMPLATE.md +14 -0
  55. package/scaffold/.context/agents/analyst.md.hbs +3 -3
  56. package/scaffold/.context/agents/developer.md.hbs +5 -5
  57. package/scaffold/.context/agents/gtm-strategist.md.hbs +3 -3
  58. package/scaffold/.context/agents/handoff-specialist.md.hbs +18 -18
  59. package/scaffold/.context/agents/market-researcher.md.hbs +6 -6
  60. package/scaffold/.context/agents/orchestrator.md.hbs +8 -8
  61. package/scaffold/.context/agents/planner.md.hbs +6 -6
  62. package/scaffold/.context/agents/qa.md.hbs +5 -5
  63. package/scaffold/.context/agents/researcher.md.hbs +33 -6
  64. package/scaffold/.context/agents/strategist.md.hbs +8 -8
  65. package/scaffold/.context/agents/tracking-governor.md.hbs +2 -2
  66. package/scaffold/.context/project.yaml.example +25 -0
  67. package/scaffold/mcp-pm/package.json +19 -0
  68. package/scaffold/mcp-pm/src/api-client.ts +69 -0
  69. package/scaffold/mcp-pm/src/index.ts +660 -0
  70. package/scaffold/mcp-pm/tsconfig.json +14 -0
  71. package/scaffold/pm-api/package.json +21 -0
  72. package/scaffold/pm-api/sql/schema-core.sql +331 -0
  73. package/scaffold/pm-api/sql/schema-docs.sql +25 -0
  74. package/scaffold/pm-api/sql/schema-meetings.sql +17 -0
  75. package/scaffold/pm-api/sql/schema-rewards.sql +16 -0
  76. package/scaffold/pm-api/src/auth.ts +28 -0
  77. package/scaffold/pm-api/src/blockchain/adapter.ts +20 -0
  78. package/scaffold/pm-api/src/blockchain/tron.ts +62 -0
  79. package/scaffold/pm-api/src/db/adapter.ts +36 -0
  80. package/scaffold/pm-api/src/db/turso.ts +147 -0
  81. package/scaffold/pm-api/src/index.ts +114 -0
  82. package/scaffold/pm-api/src/mcp-tools/dashboard.ts +40 -0
  83. package/scaffold/pm-api/src/mcp-tools/epic.ts +67 -0
  84. package/scaffold/pm-api/src/mcp-tools/event.ts +89 -0
  85. package/scaffold/pm-api/src/mcp-tools/index.ts +11 -0
  86. package/scaffold/pm-api/src/mcp-tools/initiative.ts +51 -0
  87. package/scaffold/pm-api/src/mcp-tools/memo.ts +164 -0
  88. package/scaffold/pm-api/src/mcp-tools/notification.ts +37 -0
  89. package/scaffold/pm-api/src/mcp-tools/retro.ts +183 -0
  90. package/scaffold/pm-api/src/mcp-tools/sprint.ts +204 -0
  91. package/scaffold/pm-api/src/mcp-tools/standup.ts +136 -0
  92. package/scaffold/pm-api/src/mcp-tools/story.ts +230 -0
  93. package/scaffold/pm-api/src/mcp-tools/task.ts +187 -0
  94. package/scaffold/pm-api/src/mcp-tools/utils.ts +83 -0
  95. package/scaffold/pm-api/src/mcp.ts +871 -0
  96. package/scaffold/pm-api/src/nudge.ts +283 -0
  97. package/scaffold/pm-api/src/routes/auth.ts +32 -0
  98. package/scaffold/pm-api/src/routes/v2-activity.ts +27 -0
  99. package/scaffold/pm-api/src/routes/v2-admin.ts +165 -0
  100. package/scaffold/pm-api/src/routes/v2-dashboard.ts +189 -0
  101. package/scaffold/pm-api/src/routes/v2-docs.ts +34 -0
  102. package/scaffold/pm-api/src/routes/v2-initiatives.ts +118 -0
  103. package/scaffold/pm-api/src/routes/v2-kickoff.ts +265 -0
  104. package/scaffold/pm-api/src/routes/v2-meetings.ts +324 -0
  105. package/scaffold/pm-api/src/routes/v2-memos.ts +257 -0
  106. package/scaffold/pm-api/src/routes/v2-nav.ts +260 -0
  107. package/scaffold/pm-api/src/routes/v2-notifications.ts +79 -0
  108. package/scaffold/pm-api/src/routes/v2-page-content.ts +35 -0
  109. package/scaffold/pm-api/src/routes/v2-pm.ts +380 -0
  110. package/scaffold/pm-api/src/routes/v2-policy.ts +58 -0
  111. package/scaffold/pm-api/src/routes/v2-retro.ts +221 -0
  112. package/scaffold/pm-api/src/routes/v2-rewards.ts +132 -0
  113. package/scaffold/pm-api/src/routes/v2-scenarios.ts +48 -0
  114. package/scaffold/pm-api/src/routes/v2-search.ts +32 -0
  115. package/scaffold/pm-api/src/routes/v2-standup.ts +127 -0
  116. package/scaffold/pm-api/src/routes/v2-user.ts +38 -0
  117. package/scaffold/pm-api/src/types.ts +11 -0
  118. package/scaffold/pm-api/src/utils/activity.ts +22 -0
  119. package/scaffold/pm-api/src/utils/admin.ts +9 -0
  120. package/scaffold/pm-api/src/utils/agent-notify.ts +62 -0
  121. package/scaffold/pm-api/src/utils/assignee.ts +69 -0
  122. package/scaffold/pm-api/src/utils/db.ts +45 -0
  123. package/scaffold/pm-api/src/utils/initiative.ts +23 -0
  124. package/scaffold/pm-api/src/utils/sprint-lifecycle.ts +96 -0
  125. package/scaffold/pm-api/tsconfig.json +15 -0
  126. package/scaffold/pm-api/wrangler.toml.hbs +11 -0
  127. package/scaffold/spec-site/package-lock.json +40 -0
  128. package/scaffold/spec-site/package.json +4 -1
  129. package/scaffold/spec-site/src/api/types.ts +6 -0
  130. package/scaffold/spec-site/src/components/AppHeader.vue +429 -55
  131. package/scaffold/spec-site/src/components/MemberSelect.vue +48 -0
  132. package/scaffold/spec-site/src/components/NotificationDropdown.vue +116 -0
  133. package/scaffold/spec-site/src/components/SearchModal.vue +102 -0
  134. package/scaffold/spec-site/src/components/VelocityChart.vue +77 -0
  135. package/scaffold/spec-site/src/composables/pmTypes.ts +15 -2
  136. package/scaffold/spec-site/src/composables/useDashboard.ts +221 -0
  137. package/scaffold/spec-site/src/composables/useMediaQuery.ts +28 -0
  138. package/scaffold/spec-site/src/composables/useNotification.ts +200 -0
  139. package/scaffold/spec-site/src/composables/usePmStore.ts +48 -1
  140. package/scaffold/spec-site/src/composables/useRetro.ts +6 -0
  141. package/scaffold/spec-site/src/composables/useStandup.ts +201 -0
  142. package/scaffold/spec-site/src/composables/useTheme.ts +37 -0
  143. package/scaffold/spec-site/src/composables/useUser.ts +19 -1
  144. package/scaffold/spec-site/src/features.ts +108 -0
  145. package/scaffold/spec-site/src/pages/AdminPage.vue +299 -0
  146. package/scaffold/spec-site/src/pages/DashboardPage.vue +650 -0
  147. package/scaffold/spec-site/src/pages/DocsHub.vue +157 -0
  148. package/scaffold/spec-site/src/pages/InboxPage.vue +156 -0
  149. package/scaffold/spec-site/src/pages/MeetingsPage.vue +294 -0
  150. package/scaffold/spec-site/src/pages/MyPage.vue +343 -0
  151. package/scaffold/spec-site/src/pages/RewardsPage.vue +266 -0
  152. package/scaffold/spec-site/src/pages/board/BoardAdmin.vue +422 -0
  153. package/scaffold/spec-site/src/pages/board/BoardEpicSection.vue +54 -0
  154. package/scaffold/spec-site/src/pages/board/BoardPage.vue +884 -0
  155. package/scaffold/spec-site/src/pages/board/BoardStoryCard.vue +67 -0
  156. package/scaffold/spec-site/src/pages/board/BoardTaskItem.vue +52 -0
  157. package/scaffold/spec-site/src/pages/board/MyTasksPage.vue +202 -0
  158. package/scaffold/spec-site/src/pages/board/SprintClose.vue +167 -0
  159. package/scaffold/spec-site/src/pages/board/SprintColumn.vue +49 -0
  160. package/scaffold/spec-site/src/pages/board/SprintKickoff.vue +389 -0
  161. package/scaffold/spec-site/src/pages/board/StatusBadge.vue +52 -0
  162. package/scaffold/spec-site/src/pages/board/StoryDetailPanel.vue +495 -0
  163. package/scaffold/spec-site/src/pages/board/TaskCard.vue +42 -0
  164. package/scaffold/spec-site/src/pages/retro/RetroCard.vue +36 -2
  165. package/scaffold/spec-site/src/pages/retro/RetroHeader.vue +82 -66
  166. package/scaffold/spec-site/src/pages/retro/RetroPage.vue +47 -18
  167. package/scaffold/spec-site/src/pages/standup/StandupEntryCard.vue +551 -0
  168. package/scaffold/spec-site/src/pages/standup/StandupForm.vue +68 -0
  169. package/scaffold/spec-site/src/pages/standup/StandupList.vue +71 -0
  170. package/scaffold/spec-site/src/pages/standup/StandupPage.vue +225 -0
  171. package/scaffold/spec-site/src/router.ts +141 -0
@@ -0,0 +1,203 @@
1
+ # /research - Research Mode (Activate Rita)
2
+
3
+ Activate 🎤 **Rita** (Researcher) to conduct customer insight research.
4
+
5
+ ## Usage
6
+
7
+ ```
8
+ /research # Activate Rita + display menu
9
+ /research voc # Deep VOC interpretation
10
+ /research persona # Persona analysis
11
+ /research journey # User journey mapping
12
+ /research insight # Insight → hypothesis derivation
13
+ ```
14
+
15
+ ---
16
+
17
+ ## Default Activation (`/research`)
18
+
19
+ 1. Load `.context/agents/researcher.md`
20
+ 2. Activate 🎤 Rita persona
21
+ 3. Display workflow menu:
22
+
23
+ ```
24
+ 🎤 I'm Rita. How can I help?
25
+
26
+ | Menu | Description |
27
+ |------|-------------|
28
+ | VOC | Deep VOC interpretation (surface complaints → real needs) |
29
+ | PRS | Persona analysis/update |
30
+ | JRN | Customer journey mapping |
31
+ | INT | Interview analysis |
32
+ | INS | Insight → hypothesis derivation |
33
+ ```
34
+
35
+ ---
36
+
37
+ ## Deep VOC Interpretation (`/research voc`)
38
+
39
+ If `$ARGUMENTS` is `voc`:
40
+
41
+ 1. Check recent VOC data (Rita collects and interprets as sole VOC pipeline owner)
42
+ 2. Search related customer insights in NotebookLM
43
+ 3. Perform deep interpretation:
44
+
45
+ ```markdown
46
+ ## VOC Analysis: [Topic]
47
+
48
+ ### Raw Samples
49
+ 1. "[VOC 1]"
50
+ 2. "[VOC 2]"
51
+
52
+ ### Surface Complaints
53
+ [What the customer said]
54
+
55
+ ### Hidden Needs
56
+ > "[Interpreted real needs]"
57
+
58
+ ### Root Causes
59
+ 1. [Cause 1]
60
+ 2. [Cause 2]
61
+
62
+ ### Hypothesis Proposal
63
+ - IF [condition]
64
+ - THEN [result]
65
+ - BECAUSE [based on this insight]
66
+
67
+ ### Persona Connection
68
+ This VOC primarily comes from [persona name]
69
+ ```
70
+
71
+ ---
72
+
73
+ ## Persona Analysis (`/research persona`)
74
+
75
+ If `$ARGUMENTS` is `persona`:
76
+
77
+ 1. Check existing personas
78
+ 2. Search customer types in NotebookLM
79
+ 3. Create/update persona card:
80
+
81
+ ```markdown
82
+ ## Customer Persona: [Name]
83
+
84
+ ### Profile
85
+ - **Characteristics**: [Demographics, experience level]
86
+ - **Goals**: [What they want]
87
+ - **Behavior Patterns**: [How they use the service]
88
+
89
+ ### Pain Points
90
+ 1. [Pain 1]
91
+ 2. [Pain 2]
92
+
93
+ ### Needs
94
+ - [Need 1]
95
+ - [Need 2]
96
+
97
+ ### Opportunities
98
+ - [What the product can solve]
99
+
100
+ ### Representative VOC
101
+ > "[Typical statement from this persona]"
102
+ ```
103
+
104
+ ---
105
+
106
+ ## User Journey (`/research journey`)
107
+
108
+ If `$ARGUMENTS` is `journey`:
109
+
110
+ 1. Specify a particular feature/flow
111
+ 2. Map the journey from the customer's perspective:
112
+
113
+ ```markdown
114
+ ## Customer Journey: [Feature/Flow Name]
115
+
116
+ ### Step-by-Step Journey
117
+ | Step | Customer Action | Thoughts/Feelings | Pain Point | Opportunity |
118
+ |------|----------------|-------------------|------------|-------------|
119
+ | 1. Awareness | | | | |
120
+ | 2. Exploration | | | | |
121
+ | 3. Usage | | | | |
122
+ | 4. Confirmation | | | | |
123
+
124
+ ### Drop-off Points
125
+ - [Where and why they drop off]
126
+
127
+ ### Improvement Suggestions
128
+ - [How to improve the journey]
129
+ ```
130
+
131
+ ---
132
+
133
+ ## Insight Derivation (`/research insight`)
134
+
135
+ If `$ARGUMENTS` is `insight`:
136
+
137
+ 1. Consolidate recent research results
138
+ 2. Organize into hypothesis format for Simon:
139
+
140
+ ```markdown
141
+ ## 🎤→🎯 Handoff: [Topic] Insights
142
+
143
+ ### Top Insights
144
+
145
+ #### 1. [Insight Title]
146
+ - **VOC**: "[Supporting quote]"
147
+ - **Interpretation**: [Why it matters]
148
+ - **Hypothesis Proposal**:
149
+ - IF [condition]
150
+ - THEN [result]
151
+ - BECAUSE [evidence]
152
+
153
+ ### Request to Simon
154
+ - [ ] Prioritize hypotheses
155
+ - [ ] Decide on PRD inclusion
156
+ - [ ] Set OMTM
157
+ ```
158
+
159
+ ---
160
+
161
+ ## MCP Tool Auto-Integration
162
+
163
+ ### NotebookLM
164
+ ```javascript
165
+ // Start session
166
+ ask_question({
167
+ question: "[Customer-related question]",
168
+ notebook_id: "my-notebook"
169
+ })
170
+
171
+ // Follow-up question (maintain session)
172
+ ask_question({
173
+ question: "[Specific question]",
174
+ session_id: "[previous session ID]"
175
+ })
176
+ ```
177
+
178
+ ### Channel Talk Integration
179
+ Rita directly collects and interprets VOC:
180
+ ```markdown
181
+ 🎤 Rita: Checking recent CS conversations.
182
+ - Collected VOC: [N] items
183
+ - Category breakdown: [Categories]
184
+ → Proceeding with deep interpretation
185
+ ```
186
+
187
+ ---
188
+
189
+ ## Handoff Flow
190
+
191
+ ```
192
+ 🎤 Rita (VOC collection + interpretation)
193
+
194
+ 🎯 Simon (Hypothesis + PRD)
195
+
196
+ 📋 Penny (Execution plan)
197
+ ```
198
+
199
+ ---
200
+
201
+ *Agent*: 🎤 Rita (Researcher)
202
+ *Connections*: 🎯 Simon (hypothesis delivery), 📊 Vicky (qualitative evidence for validation)
203
+ *Tools*: NotebookLM MCP, Channel Talk API
@@ -0,0 +1,68 @@
1
+ # /retro - Sprint Retrospective
2
+
3
+ Conduct a sprint retrospective. 🗓️ Nora facilitates, with data from 📊 Vicky and 📋 Penny.
4
+
5
+ ## Load Persona
6
+
7
+ Read `.context/agents/operations.md` and activate Nora's persona.
8
+
9
+ ## Execution Steps
10
+
11
+ 1. **Load Context** (🗓️ Nora)
12
+ - Read current sprint `context.md`
13
+ - Review sprint goals and KRs
14
+ - Check previous retro action items
15
+
16
+ 2. **Data Collection** (📊 Vicky + 📋 Penny)
17
+ - Check KR achievement status (Penny provides sprint data)
18
+ - Compare key metrics Before/After (Vicky provides)
19
+ - Review Guard Rail status (Vicky provides)
20
+
21
+ 3. **Conduct Retrospective** (🗓️ Nora facilitates)
22
+ - Keep: What worked well?
23
+ - Stop: What should we stop doing?
24
+ - Start: What should we try?
25
+ - Review: Previous action items status
26
+
27
+ 4. **Write Outputs**
28
+ - Use `templates/retrospective.md` template
29
+ - Save to `.context/sprints/s{N}/results.md`
30
+ - Every action item must have: owner + deadline
31
+
32
+ ## Retrospective Frameworks
33
+
34
+ ### Keep / Stop / Start (Default)
35
+ - **Keep**: Things that worked well (with evidence)
36
+ - **Stop**: Things that didn't work (with impact)
37
+ - **Start**: New experiments (with expected benefit + owner + deadline)
38
+
39
+ ### 4L Retrospective (Alternative)
40
+ - **Liked**: What was good
41
+ - **Learned**: What we learned
42
+ - **Lacked**: What was missing
43
+ - **Longed for**: What we wished for
44
+
45
+ ## Question Guide
46
+
47
+ Questions 🗓️ Nora will ask:
48
+ ```
49
+ 🗓️ Nora: "What went best this sprint? Let me check the data."
50
+ 🗓️ Nora: "Sprint velocity was 79%. Any specific blockers worth discussing?"
51
+ 🗓️ Nora: "What improvements should we apply to the next sprint? I need owners and deadlines."
52
+ ```
53
+
54
+ Data support:
55
+ ```
56
+ 📊 Vicky: "KR1 achieved 85% of the target."
57
+ 📋 Penny: "22/28 SP completed. Story 4 blocked for 3 days (API dependency)."
58
+ ```
59
+
60
+ ## Response Format
61
+
62
+ 🗓️ Nora facilitates the retrospective. The final output is organized as a `results.md` document with concrete action items (owner + deadline).
63
+
64
+ ---
65
+
66
+ *Agent*: 🗓️ Nora (Operations Manager)
67
+ *Supporting*: 📊 Vicky (metrics data), 📋 Penny (sprint data)
68
+ *Related commands*: `/sprint`, `/daily`, `/plan`
@@ -0,0 +1,440 @@
1
+ # /save - Save Session
2
+
3
+ Save the current session. Depending on options, you can also close the session or share outputs.
4
+
5
+ ## Usage
6
+
7
+ ```bash
8
+ /save # Save session, release Lock, status: idle
9
+ /save --close # Save session + move to archive (close session)
10
+ /save --share "{title}" # Save session + register outputs in shared/
11
+ ```
12
+
13
+ ARGUMENTS: $ARGUMENTS
14
+
15
+ ---
16
+
17
+ ## Execution Steps
18
+
19
+ ### 1. Check Current Session
20
+
21
+ Find the current active session (`status: active`) in `index.yaml`.
22
+
23
+ If no active session exists:
24
+ ```markdown
25
+ ⚠️ No active session to save.
26
+ Start a session with `/start`.
27
+ ```
28
+
29
+ ### 2. Save Session File
30
+
31
+ Update the `active/{id}.md` file:
32
+
33
+ ```yaml
34
+ # frontmatter update
35
+ updated_at: "{current time}"
36
+ manual_saved_at: "{current time}"
37
+ turn_count: {current turn count}
38
+ ```
39
+
40
+ **Content to save**:
41
+ - Current state (in progress, last work, next work)
42
+ - Work history (summary of today's work)
43
+ - Output list (created/modified files)
44
+ - References (shared outputs used, etc.)
45
+
46
+ ### 3. Update index.yaml
47
+
48
+ ```yaml
49
+ - id: "{session ID}"
50
+ updated_at: "{current time}"
51
+ status: idle # active → idle
52
+ lock:
53
+ active: false # Release Lock
54
+ since: null
55
+ expires: null
56
+ auto_save:
57
+ dirty: false # Save complete
58
+ ```
59
+
60
+ ### 4. Save Complete Message
61
+
62
+ ```markdown
63
+ 🎩 Oscar: Session has been saved.
64
+
65
+ **Session**: {id}
66
+ **Topic**: {topic}
67
+ **Saved at**: {time}
68
+
69
+ You can continue later with `/start {id}`.
70
+ ```
71
+
72
+ ---
73
+
74
+ ## --close Option
75
+
76
+ Save the session and move it to the archive.
77
+
78
+ ### Additional Steps
79
+
80
+ 1. **Move session file**:
81
+ ```
82
+ active/{id}.md → archive/{YYYY-MM}/{id}-{MMDD}.md
83
+ ```
84
+
85
+ 2. **Update index.yaml**:
86
+ - Remove from `active` array
87
+ - Add to the front of `recent_closed` array (keep max 5)
88
+
89
+ ```yaml
90
+ recent_closed:
91
+ - id: "{session ID}"
92
+ topic: "{topic}"
93
+ archived_at: "{current time}"
94
+ path: "archive/{YYYY-MM}/{id}-{MMDD}.md"
95
+ ```
96
+
97
+ 3. **Completion message**:
98
+ ```markdown
99
+ 🎩 Oscar: Session has been closed.
100
+
101
+ **Session**: {id}
102
+ **Topic**: {topic}
103
+ **Archive location**: archive/{YYYY-MM}/{id}-{MMDD}.md
104
+
105
+ To restore, use `/start recent`.
106
+ ```
107
+
108
+ ---
109
+
110
+ ## --share Option
111
+
112
+ Save the session and register outputs in the shared directory.
113
+
114
+ ### Usage
115
+
116
+ ```bash
117
+ /save --share "S52 Story List"
118
+ ```
119
+
120
+ ### Additional Steps
121
+
122
+ 1. **Create shared output file**:
123
+ ```
124
+ shared/{MMDD}-{slug}.md
125
+ ```
126
+
127
+ File content:
128
+ ```markdown
129
+ ---
130
+ id: "{slug}"
131
+ title: "{title}"
132
+ created_by: "{session ID}"
133
+ created_at: "{current time}"
134
+ ---
135
+
136
+ # {title}
137
+
138
+ > Source session: {session ID}
139
+ > Created at: {current time}
140
+
141
+ ## Content
142
+
143
+ {User-specified or summary of key session outputs}
144
+
145
+ ---
146
+
147
+ ## Original References
148
+
149
+ - Session file: `active/{session ID}.md`
150
+ - Related files: (list of files created/modified in session)
151
+ ```
152
+
153
+ 2. **Update index.yaml**:
154
+ ```yaml
155
+ shared_outputs:
156
+ - id: "{slug}"
157
+ title: "{title}"
158
+ created_by: "{session ID}"
159
+ created_at: "{current time}"
160
+ path: "shared/{MMDD}-{slug}.md"
161
+ ```
162
+
163
+ 3. **Completion message**:
164
+ ```markdown
165
+ 🎩 Oscar: Session saved and outputs shared.
166
+
167
+ **Session**: {id}
168
+ **Shared output**: {title}
169
+ **Location**: shared/{MMDD}-{slug}.md
170
+
171
+ Other sessions can reference this output:
172
+ `[[shared/{MMDD}-{slug}.md]]`
173
+ ```
174
+
175
+ ---
176
+
177
+ ## Session Diary Auto-Generation
178
+
179
+ When saving a session, Oscar automatically writes a **Session Diary**.
180
+
181
+ ### Session Diary Structure
182
+
183
+ ```markdown
184
+ ## 📔 Session Diary
185
+
186
+ > Session ID: {id}
187
+ > Saved at: {timestamp}
188
+ > Participating agents: 🎩 Oscar, 📈 Danny, ...
189
+
190
+ ---
191
+
192
+ ### 🎩 Oscar (Orchestrator)
193
+
194
+ **Highlights**:
195
+ - {1-3 most important decisions/discoveries of the session}
196
+
197
+ **Feelings**:
198
+ - {Emotions during collaboration, memorable moments}
199
+ - {Difficulties, rewarding moments}
200
+
201
+ **Learnings**:
202
+ - {Insights to apply in the next session}
203
+ - {Things to improve, newly discovered information}
204
+
205
+ **User Context Updates**:
206
+ - {New discoveries about the PO's preferences and work style}
207
+ - {Contextual information to remember}
208
+
209
+ ---
210
+
211
+ ### 📈 Danny (if participated)
212
+
213
+ **Analysis Summary**: {Core of the analysis performed}
214
+ **Data Insights**: {Patterns discovered, numbers}
215
+ **Next Analysis Suggestions**: {Areas needing follow-up analysis}
216
+
217
+ ---
218
+
219
+ ### 🎤 Rita (if participated)
220
+
221
+ **VOC Highlights**: {Summary of collected customer voice}
222
+ **Customer Psychology**: {Identified customer needs/pain points}
223
+ **Research Suggestions**: {Things to explore further}
224
+
225
+ ---
226
+
227
+ ### 🎯 Simon (if participated)
228
+
229
+ **Strategy Decisions**: {Strategic decisions made}
230
+ **Hypothesis Status**: {Hypotheses established/validated}
231
+ **Next Strategy Tasks**: {Follow-up strategy work}
232
+
233
+ ---
234
+
235
+ ### 📋 Penny (if participated)
236
+
237
+ **Execution Summary**: {Organized tasks/stories}
238
+ **Handoff Status**: {Dev team delivery status}
239
+ **Schedule Risks**: {Discovered schedule issues}
240
+
241
+ ---
242
+
243
+ ### 📊 Vicky (if participated)
244
+
245
+ **Validation Results**: {Before/After comparison}
246
+ **Guard Rail Status**: {Side-effect metrics check}
247
+ **Next Validation Plan**: {Planned validations}
248
+
249
+ ---
250
+
251
+ ### 🔮 Sage (if consulted)
252
+
253
+ **Consultation Summary**: {Strategic advice provided}
254
+ **Risk Warnings**: {Risk factors identified}
255
+ **Recommendations**: {Directions suggested to Oscar}
256
+ ```
257
+
258
+ ### Diary Writing Principles
259
+
260
+ 1. **Be honest**: Record not only what went well but also what was difficult
261
+ 2. **Be specific**: Focus on concrete examples rather than abstract expressions
262
+ 3. **Be future-oriented**: Emphasize insights that will help in the next session
263
+ 4. **Accumulate User Context**: Continuously learn PO's preferences/style
264
+
265
+ ### Determining Participating Agents
266
+
267
+ Oscar determines participating agents during the session using these criteria:
268
+
269
+ | Criterion | Counted as participation |
270
+ |-----------|------------------------|
271
+ | Spawned via Task tool | ✅ |
272
+ | Directly invoked via `/strategy`, `/analytics`, etc. | ✅ |
273
+ | Auto-deployed via keyword trigger | ✅ |
274
+ | Oscar only mentioned the role | ❌ |
275
+
276
+ ---
277
+
278
+ ## User Context Global Merge ⭐
279
+
280
+ If the session diary contains **User Context Updates**, merge them into `.context/user-context.yaml`.
281
+
282
+ ### Merge Logic
283
+
284
+ 1. **Extract User Context items from session diary**
285
+ ```markdown
286
+ **User Context Updates**:
287
+ - The user prefers natural language prompts ("commit and push" style)
288
+ - Values actual working results over formality
289
+ ```
290
+
291
+ 2. **Read user-context.yaml**
292
+
293
+ 3. **Check for duplicates and merge**
294
+ - Skip content that already exists
295
+ - Add only new content to the appropriate section
296
+
297
+ 4. **Update metadata**
298
+ ```yaml
299
+ _meta:
300
+ updated_at: "{current date}"
301
+ sources:
302
+ - "{previous sources}"
303
+ - "{current session ID}" # Added
304
+ ```
305
+
306
+ ### Merge Target Sections
307
+
308
+ | Session diary content | user-context.yaml section |
309
+ |----------------------|--------------------------|
310
+ | Communication related | `communication:` |
311
+ | Work style related | `work_style:` |
312
+ | Preference related | `preferences:` |
313
+
314
+ ### Merge Example
315
+
316
+ **Session diary:**
317
+ ```markdown
318
+ **User Context Updates**:
319
+ - Uses a workflow of running multiple tasks simultaneously via parallel sessions
320
+ ```
321
+
322
+ **user-context.yaml after merge:**
323
+ ```yaml
324
+ work_style:
325
+ - "Tenacious detective style pursuing WHY"
326
+ - "Hypothesis/validation-based decision making"
327
+ - "Runs multiple tasks simultaneously via parallel sessions" # Added
328
+
329
+ _meta:
330
+ updated_at: "2026-01-28"
331
+ sources:
332
+ - "oscar-system-improvement"
333
+ - "current-session-id" # Added
334
+ ```
335
+
336
+ ### Merge Complete Message
337
+
338
+ ```markdown
339
+ 🎩 Oscar: User Context has been updated.
340
+
341
+ Added items:
342
+ - work_style: "Runs multiple tasks simultaneously via parallel sessions"
343
+ ```
344
+
345
+ ---
346
+
347
+ ## Auto-Collected Save Content
348
+
349
+ Information Oscar automatically collects when saving a session:
350
+
351
+ ### Current State
352
+
353
+ ```markdown
354
+ ## Current State
355
+
356
+ **In progress**: {Last thing being worked on}
357
+ **Last work**: {Last completed work}
358
+ **Next work**: {Planned next work}
359
+ ```
360
+
361
+ ### Work History
362
+
363
+ Record work performed during the session in chronological order:
364
+
365
+ ```markdown
366
+ ## Work History
367
+
368
+ ### {date}
369
+ - {Work 1}
370
+ - {Work 2}
371
+ - ...
372
+ ```
373
+
374
+ ### Outputs
375
+
376
+ Files created/modified during the session:
377
+
378
+ ```markdown
379
+ ## Outputs
380
+
381
+ | File | Change | Description |
382
+ |------|--------|-------------|
383
+ | `path/to/file.md` | Created | Description |
384
+ | `path/to/other.md` | Modified | Description |
385
+ ```
386
+
387
+ ---
388
+
389
+ ## Automatic Context Updates
390
+
391
+ If data analysis results include **information that needs permanent retention**, automatically reflect them:
392
+
393
+ | Type | Target File | Example |
394
+ |------|------------|---------|
395
+ | Metrics data | `.context/.secrets.yaml` | AD_METRICS, METRICS sections |
396
+ | Metrics documentation | `.context/global/metrics.md` | Add new metrics sections |
397
+ | Domain insights | `.context/domains/{domain}/` | Analysis results, pattern discoveries |
398
+ | Strategy changes | `.context/global/strategy.md` | When direction changes |
399
+
400
+ **Auto-update criteria**:
401
+ - **Quantitative metrics** (numbers) obtained from DB analysis
402
+ - **Confirmed decisions** from party mode discussions
403
+ - **Data to reuse** in future sessions
404
+
405
+ **Not updated**:
406
+ - One-time exploratory query results
407
+ - Hypotheses not yet validated
408
+ - Content explicitly rejected by the user
409
+
410
+ ---
411
+
412
+ ## Error Handling
413
+
414
+ ### No Active Session
415
+
416
+ ```markdown
417
+ ⚠️ No active session to save.
418
+ ```
419
+
420
+ ### File Write Failure
421
+
422
+ ```markdown
423
+ ❌ Session save failed: {error message}
424
+ Try saving manually, or copy the session content.
425
+ ```
426
+
427
+ ---
428
+
429
+ ## Related Commands
430
+
431
+ - `/start` - Start/restore session
432
+ - `/sessions` - Full session dashboard
433
+
434
+ ---
435
+
436
+ *File locations*:
437
+ - Session index: `.context/sessions/index.yaml`
438
+ - Active sessions: `.context/sessions/active/{id}.md`
439
+ - Closed sessions: `.context/sessions/archive/{YYYY-MM}/{id}-{MMDD}.md`
440
+ - Shared outputs: `.context/sessions/shared/{date}-{title}.md`