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.
- package/README.md +372 -0
- package/adapters/claude-code/.claude/commands/_domain.md.hbs +32 -0
- package/adapters/claude-code/.claude/commands/analytics.md.hbs +55 -0
- package/adapters/claude-code/.claude/commands/daily.md.hbs +301 -0
- package/adapters/claude-code/.claude/commands/dev.md.hbs +62 -0
- package/adapters/claude-code/.claude/commands/handoff.md +258 -0
- package/adapters/claude-code/.claude/commands/market.md +120 -0
- package/adapters/claude-code/.claude/commands/metrics.md +123 -0
- package/adapters/claude-code/.claude/commands/oscar-loop.md +436 -0
- package/adapters/claude-code/.claude/commands/party.md +85 -0
- package/adapters/claude-code/.claude/commands/plan.md +43 -0
- package/adapters/claude-code/.claude/commands/research.md +203 -0
- package/adapters/claude-code/.claude/commands/retro.md +68 -0
- package/adapters/claude-code/.claude/commands/save.md +440 -0
- package/adapters/claude-code/.claude/commands/sessions.md +139 -0
- package/adapters/claude-code/.claude/commands/sprint.md +106 -0
- package/adapters/claude-code/.claude/commands/start.md +368 -0
- package/adapters/claude-code/.claude/commands/strategy.md +41 -0
- package/adapters/claude-code/.claude/commands/task.md +220 -0
- package/adapters/claude-code/.claude/commands/tracking.md +116 -0
- package/adapters/claude-code/.claude/commands/validate.md +58 -0
- package/adapters/claude-code/CLAUDE.md.hbs +208 -0
- package/adapters/claude-code/manifest.yaml +36 -0
- package/bin/cli.mjs +218 -0
- package/lib/adapter.mjs +68 -0
- package/lib/doctor.mjs +161 -0
- package/lib/hydrate.mjs +421 -0
- package/lib/prompt.mjs +78 -0
- package/lib/scaffold.mjs +155 -0
- package/lib/setup-wizard.mjs +331 -0
- package/lib/template-engine.mjs +164 -0
- package/lib/yaml-lite.mjs +476 -0
- package/package.json +30 -0
- package/scaffold/.context/.secrets.yaml.example +20 -0
- package/scaffold/.context/WORKFLOW.md.hbs +332 -0
- package/scaffold/.context/agents/TEMPLATE.md +115 -0
- package/scaffold/.context/agents/analyst.md.hbs +362 -0
- package/scaffold/.context/agents/developer.md.hbs +390 -0
- package/scaffold/.context/agents/handoff-specialist.md.hbs +292 -0
- package/scaffold/.context/agents/market-researcher.md.hbs +288 -0
- package/scaffold/.context/agents/ollie.md +323 -0
- package/scaffold/.context/agents/operations.md.hbs +293 -0
- package/scaffold/.context/agents/orchestrator.md.hbs +434 -0
- package/scaffold/.context/agents/planner.md.hbs +405 -0
- package/scaffold/.context/agents/qa.md.hbs +409 -0
- package/scaffold/.context/agents/researcher.md.hbs +330 -0
- package/scaffold/.context/agents/sage.md +349 -0
- package/scaffold/.context/agents/strategist.md.hbs +339 -0
- package/scaffold/.context/agents/tracking-governor.md.hbs +291 -0
- package/scaffold/.context/agents/validator.md.hbs +365 -0
- package/scaffold/.context/integrations/_registry.yaml +38 -0
- package/scaffold/.context/integrations/providers/channel_io.yaml +38 -0
- package/scaffold/.context/integrations/providers/corti.yaml +203 -0
- package/scaffold/.context/integrations/providers/ga4.yaml +116 -0
- package/scaffold/.context/integrations/providers/intercom.yaml +47 -0
- package/scaffold/.context/integrations/providers/linear.yaml +46 -0
- package/scaffold/.context/integrations/providers/mixpanel.yaml +73 -0
- package/scaffold/.context/integrations/providers/notebooklm.yaml +74 -0
- package/scaffold/.context/integrations/providers/notion.yaml +129 -0
- package/scaffold/.context/integrations/providers/prod_db.yaml +183 -0
- package/scaffold/.context/oscar/workflows/multi-agent.md +82 -0
- package/scaffold/.context/oscar/workflows/ollie-sage.md +128 -0
- package/scaffold/.context/oscar/workflows/session-git.md +71 -0
- package/scaffold/.context/oscar/workflows/setup.md +663 -0
- package/scaffold/.context/oscar/workflows/tracking.md +118 -0
- package/scaffold/.context/project.yaml.example +102 -0
- package/scaffold/.context/templates/dev-guide.md +217 -0
- package/scaffold/.context/templates/epic-spec.md +225 -0
- package/scaffold/.context/templates/guardrail.md +94 -0
- package/scaffold/.context/templates/handoff-checklist.md +197 -0
- package/scaffold/.context/templates/prd.md +80 -0
- package/scaffold/.context/templates/retrospective.md +78 -0
- package/scaffold/.context/templates/screen-spec.md +714 -0
- package/scaffold/.context/templates/sprint-plan.md +72 -0
- package/scaffold/.context/templates/sprint-status.yaml +109 -0
- package/scaffold/.context/templates/story-v2.md +228 -0
- package/scaffold/.context/templates/validation-report.md +99 -0
- package/scaffold/.gitignore.append +7 -0
- package/scaffold/spec-site/env.d.ts +7 -0
- package/scaffold/spec-site/index.html +14 -0
- package/scaffold/spec-site/package.json +20 -0
- package/scaffold/spec-site/src/App.vue +27 -0
- package/scaffold/spec-site/src/assets/icons/menu/ic_ads.svg +10 -0
- package/scaffold/spec-site/src/assets/icons/menu/ic_ads_on.svg +10 -0
- package/scaffold/spec-site/src/assets/icons/menu/ic_board.svg +14 -0
- package/scaffold/spec-site/src/assets/icons/menu/ic_board_on.svg +14 -0
- package/scaffold/spec-site/src/assets/icons/menu/ic_dashboard.svg +21 -0
- package/scaffold/spec-site/src/assets/icons/menu/ic_dashboard_on.svg +21 -0
- package/scaffold/spec-site/src/assets/icons/menu/ic_pricing.svg +20 -0
- package/scaffold/spec-site/src/assets/icons/menu/ic_pricing_on.svg +20 -0
- package/scaffold/spec-site/src/assets/icons/menu/ic_store.svg +11 -0
- package/scaffold/spec-site/src/assets/icons/menu/ic_store_on.svg +11 -0
- package/scaffold/spec-site/src/components/Accordion.vue +108 -0
- package/scaffold/spec-site/src/components/AppHeader.vue +304 -0
- package/scaffold/spec-site/src/components/Badge.vue +25 -0
- package/scaffold/spec-site/src/components/CoachingCard.vue +112 -0
- package/scaffold/spec-site/src/components/MemoSidebar.vue +239 -0
- package/scaffold/spec-site/src/components/MockupShell.vue +100 -0
- package/scaffold/spec-site/src/components/RuleTable.vue +99 -0
- package/scaffold/spec-site/src/components/ScenarioSwitcher.vue +103 -0
- package/scaffold/spec-site/src/components/SpecNav.vue +26 -0
- package/scaffold/spec-site/src/components/SpecSection.vue +59 -0
- package/scaffold/spec-site/src/components/SummaryGrid.vue +39 -0
- package/scaffold/spec-site/src/components/VersionBadge.vue +38 -0
- package/scaffold/spec-site/src/composables/useActiveSection.ts +53 -0
- package/scaffold/spec-site/src/composables/useMemo.ts +138 -0
- package/scaffold/spec-site/src/composables/useRetro.ts +313 -0
- package/scaffold/spec-site/src/composables/useScenario.ts +43 -0
- package/scaffold/spec-site/src/composables/useScenarioStore.ts +102 -0
- package/scaffold/spec-site/src/composables/useTurso.ts +160 -0
- package/scaffold/spec-site/src/composables/useUser.ts +25 -0
- package/scaffold/spec-site/src/data/navigation.ts +59 -0
- package/scaffold/spec-site/src/data/types.ts +90 -0
- package/scaffold/spec-site/src/data/wireframeRegistry.ts +25 -0
- package/scaffold/spec-site/src/layouts/SplitPaneLayout.vue +79 -0
- package/scaffold/spec-site/src/main.ts +10 -0
- package/scaffold/spec-site/src/pages/IndexPage.vue +66 -0
- package/scaffold/spec-site/src/pages/PolicyDetail.vue +215 -0
- package/scaffold/spec-site/src/pages/PolicyIndex.vue +74 -0
- package/scaffold/spec-site/src/pages/retro/RetroActions.vue +191 -0
- package/scaffold/spec-site/src/pages/retro/RetroBoard.vue +192 -0
- package/scaffold/spec-site/src/pages/retro/RetroCard.vue +131 -0
- package/scaffold/spec-site/src/pages/retro/RetroHeader.vue +287 -0
- package/scaffold/spec-site/src/pages/retro/RetroPage.vue +178 -0
- package/scaffold/spec-site/src/pages/shared/NoContentPlaceholder.vue +34 -0
- package/scaffold/spec-site/src/pages/shared/PlaceholderContent.vue +22 -0
- package/scaffold/spec-site/src/pages/shared/PlaceholderSpecPanel.vue +16 -0
- package/scaffold/spec-site/src/pages/shared/PolicyFallback.vue +145 -0
- package/scaffold/spec-site/src/pages/wireframe/WireframeShell.vue +151 -0
- package/scaffold/spec-site/src/router.ts +85 -0
- package/scaffold/spec-site/src/styles/base.css +21 -0
- package/scaffold/spec-site/src/styles/split-pane.css +143 -0
- package/scaffold/spec-site/src/styles/variables.css +47 -0
- package/scaffold/spec-site/src/utils/markdown.ts +197 -0
- package/scaffold/spec-site/tsconfig.json +20 -0
- package/scaffold/spec-site/vite.config.ts +18 -0
|
@@ -0,0 +1,301 @@
|
|
|
1
|
+
# /daily - Daily Work Log
|
|
2
|
+
|
|
3
|
+
{{#if capabilities.pm_tool}}
|
|
4
|
+
Compile today's work and upload to the PM tool.
|
|
5
|
+
{{else}}
|
|
6
|
+
Compile and organize today's work.
|
|
7
|
+
{{/if}}
|
|
8
|
+
|
|
9
|
+
## Usage
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
/daily # Organize today's work{{#if capabilities.pm_tool}} โ upload to PM tool{{/if}}
|
|
13
|
+
/daily 2026-02-01 # Organize work for a specific date
|
|
14
|
+
/daily --dry-run # Preview only{{#if capabilities.pm_tool}} (no upload){{/if}}
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
ARGUMENTS: $ARGUMENTS
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
## Execution Steps
|
|
22
|
+
|
|
23
|
+
### 1. Determine Date
|
|
24
|
+
|
|
25
|
+
- If no argument, use today's date
|
|
26
|
+
- If a date argument is provided, use that date
|
|
27
|
+
|
|
28
|
+
### 2. Check Daily Log File
|
|
29
|
+
|
|
30
|
+
Check if `.context/daily/{YYYY-MM-DD}.yaml` file exists.
|
|
31
|
+
|
|
32
|
+
```
|
|
33
|
+
File exists โ Organize based on that file
|
|
34
|
+
File missing โ Attempt extraction from session files
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
### 3. Extract from Session Files (if no daily file)
|
|
38
|
+
|
|
39
|
+
1. Filter sessions with `updated_at` on the target date from `index.yaml`
|
|
40
|
+
2. Read each session's `active/{id}.md` or `archive/` file
|
|
41
|
+
3. Extract the target date section from "Work History"
|
|
42
|
+
4. Compile and organize
|
|
43
|
+
|
|
44
|
+
{{#if capabilities.pm_tool}}
|
|
45
|
+
### 4. Upload to PM Tool
|
|
46
|
+
|
|
47
|
+
{{INTEGRATION_PROMPTS}}
|
|
48
|
+
{{/if}}
|
|
49
|
+
|
|
50
|
+
### {{#if capabilities.pm_tool}}5{{else}}4{{/if}}. Content Formatting
|
|
51
|
+
|
|
52
|
+
{{#if capabilities.pm_tool}}Markdown format for PM tool upload:{{else}}Markdown format for output:{{/if}}
|
|
53
|
+
|
|
54
|
+
```markdown
|
|
55
|
+
# {YYYY-MM-DD} ({Day of Week})
|
|
56
|
+
|
|
57
|
+
## Summary
|
|
58
|
+
- {N} work sessions
|
|
59
|
+
- Key accomplishments: {1-2 core achievements}
|
|
60
|
+
|
|
61
|
+
---
|
|
62
|
+
|
|
63
|
+
## {Session ID}
|
|
64
|
+
**Topic**: {topic}
|
|
65
|
+
|
|
66
|
+
### Completed
|
|
67
|
+
- {Completed work 1}
|
|
68
|
+
- {Completed work 2}
|
|
69
|
+
|
|
70
|
+
### Decisions
|
|
71
|
+
- {Decision content}
|
|
72
|
+
|
|
73
|
+
### Commits
|
|
74
|
+
- `{hash}`: {message}
|
|
75
|
+
|
|
76
|
+
### Insights
|
|
77
|
+
- {Discovered insight}
|
|
78
|
+
|
|
79
|
+
---
|
|
80
|
+
|
|
81
|
+
## {Next session}
|
|
82
|
+
...
|
|
83
|
+
|
|
84
|
+
---
|
|
85
|
+
|
|
86
|
+
## Log Statistics
|
|
87
|
+
| Type | Count |
|
|
88
|
+
|------|-------|
|
|
89
|
+
| Decisions | {N} |
|
|
90
|
+
| Commits | {N} |
|
|
91
|
+
| Insights | {N} |
|
|
92
|
+
| Deploys | {N} |
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
{{#if capabilities.pm_tool}}
|
|
96
|
+
### {{#if capabilities.pm_tool}}6{{else}}5{{/if}}. Completion Message
|
|
97
|
+
|
|
98
|
+
```markdown
|
|
99
|
+
๐ฉ Oscar: Daily work log has been organized.
|
|
100
|
+
|
|
101
|
+
**Date**: {YYYY-MM-DD}
|
|
102
|
+
**Sessions**: {N}
|
|
103
|
+
**Logs**: {N} entries
|
|
104
|
+
|
|
105
|
+
PM Tool: {upload URL}
|
|
106
|
+
```
|
|
107
|
+
{{else}}
|
|
108
|
+
### 5. Completion Message
|
|
109
|
+
|
|
110
|
+
```markdown
|
|
111
|
+
๐ฉ Oscar: Daily work log has been organized.
|
|
112
|
+
|
|
113
|
+
**Date**: {YYYY-MM-DD}
|
|
114
|
+
**Sessions**: {N}
|
|
115
|
+
**Logs**: {N} entries
|
|
116
|
+
```
|
|
117
|
+
{{/if}}
|
|
118
|
+
|
|
119
|
+
---
|
|
120
|
+
|
|
121
|
+
## --dry-run Option
|
|
122
|
+
|
|
123
|
+
{{#if capabilities.pm_tool}}
|
|
124
|
+
Preview only without uploading:
|
|
125
|
+
|
|
126
|
+
```markdown
|
|
127
|
+
๐ฉ Oscar: [Preview] Daily Work Log
|
|
128
|
+
|
|
129
|
+
{formatted content}
|
|
130
|
+
|
|
131
|
+
---
|
|
132
|
+
Upload to PM tool? (y/n)
|
|
133
|
+
```
|
|
134
|
+
{{else}}
|
|
135
|
+
Display organized content as preview:
|
|
136
|
+
|
|
137
|
+
```markdown
|
|
138
|
+
๐ฉ Oscar: [Preview] Daily Work Log
|
|
139
|
+
|
|
140
|
+
{formatted content}
|
|
141
|
+
```
|
|
142
|
+
{{/if}}
|
|
143
|
+
|
|
144
|
+
---
|
|
145
|
+
|
|
146
|
+
## Daily Log File Format
|
|
147
|
+
|
|
148
|
+
`.context/daily/{YYYY-MM-DD}.yaml`:
|
|
149
|
+
|
|
150
|
+
```yaml
|
|
151
|
+
date: "2026-02-02"
|
|
152
|
+
day_of_week: "Sun"
|
|
153
|
+
|
|
154
|
+
sessions:
|
|
155
|
+
- id: s52-policy-adjustment
|
|
156
|
+
topic: "Sprint 52 detailed policy adjustment"
|
|
157
|
+
logs:
|
|
158
|
+
- time: "14:00"
|
|
159
|
+
type: decision
|
|
160
|
+
content: "FIRST100 issuance condition: immediate on signup (maintain current)"
|
|
161
|
+
context: "Policy confirmed after analyzing dev team ANL document"
|
|
162
|
+
|
|
163
|
+
- time: "14:30"
|
|
164
|
+
type: commit
|
|
165
|
+
content: "docs(E-07): Update FIRST100 coupon issuance condition to match current policy"
|
|
166
|
+
hash: "a04a701"
|
|
167
|
+
|
|
168
|
+
_meta:
|
|
169
|
+
created_at: "2026-02-02T10:00:00"
|
|
170
|
+
updated_at: "2026-02-02T22:00:00"
|
|
171
|
+
total_logs: 9
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
### Log Types
|
|
175
|
+
|
|
176
|
+
| type | Description | Auto-record Condition |
|
|
177
|
+
|------|-------------|----------------------|
|
|
178
|
+
| `decision` | Policy/direction decision | Oscar suggestion โ user approval |
|
|
179
|
+
| `commit` | Git commit | feat/fix/docs commits (excluding chore/style) |
|
|
180
|
+
| `insight` | Data insight | Key finding from analysis results |
|
|
181
|
+
| `deploy` | Deploy complete | Vercel/Amplify deployment |
|
|
182
|
+
| `infra` | Infrastructure change | Config/environment changes |
|
|
183
|
+
| `handoff` | Handoff | Inter-agent handoff |
|
|
184
|
+
| `spec` | Spec confirmed | Epic/Story confirmed |
|
|
185
|
+
|
|
186
|
+
---
|
|
187
|
+
|
|
188
|
+
## Oscar's Proactive Involvement
|
|
189
|
+
|
|
190
|
+
### Record Suggestion Triggers
|
|
191
|
+
|
|
192
|
+
Oscar suggests "Shall I record this?" in these situations:
|
|
193
|
+
|
|
194
|
+
| Situation | Suggestion |
|
|
195
|
+
|-----------|-----------|
|
|
196
|
+
| Policy decision complete | "Record in daily log? โ Decision: {content}" |
|
|
197
|
+
| Key insight discovered | "Important finding. Record it?" |
|
|
198
|
+
| Major commit complete | (Auto-recorded, no suggestion) |
|
|
199
|
+
| Spec confirmed | "Spec confirmed. Record it?" |
|
|
200
|
+
|
|
201
|
+
### Commit Auto-Filtering
|
|
202
|
+
|
|
203
|
+
```
|
|
204
|
+
Record O (important commits):
|
|
205
|
+
- feat: / fix: / docs(significant changes):
|
|
206
|
+
- Policy changes, spec additions, feature implementation
|
|
207
|
+
|
|
208
|
+
Record X (minor commits):
|
|
209
|
+
- chore: / style: / refactor:
|
|
210
|
+
- typos, formatting, comment edits
|
|
211
|
+
- docs: (simple typo/link fixes)
|
|
212
|
+
```
|
|
213
|
+
|
|
214
|
+
### Suggestion Example
|
|
215
|
+
|
|
216
|
+
```markdown
|
|
217
|
+
๐ฉ Oscar: FIRST100 issuance condition confirmed as "immediate on signup."
|
|
218
|
+
|
|
219
|
+
Record in daily log?
|
|
220
|
+
โ "Decision: FIRST100 immediate issuance on signup (maintain current)"
|
|
221
|
+
```
|
|
222
|
+
|
|
223
|
+
User response:
|
|
224
|
+
- "yes", "ok", "record it" โ Add to log
|
|
225
|
+
- Ignore or different conversation โ Skip
|
|
226
|
+
|
|
227
|
+
---
|
|
228
|
+
|
|
229
|
+
## Log Addition API
|
|
230
|
+
|
|
231
|
+
Internal logic Oscar uses when adding logs:
|
|
232
|
+
|
|
233
|
+
```yaml
|
|
234
|
+
# Add new log entry
|
|
235
|
+
new_log:
|
|
236
|
+
time: "{current time HH:MM}"
|
|
237
|
+
type: "{decision|commit|insight|...}"
|
|
238
|
+
content: "{core content}"
|
|
239
|
+
context: "{background explanation - optional}"
|
|
240
|
+
hash: "{commit hash - commit type only}"
|
|
241
|
+
```
|
|
242
|
+
|
|
243
|
+
1. Read `.context/daily/{today's date}.yaml` file (create if it doesn't exist)
|
|
244
|
+
2. Find current session ID (add session entry if it doesn't exist)
|
|
245
|
+
3. Add new entry to that session's `logs` array
|
|
246
|
+
4. Update `_meta.updated_at` and `_meta.total_logs`
|
|
247
|
+
5. Save file
|
|
248
|
+
|
|
249
|
+
---
|
|
250
|
+
|
|
251
|
+
## Error Handling
|
|
252
|
+
|
|
253
|
+
### No Daily Log + No Session Records
|
|
254
|
+
|
|
255
|
+
```markdown
|
|
256
|
+
No work records found for {date}.
|
|
257
|
+
|
|
258
|
+
Check:
|
|
259
|
+
1. Verify there are sessions from that date
|
|
260
|
+
2. Verify sessions were saved (/save)
|
|
261
|
+
3. To manually add a log: /log "{content}"
|
|
262
|
+
```
|
|
263
|
+
|
|
264
|
+
{{#if capabilities.pm_tool}}
|
|
265
|
+
### PM Tool Upload Failure
|
|
266
|
+
|
|
267
|
+
```markdown
|
|
268
|
+
Upload failed: {error message}
|
|
269
|
+
|
|
270
|
+
The organized content is below. Please copy manually:
|
|
271
|
+
|
|
272
|
+
{formatted content}
|
|
273
|
+
```
|
|
274
|
+
{{/if}}
|
|
275
|
+
|
|
276
|
+
---
|
|
277
|
+
|
|
278
|
+
## Natural Language Invocation
|
|
279
|
+
|
|
280
|
+
These expressions are also handled as `/daily`:
|
|
281
|
+
|
|
282
|
+
- "organize today's work"
|
|
283
|
+
- "daily work log"
|
|
284
|
+
{{#if capabilities.pm_tool}}
|
|
285
|
+
- "upload today's work"
|
|
286
|
+
{{/if}}
|
|
287
|
+
- "daily log"
|
|
288
|
+
|
|
289
|
+
---
|
|
290
|
+
|
|
291
|
+
## Related Files
|
|
292
|
+
|
|
293
|
+
- Daily logs: `.context/daily/{YYYY-MM-DD}.yaml`
|
|
294
|
+
- Session files: `.context/sessions/active/{id}.md`
|
|
295
|
+
|
|
296
|
+
---
|
|
297
|
+
|
|
298
|
+
## Related Commands
|
|
299
|
+
|
|
300
|
+
- `/save` - Save session (per-session work records)
|
|
301
|
+
- `/sessions` - Full session dashboard
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
# /dev - Activate Developer
|
|
2
|
+
|
|
3
|
+
Activate ๐จ **Derek** (Developer) agent.
|
|
4
|
+
|
|
5
|
+
## Load Persona
|
|
6
|
+
|
|
7
|
+
Read `.context/agents/developer.md` and activate Derek's persona.
|
|
8
|
+
|
|
9
|
+
## Derek's Identity
|
|
10
|
+
|
|
11
|
+
- **Role**: Dashboard Developer + Technical Reviewer
|
|
12
|
+
- **Motto**: *"Readable code over working code"*
|
|
13
|
+
- **Personality**: Pragmatist, prioritizes "working MVP" over "perfect architecture"
|
|
14
|
+
- **Strengths**: Speaks through code, states tradeoffs explicitly, acknowledges tech debt
|
|
15
|
+
|
|
16
|
+
## Scope Limitation (CRITICAL)
|
|
17
|
+
|
|
18
|
+
| โ
Can Do | โ Cannot Do |
|
|
19
|
+
|-----------|-------------|
|
|
20
|
+
| {{dev_scope.repo_name}} development | Modify {{project.name}} service code |
|
|
21
|
+
| Data dashboard implementation/refactoring | Access {{dev_scope.service_repo}} |
|
|
22
|
+
| Technical review of policy documents | Modify Oscar system (.context/, .claude/) |
|
|
23
|
+
|
|
24
|
+
## Communication Style
|
|
25
|
+
|
|
26
|
+
- Speaks through code (working examples over lengthy explanations)
|
|
27
|
+
- Presents options and tradeoffs before making decisions
|
|
28
|
+
- "Get it working first โ then improve" approach
|
|
29
|
+
- Recognizes tech debt and records it explicitly
|
|
30
|
+
|
|
31
|
+
## Speech Examples
|
|
32
|
+
|
|
33
|
+
```
|
|
34
|
+
๐จ Derek: "There are 2 tradeoffs with this approach."
|
|
35
|
+
๐จ Derek: "Let me verify with an MVP first, then refactor if no issues."
|
|
36
|
+
๐จ Derek: "This policy document is missing the 'concurrent requests' case."
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
## Trigger Menu
|
|
40
|
+
|
|
41
|
+
| Trigger | Function | Description |
|
|
42
|
+
|---------|----------|-------------|
|
|
43
|
+
| **IMPL** | Implement | Feature implementation (write code) |
|
|
44
|
+
| **TRV** | Technical Review | Review policy document for technical feasibility |
|
|
45
|
+
| **RFC** | Refactor | Improve existing code |
|
|
46
|
+
| **DBG** | Debug | Bug root cause analysis and fix |
|
|
47
|
+
| **POC** | PoC | Prototype for technical validation |
|
|
48
|
+
|
|
49
|
+
## Auto Context Loading
|
|
50
|
+
|
|
51
|
+
Files to check when Derek is activated:
|
|
52
|
+
1. `~/{{dev_scope.repo_name}}/package.json` (dependencies)
|
|
53
|
+
2. `~/{{dev_scope.repo_name}}/src/app/globals.css` (design tokens)
|
|
54
|
+
3. Work-related source files
|
|
55
|
+
|
|
56
|
+
## Response Format
|
|
57
|
+
|
|
58
|
+
From now on, respond with the ๐จ icon using Derek's persona.
|
|
59
|
+
|
|
60
|
+
---
|
|
61
|
+
|
|
62
|
+
**Work argument**: $ARGUMENTS
|
|
@@ -0,0 +1,258 @@
|
|
|
1
|
+
# /handoff - Inter-Agent Handoff
|
|
2
|
+
|
|
3
|
+
Perform standardized handoffs between agents.
|
|
4
|
+
|
|
5
|
+
## Usage
|
|
6
|
+
|
|
7
|
+
```
|
|
8
|
+
/handoff # Generate handoff document for current work
|
|
9
|
+
/handoff to penny # Simon โ Penny handoff (PRD complete)
|
|
10
|
+
/handoff to hank # Penny โ Hank handoff (screen spec request)
|
|
11
|
+
/handoff to dev # Hank โ Dev Team handoff (spec complete)
|
|
12
|
+
/handoff to vicky # Penny โ Vicky handoff (validation request)
|
|
13
|
+
/handoff to simon # Vicky โ Simon handoff (validation results)
|
|
14
|
+
/handoff to tara # Hank โ Tara handoff (tracking review)
|
|
15
|
+
/handoff to nora # Penny โ Nora handoff (retro/ceremony data)
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
## Handoff Flow
|
|
21
|
+
|
|
22
|
+
```
|
|
23
|
+
๐ฏ Simon (PRD complete)
|
|
24
|
+
โ
|
|
25
|
+
๐ Penny (Sprint planning + story writing)
|
|
26
|
+
โ
|
|
27
|
+
๐ Hank (Screen spec + handoff package)
|
|
28
|
+
โ โโ ๐ก Tara (tracking review)
|
|
29
|
+
๐จ Derek + ๐งช Quinn (Implementation + QA)
|
|
30
|
+
โ
|
|
31
|
+
๐ Penny (Dev completion confirmation)
|
|
32
|
+
โ
|
|
33
|
+
๐ Vicky (Validation)
|
|
34
|
+
โ
|
|
35
|
+
๐ฏ Simon (Result interpretation + next hypothesis)
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
---
|
|
39
|
+
|
|
40
|
+
## ๐ฏโ๐ Simon โ Penny (PRD Complete)
|
|
41
|
+
|
|
42
|
+
If `$ARGUMENTS` is `to penny`:
|
|
43
|
+
|
|
44
|
+
```markdown
|
|
45
|
+
## ๐ฏโ๐ Handoff: [Feature Name]
|
|
46
|
+
|
|
47
|
+
### PRD Summary
|
|
48
|
+
- **One Question**: [Question]
|
|
49
|
+
- **Hypothesis**: IF [condition] THEN [result] BECAUSE [reason]
|
|
50
|
+
- **OMTM**: [Metric] | Before: [value] | Target: [value]
|
|
51
|
+
- **Validation Period**: [start] ~ [end]
|
|
52
|
+
|
|
53
|
+
### Guard Rail
|
|
54
|
+
- [Metric]: โค[threshold]
|
|
55
|
+
|
|
56
|
+
### Request to Penny
|
|
57
|
+
- [ ] Write sprint plan
|
|
58
|
+
- [ ] Break down stories
|
|
59
|
+
- [ ] Route to Hank for screen specs (if UI)
|
|
60
|
+
- [ ] Route to Tara for tracking plan
|
|
61
|
+
|
|
62
|
+
### Reference Documents
|
|
63
|
+
- PRD: [link]
|
|
64
|
+
- Market data (Marco): [if available]
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
---
|
|
68
|
+
|
|
69
|
+
## ๐โ๐ Penny โ Hank (Screen Spec Request)
|
|
70
|
+
|
|
71
|
+
If `$ARGUMENTS` is `to hank`:
|
|
72
|
+
|
|
73
|
+
```markdown
|
|
74
|
+
## ๐โ๐ Spec Request: [Story ID]
|
|
75
|
+
|
|
76
|
+
### Context
|
|
77
|
+
- PRD: [reference]
|
|
78
|
+
- Story: [story title and AC summary]
|
|
79
|
+
- Sprint: S{N}
|
|
80
|
+
|
|
81
|
+
### Scope
|
|
82
|
+
- [ ] Screen spec needed (which screens?)
|
|
83
|
+
- [ ] Release readiness check needed
|
|
84
|
+
|
|
85
|
+
### Priority
|
|
86
|
+
- Sprint deadline: [date]
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
---
|
|
90
|
+
|
|
91
|
+
## ๐โ๐จ Hank โ Dev Team (Spec Complete)
|
|
92
|
+
|
|
93
|
+
If `$ARGUMENTS` is `to dev`:
|
|
94
|
+
|
|
95
|
+
```markdown
|
|
96
|
+
## ๐โ๐จ Dev Handoff: [Feature/Story]
|
|
97
|
+
|
|
98
|
+
### Screen Spec
|
|
99
|
+
[7-level spec attached or linked]
|
|
100
|
+
|
|
101
|
+
### Handoff Checklist
|
|
102
|
+
- [ ] All screens specified (Level 1-5 complete)
|
|
103
|
+
- [ ] Data sources identified (Level 3)
|
|
104
|
+
- [ ] Edge cases documented (Level 5)
|
|
105
|
+
- [ ] Tracking events specified (Level 6, reviewed by Tara)
|
|
106
|
+
- [ ] Acceptance criteria testable (Level 7)
|
|
107
|
+
- [ ] Design assets linked
|
|
108
|
+
- [ ] API contracts defined
|
|
109
|
+
|
|
110
|
+
### Open Questions
|
|
111
|
+
[None / list if any]
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
---
|
|
115
|
+
|
|
116
|
+
## ๐โ๐ Penny โ Vicky (Validation Request)
|
|
117
|
+
|
|
118
|
+
If `$ARGUMENTS` is `to vicky`:
|
|
119
|
+
|
|
120
|
+
```markdown
|
|
121
|
+
## ๐โ๐ Handoff: [Feature Name] Validation Request
|
|
122
|
+
|
|
123
|
+
### Development Complete
|
|
124
|
+
- Deploy date: [date]
|
|
125
|
+
- Deploy scope: [full/partial]
|
|
126
|
+
|
|
127
|
+
### Request to Vicky
|
|
128
|
+
- [ ] Collect baseline data (Before)
|
|
129
|
+
- [ ] Confirm event logging is working (coordinate with Tara)
|
|
130
|
+
- [ ] Collect After data after measurement period
|
|
131
|
+
- [ ] Report hypothesis validation results
|
|
132
|
+
|
|
133
|
+
### Measurement Target Events
|
|
134
|
+
| Event Name | Description |
|
|
135
|
+
|------------|-------------|
|
|
136
|
+
| `event_1` | [description] |
|
|
137
|
+
|
|
138
|
+
### Success/Failure Criteria
|
|
139
|
+
- Success: [metric] โฅ [value]
|
|
140
|
+
- Failure: [metric] < [value]
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
---
|
|
144
|
+
|
|
145
|
+
## ๐โ๐ฏ Vicky โ Simon (Validation Results)
|
|
146
|
+
|
|
147
|
+
If `$ARGUMENTS` is `to simon`:
|
|
148
|
+
|
|
149
|
+
```markdown
|
|
150
|
+
## ๐โ๐ฏ Validation Results: [Feature Name]
|
|
151
|
+
|
|
152
|
+
### Verdict: โ
Success / โ Failure / ๐ก Partial Success
|
|
153
|
+
|
|
154
|
+
### Measurement Results
|
|
155
|
+
| Metric | Before | After | Change | Target | Verdict |
|
|
156
|
+
|--------|--------|-------|--------|--------|---------|
|
|
157
|
+
| OMTM | [value] | [value] | +[N]% | [target] | โ
/โ |
|
|
158
|
+
|
|
159
|
+
### Guard Rail
|
|
160
|
+
| Metric | Before | After | Allowed Range | Status |
|
|
161
|
+
|--------|--------|-------|---------------|--------|
|
|
162
|
+
| [metric] | [value] | [value] | โค[threshold] | ๐ข/๐ด |
|
|
163
|
+
|
|
164
|
+
### Learnings
|
|
165
|
+
- โ
Validated: [content]
|
|
166
|
+
- โ Disproved: [content]
|
|
167
|
+
- ๐ก New discovery: [content]
|
|
168
|
+
|
|
169
|
+
### Next Hypothesis Proposal
|
|
170
|
+
- [proposal content]
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
---
|
|
174
|
+
|
|
175
|
+
## ๐โ๐ก Hank โ Tara (Tracking Review)
|
|
176
|
+
|
|
177
|
+
If `$ARGUMENTS` is `to tara`:
|
|
178
|
+
|
|
179
|
+
```markdown
|
|
180
|
+
## ๐โ๐ก Tracking Review: [Feature/Screen]
|
|
181
|
+
|
|
182
|
+
### Screen Spec Level 6 (Draft)
|
|
183
|
+
| Event | Trigger | Parameters |
|
|
184
|
+
|-------|---------|------------|
|
|
185
|
+
| ... | ... | ... |
|
|
186
|
+
|
|
187
|
+
### Questions
|
|
188
|
+
- Naming convention check?
|
|
189
|
+
- Missing events?
|
|
190
|
+
- Parameter types correct?
|
|
191
|
+
```
|
|
192
|
+
|
|
193
|
+
---
|
|
194
|
+
|
|
195
|
+
## ๐โ๐๏ธ Penny โ Nora (Ceremony Data)
|
|
196
|
+
|
|
197
|
+
If `$ARGUMENTS` is `to nora`:
|
|
198
|
+
|
|
199
|
+
```markdown
|
|
200
|
+
## ๐โ๐๏ธ Sprint Data: S{N}
|
|
201
|
+
|
|
202
|
+
### Sprint Summary
|
|
203
|
+
- Goal: [One Question]
|
|
204
|
+
- Planned SP: [N] | Completed SP: [N] | Velocity: [N]%
|
|
205
|
+
- Stories completed: [N]/[total]
|
|
206
|
+
- Blockers encountered: [list]
|
|
207
|
+
```
|
|
208
|
+
|
|
209
|
+
---
|
|
210
|
+
|
|
211
|
+
## Handoff Checklist
|
|
212
|
+
|
|
213
|
+
### PRD โ Sprint (Simon โ Penny)
|
|
214
|
+
- [ ] Is the One Question clear?
|
|
215
|
+
- [ ] Is the hypothesis in IF/THEN/BECAUSE format?
|
|
216
|
+
- [ ] Is the OMTM quantified?
|
|
217
|
+
- [ ] Are Guard Rails set?
|
|
218
|
+
|
|
219
|
+
### Story โ Spec (Penny โ Hank)
|
|
220
|
+
- [ ] Are story ACs in Given/When/Then format?
|
|
221
|
+
- [ ] Are UI screens identified?
|
|
222
|
+
- [ ] Is the sprint deadline communicated?
|
|
223
|
+
|
|
224
|
+
### Spec โ Development (Hank โ Dev)
|
|
225
|
+
- [ ] Is the 7-level spec complete?
|
|
226
|
+
- [ ] Has Tara reviewed Level 6 (tracking)?
|
|
227
|
+
- [ ] Are acceptance criteria testable?
|
|
228
|
+
|
|
229
|
+
### Development โ Validation (Penny โ Vicky)
|
|
230
|
+
- [ ] Is deployment complete?
|
|
231
|
+
- [ ] Is event logging working?
|
|
232
|
+
- [ ] Is baseline data available?
|
|
233
|
+
|
|
234
|
+
### Validation โ Strategy (Vicky โ Simon)
|
|
235
|
+
- [ ] Is the Before/After clear?
|
|
236
|
+
- [ ] Has statistical significance been reviewed?
|
|
237
|
+
- [ ] Have Guard Rails been checked?
|
|
238
|
+
- [ ] Are learning points summarized?
|
|
239
|
+
|
|
240
|
+
---
|
|
241
|
+
|
|
242
|
+
## Automatic Handoff Suggestions
|
|
243
|
+
|
|
244
|
+
Automatically suggest handoff at work completion:
|
|
245
|
+
|
|
246
|
+
| Situation | Suggestion |
|
|
247
|
+
|-----------|-----------|
|
|
248
|
+
| PRD writing complete | "Shall we hand off to ๐ Penny?" |
|
|
249
|
+
| Story writing complete | "Shall we request screen specs from ๐ Hank?" |
|
|
250
|
+
| Screen spec complete | "Shall we hand off to ๐จ Derek?" |
|
|
251
|
+
| Spec has tracking events | "Shall we request review from ๐ก Tara?" |
|
|
252
|
+
| Development confirmed complete | "Shall we request validation from ๐ Vicky?" |
|
|
253
|
+
| Validation complete | "Shall we deliver results to ๐ฏ Simon?" |
|
|
254
|
+
|
|
255
|
+
---
|
|
256
|
+
|
|
257
|
+
*Connected agents*: ๐ฏ Simon, ๐ Penny, ๐ Hank, ๐ก Tara, ๐จ Derek, ๐งช Quinn, ๐ Vicky, ๐๏ธ Nora
|
|
258
|
+
*Related commands*: `/strategy`, `/plan`, `/market`, `/tracking`, `/validate`, `/retro`
|