popilot 0.4.0 → 0.5.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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "popilot",
3
- "version": "0.4.0",
3
+ "version": "0.5.0",
4
4
  "description": "Multi-agent PO/PM system scaffold for Claude Code",
5
5
  "type": "module",
6
6
  "bin": {
@@ -0,0 +1,69 @@
1
+ # /poc — Idea to Working PoC
2
+
3
+ Build a working proof-of-concept from a one-line idea.
4
+ No PO knowledge needed. No complex setup. Just describe what you want.
5
+
6
+ ## How it works
7
+
8
+ This skill chains 4 phases automatically:
9
+ 1. **Scope** — Narrow the idea to 3 buildable features
10
+ 2. **Spec** — Write implementation-ready stories with ACs
11
+ 3. **Build** — Generate working Vue 3 code in spec-site
12
+ 4. **Verify** — Type-check, build, and launch preview
13
+
14
+ ## Execution
15
+
16
+ ### If `.context/poc/pipeline.yaml` does NOT exist:
17
+
18
+ Create it:
19
+
20
+ ```yaml
21
+ idea: "$ARGUMENTS"
22
+ created_at: "[today's date]"
23
+ status: scoping
24
+ tech_stack: vue
25
+
26
+ phases:
27
+ scope:
28
+ status: in-progress
29
+ output: scope.md
30
+ spec:
31
+ status: pending
32
+ output: stories/
33
+ build:
34
+ status: pending
35
+ total_stories: 0
36
+ current_story: 0
37
+ output: spec-site/src/pages/poc/
38
+ verify:
39
+ status: pending
40
+ ```
41
+
42
+ Then read `.context/poc/_skills/scope.md` and execute Phase 1.
43
+
44
+ ### If `.context/poc/pipeline.yaml` EXISTS:
45
+
46
+ Read it and resume from the current status:
47
+
48
+ | `status` value | Action |
49
+ |----------------|--------|
50
+ | `scoping` | Read and execute `_skills/scope.md` |
51
+ | `speccing` | Read and execute `_skills/spec.md` |
52
+ | `building` | Read and execute `_skills/build.md` (resume from `current_story`) |
53
+ | `verifying` | Read and execute `_skills/verify.md` |
54
+ | `done` | Report: "PoC already complete. Delete `.context/poc/pipeline.yaml` to start fresh." |
55
+
56
+ ### Resume behavior
57
+
58
+ If the user runs `/poc` with no arguments and pipeline.yaml exists,
59
+ resume from where it left off. This makes the pipeline crash-safe.
60
+
61
+ If the user runs `/poc [new idea]` and pipeline.yaml exists for a
62
+ different idea, ask: "A PoC for '[old idea]' is in progress. Replace it?"
63
+
64
+ ## Important
65
+
66
+ - Do NOT stop between phases. Run all 4 phases in one session.
67
+ - Do NOT ask the user for confirmation between phases. Be proactive.
68
+ - If a phase fails, attempt to fix it. Only stop if unrecoverable.
69
+ - All generated code must compile (`vue-tsc --noEmit` pass).
@@ -0,0 +1,79 @@
1
+ # Phase 3: Build
2
+
3
+ You are implementing PoC stories as working Vue 3 code inside the spec-site scaffold.
4
+
5
+ ## Input
6
+
7
+ - Read `.context/poc/pipeline.yaml` to find `current_story`
8
+ - Read the corresponding `.context/poc/stories/S-{NN}.md`
9
+ - Read `.context/poc/scope.md` for context (mock data strategy)
10
+
11
+ ## Target
12
+
13
+ All generated code goes into `spec-site/src/pages/poc/`.
14
+ Shared composables go into `spec-site/src/composables/poc/`.
15
+
16
+ ## Rules
17
+
18
+ ### Code Style
19
+ 1. **Vue 3 `<script setup lang="ts">`** — no Options API.
20
+ 2. **Composition API** with `ref`, `computed`, `watch`.
21
+ 3. **Scoped CSS** in every component. Use CSS variables from `spec-site/src/styles/variables.css`.
22
+ 4. **No external dependencies**. Only use what's already in spec-site's package.json (vue, vue-router, marked).
23
+ 5. **TypeScript strict**. No `any`. Define interfaces from the story's Data Model.
24
+
25
+ ### Data
26
+ 6. **Mock data only**. Use `ref()` with hardcoded initial data or localStorage.
27
+ 7. If the story says localStorage, use a consistent key prefix: `poc-{feature}-`.
28
+
29
+ ### Structure
30
+ 8. **One page component** per story that composes smaller components.
31
+ 9. **One composable** per story for state management.
32
+ 10. **Register route** in `spec-site/src/router.ts` under `/poc/` prefix.
33
+
34
+ ### Quality
35
+ 11. Every AC must be verifiable by viewing the page and interacting with it.
36
+ 12. Transitions/animations: use simple CSS transitions only. No animation libraries.
37
+ 13. Responsive: must look acceptable at 375px and 1280px widths.
38
+
39
+ ## Implementation Steps (per story)
40
+
41
+ ```
42
+ 1. Create composable: src/composables/poc/use{Feature}Store.ts
43
+ - Define interfaces from Data Model
44
+ - Implement reactive state + actions
45
+ - Add localStorage persistence if specified
46
+
47
+ 2. Create components: src/pages/poc/{Component}.vue
48
+ - Follow UI Components table from story
49
+ - Import and use the composable
50
+ - Implement all AC interactions
51
+
52
+ 3. Create page: src/pages/poc/{Feature}Page.vue
53
+ - Compose all components
54
+ - Handle layout
55
+
56
+ 4. Register route in src/router.ts
57
+ - Lazy import: () => import('@/pages/poc/{Feature}Page.vue')
58
+ - Path: /poc/{path} as specified in story
59
+
60
+ 5. Update pipeline.yaml
61
+ - Increment current_story
62
+ - If all stories done: set phases.build.status = done
63
+ ```
64
+
65
+ ## After ALL stories are built
66
+
67
+ Update `.context/poc/pipeline.yaml`:
68
+ - Set `phases.build.status: done`
69
+ - Set `status: verifying`
70
+
71
+ Then immediately proceed to Phase 4 (read `.context/poc/_skills/verify.md`).
72
+
73
+ ## On build error
74
+
75
+ If `vue-tsc` or `vite build` fails:
76
+ 1. Read the error
77
+ 2. Fix it
78
+ 3. Retry (max 3 attempts per story)
79
+ 4. If still failing, add `error: "[message]"` to pipeline.yaml under that story and move on
@@ -0,0 +1,50 @@
1
+ # Phase 1: Scope
2
+
3
+ You are scoping a PoC (Proof of Concept) from a one-line idea.
4
+ Your job is to produce a tight, buildable scope — NOT a full PRD.
5
+
6
+ ## Input
7
+
8
+ Read the `idea` field from `.context/poc/pipeline.yaml`.
9
+
10
+ ## Rules
11
+
12
+ 1. **Max 3 features**. A PoC proves a concept, not ships a product.
13
+ 2. **No real backends**. All data is mock/local. No API keys, no databases.
14
+ 3. **Name concrete UI elements**. "Dashboard" is vague. "3-column kanban board with drag-and-drop cards" is buildable.
15
+ 4. **Explicitly list Out of Scope** to prevent creep.
16
+
17
+ ## Output
18
+
19
+ Write `.context/poc/scope.md` in this exact format:
20
+
21
+ ```markdown
22
+ # PoC Scope
23
+
24
+ ## Problem
25
+ [1-2 sentences: what pain point does this solve?]
26
+
27
+ ## Target User
28
+ [1 sentence: who is this for?]
29
+
30
+ ## Core Features
31
+ 1. **[Feature Name]** — [One sentence description with specific UI element]
32
+ 2. **[Feature Name]** — [One sentence description with specific UI element]
33
+ 3. **[Feature Name]** — [One sentence description with specific UI element]
34
+
35
+ ## Mock Data Strategy
36
+ [What fake data will be used? localStorage? Hardcoded JSON? In-memory state?]
37
+
38
+ ## Out of Scope
39
+ - [Thing that might seem needed but isn't for PoC]
40
+ - [Another thing]
41
+ - [Another thing]
42
+ ```
43
+
44
+ ## After completion
45
+
46
+ Update `.context/poc/pipeline.yaml`:
47
+ - Set `phases.scope.status: done`
48
+ - Set `status: speccing`
49
+
50
+ Then immediately proceed to Phase 2 (read `.context/poc/_skills/spec.md`).
@@ -0,0 +1,80 @@
1
+ # Phase 2: Spec
2
+
3
+ You are writing implementation-ready story specs from a PoC scope.
4
+ Each story maps 1:1 to a Core Feature in scope.md.
5
+
6
+ ## Input
7
+
8
+ Read `.context/poc/scope.md` (Phase 1 output).
9
+
10
+ ## Rules
11
+
12
+ 1. **One story per feature**. No splitting. PoC stories are small by design.
13
+ 2. **AC must be testable by eyeball**. "Given X, When Y, Then Z is visible on screen."
14
+ 3. **UI Components section is mandatory**. List every .vue file that will be created.
15
+ 4. **Data Model section is mandatory**. Define TypeScript interfaces for all state.
16
+ 5. **Route section is mandatory**. Exact path for vue-router.
17
+ 6. Each story must be self-contained — implementable without other stories being done first.
18
+
19
+ ## Output
20
+
21
+ For each Core Feature, write `.context/poc/stories/S-{NN}.md`:
22
+
23
+ ```markdown
24
+ # S-{NN}: [Feature Name]
25
+
26
+ ## AC (Acceptance Criteria)
27
+
28
+ 1. Given [precondition]
29
+ When [user action]
30
+ Then [visible result]
31
+
32
+ 2. Given [precondition]
33
+ When [user action]
34
+ Then [visible result]
35
+
36
+ 3. Given [precondition]
37
+ When [user action]
38
+ Then [visible result]
39
+
40
+ ## UI Components
41
+
42
+ | Component | File | Description |
43
+ |-----------|------|-------------|
44
+ | [Name] | `src/pages/poc/[Name].vue` | [What it renders] |
45
+ | [Name] | `src/pages/poc/[Name].vue` | [What it renders] |
46
+
47
+ ## Data Model
48
+
49
+ ```typescript
50
+ interface [ModelName] {
51
+ id: string
52
+ // ...fields
53
+ }
54
+ ```
55
+
56
+ ## State Management
57
+
58
+ ```typescript
59
+ // Describe the composable: useXxxStore
60
+ // - What reactive state it holds
61
+ // - What actions it exposes
62
+ // - Where data persists (localStorage key, in-memory, etc.)
63
+ ```
64
+
65
+ ## Route
66
+
67
+ | Path | Component | Description |
68
+ |------|-----------|-------------|
69
+ | `/poc/[path]` | `[Component].vue` | [What this page shows] |
70
+ ```
71
+
72
+ ## After completion
73
+
74
+ Update `.context/poc/pipeline.yaml`:
75
+ - Set `phases.spec.status: done`
76
+ - Set `status: building`
77
+ - Set `phases.build.total_stories: [count]`
78
+ - Set `phases.build.current_story: 1`
79
+
80
+ Then immediately proceed to Phase 3 (read `.context/poc/_skills/build.md`).
@@ -0,0 +1,60 @@
1
+ # Phase 4: Verify
2
+
3
+ You are verifying the PoC builds and runs correctly.
4
+
5
+ ## Steps
6
+
7
+ ### 1. Type Check
8
+
9
+ ```bash
10
+ cd spec-site && npx vue-tsc --noEmit
11
+ ```
12
+
13
+ If errors exist, fix them. Max 3 retry cycles.
14
+
15
+ ### 2. Build
16
+
17
+ ```bash
18
+ cd spec-site && npx vite build
19
+ ```
20
+
21
+ If build fails, fix and retry. Max 3 cycles.
22
+
23
+ ### 3. Add PoC Entry Point
24
+
25
+ If not already present, add a link to the PoC pages from the spec-site index.
26
+ Add a simple navigation component at `src/pages/poc/PocIndex.vue` that lists
27
+ all PoC routes with links.
28
+
29
+ Register `/poc` route in router.ts pointing to PocIndex.vue.
30
+
31
+ ### 4. Launch Preview
32
+
33
+ ```bash
34
+ cd spec-site && npx vite preview &
35
+ ```
36
+
37
+ ### 5. Report
38
+
39
+ Output to the user:
40
+
41
+ ```
42
+ PoC complete!
43
+
44
+ Routes:
45
+ - /poc — PoC Index
46
+ - /poc/[route1] — [Feature 1 name]
47
+ - /poc/[route2] — [Feature 2 name]
48
+ - /poc/[route3] — [Feature 3 name]
49
+
50
+ Preview: http://localhost:4173/poc
51
+
52
+ Stories built: N/N
53
+ Build status: success | partial (list failures)
54
+ ```
55
+
56
+ ## After completion
57
+
58
+ Update `.context/poc/pipeline.yaml`:
59
+ - Set `phases.verify.status: done`
60
+ - Set `status: done`