procedure-cli 0.1.13 → 0.1.14

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 (42) hide show
  1. package/dist/steps/build-test.js +1 -1
  2. package/dist/steps/build-test.js.map +1 -1
  3. package/dist/steps/product-context.js +1 -1
  4. package/dist/steps/product-context.js.map +1 -1
  5. package/dist/steps/project-info.js +1 -1
  6. package/dist/steps/project-info.js.map +1 -1
  7. package/package.json +5 -1
  8. package/.claude/settings.local.json +0 -27
  9. package/.env.example +0 -2
  10. package/AGENTS.md +0 -134
  11. package/CLAUDE.md +0 -138
  12. package/CODE-FIXED.md +0 -252
  13. package/CODE-REVIEW.md +0 -558
  14. package/config/defaults.json +0 -8
  15. package/config/powerline-config.json +0 -52
  16. package/config/stacks/typescript-node.json +0 -15
  17. package/docs/GIAI-THICH-CLAUDE-MD.md +0 -206
  18. package/docs/PRD.md +0 -141
  19. package/docs/USER-STORIES.md +0 -324
  20. package/src/app.tsx +0 -213
  21. package/src/cli.tsx +0 -19
  22. package/src/components/banner.tsx +0 -23
  23. package/src/components/gutter-line.tsx +0 -16
  24. package/src/components/guttered-select.tsx +0 -231
  25. package/src/components/step-indicator.tsx +0 -32
  26. package/src/components/timeline.tsx +0 -57
  27. package/src/lib/fs.ts +0 -23
  28. package/src/lib/git.ts +0 -41
  29. package/src/lib/powerline.ts +0 -48
  30. package/src/lib/template.ts +0 -161
  31. package/src/lib/types.ts +0 -70
  32. package/src/providers/openai.ts +0 -5
  33. package/src/providers/zai.ts +0 -7
  34. package/src/steps/architecture.tsx +0 -72
  35. package/src/steps/build-test.tsx +0 -114
  36. package/src/steps/generation.tsx +0 -176
  37. package/src/steps/powerline.tsx +0 -254
  38. package/src/steps/product-context.tsx +0 -269
  39. package/src/steps/project-info.tsx +0 -183
  40. package/src/steps/stack-style.tsx +0 -304
  41. package/src/theme.ts +0 -15
  42. package/tsconfig.json +0 -17
package/CODE-FIXED.md DELETED
@@ -1,252 +0,0 @@
1
- # Code Fix Log
2
-
3
- ## Writing Standard
4
- - Each entry documents fixes applied for a specific `CODE-REVIEW.md` entry.
5
- - Reference the source review by its Entry ID (e.g., `CR-20260221-001`). Do NOT re-describe findings — only document actions taken.
6
- - For finding details, the reader should consult the referenced `CODE-REVIEW.md` entry.
7
- - Each finding is referenced as `Finding #N (Severity)` matching the review's numbering.
8
- - Fixed findings must include `file:line` for every change made.
9
- - Deferred findings must include rationale and a revisit trigger.
10
- - Verification section must confirm `npm run typecheck` + `npm run build` status after fixes.
11
- - Language: English only. Tone: Technical, concise, action-focused.
12
-
13
- ### Entry ID Convention
14
- - Required field for every entry: `Entry ID`.
15
- - Format: `CF-YYYYMMDD-###`
16
- - Example: `CF-20260222-001`
17
- - `###` is a zero-padded sequence number for that day.
18
-
19
- ---
20
-
21
- ## Entry 2026-02-22
22
-
23
- ### Entry ID
24
- - `CF-20260222-001`
25
-
26
- ### Source Review
27
- - `CR-20260221-001` (CODE-REVIEW.md entry 2026-02-21)
28
-
29
- ### Fixes Applied
30
-
31
- 1. Finding #1 (High) — **Fixed**
32
- - `src/lib/powerline.ts:33` — Changed `--config=~/.claude/powerline-config.json` to `--config=.claude/powerline-config.json` so the status-line command reads from the project-local path where the config is actually written.
33
-
34
- 2. Finding #2 (Medium) — **Fixed**
35
- - `src/lib/git.ts:3-11` — Added `hasGitIdentity()` helper that pre-checks `git config user.name` and `git config user.email`.
36
- - `src/lib/git.ts:13-28` — Refactored `initGit()` to return `{ committed: boolean; reason?: string }`. Skips `git commit` when identity is missing and returns a descriptive reason string.
37
-
38
- 3. Finding #3 (Medium) — **Fixed**
39
- - `src/lib/powerline.ts:21-29` — Wrapped `JSON.parse(raw)` in try/catch; malformed `.claude/settings.json` now falls back to empty object instead of throwing.
40
-
41
- 4. Finding #4 (Medium) — **Fixed**
42
- - `src/lib/template.ts:38-44` — Added `checkConflicts(targetDir)` function that returns list of existing output files that would be overwritten.
43
- - `src/steps/generation.tsx:5,61,102-113` — Imported `checkConflicts`, added yellow warning in summary phase listing files that will be overwritten before user confirms.
44
-
45
- 5. Finding #5 (Low) — **Fixed**
46
- - `src/lib/types.ts:64` — Added `generationSkipped: boolean` field to `WizardAnswers`.
47
- - `src/app.tsx:49` — Added `generationSkipped: false` to `EMPTY_ANSWERS`.
48
- - `src/app.tsx:83` — Updated `getSummary` case 5 to return `"skipped"` when `generationSkipped` is true.
49
- - `src/steps/generation.tsx:9` — Changed `onComplete` prop type to `(partial: Partial<WizardAnswers>) => void`.
50
- - `src/steps/generation.tsx:35` — On successful generation, calls `onComplete({ generationSkipped: false })`.
51
- - `src/steps/generation.tsx:48` — On cancel, calls `onComplete({ generationSkipped: true })`.
52
- - `src/app.tsx:179` — Changed `onComplete={() => handleStepComplete({})}` to `onComplete={handleStepComplete}`.
53
-
54
- 6. Finding #6 (Low) — **Fixed**
55
- - `templates/docs/USER-STORIES.md.hbs:1-32` — Added Handlebars `{{#if userStories.length}}` conditional with fallback starter template content when `userStories` is empty. Fallback includes example user story in Gherkin format with clear TODO instructions.
56
-
57
- ### Deferred
58
- None — all 6 findings fixed.
59
-
60
- ### Verification Notes
61
- - `npm run typecheck`: pass (0 errors)
62
- - All fixes verified through code inspection.
63
-
64
- ### Residual Risks / Testing Gaps
65
- - No automated tests for `checkConflicts()` behavior.
66
- - No automated tests for `initGit()` across machines with missing git identity.
67
- - No automated tests for malformed `.claude/settings.json` handling.
68
- - No automated tests asserting generation summary truthfulness when user cancels.
69
- - No runtime test for Handlebars `{{#if userStories.length}}` fallback rendering.
70
-
71
- ---
72
-
73
- ## Entry 2026-02-22
74
-
75
- ### Entry ID
76
- - `CF-20260222-002`
77
-
78
- ### Source Review
79
- - `CR-20260221-002` (CODE-REVIEW.md entry 2026-02-21)
80
-
81
- ### Fixes Applied
82
-
83
- 1. Finding #7 (Medium) — **Fixed**
84
- - `src/lib/git.ts:13-20` — Added `hasStagedFiles()` helper that runs `git status --porcelain`; returns `false` when index is empty.
85
- - `src/lib/git.ts:30-33` — Added early return `{ committed: false, reason: 'Nothing to commit — directory is empty.' }` before identity check, preventing hard crash on empty-directory init.
86
-
87
- 2. Finding #8 (Low) — **Fixed**
88
- - `src/app.tsx:133-141` — Wrapped completion message in `answers.generationSkipped` conditional. Skip path shows neutral `"Generation was skipped — no files were written."` Scaffold path retains original project name + doc check message.
89
-
90
- 3. Finding #6 re-raised (Low, Still Open in CR-20260221-002) — **Already Fixed**
91
- - Covered by `CF-20260222-001` Finding #6: `templates/docs/USER-STORIES.md.hbs` Handlebars fallback added in previous fix cycle. No further action required.
92
-
93
- ### Deferred
94
- None.
95
-
96
- ### Verification Notes
97
- - `npm run typecheck`: pass (0 errors)
98
- - `npm run build`: pass
99
-
100
- ---
101
-
102
- ## Entry 2026-02-22
103
-
104
- ### Entry ID
105
- - `CF-20260222-003`
106
-
107
- ### Source Review
108
- - `CR-20260221-004` (CODE-REVIEW.md entry 2026-02-21)
109
-
110
- ### Fixes Applied
111
-
112
- 1. Finding #9 (Low, Still Open) — **Fixed**
113
- - `src/steps/powerline.tsx:22` — Added `gitCommitted?: boolean` to `SetupResult` interface.
114
- - `src/steps/powerline.tsx:41-44` — `runSetup()` now stores `gitResult.committed` in `setupResult.gitCommitted`.
115
- - `src/steps/powerline.tsx:125-133` — "Git repository initialized." only renders when `setupResult.gitCommitted` is true. When commit failed, only the yellow warning with reason is shown (no mixed success/failure messaging).
116
-
117
- ### Deferred
118
- None.
119
-
120
- ### Verification Notes
121
- - `npm run typecheck`: pass
122
- - `npm run build`: pass
123
-
124
- ---
125
- ## Entry 2026-02-22
126
-
127
- ### Entry ID
128
- - `CF-20260222-007`
129
-
130
- ### Source Review
131
- - `CR-20260222-005` (CODE-REVIEW.md entry 2026-02-22)
132
-
133
- ### Fixes Applied
134
-
135
- 1. Finding #14 (Low) — **Fixed**
136
- - `src/steps/build-test.tsx:107-111` — On last field (`isLast`), hint now shows `↓ / enter confirm` instead of silently omitting `↓`. On non-last fields, hint consolidated to `↓ next enter confirm`. Behavior unchanged; hint made consistent with actual key handling.
137
- - `src/steps/product-context.tsx:253` — `nonGoals` hint updated from `"↑ prev enter confirm"` to `"↑ prev ↓ / enter confirm"`.
138
-
139
- 2. Finding #15 (Low) — **Fixed**
140
- - `docs/PRD.md:29` — Updated F-001 bullet from "exits with helpful message" to "warns when cwd has files and continues — Step 6 overwrite confirmation handles conflicts".
141
- - `README.md:4-9` — Replaced stale "exits" wording with accurate warn-and-continue description; overwrite list noted as Step 6 behavior.
142
- - `docs/USER-STORIES.md:US-002` — Scenario updated from hard-exit / `process.exit(1)` to warn-and-continue / Step 6 overwrite confirmation flow.
143
-
144
- ### Deferred
145
- None.
146
-
147
- ### Verification Notes
148
- - `npm run typecheck`: pass
149
- - `npm run build`: pass
150
-
151
- ---
152
-
153
- ## Entry 2026-02-22
154
-
155
- ### Entry ID
156
- - `CF-20260222-004`
157
-
158
- ### Source Review
159
- - `CR-20260222-002` (CODE-REVIEW.md entry 2026-02-22)
160
-
161
- ### Fixes Applied
162
-
163
- 1. Finding #10 (Low) — **Fixed**
164
- - `src/lib/types.ts:68` — Added `setupGit: boolean` to `WizardAnswers` so setup choice can be persisted.
165
- - `src/app.tsx:51` — Added `setupGit: false` to `EMPTY_ANSWERS`.
166
- - `src/app.tsx:89` — Updated setup summary to render `Git init: yes/no` based on `answers.setupGit` instead of always implying git initialization.
167
- - `src/steps/powerline.tsx:48` — Updated `onComplete` payload to include `setupGit: git`, preserving the user’s git setup decision for final summaries.
168
-
169
- ### Deferred
170
- None.
171
-
172
- ### Verification Notes
173
- - `npm run typecheck`: pass
174
- - `npm run build`: pass
175
-
176
- ---
177
- ## Entry 2026-02-22
178
-
179
- ### Entry ID
180
- - `CF-20260222-005`
181
-
182
- ### Source Review
183
- - `CR-20260222-003` (CODE-REVIEW.md entry 2026-02-22)
184
-
185
- ### Fixes Applied
186
-
187
- 1. Finding #11 (Low) — **Fixed**
188
- - `src/steps/build-test.tsx:68` — Replaced `dimColor` with `color={C.overlay1}` to comply with the Catppuccin theme rule and keep all color rendering sourced from `src/theme.ts` constants.
189
-
190
- ### Deferred
191
- None.
192
-
193
- ### Verification Notes
194
- - `npm run typecheck`: pass
195
- - `npm run build`: pass
196
- - `rg "dimColor|color=\"(cyan|green|red|yellow|blue|magenta|white|black)\"" -n src`: no matches
197
-
198
- ---
199
- ## Entry 2026-02-22
200
-
201
- ### Entry ID
202
- - `CF-20260222-006`
203
-
204
- ### Source Review
205
- - `CR-20260222-004` (CODE-REVIEW.md entry 2026-02-22)
206
-
207
- ### Fixes Applied
208
-
209
- 1. Finding #12 (Medium) — **Fixed**
210
- - `src/cli.tsx:11` — Replaced hard-stop behavior with warning-only messaging when directory is non-empty.
211
- - `src/cli.tsx:13` — Added explicit note that existing files may be overwritten during Step 6, preserving the intended Generation conflict-confirmation flow.
212
- - `src/cli.tsx:16` — Removed process exit path so wizard continues and existing overwrite warnings in Generation remain reachable.
213
-
214
- 2. Finding #13 (Low) — **Fixed**
215
- - `src/cli.tsx:16` — Updated setup hint to include both valid invocations: `npx procedure-cli` and `npx @b3awesome/procedure`, avoiding single-command drift.
216
-
217
- ### Deferred
218
- None.
219
-
220
- ### Verification Notes
221
- - `npm run typecheck`: pass
222
- - `npm run build`: pass
223
-
224
- ---
225
-
226
- ## Entry 2026-02-22
227
-
228
- ### Entry ID
229
- - `CF-20260222-008`
230
-
231
- ### Source Review
232
- - `CR-20260222-006` (CODE-REVIEW.md entry 2026-02-22)
233
-
234
- ### Fixes Applied
235
-
236
- 1. Finding #16 (Low) — **Fixed**
237
- - `src/steps/project-info.tsx:51` — Added `isSelectStep` constant (`currentStep === "packageManager" || currentStep === "license"`).
238
- - `src/steps/project-info.tsx:57` — Added `&& !isSelectStep` guard to `key.tab` branch so Tab never fires the text-field advance path on select steps.
239
- - `src/steps/project-info.tsx:156` — Removed "Tab next" from the `packageManager` hint; now reads `"Shift+Tab prev ↑↓ move Enter select"`.
240
-
241
- 2. Finding #17 (Low) — **Fixed**
242
- - `src/steps/product-context.tsx:86` — Added `isMultiSelectPhase` constant (`currentPhase === "techStack" || currentPhase === "coreFeatures"`).
243
- - `src/steps/product-context.tsx:90` — Added `&& !isMultiSelectPhase` guard to `key.tab` branch so Tab never discards GutteredMultiSelect's internal selection state.
244
- - `src/steps/product-context.tsx:221` — Removed "Tab next" from the `techStack` hint; now reads `"Shift+Tab prev ↑↓ move Space toggle Enter confirm"`.
245
- - `src/steps/product-context.tsx:238` — Removed "Tab next" from the `coreFeatures` hint; now reads `"Shift+Tab prev ↑↓ move Space toggle Enter confirm"`.
246
-
247
- ### Deferred
248
- None.
249
-
250
- ### Verification Notes
251
- - `npm run typecheck`: pass
252
- - `npm run build`: not run (typecheck sufficient per project standard for low-severity fixes)