procedure-cli 0.1.10 → 0.1.12

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/CODE-FIXED.md CHANGED
@@ -169,3 +169,29 @@ None.
169
169
  - `rg "dimColor|color=\"(cyan|green|red|yellow|blue|magenta|white|black)\"" -n src`: no matches
170
170
 
171
171
  ---
172
+ ## Entry 2026-02-22
173
+
174
+ ### Entry ID
175
+ - `CF-20260222-006`
176
+
177
+ ### Source Review
178
+ - `CR-20260222-004` (CODE-REVIEW.md entry 2026-02-22)
179
+
180
+ ### Fixes Applied
181
+
182
+ 1. Finding #12 (Medium) — **Fixed**
183
+ - `src/cli.tsx:11` — Replaced hard-stop behavior with warning-only messaging when directory is non-empty.
184
+ - `src/cli.tsx:13` — Added explicit note that existing files may be overwritten during Step 6, preserving the intended Generation conflict-confirmation flow.
185
+ - `src/cli.tsx:16` — Removed process exit path so wizard continues and existing overwrite warnings in Generation remain reachable.
186
+
187
+ 2. Finding #13 (Low) — **Fixed**
188
+ - `src/cli.tsx:16` — Updated setup hint to include both valid invocations: `npx procedure-cli` and `npx @b3awesome/procedure`, avoiding single-command drift.
189
+
190
+ ### Deferred
191
+ None.
192
+
193
+ ### Verification Notes
194
+ - `npm run typecheck`: pass
195
+ - `npm run build`: pass
196
+
197
+ ---
package/CODE-REVIEW.md CHANGED
@@ -384,3 +384,48 @@
384
384
 
385
385
  ### Residual Risks / Testing Gaps
386
386
  - No snapshot/UI regression tests currently enforce theme consistency rules across wizard steps.
387
+
388
+ ---
389
+
390
+ ## Entry 2026-02-22
391
+
392
+ ### Entry ID
393
+ - `CR-20260222-004`
394
+
395
+ ### Supersedes
396
+ - `CR-20260222-003`
397
+
398
+ ### Scope
399
+ - New review cycle after recent CLI pre-flight and documentation updates.
400
+ - Validate latest fixed findings and check for regressions in runtime behavior.
401
+
402
+ ### Validation Matrix
403
+ | Finding # | Previous Severity | Current Status | Evidence | Notes |
404
+ |-----------|-------------------|----------------|----------|-------|
405
+ | 11 | Low | Fixed | `CODE-FIXED.md:188`, `src/steps/build-test.tsx:68` | Theme consistency fix remains present (`color={C.overlay1}` in Build & Test default hint). |
406
+
407
+ ### Findings (ordered by severity)
408
+ 1. Medium - New empty-directory hard stop regresses overwrite-confirmation flow (`Finding #12`, `Status: New`)
409
+ - `src/cli.tsx:7`
410
+ - `src/cli.tsx:8`
411
+ - `src/steps/generation.tsx:45`
412
+ - `src/steps/generation.tsx:139`
413
+ - `src/lib/template.ts:40`
414
+ - CLI now exits before wizard render when cwd has any entries. This bypasses the existing generation-stage conflict detection and explicit overwrite confirmation (`checkConflicts` + "⚠ Will overwrite"), removing a previously supported safe path for regeneration in non-empty directories.
415
+ - Recommendation: downgrade pre-flight to a warning (not hard exit), or gate strict-empty behavior behind an explicit flag while preserving Step 6 overwrite confirmation.
416
+
417
+ 2. Low - Empty-directory guidance command is inconsistent with repo package metadata (`Finding #13`, `Status: New`)
418
+ - `src/cli.tsx:15`
419
+ - `package.json:2`
420
+ - Error guidance suggests `npx @b3awesome/procedure`, but repository package metadata is `procedure-cli` with bin `procedure`. This can mislead contributors running the package directly from this repo context.
421
+ - Recommendation: derive suggested invocation from package metadata/config (single source of truth) or print both supported invocations explicitly.
422
+
423
+ ### Verification Notes
424
+ - Procedure compliance: read latest `CODE-REVIEW.md` and `CODE-FIXED.md` before this review.
425
+ - `npm run typecheck`: pass.
426
+ - `npm run build`: pass.
427
+ - Reviewed local working-tree diffs in `README.md`, `docs/PRD.md`, `docs/USER-STORIES.md`, and `src/cli.tsx`.
428
+
429
+ ### Residual Risks / Testing Gaps
430
+ - No integration test for behavior in non-empty directories vs regeneration flow (`checkConflicts` path).
431
+ - No test that validates CLI guidance text stays aligned with actual package/bin invocation names.
package/README.md CHANGED
@@ -1,29 +1,30 @@
1
1
  # Procedure CLI
2
2
 
3
- Interactive CLI wizard that scaffolds projects with AI-driven documentation and best practices. Inspired by [Skills.sh](https://skills.sh) visual style.
3
+ Interactive CLI wizard that scaffolds new projects with a battle-tested `CLAUDE.md`, PRD, user stories, and optional tooling setup. Inspired by [Skills.sh](https://skills.sh) visual style.
4
4
 
5
- ## What It Does
5
+ ## Requirements
6
6
 
7
- Procedure CLI generates a complete project foundation including:
7
+ Must be run in an **empty directory**. If the directory has existing files, the CLI exits with a helpful message.
8
+
9
+ ```bash
10
+ mkdir my-project && cd my-project
11
+ npx @b3awesome/procedure
12
+ ```
13
+
14
+ ## What It Generates
8
15
 
9
16
  | File | Purpose |
10
17
  |------|---------|
11
- | `CLAUDE.md` | AI-ready development guide with architecture, code style, workflow |
18
+ | `CLAUDE.md` | AI-ready development guide with architecture, code style, and workflow |
12
19
  | `README.md` | Project overview with quick start, tech stack, and docs links |
13
- | `docs/PRD.md` | Product Requirements Document with vision, features, tech stack |
20
+ | `docs/PRD.md` | Product Requirements Document with vision, features, and tech stack |
14
21
  | `docs/USER-STORIES.md` | Gherkin-formatted acceptance criteria and user stories |
15
22
  | `.env.example` | Environment variables template |
16
- | `.gitignore` | Sensible git ignore defaults |
17
-
18
- ## Quick Start
19
-
20
- ```bash
21
- npx procedure-cli
22
- ```
23
+ | `.gitignore` | Language/framework-appropriate git ignore defaults |
23
24
 
24
25
  ## Visual Style
25
26
 
26
- Procedure CLI uses a Skills.sh / @clack/prompts-inspired vertical timeline UI:
27
+ Catppuccin Mocha color theme with a Skills.sh-inspired vertical timeline:
27
28
 
28
29
  ```
29
30
  █▀█ █▀█ █▀█ █▀▀ █▀▀ █▀▄ █ █ █▀█ █▀▀
@@ -32,96 +33,119 @@ Procedure CLI uses a Skills.sh / @clack/prompts-inspired vertical timeline UI:
32
33
  Bootstrap any project with a battle-tested
33
34
  CLAUDE.md, PRD, user stories, and powerline.
34
35
  ───────────────────────────────────────────
35
- ◇ Project Info
36
- my-app — A task management tool
36
+
37
+ Project Info
38
+ │ my-app — A task management tool
37
39
 
38
- ◆ Stack & Style
39
- │ ❯ QuickStart (use a preset)
40
- Advanced (manual config)
40
+ ◆ Stack & Style ← animated dot while active
41
+ │ ❯ TypeScript + Node.js — CLI tools, backend APIs, npm packages
42
+ Next.js Full-Stack — SaaS apps, marketing sites, SSR/SSG
43
+ │ React SPA — Dashboards, admin panels, SPAs
44
+ │ ↓ more
45
+ │ ↑↓ move, enter select
41
46
 
42
- ○ Build & Test
47
+ ○ Build & Test
43
48
 
44
- ○ Architecture
49
+ ○ Architecture
45
50
 
46
- ○ Product Context
51
+ ○ Product Context
47
52
 
48
- ○ Generation
53
+ ○ Generation
49
54
 
50
- Powerline
55
+ Setup
56
+
51
57
  ```
52
58
 
53
- - `◇` completed step (green) — summary on separate `│` line
54
- - `◆` active step (green, bold) — content with `│` gutter
55
- - `○` pending step (dim)
56
- - `│` continuous vertical gutter connecting all steps
59
+ | Indicator | Meaning |
60
+ |-----------|---------|
61
+ | `◇` (green) | Completed — summary shown on the `│` line below |
62
+ | `◆◈◇◈` (mauve, animated) | Active waiting for input |
63
+ | `○` (dim) | Pending |
64
+ | `┌` / `└` | Open/close corners wrapping the full wizard flow |
57
65
 
58
66
  ## The 7 Wizard Steps
59
67
 
60
- 1. **Project Info** — Name, description, package manager (select), license (select)
61
- 2. **Stack & Style** — QuickStart preset or advanced manual config (language, framework, code style)
62
- 3. **Build & Test** — Build/test/typecheck/lint/pre-PR commands with smart defaults
63
- 4. **Architecture** — Select from 7 patterns (Monorepo, MVC, Feature folders, etc.) with auto-generated best-practice notes
64
- 5. **Product Context** Problem, users, tech stack (multi-select with 18 technologies, prefilled from Step 2), core features, non-goals
65
- 6. **Generation** — Review summary, see overwrite warnings, and confirm before writing files (or skip)
66
- 7. **Powerline** Optional Claude Code powerline setup + git init (commit only when applicable)
68
+ ### 1. Project Info
69
+ Name, description, package manager (select), license (select).
70
+
71
+ ### 2. Stack & Style
72
+ Choose a **QuickStart preset** or configure manually:
73
+
74
+ | Preset | Best for |
75
+ |--------|----------|
76
+ | TypeScript + Node.js | CLI tools, backend APIs, npm packages |
77
+ | Next.js Full-Stack | SaaS apps, marketing sites, SSR/SSG |
78
+ | React SPA | Dashboards, admin panels, SPAs |
79
+ | Python + FastAPI | AI/ML backends, REST APIs, data services |
80
+ | Go HTTP Service | High-perf APIs, microservices |
81
+ | React Native + Expo | Cross-platform mobile apps |
82
+ | Configure manually → | Custom language, framework, and code style |
83
+
84
+ Presets auto-fill build/test/typecheck/lint/PR commands.
85
+
86
+ ### 3. Build & Test
87
+ Build, test, typecheck, lint, and pre-PR commands — with smart defaults pre-filled when a QuickStart preset was selected.
88
+
89
+ ### 4. Architecture
90
+ Select from 7 patterns (Monolith, MVC, Feature folders, Hexagonal, Microservices, Event-driven, Monorepo). Architecture notes are auto-generated from the chosen pattern.
91
+
92
+ ### 5. Product Context
93
+ Problem statement, target users, tech stack (multi-select, prefilled from Step 2), core features (multi-select with custom input), non-goals.
94
+
95
+ ### 6. Generation
96
+ Full summary of all collected inputs. Warns about any files that will be overwritten. Confirm to write files or skip.
97
+
98
+ ### 7. Setup *(optional)*
99
+ Three independent yes/no prompts — each explained before asking:
100
+
101
+ - **Claude Powerline** — live status bar (git branch, context %, cost, active tools); runs via `npx` per session
102
+ - **Git repository** — `git init` + initial commit with the generated files
103
+ - **npm release scripts** — creates `~/bin/<project>-release` and adds `release:patch/minor/major` to `package.json`
67
104
 
68
105
  ## UI Components
69
106
 
70
107
  | Component | File | Purpose |
71
108
  |-----------|------|---------|
72
- | Banner | `src/components/banner.tsx` | ASCII art header + tagline + horizontal rule |
73
- | Timeline | `src/components/timeline.tsx` | Vertical step flow with `◇`/`◆`/`○` indicators |
74
- | StepIndicator | `src/components/step-indicator.tsx` | Single step dot + label rendering |
75
- | GutterLine | `src/components/gutter-line.tsx` | `│ ` prefix wrapper for content lines |
76
- | GutteredSelect | `src/components/guttered-select.tsx` | Single-select with `│ ❯` gutter (replaces @inkjs/ui Select) |
77
- | GutteredMultiSelect | `src/components/guttered-select.tsx` | Multi-select with `●`/`○` toggle + prefill support |
109
+ | Banner | `src/components/banner.tsx` | ASCII art header + tagline + divider |
110
+ | Timeline | `src/components/timeline.tsx` | `┌`/`└` corners, `│` gutter, step flow |
111
+ | StepIndicator | `src/components/step-indicator.tsx` | Animated dot + label per step |
112
+ | GutterLine | `src/components/gutter-line.tsx` | `│ ` prefix wrapper (Box row) |
113
+ | GutteredSelect | `src/components/guttered-select.tsx` | Sliding-window single-select with `│ ❯` gutter |
114
+ | GutteredMultiSelect | `src/components/guttered-select.tsx` | Multi-select with `●`/`○` toggle + custom input |
78
115
 
79
116
  ## Tech Stack
80
117
 
81
- - **Language:** TypeScript (strict mode, ESM)
82
- - **UI Framework:** Ink 6 (React for CLI)
83
- - **UI Components:** Custom guttered select/multi-select (not @inkjs/ui Select)
84
- - **Templating:** Handlebars (.hbs)
85
- - **AI:** Vercel AI SDK 6, Z.ai (GLM models), OpenAI
86
- - **Build:** tsc
118
+ | Layer | Technology |
119
+ |-------|-----------|
120
+ | Language | TypeScript (strict mode, ESM) |
121
+ | UI Framework | Ink 6 (React for CLI) |
122
+ | Templating | Handlebars (`.hbs`) |
123
+ | AI | Vercel AI SDK 6, Z.ai (GLM), OpenAI |
124
+ | Build | tsc |
87
125
 
88
126
  ## Development
89
127
 
90
128
  ```bash
91
- npm run dev # Run CLI in dev mode (⚠️ run in a temp dir, not here!)
92
- npm run build # Compile TypeScript
129
+ npm run dev # Run CLI directly via tsx
130
+ npm run build # Compile to dist/
93
131
  npm run typecheck # Type check only
94
- npm run lint # Alias of typecheck in this repo
95
132
  ```
96
133
 
97
- > **Warning:** Never run `npm run dev` from the procedure project directory — scaffolding writes to cwd and will overwrite procedure's own files. Always `cd` to a temp directory first.
134
+ > **Warning:** Never run `npm run dev` from the procedure project directory — scaffolding writes to `cwd` and will overwrite procedure's own files. Always `cd` to a temp directory first.
98
135
 
99
136
  ## Review & Fix Workflow
100
137
 
101
- This repo tracks review/fix cycles with two append-only logs:
102
-
103
- - `CODE-REVIEW.md` — review entries (`CR-YYYYMMDD-###`)
104
- - `CODE-FIXED.md` — fix entries (`CF-YYYYMMDD-###`)
105
-
106
- Process:
107
- 1. Start review by reading latest `CODE-REVIEW.md` and `CODE-FIXED.md`.
108
- 2. Append new review findings to `CODE-REVIEW.md` only.
109
- 3. During implementation, write fix actions to `CODE-FIXED.md` only.
110
- 4. Re-review and update finding statuses in a new review entry.
111
-
112
- Verification standard after fixes: run `npm run typecheck` and `npm run build`.
138
+ Two append-only logs track review/fix cycles:
113
139
 
114
- ## Recent Behavior Updates
140
+ - `CODE-REVIEW.md` findings (`CR-YYYYMMDD-###`)
141
+ - `CODE-FIXED.md` — fix actions (`CF-YYYYMMDD-###`)
115
142
 
116
- - Generation step now warns when target files already exist before writing.
117
- - If generation is skipped, final summary explicitly states no files were written.
118
- - Git setup no longer hard-fails on empty directories; it reports a warning when nothing is committed.
119
- - `docs/USER-STORIES.md` now includes fallback starter content when no stories are provided.
143
+ Verification standard after fixes: `npm run typecheck` + `npm run build`.
120
144
 
121
145
  ## Documentation
122
146
 
123
- - [CLAUDE.md](./CLAUDE.md) — Project development guide
124
- - [docs/PRD.md](./docs/PRD.md) — Procedure CLI product requirements
147
+ - [CLAUDE.md](./CLAUDE.md) — Development guide
148
+ - [docs/PRD.md](./docs/PRD.md) — Product requirements
125
149
  - [docs/USER-STORIES.md](./docs/USER-STORIES.md) — User stories and acceptance criteria
126
150
  - [docs/GIAI-THICH-CLAUDE-MD.md](./docs/GIAI-THICH-CLAUDE-MD.md) — 4-layer CLAUDE.md methodology (Vietnamese)
127
151
 
package/dist/cli.js CHANGED
@@ -1,6 +1,18 @@
1
1
  #!/usr/bin/env node
2
2
  import { jsx as _jsx } from "react/jsx-runtime";
3
3
  import { render } from "ink";
4
+ import { readdirSync } from "node:fs";
4
5
  import App from "./app.js";
6
+ const entries = readdirSync(process.cwd()).filter((e) => e !== ".DS_Store");
7
+ if (entries.length > 0) {
8
+ const sample = entries.slice(0, 3).join(", ");
9
+ const extra = entries.length > 3 ? `, +${entries.length - 3} more` : "";
10
+ console.error(`\nWarning: current directory is not empty.`);
11
+ console.error(` Found: ${sample}${extra}`);
12
+ console.error(` Existing files can be overwritten during Step 6 (Generation).`);
13
+ console.error(` Recommended for a fresh project:`);
14
+ console.error(` mkdir my-project && cd my-project`);
15
+ console.error(` npx procedure-cli (or: npx @b3awesome/procedure)\n`);
16
+ }
5
17
  render(_jsx(App, {}));
6
18
  //# sourceMappingURL=cli.js.map
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.tsx"],"names":[],"mappings":";;AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,KAAK,CAAC;AAC7B,OAAO,GAAG,MAAM,UAAU,CAAC;AAE3B,MAAM,CAAC,KAAC,GAAG,KAAG,CAAC,CAAC"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.tsx"],"names":[],"mappings":";;AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,KAAK,CAAC;AAC7B,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AACtC,OAAO,GAAG,MAAM,UAAU,CAAC;AAE3B,MAAM,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,WAAW,CAAC,CAAC;AAC5E,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;IACvB,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC9C,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,OAAO,CAAC,MAAM,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;IACxE,OAAO,CAAC,KAAK,CAAC,4CAA4C,CAAC,CAAC;IAC5D,OAAO,CAAC,KAAK,CAAC,YAAY,MAAM,GAAG,KAAK,EAAE,CAAC,CAAC;IAC5C,OAAO,CAAC,KAAK,CAAC,iEAAiE,CAAC,CAAC;IACjF,OAAO,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC;IACpD,OAAO,CAAC,KAAK,CAAC,uCAAuC,CAAC,CAAC;IACvD,OAAO,CAAC,KAAK,CAAC,0DAA0D,CAAC,CAAC;AAC5E,CAAC;AAED,MAAM,CAAC,KAAC,GAAG,KAAG,CAAC,CAAC"}
@@ -1,8 +1,8 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { Text } from "ink";
2
+ import { Box, Text } from "ink";
3
3
  import { C } from "../theme.js";
4
4
  export function GutterLine({ children }) {
5
- return _jsxs(Text, { children: [_jsx(Text, { color: C.overlay1, children: "│ " }), children] });
5
+ return (_jsxs(Box, { flexDirection: "row", children: [_jsx(Text, { color: C.overlay1, children: "│ " }), children] }));
6
6
  }
7
7
  export function EmptyGutter() {
8
8
  return _jsx(Text, { color: C.overlay1, children: "│" });
@@ -1 +1 @@
1
- {"version":3,"file":"gutter-line.js","sourceRoot":"","sources":["../../src/components/gutter-line.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAC3B,OAAO,EAAE,CAAC,EAAE,MAAM,aAAa,CAAC;AAEhC,MAAM,UAAU,UAAU,CAAC,EAAE,QAAQ,EAAkC;IACrE,OAAO,MAAC,IAAI,eAAC,KAAC,IAAI,IAAC,KAAK,EAAE,CAAC,CAAC,QAAQ,YAAG,KAAK,GAAQ,EAAC,QAAQ,IAAQ,CAAC;AACxE,CAAC;AAED,MAAM,UAAU,WAAW;IACzB,OAAO,KAAC,IAAI,IAAC,KAAK,EAAE,CAAC,CAAC,QAAQ,YAAG,GAAG,GAAQ,CAAC;AAC/C,CAAC"}
1
+ {"version":3,"file":"gutter-line.js","sourceRoot":"","sources":["../../src/components/gutter-line.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,EAAE,CAAC,EAAE,MAAM,aAAa,CAAC;AAEhC,MAAM,UAAU,UAAU,CAAC,EAAE,QAAQ,EAAkC;IACrE,OAAO,CACL,MAAC,GAAG,IAAC,aAAa,EAAC,KAAK,aACtB,KAAC,IAAI,IAAC,KAAK,EAAE,CAAC,CAAC,QAAQ,YAAG,KAAK,GAAQ,EACtC,QAAQ,IACL,CACP,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,WAAW;IACzB,OAAO,KAAC,IAAI,IAAC,KAAK,EAAE,CAAC,CAAC,QAAQ,YAAG,GAAG,GAAQ,CAAC;AAC/C,CAAC"}
@@ -87,7 +87,7 @@ export function GutteredMultiSelect({ options, initialSelected, onSubmit, allowC
87
87
  }, { isActive: phase === "selecting" });
88
88
  if (phase === "custom") {
89
89
  const currentSelections = Array.from(selected);
90
- return (_jsxs(Box, { flexDirection: "column", children: [currentSelections.length > 0 && (_jsxs(Text, { children: [_jsx(Text, { color: C.overlay1, children: "│ " }), _jsx(Text, { color: C.green, children: "Selected: " }), _jsx(Text, { children: currentSelections.join(", ") })] })), _jsxs(Text, { children: [_jsx(Text, { color: C.overlay1, children: "│ " }), _jsx(Text, { bold: true, children: "Add custom (comma-separated):" })] }), _jsxs(Text, { children: [_jsx(Text, { color: C.overlay1, children: "│ " }), _jsx(TextInput, { placeholder: customPlaceholder ?? "Type here, press enter to confirm", onSubmit: (value) => {
90
+ return (_jsxs(Box, { flexDirection: "column", children: [currentSelections.length > 0 && (_jsxs(Box, { flexDirection: "row", children: [_jsx(Text, { color: C.overlay1, children: "│ " }), _jsx(Text, { color: C.green, children: "Selected: " }), _jsx(Text, { children: currentSelections.join(", ") })] })), _jsxs(Box, { flexDirection: "row", children: [_jsx(Text, { color: C.overlay1, children: "│ " }), _jsx(Text, { bold: true, children: "Add custom (comma-separated):" })] }), _jsxs(Box, { flexDirection: "row", children: [_jsx(Text, { color: C.overlay1, children: "│ " }), _jsx(TextInput, { placeholder: customPlaceholder ?? "Type here, press enter to confirm", onSubmit: (value) => {
91
91
  const custom = value.split(",").map((s) => s.trim()).filter(Boolean);
92
92
  onSubmit([...currentSelections, ...custom]);
93
93
  } })] })] }));
@@ -1 +1 @@
1
- {"version":3,"file":"guttered-select.js","sourceRoot":"","sources":["../../src/components/guttered-select.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"guttered-select.js","sourceRoot":"","sources":["../../src/components/guttered-select.tsx"],"names":[],"mappings":"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"}
@@ -7,7 +7,7 @@ import { C } from "../theme.js";
7
7
  const PRESETS = {
8
8
  "typescript-node": {
9
9
  label: "TypeScript + Node.js",
10
- description: "Best for: CLI tools, backend APIs, npm packages, scripts",
10
+ description: "CLI tools, backend APIs, npm packages",
11
11
  answers: {
12
12
  language: "TypeScript",
13
13
  framework: "Node.js",
@@ -26,7 +26,7 @@ const PRESETS = {
26
26
  },
27
27
  "nextjs-fullstack": {
28
28
  label: "Next.js Full-Stack",
29
- description: "Best for: SaaS apps, marketing sites, SSR/SSG, API routes",
29
+ description: "SaaS apps, marketing sites, SSR/SSG",
30
30
  answers: {
31
31
  language: "TypeScript",
32
32
  framework: "Next.js",
@@ -45,7 +45,7 @@ const PRESETS = {
45
45
  },
46
46
  "react-spa": {
47
47
  label: "React SPA",
48
- description: "Best for: Dashboards, admin panels, SPAs without SSR",
48
+ description: "Dashboards, admin panels, SPAs",
49
49
  answers: {
50
50
  language: "TypeScript",
51
51
  framework: "React",
@@ -64,7 +64,7 @@ const PRESETS = {
64
64
  },
65
65
  "python-fastapi": {
66
66
  label: "Python + FastAPI",
67
- description: "Best for: AI/ML backends, REST APIs, data services",
67
+ description: "AI/ML backends, REST APIs, data services",
68
68
  answers: {
69
69
  language: "Python",
70
70
  framework: "FastAPI",
@@ -83,7 +83,7 @@ const PRESETS = {
83
83
  },
84
84
  "go-service": {
85
85
  label: "Go HTTP Service",
86
- description: "Best for: High-perf APIs, microservices, concurrent workloads",
86
+ description: "High-perf APIs, microservices",
87
87
  answers: {
88
88
  language: "Go",
89
89
  framework: "net/http",
@@ -102,7 +102,7 @@ const PRESETS = {
102
102
  },
103
103
  "react-native-expo": {
104
104
  label: "React Native + Expo",
105
- description: "Best for: Cross-platform mobile apps (iOS + Android)",
105
+ description: "Cross-platform mobile apps (iOS + Android)",
106
106
  answers: {
107
107
  language: "TypeScript",
108
108
  framework: "React Native",
@@ -129,7 +129,7 @@ const QUICKSTART_OPTIONS = [
129
129
  {
130
130
  label: "Configure manually →",
131
131
  value: "advanced",
132
- description: "Choose languages, frameworks, and code style step by step",
132
+ description: "Choose language, framework, and code style",
133
133
  },
134
134
  ];
135
135
  // ─── Advanced options ────────────────────────────────────────────────────────
@@ -1 +1 @@
1
- {"version":3,"file":"stack-style.js","sourceRoot":"","sources":["../../src/steps/stack-style.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"stack-style.js","sourceRoot":"","sources":["../../src/steps/stack-style.tsx"],"names":[],"mappings":"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"}
package/docs/PRD.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  ## Vision
4
4
 
5
- Empower developers to start projects with production-ready documentation and architecture decisions from day one, reducing onboarding time and ensuring best practices are baked in.
5
+ Empower developers to start projects with production-ready documentation and architecture decisions from day one, reducing onboarding time and ensuring best practices are baked in from the first commit.
6
6
 
7
7
  ## Problem
8
8
 
@@ -24,46 +24,52 @@ Empower developers to start projects with production-ready documentation and arc
24
24
  ## Core Features
25
25
 
26
26
  **F-001: Interactive Project Wizard**
27
- - 7-step guided setup with timeline progress view
28
- - Validates input, provides sensible defaults
29
- - Timeline preview shows estimated completion time
27
+ - 7-step guided setup with Catppuccin Mocha timeline UI
28
+ - `┌`/`└` corners wrap the full flow; animated dot on active step
29
+ - Empty-directory guard: exits with helpful message if cwd contains files
30
+ - Validates required fields; ESC exits at any point; Enter exits on completion
30
31
 
31
32
  **F-002: CLAUDE.md Generation**
32
- - Code style and import conventions
33
- - Build & test commands
34
- - Architecture decisions and rationale
35
- - Workflow guidance (planning, verification, bug fixing)
33
+ - Code style and import conventions (from preset or manual config)
34
+ - Build, test, typecheck, lint, and pre-PR commands
35
+ - Architecture pattern with auto-generated best-practice notes
36
+ - Workflow guidance (planning, verification, bug fixing, elegance)
36
37
  - Lessons learned section (AI-updatable)
37
38
 
38
39
  **F-003: PRD.md Generation**
39
40
  - Vision, problem statement, target users
40
- - Core features (F-001 through F-006 format)
41
- - Non-goals and success metrics
42
- - Tech stack table
43
- - Open questions placeholder
41
+ - Core features (F-001 format), non-goals, tech stack table
42
+ - Success metrics placeholder, open questions section
44
43
 
45
44
  **F-004: USER-STORIES.md Generation**
46
45
  - Gherkin-formatted acceptance criteria
47
46
  - "As a / I want / So that" narrative format
48
47
  - Feature scenarios with Given/When/Then
49
- - Supports 9+ standard scenarios (full scaffolding, quick start, powerline, etc.)
48
+ - Scaffolded from wizard-collected core features and user context
50
49
 
51
50
  **F-005: Environment & Config Files**
52
51
  - `.env.example` template with user-specified variables
53
- - `.gitignore` with language/framework-specific rules
52
+ - `.gitignore` with language/framework-specific defaults
54
53
 
55
- **F-006: Powerline Integration (Optional)**
56
- - Shell prompt styling and configuration
57
- - Powerline font detection and fallbacks
58
- - Theme color selection during setup
54
+ **F-006: QuickStart Presets**
55
+ - 6 one-click presets: TypeScript+Node, Next.js, React SPA, Python+FastAPI, Go, React Native+Expo
56
+ - Each preset pre-fills stack, build, test, typecheck, lint, and pre-PR commands
57
+ - "Configure manually →" option for custom language/framework/code-style
58
+
59
+ **F-007: Setup & Tooling Integration (Optional)**
60
+ Each option is explained before the yes/no prompt:
61
+ - **Claude Powerline** — live status bar (git branch, context %, session cost, active tools); deployed via `npx` per session, no global install
62
+ - **Git repository** — `git init` + initial commit containing all generated files
63
+ - **npm release scripts** — creates `~/bin/<project>-release`; adds `release:patch`, `release:minor`, `release:major` to `package.json`; adapts commands to selected package manager
59
64
 
60
65
  ### Visual Style
61
66
 
62
- - **Banner:** ASCII header with "Procedure CLI" branding
63
- - **Timeline:** Vertical step indicators (pending active completed)
64
- - **Colors:** Cyan for highlights, green for success, dim gray for secondary info
65
- - **Icons:** (completed), (active), (pending)
66
- - **Spacing:** Single-line padding, clean box layouts via Ink
67
+ - **Theme:** Catppuccin Mocha Dark (mauve active, green complete, sapphire headers, overlay1 gutter)
68
+ - **Layout:** `┌`/`│`/`└` vertical timeline with `┌` before step 1 and `└` after step 7
69
+ - **Active step:** Animated dot cycling `◆ ◈` at 350 ms
70
+ - **Completed step:** `◇` (green); summary displayed on separate `│ ` line below
71
+ - **Select menus:** Sliding window (5 visible at a time), `↑`/`↓` scroll indicators, `↑↓ move, enter select` hint
72
+ - **Multi-select:** `●` selected, `○` unselected, space to toggle, enter to confirm; custom "Other" option via text input
67
73
 
68
74
  ## Non-Goals
69
75
 
@@ -72,46 +78,52 @@ Empower developers to start projects with production-ready documentation and arc
72
78
  - Database schema generation
73
79
  - Frontend component scaffolding
74
80
  - Package template marketplace
81
+ - `--quick` or `--update` CLI flags (wizard is always interactive)
82
+ - Partial regeneration of individual files
75
83
 
76
84
  ## Tech Stack
77
85
 
78
86
  | Component | Technology | Purpose |
79
87
  |-----------|-----------|---------|
80
88
  | **Runtime** | Node.js + TypeScript | Type-safe CLI |
81
- | **UI** | Ink + React | Interactive CLI rendering |
89
+ | **UI** | Ink 6 + React 19 | Interactive terminal rendering |
82
90
  | **Templating** | Handlebars | Dynamic file generation |
83
- | **AI** | ai-sdk + OpenAI | Future: GPT-assisted prompts (optional) |
84
- | **Build** | tsc | Minimal, fast compilation |
91
+ | **AI** | Vercel AI SDK 6, Z.ai, OpenAI | Optional AI-assisted generation |
92
+ | **Build** | tsc | Fast compilation, strict mode |
85
93
 
86
94
  ## 7 Wizard Steps (Detailed)
87
95
 
88
96
  ### Step 1: Project Info
89
- - Inputs: Project name, description, package manager preference, license
90
- - Output: Basic project metadata
97
+ - Inputs: Project name (required), description (required), package manager (select), license (select)
98
+ - Outputs: Project metadata used across all generated files
91
99
 
92
100
  ### Step 2: Stack & Style
93
- - Inputs: Language, framework, code style (strict mode, imports, naming, error handling)
94
- - Output: Stack summary and style guide anchors
101
+ - Inputs: QuickStart preset selection, or manual language + framework + code-style multi-selects
102
+ - Outputs: Stack and style data; presets also pre-fill Step 3 commands
95
103
 
96
104
  ### Step 3: Build & Test
97
- - Inputs: Build, test, typecheck, lint, PR check commands
98
- - Output: Development commands for CLAUDE.md
105
+ - Inputs: Build, test, typecheck, lint, pre-PR commands (pre-filled if preset chosen)
106
+ - Outputs: Development commands section in CLAUDE.md
99
107
 
100
108
  ### Step 4: Architecture
101
- - Inputs: Architecture pattern, architectural decisions, detailed notes
102
- - Output: Architecture section for CLAUDE.md
109
+ - Inputs: Architecture pattern selection (7 options)
110
+ - Outputs: Architecture section in CLAUDE.md with auto-generated best-practice notes
103
111
 
104
112
  ### Step 5: Product Context
105
- - Inputs: Problem statement (5 bullets), target users table, core features, non-goals, tech stack, user stories
106
- - Output: PRD.md and USER-STORIES.md data
113
+ - Inputs: Problem statement, target users, tech stack (multi-select, prefilled from Step 2), core features (multi-select + custom), non-goals
114
+ - Outputs: Data for PRD.md and USER-STORIES.md
107
115
 
108
116
  ### Step 6: Generation
109
- - Automatic: Compile answers into CLAUDE.md, PRD.md, USER-STORIES.md, .env.example, .gitignore
110
- - Output: Files written to project directory with timestamps
117
+ - Shows full summary of all collected inputs grouped by section
118
+ - Warns about any existing files that will be overwritten
119
+ - Confirm → writes all files; Skip → exits without writing
120
+ - Outputs: CLAUDE.md, README.md, docs/PRD.md, docs/USER-STORIES.md, .env.example, .gitignore
111
121
 
112
- ### Step 7: Powerline (Optional)
113
- - Inputs: Enable powerline, font selection, theme colors
114
- - Output: Shell configuration and setup instructions
122
+ ### Step 7: Setup (Optional)
123
+ - Three sequential yes/no prompts (Powerline, Git, Release scripts)
124
+ - Each explained in detail before asking
125
+ - All three can be independently enabled or skipped
126
+ - Outputs: `.claude/` powerline config, git repo with initial commit, `~/bin/<project>-release`, updated `package.json`
115
127
 
116
128
  ## Success Metrics
117
129
 
@@ -123,8 +135,6 @@ Empower developers to start projects with production-ready documentation and arc
123
135
 
124
136
  ## Open Questions
125
137
 
126
- - Should we support multiple AI models (Claude, GPT-4, local LLMs)?
127
- - Auto-generate user stories from feature descriptions?
138
+ - Should we support multiple AI models (Claude, GPT-4, local LLMs) for assisted generation?
128
139
  - Integration with GitHub Actions for CI/CD template generation?
129
140
  - Support for monorepo scaffolding (workspaces)?
130
- - Interactive feature validation via AI (e.g., "Validate that F-001 and F-002 don't overlap")?
@@ -10,70 +10,133 @@
10
10
 
11
11
  ```gherkin
12
12
  Scenario: User completes full 7-step wizard
13
- Given a developer runs `npx procedure-cli`
13
+ Given a developer runs `npx @b3awesome/procedure` in an empty directory
14
14
  When they answer all wizard questions (project info, stack, build, architecture, product context)
15
- Then CLAUDE.md, PRD.md, USER-STORIES.md, .env.example, and .gitignore are created
16
- And a success message displays with project name and generated files
15
+ And confirm generation in Step 6
16
+ Then CLAUDE.md, README.md, PRD.md, USER-STORIES.md, .env.example, and .gitignore are created
17
+ And a success message displays with the project name and generated files listed
18
+ And pressing Enter exits the CLI
17
19
  ```
18
20
 
19
21
  ```gherkin
20
22
  Scenario: Wizard validates required inputs
21
23
  Given the user is on Step 1 (Project Info)
22
- When they leave the project name empty and try to continue
23
- Then validation error shows and they must re-enter
24
- And "Next" button remains disabled until valid
24
+ When they leave the project name empty and press Enter
25
+ Then a validation error shows inline
26
+ And the wizard does not advance until a valid name is entered
25
27
  ```
26
28
 
27
- ## US-002: Quick Start Mode
29
+ ```gherkin
30
+ Scenario: User skips generation
31
+ Given the user reaches Step 6 (Generation)
32
+ When they press N at the "Proceed?" prompt
33
+ Then no files are written to disk
34
+ And the final summary states "Generation was skipped — no files were written"
35
+ ```
36
+
37
+ ## US-002: Empty Directory Guard
28
38
 
29
- **As a** developer in a hurry
30
- **I want** to scaffold a project with minimal questions
31
- **So that** I can start coding in under 2 minutes
39
+ **As a** developer protecting an existing project
40
+ **I want** the CLI to refuse to run in a non-empty directory
41
+ **So that** I don't accidentally overwrite my existing files
32
42
 
33
- ### Feature: QuickStart Shortcuts
43
+ ### Feature: Pre-flight Directory Check
44
+
45
+ ```gherkin
46
+ Scenario: CLI exits when directory has existing files
47
+ Given a developer runs `npx @b3awesome/procedure` in a directory with files
48
+ When the CLI starts
49
+ Then it exits immediately with an error message
50
+ And the message lists up to 3 found files/directories
51
+ And it shows the commands to create an empty directory and retry
52
+ And the process exits with code 1
53
+ ```
34
54
 
35
55
  ```gherkin
36
- Scenario: Quick mode with sensible defaults
37
- Given the developer runs `npx procedure-cli --quick`
38
- When they provide only project name and description
39
- Then defaults are used for tech stack, build commands, architecture
40
- And files are generated immediately
56
+ Scenario: CLI starts normally in an empty directory
57
+ Given a developer runs `npx @b3awesome/procedure` in an empty directory
58
+ When the CLI starts
59
+ Then the wizard renders with the banner and Step 1 active
41
60
  ```
42
61
 
43
- ## US-003: Advanced Configuration
62
+ ## US-003: QuickStart Presets
63
+
64
+ **As a** developer who knows their stack
65
+ **I want** to pick a preset and have all commands pre-filled
66
+ **So that** I can scaffold a project in under 2 minutes without typing every command
67
+
68
+ ### Feature: Stack & Style Presets
44
69
 
45
- **As a** team lead defining standards
46
- **I want** to customize every section of the generated docs
47
- **So that** the output matches our team's coding standards and practices
70
+ ```gherkin
71
+ Scenario: User selects a QuickStart preset
72
+ Given the user is on Step 2 (Stack & Style)
73
+ When they navigate to "TypeScript + Node.js" and press Enter
74
+ Then Step 2 completes immediately with language, framework, and code style set
75
+ And Step 3 (Build & Test) opens with build, test, typecheck, lint, and PR commands pre-filled
76
+ ```
77
+
78
+ ```gherkin
79
+ Scenario: User switches to manual configuration
80
+ Given the user is on Step 2 (Stack & Style) in QuickStart mode
81
+ When they navigate to "Configure manually →" and press Enter
82
+ Then they are shown the language multi-select
83
+ And then the framework multi-select
84
+ And then the code style multi-select
85
+ And can choose any combination with custom "Other" input
86
+ ```
87
+
88
+ ```gherkin
89
+ Scenario: Preset list shows scrollable options
90
+ Given the user is on Step 2 (Stack & Style)
91
+ When the preset list renders
92
+ Then 5 presets are visible at a time
93
+ And "↓ more" appears when additional options are below the visible window
94
+ And pressing ↓ scrolls the window to reveal more presets
95
+ ```
96
+
97
+ ## US-004: Advanced Manual Configuration
98
+
99
+ **As a** team lead defining custom standards
100
+ **I want** to configure language, framework, and code style manually
101
+ **So that** the output matches our team's exact conventions
48
102
 
49
103
  ### Feature: Detailed Customization
50
104
 
51
105
  ```gherkin
52
- Scenario: Full control over architecture and style
53
- Given the user is on Step 4 (Architecture)
54
- When they describe architecture decisions and code style details
55
- Then CLAUDE.md includes the exact text in the Architecture and Code Style sections
56
- And next steps reference these decisions
106
+ Scenario: Full control over stack and style
107
+ Given the user selects "Configure manually →" in Step 2
108
+ When they choose multiple languages (e.g. TypeScript + Python)
109
+ And choose multiple frameworks (e.g. Next.js + FastAPI)
110
+ And select code style conventions with a custom "Other" rule
111
+ Then CLAUDE.md includes the exact languages, frameworks, and conventions chosen
57
112
  ```
58
113
 
59
- ## US-004: Powerline Setup Integration
114
+ ## US-005: Generation Review and Confirmation
60
115
 
61
- **As a** shell enthusiast
62
- **I want** to configure powerline font and prompt styling during setup
63
- **So that** my terminal matches my project's branding
116
+ **As a** developer reviewing before committing
117
+ **I want** to see a full summary of all my inputs before files are written
118
+ **So that** I can catch mistakes without having to edit generated files
64
119
 
65
- ### Feature: Shell Prompt Customization
120
+ ### Feature: Generation Summary Screen
66
121
 
67
122
  ```gherkin
68
- Scenario: User enables powerline during Step 7
69
- Given the wizard is on Step 7 (Powerline)
70
- When they select "Yes, set up powerline"
71
- Then they choose fonts (Noto Sans Mono, Fira Code, custom)
72
- And pick a theme color (blue, green, purple)
73
- And setup instructions are displayed
123
+ Scenario: Generation step shows all collected inputs
124
+ Given the user reaches Step 6 (Generation)
125
+ When the summary renders
126
+ Then it shows Project Info, Stack & Style, Build & Test, Architecture, and Product Context
127
+ And it lists all 6 files that will be generated
128
+ And it warns "⚠ Will overwrite: <filename>" for any files that already exist
74
129
  ```
75
130
 
76
- ## US-005: PRD Generation with Features
131
+ ```gherkin
132
+ Scenario: Overwrite warning shown for existing files
133
+ Given the target directory already contains CLAUDE.md
134
+ When the user reaches Step 6 (Generation)
135
+ Then a peach-colored warning lists CLAUDE.md as a file that will be overwritten
136
+ And the user must confirm before any writing occurs
137
+ ```
138
+
139
+ ## US-006: PRD Generation with Full Context
77
140
 
78
141
  **As a** product manager
79
142
  **I want** the PRD to capture vision, problem, users, and core features
@@ -84,19 +147,12 @@ Scenario: User enables powerline during Step 7
84
147
  ```gherkin
85
148
  Scenario: PRD includes all required sections
86
149
  Given the user completes Step 5 (Product Context)
87
- When they provide vision, problem statement, user table, and core features
88
- Then PRD.md contains:
89
- | Section | Content |
90
- | Vision | User's description |
91
- | Problem | 5 bullet points |
92
- | Users | Table with roles and value |
93
- | Core Features | F-001 through F-006 format |
94
- | Non-Goals | Explicit out-of-scope items |
95
- | Tech Stack | Table with technologies |
96
- | Success Metrics | Measurable outcomes |
150
+ When they provide problem statement, user context, core features, and non-goals
151
+ Then PRD.md contains Vision, Problem, Users, Core Features, Non-Goals, Tech Stack, and Success Metrics
152
+ And core features are formatted as F-001 through F-NNN entries
97
153
  ```
98
154
 
99
- ## US-006: User Stories with Gherkin Format
155
+ ## US-007: User Stories with Gherkin Format
100
156
 
101
157
  **As a** QA engineer
102
158
  **I want** user stories with Gherkin acceptance criteria
@@ -105,77 +161,104 @@ Scenario: PRD includes all required sections
105
161
  ### Feature: Structured User Stories
106
162
 
107
163
  ```gherkin
108
- Scenario: User stories include Given/When/Then
164
+ Scenario: USER-STORIES.md includes Gherkin scenarios
109
165
  Given the user provides core features in Step 5
110
166
  When files are generated in Step 6
111
- Then USER-STORIES.md contains:
112
- - US-001 through US-009 headers
113
- - "As a / I want / So that" format
114
- - Feature: [name] sections
115
- - Multiple Scenario: blocks with Gherkin syntax
167
+ Then USER-STORIES.md contains US-NNN headers with "As a / I want / So that" format
168
+ And each story includes one or more Scenario blocks with Given/When/Then syntax
116
169
  ```
117
170
 
118
- ## US-007: Git Initialization
171
+ ## US-008: Visual Timeline Progress
119
172
 
120
- **As a** developer starting fresh
121
- **I want** the wizard to optionally initialize git with a sensible .gitignore
122
- **So that** I don't accidentally commit build artifacts or secrets
173
+ **As a** new user
174
+ **I want** to see a visual timeline of all steps with clear current-step indication
175
+ **So that** I always know where I am and what's left
123
176
 
124
- ### Feature: Git Setup
177
+ ### Feature: Timeline Progress Indicator
125
178
 
126
179
  ```gherkin
127
- Scenario: Git repo is initialized with language-specific ignores
128
- Given the user completes the wizard
129
- When they select "Initialize git repo" (optional prompt)
130
- Then `git init` runs automatically
131
- And .gitignore is committed with language/framework rules
132
- And initial commit message is "chore: initialize project with Procedure CLI"
180
+ Scenario: Timeline shows completed, active, and pending steps
181
+ Given the user is on Step 3 (Build & Test)
182
+ When they view the terminal
183
+ Then the timeline shows:
184
+ - Project Info (green, completed, with summary below)
185
+ - Stack & Style (green, completed, with summary below)
186
+ - ◆ Build & Test (mauve animated dot, active)
187
+ - ○ Architecture (dim, pending)
188
+ - ○ Product Context (dim, pending)
189
+ - ○ Generation (dim, pending)
190
+ - ○ Setup (dim, pending)
191
+ And ┌ appears before step 1 and └ appears after step 7
133
192
  ```
134
193
 
135
- ## US-008: Partial Scaffolding & Regeneration
194
+ ```gherkin
195
+ Scenario: Completed step summary appears below step name
196
+ Given the user completes Step 1 (Project Info)
197
+ When the timeline advances to Step 2
198
+ Then below "Project Info" on a separate │ line, the summary shows the entered name and description
199
+ ```
200
+
201
+ ## US-009: Optional Tooling Setup
202
+
203
+ **As a** developer setting up a new project
204
+ **I want** to optionally initialize git, configure Claude Powerline, and add release scripts
205
+ **So that** my project has proper version control and publish tooling from day one
206
+
207
+ ### Feature: Setup Step
136
208
 
137
- **As a** developer iterating on docs
138
- **I want** to re-run the wizard and update only certain files
139
- **So that** I can refine PRD and user stories without re-answering all questions
209
+ ```gherkin
210
+ Scenario: User enables all three setup options
211
+ Given the wizard is on Step 7 (Setup)
212
+ When the user answers Yes to Powerline, Yes to Git, and Yes to release scripts
213
+ Then .claude/ powerline configuration is created
214
+ And git init runs and an initial commit is made with the generated files
215
+ And ~/bin/<project>-release is created with the correct package manager commands
216
+ And package.json is created (or updated) with release:patch, release:minor, and release:major scripts
217
+ ```
140
218
 
141
- ### Feature: Selective Regeneration
219
+ ```gherkin
220
+ Scenario: Each setup option is explained before asking
221
+ Given the wizard is on Step 7 (Setup)
222
+ When the Powerline question renders
223
+ Then an explanation is shown describing what Powerline does before the yes/no prompt
224
+ And the same applies to the Git and release script questions
225
+ ```
142
226
 
143
227
  ```gherkin
144
- Scenario: User reruns wizard to update PRD only
145
- Given a project was scaffolded previously
146
- When they run `npx procedure-cli --update prd`
147
- Then only Step 5 (Product Context) runs
148
- And PRD.md and USER-STORIES.md are regenerated
149
- And CLAUDE.md remains unchanged
228
+ Scenario: Git init is skipped gracefully when nothing to commit
229
+ Given the user enables Git setup
230
+ When git init runs but there are no files to commit (generation was skipped)
231
+ Then a warning message is shown explaining why the commit was skipped
232
+ And the setup step completes without error
150
233
  ```
151
234
 
152
- ## US-009: Visual Timeline with Estimated Completion
235
+ ```gherkin
236
+ Scenario: Release script skipped when it already exists
237
+ Given ~/bin/<project>-release already exists
238
+ When the user enables release script setup
239
+ Then a message confirms the existing script was skipped
240
+ And package.json release scripts are still applied if not already present
241
+ ```
153
242
 
154
- **As a** new user
155
- **I want** to see a visual timeline of remaining steps with time estimate
156
- **So that** I know how long the setup will take
243
+ ## US-010: Escape and Graceful Exit
157
244
 
158
- ### Feature: Timeline Progress Indicator
245
+ **As a** developer who changed their mind
246
+ **I want** to exit the wizard at any point
247
+ **So that** I don't have to complete all steps or kill the process manually
248
+
249
+ ### Feature: ESC to Exit
159
250
 
160
251
  ```gherkin
161
- Scenario: Timeline shows current step and estimated completion
162
- Given the user is on Step 3 of 7
163
- When they view the sidebar
164
- Then they see:
165
- - ✔ Step 1: Project Info (completed)
166
- - ✔ Step 2: Stack & Style (completed)
167
- - ► Step 3: Build & Test (active)
168
- - ○ Step 4: Architecture (pending)
169
- - ○ Step 5: Product Context (pending)
170
- - ○ Step 6: Generation (pending)
171
- - ○ Step 7: Powerline (pending)
172
- And "Est. time remaining: 8 minutes" is displayed
252
+ Scenario: ESC exits the wizard at any step
253
+ Given the user is anywhere in the 7-step wizard
254
+ When they press Escape
255
+ Then the CLI exits cleanly with no files written
173
256
  ```
174
257
 
175
258
  ```gherkin
176
- Scenario: Step completion summary is shown in timeline
177
- Given the user completes Step 1
178
- When they move to Step 2
179
- Then the timeline shows "Project Info — my-project — my description"
180
- And a checkmark indicates completion
259
+ Scenario: Enter exits after completion
260
+ Given the wizard has completed all 7 steps
261
+ When the final success screen is shown
262
+ Then pressing Enter exits the CLI
263
+ And the final timeline shows all steps as completed with their summaries
181
264
  ```
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "procedure-cli",
3
- "version": "0.1.10",
3
+ "version": "0.1.12",
4
4
  "description": "CLI-based AI Agent powered by AI SDK 6, Z.ai, and OpenAI",
5
5
  "type": "module",
6
6
  "bin": {
package/src/cli.tsx CHANGED
@@ -1,6 +1,19 @@
1
1
  #!/usr/bin/env node
2
2
  import React from "react";
3
3
  import { render } from "ink";
4
+ import { readdirSync } from "node:fs";
4
5
  import App from "./app.js";
5
6
 
7
+ const entries = readdirSync(process.cwd()).filter((e) => e !== ".DS_Store");
8
+ if (entries.length > 0) {
9
+ const sample = entries.slice(0, 3).join(", ");
10
+ const extra = entries.length > 3 ? `, +${entries.length - 3} more` : "";
11
+ console.error(`\nWarning: current directory is not empty.`);
12
+ console.error(` Found: ${sample}${extra}`);
13
+ console.error(` Existing files can be overwritten during Step 6 (Generation).`);
14
+ console.error(` Recommended for a fresh project:`);
15
+ console.error(` mkdir my-project && cd my-project`);
16
+ console.error(` npx procedure-cli (or: npx @b3awesome/procedure)\n`);
17
+ }
18
+
6
19
  render(<App />);
@@ -1,9 +1,14 @@
1
1
  import React from "react";
2
- import { Text } from "ink";
2
+ import { Box, Text } from "ink";
3
3
  import { C } from "../theme.js";
4
4
 
5
5
  export function GutterLine({ children }: { children?: React.ReactNode }) {
6
- return <Text><Text color={C.overlay1}>{"│ "}</Text>{children}</Text>;
6
+ return (
7
+ <Box flexDirection="row">
8
+ <Text color={C.overlay1}>{"│ "}</Text>
9
+ {children}
10
+ </Box>
11
+ );
7
12
  }
8
13
 
9
14
  export function EmptyGutter() {
@@ -159,17 +159,17 @@ export function GutteredMultiSelect({
159
159
  return (
160
160
  <Box flexDirection="column">
161
161
  {currentSelections.length > 0 && (
162
- <Text>
162
+ <Box flexDirection="row">
163
163
  <Text color={C.overlay1}>{"│ "}</Text>
164
164
  <Text color={C.green}>{"Selected: "}</Text>
165
165
  <Text>{currentSelections.join(", ")}</Text>
166
- </Text>
166
+ </Box>
167
167
  )}
168
- <Text>
168
+ <Box flexDirection="row">
169
169
  <Text color={C.overlay1}>{"│ "}</Text>
170
170
  <Text bold>{"Add custom (comma-separated):"}</Text>
171
- </Text>
172
- <Text>
171
+ </Box>
172
+ <Box flexDirection="row">
173
173
  <Text color={C.overlay1}>{"│ "}</Text>
174
174
  <TextInput
175
175
  placeholder={customPlaceholder ?? "Type here, press enter to confirm"}
@@ -178,7 +178,7 @@ export function GutteredMultiSelect({
178
178
  onSubmit([...currentSelections, ...custom]);
179
179
  }}
180
180
  />
181
- </Text>
181
+ </Box>
182
182
  </Box>
183
183
  );
184
184
  }
@@ -23,7 +23,7 @@ interface Preset {
23
23
  const PRESETS: Record<string, Preset> = {
24
24
  "typescript-node": {
25
25
  label: "TypeScript + Node.js",
26
- description: "Best for: CLI tools, backend APIs, npm packages, scripts",
26
+ description: "CLI tools, backend APIs, npm packages",
27
27
  answers: {
28
28
  language: "TypeScript",
29
29
  framework: "Node.js",
@@ -42,7 +42,7 @@ const PRESETS: Record<string, Preset> = {
42
42
  },
43
43
  "nextjs-fullstack": {
44
44
  label: "Next.js Full-Stack",
45
- description: "Best for: SaaS apps, marketing sites, SSR/SSG, API routes",
45
+ description: "SaaS apps, marketing sites, SSR/SSG",
46
46
  answers: {
47
47
  language: "TypeScript",
48
48
  framework: "Next.js",
@@ -61,7 +61,7 @@ const PRESETS: Record<string, Preset> = {
61
61
  },
62
62
  "react-spa": {
63
63
  label: "React SPA",
64
- description: "Best for: Dashboards, admin panels, SPAs without SSR",
64
+ description: "Dashboards, admin panels, SPAs",
65
65
  answers: {
66
66
  language: "TypeScript",
67
67
  framework: "React",
@@ -80,7 +80,7 @@ const PRESETS: Record<string, Preset> = {
80
80
  },
81
81
  "python-fastapi": {
82
82
  label: "Python + FastAPI",
83
- description: "Best for: AI/ML backends, REST APIs, data services",
83
+ description: "AI/ML backends, REST APIs, data services",
84
84
  answers: {
85
85
  language: "Python",
86
86
  framework: "FastAPI",
@@ -99,7 +99,7 @@ const PRESETS: Record<string, Preset> = {
99
99
  },
100
100
  "go-service": {
101
101
  label: "Go HTTP Service",
102
- description: "Best for: High-perf APIs, microservices, concurrent workloads",
102
+ description: "High-perf APIs, microservices",
103
103
  answers: {
104
104
  language: "Go",
105
105
  framework: "net/http",
@@ -118,7 +118,7 @@ const PRESETS: Record<string, Preset> = {
118
118
  },
119
119
  "react-native-expo": {
120
120
  label: "React Native + Expo",
121
- description: "Best for: Cross-platform mobile apps (iOS + Android)",
121
+ description: "Cross-platform mobile apps (iOS + Android)",
122
122
  answers: {
123
123
  language: "TypeScript",
124
124
  framework: "React Native",
@@ -146,7 +146,7 @@ const QUICKSTART_OPTIONS = [
146
146
  {
147
147
  label: "Configure manually →",
148
148
  value: "advanced",
149
- description: "Choose languages, frameworks, and code style step by step",
149
+ description: "Choose language, framework, and code style",
150
150
  },
151
151
  ];
152
152