the-frame-ai 0.11.4 → 0.12.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 CHANGED
@@ -325,6 +325,7 @@ These 7 commands cover 90% of solo dev work:
325
325
 
326
326
  | Command | When to use |
327
327
  |---------|-------------|
328
+ | `/frame:test-plan` | After review, before ship — generates a manual "go check this as a user" checklist of what changed |
328
329
  | `/frame:ship` | Commit, optional push/PR, update memory |
329
330
  | `/frame:checkpoint` | Save a git tag before a risky change |
330
331
  | `/frame:rollback` | Roll back to a checkpoint |
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "the-frame-ai",
3
- "version": "0.11.4",
3
+ "version": "0.12.0",
4
4
  "description": "FRAME — Framework for AI-Assisted Solo Development",
5
5
  "type": "module",
6
6
  "bin": {
@@ -149,6 +149,13 @@ Create `docs/specs/{feature}/review.md`:
149
149
  - Status: Review complete, ready to ship
150
150
  ```
151
151
 
152
+ On approve, suggest the next step:
153
+ ```
154
+ ✅ Review passed.
155
+ → Run /frame:test-plan to get a manual "what to check as a user" list before shipping,
156
+ or go straight to /frame:ship.
157
+ ```
158
+
152
159
  **If request changes:**
153
160
  ```markdown
154
161
  ## Current Position
@@ -20,14 +20,14 @@ Update `.planning/STATE.md` before starting:
20
20
  ```
21
21
 
22
22
  Read `.planning/STATE.md` and verify:
23
- - `Phase: REVIEW` ✓
23
+ - `Phase:` is `REVIEW` OR `TEST` (TEST = manual test plan was generated after review)
24
24
  - `Status:` is `approve` OR `Shipped` OR contains `ready to ship` ✓ (not `request changes`)
25
25
 
26
26
  If conditions not met → **STOP**:
27
27
  ```
28
28
  ❌ Ship blocked. Review not completed or not approved.
29
29
  Current status: {status}
30
- Run /frame:review first.
30
+ Run /frame:review first (optionally /frame:test-plan before shipping).
31
31
  ```
32
32
 
33
33
  Check `Deps Audit` in STATE.md:
@@ -0,0 +1,153 @@
1
+ # /frame:test-plan -- Manual User Acceptance Checklist
2
+
3
+ Generates a human-readable checklist of what YOU, as a user, should go and verify by hand after a feature is built. Not code tests (those are written during the task) — this is the "go click through it like a real user" list before shipping.
4
+
5
+ Runs in the TEST phase, between REVIEW and SHIP.
6
+
7
+ ## Instructions
8
+
9
+ Build a manual test plan for: **$ARGUMENTS** (if empty — use the current feature from STATE.md).
10
+
11
+ ### Step 0: Update STATE.md (start)
12
+
13
+ Update `.planning/STATE.md` before any work:
14
+ ```markdown
15
+ ## Current Position
16
+ - Phase: TEST
17
+ - Status: IN_PROGRESS
18
+ - Started: {timestamp}
19
+ ```
20
+
21
+ ### Step 1: Understand what changed
22
+
23
+ Read context in order (skip what doesn't exist):
24
+ - `.planning/STATE.md` — current feature, last completed tasks
25
+ - `docs/specs/{feature}/spec.md` — what the feature is supposed to do (user-facing behavior)
26
+ - `docs/specs/{feature}/plan.md` — which tasks were done, their Risk levels
27
+ - `docs/specs/{feature}/review.md` — issues found in review (verify they were actually fixed)
28
+
29
+ Then look at the real diff to ground the plan in what actually changed:
30
+ ```bash
31
+ git diff --stat HEAD~1 HEAD 2>/dev/null || git diff --stat
32
+ git diff --stat
33
+ ```
34
+
35
+ **D-step**: You now have a concrete list of what changed — features, screens, flows, endpoints, behaviors.
36
+
37
+ ### Step 2: Turn changes into user-facing scenarios
38
+
39
+ For each change, ask: *"What would a user actually do that touches this, and what should they see?"*
40
+
41
+ Cover these categories (only the ones that apply):
42
+
43
+ - **Happy path** — the main flow the feature was built for, step by step as a user.
44
+ - **Edge cases** — empty states, long input, special characters, zero/many items, slow network, offline.
45
+ - **Error handling** — wrong input, denied permissions, failed request — does the user see a clear message (not a blank screen or crash)?
46
+ - **Regression** — existing flows near the changed code that could have broken. Use the diff to spot which screens/features sit next to the changes.
47
+ - **Cross-cutting** — mobile/responsive, different roles/accounts, language (i18n), refresh/back button, browser reload.
48
+
49
+ Each scenario must be written for a human to follow without reading code:
50
+ - **What to do** — concrete steps ("Open X → click Y → enter Z")
51
+ - **Expected** — what should happen ("see message «...», item appears in list")
52
+
53
+ Skip anything already fully covered by automated tests that can't be observed in the UI — this plan is about what a user *sees and does*.
54
+
55
+ ### Step 3: Write the test plan file
56
+
57
+ Create `docs/specs/{feature}/test-plan.md`:
58
+
59
+ ```markdown
60
+ # Test Plan: {Feature}
61
+
62
+ ## Date
63
+ {date}
64
+
65
+ ## What changed
66
+ {2–4 bullets in plain language — what's new/different from a user's point of view}
67
+
68
+ ## How to verify (go do this as a user)
69
+
70
+ ### Happy path
71
+ - [ ] **{Scenario}**
72
+ - Do: {steps}
73
+ - Expect: {result}
74
+
75
+ ### Edge cases
76
+ - [ ] **{Scenario}**
77
+ - Do: {steps}
78
+ - Expect: {result}
79
+
80
+ ### Error handling
81
+ - [ ] **{Scenario}**
82
+ - Do: {steps}
83
+ - Expect: {result}
84
+
85
+ ### Regression (things near the change that could break)
86
+ - [ ] **{Scenario}**
87
+ - Do: {steps}
88
+ - Expect: {result}
89
+
90
+ ### Cross-cutting (mobile / roles / i18n / reload)
91
+ - [ ] **{Scenario}**
92
+ - Do: {steps}
93
+ - Expect: {result}
94
+
95
+ ## Where to test
96
+ - URL / screen / command: {from .frame/config.json devServer.url, or ask}
97
+
98
+ ## Notes
99
+ {anything to watch for — known limitations, things review flagged}
100
+ ```
101
+
102
+ Keep it tight: 5–12 scenarios total, prioritized by Risk from plan.md (high-risk tasks get more scenarios). A short list that gets done beats a long one that doesn't.
103
+
104
+ ### Step 4: Tell the user to go test
105
+
106
+ Output the checklist location and a short summary:
107
+ ```
108
+ 📋 Test plan ready: docs/specs/{feature}/test-plan.md
109
+ {N} scenarios to check by hand.
110
+
111
+ Top things to verify first:
112
+ 1. {highest-risk scenario}
113
+ 2. {next}
114
+ 3. {next}
115
+
116
+ → Go through the list, tick the boxes. When it passes, run /frame:ship.
117
+ If something fails → /frame:debug «what broke» or /frame:fast «fix».
118
+ ```
119
+
120
+ For UI-heavy scenarios, optionally suggest:
121
+ ```
122
+ For visual scenarios you can also run /frame:verify-ui to screenshot-check in a browser.
123
+ ```
124
+
125
+ ### Step 5: Update STATE.md (final)
126
+
127
+ ```markdown
128
+ ## Current Position
129
+ - Phase: TEST
130
+ - Feature: {feature}
131
+ - Test Plan: docs/specs/{feature}/test-plan.md
132
+ - Scenarios: {N}
133
+ - Status: Test plan ready, ready to ship
134
+ ```
135
+
136
+ ## Rules
137
+
138
+ - **User language, not code** — every scenario must be followable without reading the source.
139
+ - **Grounded in the diff** — scenarios come from what actually changed, not generic boilerplate.
140
+ - **Prioritize by Risk** — high-risk tasks from plan.md get the most attention.
141
+ - **Don't run the tests** — this command produces the checklist; the user (or /frame:verify-ui) executes it.
142
+ - **Short and finishable** — 5–12 scenarios, not 40.
143
+
144
+ ## When to Use
145
+
146
+ - After `/frame:review` passes, before `/frame:ship`
147
+ - Whenever you want a concrete "what do I click to be sure this works" list
148
+ - Before shipping anything user-facing
149
+
150
+ ## Result
151
+
152
+ - `docs/specs/{feature}/test-plan.md` created — manual user-acceptance checklist
153
+ - `.planning/STATE.md` updated (Phase: TEST, ready to ship)