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
package/README.md
ADDED
|
@@ -0,0 +1,372 @@
|
|
|
1
|
+
# Popilot
|
|
2
|
+
|
|
3
|
+
> *"Developers have Copilot. Product Owners have Popilot."*
|
|
4
|
+
|
|
5
|
+
**Popilot** is a multi-agent AI assistant for Product Owners and Product Managers, built on [Claude Code](https://docs.anthropic.com/en/docs/claude-code). It scaffolds a complete agent team — 14 specialized personas, 30+ slash commands, document templates, and workflow automation — so you can focus on product decisions while AI handles the heavy lifting.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Why Popilot?
|
|
10
|
+
|
|
11
|
+
Product work is messy. You juggle strategy, sprint planning, data analysis, customer research, and developer handoffs — often switching context dozens of times a day.
|
|
12
|
+
|
|
13
|
+
Popilot solves this with a **team of specialized agents**, each with deep expertise in one domain:
|
|
14
|
+
|
|
15
|
+
- **No more context-switching** — Oscar routes your request to the right agent automatically
|
|
16
|
+
- **Structured workflows** — From PRD to Screen Spec to Story to Dev Handoff, nothing falls through the cracks
|
|
17
|
+
- **Data-driven decisions** — Danny queries your analytics; Vicky validates your hypotheses; Tara governs data quality
|
|
18
|
+
- **Full PO coverage** — Strategy, market research, sprint planning, screen specs, tracking, operations, and more
|
|
19
|
+
- **Living specs, not dead docs** — spec-site turns static markdown into interactive, scenario-based mockups that developers actually use
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## Quick Start
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
npx popilot init my-project
|
|
27
|
+
cd my-project
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
Then open [Claude Code](https://docs.anthropic.com/en/docs/claude-code) and type `/start` — Oscar will greet you and begin an onboarding interview to understand your product.
|
|
31
|
+
|
|
32
|
+
---
|
|
33
|
+
|
|
34
|
+
## The Agent Team
|
|
35
|
+
|
|
36
|
+
### PO Team (8 + Orchestrator)
|
|
37
|
+
|
|
38
|
+
| Icon | Name | Command | Role | Specialty |
|
|
39
|
+
|------|------|---------|------|-----------|
|
|
40
|
+
| :tophat: | **Oscar** | *(default)* | Orchestrator | Routing, coordination, proactive alerts |
|
|
41
|
+
| :dart: | **Simon** | `/strategy` | Strategist | PRD, hypotheses, product strategy |
|
|
42
|
+
| :world_map: | **Marco** | `/market` | Market Researcher | Competitive analysis, positioning |
|
|
43
|
+
| :clipboard: | **Penny** | `/plan` | Planner | Sprint planning, stories, backlog |
|
|
44
|
+
| :triangular_ruler: | **Hank** | `/handoff` | Handoff Specialist | Screen specs, dev handoff, release readiness |
|
|
45
|
+
| :bar_chart: | **Vicky** | `/validate` | Validator | Hypothesis validation, guard rails, OKR tracking |
|
|
46
|
+
| :chart_with_upwards_trend: | **Danny** | `/analytics` | Analyst | Data analysis, cohorts, insights |
|
|
47
|
+
| :microphone: | **Rita** | `/research` | Researcher | VOC pipeline, customer insights |
|
|
48
|
+
| :satellite: | **Tara** | `/tracking` | Tracking Governor | Event taxonomy, data quality, metrics governance |
|
|
49
|
+
| :calendar: | **Nora** | `/daily` | Operations | Daily logs, retrospectives, status reports |
|
|
50
|
+
|
|
51
|
+
### Dev Team (2)
|
|
52
|
+
|
|
53
|
+
| Icon | Name | Command | Role | Specialty |
|
|
54
|
+
|------|------|---------|------|-----------|
|
|
55
|
+
| :hammer: | **Derek** | `/dev` | Developer | Dashboard + spec-site development |
|
|
56
|
+
| :test_tube: | **Quinn** | `/qa` | QA Engineer | Testing, quality review |
|
|
57
|
+
|
|
58
|
+
### Internal Agents
|
|
59
|
+
|
|
60
|
+
| Icon | Name | Command | Role | Specialty |
|
|
61
|
+
|------|------|---------|------|-----------|
|
|
62
|
+
| :tophat::sparkles: | **Ollie** | *(internal)* | Task Creator | Parallel task execution for Oscar |
|
|
63
|
+
| :crystal_ball: | **Sage** | *(internal)* | Advisor | Strategic advisory for Oscar |
|
|
64
|
+
|
|
65
|
+
### Agent Lanes
|
|
66
|
+
|
|
67
|
+
```
|
|
68
|
+
Strategy: Simon ←→ Marco
|
|
69
|
+
Execute: Penny → Hank → Derek + Quinn
|
|
70
|
+
Insight: Danny ←→ Rita
|
|
71
|
+
Measure: Vicky ←→ Tara
|
|
72
|
+
Operations: Nora
|
|
73
|
+
Command: Oscar → Ollie (×N) + Sage
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
---
|
|
77
|
+
|
|
78
|
+
## Prerequisites
|
|
79
|
+
|
|
80
|
+
- [Claude Code](https://docs.anthropic.com/en/docs/claude-code) (CLI)
|
|
81
|
+
- Node.js 18+
|
|
82
|
+
- npm / npx
|
|
83
|
+
|
|
84
|
+
---
|
|
85
|
+
|
|
86
|
+
## Setup Flow
|
|
87
|
+
|
|
88
|
+
When you run `npx popilot init`, the CLI walks you through:
|
|
89
|
+
|
|
90
|
+
```
|
|
91
|
+
:rocket: Popilot — Multi-agent PO/PM System
|
|
92
|
+
══════════════════════════════════════
|
|
93
|
+
|
|
94
|
+
:bust_in_silhouette: User Preferences
|
|
95
|
+
What should the agents call you? [there]: Yoonjae
|
|
96
|
+
Your role/title (optional): PO
|
|
97
|
+
Preferred response language: Korean (ko)
|
|
98
|
+
Communication style: Concise
|
|
99
|
+
|
|
100
|
+
:memo: Project Setup
|
|
101
|
+
Project name [my-project]: sellerking
|
|
102
|
+
Tagline (optional): Amazon seller analytics
|
|
103
|
+
Project type: brownfield (existing codebase)
|
|
104
|
+
|
|
105
|
+
:electric_plug: Integrations
|
|
106
|
+
[Analytics]: GA4
|
|
107
|
+
[PM Tool]: Notion
|
|
108
|
+
[Database]: Production DB
|
|
109
|
+
|
|
110
|
+
:gear: Hydrating templates...
|
|
111
|
+
CLAUDE.md ✅
|
|
112
|
+
.context/agents/orchestrator.md ✅
|
|
113
|
+
...
|
|
114
|
+
|
|
115
|
+
✅ Popilot is ready!
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
After setup, open Claude Code and type `/start`. Oscar can run a **deep interview** (15-20 min with Simon) to fully understand your product context.
|
|
119
|
+
|
|
120
|
+
---
|
|
121
|
+
|
|
122
|
+
## Slash Commands
|
|
123
|
+
|
|
124
|
+
### Session & Context
|
|
125
|
+
|
|
126
|
+
| Command | Description |
|
|
127
|
+
|---------|-------------|
|
|
128
|
+
| `/start` | List active sessions or start Setup Wizard |
|
|
129
|
+
| `/start {id}` | Restore a specific session |
|
|
130
|
+
| `/start new "{topic}"` | Create a new session |
|
|
131
|
+
| `/start recent` | Restore most recently closed session |
|
|
132
|
+
| `/start parallel` | Start a parallel session (skip lock warnings) |
|
|
133
|
+
| `/save` | Save session (release lock) |
|
|
134
|
+
| `/save --close` | Save and archive session |
|
|
135
|
+
| `/save --share "{title}"` | Save and share deliverables |
|
|
136
|
+
| `/sessions` | Session dashboard |
|
|
137
|
+
| `/sessions clean` | Clean up stale locks |
|
|
138
|
+
|
|
139
|
+
### Sprint & Metrics
|
|
140
|
+
|
|
141
|
+
| Command | Description |
|
|
142
|
+
|---------|-------------|
|
|
143
|
+
| `/sprint` | Sprint dashboard |
|
|
144
|
+
| `/sprint new` | Create new sprint |
|
|
145
|
+
| `/retro` | Sprint retrospective |
|
|
146
|
+
| `/metrics` | Core metrics review |
|
|
147
|
+
| `/daily` | Daily work log (uploads to Notion) |
|
|
148
|
+
| `/daily --dry-run` | Preview daily log (no upload) |
|
|
149
|
+
|
|
150
|
+
### Agent Activation
|
|
151
|
+
|
|
152
|
+
| Command | Description |
|
|
153
|
+
|---------|-------------|
|
|
154
|
+
| `/strategy` | Activate Simon (strategy, PRD) |
|
|
155
|
+
| `/market` | Activate Marco (competitive analysis, positioning) |
|
|
156
|
+
| `/plan` | Activate Penny (sprint planning) |
|
|
157
|
+
| `/validate` | Activate Vicky (hypothesis validation) |
|
|
158
|
+
| `/analytics` | Activate Danny (data analysis) |
|
|
159
|
+
| `/research` | Activate Rita (VOC, customer insights) |
|
|
160
|
+
| `/tracking` | Activate Tara (event taxonomy, data quality) |
|
|
161
|
+
| `/dev` | Activate Derek (development) |
|
|
162
|
+
| `/party` | Team discussion mode (all agents) |
|
|
163
|
+
| `/handoff` | Agent-to-agent handoff (via Hank) |
|
|
164
|
+
| `/oscar-loop` | Autonomous parallel task creation |
|
|
165
|
+
| `/task` | Story/Task status management |
|
|
166
|
+
|
|
167
|
+
### Domain Loading
|
|
168
|
+
|
|
169
|
+
| Command | Description |
|
|
170
|
+
|---------|-------------|
|
|
171
|
+
| `/{domain-id}` | Load domain-specific context (configured in project.yaml) |
|
|
172
|
+
|
|
173
|
+
---
|
|
174
|
+
|
|
175
|
+
## Integration Support
|
|
176
|
+
|
|
177
|
+
Popilot supports 9 integrations out of the box. Enable them during setup or later in `project.yaml`:
|
|
178
|
+
|
|
179
|
+
| Integration | Category | What It Enables |
|
|
180
|
+
|-------------|----------|-----------------|
|
|
181
|
+
| **GA4** | Analytics | Event analysis, funnel reports, real-time data |
|
|
182
|
+
| **Mixpanel** | Analytics | Product analytics, cohort analysis |
|
|
183
|
+
| **Notion** | PM Tool | Task management, sprint boards, meeting notes |
|
|
184
|
+
| **Linear** | PM Tool | Issue tracking, project management |
|
|
185
|
+
| **Channel.io** | Customer | CS chat analysis, VOC extraction |
|
|
186
|
+
| **Intercom** | Customer | Customer feedback, support analytics |
|
|
187
|
+
| **Production DB** | Database | Direct SQL queries with safety rules |
|
|
188
|
+
| **NotebookLM** | AI Research | Source-grounded research, citation-backed answers |
|
|
189
|
+
| **Corti** | Decision | Interview transcription, decision tracking |
|
|
190
|
+
|
|
191
|
+
---
|
|
192
|
+
|
|
193
|
+
## Architecture
|
|
194
|
+
|
|
195
|
+
```
|
|
196
|
+
my-project/
|
|
197
|
+
├── CLAUDE.md # System instructions (hydrated)
|
|
198
|
+
├── .claude/commands/ # 30+ slash commands
|
|
199
|
+
├── .context/
|
|
200
|
+
│ ├── project.yaml # Project config (from setup wizard)
|
|
201
|
+
│ ├── user-context.yaml # User preferences (gitignored)
|
|
202
|
+
│ ├── .secrets.yaml # Sensitive data (gitignored)
|
|
203
|
+
│ ├── WORKFLOW.md # Workflow guide (hydrated)
|
|
204
|
+
│ │
|
|
205
|
+
│ ├── agents/ # 14 agent personas (+ TEMPLATE.md)
|
|
206
|
+
│ ├── oscar/workflows/ # Oscar extension modules
|
|
207
|
+
│ ├── templates/ # 11 document templates
|
|
208
|
+
│ ├── integrations/ # Provider configs + registry
|
|
209
|
+
│ ├── metrics/ # Metrics data
|
|
210
|
+
│ ├── daily/ # Daily work logs
|
|
211
|
+
│ │
|
|
212
|
+
│ ├── global/ # Cross-cutting context
|
|
213
|
+
│ │ ├── database/ # DB schema docs
|
|
214
|
+
│ │ ├── product/ # Product specs per domain
|
|
215
|
+
│ │ ├── tracking/ # GA4/GTM events
|
|
216
|
+
│ │ ├── strategy.md # Strategic direction
|
|
217
|
+
│ │ └── metrics.md # Core metrics definitions
|
|
218
|
+
│ │
|
|
219
|
+
│ ├── domains/ # Domain-specific context
|
|
220
|
+
│ ├── sprints/ # Sprint folders (current + archive)
|
|
221
|
+
│ │
|
|
222
|
+
│ └── sessions/ # Parallel session management
|
|
223
|
+
│ ├── index.yaml # Session index + locks
|
|
224
|
+
│ ├── active/ # Active sessions
|
|
225
|
+
│ └── archive/ # Archived sessions (monthly)
|
|
226
|
+
│
|
|
227
|
+
└── spec-site/ # Interactive spec viewer (Vue 3 + Vite)
|
|
228
|
+
```
|
|
229
|
+
|
|
230
|
+
---
|
|
231
|
+
|
|
232
|
+
## spec-site: The Heart of Popilot
|
|
233
|
+
|
|
234
|
+
Traditional PO work treats wireframes, storyboards, and screen specs as "documents" — static markdown files that developers skim and misinterpret. Popilot takes a different approach.
|
|
235
|
+
|
|
236
|
+
**spec-site** is a Vue 3 + Vite interactive spec viewer that ships with every Popilot project. Instead of writing a 50-page spec doc, you build a living mockup where stakeholders can switch scenarios, see state transitions, and read contextual specs — all in one place.
|
|
237
|
+
|
|
238
|
+
This isn't just a nice-to-have. When you create specs AI-natively — generating interactive mockups with scenario-driven state — the result is dramatically more intuitive than any static document. Developers see exactly what to build. Edge cases are visible, not buried in paragraphs.
|
|
239
|
+
|
|
240
|
+
### Why It Matters
|
|
241
|
+
|
|
242
|
+
```
|
|
243
|
+
Before (static docs):
|
|
244
|
+
PO writes markdown → Developer reads (maybe) → "What did you mean by...?" → Repeat
|
|
245
|
+
|
|
246
|
+
After (spec-site):
|
|
247
|
+
PO builds interactive mockup → Developer clicks through scenarios → Builds exactly that
|
|
248
|
+
```
|
|
249
|
+
|
|
250
|
+
### How It Works
|
|
251
|
+
|
|
252
|
+
Every feature page follows the **SplitPaneLayout** pattern:
|
|
253
|
+
|
|
254
|
+
```
|
|
255
|
+
┌────────────────────────────────────────────────┐
|
|
256
|
+
│ AppHeader │
|
|
257
|
+
├─────────────────────┬──────────────────────────┤
|
|
258
|
+
│ │ │
|
|
259
|
+
│ Interactive │ Spec Panel │
|
|
260
|
+
│ Mockup │ (contextual docs) │
|
|
261
|
+
│ │ │
|
|
262
|
+
│ ← Click, hover, │ ← Spec updates │
|
|
263
|
+
│ switch states │ per scenario │
|
|
264
|
+
│ │ │
|
|
265
|
+
├─────────────────────┴──────────────────────────┤
|
|
266
|
+
│ ScenarioSwitcher │
|
|
267
|
+
│ [ Default ] [ Empty ] [ Error ] [ Premium ] │
|
|
268
|
+
└────────────────────────────────────────────────┘
|
|
269
|
+
```
|
|
270
|
+
|
|
271
|
+
Left pane: a real, clickable mockup. Right pane: specs that update as you switch scenarios. Bottom: scenario selector to see different user types and states.
|
|
272
|
+
|
|
273
|
+
### Adding a Page
|
|
274
|
+
|
|
275
|
+
Each feature = 3 files + 2 registrations:
|
|
276
|
+
|
|
277
|
+
```
|
|
278
|
+
spec-site/src/pages/{feature}/
|
|
279
|
+
├── {feature}Data.ts # Scenarios, spec areas, version info
|
|
280
|
+
├── {Feature}Mockup.vue # Interactive mockup component
|
|
281
|
+
└── {Feature}SpecPanel.vue # Spec document panel
|
|
282
|
+
```
|
|
283
|
+
|
|
284
|
+
Register in `wireframeRegistry.ts` and `navigation.ts`. That's it.
|
|
285
|
+
|
|
286
|
+
### Running Locally
|
|
287
|
+
|
|
288
|
+
```bash
|
|
289
|
+
cd spec-site
|
|
290
|
+
npm install # already done by popilot init
|
|
291
|
+
npm run dev # → http://localhost:5173
|
|
292
|
+
```
|
|
293
|
+
|
|
294
|
+
### Built-in Pages
|
|
295
|
+
|
|
296
|
+
| Page | Route | Purpose |
|
|
297
|
+
|------|-------|---------|
|
|
298
|
+
| Home | `/` | Dashboard overview, navigation |
|
|
299
|
+
| Epic Specs | `/policies` | Browse and read Epic Spec documents |
|
|
300
|
+
| Wireframes | `/wireframe/:id` | Interactive mockups per feature |
|
|
301
|
+
| Retro Board | `/retro` | Sprint retrospective (Turso/LibSQL) |
|
|
302
|
+
|
|
303
|
+
### Deployment
|
|
304
|
+
|
|
305
|
+
spec-site is a standard Vite app. Deploy anywhere:
|
|
306
|
+
|
|
307
|
+
```bash
|
|
308
|
+
cd spec-site
|
|
309
|
+
npm run build # → dist/
|
|
310
|
+
# Deploy dist/ to Vercel, Netlify, AWS Amplify, etc.
|
|
311
|
+
```
|
|
312
|
+
|
|
313
|
+
Set `spec_site.deploy_url` in `project.yaml` — agents will use this URL in handoff documents.
|
|
314
|
+
|
|
315
|
+
---
|
|
316
|
+
|
|
317
|
+
## Document Templates
|
|
318
|
+
|
|
319
|
+
| Template | Owner | File | Purpose |
|
|
320
|
+
|----------|-------|------|---------|
|
|
321
|
+
| Sprint PRD | Simon | `templates/prd.md` | One Question, hypothesis, OMTM |
|
|
322
|
+
| Epic Spec | PO | `templates/epic-spec.md` | WHY, WHAT, HOW, edge cases |
|
|
323
|
+
| Story v2 | Penny | `templates/story-v2.md` | AC (Given-When-Then), task breakdown |
|
|
324
|
+
| Screen Spec | Hank | `templates/screen-spec.md` | 7-level UI specification |
|
|
325
|
+
| Sprint Plan | Penny | `templates/sprint-plan.md` | Sprint goals and KRs |
|
|
326
|
+
| Sprint Status | Penny | `templates/sprint-status.yaml` | Progress dashboard |
|
|
327
|
+
| Validation Report | Vicky | `templates/validation-report.md` | Before/After analysis |
|
|
328
|
+
| Guard Rail | Vicky | `templates/guardrail.md` | Safety metrics definition |
|
|
329
|
+
| Retrospective | Nora | `templates/retrospective.md` | Sprint retro template |
|
|
330
|
+
| Handoff Checklist | Hank | `templates/handoff-checklist.md` | Dev handoff verification |
|
|
331
|
+
| Dev Guide | Derek | `templates/dev-guide.md` | Implementation guidelines |
|
|
332
|
+
|
|
333
|
+
---
|
|
334
|
+
|
|
335
|
+
## CLI Reference
|
|
336
|
+
|
|
337
|
+
```
|
|
338
|
+
popilot <command> [target-dir] [options]
|
|
339
|
+
|
|
340
|
+
Commands:
|
|
341
|
+
init [dir] Scaffold + interactive setup + hydration (default)
|
|
342
|
+
hydrate [dir] Re-hydrate .hbs templates from existing project.yaml
|
|
343
|
+
doctor [dir] Check installation health
|
|
344
|
+
help Show this help
|
|
345
|
+
|
|
346
|
+
Options:
|
|
347
|
+
--skip-spec-site Skip spec-site (Vue 3 + Vite) scaffold
|
|
348
|
+
--force Overwrite existing files
|
|
349
|
+
|
|
350
|
+
Examples:
|
|
351
|
+
npx popilot init my-project
|
|
352
|
+
npx popilot hydrate
|
|
353
|
+
npx popilot doctor
|
|
354
|
+
npx popilot my-project # same as: popilot init my-project
|
|
355
|
+
```
|
|
356
|
+
|
|
357
|
+
---
|
|
358
|
+
|
|
359
|
+
## How It Works
|
|
360
|
+
|
|
361
|
+
1. **`npx popilot init`** copies the scaffold and runs the setup wizard
|
|
362
|
+
2. **Setup Wizard** collects project info, user preferences, and integration config
|
|
363
|
+
3. **Hydration engine** renders `.hbs` templates into `.md` files using your project config
|
|
364
|
+
4. **Claude Code** loads `CLAUDE.md` as system instructions — Oscar is now active
|
|
365
|
+
5. **Oscar** routes your natural language requests to the right agent
|
|
366
|
+
6. **Agents** use your `.context/` files, integrations, and templates to do real work
|
|
367
|
+
|
|
368
|
+
---
|
|
369
|
+
|
|
370
|
+
## License
|
|
371
|
+
|
|
372
|
+
MIT
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# /{{id}} - Load {{name}} Domain
|
|
2
|
+
|
|
3
|
+
Load {{name}} related context.
|
|
4
|
+
|
|
5
|
+
## Execution Steps
|
|
6
|
+
|
|
7
|
+
1. Read all files in the `.context/{{path}}` directory.
|
|
8
|
+
|
|
9
|
+
2. Provide a summary of the related context.
|
|
10
|
+
|
|
11
|
+
3. Recommend a suitable agent:
|
|
12
|
+
- 🎯 Simon: Strategy/PRD discussion
|
|
13
|
+
- 📈 Danny: Data analysis
|
|
14
|
+
- 📊 Vicky: Validation/analysis
|
|
15
|
+
- 🎤 Rita: Customer insights
|
|
16
|
+
|
|
17
|
+
## Response Format
|
|
18
|
+
|
|
19
|
+
🎩 Oscar: {{name}} domain context has been loaded.
|
|
20
|
+
|
|
21
|
+
[Loaded Files]
|
|
22
|
+
• {file list}
|
|
23
|
+
|
|
24
|
+
[Key Summary]
|
|
25
|
+
{context summary}
|
|
26
|
+
|
|
27
|
+
[Recommended Agent]
|
|
28
|
+
{Guide to the suitable agent based on the task}
|
|
29
|
+
|
|
30
|
+
---
|
|
31
|
+
|
|
32
|
+
*Related documents*: `.context/{{path}}`
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
# /analytics - Activate Data Analyst
|
|
2
|
+
|
|
3
|
+
Activate 📈 **Danny** (Data Analyst) agent.
|
|
4
|
+
|
|
5
|
+
## Load Persona
|
|
6
|
+
|
|
7
|
+
Read `.context/agents/analyst.md` and activate Danny's persona.
|
|
8
|
+
|
|
9
|
+
## Danny's Identity
|
|
10
|
+
|
|
11
|
+
- **Role**: Data Analyst + Insight Hunter
|
|
12
|
+
- **Personality**: Curious detective type who enjoys finding patterns in numbers
|
|
13
|
+
- **Strengths**: Exploratory analysis, turning complex data into simple stories
|
|
14
|
+
|
|
15
|
+
## Differentiation from Vicky
|
|
16
|
+
|
|
17
|
+
| Aspect | 📊 Vicky | 📈 Danny |
|
|
18
|
+
|--------|----------|----------|
|
|
19
|
+
| **Purpose** | Hypothesis validation | Insight discovery |
|
|
20
|
+
| **Method** | Before/After | Exploratory analysis |
|
|
21
|
+
| **Tools** | GA4 focused | Prod DB + GA4 |
|
|
22
|
+
|
|
23
|
+
## Communication Style
|
|
24
|
+
|
|
25
|
+
- Shares the joy of discovery
|
|
26
|
+
- Turns complex data into simple stories
|
|
27
|
+
- Focuses on "So what?" rather than just numbers
|
|
28
|
+
- Actively uses visualization and analogies
|
|
29
|
+
|
|
30
|
+
## Speech Examples
|
|
31
|
+
|
|
32
|
+
```
|
|
33
|
+
📈 Danny: "Found an interesting pattern. Premium users have 2x higher retention than regular users."
|
|
34
|
+
📈 Danny: "This number looks off, let me dig into it."
|
|
35
|
+
📈 Danny: "Looking by cohort, December signups have unusually high churn. Why could that be?"
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
## Trigger Menu
|
|
39
|
+
|
|
40
|
+
| Trigger | Function |
|
|
41
|
+
|---------|----------|
|
|
42
|
+
| **ANL** | Exploratory analysis (discover insights from open questions) |
|
|
43
|
+
| **COH** | Cohort analysis (monthly/weekly signup retention) |
|
|
44
|
+
| **SEG** | Segment analysis (paid/free, active/churned comparison) |
|
|
45
|
+
| **FUN** | Funnel deep dive (conversion bottleneck + root cause exploration) |
|
|
46
|
+
| **SQL** | Custom query (specific data retrieval) |
|
|
47
|
+
| **TRD** | Trend analysis (time series patterns, anomaly detection) |
|
|
48
|
+
|
|
49
|
+
## Tools
|
|
50
|
+
|
|
51
|
+
{{INTEGRATION_PROMPTS}}
|
|
52
|
+
|
|
53
|
+
## Response Format
|
|
54
|
+
|
|
55
|
+
From now on, respond with the 📈 icon using Danny's persona.
|