@dinyangetoh/codeplug-cli 0.1.1 → 0.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (31) hide show
  1. package/dist/cli/index.js +66 -66
  2. package/dist/cli/index.js.map +1 -1
  3. package/dist/core/generator/DocGenerator.d.ts +2 -0
  4. package/dist/core/generator/DocGenerator.d.ts.map +1 -1
  5. package/dist/core/generator/DocGenerator.js +41 -10
  6. package/dist/core/generator/DocGenerator.js.map +1 -1
  7. package/dist/core/generator/documents/ArchitectureGenerator.d.ts.map +1 -1
  8. package/dist/core/generator/documents/ArchitectureGenerator.js +20 -12
  9. package/dist/core/generator/documents/ArchitectureGenerator.js.map +1 -1
  10. package/dist/core/generator/documents/ContributingGenerator.d.ts.map +1 -1
  11. package/dist/core/generator/documents/ContributingGenerator.js +14 -7
  12. package/dist/core/generator/documents/ContributingGenerator.js.map +1 -1
  13. package/dist/core/generator/documents/ConventionsGenerator.d.ts.map +1 -1
  14. package/dist/core/generator/documents/ConventionsGenerator.js +17 -9
  15. package/dist/core/generator/documents/ConventionsGenerator.js.map +1 -1
  16. package/dist/core/generator/documents/OnboardingGenerator.d.ts.map +1 -1
  17. package/dist/core/generator/documents/OnboardingGenerator.js +41 -28
  18. package/dist/core/generator/documents/OnboardingGenerator.js.map +1 -1
  19. package/dist/core/generator/documents/ReadmeGenerator.d.ts +6 -0
  20. package/dist/core/generator/documents/ReadmeGenerator.d.ts.map +1 -1
  21. package/dist/core/generator/documents/ReadmeGenerator.js +157 -17
  22. package/dist/core/generator/documents/ReadmeGenerator.js.map +1 -1
  23. package/dist/core/generator/documents/promptHelpers.d.ts +4 -0
  24. package/dist/core/generator/documents/promptHelpers.d.ts.map +1 -0
  25. package/dist/core/generator/documents/promptHelpers.js +4 -0
  26. package/dist/core/generator/documents/promptHelpers.js.map +1 -0
  27. package/dist/core/generator/documents/types.d.ts +10 -0
  28. package/dist/core/generator/documents/types.d.ts.map +1 -1
  29. package/dist/core/generator/llm/LlmClient.js +1 -1
  30. package/dist/core/generator/llm/LlmClient.js.map +1 -1
  31. package/package.json +3 -2
package/dist/cli/index.js CHANGED
@@ -1,113 +1,113 @@
1
1
  #!/usr/bin/env node
2
- import { Command } from 'commander';
2
+ import { Command } from "commander";
3
3
  const program = new Command();
4
4
  program
5
- .name('codeplug')
6
- .description('The source of truth for codebase understanding & governance')
7
- .version('0.1.0');
5
+ .name("codeplug")
6
+ .description("The source of truth for codebase understanding & governance")
7
+ .version("0.1.3");
8
8
  program
9
- .command('convention')
10
- .description('Convention discovery, detection, and enforcement')
11
- .addCommand(new Command('init')
12
- .description('Detect and confirm coding conventions in the current project')
13
- .option('--force', 'Re-run detection, overwrite existing conventions')
9
+ .command("convention")
10
+ .description("Convention discovery, detection, and enforcement")
11
+ .addCommand(new Command("init")
12
+ .description("Detect and confirm coding conventions in the current project")
13
+ .option("--force", "Re-run detection, overwrite existing conventions")
14
14
  .action(async (options) => {
15
- const { handleConventionInit } = await import('./commands/convention.js');
15
+ const { handleConventionInit } = await import("./commands/convention.js");
16
16
  await handleConventionInit(options);
17
17
  }))
18
- .addCommand(new Command('audit')
19
- .description('Run a full compliance report against stored conventions')
20
- .option('--since <duration>', 'Only audit changes in the given time window (e.g. 7d)')
21
- .option('--ci', 'Exit with non-zero code if thresholds are breached')
18
+ .addCommand(new Command("audit")
19
+ .description("Run a full compliance report against stored conventions")
20
+ .option("--since <duration>", "Only audit changes in the given time window (e.g. 7d)")
21
+ .option("--ci", "Exit with non-zero code if thresholds are breached")
22
22
  .action(async (options) => {
23
- const { handleConventionAudit } = await import('./commands/convention.js');
23
+ const { handleConventionAudit } = await import("./commands/convention.js");
24
24
  await handleConventionAudit(options);
25
25
  }))
26
- .addCommand(new Command('drift')
27
- .description('Check most recent commits for convention drift')
26
+ .addCommand(new Command("drift")
27
+ .description("Check most recent commits for convention drift")
28
28
  .action(async () => {
29
- const { handleConventionDrift } = await import('./commands/convention.js');
29
+ const { handleConventionDrift } = await import("./commands/convention.js");
30
30
  await handleConventionDrift();
31
31
  }))
32
- .addCommand(new Command('score')
33
- .description('Show current compliance score')
34
- .option('--trend', 'Show score history and trend chart')
32
+ .addCommand(new Command("score")
33
+ .description("Show current compliance score")
34
+ .option("--trend", "Show score history and trend chart")
35
35
  .action(async (options) => {
36
- const { handleConventionScore } = await import('./commands/convention.js');
36
+ const { handleConventionScore } = await import("./commands/convention.js");
37
37
  await handleConventionScore(options);
38
38
  }))
39
- .addCommand(new Command('fix')
40
- .description('Apply auto-fixes for convention violations')
41
- .option('--auto', 'Apply all safe auto-fixes')
42
- .option('--id <id>', 'Fix a specific finding by ID')
39
+ .addCommand(new Command("fix")
40
+ .description("Apply auto-fixes for convention violations")
41
+ .option("--auto", "Apply all safe auto-fixes")
42
+ .option("--id <id>", "Fix a specific finding by ID")
43
43
  .action(async (options) => {
44
- const { handleConventionFix } = await import('./commands/convention.js');
44
+ const { handleConventionFix } = await import("./commands/convention.js");
45
45
  await handleConventionFix(options);
46
46
  }))
47
- .addCommand(new Command('show')
48
- .description('Explain findings for a specific commit')
49
- .argument('<commit>', 'Commit hash to inspect')
47
+ .addCommand(new Command("show")
48
+ .description("Explain findings for a specific commit")
49
+ .argument("<commit>", "Commit hash to inspect")
50
50
  .action(async (commit) => {
51
- const { handleConventionShow } = await import('./commands/convention.js');
51
+ const { handleConventionShow } = await import("./commands/convention.js");
52
52
  await handleConventionShow(commit);
53
53
  }));
54
54
  program
55
- .command('docs')
56
- .description('Generate and maintain living documentation')
57
- .addCommand(new Command('generate')
58
- .description('Generate documentation from code analysis')
59
- .option('--doc <name>', 'Specific document to generate (e.g. ARCHITECTURE)')
60
- .option('--audience <level>', 'Tune language level (e.g. junior, senior)', 'senior')
61
- .option('--style <style>', 'Output style (concise, detailed)', 'detailed')
55
+ .command("docs")
56
+ .description("Generate and maintain living documentation")
57
+ .addCommand(new Command("generate")
58
+ .description("Generate documentation from code analysis")
59
+ .option("--doc <name>", "Specific document to generate (e.g. ARCHITECTURE)")
60
+ .option("--audience <level>", "Tune language level (e.g. junior, senior)", "senior")
61
+ .option("--style <style>", "Output style (concise, detailed)", "detailed")
62
62
  .action(async (options) => {
63
- const { handleDocsGenerate } = await import('./commands/docs.js');
63
+ const { handleDocsGenerate } = await import("./commands/docs.js");
64
64
  await handleDocsGenerate(options);
65
65
  }))
66
- .addCommand(new Command('status')
67
- .description('Check which generated docs are stale')
66
+ .addCommand(new Command("status")
67
+ .description("Check which generated docs are stale")
68
68
  .action(async () => {
69
- const { handleDocsStatus } = await import('./commands/docs.js');
69
+ const { handleDocsStatus } = await import("./commands/docs.js");
70
70
  await handleDocsStatus();
71
71
  }))
72
- .addCommand(new Command('update')
73
- .description('Regenerate only stale document sections')
72
+ .addCommand(new Command("update")
73
+ .description("Regenerate only stale document sections")
74
74
  .action(async () => {
75
- const { handleDocsUpdate } = await import('./commands/docs.js');
75
+ const { handleDocsUpdate } = await import("./commands/docs.js");
76
76
  await handleDocsUpdate();
77
77
  }));
78
78
  program
79
- .command('export')
80
- .description('Export conventions and context for AI agents and CI')
81
- .option('--target <target>', 'Export target (claude, cursor, copilot)')
82
- .option('--format <format>', 'Export format (json)')
83
- .option('--all', 'Export all targets')
84
- .option('--check', 'Verify exports are up to date')
79
+ .command("export")
80
+ .description("Export conventions and context for AI agents and CI")
81
+ .option("--target <target>", "Export target (claude, cursor, copilot)")
82
+ .option("--format <format>", "Export format (json)")
83
+ .option("--all", "Export all targets")
84
+ .option("--check", "Verify exports are up to date")
85
85
  .action(async (options) => {
86
- const { handleExport } = await import('./commands/export.js');
86
+ const { handleExport } = await import("./commands/export.js");
87
87
  await handleExport(options);
88
88
  });
89
89
  program
90
- .command('config')
91
- .description('Manage CodePlug configuration')
92
- .addCommand(new Command('set')
93
- .description('Set a configuration value')
94
- .argument('<key>', 'Configuration key (e.g. llm.provider, models.tier)')
95
- .argument('<value>', 'Configuration value')
90
+ .command("config")
91
+ .description("Manage CodePlug configuration")
92
+ .addCommand(new Command("set")
93
+ .description("Set a configuration value")
94
+ .argument("<key>", "Configuration key (e.g. llm.provider, models.tier)")
95
+ .argument("<value>", "Configuration value")
96
96
  .action(async (key, value) => {
97
- const { handleConfigSet } = await import('./commands/config.js');
97
+ const { handleConfigSet } = await import("./commands/config.js");
98
98
  await handleConfigSet(key, value);
99
99
  }))
100
- .addCommand(new Command('get')
101
- .description('Get a configuration value')
102
- .argument('<key>', 'Configuration key')
100
+ .addCommand(new Command("get")
101
+ .description("Get a configuration value")
102
+ .argument("<key>", "Configuration key")
103
103
  .action(async (key) => {
104
- const { handleConfigGet } = await import('./commands/config.js');
104
+ const { handleConfigGet } = await import("./commands/config.js");
105
105
  await handleConfigGet(key);
106
106
  }))
107
- .addCommand(new Command('list')
108
- .description('List all configuration values')
107
+ .addCommand(new Command("list")
108
+ .description("List all configuration values")
109
109
  .action(async () => {
110
- const { handleConfigList } = await import('./commands/config.js');
110
+ const { handleConfigList } = await import("./commands/config.js");
111
111
  await handleConfigList();
112
112
  }));
113
113
  program.parse();
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
@@ -9,6 +9,8 @@ export declare class DocGenerator {
9
9
  private normaliseName;
10
10
  private runAnalysis;
11
11
  private loadConventions;
12
+ private loadExistingDoc;
13
+ private loadPackageMetadata;
12
14
  private prepareLlm;
13
15
  }
14
16
  //# sourceMappingURL=DocGenerator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"DocGenerator.d.ts","sourceRoot":"","sources":["../../../src/core/generator/DocGenerator.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,mBAAmB,EACnB,mBAAmB,EACnB,eAAe,EAGhB,MAAM,uBAAuB,CAAC;AAuB/B,qBAAa,YAAY;IAGX,OAAO,CAAC,WAAW;IAF/B,OAAO,CAAC,gBAAgB,CAAmB;gBAEvB,WAAW,EAAE,MAAM;IAIjC,QAAQ,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAuDpE,MAAM,IAAI,OAAO,CAAC,eAAe,CAAC;IAkBxC,OAAO,CAAC,iBAAiB;IASzB,OAAO,CAAC,aAAa;YAWP,WAAW;YAMX,eAAe;YAQf,UAAU;CAgBzB"}
1
+ {"version":3,"file":"DocGenerator.d.ts","sourceRoot":"","sources":["../../../src/core/generator/DocGenerator.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,mBAAmB,EACnB,mBAAmB,EACnB,eAAe,EAGhB,MAAM,uBAAuB,CAAC;AAuB/B,qBAAa,YAAY;IAGX,OAAO,CAAC,WAAW;IAF/B,OAAO,CAAC,gBAAgB,CAAmB;gBAEvB,WAAW,EAAE,MAAM;IAIjC,QAAQ,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,mBAAmB,CAAC;IA4DpE,MAAM,IAAI,OAAO,CAAC,eAAe,CAAC;IAkBxC,OAAO,CAAC,iBAAiB;IASzB,OAAO,CAAC,aAAa;YAWP,WAAW;YAMX,eAAe;YAQf,eAAe;YASf,mBAAmB;YAkBnB,UAAU;CAgBzB"}
@@ -1,4 +1,4 @@
1
- import { writeFile } from 'node:fs/promises';
1
+ import { readFile, writeFile } from 'node:fs/promises';
2
2
  import { join } from 'node:path';
3
3
  import { ConfigManager } from '../../config/ConfigManager.js';
4
4
  import { ConventionStore } from '../../storage/ConventionStore.js';
@@ -38,21 +38,25 @@ export class DocGenerator {
38
38
  if (!llmAvailable) {
39
39
  console.log(chalk.yellow('LLM unavailable — using template-only generation.'));
40
40
  }
41
- const ctx = {
42
- analysis,
43
- conventions,
44
- projectRoot: this.projectRoot,
45
- audience,
46
- style,
47
- llmAvailable,
48
- llmClient,
49
- };
41
+ const packageMetadata = await this.loadPackageMetadata();
50
42
  const written = [];
51
43
  const sourceHash = await this.stalenessTracker.computeSourceHash();
52
44
  for (const docName of targetDocs) {
53
45
  const generator = DOC_GENERATORS[docName];
54
46
  if (!generator)
55
47
  continue;
48
+ const existingDoc = await this.loadExistingDoc(docName);
49
+ const ctx = {
50
+ analysis,
51
+ conventions,
52
+ projectRoot: this.projectRoot,
53
+ audience,
54
+ style,
55
+ llmAvailable,
56
+ llmClient,
57
+ existingDoc,
58
+ packageMetadata,
59
+ };
56
60
  try {
57
61
  const content = await generator.generate(ctx);
58
62
  const outPath = join(this.projectRoot, docName);
@@ -117,6 +121,33 @@ export class DocGenerator {
117
121
  }
118
122
  return [];
119
123
  }
124
+ async loadExistingDoc(docName) {
125
+ try {
126
+ const path = join(this.projectRoot, docName);
127
+ return await readFile(path, 'utf-8');
128
+ }
129
+ catch {
130
+ return undefined;
131
+ }
132
+ }
133
+ async loadPackageMetadata() {
134
+ try {
135
+ const path = join(this.projectRoot, 'package.json');
136
+ const raw = await readFile(path, 'utf-8');
137
+ const pkg = JSON.parse(raw);
138
+ return {
139
+ description: typeof pkg.description === 'string' ? pkg.description : undefined,
140
+ name: typeof pkg.name === 'string' ? pkg.name : undefined,
141
+ scripts: typeof pkg.scripts === 'object' && pkg.scripts !== null ? pkg.scripts : undefined,
142
+ bin: typeof pkg.bin === 'string' || (typeof pkg.bin === 'object' && pkg.bin !== null) ? pkg.bin : undefined,
143
+ keywords: Array.isArray(pkg.keywords) ? pkg.keywords : undefined,
144
+ engines: typeof pkg.engines === 'object' && pkg.engines !== null ? pkg.engines : undefined,
145
+ };
146
+ }
147
+ catch {
148
+ return undefined;
149
+ }
150
+ }
120
151
  async prepareLlm() {
121
152
  try {
122
153
  const config = new ConfigManager(this.projectRoot);
@@ -1 +1 @@
1
- {"version":3,"file":"DocGenerator.js","sourceRoot":"","sources":["../../../src/core/generator/DocGenerator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DocGenerator.js","sourceRoot":"","sources":["../../../src/core/generator/DocGenerator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AASjC,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACnE,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEzD,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,qBAAqB,EAAE,MAAM,sCAAsC,CAAC;AAC7E,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAC3E,OAAO,EAAE,qBAAqB,EAAE,MAAM,sCAAsC,CAAC;AAC7E,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AAEzE,MAAM,cAAc,GAAsC;IACxD,WAAW,EAAE,IAAI,eAAe,EAAE;IAClC,iBAAiB,EAAE,IAAI,qBAAqB,EAAE;IAC9C,gBAAgB,EAAE,IAAI,oBAAoB,EAAE;IAC5C,iBAAiB,EAAE,IAAI,qBAAqB,EAAE;IAC9C,eAAe,EAAE,IAAI,mBAAmB,EAAE;CAC3C,CAAC;AAEF,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;AAElD,MAAM,OAAO,YAAY;IAGH;IAFZ,gBAAgB,CAAmB;IAE3C,YAAoB,WAAmB;QAAnB,gBAAW,GAAX,WAAW,CAAQ;QACrC,IAAI,CAAC,gBAAgB,GAAG,IAAI,gBAAgB,CAAC,WAAW,CAAC,CAAC;IAC5D,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,OAA4B;QACzC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACzB,MAAM,KAAK,GAAG,CAAC,MAAM,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;QAE9C,MAAM,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACvD,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,YAAY,CAAC;QAClD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,cAAc,CAAC;QAE9C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,UAAU,CAAC,MAAM,iBAAiB,CAAC,CAAC,CAAC;QAE1E,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;QAC1C,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;QACjD,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;QAE5D,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,mDAAmD,CAAC,CAAC,CAAC;QACjF,CAAC;QAED,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAEzD,MAAM,OAAO,GAAa,EAAE,CAAC;QAC7B,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,EAAE,CAAC;QAEnE,KAAK,MAAM,OAAO,IAAI,UAAU,EAAE,CAAC;YACjC,MAAM,SAAS,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;YAC1C,IAAI,CAAC,SAAS;gBAAE,SAAS;YAEzB,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;YACxD,MAAM,GAAG,GAAsB;gBAC7B,QAAQ;gBACR,WAAW;gBACX,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,QAAQ;gBACR,KAAK;gBACL,YAAY;gBACZ,SAAS;gBACT,WAAW;gBACX,eAAe;aAChB,CAAC;YAEF,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,MAAM,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;gBAC9C,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;gBAChD,MAAM,SAAS,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;gBAC3C,MAAM,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;gBACxD,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBACtB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,OAAO,EAAE,CAAC,CAAC,CAAC;YAC7C,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBAC7D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,OAAO,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC;YACnD,CAAC;QACH,CAAC;QAED,OAAO;YACL,WAAW,EAAE,OAAO,CAAC,MAAM;YAC3B,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK;YAC9B,SAAS,EAAE,OAAO;SACnB,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,MAAM;QACV,MAAM,KAAK,GAAG,CAAC,MAAM,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;QAC9C,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;QACrD,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAErE,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC,CAAC;YAC1D,OAAO,EAAE,WAAW,EAAE,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC;QAC3C,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,SAAS,CAAC,MAAM,uBAAuB,CAAC,CAAC,CAAC;QACjF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,EAAE,GAAG,EAAE,SAAS,CAAC,MAAM,KAAK,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAClH,OAAO;YACL,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,SAAS,EAAE,MAAM,CAAC,SAAS;SAC5B,CAAC;IACJ,CAAC;IAEO,iBAAiB,CAAC,GAAY;QACpC,IAAI,CAAC,GAAG;YAAE,OAAO,aAAa,CAAC;QAE/B,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;QAC3C,IAAI,cAAc,CAAC,UAAU,CAAC;YAAE,OAAO,CAAC,UAAU,CAAC,CAAC;QAEpD,MAAM,IAAI,KAAK,CAAC,qBAAqB,GAAG,gBAAgB,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACtF,CAAC;IAEO,aAAa,CAAC,KAAa;QACjC,MAAM,OAAO,GAA2B;YACtC,MAAM,EAAE,WAAW;YACnB,YAAY,EAAE,iBAAiB;YAC/B,WAAW,EAAE,gBAAgB;YAC7B,YAAY,EAAE,iBAAiB;YAC/B,UAAU,EAAE,eAAe;SAC5B,CAAC;QACF,OAAO,OAAO,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,IAAI,KAAK,CAAC;IAC/C,CAAC;IAEO,KAAK,CAAC,WAAW;QACvB,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,MAAM,CAAC,4BAA4B,CAAC,CAAC;QACnE,MAAM,QAAQ,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACnD,OAAO,QAAQ,CAAC,OAAO,EAAE,CAAC;IAC5B,CAAC;IAEO,KAAK,CAAC,eAAe;QAC3B,MAAM,KAAK,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACpD,IAAI,MAAM,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;YACzB,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC;QACtB,CAAC;QACD,OAAO,EAAE,CAAC;IACZ,CAAC;IAEO,KAAK,CAAC,eAAe,CAAC,OAAe;QAC3C,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;YAC7C,OAAO,MAAM,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACvC,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,mBAAmB;QAC/B,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;YACpD,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YAC1C,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAA4B,CAAC;YACvD,OAAO;gBACL,WAAW,EAAE,OAAO,GAAG,CAAC,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS;gBAC9E,IAAI,EAAE,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;gBACzD,OAAO,EAAE,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ,IAAI,GAAG,CAAC,OAAO,KAAK,IAAI,CAAC,CAAC,CAAE,GAAG,CAAC,OAAkC,CAAC,CAAC,CAAC,SAAS;gBACtH,GAAG,EAAE,OAAO,GAAG,CAAC,GAAG,KAAK,QAAQ,IAAI,CAAC,OAAO,GAAG,CAAC,GAAG,KAAK,QAAQ,IAAI,GAAG,CAAC,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC,CAAE,GAAG,CAAC,GAAuC,CAAC,CAAC,CAAC,SAAS;gBAChJ,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAE,GAAG,CAAC,QAAqB,CAAC,CAAC,CAAC,SAAS;gBAC9E,OAAO,EAAE,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ,IAAI,GAAG,CAAC,OAAO,KAAK,IAAI,CAAC,CAAC,CAAE,GAAG,CAAC,OAAkC,CAAC,CAAC,CAAC,SAAS;aACvH,CAAC;QACJ,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,UAAU;QACtB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACnD,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;YACpB,MAAM,SAAS,GAAG,MAAM,CAAC,YAAY,EAAE,CAAC;YAExC,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;YAC1D,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;gBACtB,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC;YACjC,CAAC;YAED,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC;QACrE,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC;QACjC,CAAC;IACH,CAAC;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"ArchitectureGenerator.d.ts","sourceRoot":"","sources":["../../../../src/core/generator/documents/ArchitectureGenerator.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,iBAAiB,EAAsB,MAAM,YAAY,CAAC;AAE3F,qBAAa,qBAAsB,YAAW,iBAAiB;IACvD,QAAQ,CAAC,GAAG,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC;IAmBvD,OAAO,CAAC,aAAa;IASrB,OAAO,CAAC,SAAS;IAQjB,OAAO,CAAC,iBAAiB;IAOzB,OAAO,CAAC,UAAU;IAUlB,OAAO,CAAC,2BAA2B;IAYnC,OAAO,CAAC,aAAa;IAkBrB,OAAO,CAAC,oBAAoB;YAYd,cAAc;CAc7B"}
1
+ {"version":3,"file":"ArchitectureGenerator.d.ts","sourceRoot":"","sources":["../../../../src/core/generator/documents/ArchitectureGenerator.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,iBAAiB,EAAsB,MAAM,YAAY,CAAC;AAO3F,qBAAa,qBAAsB,YAAW,iBAAiB;IACvD,QAAQ,CAAC,GAAG,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC;IAmBvD,OAAO,CAAC,aAAa;IAYrB,OAAO,CAAC,SAAS;IAQjB,OAAO,CAAC,iBAAiB;IAOzB,OAAO,CAAC,UAAU;IAUlB,OAAO,CAAC,2BAA2B;IAYnC,OAAO,CAAC,aAAa;IAkBrB,OAAO,CAAC,oBAAoB;YAYd,cAAc;CAoB7B"}
@@ -1,4 +1,5 @@
1
1
  import { basename } from 'node:path';
2
+ import { EXECUTIVE_SUMMARY_INSTRUCTION, EXISTING_CONTENT_INSTRUCTION, STRUCTURE_INSTRUCTION, } from './promptHelpers.js';
2
3
  export class ArchitectureGenerator {
3
4
  async generate(ctx) {
4
5
  const projectName = basename(ctx.projectRoot);
@@ -17,11 +18,12 @@ export class ArchitectureGenerator {
17
18
  }
18
19
  buildOverview(ctx) {
19
20
  const { analysis } = ctx;
20
- return [
21
- '## System Overview\n',
22
- `The project contains ${analysis.fileCount} source files organized across ${this.countDirs(analysis.folderStructure)} directories.`,
23
- '',
24
- ].join('\n');
21
+ const tagline = ctx.packageMetadata?.description;
22
+ const lines = ['## Executive Summary\n'];
23
+ if (tagline)
24
+ lines.push(tagline, '');
25
+ lines.push(`The project contains ${analysis.fileCount} source files organized across ${this.countDirs(analysis.folderStructure)} directories.`, '');
26
+ return lines.join('\n');
25
27
  }
26
28
  countDirs(node) {
27
29
  let count = node.children.length;
@@ -85,16 +87,22 @@ export class ArchitectureGenerator {
85
87
  return lines.join('\n');
86
88
  }
87
89
  async enhanceWithLlm(ctx, template) {
88
- const prompt = [
90
+ const parts = [
89
91
  `Improve this ARCHITECTURE.md for a ${ctx.audience} audience in a ${ctx.style} style.`,
92
+ EXECUTIVE_SUMMARY_INSTRUCTION,
93
+ STRUCTURE_INSTRUCTION,
90
94
  'Add mermaid diagrams where appropriate to illustrate component relationships and data flow.',
91
- 'Return only the final markdown.\n',
92
- template,
93
- ].join('\n');
94
- return ctx.llmClient.generate(prompt, {
95
- systemPrompt: 'You are a software architect writing clear documentation.',
95
+ 'Include a Key Descriptions section for important components.',
96
+ ];
97
+ if (ctx.existingDoc) {
98
+ parts.push(EXISTING_CONTENT_INSTRUCTION);
99
+ parts.push('', '--- EXISTING ARCHITECTURE ---', ctx.existingDoc, '--- END ---', '', '--- GENERATED TEMPLATE ---');
100
+ }
101
+ parts.push('Return only the final markdown.\n', template);
102
+ return ctx.llmClient.generate(parts.join('\n'), {
103
+ systemPrompt: 'You are a software architect writing clear documentation. Always include an executive summary and key descriptions.',
96
104
  temperature: 0.3,
97
- maxTokens: 3000,
105
+ maxTokens: 4000,
98
106
  });
99
107
  }
100
108
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ArchitectureGenerator.js","sourceRoot":"","sources":["../../../../src/core/generator/documents/ArchitectureGenerator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ArchitectureGenerator.js","sourceRoot":"","sources":["../../../../src/core/generator/documents/ArchitectureGenerator.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ContributingGenerator.d.ts","sourceRoot":"","sources":["../../../../src/core/generator/documents/ContributingGenerator.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,iBAAiB,EAAsB,MAAM,YAAY,CAAC;AAE3F,qBAAa,qBAAsB,YAAW,iBAAiB;IACvD,QAAQ,CAAC,GAAG,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC;IAkBvD,OAAO,CAAC,UAAU;IAclB,OAAO,CAAC,aAAa;IAYrB,OAAO,CAAC,oBAAoB;IA4B5B,OAAO,CAAC,cAAc;YAYR,cAAc;CAa7B"}
1
+ {"version":3,"file":"ContributingGenerator.d.ts","sourceRoot":"","sources":["../../../../src/core/generator/documents/ContributingGenerator.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,iBAAiB,EAAsB,MAAM,YAAY,CAAC;AAO3F,qBAAa,qBAAsB,YAAW,iBAAiB;IACvD,QAAQ,CAAC,GAAG,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC;IAkBvD,OAAO,CAAC,UAAU;IAclB,OAAO,CAAC,aAAa;IAYrB,OAAO,CAAC,oBAAoB;IA4B5B,OAAO,CAAC,cAAc;YAYR,cAAc;CAmB7B"}
@@ -1,4 +1,5 @@
1
1
  import { basename } from 'node:path';
2
+ import { EXECUTIVE_SUMMARY_INSTRUCTION, EXISTING_CONTENT_INSTRUCTION, STRUCTURE_INSTRUCTION, } from './promptHelpers.js';
2
3
  export class ContributingGenerator {
3
4
  async generate(ctx) {
4
5
  const projectName = basename(ctx.projectRoot);
@@ -75,15 +76,21 @@ export class ContributingGenerator {
75
76
  ].join('\n');
76
77
  }
77
78
  async enhanceWithLlm(ctx, template) {
78
- const prompt = [
79
+ const parts = [
79
80
  `Improve this CONTRIBUTING.md for a ${ctx.audience} audience in a ${ctx.style} style.`,
80
- 'Make it welcoming and actionable. Return only the final markdown.\n',
81
- template,
82
- ].join('\n');
83
- return ctx.llmClient.generate(prompt, {
84
- systemPrompt: 'You are a technical writer creating contributor documentation.',
81
+ EXECUTIVE_SUMMARY_INSTRUCTION,
82
+ STRUCTURE_INSTRUCTION,
83
+ 'Make it welcoming and actionable. Include branch naming and commit message guidance where relevant.',
84
+ ];
85
+ if (ctx.existingDoc) {
86
+ parts.push(EXISTING_CONTENT_INSTRUCTION);
87
+ parts.push('', '--- EXISTING CONTRIBUTING ---', ctx.existingDoc, '--- END ---', '', '--- GENERATED TEMPLATE ---');
88
+ }
89
+ parts.push('Return only the final markdown.\n', template);
90
+ return ctx.llmClient.generate(parts.join('\n'), {
91
+ systemPrompt: 'You are a technical writer creating contributor documentation. Include an executive summary and welcoming overview.',
85
92
  temperature: 0.3,
86
- maxTokens: 2000,
93
+ maxTokens: 2500,
87
94
  });
88
95
  }
89
96
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ContributingGenerator.js","sourceRoot":"","sources":["../../../../src/core/generator/documents/ContributingGenerator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ContributingGenerator.js","sourceRoot":"","sources":["../../../../src/core/generator/documents/ContributingGenerator.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ConventionsGenerator.d.ts","sourceRoot":"","sources":["../../../../src/core/generator/documents/ConventionsGenerator.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,iBAAiB,EAAsB,MAAM,YAAY,CAAC;AAE3F,qBAAa,oBAAqB,YAAW,iBAAiB;IACtD,QAAQ,CAAC,GAAG,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC;IAevD,OAAO,CAAC,UAAU;IAQlB,OAAO,CAAC,mBAAmB;YAmCb,cAAc;CAa7B"}
1
+ {"version":3,"file":"ConventionsGenerator.d.ts","sourceRoot":"","sources":["../../../../src/core/generator/documents/ConventionsGenerator.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,iBAAiB,EAAsB,MAAM,YAAY,CAAC;AAO3F,qBAAa,oBAAqB,YAAW,iBAAiB;IACtD,QAAQ,CAAC,GAAG,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC;IAevD,OAAO,CAAC,UAAU;IASlB,OAAO,CAAC,mBAAmB;YAmCb,cAAc;CAmB7B"}
@@ -1,3 +1,4 @@
1
+ import { EXECUTIVE_SUMMARY_INSTRUCTION, EXISTING_CONTENT_INSTRUCTION, STRUCTURE_INSTRUCTION, } from './promptHelpers.js';
1
2
  export class ConventionsGenerator {
2
3
  async generate(ctx) {
3
4
  const sections = [];
@@ -13,8 +14,9 @@ export class ConventionsGenerator {
13
14
  buildIntro(ctx) {
14
15
  const confirmed = ctx.conventions.filter((c) => c.confirmed).length;
15
16
  return [
16
- `This document describes **${ctx.conventions.length}** conventions detected in the codebase`,
17
- `(${confirmed} confirmed).\n`,
17
+ '## Overview\n',
18
+ `This document defines **${ctx.conventions.length}** conventions detected in the codebase`,
19
+ `(${confirmed} confirmed). Use it to ensure consistency and reduce cognitive load.\n`,
18
20
  ].join(' ');
19
21
  }
20
22
  buildConventionList(conventions) {
@@ -50,15 +52,21 @@ export class ConventionsGenerator {
50
52
  return lines.join('\n');
51
53
  }
52
54
  async enhanceWithLlm(ctx, template) {
53
- const prompt = [
55
+ const parts = [
54
56
  `Improve this CONVENTIONS.md for a ${ctx.audience} audience in a ${ctx.style} style.`,
55
- 'Make descriptions concise and actionable. Return only the final markdown.\n',
56
- template,
57
- ].join('\n');
58
- return ctx.llmClient.generate(prompt, {
59
- systemPrompt: 'You are a technical writer documenting coding conventions.',
57
+ EXECUTIVE_SUMMARY_INSTRUCTION,
58
+ STRUCTURE_INSTRUCTION,
59
+ 'Include an overview with a purpose statement. Make descriptions concise and actionable.',
60
+ ];
61
+ if (ctx.existingDoc) {
62
+ parts.push(EXISTING_CONTENT_INSTRUCTION);
63
+ parts.push('', '--- EXISTING CONVENTIONS ---', ctx.existingDoc, '--- END ---', '', '--- GENERATED TEMPLATE ---');
64
+ }
65
+ parts.push('Return only the final markdown.\n', template);
66
+ return ctx.llmClient.generate(parts.join('\n'), {
67
+ systemPrompt: 'You are a technical writer documenting coding conventions. Include an executive summary and clear overview.',
60
68
  temperature: 0.3,
61
- maxTokens: 2000,
69
+ maxTokens: 2500,
62
70
  });
63
71
  }
64
72
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ConventionsGenerator.js","sourceRoot":"","sources":["../../../../src/core/generator/documents/ConventionsGenerator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ConventionsGenerator.js","sourceRoot":"","sources":["../../../../src/core/generator/documents/ConventionsGenerator.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"OnboardingGenerator.d.ts","sourceRoot":"","sources":["../../../../src/core/generator/documents/OnboardingGenerator.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,iBAAiB,EAAsB,MAAM,YAAY,CAAC;AAE3F,qBAAa,mBAAoB,YAAW,iBAAiB;IACrD,QAAQ,CAAC,GAAG,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC;IAmBvD,OAAO,CAAC,oBAAoB;IAU5B,OAAO,CAAC,qBAAqB;IAuB7B,OAAO,CAAC,gBAAgB;IAgBxB,OAAO,CAAC,qBAAqB;IAa7B,OAAO,CAAC,eAAe;IAgBvB,OAAO,CAAC,gBAAgB;YAaV,cAAc;CAa7B"}
1
+ {"version":3,"file":"OnboardingGenerator.d.ts","sourceRoot":"","sources":["../../../../src/core/generator/documents/OnboardingGenerator.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,iBAAiB,EAAsB,MAAM,YAAY,CAAC;AAO3F,qBAAa,mBAAoB,YAAW,iBAAiB;IACrD,QAAQ,CAAC,GAAG,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC;IAmBvD,OAAO,CAAC,oBAAoB;IAgB5B,OAAO,CAAC,qBAAqB;IAwB7B,OAAO,CAAC,gBAAgB;IAgBxB,OAAO,CAAC,qBAAqB;IAa7B,OAAO,CAAC,eAAe;IAgBvB,OAAO,CAAC,gBAAgB;YAeV,cAAc;CAoB7B"}
@@ -1,14 +1,15 @@
1
1
  import { basename } from 'node:path';
2
+ import { EXECUTIVE_SUMMARY_INSTRUCTION, EXISTING_CONTENT_INSTRUCTION, STRUCTURE_INSTRUCTION, } from './promptHelpers.js';
2
3
  export class OnboardingGenerator {
3
4
  async generate(ctx) {
4
- const projectName = basename(ctx.projectRoot);
5
+ const projectName = ctx.packageMetadata?.name ?? basename(ctx.projectRoot);
5
6
  const sections = [];
6
7
  sections.push(`# Onboarding — ${projectName}\n`);
7
8
  sections.push(this.buildProjectOverview(ctx));
8
- sections.push(this.buildEnvironmentSetup(projectName));
9
+ sections.push(this.buildEnvironmentSetup(projectName, ctx));
9
10
  sections.push(this.buildKeyConcepts(ctx));
10
11
  sections.push(this.buildArchitectureTour(ctx));
11
- sections.push(this.buildCommonTasks());
12
+ sections.push(this.buildCommonTasks(ctx));
12
13
  const template = sections.join('\n');
13
14
  if (ctx.llmAvailable && ctx.llmClient) {
14
15
  return this.enhanceWithLlm(ctx, template);
@@ -17,18 +18,21 @@ export class OnboardingGenerator {
17
18
  }
18
19
  buildProjectOverview(ctx) {
19
20
  const { analysis } = ctx;
20
- return [
21
- '## Project Overview\n',
22
- `This project contains ${analysis.fileCount} source files.`,
23
- `${ctx.conventions.length} coding conventions have been identified.`,
24
- '',
25
- ].join('\n');
21
+ const description = ctx.packageMetadata?.description;
22
+ const lines = ['## Executive Summary\n'];
23
+ if (description) {
24
+ lines.push(`**What is ${ctx.packageMetadata?.name ?? basename(ctx.projectRoot)}?** ${description}`);
25
+ lines.push('');
26
+ }
27
+ lines.push(`The codebase contains ${analysis.fileCount} source files.`, `${ctx.conventions.length} coding conventions have been identified.`, '');
28
+ return lines.join('\n');
26
29
  }
27
- buildEnvironmentSetup(projectName) {
30
+ buildEnvironmentSetup(projectName, ctx) {
31
+ const nodeReq = ctx?.packageMetadata?.engines?.node ?? '20.0.0';
28
32
  return [
29
33
  '## Environment Setup\n',
30
34
  '### Prerequisites\n',
31
- '- Node.js >= 20.0.0',
35
+ `- Node.js ${nodeReq}`,
32
36
  '- npm or yarn',
33
37
  '',
34
38
  '### Installation\n',
@@ -88,26 +92,35 @@ export class OnboardingGenerator {
88
92
  };
89
93
  return purposes[name] ?? '';
90
94
  }
91
- buildCommonTasks() {
92
- return [
93
- '## Common Tasks\n',
94
- '| Task | Command |',
95
- '|------|---------|',
96
- '| Build | `npm run build` |',
97
- '| Run tests | `npm test` |',
98
- '| Lint | `npm run lint` |',
99
- '| Dev mode | `npm run dev` |',
100
- '',
101
- ].join('\n');
95
+ buildCommonTasks(ctx) {
96
+ const scripts = ctx?.packageMetadata?.scripts ?? {};
97
+ const defaults = [
98
+ ['Build', 'build'],
99
+ ['Run tests', 'test'],
100
+ ['Lint', 'lint'],
101
+ ['Dev mode', 'dev'],
102
+ ];
103
+ const rows = defaults.filter(([, cmd]) => scripts[cmd]).map(([task, cmd]) => `| ${task} | \`npm run ${cmd}\` |`);
104
+ if (rows.length === 0) {
105
+ rows.push('| Build | `npm run build` |', '| Run tests | `npm test` |');
106
+ }
107
+ return ['## Common Tasks\n', '| Task | Command |', '|------|---------|', ...rows, '', ''].join('\n');
102
108
  }
103
109
  async enhanceWithLlm(ctx, template) {
104
- const prompt = [
110
+ const parts = [
105
111
  `Improve this ONBOARDING.md for a ${ctx.audience} audience in a ${ctx.style} style.`,
106
- 'Make it friendly and thorough for new team members. Return only the final markdown.\n',
107
- template,
108
- ].join('\n');
109
- return ctx.llmClient.generate(prompt, {
110
- systemPrompt: 'You are a technical writer creating onboarding documentation for new developers.',
112
+ EXECUTIVE_SUMMARY_INSTRUCTION,
113
+ STRUCTURE_INSTRUCTION,
114
+ 'Include "What is [Project]?" with the project tagline from package metadata. Make it friendly and thorough for new team members.',
115
+ 'Do not leave placeholder text like [brief description]. Use the provided metadata and analysis.',
116
+ ];
117
+ if (ctx.existingDoc) {
118
+ parts.push(EXISTING_CONTENT_INSTRUCTION);
119
+ parts.push('', '--- EXISTING ONBOARDING ---', ctx.existingDoc, '--- END ---', '', '--- GENERATED TEMPLATE ---');
120
+ }
121
+ parts.push('Return only the final markdown.\n', template);
122
+ return ctx.llmClient.generate(parts.join('\n'), {
123
+ systemPrompt: 'You are a technical writer creating onboarding documentation for new developers. Include an executive summary and project tagline.',
111
124
  temperature: 0.3,
112
125
  maxTokens: 2500,
113
126
  });
@@ -1 +1 @@
1
- {"version":3,"file":"OnboardingGenerator.js","sourceRoot":"","sources":["../../../../src/core/generator/documents/OnboardingGenerator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"OnboardingGenerator.js","sourceRoot":"","sources":["../../../../src/core/generator/documents/OnboardingGenerator.ts"],"names":[],"mappings":"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"}
@@ -2,10 +2,16 @@ import type { DocumentGenerator, GenerationContext } from './types.js';
2
2
  export declare class ReadmeGenerator implements DocumentGenerator {
3
3
  generate(ctx: GenerationContext): Promise<string>;
4
4
  private buildDescription;
5
+ private buildFeatures;
5
6
  private buildQuickStart;
7
+ private buildPrerequisites;
8
+ private buildInstallation;
9
+ private buildUsage;
6
10
  private buildFolderStructure;
7
11
  private renderTree;
8
12
  private buildTechStack;
13
+ private buildConfiguration;
14
+ private buildDevelopment;
9
15
  private buildConventionsSummary;
10
16
  private enhanceWithLlm;
11
17
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ReadmeGenerator.d.ts","sourceRoot":"","sources":["../../../../src/core/generator/documents/ReadmeGenerator.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,iBAAiB,EAAsB,MAAM,YAAY,CAAC;AAE3F,qBAAa,eAAgB,YAAW,iBAAiB;IACjD,QAAQ,CAAC,GAAG,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC;IAmBvD,OAAO,CAAC,gBAAgB;IAexB,OAAO,CAAC,eAAe;IAcvB,OAAO,CAAC,oBAAoB;IAU5B,OAAO,CAAC,UAAU;IAUlB,OAAO,CAAC,cAAc;IAkBtB,OAAO,CAAC,uBAAuB;YAsBjB,cAAc;CAc7B"}
1
+ {"version":3,"file":"ReadmeGenerator.d.ts","sourceRoot":"","sources":["../../../../src/core/generator/documents/ReadmeGenerator.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,iBAAiB,EAAsB,MAAM,YAAY,CAAC;AAO3F,qBAAa,eAAgB,YAAW,iBAAiB;IACjD,QAAQ,CAAC,GAAG,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC;IAyBvD,OAAO,CAAC,gBAAgB;IAmBxB,OAAO,CAAC,aAAa;IAiBrB,OAAO,CAAC,eAAe;IAgCvB,OAAO,CAAC,kBAAkB;IAc1B,OAAO,CAAC,iBAAiB;IAqCzB,OAAO,CAAC,UAAU;IAYlB,OAAO,CAAC,oBAAoB;IAU5B,OAAO,CAAC,UAAU;IAUlB,OAAO,CAAC,cAAc;IActB,OAAO,CAAC,kBAAkB;IAY1B,OAAO,CAAC,gBAAgB;IAWxB,OAAO,CAAC,uBAAuB;YAsBjB,cAAc;CAqC7B"}
@@ -1,38 +1,82 @@
1
1
  import { basename } from 'node:path';
2
+ import { EXECUTIVE_SUMMARY_INSTRUCTION, EXISTING_CONTENT_INSTRUCTION, STRUCTURE_INSTRUCTION, } from './promptHelpers.js';
2
3
  export class ReadmeGenerator {
3
4
  async generate(ctx) {
4
- const projectName = basename(ctx.projectRoot);
5
+ const projectName = ctx.packageMetadata?.name ?? basename(ctx.projectRoot);
5
6
  const sections = [];
6
7
  sections.push(`# ${projectName}\n`);
7
8
  sections.push(this.buildDescription(ctx));
8
- sections.push(this.buildQuickStart(projectName));
9
+ sections.push(this.buildFeatures(ctx));
10
+ sections.push(this.buildQuickStart(projectName, ctx));
11
+ sections.push(this.buildPrerequisites(ctx));
12
+ sections.push(this.buildInstallation(projectName, ctx));
13
+ sections.push(this.buildUsage(ctx));
9
14
  sections.push(this.buildFolderStructure(ctx.analysis.folderStructure));
10
15
  sections.push(this.buildTechStack(ctx));
16
+ sections.push(this.buildConfiguration(ctx));
17
+ sections.push(this.buildDevelopment(ctx));
11
18
  sections.push(this.buildConventionsSummary(ctx));
12
- const template = sections.join('\n');
19
+ const template = sections.filter(Boolean).join('\n');
13
20
  if (ctx.llmAvailable && ctx.llmClient) {
14
21
  return this.enhanceWithLlm(ctx, template);
15
22
  }
16
23
  return template;
17
24
  }
18
25
  buildDescription(ctx) {
26
+ const tagline = ctx.packageMetadata?.description;
19
27
  const { analysis } = ctx;
20
28
  const topPatterns = analysis.patterns
21
29
  .slice(0, 3)
22
30
  .map((p) => p.pattern)
23
31
  .join(', ');
32
+ if (tagline) {
33
+ return [`## Overview\n`, tagline, '', topPatterns ? `Key patterns: ${topPatterns}.` : '', ''].filter(Boolean).join('\n');
34
+ }
24
35
  return [
25
- '## Description\n',
36
+ '## Overview\n',
26
37
  `A project with ${analysis.fileCount} source files.`,
27
38
  topPatterns ? `Key patterns: ${topPatterns}.` : '',
28
39
  '',
29
40
  ].filter(Boolean).join('\n');
30
41
  }
31
- buildQuickStart(projectName) {
42
+ buildFeatures(ctx) {
43
+ const keywords = ctx.packageMetadata?.keywords ?? [];
44
+ const dimensions = new Set(ctx.analysis.patterns.map((p) => p.dimension));
45
+ const features = [];
46
+ if (keywords.length > 0) {
47
+ features.push(...keywords.slice(0, 6));
48
+ }
49
+ if (dimensions.has('component'))
50
+ features.push('Component-based architecture');
51
+ if (dimensions.has('testing'))
52
+ features.push('Automated testing');
53
+ if (ctx.conventions.length > 0)
54
+ features.push('Convention detection');
55
+ if (features.length === 0)
56
+ return '';
57
+ return ['## Features\n', ...features.map((f) => `- ${f}`), '', ''].join('\n');
58
+ }
59
+ buildQuickStart(projectName, ctx) {
60
+ const bin = ctx.packageMetadata?.bin;
61
+ const isCli = !!bin;
62
+ const pkgName = ctx.packageMetadata?.name ?? 'package-name';
63
+ if (isCli) {
64
+ const cmd = typeof bin === 'string' ? bin.split('/').pop() ?? pkgName.replace(/^@[\w-]+\//, '') : Object.keys(bin)[0] ?? 'cli';
65
+ return [
66
+ '## Quick Start\n',
67
+ '```bash',
68
+ 'npm install -g @dinyangetoh/codeplug-cli',
69
+ `cd ${projectName}`,
70
+ `${cmd} convention init`,
71
+ `${cmd} convention audit`,
72
+ '```',
73
+ '',
74
+ ].join('\n');
75
+ }
32
76
  return [
33
77
  '## Quick Start\n',
34
78
  '```bash',
35
- `git clone <repository-url>`,
79
+ 'git clone <repository-url>',
36
80
  `cd ${projectName}`,
37
81
  'npm install',
38
82
  'npm run build',
@@ -41,9 +85,66 @@ export class ReadmeGenerator {
41
85
  '',
42
86
  ].join('\n');
43
87
  }
88
+ buildPrerequisites(ctx) {
89
+ const engines = ctx.packageMetadata?.engines;
90
+ const nodeReq = engines?.node;
91
+ if (!nodeReq)
92
+ return '';
93
+ return [
94
+ '## Prerequisites\n',
95
+ `- Node.js ${nodeReq}`,
96
+ '- Git (for drift detection and history analysis)',
97
+ '',
98
+ ].join('\n');
99
+ }
100
+ buildInstallation(projectName, ctx) {
101
+ const bin = ctx.packageMetadata?.bin;
102
+ const isCli = !!bin;
103
+ const pkgName = ctx.packageMetadata?.name ?? 'package-name';
104
+ if (isCli) {
105
+ return [
106
+ '## Installation\n',
107
+ '### Global install\n',
108
+ '```bash',
109
+ `npm install -g ${pkgName}`,
110
+ '```',
111
+ '',
112
+ '### Local development\n',
113
+ '```bash',
114
+ 'git clone <repository-url>',
115
+ `cd ${projectName}`,
116
+ 'npm install',
117
+ 'npm run build',
118
+ 'node dist/cli/index.js --help',
119
+ '```',
120
+ '',
121
+ ].join('\n');
122
+ }
123
+ return [
124
+ '## Installation\n',
125
+ '```bash',
126
+ 'git clone <repository-url>',
127
+ `cd ${projectName}`,
128
+ 'npm install',
129
+ 'npm run build',
130
+ '```',
131
+ '',
132
+ ].join('\n');
133
+ }
134
+ buildUsage(ctx) {
135
+ const bin = ctx.packageMetadata?.bin;
136
+ if (!bin)
137
+ return '';
138
+ const cmd = typeof bin === 'string' ? bin.split('/').pop() ?? 'codeplug' : Object.keys(bin)[0] ?? 'codeplug';
139
+ return [
140
+ '## Usage\n',
141
+ `Use \`${cmd}\` to run commands. See \`${cmd} --help\` for options.`,
142
+ '',
143
+ ].join('\n');
144
+ }
44
145
  buildFolderStructure(root, depth = 0, maxDepth = 3) {
45
146
  if (depth === 0) {
46
- const lines = ['## Folder Structure\n', '```'];
147
+ const lines = ['## Project Structure\n', '```'];
47
148
  lines.push(...this.renderTree(root, 0, maxDepth));
48
149
  lines.push('```', '');
49
150
  return lines.join('\n');
@@ -75,12 +176,29 @@ export class ReadmeGenerator {
75
176
  techs.push('State management');
76
177
  if (techs.length === 0)
77
178
  return '';
179
+ return ['## Tech Stack\n', ...techs.map((t) => `- ${t}`), '', ''].join('\n');
180
+ }
181
+ buildConfiguration(ctx) {
182
+ const hasConfig = ctx.analysis.patterns.some((p) => p.dimension === 'structure' && p.pattern.toLowerCase().includes('config'));
183
+ const hasCodeplug = ctx.conventions.some((c) => c.dimension === 'structure');
184
+ if (!hasConfig && !hasCodeplug)
185
+ return '';
78
186
  return [
79
- '## Tech Stack\n',
80
- ...techs.map((t) => `- ${t}`),
187
+ '## Configuration\n',
188
+ 'Project-level configuration can be adjusted in config files. See project docs for options.',
81
189
  '',
82
190
  ].join('\n');
83
191
  }
192
+ buildDevelopment(ctx) {
193
+ const scripts = ctx.packageMetadata?.scripts;
194
+ if (!scripts || Object.keys(scripts).length === 0)
195
+ return '';
196
+ const devScripts = ['build', 'test', 'lint', 'dev', 'typecheck', 'coverage'].filter((s) => scripts[s]);
197
+ if (devScripts.length === 0)
198
+ return '';
199
+ const lines = ['## Development\n', '```bash', ...devScripts.map((s) => `npm run ${s}`), '```', ''];
200
+ return lines.join('\n');
201
+ }
84
202
  buildConventionsSummary(ctx) {
85
203
  if (ctx.conventions.length === 0)
86
204
  return '';
@@ -102,16 +220,38 @@ export class ReadmeGenerator {
102
220
  return lines.join('\n');
103
221
  }
104
222
  async enhanceWithLlm(ctx, template) {
105
- const prompt = [
106
- `Improve the following README.md for a ${ctx.audience} audience in a ${ctx.style} style.`,
107
- 'Keep the same structure and sections but make the prose clear and professional.',
108
- 'Return only the final markdown.\n',
109
- template,
110
- ].join('\n');
223
+ const baseInstructions = [
224
+ `Improve the following README for a ${ctx.audience} audience in a ${ctx.style} style.`,
225
+ EXECUTIVE_SUMMARY_INSTRUCTION,
226
+ STRUCTURE_INSTRUCTION,
227
+ ];
228
+ let prompt;
229
+ if (ctx.existingDoc) {
230
+ prompt = [
231
+ ...baseInstructions,
232
+ EXISTING_CONTENT_INSTRUCTION,
233
+ 'Below is the EXISTING README. Preserve valuable content: tagline, features list, usage commands, configuration, installation, development. Incorporate the generated analysis (folder structure, conventions). Return only the final markdown.',
234
+ '',
235
+ '--- EXISTING README ---',
236
+ ctx.existingDoc,
237
+ '--- END EXISTING README ---',
238
+ '',
239
+ '--- GENERATED TEMPLATE (incorporate into merged output) ---',
240
+ template,
241
+ ].join('\n');
242
+ }
243
+ else {
244
+ prompt = [
245
+ ...baseInstructions,
246
+ 'Include: Executive Summary, Features, Quick Start, Prerequisites, Installation, Usage, Configuration (if applicable), Development, Project Structure, Conventions. Use package metadata when provided.',
247
+ 'Return only the final markdown.\n',
248
+ template,
249
+ ].join('\n');
250
+ }
111
251
  return ctx.llmClient.generate(prompt, {
112
- systemPrompt: 'You are a technical documentation writer.',
252
+ systemPrompt: 'You are a technical documentation writer. Preserve existing high-value content when instructed. Always include a clear executive summary and section titles.',
113
253
  temperature: 0.3,
114
- maxTokens: 2000,
254
+ maxTokens: 4000,
115
255
  });
116
256
  }
117
257
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ReadmeGenerator.js","sourceRoot":"","sources":["../../../../src/core/generator/documents/ReadmeGenerator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ReadmeGenerator.js","sourceRoot":"","sources":["../../../../src/core/generator/documents/ReadmeGenerator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export declare const EXECUTIVE_SUMMARY_INSTRUCTION = "Start with an Executive Summary (2-4 sentences) that explains what this document covers and its purpose.";
2
+ export declare const STRUCTURE_INSTRUCTION = "Use clear H2/H3 titles. Include Overview, Key Descriptions, and logical sections.";
3
+ export declare const EXISTING_CONTENT_INSTRUCTION = "When existing content is provided, preserve sections that add value; merge or improve rather than replace wholesale.";
4
+ //# sourceMappingURL=promptHelpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"promptHelpers.d.ts","sourceRoot":"","sources":["../../../../src/core/generator/documents/promptHelpers.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,6BAA6B,6GACkE,CAAC;AAE7G,eAAO,MAAM,qBAAqB,sFACmD,CAAC;AAEtF,eAAO,MAAM,4BAA4B,yHAC+E,CAAC"}
@@ -0,0 +1,4 @@
1
+ export const EXECUTIVE_SUMMARY_INSTRUCTION = 'Start with an Executive Summary (2-4 sentences) that explains what this document covers and its purpose.';
2
+ export const STRUCTURE_INSTRUCTION = 'Use clear H2/H3 titles. Include Overview, Key Descriptions, and logical sections.';
3
+ export const EXISTING_CONTENT_INSTRUCTION = 'When existing content is provided, preserve sections that add value; merge or improve rather than replace wholesale.';
4
+ //# sourceMappingURL=promptHelpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"promptHelpers.js","sourceRoot":"","sources":["../../../../src/core/generator/documents/promptHelpers.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,6BAA6B,GACxC,0GAA0G,CAAC;AAE7G,MAAM,CAAC,MAAM,qBAAqB,GAChC,mFAAmF,CAAC;AAEtF,MAAM,CAAC,MAAM,4BAA4B,GACvC,sHAAsH,CAAC"}
@@ -1,5 +1,13 @@
1
1
  import type { AnalysisResult, Convention } from '../../../config/types.js';
2
2
  import type { LlmClient } from '../llm/LlmClient.js';
3
+ export interface PackageMetadata {
4
+ description?: string;
5
+ name?: string;
6
+ scripts?: Record<string, string>;
7
+ bin?: string | Record<string, string>;
8
+ keywords?: string[];
9
+ engines?: Record<string, string>;
10
+ }
3
11
  export interface GenerationContext {
4
12
  analysis: AnalysisResult;
5
13
  conventions: Convention[];
@@ -8,6 +16,8 @@ export interface GenerationContext {
8
16
  style: string;
9
17
  llmAvailable: boolean;
10
18
  llmClient?: LlmClient;
19
+ existingDoc?: string;
20
+ packageMetadata?: PackageMetadata;
11
21
  }
12
22
  export type LlmRequiredContext = GenerationContext & {
13
23
  llmClient: LlmClient;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/core/generator/documents/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAC3E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAErD,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,cAAc,CAAC;IACzB,WAAW,EAAE,UAAU,EAAE,CAAC;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,OAAO,CAAC;IACtB,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB;AAED,MAAM,MAAM,kBAAkB,GAAG,iBAAiB,GAAG;IAAE,SAAS,EAAE,SAAS,CAAA;CAAE,CAAC;AAE9E,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CACvD"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/core/generator/documents/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAC3E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAErD,MAAM,WAAW,eAAe;IAC9B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,cAAc,CAAC;IACzB,WAAW,EAAE,UAAU,EAAE,CAAC;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,OAAO,CAAC;IACtB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,eAAe,CAAC;CACnC;AAED,MAAM,MAAM,kBAAkB,GAAG,iBAAiB,GAAG;IAAE,SAAS,EAAE,SAAS,CAAA;CAAE,CAAC;AAE9E,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CACvD"}
@@ -18,7 +18,7 @@ export class LlmClient {
18
18
  model: this.config.model,
19
19
  messages,
20
20
  temperature: options?.temperature,
21
- max_tokens: options?.maxTokens,
21
+ max_completion_tokens: options?.maxTokens,
22
22
  });
23
23
  return response.choices[0]?.message?.content ?? '';
24
24
  }
@@ -1 +1 @@
1
- {"version":3,"file":"LlmClient.js","sourceRoot":"","sources":["../../../../src/core/generator/llm/LlmClient.ts"],"names":[],"mappings":"AAQA,MAAM,OAAO,SAAS;IACZ,MAAM,CAAY;IAE1B,YAAY,MAAiB;QAC3B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,MAAc,EAAE,OAAyB;QACtD,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAC;QAEnD,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC;YACxB,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM;YAC1B,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO;SAC7B,CAAC,CAAC;QAEH,MAAM,QAAQ,GAAwD,EAAE,CAAC;QACzE,IAAI,OAAO,EAAE,YAAY,EAAE,CAAC;YAC1B,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;QACnE,CAAC;QACD,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;QAEjD,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;YACpD,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK;YACxB,QAAQ;YACR,WAAW,EAAE,OAAO,EAAE,WAAW;YACjC,UAAU,EAAE,OAAO,EAAE,SAAS;SAC/B,CAAC,CAAC;QAEH,OAAO,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,IAAI,EAAE,CAAC;IACrD,CAAC;CACF"}
1
+ {"version":3,"file":"LlmClient.js","sourceRoot":"","sources":["../../../../src/core/generator/llm/LlmClient.ts"],"names":[],"mappings":"AAQA,MAAM,OAAO,SAAS;IACZ,MAAM,CAAY;IAE1B,YAAY,MAAiB;QAC3B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,MAAc,EAAE,OAAyB;QACtD,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAC;QAEnD,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC;YACxB,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM;YAC1B,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO;SAC7B,CAAC,CAAC;QAEH,MAAM,QAAQ,GAAwD,EAAE,CAAC;QACzE,IAAI,OAAO,EAAE,YAAY,EAAE,CAAC;YAC1B,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;QACnE,CAAC;QACD,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;QAEjD,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;YACpD,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK;YACxB,QAAQ;YACR,WAAW,EAAE,OAAO,EAAE,WAAW;YACjC,qBAAqB,EAAE,OAAO,EAAE,SAAS;SAC1C,CAAC,CAAC;QAEH,OAAO,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,IAAI,EAAE,CAAC;IACrD,CAAC;CACF"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dinyangetoh/codeplug-cli",
3
- "version": "0.1.1",
3
+ "version": "0.1.3",
4
4
  "description": "The source of truth for codebase understanding & governance",
5
5
  "type": "module",
6
6
  "main": "dist/cli/index.js",
@@ -71,5 +71,6 @@
71
71
  "eslint": "^9.20.0",
72
72
  "@eslint/js": "^9.20.0",
73
73
  "typescript-eslint": "^8.24.1"
74
- }
74
+ },
75
+ "packageManager": "yarn@1.22.22+sha512.a6b2f7906b721bba3d67d4aff083df04dad64c399707841b7acf00f6b133b7ac24255f2652fa22ae3534329dc6180534e98d17432037ff6fd140556e2bb3137e"
75
76
  }