@horiastanxd/claude-init 0.7.0 → 0.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
@@ -14,6 +14,7 @@ npx @horiastanxd/claude-init
14
14
  [![CI](https://github.com/horiastanxd/claude-init/actions/workflows/ci.yml/badge.svg)](https://github.com/horiastanxd/claude-init/actions/workflows/ci.yml)
15
15
  [![license](https://img.shields.io/npm/l/@horiastanxd/claude-init.svg?color=blue)](./LICENSE)
16
16
  [![node](https://img.shields.io/node/v/@horiastanxd/claude-init.svg?color=339933&logo=node.js)](https://nodejs.org)
17
+ [![Glama MCP](https://glama.ai/mcp/servers/horiastanxd/claude-init/badges/score.svg)](https://glama.ai/mcp/servers/horiastanxd/claude-init)
17
18
 
18
19
  </div>
19
20
 
@@ -85,6 +86,7 @@ npx @horiastanxd/claude-init -t claude,cursor # only specific tools
85
86
  npx @horiastanxd/claude-init --overwrite # refresh files that already exist
86
87
  npx @horiastanxd/claude-init --dry-run # print the analysis as JSON, write nothing
87
88
  npx @horiastanxd/claude-init --recurse # also generate into each workspace package (monorepo)
89
+ npx @horiastanxd/claude-init --enrich # opt-in: sharpen the description with an LLM (needs ANTHROPIC_API_KEY)
88
90
  npx @horiastanxd/claude-init list # show all targets and their paths
89
91
  ```
90
92
 
@@ -103,8 +105,15 @@ Options:
103
105
  --overwrite overwrite existing files
104
106
  --dry-run print the analysis as JSON, write nothing
105
107
  --recurse also generate into each workspace package (monorepo)
108
+ --enrich use an LLM to enrich the project description (opt-in)
109
+ --enrich-model <model> model for --enrich (default: claude-opus-4-8)
106
110
  ```
107
111
 
112
+ `--enrich` is the one feature that leaves your machine, and it is off by default -
113
+ everything else is 100% local. It needs `ANTHROPIC_API_KEY` and the Anthropic SDK
114
+ (`npm install @anthropic-ai/sdk`); if either is missing, generation continues without
115
+ enrichment, so nothing breaks.
116
+
108
117
  For a monorepo, `--recurse` reads the workspaces from `package.json`
109
118
  (`workspaces`) or `pnpm-workspace.yaml`, then generates context files in the root
110
119
  and in each package, analyzing every package on its own. It works for both
@@ -124,12 +133,22 @@ npx @horiastanxd/claude-init check || {
124
133
  }
125
134
  ```
126
135
 
127
- **GitHub Actions:**
136
+ **GitHub Actions** - run the CLI directly:
128
137
 
129
138
  ```yaml
130
139
  - run: npx @horiastanxd/claude-init check
131
140
  ```
132
141
 
142
+ or use the action:
143
+
144
+ ```yaml
145
+ - uses: horiastanxd/claude-init@v1
146
+ with:
147
+ command: check # or "generate"
148
+ targets: all # comma-separated ids, or "all"
149
+ # args: --overwrite --recurse
150
+ ```
151
+
133
152
  ## Example output
134
153
 
135
154
  <details>
@@ -191,6 +210,11 @@ Tools exposed: `analyze_project`, `generate_context_files`, `check_context_files
191
210
  Languages: JS/TS (npm, pnpm, yarn, bun), Python (pip, uv, poetry), Rust (cargo),
192
211
  Go (modules), Java (Maven, Gradle), Ruby (Bundler), and PHP (Composer).
193
212
 
213
+ Frameworks detected include Next.js, Remix, Astro, Angular, Gatsby, NestJS,
214
+ Express, Fastify, Hono, SvelteKit, Nuxt, Vue, Svelte, React (JS/TS); FastAPI,
215
+ Django, Flask (Python); Axum, Actix, Rocket (Rust); Gin, Fiber, Echo (Go);
216
+ Spring Boot (Java); Rails, Sinatra (Ruby); and Laravel, Symfony (PHP).
217
+
194
218
  ## Use as a library
195
219
 
196
220
  ```ts
@@ -220,7 +244,6 @@ Contributions welcome - adding a new tool is usually a single entry in
220
244
 
221
245
  ## Roadmap
222
246
 
223
- - Optional LLM pass to enrich descriptions (opt-in, off by default)
224
247
  - More tools as their formats stabilize
225
248
 
226
249
  Ideas and PRs welcome.
@@ -16,11 +16,11 @@ export async function detectTechStack(projectDir) {
16
16
  ['Cargo.toml', parseCargoToml],
17
17
  ['go.mod', parseGoMod],
18
18
  ['pyproject.toml', parsePyproject],
19
- ['requirements.txt', async () => ({ language: 'Python', packageManager: 'pip' })],
20
- ['pom.xml', async () => ({ language: 'Java', packageManager: 'maven' })],
21
- ['build.gradle', async () => ({ language: 'Java/Kotlin', packageManager: 'gradle' })],
22
- ['Gemfile', async () => ({ language: 'Ruby', packageManager: 'bundler' })],
23
- ['composer.json', async () => ({ language: 'PHP', packageManager: 'composer' })],
19
+ ['requirements.txt', parseRequirementsTxt],
20
+ ['pom.xml', parsePomXml],
21
+ ['build.gradle', parseGradle],
22
+ ['Gemfile', parseGemfile],
23
+ ['composer.json', parseComposerJson],
24
24
  ];
25
25
  for (const [file, parser] of manifest) {
26
26
  if (await pathExists(join(projectDir, file))) {
@@ -44,6 +44,12 @@ async function parsePackageJson(dir) {
44
44
  result.framework = 'Next.js';
45
45
  else if (has('@remix-run/node') || has('@remix-run/react'))
46
46
  result.framework = 'Remix';
47
+ else if (has('astro'))
48
+ result.framework = 'Astro';
49
+ else if (has('@angular/core'))
50
+ result.framework = 'Angular';
51
+ else if (has('gatsby'))
52
+ result.framework = 'Gatsby';
47
53
  else if (has('@nestjs/core'))
48
54
  result.framework = 'NestJS';
49
55
  else if (has('express'))
@@ -128,14 +134,72 @@ async function parsePyproject(dir) {
128
134
  return {
129
135
  language: 'Python',
130
136
  packageManager: hasUv ? 'uv' : hasPoetry ? 'poetry' : 'pip',
131
- framework: content.includes('fastapi')
132
- ? 'FastAPI'
133
- : content.includes('django')
134
- ? 'Django'
135
- : content.includes('flask')
136
- ? 'Flask'
137
- : null,
137
+ framework: pythonFramework(content),
138
+ testing: content.includes('pytest') ? 'pytest' : null,
139
+ };
140
+ }
141
+ async function parseRequirementsTxt(dir) {
142
+ const content = ((await readText(join(dir, 'requirements.txt'))) ?? '').toLowerCase();
143
+ return {
144
+ language: 'Python',
145
+ packageManager: 'pip',
146
+ framework: pythonFramework(content),
138
147
  testing: content.includes('pytest') ? 'pytest' : null,
139
148
  };
140
149
  }
150
+ function pythonFramework(content) {
151
+ const c = content.toLowerCase();
152
+ if (c.includes('fastapi'))
153
+ return 'FastAPI';
154
+ if (c.includes('django'))
155
+ return 'Django';
156
+ if (c.includes('flask'))
157
+ return 'Flask';
158
+ return null;
159
+ }
160
+ async function parsePomXml(dir) {
161
+ const content = (await readText(join(dir, 'pom.xml'))) ?? '';
162
+ return {
163
+ language: 'Java',
164
+ packageManager: 'maven',
165
+ framework: content.includes('spring-boot') ? 'Spring Boot' : null,
166
+ };
167
+ }
168
+ async function parseGradle(dir) {
169
+ const content = (await readText(join(dir, 'build.gradle'))) ?? '';
170
+ return {
171
+ language: 'Java/Kotlin',
172
+ packageManager: 'gradle',
173
+ framework: content.includes('spring-boot') ? 'Spring Boot' : null,
174
+ };
175
+ }
176
+ async function parseGemfile(dir) {
177
+ const content = ((await readText(join(dir, 'Gemfile'))) ?? '').toLowerCase();
178
+ return {
179
+ language: 'Ruby',
180
+ packageManager: 'bundler',
181
+ framework: content.includes('rails')
182
+ ? 'Rails'
183
+ : content.includes('sinatra')
184
+ ? 'Sinatra'
185
+ : null,
186
+ testing: content.includes('rspec') ? 'RSpec' : content.includes('minitest') ? 'Minitest' : null,
187
+ };
188
+ }
189
+ async function parseComposerJson(dir) {
190
+ const pkg = await readJson(join(dir, 'composer.json'));
191
+ const deps = { ...pkg?.require, ...pkg?.['require-dev'] };
192
+ const has = (name) => name in deps;
193
+ const hasPrefix = (prefix) => Object.keys(deps).some((k) => k.startsWith(prefix));
194
+ return {
195
+ language: 'PHP',
196
+ packageManager: 'composer',
197
+ framework: has('laravel/framework')
198
+ ? 'Laravel'
199
+ : hasPrefix('symfony/')
200
+ ? 'Symfony'
201
+ : null,
202
+ testing: has('phpunit/phpunit') ? 'PHPUnit' : has('pestphp/pest') ? 'Pest' : null,
203
+ };
204
+ }
141
205
  //# sourceMappingURL=tech-stack.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tech-stack.js","sourceRoot":"","sources":["../../src/analyzer/tech-stack.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tech-stack.js","sourceRoot":"","sources":["../../src/analyzer/tech-stack.ts"],"names":[],"mappings":"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"}
package/dist/cli.js CHANGED
@@ -6,6 +6,7 @@ import ora from 'ora';
6
6
  import { analyzeProject } from './analyzer/index.js';
7
7
  import { generateAll, checkAll } from './generators/index.js';
8
8
  import { generateWorkspacePackages, checkWorkspacePackages } from './generate-recursive.js';
9
+ import { enrichAnalysis, createAnthropicCompleter } from './enrich.js';
9
10
  import { TARGETS, TARGET_IDS, invalidTargets } from './generators/registry.js';
10
11
  import { getVersion } from './version.js';
11
12
  function parseTargets(raw) {
@@ -34,6 +35,22 @@ async function runGenerate(dir, opts) {
34
35
  }
35
36
  spinner.succeed(`Analyzed ${chalk.bold(analysis.name)} ` +
36
37
  chalk.dim(`(${analysis.techStack.language}${analysis.techStack.framework ? `, ${analysis.techStack.framework}` : ''})`));
38
+ if (opts.enrich) {
39
+ const apiKey = process.env.ANTHROPIC_API_KEY;
40
+ if (!apiKey) {
41
+ console.log(chalk.yellow(' --enrich set but ANTHROPIC_API_KEY is not set; skipping enrichment.'));
42
+ }
43
+ else {
44
+ try {
45
+ const complete = await createAnthropicCompleter({ model: opts.enrichModel, apiKey });
46
+ analysis = await enrichAnalysis(analysis, complete);
47
+ console.log(chalk.dim(` enriched description via ${opts.enrichModel}`));
48
+ }
49
+ catch (err) {
50
+ console.log(chalk.yellow(` Enrichment skipped: ${err.message}`));
51
+ }
52
+ }
53
+ }
37
54
  if (opts.dryRun) {
38
55
  console.log(JSON.stringify(analysis, null, 2));
39
56
  return;
@@ -126,6 +143,8 @@ async function main() {
126
143
  .option('--overwrite', 'overwrite existing files', false)
127
144
  .option('--dry-run', 'print the analysis as JSON without writing files', false)
128
145
  .option('--recurse', 'also generate into each workspace package (monorepo)', false)
146
+ .option('--enrich', 'use an LLM to enrich the project description (opt-in; needs ANTHROPIC_API_KEY)', false)
147
+ .option('--enrich-model <model>', 'model to use for --enrich', 'claude-opus-4-8')
129
148
  .action(runGenerate);
130
149
  program
131
150
  .command('check')
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,yBAAyB,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AAC5F,OAAO,EAAE,cAAc,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AACvE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC/E,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,SAAS,YAAY,CAAC,GAAW;IAC/B,MAAM,KAAK,GAAG,GAAG;SACd,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;SAClC,MAAM,CAAC,OAAO,CAAC,CAAC;IACnB,MAAM,GAAG,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;IAClC,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,sBAAsB,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAChG,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,KAAK,UAAU,WAAW,CACxB,GAAuB,EACvB,IAQC;IAED,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC;IACvC,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAE3C,MAAM,OAAO,GAAG,GAAG,CAAC,aAAa,UAAU,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC;IACvD,IAAI,QAAQ,CAAC;IACb,IAAI,CAAC;QACH,QAAQ,GAAG,MAAM,cAAc,CAAC,UAAU,CAAC,CAAC;IAC9C,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,IAAI,CAAC,oBAAqB,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;QAC3D,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACrB,OAAO;IACT,CAAC;IACD,OAAO,CAAC,OAAO,CACb,YAAY,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG;QACtC,KAAK,CAAC,GAAG,CACP,IAAI,QAAQ,CAAC,SAAS,CAAC,QAAQ,GAAG,QAAQ,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAC7G,CACJ,CAAC;IAEF,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QAChB,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC;QAC7C,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,uEAAuE,CAAC,CAAC,CAAC;QACrG,CAAC;aAAM,CAAC;YACN,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,MAAM,wBAAwB,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,WAAW,EAAE,MAAM,EAAE,CAAC,CAAC;gBACrF,QAAQ,GAAG,MAAM,cAAc,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;gBACpD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,8BAA8B,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;YAC3E,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,yBAA0B,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;YAC/E,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAC/C,OAAO;IACT,CAAC;IAED,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,MAAM,WAAW,CAAC,QAAQ,EAAE;QACvD,SAAS,EAAE,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;QAC/B,OAAO;QACP,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,OAAO,EAAE,KAAK;KACf,CAAC,CAAC;IAEH,KAAK,MAAM,CAAC,IAAI,OAAO;QAAE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;IAC5D,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACxB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,2BAA2B,CAAC,EAAE,CAAC,CAAC;IACrF,CAAC;IAED,IAAI,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC;IAC3B,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;QACjB,KAAK,MAAM,GAAG,IAAI,MAAM,yBAAyB,CAAC,UAAU,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,EAAE,CAAC;YACtG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;YACzC,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,OAAO;gBAAE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;YAChE,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,OAAO;gBAAE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;YAC/F,KAAK,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC;QAC9B,CAAC;IACH,CAAC;IAED,IAAI,CAAC,KAAK,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QAC7B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,uEAAuE,CAAC,CAAC,CAAC;IACrG,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,KAAK,qBAAqB,CAAC,CAAC,CAAC;IACjE,CAAC;AACH,CAAC;AAED,KAAK,UAAU,QAAQ,CACrB,GAAuB,EACvB,IAA2D;IAE3D,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC;IACvC,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC3C,MAAM,UAAU,GAAG,CAAC,CAAmC,EAAE,EAAE;QACzD,MAAM,IAAI,GACR,CAAC,CAAC,MAAM,KAAK,IAAI;YACf,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC;YAC1B,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,OAAO;gBACpB,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC;gBAC3B,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAC/B,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC,CAAC;IAEF,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,UAAU,CAAC,CAAC;IAClD,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,MAAM,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,CAAC;IACrF,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAE5B,IAAI,QAAQ,GAAG,OAAO,CAAC;IACvB,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;QACjB,KAAK,MAAM,GAAG,IAAI,MAAM,sBAAsB,CAAC,UAAU,EAAE,OAAO,CAAC,EAAE,CAAC;YACpE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;YACzC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YAChC,QAAQ,GAAG,QAAQ,IAAI,GAAG,CAAC,OAAO,CAAC;QACrC,CAAC;IACH,CAAC;IAED,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,4EAA4E,CAAC,CAAC,CAAC;QACrG,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IACvB,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC,CAAC;IAClE,CAAC;AACH,CAAC;AAED,SAAS,OAAO;IACd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC;IAChD,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IAC3D,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACxB,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC7F,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAC/D,CAAC;AACH,CAAC;AAED,KAAK,UAAU,IAAI;IACjB,IAAI,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QACnC,MAAM,EAAE,cAAc,EAAE,GAAG,MAAM,MAAM,CAAC,iBAAiB,CAAC,CAAC;QAC3D,MAAM,cAAc,EAAE,CAAC;QACvB,OAAO;IACT,CAAC;IAED,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;IAC9B,OAAO;SACJ,IAAI,CAAC,aAAa,CAAC;SACnB,WAAW,CACV,oGAAoG,CACrG;SACA,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;IAEzB,OAAO;SACJ,OAAO,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;SACxC,KAAK,CAAC,GAAG,CAAC;SACV,WAAW,CAAC,oDAAoD,CAAC;SACjE,QAAQ,CAAC,OAAO,EAAE,mBAAmB,EAAE,GAAG,CAAC;SAC3C,MAAM,CAAC,sBAAsB,EAAE,oBAAoB,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC;SACtF,MAAM,CAAC,oBAAoB,EAAE,kBAAkB,EAAE,GAAG,CAAC;SACrD,MAAM,CAAC,aAAa,EAAE,0BAA0B,EAAE,KAAK,CAAC;SACxD,MAAM,CAAC,WAAW,EAAE,kDAAkD,EAAE,KAAK,CAAC;SAC9E,MAAM,CAAC,WAAW,EAAE,sDAAsD,EAAE,KAAK,CAAC;SAClF,MAAM,CAAC,UAAU,EAAE,gFAAgF,EAAE,KAAK,CAAC;SAC3G,MAAM,CAAC,wBAAwB,EAAE,2BAA2B,EAAE,iBAAiB,CAAC;SAChF,MAAM,CAAC,WAAW,CAAC,CAAC;IAEvB,OAAO;SACJ,OAAO,CAAC,OAAO,CAAC;SAChB,WAAW,CAAC,sFAAsF,CAAC;SACnG,QAAQ,CAAC,OAAO,EAAE,mBAAmB,EAAE,GAAG,CAAC;SAC3C,MAAM,CAAC,sBAAsB,EAAE,oBAAoB,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC;SACtF,MAAM,CAAC,oBAAoB,EAAE,kBAAkB,EAAE,GAAG,CAAC;SACrD,MAAM,CAAC,WAAW,EAAE,8CAA8C,EAAE,KAAK,CAAC;SAC1E,MAAM,CAAC,QAAQ,CAAC,CAAC;IAEpB,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,+CAA+C,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAErG,OAAO;SACJ,OAAO,CAAC,KAAK,CAAC;SACd,WAAW,CAAC,iCAAiC,CAAC;SAC9C,MAAM,CAAC,KAAK,IAAI,EAAE;QACjB,MAAM,EAAE,cAAc,EAAE,GAAG,MAAM,MAAM,CAAC,iBAAiB,CAAC,CAAC;QAC3D,MAAM,cAAc,EAAE,CAAC;IACzB,CAAC,CAAC,CAAC;IAEL,MAAM,OAAO,CAAC,UAAU,EAAE,CAAC;AAC7B,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IACnB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,UAAW,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IAC7D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
@@ -0,0 +1,18 @@
1
+ import type { ProjectAnalysis } from './types.js';
2
+ /** Produces a completion from a system + user prompt. Injected so the network call is testable. */
3
+ export type CompleteFn = (system: string, user: string) => Promise<string>;
4
+ export interface EnrichOptions {
5
+ model: string;
6
+ apiKey: string;
7
+ }
8
+ /**
9
+ * Enrich the project description with an LLM. Pure given `complete` - the network
10
+ * dependency is injected, so this is fully testable without hitting the API.
11
+ */
12
+ export declare function enrichAnalysis(analysis: ProjectAnalysis, complete: CompleteFn): Promise<ProjectAnalysis>;
13
+ /**
14
+ * Build a completer backed by the official Anthropic SDK. The SDK is loaded
15
+ * dynamically and is NOT a dependency of this package - enrichment is opt-in, so
16
+ * default installs stay network-free. Install it with `npm install @anthropic-ai/sdk`.
17
+ */
18
+ export declare function createAnthropicCompleter(opts: EnrichOptions): Promise<CompleteFn>;
package/dist/enrich.js ADDED
@@ -0,0 +1,61 @@
1
+ const SYSTEM_PROMPT = 'You write a single concise sentence describing what a software project does, for a ' +
2
+ 'README-style context file. Output only the sentence: no preamble, no markdown, no quotes, ' +
3
+ 'present tense, third person.';
4
+ function buildEnrichPrompt(a) {
5
+ const { techStack: t } = a;
6
+ const stack = [t.language, t.framework, t.runtime, t.database, t.testing]
7
+ .filter(Boolean)
8
+ .join(', ');
9
+ const lines = [
10
+ `Project name: ${a.name}`,
11
+ `Stack: ${stack}`,
12
+ a.description ? `Existing description: ${a.description}` : '',
13
+ 'File tree:',
14
+ a.structure.tree,
15
+ ].filter(Boolean);
16
+ return lines.join('\n');
17
+ }
18
+ /** Collapse a model reply to a single trimmed sentence. */
19
+ function toOneSentence(text) {
20
+ const clean = text.trim().replace(/\s+/g, ' ');
21
+ const end = clean.search(/[.!?](\s|$)/);
22
+ return end === -1 ? clean : clean.slice(0, end + 1);
23
+ }
24
+ /**
25
+ * Enrich the project description with an LLM. Pure given `complete` - the network
26
+ * dependency is injected, so this is fully testable without hitting the API.
27
+ */
28
+ export async function enrichAnalysis(analysis, complete) {
29
+ const reply = (await complete(SYSTEM_PROMPT, buildEnrichPrompt(analysis))).trim();
30
+ if (!reply)
31
+ return analysis;
32
+ return { ...analysis, description: toOneSentence(reply) };
33
+ }
34
+ /**
35
+ * Build a completer backed by the official Anthropic SDK. The SDK is loaded
36
+ * dynamically and is NOT a dependency of this package - enrichment is opt-in, so
37
+ * default installs stay network-free. Install it with `npm install @anthropic-ai/sdk`.
38
+ */
39
+ export async function createAnthropicCompleter(opts) {
40
+ const specifier = '@anthropic-ai/sdk';
41
+ let mod;
42
+ try {
43
+ mod = await import(specifier);
44
+ }
45
+ catch {
46
+ throw new Error('Enrichment needs the Anthropic SDK. Install it with: npm install @anthropic-ai/sdk');
47
+ }
48
+ const Anthropic = mod.default;
49
+ const client = new Anthropic({ apiKey: opts.apiKey });
50
+ return async (system, user) => {
51
+ const message = await client.messages.create({
52
+ model: opts.model,
53
+ max_tokens: 1024,
54
+ system,
55
+ messages: [{ role: 'user', content: user }],
56
+ });
57
+ const block = message.content.find((b) => b.type === 'text');
58
+ return block?.text ?? '';
59
+ };
60
+ }
61
+ //# sourceMappingURL=enrich.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"enrich.js","sourceRoot":"","sources":["../src/enrich.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@horiastanxd/claude-init",
3
- "version": "0.7.0",
3
+ "version": "0.9.0",
4
4
  "description": "One command generates AI context files - CLAUDE.md, AGENTS.md, Cursor/Windsurf/Cline/Continue/Kilo Code/Trae rules, GEMINI.md, Copilot, Aider, Junie, Warp - for any repository. CLI + MCP server, 100% local.",
5
5
  "type": "module",
6
6
  "bin": {