@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.
- package/dist/cli/index.js +66 -66
- package/dist/cli/index.js.map +1 -1
- package/dist/core/generator/DocGenerator.d.ts +2 -0
- package/dist/core/generator/DocGenerator.d.ts.map +1 -1
- package/dist/core/generator/DocGenerator.js +41 -10
- package/dist/core/generator/DocGenerator.js.map +1 -1
- package/dist/core/generator/documents/ArchitectureGenerator.d.ts.map +1 -1
- package/dist/core/generator/documents/ArchitectureGenerator.js +20 -12
- package/dist/core/generator/documents/ArchitectureGenerator.js.map +1 -1
- package/dist/core/generator/documents/ContributingGenerator.d.ts.map +1 -1
- package/dist/core/generator/documents/ContributingGenerator.js +14 -7
- package/dist/core/generator/documents/ContributingGenerator.js.map +1 -1
- package/dist/core/generator/documents/ConventionsGenerator.d.ts.map +1 -1
- package/dist/core/generator/documents/ConventionsGenerator.js +17 -9
- package/dist/core/generator/documents/ConventionsGenerator.js.map +1 -1
- package/dist/core/generator/documents/OnboardingGenerator.d.ts.map +1 -1
- package/dist/core/generator/documents/OnboardingGenerator.js +41 -28
- package/dist/core/generator/documents/OnboardingGenerator.js.map +1 -1
- package/dist/core/generator/documents/ReadmeGenerator.d.ts +6 -0
- package/dist/core/generator/documents/ReadmeGenerator.d.ts.map +1 -1
- package/dist/core/generator/documents/ReadmeGenerator.js +157 -17
- package/dist/core/generator/documents/ReadmeGenerator.js.map +1 -1
- package/dist/core/generator/documents/promptHelpers.d.ts +4 -0
- package/dist/core/generator/documents/promptHelpers.d.ts.map +1 -0
- package/dist/core/generator/documents/promptHelpers.js +4 -0
- package/dist/core/generator/documents/promptHelpers.js.map +1 -0
- package/dist/core/generator/documents/types.d.ts +10 -0
- package/dist/core/generator/documents/types.d.ts.map +1 -1
- package/dist/core/generator/llm/LlmClient.js +1 -1
- package/dist/core/generator/llm/LlmClient.js.map +1 -1
- 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
|
|
2
|
+
import { Command } from "commander";
|
|
3
3
|
const program = new Command();
|
|
4
4
|
program
|
|
5
|
-
.name(
|
|
6
|
-
.description(
|
|
7
|
-
.version(
|
|
5
|
+
.name("codeplug")
|
|
6
|
+
.description("The source of truth for codebase understanding & governance")
|
|
7
|
+
.version("0.1.3");
|
|
8
8
|
program
|
|
9
|
-
.command(
|
|
10
|
-
.description(
|
|
11
|
-
.addCommand(new Command(
|
|
12
|
-
.description(
|
|
13
|
-
.option(
|
|
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(
|
|
15
|
+
const { handleConventionInit } = await import("./commands/convention.js");
|
|
16
16
|
await handleConventionInit(options);
|
|
17
17
|
}))
|
|
18
|
-
.addCommand(new Command(
|
|
19
|
-
.description(
|
|
20
|
-
.option(
|
|
21
|
-
.option(
|
|
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(
|
|
23
|
+
const { handleConventionAudit } = await import("./commands/convention.js");
|
|
24
24
|
await handleConventionAudit(options);
|
|
25
25
|
}))
|
|
26
|
-
.addCommand(new Command(
|
|
27
|
-
.description(
|
|
26
|
+
.addCommand(new Command("drift")
|
|
27
|
+
.description("Check most recent commits for convention drift")
|
|
28
28
|
.action(async () => {
|
|
29
|
-
const { handleConventionDrift } = await import(
|
|
29
|
+
const { handleConventionDrift } = await import("./commands/convention.js");
|
|
30
30
|
await handleConventionDrift();
|
|
31
31
|
}))
|
|
32
|
-
.addCommand(new Command(
|
|
33
|
-
.description(
|
|
34
|
-
.option(
|
|
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(
|
|
36
|
+
const { handleConventionScore } = await import("./commands/convention.js");
|
|
37
37
|
await handleConventionScore(options);
|
|
38
38
|
}))
|
|
39
|
-
.addCommand(new Command(
|
|
40
|
-
.description(
|
|
41
|
-
.option(
|
|
42
|
-
.option(
|
|
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(
|
|
44
|
+
const { handleConventionFix } = await import("./commands/convention.js");
|
|
45
45
|
await handleConventionFix(options);
|
|
46
46
|
}))
|
|
47
|
-
.addCommand(new Command(
|
|
48
|
-
.description(
|
|
49
|
-
.argument(
|
|
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(
|
|
51
|
+
const { handleConventionShow } = await import("./commands/convention.js");
|
|
52
52
|
await handleConventionShow(commit);
|
|
53
53
|
}));
|
|
54
54
|
program
|
|
55
|
-
.command(
|
|
56
|
-
.description(
|
|
57
|
-
.addCommand(new Command(
|
|
58
|
-
.description(
|
|
59
|
-
.option(
|
|
60
|
-
.option(
|
|
61
|
-
.option(
|
|
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(
|
|
63
|
+
const { handleDocsGenerate } = await import("./commands/docs.js");
|
|
64
64
|
await handleDocsGenerate(options);
|
|
65
65
|
}))
|
|
66
|
-
.addCommand(new Command(
|
|
67
|
-
.description(
|
|
66
|
+
.addCommand(new Command("status")
|
|
67
|
+
.description("Check which generated docs are stale")
|
|
68
68
|
.action(async () => {
|
|
69
|
-
const { handleDocsStatus } = await import(
|
|
69
|
+
const { handleDocsStatus } = await import("./commands/docs.js");
|
|
70
70
|
await handleDocsStatus();
|
|
71
71
|
}))
|
|
72
|
-
.addCommand(new Command(
|
|
73
|
-
.description(
|
|
72
|
+
.addCommand(new Command("update")
|
|
73
|
+
.description("Regenerate only stale document sections")
|
|
74
74
|
.action(async () => {
|
|
75
|
-
const { handleDocsUpdate } = await import(
|
|
75
|
+
const { handleDocsUpdate } = await import("./commands/docs.js");
|
|
76
76
|
await handleDocsUpdate();
|
|
77
77
|
}));
|
|
78
78
|
program
|
|
79
|
-
.command(
|
|
80
|
-
.description(
|
|
81
|
-
.option(
|
|
82
|
-
.option(
|
|
83
|
-
.option(
|
|
84
|
-
.option(
|
|
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(
|
|
86
|
+
const { handleExport } = await import("./commands/export.js");
|
|
87
87
|
await handleExport(options);
|
|
88
88
|
});
|
|
89
89
|
program
|
|
90
|
-
.command(
|
|
91
|
-
.description(
|
|
92
|
-
.addCommand(new Command(
|
|
93
|
-
.description(
|
|
94
|
-
.argument(
|
|
95
|
-
.argument(
|
|
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(
|
|
97
|
+
const { handleConfigSet } = await import("./commands/config.js");
|
|
98
98
|
await handleConfigSet(key, value);
|
|
99
99
|
}))
|
|
100
|
-
.addCommand(new Command(
|
|
101
|
-
.description(
|
|
102
|
-
.argument(
|
|
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(
|
|
104
|
+
const { handleConfigGet } = await import("./commands/config.js");
|
|
105
105
|
await handleConfigGet(key);
|
|
106
106
|
}))
|
|
107
|
-
.addCommand(new Command(
|
|
108
|
-
.description(
|
|
107
|
+
.addCommand(new Command("list")
|
|
108
|
+
.description("List all configuration values")
|
|
109
109
|
.action(async () => {
|
|
110
|
-
const { handleConfigList } = await import(
|
|
110
|
+
const { handleConfigList } = await import("./commands/config.js");
|
|
111
111
|
await handleConfigList();
|
|
112
112
|
}));
|
|
113
113
|
program.parse();
|
package/dist/cli/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,UAAU,CAAC;KAChB,WAAW,CAAC,6DAA6D,CAAC;KAC1E,OAAO,CAAC,OAAO,CAAC,CAAC;AAEpB,OAAO;KACJ,OAAO,CAAC,YAAY,CAAC;KACrB,WAAW,CAAC,kDAAkD,CAAC;KAC/D,UAAU,CACT,IAAI,OAAO,CAAC,MAAM,CAAC;KAChB,WAAW,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DocGenerator.d.ts","sourceRoot":"","sources":["../../../src/core/generator/DocGenerator.ts"],"names":[],"mappings":"
|
|
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
|
|
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":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"DocGenerator.js","sourceRoot":"","sources":["../../../src/core/generator/DocGenerator.ts"],"names":[],"mappings":"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"}
|
|
@@ -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;
|
|
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
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
''
|
|
24
|
-
|
|
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
|
|
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
|
-
'
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
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:
|
|
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":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;
|
|
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;
|
|
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
|
|
79
|
+
const parts = [
|
|
79
80
|
`Improve this CONTRIBUTING.md for a ${ctx.audience} audience in a ${ctx.style} style.`,
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
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:
|
|
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":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;
|
|
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;
|
|
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
|
-
|
|
17
|
-
`
|
|
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
|
|
55
|
+
const parts = [
|
|
54
56
|
`Improve this CONVENTIONS.md for a ${ctx.audience} audience in a ${ctx.style} style.`,
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
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:
|
|
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":"
|
|
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;
|
|
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
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
''
|
|
25
|
-
|
|
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
|
-
|
|
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
|
-
|
|
93
|
-
|
|
94
|
-
'
|
|
95
|
-
'
|
|
96
|
-
'
|
|
97
|
-
'
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
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
|
|
110
|
+
const parts = [
|
|
105
111
|
`Improve this ONBOARDING.md for a ${ctx.audience} audience in a ${ctx.style} style.`,
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
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":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;
|
|
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;
|
|
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.
|
|
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
|
-
'##
|
|
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
|
-
|
|
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
|
-
|
|
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 = ['##
|
|
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
|
-
'##
|
|
80
|
-
|
|
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
|
|
106
|
-
`Improve the following README
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
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:
|
|
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":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;
|
|
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;
|
|
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 +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,
|
|
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.
|
|
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
|
}
|