@dinyangetoh/codeplug-cli 0.1.3 → 0.1.5

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 (163) hide show
  1. package/README.md +149 -187
  2. package/dist/cli/commands/convention.d.ts +1 -1
  3. package/dist/cli/commands/convention.d.ts.map +1 -1
  4. package/dist/cli/commands/convention.js +174 -31
  5. package/dist/cli/commands/convention.js.map +1 -1
  6. package/dist/cli/commands/docs.d.ts.map +1 -1
  7. package/dist/cli/commands/docs.js +9 -2
  8. package/dist/cli/commands/docs.js.map +1 -1
  9. package/dist/cli/commands/export.d.ts.map +1 -1
  10. package/dist/cli/commands/export.js +6 -1
  11. package/dist/cli/commands/export.js.map +1 -1
  12. package/dist/cli/commands/start.d.ts +2 -0
  13. package/dist/cli/commands/start.d.ts.map +1 -0
  14. package/dist/cli/commands/start.js +172 -0
  15. package/dist/cli/commands/start.js.map +1 -0
  16. package/dist/cli/index.js +9 -2
  17. package/dist/cli/index.js.map +1 -1
  18. package/dist/config/ConfigManager.d.ts +18 -0
  19. package/dist/config/ConfigManager.d.ts.map +1 -1
  20. package/dist/config/ConfigManager.js +55 -2
  21. package/dist/config/ConfigManager.js.map +1 -1
  22. package/dist/config/ConventionSchema.d.ts +59 -0
  23. package/dist/config/ConventionSchema.d.ts.map +1 -1
  24. package/dist/config/ConventionSchema.js +11 -0
  25. package/dist/config/ConventionSchema.js.map +1 -1
  26. package/dist/config/defaults.d.ts +60 -2
  27. package/dist/config/defaults.d.ts.map +1 -1
  28. package/dist/config/defaults.js +136 -20
  29. package/dist/config/defaults.js.map +1 -1
  30. package/dist/config/types.d.ts +71 -0
  31. package/dist/config/types.d.ts.map +1 -1
  32. package/dist/core/analyzer/AstAnalyzer.d.ts +11 -2
  33. package/dist/core/analyzer/AstAnalyzer.d.ts.map +1 -1
  34. package/dist/core/analyzer/AstAnalyzer.js +21 -5
  35. package/dist/core/analyzer/AstAnalyzer.js.map +1 -1
  36. package/dist/core/analyzer/ConventionDetector.d.ts +12 -1
  37. package/dist/core/analyzer/ConventionDetector.d.ts.map +1 -1
  38. package/dist/core/analyzer/ConventionDetector.js +120 -20
  39. package/dist/core/analyzer/ConventionDetector.js.map +1 -1
  40. package/dist/core/analyzer/ConventionMlResolver.d.ts +4 -0
  41. package/dist/core/analyzer/ConventionMlResolver.d.ts.map +1 -0
  42. package/dist/core/analyzer/ConventionMlResolver.js +17 -0
  43. package/dist/core/analyzer/ConventionMlResolver.js.map +1 -0
  44. package/dist/core/analyzer/PatternAggregator.d.ts +11 -2
  45. package/dist/core/analyzer/PatternAggregator.d.ts.map +1 -1
  46. package/dist/core/analyzer/PatternAggregator.js +87 -15
  47. package/dist/core/analyzer/PatternAggregator.js.map +1 -1
  48. package/dist/core/analyzer/SemanticCoherencePhase.d.ts +10 -0
  49. package/dist/core/analyzer/SemanticCoherencePhase.d.ts.map +1 -0
  50. package/dist/core/analyzer/SemanticCoherencePhase.js +191 -0
  51. package/dist/core/analyzer/SemanticCoherencePhase.js.map +1 -0
  52. package/dist/core/analyzer/SemanticCoherenceService.d.ts +11 -0
  53. package/dist/core/analyzer/SemanticCoherenceService.d.ts.map +1 -0
  54. package/dist/core/analyzer/SemanticCoherenceService.js +56 -0
  55. package/dist/core/analyzer/SemanticCoherenceService.js.map +1 -0
  56. package/dist/core/analyzer/visitors/ComponentVisitor.d.ts.map +1 -1
  57. package/dist/core/analyzer/visitors/ComponentVisitor.js +2 -2
  58. package/dist/core/analyzer/visitors/ComponentVisitor.js.map +1 -1
  59. package/dist/core/analyzer/visitors/ErrorHandlingVisitor.d.ts.map +1 -1
  60. package/dist/core/analyzer/visitors/ErrorHandlingVisitor.js +2 -2
  61. package/dist/core/analyzer/visitors/ErrorHandlingVisitor.js.map +1 -1
  62. package/dist/core/analyzer/visitors/ImportVisitor.d.ts +5 -0
  63. package/dist/core/analyzer/visitors/ImportVisitor.d.ts.map +1 -1
  64. package/dist/core/analyzer/visitors/ImportVisitor.js +8 -3
  65. package/dist/core/analyzer/visitors/ImportVisitor.js.map +1 -1
  66. package/dist/core/analyzer/visitors/NamingVisitor.d.ts +20 -2
  67. package/dist/core/analyzer/visitors/NamingVisitor.d.ts.map +1 -1
  68. package/dist/core/analyzer/visitors/NamingVisitor.js +464 -25
  69. package/dist/core/analyzer/visitors/NamingVisitor.js.map +1 -1
  70. package/dist/core/analyzer/visitors/SchemaVisitor.d.ts +7 -0
  71. package/dist/core/analyzer/visitors/SchemaVisitor.d.ts.map +1 -0
  72. package/dist/core/analyzer/visitors/SchemaVisitor.js +50 -0
  73. package/dist/core/analyzer/visitors/SchemaVisitor.js.map +1 -0
  74. package/dist/core/analyzer/visitors/StructureVisitor.d.ts +4 -1
  75. package/dist/core/analyzer/visitors/StructureVisitor.d.ts.map +1 -1
  76. package/dist/core/analyzer/visitors/StructureVisitor.js +38 -4
  77. package/dist/core/analyzer/visitors/StructureVisitor.js.map +1 -1
  78. package/dist/core/analyzer/visitors/types.d.ts +4 -0
  79. package/dist/core/analyzer/visitors/types.d.ts.map +1 -1
  80. package/dist/core/classifier/CodeBertEmbedder.d.ts +9 -0
  81. package/dist/core/classifier/CodeBertEmbedder.d.ts.map +1 -0
  82. package/dist/core/classifier/CodeBertEmbedder.js +33 -0
  83. package/dist/core/classifier/CodeBertEmbedder.js.map +1 -0
  84. package/dist/core/classifier/ConfidenceGate.d.ts +2 -0
  85. package/dist/core/classifier/ConfidenceGate.d.ts.map +1 -1
  86. package/dist/core/classifier/ConfidenceGate.js +6 -2
  87. package/dist/core/classifier/ConfidenceGate.js.map +1 -1
  88. package/dist/core/exporter/FreshnessChecker.d.ts +5 -1
  89. package/dist/core/exporter/FreshnessChecker.d.ts.map +1 -1
  90. package/dist/core/exporter/FreshnessChecker.js +5 -10
  91. package/dist/core/exporter/FreshnessChecker.js.map +1 -1
  92. package/dist/core/generator/DocGenerator.d.ts +6 -1
  93. package/dist/core/generator/DocGenerator.d.ts.map +1 -1
  94. package/dist/core/generator/DocGenerator.js +34 -7
  95. package/dist/core/generator/DocGenerator.js.map +1 -1
  96. package/dist/core/generator/StalenessTracker.d.ts +7 -1
  97. package/dist/core/generator/StalenessTracker.d.ts.map +1 -1
  98. package/dist/core/generator/StalenessTracker.js +12 -12
  99. package/dist/core/generator/StalenessTracker.js.map +1 -1
  100. package/dist/core/generator/documents/ArchitectureGenerator.d.ts +1 -0
  101. package/dist/core/generator/documents/ArchitectureGenerator.d.ts.map +1 -1
  102. package/dist/core/generator/documents/ArchitectureGenerator.js +34 -16
  103. package/dist/core/generator/documents/ArchitectureGenerator.js.map +1 -1
  104. package/dist/core/generator/documents/ContributingGenerator.d.ts.map +1 -1
  105. package/dist/core/generator/documents/ContributingGenerator.js +10 -9
  106. package/dist/core/generator/documents/ContributingGenerator.js.map +1 -1
  107. package/dist/core/generator/documents/ConventionsGenerator.d.ts.map +1 -1
  108. package/dist/core/generator/documents/ConventionsGenerator.js +22 -8
  109. package/dist/core/generator/documents/ConventionsGenerator.js.map +1 -1
  110. package/dist/core/generator/documents/OnboardingGenerator.d.ts.map +1 -1
  111. package/dist/core/generator/documents/OnboardingGenerator.js +25 -27
  112. package/dist/core/generator/documents/OnboardingGenerator.js.map +1 -1
  113. package/dist/core/generator/documents/ReadmeGenerator.d.ts +4 -3
  114. package/dist/core/generator/documents/ReadmeGenerator.d.ts.map +1 -1
  115. package/dist/core/generator/documents/ReadmeGenerator.js +149 -140
  116. package/dist/core/generator/documents/ReadmeGenerator.js.map +1 -1
  117. package/dist/core/generator/documents/promptHelpers.d.ts +1 -1
  118. package/dist/core/generator/documents/promptHelpers.d.ts.map +1 -1
  119. package/dist/core/generator/documents/promptHelpers.js +1 -1
  120. package/dist/core/generator/documents/promptHelpers.js.map +1 -1
  121. package/dist/core/generator/documents/types.d.ts +4 -1
  122. package/dist/core/generator/documents/types.d.ts.map +1 -1
  123. package/dist/core/generator/facts/FactExtractor.d.ts +5 -0
  124. package/dist/core/generator/facts/FactExtractor.d.ts.map +1 -0
  125. package/dist/core/generator/facts/FactExtractor.js +90 -0
  126. package/dist/core/generator/facts/FactExtractor.js.map +1 -0
  127. package/dist/core/generator/facts/types.d.ts +18 -0
  128. package/dist/core/generator/facts/types.d.ts.map +1 -0
  129. package/dist/core/generator/facts/types.js +2 -0
  130. package/dist/core/generator/facts/types.js.map +1 -0
  131. package/dist/core/generator/mlPipelineBuilder.d.ts +8 -0
  132. package/dist/core/generator/mlPipelineBuilder.d.ts.map +1 -0
  133. package/dist/core/generator/mlPipelineBuilder.js +117 -0
  134. package/dist/core/generator/mlPipelineBuilder.js.map +1 -0
  135. package/dist/core/scorer/ComplianceScorer.d.ts +5 -1
  136. package/dist/core/scorer/ComplianceScorer.d.ts.map +1 -1
  137. package/dist/core/scorer/ComplianceScorer.js +47 -23
  138. package/dist/core/scorer/ComplianceScorer.js.map +1 -1
  139. package/dist/core/scorer/ViolationDetector.d.ts +19 -2
  140. package/dist/core/scorer/ViolationDetector.d.ts.map +1 -1
  141. package/dist/core/scorer/ViolationDetector.js +169 -53
  142. package/dist/core/scorer/ViolationDetector.js.map +1 -1
  143. package/dist/models/ModelManager.d.ts +5 -1
  144. package/dist/models/ModelManager.d.ts.map +1 -1
  145. package/dist/models/ModelManager.js +19 -5
  146. package/dist/models/ModelManager.js.map +1 -1
  147. package/dist/models/ModelRegistry.d.ts +1 -1
  148. package/dist/models/ModelRegistry.d.ts.map +1 -1
  149. package/dist/models/ModelRegistry.js +28 -0
  150. package/dist/models/ModelRegistry.js.map +1 -1
  151. package/dist/storage/CustomRuleStore.d.ts +9 -0
  152. package/dist/storage/CustomRuleStore.d.ts.map +1 -0
  153. package/dist/storage/CustomRuleStore.js +22 -0
  154. package/dist/storage/CustomRuleStore.js.map +1 -0
  155. package/dist/storage/ScoreStore.d.ts +2 -5
  156. package/dist/storage/ScoreStore.d.ts.map +1 -1
  157. package/dist/storage/ScoreStore.js +23 -71
  158. package/dist/storage/ScoreStore.js.map +1 -1
  159. package/package.json +4 -3
  160. package/dist/core/classifier/DriftClassifier.d.ts +0 -17
  161. package/dist/core/classifier/DriftClassifier.d.ts.map +0 -1
  162. package/dist/core/classifier/DriftClassifier.js +0 -293
  163. package/dist/core/classifier/DriftClassifier.js.map +0 -1
@@ -1,228 +1,237 @@
1
- import { basename } from 'node:path';
2
- import { EXECUTIVE_SUMMARY_INSTRUCTION, EXISTING_CONTENT_INSTRUCTION, STRUCTURE_INSTRUCTION, } from './promptHelpers.js';
1
+ import { DEFAULT_DOCS } from "../../../config/defaults.js";
2
+ import { EXISTING_CONTENT_INSTRUCTION, OVERVIEW_INSTRUCTION, STRUCTURE_INSTRUCTION, } from "./promptHelpers.js";
3
3
  export class ReadmeGenerator {
4
4
  async generate(ctx) {
5
- const projectName = ctx.packageMetadata?.name ?? basename(ctx.projectRoot);
5
+ const projectName = ctx.facts.projectName;
6
6
  const sections = [];
7
7
  sections.push(`# ${projectName}\n`);
8
- sections.push(this.buildDescription(ctx));
9
- sections.push(this.buildFeatures(ctx));
10
- sections.push(this.buildQuickStart(projectName, ctx));
8
+ sections.push(this.buildOverview(ctx));
9
+ sections.push(this.buildKeyFeatures(ctx));
11
10
  sections.push(this.buildPrerequisites(ctx));
12
11
  sections.push(this.buildInstallation(projectName, ctx));
12
+ sections.push(this.buildQuickStart(projectName, ctx));
13
13
  sections.push(this.buildUsage(ctx));
14
- sections.push(this.buildFolderStructure(ctx.analysis.folderStructure));
14
+ sections.push(this.buildProjectStructure(ctx));
15
15
  sections.push(this.buildTechStack(ctx));
16
16
  sections.push(this.buildConfiguration(ctx));
17
- sections.push(this.buildDevelopment(ctx));
18
17
  sections.push(this.buildConventionsSummary(ctx));
19
- const template = sections.filter(Boolean).join('\n');
18
+ sections.push(this.buildDevelopment(ctx));
19
+ const template = sections.filter(Boolean).join("\n");
20
20
  if (ctx.llmAvailable && ctx.llmClient) {
21
21
  return this.enhanceWithLlm(ctx, template);
22
22
  }
23
23
  return template;
24
24
  }
25
- buildDescription(ctx) {
26
- const tagline = ctx.packageMetadata?.description;
25
+ buildOverview(ctx) {
26
+ const description = ctx.facts.description;
27
27
  const { analysis } = ctx;
28
28
  const topPatterns = analysis.patterns
29
29
  .slice(0, 3)
30
30
  .map((p) => p.pattern)
31
- .join(', ');
32
- if (tagline) {
33
- return [`## Overview\n`, tagline, '', topPatterns ? `Key patterns: ${topPatterns}.` : '', ''].filter(Boolean).join('\n');
31
+ .join(", ");
32
+ if (description) {
33
+ return [
34
+ `## Overview\n`,
35
+ description,
36
+ "",
37
+ topPatterns ? `Key patterns: ${topPatterns}.` : "",
38
+ "",
39
+ ]
40
+ .filter(Boolean)
41
+ .join("\n");
34
42
  }
35
43
  return [
36
- '## Overview\n',
44
+ "## Overview\n",
37
45
  `A project with ${analysis.fileCount} source files.`,
38
- topPatterns ? `Key patterns: ${topPatterns}.` : '',
39
- '',
40
- ].filter(Boolean).join('\n');
46
+ topPatterns ? `Key patterns: ${topPatterns}.` : "",
47
+ "",
48
+ ]
49
+ .filter(Boolean)
50
+ .join("\n");
41
51
  }
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');
52
+ buildKeyFeatures(ctx) {
53
+ const features = ctx.facts.features;
55
54
  if (features.length === 0)
56
- return '';
57
- return ['## Features\n', ...features.map((f) => `- ${f}`), '', ''].join('\n');
55
+ return "";
56
+ return ["## Key Features\n", ...features.map((f) => `- ${f}`), "", ""].join("\n");
58
57
  }
59
58
  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';
59
+ if (!ctx.facts.hasCLI) {
65
60
  return [
66
- '## Quick Start\n',
67
- '```bash',
68
- 'npm install -g @dinyangetoh/codeplug-cli',
61
+ "## Quick Start\n",
62
+ "```bash",
63
+ "git clone <repository-url>",
69
64
  `cd ${projectName}`,
70
- `${cmd} convention init`,
71
- `${cmd} convention audit`,
72
- '```',
73
- '',
74
- ].join('\n');
65
+ "npm install",
66
+ "npm run build",
67
+ "npm start",
68
+ "```",
69
+ "",
70
+ ].join("\n");
75
71
  }
72
+ const pkgName = ctx.packageMetadata?.name ?? "package-name";
73
+ const bin = ctx.packageMetadata?.bin;
74
+ const cmd = typeof bin === "string"
75
+ ? (bin.split("/").pop() ?? pkgName.replace(/^@[\w-]+\//, ""))
76
+ : (Object.keys(bin ?? {})[0] ?? "cli");
76
77
  return [
77
- '## Quick Start\n',
78
- '```bash',
79
- 'git clone <repository-url>',
78
+ "## Quick Start\n",
79
+ "```bash",
80
+ `npm install -g ${pkgName}`,
80
81
  `cd ${projectName}`,
81
- 'npm install',
82
- 'npm run build',
83
- 'npm start',
84
- '```',
85
- '',
86
- ].join('\n');
82
+ `${cmd} --help`,
83
+ "```",
84
+ "",
85
+ ].join("\n");
87
86
  }
88
87
  buildPrerequisites(ctx) {
89
88
  const engines = ctx.packageMetadata?.engines;
90
89
  const nodeReq = engines?.node;
91
90
  if (!nodeReq)
92
- return '';
91
+ return "";
93
92
  return [
94
- '## Prerequisites\n',
93
+ "## Prerequisites\n",
95
94
  `- Node.js ${nodeReq}`,
96
- '- Git (for drift detection and history analysis)',
97
- '',
98
- ].join('\n');
95
+ "- Git (for drift detection and history analysis)",
96
+ "",
97
+ ].join("\n");
99
98
  }
100
99
  buildInstallation(projectName, ctx) {
101
100
  const bin = ctx.packageMetadata?.bin;
102
101
  const isCli = !!bin;
103
- const pkgName = ctx.packageMetadata?.name ?? 'package-name';
102
+ const pkgName = ctx.packageMetadata?.name ?? "package-name";
104
103
  if (isCli) {
105
104
  return [
106
- '## Installation\n',
107
- '### Global install\n',
108
- '```bash',
105
+ "## Installation\n",
106
+ "### Global install\n",
107
+ "```bash",
109
108
  `npm install -g ${pkgName}`,
110
- '```',
111
- '',
112
- '### Local development\n',
113
- '```bash',
114
- 'git clone <repository-url>',
109
+ "```",
110
+ "",
111
+ "### Local development\n",
112
+ "```bash",
113
+ "git clone <repository-url>",
115
114
  `cd ${projectName}`,
116
- 'npm install',
117
- 'npm run build',
118
- 'node dist/cli/index.js --help',
119
- '```',
120
- '',
121
- ].join('\n');
115
+ "npm install",
116
+ "npm run build",
117
+ "node dist/cli/index.js --help",
118
+ "```",
119
+ "",
120
+ ].join("\n");
122
121
  }
123
122
  return [
124
- '## Installation\n',
125
- '```bash',
126
- 'git clone <repository-url>',
123
+ "## Installation\n",
124
+ "```bash",
125
+ "git clone <repository-url>",
127
126
  `cd ${projectName}`,
128
- 'npm install',
129
- 'npm run build',
130
- '```',
131
- '',
132
- ].join('\n');
127
+ "npm install",
128
+ "npm run build",
129
+ "```",
130
+ "",
131
+ ].join("\n");
133
132
  }
134
133
  buildUsage(ctx) {
135
134
  const bin = ctx.packageMetadata?.bin;
136
135
  if (!bin)
137
- return '';
138
- const cmd = typeof bin === 'string' ? bin.split('/').pop() ?? 'codeplug' : Object.keys(bin)[0] ?? 'codeplug';
136
+ return "";
137
+ const cmd = typeof bin === "string"
138
+ ? (bin.split("/").pop() ?? "codeplug")
139
+ : (Object.keys(bin)[0] ?? "codeplug");
139
140
  return [
140
- '## Usage\n',
141
+ "## Usage\n",
141
142
  `Use \`${cmd}\` to run commands. See \`${cmd} --help\` for options.`,
142
- '',
143
- ].join('\n');
143
+ "",
144
+ ].join("\n");
145
+ }
146
+ buildProjectStructure(ctx) {
147
+ const root = ctx.facts.folderStructure;
148
+ return this.buildFolderStructure(root, 0, 3);
144
149
  }
145
150
  buildFolderStructure(root, depth = 0, maxDepth = 3) {
146
151
  if (depth === 0) {
147
- const lines = ['## Project Structure\n', '```'];
152
+ const lines = ["## Project Structure\n", "```"];
148
153
  lines.push(...this.renderTree(root, 0, maxDepth));
149
- lines.push('```', '');
150
- return lines.join('\n');
154
+ lines.push("```", "");
155
+ return lines.join("\n");
151
156
  }
152
- return '';
157
+ return "";
153
158
  }
154
159
  renderTree(node, depth, maxDepth) {
155
160
  if (depth > maxDepth)
156
161
  return [];
157
- const indent = ' '.repeat(depth);
158
- const lines = [`${indent}${node.name}/ (${node.fileCount} files)`];
162
+ const indent = " ".repeat(depth);
163
+ const lines = [
164
+ `${indent}${node.name}/ (${node.fileCount} files)`,
165
+ ];
159
166
  for (const child of node.children) {
160
167
  lines.push(...this.renderTree(child, depth + 1, maxDepth));
161
168
  }
162
169
  return lines;
163
170
  }
164
171
  buildTechStack(ctx) {
165
- const dimensions = new Set(ctx.analysis.patterns.map((p) => p.dimension));
166
- const techs = [];
167
- if (dimensions.has('imports'))
168
- techs.push('ES Modules');
169
- if (dimensions.has('component'))
170
- techs.push('Component-based architecture');
171
- if (dimensions.has('testing'))
172
- techs.push('Automated testing');
173
- if (dimensions.has('api'))
174
- techs.push('API layer');
175
- if (dimensions.has('state'))
176
- techs.push('State management');
172
+ const techs = ctx.facts.techStack;
177
173
  if (techs.length === 0)
178
- return '';
179
- return ['## Tech Stack\n', ...techs.map((t) => `- ${t}`), '', ''].join('\n');
174
+ return "";
175
+ return [
176
+ "## Tech Stack\n",
177
+ ...techs.slice(0, 12).map((t) => `- ${t}`),
178
+ "",
179
+ "",
180
+ ].join("\n");
180
181
  }
181
182
  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 '';
183
+ const hasConfig = ctx.analysis.patterns.some((p) => p.dimension === "structure" &&
184
+ p.pattern.toLowerCase().includes("config"));
185
+ const hasConventions = ctx.facts.conventions.some((c) => c.dimension === "structure");
186
+ if (!hasConfig && !hasConventions)
187
+ return "";
186
188
  return [
187
- '## Configuration\n',
188
- 'Project-level configuration can be adjusted in config files. See project docs for options.',
189
- '',
190
- ].join('\n');
189
+ "## Configuration\n",
190
+ "Project-level configuration can be adjusted in config files. See project docs for options.",
191
+ "",
192
+ ].join("\n");
191
193
  }
192
194
  buildDevelopment(ctx) {
193
- const scripts = ctx.packageMetadata?.scripts;
195
+ const scripts = ctx.facts.scripts;
194
196
  if (!scripts || Object.keys(scripts).length === 0)
195
- return '';
196
- const devScripts = ['build', 'test', 'lint', 'dev', 'typecheck', 'coverage'].filter((s) => scripts[s]);
197
+ return "";
198
+ const candidates = ctx.docsConfig?.devScripts ?? DEFAULT_DOCS.devScripts ?? [];
199
+ const devScripts = candidates.filter((s) => scripts[s]);
197
200
  if (devScripts.length === 0)
198
- return '';
199
- const lines = ['## Development\n', '```bash', ...devScripts.map((s) => `npm run ${s}`), '```', ''];
200
- return lines.join('\n');
201
+ return "";
202
+ const lines = [
203
+ "## Development\n",
204
+ "```bash",
205
+ ...devScripts.map((s) => `npm run ${s}`),
206
+ "```",
207
+ "",
208
+ ];
209
+ return lines.join("\n");
201
210
  }
202
211
  buildConventionsSummary(ctx) {
203
- if (ctx.conventions.length === 0)
204
- return '';
205
- const confirmed = ctx.conventions.filter((c) => c.confirmed);
212
+ if (ctx.facts.conventions.length === 0)
213
+ return "";
214
+ const confirmed = ctx.facts.conventions.filter((c) => c.confirmed);
206
215
  const grouped = new Map();
207
216
  for (const c of confirmed.slice(0, 10)) {
208
217
  const list = grouped.get(c.dimension) ?? [];
209
218
  list.push(c.rule);
210
219
  grouped.set(c.dimension, list);
211
220
  }
212
- const lines = ['## Conventions\n'];
221
+ const lines = ["## Conventions\n"];
213
222
  for (const [dim, rules] of grouped) {
214
223
  lines.push(`### ${dim}\n`);
215
224
  for (const rule of rules) {
216
225
  lines.push(`- ${rule}`);
217
226
  }
218
- lines.push('');
227
+ lines.push("");
219
228
  }
220
- return lines.join('\n');
229
+ return lines.join("\n");
221
230
  }
222
231
  async enhanceWithLlm(ctx, template) {
223
232
  const baseInstructions = [
224
233
  `Improve the following README for a ${ctx.audience} audience in a ${ctx.style} style.`,
225
- EXECUTIVE_SUMMARY_INSTRUCTION,
234
+ OVERVIEW_INSTRUCTION,
226
235
  STRUCTURE_INSTRUCTION,
227
236
  ];
228
237
  let prompt;
@@ -230,26 +239,26 @@ export class ReadmeGenerator {
230
239
  prompt = [
231
240
  ...baseInstructions,
232
241
  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 ---',
242
+ "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.",
243
+ "",
244
+ "--- EXISTING README ---",
236
245
  ctx.existingDoc,
237
- '--- END EXISTING README ---',
238
- '',
239
- '--- GENERATED TEMPLATE (incorporate into merged output) ---',
246
+ "--- END EXISTING README ---",
247
+ "",
248
+ "--- GENERATED TEMPLATE (incorporate into merged output) ---",
240
249
  template,
241
- ].join('\n');
250
+ ].join("\n");
242
251
  }
243
252
  else {
244
253
  prompt = [
245
254
  ...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',
255
+ "Include: Overview, Key Features, Prerequisites, Installation, Quick Start, Usage, Configuration (if applicable), Development, Project Structure, Conventions. Use package metadata when provided.",
256
+ "Return only the final markdown.\n",
248
257
  template,
249
- ].join('\n');
258
+ ].join("\n");
250
259
  }
251
260
  return ctx.llmClient.generate(prompt, {
252
- systemPrompt: 'You are a technical documentation writer. Preserve existing high-value content when instructed. Always include a clear executive summary and section titles.',
261
+ systemPrompt: "You are a technical documentation writer. Preserve existing high-value content when instructed. Always include a clear Overview and section titles.",
253
262
  temperature: 0.3,
254
263
  maxTokens: 4000,
255
264
  });
@@ -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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"}
@@ -1,4 +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.";
1
+ export declare const OVERVIEW_INSTRUCTION = "Start with an Overview (2-4 sentences) that explains what this document covers and its purpose.";
2
2
  export declare const STRUCTURE_INSTRUCTION = "Use clear H2/H3 titles. Include Overview, Key Descriptions, and logical sections.";
3
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
4
  //# sourceMappingURL=promptHelpers.d.ts.map
@@ -1 +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"}
1
+ {"version":3,"file":"promptHelpers.d.ts","sourceRoot":"","sources":["../../../../src/core/generator/documents/promptHelpers.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,oBAAoB,oGACkE,CAAC;AAEpG,eAAO,MAAM,qBAAqB,sFACmD,CAAC;AAEtF,eAAO,MAAM,4BAA4B,yHAC+E,CAAC"}
@@ -1,4 +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.';
1
+ export const OVERVIEW_INSTRUCTION = 'Start with an Overview (2-4 sentences) that explains what this document covers and its purpose.';
2
2
  export const STRUCTURE_INSTRUCTION = 'Use clear H2/H3 titles. Include Overview, Key Descriptions, and logical sections.';
3
3
  export const EXISTING_CONTENT_INSTRUCTION = 'When existing content is provided, preserve sections that add value; merge or improve rather than replace wholesale.';
4
4
  //# sourceMappingURL=promptHelpers.js.map
@@ -1 +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
+ {"version":3,"file":"promptHelpers.js","sourceRoot":"","sources":["../../../../src/core/generator/documents/promptHelpers.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,oBAAoB,GAC/B,iGAAiG,CAAC;AAEpG,MAAM,CAAC,MAAM,qBAAqB,GAChC,mFAAmF,CAAC;AAEtF,MAAM,CAAC,MAAM,4BAA4B,GACvC,sHAAsH,CAAC"}
@@ -1,5 +1,6 @@
1
- import type { AnalysisResult, Convention } from '../../../config/types.js';
1
+ import type { AnalysisResult, Convention, DocsConfig } from '../../../config/types.js';
2
2
  import type { LlmClient } from '../llm/LlmClient.js';
3
+ import type { DocFacts } from '../facts/types.js';
3
4
  export interface PackageMetadata {
4
5
  description?: string;
5
6
  name?: string;
@@ -18,6 +19,8 @@ export interface GenerationContext {
18
19
  llmClient?: LlmClient;
19
20
  existingDoc?: string;
20
21
  packageMetadata?: PackageMetadata;
22
+ docsConfig?: DocsConfig;
23
+ facts: DocFacts;
21
24
  }
22
25
  export type LlmRequiredContext = GenerationContext & {
23
26
  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,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"}
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,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACvF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAElD,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;IAClC,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,KAAK,EAAE,QAAQ,CAAC;CACjB;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"}
@@ -0,0 +1,5 @@
1
+ import type { AnalysisResult, Convention } from '../../../config/types.js';
2
+ import type { PackageMetadata } from '../documents/types.js';
3
+ import type { DocFacts } from './types.js';
4
+ export declare function extractFacts(analysis: AnalysisResult, conventions: Convention[], packageMetadata?: PackageMetadata, projectRoot?: string): DocFacts;
5
+ //# sourceMappingURL=FactExtractor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FactExtractor.d.ts","sourceRoot":"","sources":["../../../../src/core/generator/facts/FactExtractor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAmB,MAAM,0BAA0B,CAAC;AAC5F,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,KAAK,EAAE,QAAQ,EAAY,MAAM,YAAY,CAAC;AA+ErD,wBAAgB,YAAY,CAC1B,QAAQ,EAAE,cAAc,EACxB,WAAW,EAAE,UAAU,EAAE,EACzB,eAAe,CAAC,EAAE,eAAe,EACjC,WAAW,CAAC,EAAE,MAAM,GACnB,QAAQ,CA8BV"}
@@ -0,0 +1,90 @@
1
+ const DIMENSION_TO_TECH = {
2
+ imports: 'ES Modules',
3
+ component: 'Component-based architecture',
4
+ testing: 'Automated testing',
5
+ api: 'API layer',
6
+ state: 'State management',
7
+ 'error-handling': 'Error handling patterns',
8
+ naming: 'Consistent naming conventions',
9
+ structure: 'Structured directory layout',
10
+ };
11
+ function deriveRepoType(packageMetadata, patterns) {
12
+ const bin = packageMetadata?.bin;
13
+ const keywords = new Set((packageMetadata?.keywords ?? []).map((k) => k.toLowerCase()));
14
+ const dimensions = new Set(patterns?.map((p) => p.dimension) ?? []);
15
+ if (bin && (typeof bin === 'string' || Object.keys(bin).length > 0)) {
16
+ return 'cli';
17
+ }
18
+ if (keywords.has('nestjs') || dimensions.has('api')) {
19
+ return 'express-api';
20
+ }
21
+ if (keywords.has('react') || dimensions.has('component')) {
22
+ return 'react-app';
23
+ }
24
+ if (keywords.has('library') || keywords.has('sdk')) {
25
+ return 'library';
26
+ }
27
+ return 'unknown';
28
+ }
29
+ function deriveFeatures(keywords, patterns, conventions) {
30
+ const features = [];
31
+ if (keywords.length > 0) {
32
+ features.push(...keywords.slice(0, 6));
33
+ }
34
+ const dimensions = new Set(patterns.map((p) => p.dimension));
35
+ if (dimensions.has('component'))
36
+ features.push('Component-based architecture');
37
+ if (dimensions.has('testing'))
38
+ features.push('Automated testing');
39
+ if (conventions.length > 0)
40
+ features.push('Convention detection');
41
+ return features;
42
+ }
43
+ function deriveTechStack(patterns) {
44
+ const dimensions = new Set(patterns.map((p) => p.dimension));
45
+ const techs = [];
46
+ for (const dim of dimensions) {
47
+ const tech = DIMENSION_TO_TECH[dim];
48
+ if (tech && !techs.includes(tech))
49
+ techs.push(tech);
50
+ }
51
+ return techs;
52
+ }
53
+ function deriveEntryPoints(packageMetadata) {
54
+ const entryPoints = [];
55
+ if (packageMetadata?.bin) {
56
+ const bin = packageMetadata.bin;
57
+ if (typeof bin === 'string') {
58
+ entryPoints.push(bin.split('/').pop() ?? 'cli');
59
+ }
60
+ else {
61
+ entryPoints.push(...Object.keys(bin));
62
+ }
63
+ }
64
+ return entryPoints;
65
+ }
66
+ export function extractFacts(analysis, conventions, packageMetadata, projectRoot) {
67
+ const patterns = analysis.patterns;
68
+ const dimensions = new Set(patterns.map((p) => p.dimension));
69
+ const projectName = packageMetadata?.name ??
70
+ (projectRoot ? projectRoot.split('/').pop() : undefined) ??
71
+ 'project';
72
+ return {
73
+ projectName,
74
+ description: packageMetadata?.description,
75
+ repoType: deriveRepoType(packageMetadata, patterns),
76
+ features: deriveFeatures(packageMetadata?.keywords ?? [], patterns, conventions),
77
+ techStack: deriveTechStack(patterns),
78
+ entryPoints: deriveEntryPoints(packageMetadata),
79
+ scripts: packageMetadata?.scripts ?? {},
80
+ folderStructure: analysis.folderStructure,
81
+ conventions,
82
+ hasCLI: !!(packageMetadata?.bin &&
83
+ (typeof packageMetadata.bin === 'string' ||
84
+ Object.keys(packageMetadata.bin).length > 0)),
85
+ hasRoutes: dimensions.has('api'),
86
+ hasComponents: dimensions.has('component'),
87
+ hasTests: dimensions.has('testing'),
88
+ };
89
+ }
90
+ //# sourceMappingURL=FactExtractor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FactExtractor.js","sourceRoot":"","sources":["../../../../src/core/generator/facts/FactExtractor.ts"],"names":[],"mappings":"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"}