@claudetools/cli 0.13.0 → 0.13.1

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 ADDED
@@ -0,0 +1,423 @@
1
+ # ClaudeTools CLI
2
+
3
+ A command-line toolkit for AI-assisted project onboarding and documentation generation. ClaudeTools automatically detects your tech stack, generates comprehensive documentation, and creates context files that help AI agents like Claude Code understand your codebase.
4
+
5
+ ## Installation
6
+
7
+ ```bash
8
+ npm install -g @claudetools/cli
9
+ ```
10
+
11
+ **Requirements:**
12
+ - Node.js 18.0.0 or higher
13
+ - Optional: [Claude CLI](https://claude.ai/cli) for AI-powered analysis
14
+ - Optional: mcp-cli for Context7 documentation fetching
15
+
16
+ ## Quick Start
17
+
18
+ ```bash
19
+ # Navigate to your project
20
+ cd my-project
21
+
22
+ # Run the onboarding wizard
23
+ claudetools onboard
24
+ ```
25
+
26
+ That's it. ClaudeTools will analyze your project, ask a few questions, and generate everything needed for AI-assisted development.
27
+
28
+ ## Commands
29
+
30
+ ### `claudetools onboard`
31
+
32
+ The primary command. Runs a 4-phase onboarding workflow that analyzes your project and generates comprehensive AI context.
33
+
34
+ ```bash
35
+ claudetools onboard [options]
36
+ ```
37
+
38
+ **Options:**
39
+
40
+ | Flag | Description |
41
+ |------|-------------|
42
+ | `-r, --refresh` | Re-fetch and regenerate all documentation |
43
+ | `--skip-docs` | Skip documentation generation (faster) |
44
+ | `--verbose` | Show detailed output |
45
+ | `--no-update` | Skip auto-update check |
46
+
47
+ **Examples:**
48
+
49
+ ```bash
50
+ # Standard onboarding
51
+ claudetools onboard
52
+
53
+ # Refresh existing documentation
54
+ claudetools onboard --refresh
55
+
56
+ # Quick run without docs
57
+ claudetools onboard --skip-docs
58
+ ```
59
+
60
+ ### `claudetools init`
61
+
62
+ Minimal setup that creates the `.claude/` directory structure without the full onboarding process.
63
+
64
+ ```bash
65
+ claudetools init
66
+ ```
67
+
68
+ ### `claudetools cleanup`
69
+
70
+ Removes legacy configuration files from previous versions.
71
+
72
+ ```bash
73
+ claudetools cleanup
74
+ ```
75
+
76
+ ### Global Options
77
+
78
+ ```bash
79
+ claudetools --version # Show version and check for updates
80
+ claudetools --help # Show help message
81
+ ```
82
+
83
+ ## How It Works
84
+
85
+ ### Phase 1: Stack Detection
86
+
87
+ ClaudeTools scans your project for manifest files and automatically detects:
88
+
89
+ - **Package Managers:** npm, pnpm, yarn, bun, pip, poetry, go modules, cargo
90
+ - **Frameworks:** React, Vue, Next.js, Nuxt, Astro, Express, FastAPI, NestJS, and 25+ more
91
+ - **Libraries:** Database (Prisma, Drizzle), State Management (Zustand, Redux), UI Components (Radix, shadcn/ui), and 40+ categories
92
+ - **Dev Tools:** TypeScript, ESLint, Prettier, Vitest, Jest, Playwright
93
+
94
+ **Supported manifest files:**
95
+ - `package.json` (JavaScript/TypeScript)
96
+ - `requirements.txt`, `pyproject.toml` (Python)
97
+ - `go.mod` (Go)
98
+ - `Cargo.toml` (Rust)
99
+
100
+ ### Phase 2: Quick Questions
101
+
102
+ An interactive prompt gathers context about your project:
103
+
104
+ 1. **"What do you want to build?"** — Brief project description
105
+ 2. **"What are you working on right now?"** — Current focus area
106
+ 3. **"Anything else Claude should know?"** — Additional context
107
+
108
+ For new/empty projects, additional questions include:
109
+ - Project type selection (Web App, API, CLI, Library, Full-stack)
110
+ - AI-generated follow-up questions tailored to your project
111
+
112
+ All questions are optional (except project description for new projects). Press Enter to skip.
113
+
114
+ ### Phase 3: AI Analysis & Proposal
115
+
116
+ If the Claude CLI is installed, ClaudeTools uses it to:
117
+
118
+ 1. **Analyze your codebase** and generate a stack summary
119
+ 2. **Propose a configuration** including frameworks, libraries, architecture
120
+ 3. **Accept feedback** and refine the proposal iteratively
121
+
122
+ For new/empty projects, it will:
123
+ - Recommend a complete tech stack based on your description
124
+ - Offer to scaffold the project (create `package.json`, install dependencies)
125
+
126
+ **Approval workflow:**
127
+ ```
128
+ ┌─ Proposed Configuration ────────────────
129
+
130
+ │ A task management CLI with local storage
131
+
132
+ │ Frameworks: commander, ink
133
+ │ Libraries: chalk, conf, ora
134
+ │ Dev Tools: typescript, vitest, tsup
135
+ │ Architecture: CLI with command pattern
136
+
137
+ │ Recommendations:
138
+ │ • Use commander for argument parsing
139
+ │ • Store data in ~/.config with conf
140
+ │ • Add --json flag for scriptability
141
+
142
+ └──────────────────────────────────────────
143
+
144
+ ? How does this look?
145
+ ❯ Looks good, proceed
146
+ I have feedback
147
+ Skip AI analysis
148
+ ```
149
+
150
+ ### Phase 4: Documentation Generation
151
+
152
+ ClaudeTools generates comprehensive documentation:
153
+
154
+ 1. **Fetches official docs** via Context7 MCP for all detected libraries
155
+ 2. **Creates organized documentation** in `.claudetools/docs/`
156
+ 3. **Generates AGENTS.md** — the primary AI context file
157
+
158
+ ## Output Structure
159
+
160
+ After running `claudetools onboard`, your project will have:
161
+
162
+ ```
163
+ project-root/
164
+ ├── AGENTS.md # Primary AI context file
165
+ ├── .claude/
166
+ │ └── CLAUDE.md # Pointer to AGENTS.md
167
+ └── .claudetools/
168
+ └── docs/
169
+ ├── index.md # Documentation hub
170
+ ├── architecture/
171
+ │ ├── index.md
172
+ │ ├── system-design.md
173
+ │ ├── data-flow.md
174
+ │ └── components.md
175
+ ├── api/
176
+ │ ├── index.md
177
+ │ └── endpoints.md
178
+ ├── guides/
179
+ │ ├── getting-started.md
180
+ │ ├── development.md
181
+ │ └── contributing.md
182
+ ├── reference/
183
+ │ ├── configuration.md
184
+ │ └── environment.md
185
+ ├── patterns/
186
+ │ ├── coding-standards.md
187
+ │ └── naming-conventions.md
188
+ ├── testing/
189
+ │ └── strategy.md
190
+ ├── deployment/
191
+ │ └── environments.md
192
+ └── libraries/
193
+ ├── index.md
194
+ ├── react.md # Framework-specific docs
195
+ └── [library].md # Library-specific docs
196
+ ```
197
+
198
+ ### AGENTS.md
199
+
200
+ The primary AI context file contains:
201
+
202
+ - **Project Overview:** Name, description, and key technologies
203
+ - **Stack Summary:** Detected frameworks, libraries, and dev tools
204
+ - **Directory Structure:** Project tree (up to 4 levels)
205
+ - **Entry Points:** Main files and their purposes
206
+ - **Conventions:** Detected coding patterns and standards
207
+ - **Documentation Links:** References to generated docs
208
+
209
+ This file is designed to be read by AI agents at the start of a session to understand your project quickly.
210
+
211
+ ## New Project Support
212
+
213
+ ClaudeTools fully supports empty/new projects:
214
+
215
+ ```bash
216
+ mkdir my-new-project
217
+ cd my-new-project
218
+ claudetools onboard
219
+ ```
220
+
221
+ **For new projects, ClaudeTools will:**
222
+
223
+ 1. Ask what you want to build (required)
224
+ 2. Ask the project type (web, api, cli, library, fullstack)
225
+ 3. Generate AI-powered follow-up questions specific to your project
226
+ 4. Recommend a complete tech stack
227
+ 5. Offer to scaffold the project:
228
+ - Create `package.json` with recommended dependencies
229
+ - Detect and use your preferred package manager (pnpm, bun, yarn, npm)
230
+ - Install dependencies automatically
231
+ 6. Generate AGENTS.md with the proposed configuration
232
+
233
+ **Example flow:**
234
+
235
+ ```
236
+ ▸ Phase 1/4: Stack Detection
237
+ ℹ New project - let's set it up
238
+
239
+ ▸ Phase 2/4: Quick Questions
240
+
241
+ ┌─ Quick Context ───────────────────────
242
+
243
+ │ New project setup
244
+ │ Tell us what you want to build.
245
+
246
+ └──────────────────────────────────────────
247
+
248
+ ? What do you want to build? A REST API for managing bookmarks
249
+ ? What type of project? API/Backend (Express/Fastify)
250
+ ? What are you working on right now? Setting up the project structure
251
+
252
+ ┌─ A few more questions ─────────────────
253
+
254
+ │ These will help tailor the stack.
255
+
256
+ └──────────────────────────────────────────
257
+
258
+ ? Which database will you use? PostgreSQL
259
+ ? Do you need user authentication? Yes, JWT-based
260
+
261
+ ▸ Phase 3/4: AI Analysis
262
+ ✓ Approved
263
+ ? Create package.json and install dependencies? Yes
264
+ ✓ Scaffolded with pnpm
265
+
266
+ ▸ Phase 4/4: Building Documentation
267
+ ✓ Generated 12 docs
268
+ ✓ Created AGENTS.md
269
+ ```
270
+
271
+ ## Configuration
272
+
273
+ ### Environment Variables
274
+
275
+ | Variable | Description |
276
+ |----------|-------------|
277
+ | `CLAUDETOOLS_NO_UPDATE` | Set to `1` to disable auto-update checks |
278
+
279
+ ### Auto-Updates
280
+
281
+ ClaudeTools checks for updates automatically and prompts to upgrade when a new version is available. Disable with:
282
+
283
+ ```bash
284
+ # Per-command
285
+ claudetools onboard --no-update
286
+
287
+ # Permanently
288
+ export CLAUDETOOLS_NO_UPDATE=1
289
+ ```
290
+
291
+ ## Integration with Claude Code
292
+
293
+ ClaudeTools generates files specifically designed for Claude Code:
294
+
295
+ 1. **AGENTS.md** — Placed in project root, automatically read by Claude Code
296
+ 2. **.claude/CLAUDE.md** — Points to AGENTS.md, follows Claude Code conventions
297
+ 3. **Documentation structure** — Organized for easy AI navigation
298
+
299
+ When you start a Claude Code session, it will automatically have context about:
300
+ - Your tech stack and dependencies
301
+ - Project structure and entry points
302
+ - Coding conventions and patterns
303
+ - Links to relevant documentation
304
+
305
+ ## Context7 Integration
306
+
307
+ ClaudeTools integrates with [Context7](https://context7.com) to fetch up-to-date documentation for your dependencies. When available, it will:
308
+
309
+ 1. Resolve library names to Context7 IDs
310
+ 2. Fetch official documentation, best practices, and examples
311
+ 3. Generate markdown files in `.claudetools/docs/libraries/`
312
+
313
+ This requires `mcp-cli` to be configured with Context7 access.
314
+
315
+ ## Supported Technologies
316
+
317
+ ### Frameworks (25+)
318
+
319
+ | Category | Frameworks |
320
+ |----------|------------|
321
+ | Frontend | React, Vue, Svelte, Angular, Solid |
322
+ | Backend | Express, Fastify, Hono, NestJS, Koa |
323
+ | Full-stack | Next.js, Nuxt, Astro, Remix, SvelteKit |
324
+ | Mobile | React Native, Expo |
325
+ | Desktop | Electron, Tauri |
326
+
327
+ ### Libraries (40+ categories)
328
+
329
+ | Category | Examples |
330
+ |----------|----------|
331
+ | Database | Prisma, Drizzle, Mongoose, TypeORM |
332
+ | State Management | Zustand, Redux, Jotai, MobX |
333
+ | Validation | Zod, Yup, Joi, Valibot |
334
+ | Authentication | Lucia, NextAuth, Clerk |
335
+ | UI Components | Radix, shadcn/ui, Headless UI |
336
+ | Styling | Tailwind CSS, Emotion, styled-components |
337
+ | HTTP Clients | Axios, ky, got |
338
+ | Testing | Vitest, Jest, Playwright, Cypress |
339
+
340
+ ### Dev Tools
341
+
342
+ | Category | Tools |
343
+ |----------|-------|
344
+ | Type Checking | TypeScript |
345
+ | Linting | ESLint, Biome |
346
+ | Formatting | Prettier, Biome |
347
+ | Bundling | Vite, Webpack, esbuild, tsup |
348
+ | Testing | Vitest, Jest, Playwright |
349
+
350
+ ## Troubleshooting
351
+
352
+ ### "Claude CLI not available"
353
+
354
+ The AI analysis features require Claude CLI. Install it from [claude.ai/cli](https://claude.ai/cli).
355
+
356
+ Without Claude CLI, ClaudeTools will:
357
+ - Still detect your stack automatically
358
+ - Skip AI-powered proposal generation
359
+ - Generate documentation based on detected dependencies
360
+
361
+ ### "No project files detected"
362
+
363
+ This message appears for empty directories. ClaudeTools now supports new project setup — just answer the questions and it will recommend and scaffold a stack for you.
364
+
365
+ ### Documentation not generating
366
+
367
+ Ensure you have:
368
+ 1. `mcp-cli` installed and configured
369
+ 2. Context7 MCP server accessible
370
+ 3. Network connectivity
371
+
372
+ Use `--verbose` to see detailed output:
373
+
374
+ ```bash
375
+ claudetools onboard --verbose
376
+ ```
377
+
378
+ ### Refreshing stale documentation
379
+
380
+ If your dependencies have changed:
381
+
382
+ ```bash
383
+ claudetools onboard --refresh
384
+ ```
385
+
386
+ This will re-fetch all documentation and regenerate AGENTS.md.
387
+
388
+ ## Uninstalling
389
+
390
+ ```bash
391
+ npm uninstall -g @claudetools/cli
392
+ ```
393
+
394
+ To remove generated files from a project:
395
+
396
+ ```bash
397
+ rm -rf AGENTS.md .claude .claudetools
398
+ ```
399
+
400
+ ## Contributing
401
+
402
+ ClaudeTools is part of a monorepo. To contribute:
403
+
404
+ ```bash
405
+ git clone https://github.com/claudetools/claudetools
406
+ cd claudetools
407
+ pnpm install
408
+ pnpm dev
409
+ ```
410
+
411
+ Run tests:
412
+
413
+ ```bash
414
+ pnpm test
415
+ ```
416
+
417
+ ## License
418
+
419
+ MIT
420
+
421
+ ---
422
+
423
+ **Built for AI-assisted development.** ClaudeTools reduces the friction of onboarding AI agents to your codebase by automatically generating comprehensive context files.
@@ -13,6 +13,25 @@ export declare function runClaudeAnalysis(projectPath: string, prompt: string, t
13
13
  * Use Claude to analyze the codebase and generate onboarding answers
14
14
  */
15
15
  export declare function analyzeWithClaude(projectPath: string, stack: StackInfo): Promise<OnboardingAnswers>;
16
+ export interface DynamicQuestion {
17
+ id: string;
18
+ question: string;
19
+ type: 'text' | 'select' | 'confirm';
20
+ options?: Array<{
21
+ title: string;
22
+ value: string;
23
+ }>;
24
+ why?: string;
25
+ }
26
+ /**
27
+ * Generate dynamic follow-up questions based on initial context
28
+ */
29
+ export declare function generateDynamicQuestions(projectPath: string, context: {
30
+ projectDescription?: string;
31
+ projectType?: string;
32
+ mainGoal?: string;
33
+ isNewProject: boolean;
34
+ }): Promise<DynamicQuestion[]>;
16
35
  /**
17
36
  * Use Claude to generate comprehensive documentation
18
37
  */
@@ -1 +1 @@
1
- {"version":3,"file":"claude-inference.d.ts","sourceRoot":"","sources":["../../src/onboard/claude-inference.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAExD;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,OAAO,CAO9C;AAkDD;;;GAGG;AACH,wBAAsB,iBAAiB,CACrC,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,EACd,OAAO,SAAQ,GACd,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAMxB;AAuCD;;GAEG;AACH,wBAAsB,iBAAiB,CACrC,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,SAAS,GACf,OAAO,CAAC,iBAAiB,CAAC,CA2C5B;AAED;;GAEG;AACH,wBAAsB,sBAAsB,CAC1C,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,SAAS,EAChB,OAAO,EAAE,UAAU,GAAG,cAAc,GAAG,aAAa,GAAG,UAAU,GAChE,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAgDxB"}
1
+ {"version":3,"file":"claude-inference.d.ts","sourceRoot":"","sources":["../../src/onboard/claude-inference.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAExD;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,OAAO,CAO9C;AAkDD;;;GAGG;AACH,wBAAsB,iBAAiB,CACrC,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,EACd,OAAO,SAAQ,GACd,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAMxB;AAuCD;;GAEG;AACH,wBAAsB,iBAAiB,CACrC,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,SAAS,GACf,OAAO,CAAC,iBAAiB,CAAC,CA2C5B;AAMD,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS,CAAC;IACpC,OAAO,CAAC,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAClD,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,wBAAsB,wBAAwB,CAC5C,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE;IACP,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,OAAO,CAAC;CACvB,GACA,OAAO,CAAC,eAAe,EAAE,CAAC,CAwD5B;AAED;;GAEG;AACH,wBAAsB,sBAAsB,CAC1C,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,SAAS,EAChB,OAAO,EAAE,UAAU,GAAG,cAAc,GAAG,aAAa,GAAG,UAAU,GAChE,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAgDxB"}
@@ -145,6 +145,64 @@ Respond ONLY with valid JSON, no explanation.`;
145
145
  }
146
146
  return {};
147
147
  }
148
+ /**
149
+ * Generate dynamic follow-up questions based on initial context
150
+ */
151
+ export async function generateDynamicQuestions(projectPath, context) {
152
+ const prompt = `Based on the user's project context, generate 2-4 clarifying questions that would help you recommend the best tech stack and architecture.
153
+
154
+ User context:
155
+ - Description: "${context.projectDescription || 'Not provided'}"
156
+ - Project type: ${context.projectType || 'Not specified'}
157
+ - Current focus: ${context.mainGoal || 'Not specified'}
158
+ - Is new project: ${context.isNewProject}
159
+
160
+ Generate questions that:
161
+ 1. Clarify important technical decisions (auth, database, deployment, etc.)
162
+ 2. Understand constraints (team size, timeline, existing systems)
163
+ 3. Are specific to this type of project
164
+ 4. Would significantly impact the tech stack recommendation
165
+
166
+ DO NOT ask generic questions. Be specific to what they're building.
167
+
168
+ Respond ONLY with valid JSON array:
169
+ [
170
+ {
171
+ "id": "unique-id",
172
+ "question": "The question text?",
173
+ "type": "select",
174
+ "options": [
175
+ { "title": "Option 1", "value": "option1" },
176
+ { "title": "Option 2", "value": "option2" }
177
+ ],
178
+ "why": "Brief reason this matters"
179
+ },
180
+ {
181
+ "id": "another-id",
182
+ "question": "Open-ended question?",
183
+ "type": "text",
184
+ "why": "Why this helps"
185
+ }
186
+ ]
187
+
188
+ Use "select" for questions with clear options, "text" for open-ended, "confirm" for yes/no.`;
189
+ try {
190
+ const response = await runClaudeHeadless(prompt, projectPath, { timeout: 45000 });
191
+ // Extract JSON array from response
192
+ const jsonMatch = response.match(/\[[\s\S]*\]/);
193
+ if (jsonMatch) {
194
+ const parsed = JSON.parse(jsonMatch[0]);
195
+ // Validate and limit to 4 questions
196
+ return parsed
197
+ .filter(q => q.id && q.question && q.type)
198
+ .slice(0, 4);
199
+ }
200
+ }
201
+ catch {
202
+ // Silent fail - return empty array
203
+ }
204
+ return [];
205
+ }
148
206
  /**
149
207
  * Use Claude to generate comprehensive documentation
150
208
  */
@@ -1 +1 @@
1
- {"version":3,"file":"claude-inference.js","sourceRoot":"","sources":["../../src/onboard/claude-inference.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"claude-inference.js","sourceRoot":"","sources":["../../src/onboard/claude-inference.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/onboard/index.ts"],"names":[],"mappings":"AAkBA,MAAM,WAAW,cAAc;IAC7B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAmBD;;GAEG;AACH,wBAAsB,UAAU,CAC9B,WAAW,EAAE,MAAM,EACnB,OAAO,GAAE,cAAmB,GAC3B,OAAO,CAAC,IAAI,CAAC,CA6Kf;AAiLD,YAAY,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAC5C,YAAY,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/onboard/index.ts"],"names":[],"mappings":"AAmBA,MAAM,WAAW,cAAc;IAC7B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAmBD;;GAEG;AACH,wBAAsB,UAAU,CAC9B,WAAW,EAAE,MAAM,EACnB,OAAO,GAAE,cAAmB,GAC3B,OAAO,CAAC,IAAI,CAAC,CA0Lf;AAmYD,YAAY,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAC5C,YAAY,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC"}
@@ -6,6 +6,7 @@ import chalk from 'chalk';
6
6
  import ora from 'ora';
7
7
  import prompts from 'prompts';
8
8
  import { existsSync, writeFileSync, mkdirSync, readFileSync } from 'fs';
9
+ import { execSync } from 'child_process';
9
10
  import { join, basename } from 'path';
10
11
  import { detectStack } from './stack-detector.js';
11
12
  import { buildDocs } from './docs-builder.js';
@@ -37,14 +38,11 @@ export async function runOnboard(projectPath, options = {}) {
37
38
  const stackSpinner = ora({ text: 'Scanning project files...', indent: 4 }).start();
38
39
  const stack = detectStack(projectPath);
39
40
  if (stack.isEmpty) {
40
- stackSpinner.warn(chalk.yellow('No project files detected'));
41
- console.log('');
42
- console.log(chalk.dim(' This appears to be a new/empty project.'));
43
- console.log(chalk.dim(' Initialize your project first (npm init, etc.)'));
44
- console.log('');
45
- return;
41
+ stackSpinner.info(chalk.cyan('New project - let\'s set it up'));
42
+ }
43
+ else {
44
+ stackSpinner.succeed(chalk.green('Stack detected'));
46
45
  }
47
- stackSpinner.succeed(chalk.green('Stack detected'));
48
46
  console.log('');
49
47
  // ==========================================================================
50
48
  // Phase 2: Quick Questions
@@ -52,7 +50,10 @@ export async function runOnboard(projectPath, options = {}) {
52
50
  console.log(chalk.cyan(' ▸ Phase 2/4: Quick Questions'));
53
51
  let answers = {};
54
52
  if (!options.skipQuestions && !options.refresh) {
55
- answers = await runInteractiveOnboarding(stack, { verbose: options.verbose });
53
+ answers = await runInteractiveOnboarding(stack, {
54
+ verbose: options.verbose,
55
+ isNewProject: stack.isEmpty,
56
+ });
56
57
  }
57
58
  else {
58
59
  console.log(chalk.dim(' Skipping questions'));
@@ -88,6 +89,19 @@ export async function runOnboard(projectPath, options = {}) {
88
89
  if (decision === 'approve') {
89
90
  approved = true;
90
91
  console.log(chalk.green(' ✓ Approved'));
92
+ // For empty projects, offer scaffolding
93
+ if (stack.isEmpty) {
94
+ console.log('');
95
+ const { scaffold } = await prompts({
96
+ type: 'confirm',
97
+ name: 'scaffold',
98
+ message: ' Create package.json and install dependencies?',
99
+ initial: true,
100
+ });
101
+ if (scaffold) {
102
+ await scaffoldProject(projectPath, proposal, answers);
103
+ }
104
+ }
91
105
  }
92
106
  else if (decision === 'feedback') {
93
107
  const { feedback } = await prompts({
@@ -178,15 +192,71 @@ export async function runOnboard(projectPath, options = {}) {
178
192
  // =============================================================================
179
193
  // Proposal Generation
180
194
  // =============================================================================
195
+ /**
196
+ * Format dynamic answers for inclusion in AI prompts
197
+ */
198
+ function formatDynamicAnswers(answers) {
199
+ const dynamicAnswers = Object.entries(answers)
200
+ .filter(([key, value]) => key.startsWith('dynamic_') && value)
201
+ .map(([key, value]) => {
202
+ // Convert dynamic_auth-method to "Auth method"
203
+ const label = key
204
+ .replace('dynamic_', '')
205
+ .replace(/-/g, ' ')
206
+ .replace(/\b\w/g, c => c.toUpperCase());
207
+ return `- ${label}: ${value}`;
208
+ });
209
+ if (dynamicAnswers.length === 0)
210
+ return '';
211
+ return `\nAdditional requirements:\n${dynamicAnswers.join('\n')}`;
212
+ }
181
213
  async function generateProposal(projectPath, stack, answers) {
182
- const spinner = ora({ text: 'Analyzing codebase...', indent: 4 }).start();
214
+ const isNewProject = stack.isEmpty;
215
+ const spinnerText = isNewProject ? 'Generating stack recommendation...' : 'Analyzing codebase...';
216
+ const spinner = ora({ text: spinnerText, indent: 4 }).start();
183
217
  try {
184
- const prompt = `Analyze this codebase and provide a brief stack summary.
218
+ let prompt;
219
+ if (isNewProject) {
220
+ // For new/empty projects: recommend a complete stack
221
+ const projectTypeDescriptions = {
222
+ web: 'a web application (frontend-focused)',
223
+ api: 'an API/backend service',
224
+ cli: 'a command-line tool',
225
+ library: 'a reusable library/package',
226
+ fullstack: 'a full-stack application with frontend and backend',
227
+ };
228
+ const typeDesc = answers.projectType
229
+ ? projectTypeDescriptions[answers.projectType] || answers.projectType
230
+ : 'a project';
231
+ prompt = `The user wants to build ${typeDesc}.
232
+
233
+ Project description: "${answers.projectDescription || 'Not specified'}"
234
+ ${answers.mainGoal ? `Current focus: ${answers.mainGoal}` : ''}
235
+ ${answers.additionalContext ? `Additional context: ${answers.additionalContext}` : ''}
236
+ ${formatDynamicAnswers(answers)}
237
+
238
+ Recommend a modern, production-ready tech stack for this project.
239
+ Choose popular, well-maintained tools with good documentation.
240
+
241
+ Respond in this exact JSON format:
242
+ {
243
+ "summary": "One sentence describing what this project will be",
244
+ "frameworks": ["primary framework", "supporting frameworks"],
245
+ "libraries": ["essential libraries for this type of project"],
246
+ "devTools": ["typescript", "eslint", "prettier", "testing framework"],
247
+ "architecture": "Recommended architecture approach",
248
+ "recommendations": ["key suggestion 1", "key suggestion 2", "key suggestion 3"]
249
+ }`;
250
+ }
251
+ else {
252
+ // For existing projects: analyze the codebase
253
+ prompt = `Analyze this codebase and provide a brief stack summary.
185
254
 
186
255
  User context:
187
256
  ${answers.projectDescription ? `- Project: ${answers.projectDescription}` : ''}
188
257
  ${answers.mainGoal ? `- Current focus: ${answers.mainGoal}` : ''}
189
258
  ${answers.additionalContext ? `- Notes: ${answers.additionalContext}` : ''}
259
+ ${formatDynamicAnswers(answers)}
190
260
 
191
261
  Detected from package.json:
192
262
  - Frameworks: ${stack.frameworks.map(f => f.name).join(', ') || 'none detected'}
@@ -202,6 +272,7 @@ Respond in this exact JSON format:
202
272
  "architecture": "Brief architecture description",
203
273
  "recommendations": ["suggestion 1", "suggestion 2"]
204
274
  }`;
275
+ }
205
276
  const result = await runClaudeAnalysis(projectPath, prompt, 60000);
206
277
  spinner.stop();
207
278
  if (result) {
@@ -297,6 +368,136 @@ function displayProposal(proposal) {
297
368
  console.log('');
298
369
  }
299
370
  // =============================================================================
371
+ // Scaffolding for New Projects
372
+ // =============================================================================
373
+ async function scaffoldProject(projectPath, proposal, answers) {
374
+ const spinner = ora({ text: 'Scaffolding project...', indent: 4 }).start();
375
+ try {
376
+ // Detect package manager
377
+ const packageManager = detectPackageManager();
378
+ // Generate package.json
379
+ const projectName = basename(projectPath).toLowerCase().replace(/[^a-z0-9-]/g, '-');
380
+ const packageJson = generatePackageJson(projectName, proposal, answers);
381
+ const packageJsonPath = join(projectPath, 'package.json');
382
+ writeFileSync(packageJsonPath, JSON.stringify(packageJson, null, 2));
383
+ spinner.text = 'Created package.json';
384
+ // Install dependencies
385
+ spinner.text = `Installing dependencies with ${packageManager}...`;
386
+ const installCmd = packageManager === 'yarn' ? 'yarn' : `${packageManager} install`;
387
+ try {
388
+ execSync(installCmd, {
389
+ cwd: projectPath,
390
+ stdio: 'pipe',
391
+ timeout: 120000, // 2 minute timeout
392
+ });
393
+ spinner.succeed(chalk.green(`Scaffolded with ${packageManager}`));
394
+ }
395
+ catch {
396
+ spinner.warn(chalk.yellow('Created package.json (install failed - run manually)'));
397
+ }
398
+ }
399
+ catch (err) {
400
+ spinner.fail(chalk.red('Scaffolding failed'));
401
+ console.error(chalk.dim(` ${err instanceof Error ? err.message : String(err)}`));
402
+ }
403
+ }
404
+ function detectPackageManager() {
405
+ // Check for lock files in current directory or common indicators
406
+ try {
407
+ execSync('pnpm --version', { stdio: 'pipe' });
408
+ return 'pnpm';
409
+ }
410
+ catch {
411
+ // pnpm not available
412
+ }
413
+ try {
414
+ execSync('bun --version', { stdio: 'pipe' });
415
+ return 'bun';
416
+ }
417
+ catch {
418
+ // bun not available
419
+ }
420
+ try {
421
+ execSync('yarn --version', { stdio: 'pipe' });
422
+ return 'yarn';
423
+ }
424
+ catch {
425
+ // yarn not available
426
+ }
427
+ return 'npm';
428
+ }
429
+ function generatePackageJson(projectName, proposal, answers) {
430
+ const dependencies = {};
431
+ const devDependencies = {};
432
+ // Add frameworks as dependencies
433
+ for (const framework of proposal.frameworks) {
434
+ const dep = frameworkToPackage(framework);
435
+ if (dep)
436
+ dependencies[dep] = 'latest';
437
+ }
438
+ // Add libraries as dependencies
439
+ for (const lib of proposal.libraries) {
440
+ const dep = libraryToPackage(lib);
441
+ if (dep)
442
+ dependencies[dep] = 'latest';
443
+ }
444
+ // Add dev tools as devDependencies
445
+ for (const tool of proposal.devTools) {
446
+ const dep = devToolToPackage(tool);
447
+ if (dep)
448
+ devDependencies[dep] = 'latest';
449
+ }
450
+ // Always include TypeScript for modern projects
451
+ if (!devDependencies['typescript']) {
452
+ devDependencies['typescript'] = 'latest';
453
+ }
454
+ return {
455
+ name: projectName,
456
+ version: '0.1.0',
457
+ description: answers.projectDescription || proposal.summary,
458
+ type: 'module',
459
+ scripts: {
460
+ dev: 'echo "Add your dev script"',
461
+ build: 'echo "Add your build script"',
462
+ test: 'echo "Add your test script"',
463
+ },
464
+ dependencies,
465
+ devDependencies,
466
+ };
467
+ }
468
+ function frameworkToPackage(framework) {
469
+ const mapping = {
470
+ 'next.js': 'next',
471
+ 'nextjs': 'next',
472
+ 'react': 'react',
473
+ 'vue': 'vue',
474
+ 'nuxt': 'nuxt',
475
+ 'express': 'express',
476
+ 'fastify': 'fastify',
477
+ 'hono': 'hono',
478
+ 'svelte': 'svelte',
479
+ 'sveltekit': '@sveltejs/kit',
480
+ 'astro': 'astro',
481
+ 'remix': '@remix-run/node',
482
+ };
483
+ return mapping[framework.toLowerCase()] || framework.toLowerCase();
484
+ }
485
+ function libraryToPackage(lib) {
486
+ // Most libraries map directly to their package name
487
+ return lib.toLowerCase().replace(/\s+/g, '-');
488
+ }
489
+ function devToolToPackage(tool) {
490
+ const mapping = {
491
+ 'typescript': 'typescript',
492
+ 'eslint': 'eslint',
493
+ 'prettier': 'prettier',
494
+ 'vitest': 'vitest',
495
+ 'jest': 'jest',
496
+ 'biome': '@biomejs/biome',
497
+ };
498
+ return mapping[tool.toLowerCase()] || tool.toLowerCase();
499
+ }
500
+ // =============================================================================
300
501
  // Helper Functions
301
502
  // =============================================================================
302
503
  function createClaudeMdPointer(projectPath, projectName) {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/onboard/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/onboard/index.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,7 @@ export interface OnboardingAnswers {
3
3
  projectDescription?: string;
4
4
  mainGoal?: string;
5
5
  additionalContext?: string;
6
+ projectType?: 'web' | 'api' | 'cli' | 'library' | 'fullstack';
6
7
  [key: string]: string | undefined;
7
8
  }
8
9
  export interface QuestionOptions {
@@ -1 +1 @@
1
- {"version":3,"file":"questions.d.ts","sourceRoot":"","sources":["../../src/onboard/questions.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C,MAAM,WAAW,iBAAiB;IAEhC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAG3B,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;CACnC;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED;;;GAGG;AACH,wBAAsB,wBAAwB,CAC5C,KAAK,EAAE,SAAS,EAChB,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAAC,iBAAiB,CAAC,CAwD5B;AAmBD;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,iBAAiB,GAAG,MAAM,CAgBvE"}
1
+ {"version":3,"file":"questions.d.ts","sourceRoot":"","sources":["../../src/onboard/questions.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAG5C,MAAM,WAAW,iBAAiB;IAEhC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,WAAW,CAAC,EAAE,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,SAAS,GAAG,WAAW,CAAC;IAG9D,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;CACnC;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED;;;GAGG;AACH,wBAAsB,wBAAwB,CAC5C,KAAK,EAAE,SAAS,EAChB,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAAC,iBAAiB,CAAC,CAyI5B;AA+DD;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,iBAAiB,GAAG,MAAM,CAgBvE"}
@@ -4,6 +4,8 @@
4
4
  // Ask simple questions, let Claude infer the rest
5
5
  import prompts from 'prompts';
6
6
  import chalk from 'chalk';
7
+ import ora from 'ora';
8
+ import { generateDynamicQuestions, isClaudeCliAvailable } from './claude-inference.js';
7
9
  /**
8
10
  * Ask a few simple open-ended questions
9
11
  * Claude will infer everything else from the codebase + these answers
@@ -14,21 +16,63 @@ export async function runInteractiveOnboarding(stack, options = {}) {
14
16
  console.log('');
15
17
  console.log(chalk.dim(' ┌─ Quick Context ───────────────────────'));
16
18
  console.log(chalk.dim(' │'));
17
- console.log(chalk.dim(' │ A few quick questions to help Claude understand.'));
18
- console.log(chalk.dim(' │ Press Enter to skip any question.'));
19
+ if (isNew) {
20
+ console.log(chalk.dim(' │ ') + chalk.cyan('New project setup'));
21
+ console.log(chalk.dim(' │ Tell us what you want to build.'));
22
+ }
23
+ else {
24
+ console.log(chalk.dim(' │ A few quick questions to help Claude understand.'));
25
+ console.log(chalk.dim(' │ Press Enter to skip any question.'));
26
+ }
19
27
  console.log(chalk.dim(' │'));
20
28
  console.log(chalk.dim(' └──────────────────────────────────────────'));
21
29
  console.log('');
22
- // Question 1: What is this?
23
- const q1 = await safePrompt({
24
- type: 'text',
25
- name: 'projectDescription',
26
- message: isNew
27
- ? 'What do you want to build?'
28
- : 'What is this project? (one sentence)',
29
- });
30
- if (q1?.projectDescription && typeof q1.projectDescription === 'string' && q1.projectDescription.trim()) {
31
- answers.projectDescription = q1.projectDescription.trim();
30
+ // Question 1: What is this? (REQUIRED for new projects)
31
+ let projectDescription;
32
+ if (isNew) {
33
+ // For new projects, keep asking until they provide a description
34
+ while (!projectDescription) {
35
+ const q1 = await safePrompt({
36
+ type: 'text',
37
+ name: 'projectDescription',
38
+ message: 'What do you want to build?',
39
+ });
40
+ if (q1?.projectDescription && typeof q1.projectDescription === 'string' && q1.projectDescription.trim()) {
41
+ projectDescription = q1.projectDescription.trim();
42
+ }
43
+ else {
44
+ console.log(chalk.yellow(' Please describe what you want to build.'));
45
+ console.log('');
46
+ }
47
+ }
48
+ answers.projectDescription = projectDescription;
49
+ // Question 1b: Project type (for new projects only)
50
+ const typeQ = await safePrompt({
51
+ type: 'select',
52
+ name: 'projectType',
53
+ message: 'What type of project?',
54
+ choices: [
55
+ { title: 'Web App (React/Next.js)', value: 'web' },
56
+ { title: 'API/Backend (Express/Fastify)', value: 'api' },
57
+ { title: 'CLI Tool', value: 'cli' },
58
+ { title: 'Library/Package', value: 'library' },
59
+ { title: 'Full-stack', value: 'fullstack' },
60
+ ],
61
+ });
62
+ if (typeQ?.projectType) {
63
+ answers.projectType = typeQ.projectType;
64
+ }
65
+ }
66
+ else {
67
+ // For existing projects, description is optional
68
+ const q1 = await safePrompt({
69
+ type: 'text',
70
+ name: 'projectDescription',
71
+ message: 'What is this project? (one sentence)',
72
+ });
73
+ if (q1?.projectDescription && typeof q1.projectDescription === 'string' && q1.projectDescription.trim()) {
74
+ answers.projectDescription = q1.projectDescription.trim();
75
+ }
32
76
  }
33
77
  // Question 2: Main goal (only if they answered Q1)
34
78
  if (answers.projectDescription) {
@@ -50,6 +94,41 @@ export async function runInteractiveOnboarding(stack, options = {}) {
50
94
  if (q3?.additionalContext && typeof q3.additionalContext === 'string' && q3.additionalContext.trim()) {
51
95
  answers.additionalContext = q3.additionalContext.trim();
52
96
  }
97
+ // Dynamic AI-generated questions (for new projects with Claude CLI available)
98
+ if (isNew && isClaudeCliAvailable() && answers.projectDescription) {
99
+ console.log('');
100
+ const dynamicSpinner = ora({ text: 'Generating follow-up questions...', indent: 4 }).start();
101
+ try {
102
+ const dynamicQuestions = await generateDynamicQuestions(process.cwd(), {
103
+ projectDescription: answers.projectDescription,
104
+ projectType: answers.projectType,
105
+ mainGoal: answers.mainGoal,
106
+ isNewProject: true,
107
+ });
108
+ dynamicSpinner.stop();
109
+ if (dynamicQuestions.length > 0) {
110
+ console.log('');
111
+ console.log(chalk.dim(' ┌─ A few more questions ─────────────────'));
112
+ console.log(chalk.dim(' │'));
113
+ console.log(chalk.dim(' │ ') + chalk.cyan('These will help tailor the stack.'));
114
+ console.log(chalk.dim(' │ Press Enter to skip any question.'));
115
+ console.log(chalk.dim(' │'));
116
+ console.log(chalk.dim(' └──────────────────────────────────────────'));
117
+ console.log('');
118
+ // Ask each dynamic question
119
+ for (const dq of dynamicQuestions) {
120
+ const response = await askDynamicQuestion(dq);
121
+ if (response !== null && response !== undefined && String(response).trim()) {
122
+ answers[`dynamic_${dq.id}`] = String(response).trim();
123
+ }
124
+ }
125
+ }
126
+ }
127
+ catch {
128
+ dynamicSpinner.stop();
129
+ // Silent fail - continue without dynamic questions
130
+ }
131
+ }
53
132
  console.log('');
54
133
  const answeredCount = Object.keys(answers).filter(k => answers[k]).length;
55
134
  if (answeredCount > 0) {
@@ -61,6 +140,51 @@ export async function runInteractiveOnboarding(stack, options = {}) {
61
140
  return answers;
62
141
  }
63
142
  // =============================================================================
143
+ // Dynamic Question Handler
144
+ // =============================================================================
145
+ async function askDynamicQuestion(dq) {
146
+ try {
147
+ if (dq.type === 'select' && dq.options) {
148
+ const response = await prompts({
149
+ type: 'select',
150
+ name: 'value',
151
+ message: dq.question,
152
+ choices: dq.options.map(o => ({ title: o.title, value: o.value })),
153
+ hint: dq.why,
154
+ }, {
155
+ onCancel: () => { throw new Error('cancelled'); },
156
+ });
157
+ return response?.value ?? null;
158
+ }
159
+ else if (dq.type === 'confirm') {
160
+ const response = await prompts({
161
+ type: 'confirm',
162
+ name: 'value',
163
+ message: dq.question,
164
+ hint: dq.why,
165
+ }, {
166
+ onCancel: () => { throw new Error('cancelled'); },
167
+ });
168
+ return response?.value ?? null;
169
+ }
170
+ else {
171
+ // text type
172
+ const response = await prompts({
173
+ type: 'text',
174
+ name: 'value',
175
+ message: dq.question,
176
+ hint: dq.why,
177
+ }, {
178
+ onCancel: () => { throw new Error('cancelled'); },
179
+ });
180
+ return response?.value ?? null;
181
+ }
182
+ }
183
+ catch {
184
+ return null;
185
+ }
186
+ }
187
+ // =============================================================================
64
188
  // Safe prompt wrapper - handles cancellation gracefully
65
189
  // =============================================================================
66
190
  async function safePrompt(config) {
@@ -1 +1 @@
1
- {"version":3,"file":"questions.js","sourceRoot":"","sources":["../../src/onboard/questions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"questions.js","sourceRoot":"","sources":["../../src/onboard/questions.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@claudetools/cli",
3
- "version": "0.13.0",
3
+ "version": "0.13.1",
4
4
  "description": "AI agent project setup and documentation tools for Claude Code",
5
5
  "type": "module",
6
6
  "main": "dist/cli.js",