procedure-cli 1.7.1 → 1.9.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
@@ -87,6 +87,8 @@ Choose a **QuickStart preset** or configure manually:
87
87
  | TypeScript + Node.js | CLI tools, backend APIs, npm packages |
88
88
  | Next.js Full-Stack | SaaS apps, marketing sites, SSR/SSG |
89
89
  | React SPA | Dashboards, admin panels, SPAs |
90
+ | Static Site (Vite + React + shadcn/ui) | Landing pages, portfolios, marketing sites — Tailwind + shadcn/ui |
91
+ | 3D Web (Vite + React Three Fiber) | Interactive 3D/WebGL sites — Three.js via R3F, drei, Zustand |
90
92
  | Python + FastAPI | AI/ML backends, REST APIs, data services |
91
93
  | Go HTTP Service | High-perf APIs, microservices |
92
94
  | React Native + Expo | Cross-platform mobile apps |
@@ -116,7 +118,9 @@ Select from 7 patterns (Monolith, MVC, Feature folders, Hexagonal, Microservices
116
118
  > **Coming in v1.5:** options are filtered by the stack chosen in Step 2 — Bubbletea/Ink preselect Elm Architecture, SwiftUI/Compose preselect MVVM, Next.js App Router preselects "App Router + RSC". Architecture notes are rewritten per `(framework × pattern)` combo so a TUI project never reads "Controllers handle HTTP".
117
119
 
118
120
  ### 4. Product Context
119
- Problem statement, target users, tech stack (multi-select, prefilled from Step 2; Bubbletea preset also preselects Lipgloss + Bubbles; SwiftUI preset also preselects SwiftData + Combine), core features (multi-select with custom input), non-goals.
121
+ Problem statement, target users, tech stack (multi-select, prefilled from Step 2; Bubbletea preset also preselects Lipgloss + Bubbles; SwiftUI preset also preselects SwiftData + Combine; React Three Fiber preset also preselects Three.js + drei + Zustand + Vite), core features (multi-select with custom input), non-goals.
122
+
123
+ Selecting the `Three.js` chip adds a **3D / WebGL** section to CLAUDE.md and AGENTS.md covering GPU resource disposal, zero-allocation `useFrame` loops, instancing and BVH raycasting thresholds, `<Billboard>` labels, DOM fallbacks, and the `r3f-perf` measurement budget. See [docs/3D-WEB-STACK.md](./docs/3D-WEB-STACK.md) for the full stack rationale.
120
124
 
121
125
  > **Coming in v1.5:** tech stack chips are regrouped into 8 semantic categories — UI / Data / Cache / Auth / Payments / Observability / AI-MCP / Deploy. Same multi-select UX, no extra step. Each chip selected injects a small targeted section into CLAUDE.md (Auth & RLS stub, rate-limit note, MCP tools section, deployment runbook). Nothing selected → nothing rendered (zero-noise default).
122
126
 
@@ -129,19 +133,19 @@ Four independent yes/no prompts — each explained before asking:
129
133
  - **Claude Powerline** — live status bar (git branch, context %, cost, active tools); statusLine calls the `claude-powerline` binary directly (no `npx` cold-start per redraw). After saying yes, choose to install the binary globally automatically or install it yourself (`npm i -g @owloops/claude-powerline`)
130
134
  - **Git repository** — `git init` + initial commit with the generated files
131
135
  - **npm release scripts** — creates `~/bin/<project>-release` and adds `release:patch/minor/major` to `package.json`
132
- - **Code review skills** — installs `/b3awesome-code-review`, `/b3awesome-code-fix`, and `/add-procedure-cli-rule` slash commands for Claude Code, Codex CLI, and OpenCode; creates `CODE-REVIEW.md` and `CODE-FIXED.md` append-only log templates; places an archive script in `scripts/` for compacting resolved entries
136
+ - **Code review skills** — installs `/b3awesome-code-review`, `/b3awesome-code-fix`, `/b3awesome-procedure-setup`, and `/add-procedure-cli-rule` slash commands for Claude Code, Codex CLI, and OpenCode; creates `CODE-REVIEW.md` and `CODE-FIXED.md` append-only log templates; places an archive script in `scripts/` for compacting resolved entries; also ensures the full Matt Pocock skill set (22 skills incl. the companions the procedures invoke: `code-review`, `codebase-design`, `diagnosing-bugs`, `tdd`) is installed **globally** via `npx skills add mattpocock/skills -g` — checks `~/.agents/skills` first and only installs what's missing (once per machine); if the install fails (offline, no npx), the manual command is printed instead
133
137
 
134
138
  ## Utility Scripts
135
139
 
136
140
  ### `procedure-cli-skills-copy.sh`
137
141
 
138
- Standalone script to copy all AI agent skills to an existing project generated by Procedure CLI (useful if the project was created before the skill was available, or if Setup was skipped).
142
+ Standalone script to adopt the full Procedure CLI review/fix setup into any existing project (useful if the project was created before the skills were available, if Setup was skipped, or for projects not generated by Procedure CLI at all).
139
143
 
140
144
  **What it does:**
141
- - Copies `/add-procedure-cli-rule` skill to Claude Code, Codex CLI, and OpenCode
142
- - Creates required directories if missing
143
- - Skips existing files (safe — never overwrites)
144
- - Provides clear feedback for each agent
145
+ - Copies `/b3awesome-code-review`, `/b3awesome-code-fix`, `/b3awesome-procedure-setup`, and `/add-procedure-cli-rule` skills to Claude Code, Codex CLI, and OpenCode
146
+ - Seeds `CODE-REVIEW.md`, `CODE-FIXED.md`, and `scripts/archive-reviews.sh`
147
+ - Ensures the full Matt Pocock skill set is installed globally — checks `~/.agents/skills` first, installs only what's missing via `npx skills add -g` (agents: Claude Code, Crush, Pi, Qoder)
148
+ - Skips existing files (safe — never overwrites; fully idempotent)
145
149
 
146
150
  **Setup:**
147
151
  ```bash
@@ -160,14 +164,25 @@ pcsc
160
164
 
161
165
  # Or explicitly specify destination
162
166
  ~/procedure-cli-skills-copy.sh /path/to/your-project
167
+
168
+ # Update mode — refresh procedure-owned files in an OLD procedure-based repo
169
+ # to the latest versions (skills + archive script; .bak backup when content
170
+ # differs). User-owned files are NEVER touched: CLAUDE.md, AGENTS.md,
171
+ # CODE-REVIEW.md, CODE-FIXED.md.
172
+ ~/procedure-cli-skills-copy.sh --update /path/to/your-project
163
173
  ```
164
174
 
165
175
  **Output:**
166
176
  ```
167
- 📦 Copying add-procedure-cli-rule skill to .
168
- ✅ Claude Code: .claude/skills/add-procedure-cli-rule/SKILL.md
169
- ✅ Codex CLI: .codex/skills/add-procedure-cli-rule/SKILL.md
170
- ✅ OpenCode: .opencode/commands/add-procedure-cli-rule.md
177
+ 📦 Adopting Procedure CLI setup into .
178
+ ✅ Claude Code: .claude/skills/b3awesome-code-review/SKILL.md
179
+ ✅ Codex CLI: .codex/skills/b3awesome-code-review/SKILL.md
180
+ ✅ Claude Code: .claude/skills/b3awesome-code-fix/SKILL.md
181
+ ...
182
+ ✅ CODE-REVIEW.md
183
+ ✅ CODE-FIXED.md
184
+ ✅ scripts/archive-reviews.sh
185
+ ⏭️ Matt Pocock skills already installed globally (22 skills)
171
186
  ✨ Done!
172
187
  ```
173
188
 
@@ -0,0 +1,18 @@
1
+ {
2
+ "codeStyle": [
3
+ "TypeScript strict mode, ESM imports",
4
+ "Functional components only, hooks for state",
5
+ "Scene graph is declarative — no imperative scene.add(), let R3F reconcile",
6
+ "useFrame allocates nothing — hoist vectors/quaternions outside the loop",
7
+ "Dispose geometries, materials, and textures on unmount — GPU memory is not GC'd",
8
+ "Use drei abstractions before hand-rolling controls, text, or helpers",
9
+ "Path alias @/ → src/ (Vite resolve)"
10
+ ],
11
+ "buildCommand": "tsc -b && vite build",
12
+ "testCommand": "vitest",
13
+ "typecheckCommand": "tsc --noEmit",
14
+ "lintCommand": "eslint .",
15
+ "architectureNotes": "Feature folders",
16
+ "framework": "React Three Fiber",
17
+ "language": "TypeScript"
18
+ }
@@ -0,0 +1,17 @@
1
+ {
2
+ "codeStyle": [
3
+ "TypeScript strict mode, ESM imports",
4
+ "Functional components only, hooks for state",
5
+ "Tailwind utility classes — no custom CSS except globals in src/index.css",
6
+ "shadcn/ui components (Radix) in src/components/ui — compose, never fork",
7
+ "Path alias @/ → src/ (Vite resolve)",
8
+ "camelCase for variables, PascalCase for components"
9
+ ],
10
+ "buildCommand": "tsc -b && vite build",
11
+ "testCommand": "vitest",
12
+ "typecheckCommand": "tsc --noEmit",
13
+ "lintCommand": "eslint .",
14
+ "architectureNotes": "Feature folders",
15
+ "framework": "React",
16
+ "language": "TypeScript"
17
+ }
@@ -44,6 +44,10 @@ const PAIR_NOTES = {
44
44
  "Feature folders": "Co-locate route segments in app/ with their server/client components, actions, and tests. Cross-route building blocks in components/ or lib/.",
45
45
  MVC: "Use only for legacy Pages Router projects — for App Router, prefer 'App Router + RSC'.",
46
46
  },
47
+ "React Three Fiber": {
48
+ "Feature folders": "Each scene owns its graph under src/scenes/<name>/ — the <Canvas>, its meshes, and its camera rig. Reusable 3D primitives in src/components/3d/, DOM overlay in src/components/ui/. useFrame logic extracted into src/hooks/ so render loops stay testable in isolation. Scene state lives in a Zustand store (src/store/) — never in component state, because useFrame reads it every frame and React re-renders would stall the loop. The rule of thumb: React owns the tree, the store owns the values, useFrame owns the mutation.",
49
+ "Layered": "Presentation (scenes + components) → Interaction (hooks wrapping controls, gestures, raycasting) → Data (graph model, layout engine). The layout engine computes positions independently of Three.js so it stays unit-testable without a WebGL context.",
50
+ },
47
51
  React: {
48
52
  "Feature folders": "Each feature owns its components, hooks, state, and tests under src/features/<name>/. Shared primitives in src/components/.",
49
53
  },
@@ -96,6 +100,8 @@ export function resolveOptions(language, framework) {
96
100
  return "MVVM";
97
101
  if (fw.includes("uikit"))
98
102
  return "MVVM";
103
+ if (fw.includes("three fiber") || fw.includes("r3f"))
104
+ return "Feature folders";
99
105
  if (fw.includes("next"))
100
106
  return "App Router + RSC";
101
107
  if (fw.includes("react") || fw.includes("vue") || fw.includes("svelte"))
@@ -125,6 +131,10 @@ export function resolveOptions(language, framework) {
125
131
  if (fw.includes("next") || fw.includes("react") || fw.includes("vue") || fw.includes("svelte")) {
126
132
  hidden.add("MVC");
127
133
  }
134
+ if (fw.includes("three fiber") || fw.includes("r3f")) {
135
+ hidden.add("Microservices");
136
+ hidden.add("Serverless");
137
+ }
128
138
  const filtered = ALL_PATTERNS.filter((p) => !hidden.has(p.value));
129
139
  const ordered = [
130
140
  ...filtered.filter((p) => p.value === recommended),
@@ -1 +1 @@
1
- {"version":3,"file":"architecture.js","sourceRoot":"","sources":["../../src/lib/architecture.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"architecture.js","sourceRoot":"","sources":["../../src/lib/architecture.ts"],"names":[],"mappings":"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"}
@@ -3,3 +3,22 @@
3
3
  * Uses copy (not symlink) because npx runs from a temp cache dir that gets cleaned up.
4
4
  */
5
5
  export declare function setupSkills(targetDir: string): void;
6
+ /** The command users run to install the full set themselves (global).
7
+ * -s / -a must be repeated per value — comma-separated lists match nothing. */
8
+ export declare const MP_SKILLS_INSTALL_COMMAND: string;
9
+ export interface MpSkillsInstallResult {
10
+ installed: boolean;
11
+ /** Skills that were missing and got installed by this call. */
12
+ installedNow: string[];
13
+ reason?: string;
14
+ }
15
+ /** Matt Pocock skills not yet present in the global ~/.agents/skills folder. */
16
+ export declare function missingMpSkills(): string[];
17
+ /**
18
+ * Ensure the Matt Pocock skill set is installed globally (~/.agents/skills +
19
+ * per-agent symlinks). Checks first and only installs what's missing — a
20
+ * no-op (no network) when everything is already present. Failures (offline,
21
+ * no npx) are returned rather than thrown — the caller falls back to manual
22
+ * instructions.
23
+ */
24
+ export declare function installMattPocockSkills(): MpSkillsInstallResult;
@@ -1,4 +1,6 @@
1
1
  import { copyFileSync, chmodSync, existsSync } from 'node:fs';
2
+ import { execSync } from 'node:child_process';
3
+ import { homedir } from 'node:os';
2
4
  import { resolve, dirname } from 'node:path';
3
5
  import { ensureDir, resolveTemplatePath } from './fs.js';
4
6
  /**
@@ -8,6 +10,7 @@ import { ensureDir, resolveTemplatePath } from './fs.js';
8
10
  export function setupSkills(targetDir) {
9
11
  const reviewSkillSrc = resolveTemplatePath('skills/b3awesome-code-review/SKILL.md');
10
12
  const fixSkillSrc = resolveTemplatePath('skills/b3awesome-code-fix/SKILL.md');
13
+ const procedureSetupSkillSrc = resolveTemplatePath('skills/b3awesome-procedure-setup/SKILL.md');
11
14
  const addRuleSkillSrc = resolveTemplatePath('skills/add-procedure-cli-rule/SKILL.md');
12
15
  const addRuleOpencodeSrc = resolveTemplatePath('skills/add-procedure-cli-rule/opencode.md');
13
16
  const archiveScriptSrc = resolveTemplatePath('skills/scripts/archive-reviews.sh');
@@ -17,12 +20,15 @@ export function setupSkills(targetDir) {
17
20
  const skillDests = [
18
21
  { src: reviewSkillSrc, dest: resolve(targetDir, '.claude/skills/b3awesome-code-review/SKILL.md') },
19
22
  { src: fixSkillSrc, dest: resolve(targetDir, '.claude/skills/b3awesome-code-fix/SKILL.md') },
23
+ { src: procedureSetupSkillSrc, dest: resolve(targetDir, '.claude/skills/b3awesome-procedure-setup/SKILL.md') },
20
24
  { src: addRuleSkillSrc, dest: resolve(targetDir, '.claude/skills/add-procedure-cli-rule/SKILL.md') },
21
25
  { src: reviewSkillSrc, dest: resolve(targetDir, '.codex/skills/b3awesome-code-review/SKILL.md') },
22
26
  { src: fixSkillSrc, dest: resolve(targetDir, '.codex/skills/b3awesome-code-fix/SKILL.md') },
27
+ { src: procedureSetupSkillSrc, dest: resolve(targetDir, '.codex/skills/b3awesome-procedure-setup/SKILL.md') },
23
28
  { src: addRuleSkillSrc, dest: resolve(targetDir, '.codex/skills/add-procedure-cli-rule/SKILL.md') },
24
29
  { src: reviewSkillSrc, dest: resolve(targetDir, '.opencode/commands/b3awesome-code-review.md') },
25
30
  { src: fixSkillSrc, dest: resolve(targetDir, '.opencode/commands/b3awesome-code-fix.md') },
31
+ { src: procedureSetupSkillSrc, dest: resolve(targetDir, '.opencode/commands/b3awesome-procedure-setup.md') },
26
32
  { src: addRuleOpencodeSrc, dest: resolve(targetDir, '.opencode/commands/add-procedure-cli-rule.md') },
27
33
  ];
28
34
  for (const { src, dest } of skillDests) {
@@ -50,4 +56,80 @@ function copySkill(src, dest) {
50
56
  ensureDir(dirname(dest));
51
57
  copyFileSync(src, dest);
52
58
  }
59
+ // The full Matt Pocock skill set (engineering + productivity) kept available
60
+ // globally on the dev machine. The b3awesome review/fix skills invoke a subset
61
+ // (code-review, codebase-design, diagnosing-bugs, tdd); the rest form the
62
+ // idea → spec → tickets → implement flow.
63
+ const MP_SKILLS = [
64
+ // engineering
65
+ 'ask-matt',
66
+ 'code-review',
67
+ 'codebase-design',
68
+ 'diagnosing-bugs',
69
+ 'domain-modeling',
70
+ 'grill-with-docs',
71
+ 'implement',
72
+ 'improve-codebase-architecture',
73
+ 'prototype',
74
+ 'research',
75
+ 'resolving-merge-conflicts',
76
+ 'setup-matt-pocock-skills',
77
+ 'tdd',
78
+ 'to-spec',
79
+ 'to-tickets',
80
+ 'triage',
81
+ 'wayfinder',
82
+ // productivity
83
+ 'grill-me',
84
+ 'grilling',
85
+ 'handoff',
86
+ 'teach',
87
+ 'writing-great-skills',
88
+ ];
89
+ const MP_AGENTS = ['claude-code', 'crush', 'pi', 'qoder'];
90
+ /** The command users run to install the full set themselves (global).
91
+ * -s / -a must be repeated per value — comma-separated lists match nothing. */
92
+ export const MP_SKILLS_INSTALL_COMMAND = [
93
+ 'npx -y skills add mattpocock/skills',
94
+ ...MP_SKILLS.map((s) => `-s ${s}`),
95
+ ...MP_AGENTS.map((a) => `-a ${a}`),
96
+ '-g',
97
+ '-y',
98
+ ].join(' ');
99
+ /** Matt Pocock skills not yet present in the global ~/.agents/skills folder. */
100
+ export function missingMpSkills() {
101
+ const root = resolve(homedir(), '.agents', 'skills');
102
+ return MP_SKILLS.filter((skill) => !existsSync(resolve(root, skill)));
103
+ }
104
+ /**
105
+ * Ensure the Matt Pocock skill set is installed globally (~/.agents/skills +
106
+ * per-agent symlinks). Checks first and only installs what's missing — a
107
+ * no-op (no network) when everything is already present. Failures (offline,
108
+ * no npx) are returned rather than thrown — the caller falls back to manual
109
+ * instructions.
110
+ */
111
+ export function installMattPocockSkills() {
112
+ const missing = missingMpSkills();
113
+ if (missing.length === 0) {
114
+ return { installed: true, installedNow: [] };
115
+ }
116
+ const command = [
117
+ 'npx -y skills add mattpocock/skills',
118
+ ...missing.map((s) => `-s ${s}`),
119
+ ...MP_AGENTS.map((a) => `-a ${a}`),
120
+ '-g',
121
+ '-y',
122
+ ].join(' ');
123
+ try {
124
+ execSync(command, { stdio: 'ignore' });
125
+ return { installed: true, installedNow: missing };
126
+ }
127
+ catch (err) {
128
+ return {
129
+ installed: false,
130
+ installedNow: [],
131
+ reason: err instanceof Error ? err.message : String(err),
132
+ };
133
+ }
134
+ }
53
135
  //# sourceMappingURL=skills.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"skills.js","sourceRoot":"","sources":["../../src/lib/skills.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"skills.js","sourceRoot":"","sources":["../../src/lib/skills.ts"],"names":[],"mappings":"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"}
@@ -10,8 +10,23 @@ export declare const INK_DOC_FILES: Array<{
10
10
  * Returns a list of file paths that would be overwritten.
11
11
  */
12
12
  export declare function checkConflicts(targetDir: string, data?: Partial<WizardAnswers>): string[];
13
- export declare function copyInkDocs(targetDir: string): void;
14
- export declare function scaffoldAll(targetDir: string, data: WizardAnswers): void;
13
+ export interface ScaffoldReport {
14
+ /** Files written fresh (did not exist before). */
15
+ written: string[];
16
+ /** Existing files left untouched; the new render went to `newFile` instead. */
17
+ preserved: Array<{
18
+ file: string;
19
+ newFile: string;
20
+ }>;
21
+ }
22
+ export declare function copyInkDocs(targetDir: string, report: ScaffoldReport): void;
23
+ /**
24
+ * Marker recording that (and when) Procedure CLI generated this project.
25
+ * `b3awesome-procedure-setup` uses it to tell a fresh install from a
26
+ * working folder. Always refreshed on generation.
27
+ */
28
+ export declare function writeProcedureMarker(targetDir: string): void;
29
+ export declare function scaffoldAll(targetDir: string, data: WizardAnswers): ScaffoldReport;
15
30
  export interface ReleaseConflicts {
16
31
  releaseScriptExists: boolean;
17
32
  packageJsonHasRelease: boolean;
@@ -69,32 +69,69 @@ export function checkConflicts(targetDir, data) {
69
69
  }
70
70
  return allOutputs.filter((f) => existsSync(resolve(targetDir, f)));
71
71
  }
72
- export function copyInkDocs(targetDir) {
72
+ /**
73
+ * Never-overwrite rule: when the output already exists, the new render is
74
+ * written alongside as `<file>.new` and the existing file is preserved —
75
+ * running the wizard on a working folder can never destroy user docs.
76
+ */
77
+ function safeOutputPath(targetDir, output, report) {
78
+ const outputPath = resolve(targetDir, output);
79
+ if (existsSync(outputPath)) {
80
+ const newOutput = `${output}.new`;
81
+ report.preserved.push({ file: output, newFile: newOutput });
82
+ return resolve(targetDir, newOutput);
83
+ }
84
+ report.written.push(output);
85
+ return outputPath;
86
+ }
87
+ export function copyInkDocs(targetDir, report) {
73
88
  for (const { src, dest } of INK_DOC_FILES) {
74
89
  const srcPath = resolveTemplatePath(src);
75
- const destPath = resolve(targetDir, dest);
90
+ const destPath = safeOutputPath(targetDir, dest, report);
76
91
  ensureDir(dirname(destPath));
77
92
  copyFileSync(srcPath, destPath);
78
93
  }
79
94
  }
95
+ /**
96
+ * Marker recording that (and when) Procedure CLI generated this project.
97
+ * `b3awesome-procedure-setup` uses it to tell a fresh install from a
98
+ * working folder. Always refreshed on generation.
99
+ */
100
+ export function writeProcedureMarker(targetDir) {
101
+ const claudeDir = resolve(targetDir, '.claude');
102
+ ensureDir(claudeDir);
103
+ let version = 'unknown';
104
+ try {
105
+ const pkgPath = resolve(resolveTemplatePath('..'), 'package.json');
106
+ const pkg = JSON.parse(readFileSync(pkgPath, 'utf-8'));
107
+ version = pkg.version ?? 'unknown';
108
+ }
109
+ catch {
110
+ // Missing/malformed package.json — marker still written with version unknown
111
+ }
112
+ writeFileSync(resolve(claudeDir, 'procedure-cli.json'), JSON.stringify({ version, generatedAt: new Date().toISOString() }, null, 2) + '\n', 'utf-8');
113
+ }
80
114
  export function scaffoldAll(targetDir, data) {
115
+ const report = { written: [], preserved: [] };
81
116
  for (const { template, output } of TEMPLATE_MAP) {
82
117
  const templatePath = resolveTemplatePath(template);
83
- const outputPath = resolve(targetDir, output);
118
+ const outputPath = safeOutputPath(targetDir, output, report);
84
119
  writeTemplate(templatePath, outputPath, data);
85
120
  }
86
121
  if (data.framework === 'Ink') {
87
- copyInkDocs(targetDir);
122
+ copyInkDocs(targetDir, report);
88
123
  }
89
124
  const deployTarget = pickDeployTarget(data.techStack);
90
125
  if (deployTarget) {
91
126
  const templatePath = resolveTemplatePath('deployment/00-README.md.hbs');
92
- const outputPath = resolve(targetDir, 'deployment/00-README.md');
127
+ const outputPath = safeOutputPath(targetDir, 'deployment/00-README.md', report);
93
128
  writeTemplate(templatePath, outputPath, {
94
129
  ...data,
95
130
  deployTarget,
96
131
  });
97
132
  }
133
+ writeProcedureMarker(targetDir);
134
+ return report;
98
135
  }
99
136
  export function checkReleaseConflicts(projectName, targetDir) {
100
137
  const scriptPath = homeBinPath(`${projectName}-release`);
@@ -1 +1 @@
1
- {"version":3,"file":"template.js","sourceRoot":"","sources":["../../src/lib/template.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"template.js","sourceRoot":"","sources":["../../src/lib/template.ts"],"names":[],"mappings":"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"}
@@ -18,11 +18,12 @@ const INK_EXTRA_FILES = INK_DOC_FILES.map((f) => f.dest);
18
18
  export default function Generation({ answers, onComplete }) {
19
19
  const [phase, setPhase] = useState("summary");
20
20
  const [errorMsg, setErrorMsg] = useState("");
21
+ const [report, setReport] = useState(null);
21
22
  useEffect(() => {
22
23
  if (phase !== "running")
23
24
  return;
24
25
  try {
25
- scaffoldAll(process.cwd(), answers);
26
+ setReport(scaffoldAll(process.cwd(), answers));
26
27
  setPhase("done");
27
28
  }
28
29
  catch (err) {
@@ -33,9 +34,11 @@ export default function Generation({ answers, onComplete }) {
33
34
  useEffect(() => {
34
35
  if (phase !== "done")
35
36
  return;
36
- const timer = setTimeout(() => onComplete({ generationSkipped: false }), 1500);
37
+ // Give the user longer to read the preserved-files notice
38
+ const delay = report && report.preserved.length > 0 ? 5000 : 1500;
39
+ const timer = setTimeout(() => onComplete({ generationSkipped: false }), delay);
37
40
  return () => clearTimeout(timer);
38
- }, [phase]);
41
+ }, [phase, report]);
39
42
  function handleConfirm() { setPhase("running"); }
40
43
  function handleCancel() { onComplete({ generationSkipped: true }); }
41
44
  if (phase === "summary") {
@@ -46,7 +49,7 @@ export default function Generation({ answers, onComplete }) {
46
49
  const codeStyleDisplay = answers.codeStyle.length > 0
47
50
  ? answers.codeStyle.join(", ")
48
51
  : "N/A";
49
- return (_jsxs(_Fragment, { children: [_jsx(GutterLine, { children: _jsx(Text, { bold: true, color: C.sapphire, children: "Project Info" }) }), _jsx(GutterLine, { children: _jsxs(Text, { children: [_jsx(Text, { color: C.label, children: " Name: " }), _jsx(Text, { color: C.inputed, children: answers.projectName || "untitled" })] }) }), _jsx(GutterLine, { children: _jsxs(Text, { children: [_jsx(Text, { color: C.label, children: " Description: " }), _jsx(Text, { color: C.inputed, children: answers.description || "N/A" })] }) }), _jsx(GutterLine, { children: _jsxs(Text, { children: [_jsx(Text, { color: C.label, children: " Package manager: " }), _jsx(Text, { color: C.inputed, children: answers.packageManager }), _jsx(Text, { color: C.label, children: " | License: " }), _jsx(Text, { color: C.inputed, children: answers.license })] }) }), _jsx(GutterLine, { children: _jsx(Text, { children: " " }) }), _jsx(GutterLine, { children: _jsx(Text, { bold: true, color: C.sapphire, children: "Stack & Style" }) }), _jsx(GutterLine, { children: _jsxs(Text, { children: [_jsx(Text, { color: C.label, children: " Language: " }), _jsx(Text, { color: C.inputed, children: answers.language || "N/A" }), _jsx(Text, { color: C.label, children: " | Framework: " }), _jsx(Text, { color: C.inputed, children: answers.framework || "N/A" })] }) }), _jsx(GutterLine, { children: _jsxs(Text, { children: [_jsx(Text, { color: C.label, children: " Code style: " }), _jsx(Text, { color: C.inputed, children: codeStyleDisplay })] }) }), _jsx(GutterLine, { children: _jsx(Text, { children: " " }) }), _jsx(GutterLine, { children: _jsx(Text, { bold: true, color: C.sapphire, children: "Build & Test" }) }), _jsx(GutterLine, { children: _jsxs(Text, { children: [_jsx(Text, { color: C.label, children: " Build: " }), _jsx(Text, { color: C.inputed, children: answers.buildCommand || "N/A" }), _jsx(Text, { color: C.label, children: " | Test: " }), _jsx(Text, { color: C.inputed, children: answers.testCommand || "N/A" })] }) }), (answers.typecheckCommand || answers.lintCommand) && (_jsx(GutterLine, { children: _jsxs(Text, { children: [_jsx(Text, { color: C.label, children: " Typecheck: " }), _jsx(Text, { color: C.inputed, children: answers.typecheckCommand || "N/A" }), _jsx(Text, { color: C.label, children: " | Lint: " }), _jsx(Text, { color: C.inputed, children: answers.lintCommand || "N/A" })] }) })), answers.prCommand && (_jsx(GutterLine, { children: _jsxs(Text, { children: [_jsx(Text, { color: C.label, children: " PR: " }), _jsx(Text, { color: C.inputed, children: answers.prCommand })] }) })), _jsx(GutterLine, { children: _jsx(Text, { children: " " }) }), _jsx(GutterLine, { children: _jsx(Text, { bold: true, color: C.sapphire, children: "Architecture" }) }), _jsx(GutterLine, { children: _jsxs(Text, { children: [_jsx(Text, { color: C.label, children: " Architecture: " }), _jsx(Text, { color: C.inputed, children: answers.architecture || "N/A" })] }) }), _jsx(GutterLine, { children: _jsx(Text, { children: " " }) }), _jsx(GutterLine, { children: _jsx(Text, { bold: true, color: C.sapphire, children: "Product Context" }) }), _jsx(GutterLine, { children: _jsxs(Text, { children: [_jsx(Text, { color: C.label, children: " Problem: " }), _jsx(Text, { color: C.inputed, children: answers.problem || "N/A" })] }) }), _jsx(GutterLine, { children: _jsxs(Text, { children: [_jsx(Text, { color: C.label, children: " Users: " }), _jsx(Text, { color: C.inputed, children: answers.users || "N/A" })] }) }), answers.techStack && (_jsx(GutterLine, { children: _jsxs(Text, { children: [_jsx(Text, { color: C.label, children: " Tech stack: " }), _jsx(Text, { color: C.inputed, children: answers.techStack })] }) })), _jsx(GutterLine, { children: _jsxs(Text, { children: [_jsx(Text, { color: C.label, children: " Features: " }), _jsx(Text, { color: C.inputed, children: answers.coreFeatures.length > 0 ? answers.coreFeatures.join(", ") : "N/A" })] }) }), answers.nonGoals.length > 0 && (_jsx(GutterLine, { children: _jsxs(Text, { children: [_jsx(Text, { color: C.label, children: " Non-goals: " }), _jsx(Text, { color: C.inputed, children: answers.nonGoals.join(", ") })] }) })), _jsx(GutterLine, { children: _jsx(Text, { children: " " }) }), _jsx(GutterLine, { children: _jsx(Text, { bold: true, color: C.sapphire, children: "Files to generate" }) }), _jsx(GutterLine, { children: _jsxs(Text, { children: [_jsx(Text, { color: C.label, children: " Files: " }), _jsx(Text, { color: C.inputed, children: filesToGenerate.join(", ") })] }) }), conflicts.length > 0 && (_jsx(GutterLine, { children: _jsxs(Text, { color: C.peach, children: [_jsx(Text, { color: C.label, children: " ⚠ Will overwrite: " }), _jsx(Text, { color: C.inputed, children: conflicts.join(", ") })] }) })), _jsx(GutterLine, { children: _jsx(Text, { children: " " }) }), _jsxs(GutterLine, { children: [_jsx(Text, { children: "Proceed? " }), _jsx(ConfirmInput, { onConfirm: handleConfirm, onCancel: handleCancel })] })] }));
52
+ return (_jsxs(_Fragment, { children: [_jsx(GutterLine, { children: _jsx(Text, { bold: true, color: C.sapphire, children: "Project Info" }) }), _jsx(GutterLine, { children: _jsxs(Text, { children: [_jsx(Text, { color: C.label, children: " Name: " }), _jsx(Text, { color: C.inputed, children: answers.projectName || "untitled" })] }) }), _jsx(GutterLine, { children: _jsxs(Text, { children: [_jsx(Text, { color: C.label, children: " Description: " }), _jsx(Text, { color: C.inputed, children: answers.description || "N/A" })] }) }), _jsx(GutterLine, { children: _jsxs(Text, { children: [_jsx(Text, { color: C.label, children: " Package manager: " }), _jsx(Text, { color: C.inputed, children: answers.packageManager }), _jsx(Text, { color: C.label, children: " | License: " }), _jsx(Text, { color: C.inputed, children: answers.license })] }) }), _jsx(GutterLine, { children: _jsx(Text, { children: " " }) }), _jsx(GutterLine, { children: _jsx(Text, { bold: true, color: C.sapphire, children: "Stack & Style" }) }), _jsx(GutterLine, { children: _jsxs(Text, { children: [_jsx(Text, { color: C.label, children: " Language: " }), _jsx(Text, { color: C.inputed, children: answers.language || "N/A" }), _jsx(Text, { color: C.label, children: " | Framework: " }), _jsx(Text, { color: C.inputed, children: answers.framework || "N/A" })] }) }), _jsx(GutterLine, { children: _jsxs(Text, { children: [_jsx(Text, { color: C.label, children: " Code style: " }), _jsx(Text, { color: C.inputed, children: codeStyleDisplay })] }) }), _jsx(GutterLine, { children: _jsx(Text, { children: " " }) }), _jsx(GutterLine, { children: _jsx(Text, { bold: true, color: C.sapphire, children: "Build & Test" }) }), _jsx(GutterLine, { children: _jsxs(Text, { children: [_jsx(Text, { color: C.label, children: " Build: " }), _jsx(Text, { color: C.inputed, children: answers.buildCommand || "N/A" }), _jsx(Text, { color: C.label, children: " | Test: " }), _jsx(Text, { color: C.inputed, children: answers.testCommand || "N/A" })] }) }), (answers.typecheckCommand || answers.lintCommand) && (_jsx(GutterLine, { children: _jsxs(Text, { children: [_jsx(Text, { color: C.label, children: " Typecheck: " }), _jsx(Text, { color: C.inputed, children: answers.typecheckCommand || "N/A" }), _jsx(Text, { color: C.label, children: " | Lint: " }), _jsx(Text, { color: C.inputed, children: answers.lintCommand || "N/A" })] }) })), answers.prCommand && (_jsx(GutterLine, { children: _jsxs(Text, { children: [_jsx(Text, { color: C.label, children: " PR: " }), _jsx(Text, { color: C.inputed, children: answers.prCommand })] }) })), _jsx(GutterLine, { children: _jsx(Text, { children: " " }) }), _jsx(GutterLine, { children: _jsx(Text, { bold: true, color: C.sapphire, children: "Architecture" }) }), _jsx(GutterLine, { children: _jsxs(Text, { children: [_jsx(Text, { color: C.label, children: " Architecture: " }), _jsx(Text, { color: C.inputed, children: answers.architecture || "N/A" })] }) }), _jsx(GutterLine, { children: _jsx(Text, { children: " " }) }), _jsx(GutterLine, { children: _jsx(Text, { bold: true, color: C.sapphire, children: "Product Context" }) }), _jsx(GutterLine, { children: _jsxs(Text, { children: [_jsx(Text, { color: C.label, children: " Problem: " }), _jsx(Text, { color: C.inputed, children: answers.problem || "N/A" })] }) }), _jsx(GutterLine, { children: _jsxs(Text, { children: [_jsx(Text, { color: C.label, children: " Users: " }), _jsx(Text, { color: C.inputed, children: answers.users || "N/A" })] }) }), answers.techStack && (_jsx(GutterLine, { children: _jsxs(Text, { children: [_jsx(Text, { color: C.label, children: " Tech stack: " }), _jsx(Text, { color: C.inputed, children: answers.techStack })] }) })), _jsx(GutterLine, { children: _jsxs(Text, { children: [_jsx(Text, { color: C.label, children: " Features: " }), _jsx(Text, { color: C.inputed, children: answers.coreFeatures.length > 0 ? answers.coreFeatures.join(", ") : "N/A" })] }) }), answers.nonGoals.length > 0 && (_jsx(GutterLine, { children: _jsxs(Text, { children: [_jsx(Text, { color: C.label, children: " Non-goals: " }), _jsx(Text, { color: C.inputed, children: answers.nonGoals.join(", ") })] }) })), _jsx(GutterLine, { children: _jsx(Text, { children: " " }) }), _jsx(GutterLine, { children: _jsx(Text, { bold: true, color: C.sapphire, children: "Files to generate" }) }), _jsx(GutterLine, { children: _jsxs(Text, { children: [_jsx(Text, { color: C.label, children: " Files: " }), _jsx(Text, { color: C.inputed, children: filesToGenerate.join(", ") })] }) }), conflicts.length > 0 && (_jsxs(_Fragment, { children: [_jsx(GutterLine, { children: _jsxs(Text, { color: C.peach, children: [_jsx(Text, { color: C.label, children: " ⚠ Already exist (kept as-is, new render goes to *.new): " }), _jsx(Text, { color: C.inputed, children: conflicts.join(", ") })] }) }), _jsx(GutterLine, { children: _jsx(Text, { color: C.overlay1, children: " Existing files are never overwritten." }) })] })), _jsx(GutterLine, { children: _jsx(Text, { children: " " }) }), _jsxs(GutterLine, { children: [_jsx(Text, { children: "Proceed? " }), _jsx(ConfirmInput, { onConfirm: handleConfirm, onCancel: handleCancel })] })] }));
50
53
  }
51
54
  if (phase === "running") {
52
55
  return (_jsx(GutterLine, { children: _jsx(Spinner, { label: "Generating project files..." }) }));
@@ -54,6 +57,6 @@ export default function Generation({ answers, onComplete }) {
54
57
  if (phase === "error") {
55
58
  return (_jsx(GutterLine, { children: _jsxs(Text, { color: C.red, children: ["Error generating files: ", errorMsg] }) }));
56
59
  }
57
- return (_jsx(GutterLine, { children: _jsx(Text, { color: C.green, children: "All project files generated successfully." }) }));
60
+ return (_jsxs(_Fragment, { children: [_jsx(GutterLine, { children: _jsx(Text, { color: C.green, children: "All project files generated successfully." }) }), report && report.preserved.length > 0 && (_jsxs(_Fragment, { children: [_jsx(GutterLine, { children: _jsx(Text, { color: C.peach, children: "⚠ Existing files preserved — new versions written alongside:" }) }), _jsx(GutterLine, { children: _jsx(Text, { color: C.overlay1, children: report.preserved.map((p) => p.newFile).join(", ") }) }), _jsx(GutterLine, { children: _jsx(Text, { color: C.overlay1, children: "Run /b3awesome-procedure-setup to back-fill missing procedure sections." }) })] }))] }));
58
61
  }
59
62
  //# sourceMappingURL=generation.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"generation.js","sourceRoot":"","sources":["../../src/steps/generation.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generation.js","sourceRoot":"","sources":["../../src/steps/generation.tsx"],"names":[],"mappings":"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"}