@ai-coders/context 0.2.1 → 0.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +116 -578
- package/dist/commands/shared/agents.d.ts +2 -0
- package/dist/commands/shared/agents.d.ts.map +1 -0
- package/dist/commands/shared/agents.js +15 -0
- package/dist/commands/shared/agents.js.map +1 -0
- package/dist/commands/shared/selection.d.ts +12 -0
- package/dist/commands/shared/selection.d.ts.map +1 -0
- package/dist/commands/shared/selection.js +95 -0
- package/dist/commands/shared/selection.js.map +1 -0
- package/dist/generators/agents/agentGenerator.d.ts +6 -9
- package/dist/generators/agents/agentGenerator.d.ts.map +1 -1
- package/dist/generators/agents/agentGenerator.js +89 -32
- package/dist/generators/agents/agentGenerator.js.map +1 -1
- package/dist/generators/agents/index.d.ts +0 -2
- package/dist/generators/agents/index.d.ts.map +1 -1
- package/dist/generators/agents/index.js +1 -5
- package/dist/generators/agents/index.js.map +1 -1
- package/dist/generators/agents/templates/index.d.ts +4 -0
- package/dist/generators/agents/templates/index.d.ts.map +1 -0
- package/dist/generators/agents/templates/index.js +8 -0
- package/dist/generators/agents/templates/index.js.map +1 -0
- package/dist/generators/agents/templates/indexTemplate.d.ts +3 -0
- package/dist/generators/agents/templates/indexTemplate.d.ts.map +1 -0
- package/dist/generators/agents/templates/indexTemplate.js +35 -0
- package/dist/generators/agents/templates/indexTemplate.js.map +1 -0
- package/dist/generators/agents/templates/playbookTemplate.d.ts +4 -0
- package/dist/generators/agents/templates/playbookTemplate.d.ts.map +1 -0
- package/dist/generators/agents/templates/playbookTemplate.js +63 -0
- package/dist/generators/agents/templates/playbookTemplate.js.map +1 -0
- package/dist/generators/agents/templates/types.d.ts +14 -0
- package/dist/generators/agents/templates/types.d.ts.map +1 -0
- package/dist/generators/agents/templates/types.js +3 -0
- package/dist/generators/agents/templates/types.js.map +1 -0
- package/dist/generators/documentation/documentationGenerator.d.ts +9 -15
- package/dist/generators/documentation/documentationGenerator.d.ts.map +1 -1
- package/dist/generators/documentation/documentationGenerator.js +65 -77
- package/dist/generators/documentation/documentationGenerator.js.map +1 -1
- package/dist/generators/documentation/guideRegistry.d.ts +6 -0
- package/dist/generators/documentation/guideRegistry.d.ts.map +1 -0
- package/dist/generators/documentation/guideRegistry.js +82 -0
- package/dist/generators/documentation/guideRegistry.js.map +1 -0
- package/dist/generators/documentation/index.d.ts +0 -6
- package/dist/generators/documentation/index.d.ts.map +1 -1
- package/dist/generators/documentation/index.js +1 -17
- package/dist/generators/documentation/index.js.map +1 -1
- package/dist/generators/documentation/templates/architectureTemplate.d.ts +3 -0
- package/dist/generators/documentation/templates/architectureTemplate.d.ts.map +1 -0
- package/dist/generators/documentation/templates/architectureTemplate.js +66 -0
- package/dist/generators/documentation/templates/architectureTemplate.js.map +1 -0
- package/dist/generators/documentation/templates/common.d.ts +7 -0
- package/dist/generators/documentation/templates/common.d.ts.map +1 -0
- package/dist/generators/documentation/templates/common.js +58 -0
- package/dist/generators/documentation/templates/common.js.map +1 -0
- package/dist/generators/documentation/templates/dataFlowTemplate.d.ts +3 -0
- package/dist/generators/documentation/templates/dataFlowTemplate.d.ts.map +1 -0
- package/dist/generators/documentation/templates/dataFlowTemplate.js +55 -0
- package/dist/generators/documentation/templates/dataFlowTemplate.js.map +1 -0
- package/dist/generators/documentation/templates/developmentWorkflowTemplate.d.ts +2 -0
- package/dist/generators/documentation/templates/developmentWorkflowTemplate.d.ts.map +1 -0
- package/dist/generators/documentation/templates/developmentWorkflowTemplate.js +59 -0
- package/dist/generators/documentation/templates/developmentWorkflowTemplate.js.map +1 -0
- package/dist/generators/documentation/templates/frontMatter.d.ts +11 -0
- package/dist/generators/documentation/templates/frontMatter.d.ts.map +1 -0
- package/dist/generators/documentation/templates/frontMatter.js +29 -0
- package/dist/generators/documentation/templates/frontMatter.js.map +1 -0
- package/dist/generators/documentation/templates/glossaryTemplate.d.ts +3 -0
- package/dist/generators/documentation/templates/glossaryTemplate.d.ts.map +1 -0
- package/dist/generators/documentation/templates/glossaryTemplate.js +55 -0
- package/dist/generators/documentation/templates/glossaryTemplate.js.map +1 -0
- package/dist/generators/documentation/templates/index.d.ts +11 -0
- package/dist/generators/documentation/templates/index.d.ts.map +1 -0
- package/dist/generators/documentation/templates/index.js +22 -0
- package/dist/generators/documentation/templates/index.js.map +1 -0
- package/dist/generators/documentation/templates/indexTemplate.d.ts +3 -0
- package/dist/generators/documentation/templates/indexTemplate.d.ts.map +1 -0
- package/dist/generators/documentation/templates/indexTemplate.js +56 -0
- package/dist/generators/documentation/templates/indexTemplate.js.map +1 -0
- package/dist/generators/documentation/templates/projectOverviewTemplate.d.ts +3 -0
- package/dist/generators/documentation/templates/projectOverviewTemplate.d.ts.map +1 -0
- package/dist/generators/documentation/templates/projectOverviewTemplate.js +68 -0
- package/dist/generators/documentation/templates/projectOverviewTemplate.js.map +1 -0
- package/dist/generators/documentation/templates/securityTemplate.d.ts +2 -0
- package/dist/generators/documentation/templates/securityTemplate.d.ts.map +1 -0
- package/dist/generators/documentation/templates/securityTemplate.js +53 -0
- package/dist/generators/documentation/templates/securityTemplate.js.map +1 -0
- package/dist/generators/documentation/templates/testingTemplate.d.ts +2 -0
- package/dist/generators/documentation/templates/testingTemplate.d.ts.map +1 -0
- package/dist/generators/documentation/templates/testingTemplate.js +59 -0
- package/dist/generators/documentation/templates/testingTemplate.js.map +1 -0
- package/dist/generators/documentation/templates/toolingTemplate.d.ts +2 -0
- package/dist/generators/documentation/templates/toolingTemplate.d.ts.map +1 -0
- package/dist/generators/documentation/templates/toolingTemplate.js +56 -0
- package/dist/generators/documentation/templates/toolingTemplate.js.map +1 -0
- package/dist/generators/documentation/templates/types.d.ts +23 -0
- package/dist/generators/documentation/templates/types.d.ts.map +1 -0
- package/dist/generators/documentation/templates/types.js +3 -0
- package/dist/generators/documentation/templates/types.js.map +1 -0
- package/dist/generators/documentation/templates.d.ts +31 -0
- package/dist/generators/documentation/templates.d.ts.map +1 -0
- package/dist/generators/documentation/templates.js +566 -0
- package/dist/generators/documentation/templates.js.map +1 -0
- package/dist/generators/plans/index.d.ts +2 -0
- package/dist/generators/plans/index.d.ts.map +1 -0
- package/dist/generators/plans/index.js +6 -0
- package/dist/generators/plans/index.js.map +1 -0
- package/dist/generators/plans/planGenerator.d.ts +22 -0
- package/dist/generators/plans/planGenerator.d.ts.map +1 -0
- package/dist/generators/plans/planGenerator.js +109 -0
- package/dist/generators/plans/planGenerator.js.map +1 -0
- package/dist/generators/plans/templates/indexTemplate.d.ts +3 -0
- package/dist/generators/plans/templates/indexTemplate.d.ts.map +1 -0
- package/dist/generators/plans/templates/indexTemplate.js +36 -0
- package/dist/generators/plans/templates/indexTemplate.js.map +1 -0
- package/dist/generators/plans/templates/planTemplate.d.ts +3 -0
- package/dist/generators/plans/templates/planTemplate.d.ts.map +1 -0
- package/dist/generators/plans/templates/planTemplate.js +95 -0
- package/dist/generators/plans/templates/planTemplate.js.map +1 -0
- package/dist/generators/plans/templates/types.d.ts +19 -0
- package/dist/generators/plans/templates/types.d.ts.map +1 -0
- package/dist/generators/plans/templates/types.js +3 -0
- package/dist/generators/plans/templates/types.js.map +1 -0
- package/dist/generators/shared/contextGenerator.d.ts +2 -7
- package/dist/generators/shared/contextGenerator.d.ts.map +1 -1
- package/dist/generators/shared/contextGenerator.js +2 -98
- package/dist/generators/shared/contextGenerator.js.map +1 -1
- package/dist/generators/shared/directoryTemplateHelpers.d.ts +2 -0
- package/dist/generators/shared/directoryTemplateHelpers.d.ts.map +1 -0
- package/dist/generators/shared/directoryTemplateHelpers.js +12 -0
- package/dist/generators/shared/directoryTemplateHelpers.js.map +1 -0
- package/dist/generators/shared/index.d.ts +1 -0
- package/dist/generators/shared/index.d.ts.map +1 -1
- package/dist/generators/shared/index.js +3 -1
- package/dist/generators/shared/index.js.map +1 -1
- package/dist/index.d.ts +6 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1358 -609
- package/dist/index.js.map +1 -1
- package/dist/prompts/defaults.d.ts +3 -0
- package/dist/prompts/defaults.d.ts.map +1 -0
- package/dist/prompts/defaults.js +95 -0
- package/dist/prompts/defaults.js.map +1 -0
- package/dist/services/fill/fillService.d.ts +50 -0
- package/dist/services/fill/fillService.d.ts.map +1 -0
- package/dist/services/fill/fillService.js +302 -0
- package/dist/services/fill/fillService.js.map +1 -0
- package/dist/services/init/initService.d.ts +37 -0
- package/dist/services/init/initService.d.ts.map +1 -0
- package/dist/services/init/initService.js +137 -0
- package/dist/services/init/initService.js.map +1 -0
- package/dist/services/plan/planService.d.ts +59 -0
- package/dist/services/plan/planService.d.ts.map +1 -0
- package/dist/services/plan/planService.js +343 -0
- package/dist/services/plan/planService.js.map +1 -0
- package/dist/services/shared/llmConfig.d.ts +22 -0
- package/dist/services/shared/llmConfig.d.ts.map +1 -0
- package/dist/services/shared/llmConfig.js +80 -0
- package/dist/services/shared/llmConfig.js.map +1 -0
- package/dist/utils/cliUI.d.ts +6 -4
- package/dist/utils/cliUI.d.ts.map +1 -1
- package/dist/utils/cliUI.js +71 -56
- package/dist/utils/cliUI.js.map +1 -1
- package/dist/utils/i18n.d.ts +192 -0
- package/dist/utils/i18n.d.ts.map +1 -0
- package/dist/utils/i18n.js +423 -0
- package/dist/utils/i18n.js.map +1 -0
- package/dist/utils/promptLoader.d.ts +12 -0
- package/dist/utils/promptLoader.d.ts.map +1 -0
- package/dist/utils/promptLoader.js +81 -0
- package/dist/utils/promptLoader.js.map +1 -0
- package/dist/utils/versionChecker.d.ts +15 -0
- package/dist/utils/versionChecker.d.ts.map +1 -0
- package/dist/utils/versionChecker.js +49 -0
- package/dist/utils/versionChecker.js.map +1 -0
- package/package.json +28 -23
- package/prompts/update_plan_prompt.md +42 -0
- package/prompts/update_scaffold_prompt.md +48 -0
- package/dist/generators/agentGenerator.d.ts +0 -23
- package/dist/generators/agentGenerator.d.ts.map +0 -1
- package/dist/generators/agentGenerator.js +0 -357
- package/dist/generators/agentGenerator.js.map +0 -1
- package/dist/generators/documentation/enhancedDocumentationGenerator.d.ts +0 -21
- package/dist/generators/documentation/enhancedDocumentationGenerator.d.ts.map +0 -1
- package/dist/generators/documentation/enhancedDocumentationGenerator.js +0 -216
- package/dist/generators/documentation/enhancedDocumentationGenerator.js.map +0 -1
- package/dist/generators/documentation/newDocumentationTemplates.d.ts +0 -19
- package/dist/generators/documentation/newDocumentationTemplates.d.ts.map +0 -1
- package/dist/generators/documentation/newDocumentationTemplates.js +0 -307
- package/dist/generators/documentation/newDocumentationTemplates.js.map +0 -1
- package/dist/generators/documentationGenerator.d.ts +0 -22
- package/dist/generators/documentationGenerator.d.ts.map +0 -1
- package/dist/generators/documentationGenerator.js +0 -235
- package/dist/generators/documentationGenerator.js.map +0 -1
- package/dist/generators/documentationTemplates.d.ts +0 -16
- package/dist/generators/documentationTemplates.d.ts.map +0 -1
- package/dist/generators/documentationTemplates.js +0 -326
- package/dist/generators/documentationTemplates.js.map +0 -1
- package/dist/generators/documentationUtils.d.ts +0 -7
- package/dist/generators/documentationUtils.d.ts.map +0 -1
- package/dist/generators/documentationUtils.js +0 -38
- package/dist/generators/documentationUtils.js.map +0 -1
- package/dist/generators/incrementalDocumentationGenerator.d.ts +0 -33
- package/dist/generators/incrementalDocumentationGenerator.d.ts.map +0 -1
- package/dist/generators/incrementalDocumentationGenerator.js +0 -400
- package/dist/generators/incrementalDocumentationGenerator.js.map +0 -1
|
@@ -35,92 +35,80 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
35
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
36
|
exports.DocumentationGenerator = void 0;
|
|
37
37
|
const path = __importStar(require("path"));
|
|
38
|
-
const moduleGrouper_1 = require("../moduleGrouper");
|
|
39
38
|
const shared_1 = require("../shared");
|
|
40
|
-
const
|
|
41
|
-
const
|
|
39
|
+
const templates_1 = require("./templates");
|
|
40
|
+
const guideRegistry_1 = require("./guideRegistry");
|
|
42
41
|
class DocumentationGenerator {
|
|
43
|
-
constructor(
|
|
44
|
-
this.
|
|
45
|
-
this.llmClient = llmClient;
|
|
46
|
-
this.moduleGrouper = new moduleGrouper_1.ModuleGrouper(fileMapper);
|
|
47
|
-
this.templates = new documentationTemplates_1.DocumentationTemplates(llmClient, fileMapper);
|
|
42
|
+
constructor(..._legacyArgs) {
|
|
43
|
+
this.guides = guideRegistry_1.DOCUMENT_GUIDES;
|
|
48
44
|
}
|
|
49
45
|
async generateDocumentation(repoStructure, outputDir, config = {}, verbose = false) {
|
|
50
|
-
const fullConfig = {
|
|
51
|
-
focusAreas: [],
|
|
52
|
-
maxContentLength: 2000,
|
|
53
|
-
includeExamples: true,
|
|
54
|
-
enabledTypes: documentationTypes_1.DOCUMENTATION_TYPES_ARRAY,
|
|
55
|
-
...config
|
|
56
|
-
};
|
|
57
46
|
const docsDir = path.join(outputDir, 'docs');
|
|
58
|
-
await shared_1.GeneratorUtils.ensureDirectoryAndLog(docsDir, verbose, '
|
|
59
|
-
const
|
|
60
|
-
|
|
61
|
-
|
|
47
|
+
await shared_1.GeneratorUtils.ensureDirectoryAndLog(docsDir, verbose, 'Generating documentation scaffold in');
|
|
48
|
+
const guidesToGenerate = (0, guideRegistry_1.getGuidesByKeys)(config.selectedDocs);
|
|
49
|
+
const context = this.buildContext(repoStructure, guidesToGenerate);
|
|
50
|
+
const sections = this.getDocSections(guidesToGenerate);
|
|
51
|
+
let created = 0;
|
|
52
|
+
for (const section of sections) {
|
|
53
|
+
const targetPath = path.join(docsDir, section.fileName);
|
|
54
|
+
const content = section.content(context);
|
|
55
|
+
await shared_1.GeneratorUtils.writeFileWithLogging(targetPath, content, verbose, `Created ${section.fileName}`);
|
|
56
|
+
created += 1;
|
|
57
|
+
}
|
|
58
|
+
return created;
|
|
62
59
|
}
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
60
|
+
buildContext(repoStructure, guides) {
|
|
61
|
+
const directorySet = new Set();
|
|
62
|
+
repoStructure.directories.forEach(dir => {
|
|
63
|
+
const [firstSegment] = dir.relativePath.split(/[\\/]/).filter(Boolean);
|
|
64
|
+
if (firstSegment) {
|
|
65
|
+
directorySet.add(firstSegment);
|
|
66
|
+
}
|
|
67
|
+
});
|
|
68
|
+
const topLevelDirectories = Array.from(directorySet).sort();
|
|
69
|
+
const directoryStats = topLevelDirectories.map(name => ({
|
|
70
|
+
name,
|
|
71
|
+
fileCount: repoStructure.files.filter(file => file.relativePath.startsWith(`${name}/`)).length
|
|
72
|
+
}));
|
|
73
|
+
const primaryLanguages = shared_1.GeneratorUtils.getTopFileExtensions(repoStructure, 5)
|
|
74
|
+
.filter(([ext]) => !!ext)
|
|
75
|
+
.map(([extension, count]) => ({ extension, count }));
|
|
76
|
+
return {
|
|
77
|
+
repoStructure,
|
|
78
|
+
topLevelDirectories,
|
|
79
|
+
primaryLanguages,
|
|
80
|
+
directoryStats,
|
|
81
|
+
guides
|
|
74
82
|
};
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
83
|
+
}
|
|
84
|
+
getDocSections(guides) {
|
|
85
|
+
const sections = [
|
|
86
|
+
{
|
|
87
|
+
fileName: 'README.md',
|
|
88
|
+
content: context => (0, templates_1.renderIndex)(context)
|
|
81
89
|
}
|
|
82
|
-
|
|
83
|
-
|
|
90
|
+
];
|
|
91
|
+
const renderMap = {
|
|
92
|
+
'project-overview': templates_1.renderProjectOverview,
|
|
93
|
+
architecture: templates_1.renderArchitectureNotes,
|
|
94
|
+
'development-workflow': () => (0, templates_1.renderDevelopmentWorkflow)(),
|
|
95
|
+
'testing-strategy': () => (0, templates_1.renderTestingStrategy)(),
|
|
96
|
+
glossary: templates_1.renderGlossary,
|
|
97
|
+
'data-flow': templates_1.renderDataFlow,
|
|
98
|
+
security: () => (0, templates_1.renderSecurity)(),
|
|
99
|
+
tooling: () => (0, templates_1.renderToolingGuide)()
|
|
100
|
+
};
|
|
101
|
+
guides.forEach(guide => {
|
|
102
|
+
const renderer = renderMap[guide.key];
|
|
103
|
+
if (!renderer) {
|
|
104
|
+
return;
|
|
84
105
|
}
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
}
|
|
92
|
-
// Convenience methods for specific documentation types
|
|
93
|
-
async generateMentalModelOnly(repoStructure, outputDir, verbose = false) {
|
|
94
|
-
const docsDir = path.join(outputDir, 'docs');
|
|
95
|
-
await shared_1.GeneratorUtils.ensureDirectoryAndLog(docsDir, verbose, '🧠 Generating mental model documentation');
|
|
96
|
-
const moduleGroups = this.moduleGrouper.getModuleGroups(repoStructure);
|
|
97
|
-
const content = await this.templates.createMentalModel(repoStructure, moduleGroups);
|
|
98
|
-
const filePath = path.join(docsDir, 'mental-model.md');
|
|
99
|
-
await shared_1.GeneratorUtils.writeFileWithLogging(filePath, content, verbose, 'Generated Mental Model');
|
|
100
|
-
}
|
|
101
|
-
async generateAIGuidelinesOnly(repoStructure, outputDir, verbose = false) {
|
|
102
|
-
const docsDir = path.join(outputDir, 'docs');
|
|
103
|
-
await shared_1.GeneratorUtils.ensureDirectoryAndLog(docsDir, verbose, '🤖 Generating AI guidelines documentation');
|
|
104
|
-
const moduleGroups = this.moduleGrouper.getModuleGroups(repoStructure);
|
|
105
|
-
const content = await this.templates.createAIGuidelines(repoStructure, moduleGroups);
|
|
106
|
-
const filePath = path.join(docsDir, 'ai-guidelines.md');
|
|
107
|
-
await shared_1.GeneratorUtils.writeFileWithLogging(filePath, content, verbose, 'Generated AI Guidelines');
|
|
108
|
-
}
|
|
109
|
-
async generateArchitectureDecisionsOnly(repoStructure, outputDir, verbose = false) {
|
|
110
|
-
const docsDir = path.join(outputDir, 'docs');
|
|
111
|
-
await shared_1.GeneratorUtils.ensureDirectoryAndLog(docsDir, verbose, '🏗️ Generating architecture decisions documentation');
|
|
112
|
-
const moduleGroups = this.moduleGrouper.getModuleGroups(repoStructure);
|
|
113
|
-
const content = await this.templates.createArchitectureDecisions(repoStructure, moduleGroups);
|
|
114
|
-
const filePath = path.join(docsDir, 'architecture-decisions.md');
|
|
115
|
-
await shared_1.GeneratorUtils.writeFileWithLogging(filePath, content, verbose, 'Generated Architecture Decisions');
|
|
116
|
-
}
|
|
117
|
-
async generateSoftwareGuidelinesOnly(repoStructure, outputDir, verbose = false) {
|
|
118
|
-
const docsDir = path.join(outputDir, 'docs');
|
|
119
|
-
await shared_1.GeneratorUtils.ensureDirectoryAndLog(docsDir, verbose, '📋 Generating software development guidelines');
|
|
120
|
-
const moduleGroups = this.moduleGrouper.getModuleGroups(repoStructure);
|
|
121
|
-
const content = await this.templates.createSoftwareGuidelines(repoStructure, moduleGroups);
|
|
122
|
-
const filePath = path.join(docsDir, 'software-guidelines.md');
|
|
123
|
-
await shared_1.GeneratorUtils.writeFileWithLogging(filePath, content, verbose, 'Generated Software Development Guidelines');
|
|
106
|
+
sections.push({
|
|
107
|
+
fileName: guide.file,
|
|
108
|
+
content: renderer
|
|
109
|
+
});
|
|
110
|
+
});
|
|
111
|
+
return sections;
|
|
124
112
|
}
|
|
125
113
|
}
|
|
126
114
|
exports.DocumentationGenerator = DocumentationGenerator;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"documentationGenerator.js","sourceRoot":"","sources":["../../../src/generators/documentation/documentationGenerator.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2CAA6B;
|
|
1
|
+
{"version":3,"file":"documentationGenerator.js","sourceRoot":"","sources":["../../../src/generators/documentation/documentationGenerator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { GuideMeta } from './templates/types';
|
|
2
|
+
export declare const DOCUMENT_GUIDES: GuideMeta[];
|
|
3
|
+
export declare const DOCUMENT_GUIDE_KEYS: string[];
|
|
4
|
+
export declare function getGuidesByKeys(keys?: string[]): GuideMeta[];
|
|
5
|
+
export declare function getDocFilesByKeys(keys?: string[]): Set<string> | undefined;
|
|
6
|
+
//# sourceMappingURL=guideRegistry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"guideRegistry.d.ts","sourceRoot":"","sources":["../../../src/generators/documentation/guideRegistry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAE9C,eAAO,MAAM,eAAe,EAAE,SAAS,EAyDtC,CAAC;AAEF,eAAO,MAAM,mBAAmB,UAA0C,CAAC;AAE3E,wBAAgB,eAAe,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,EAAE,CAQ5D;AAED,wBAAgB,iBAAiB,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,SAAS,CAQ1E"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DOCUMENT_GUIDE_KEYS = exports.DOCUMENT_GUIDES = void 0;
|
|
4
|
+
exports.getGuidesByKeys = getGuidesByKeys;
|
|
5
|
+
exports.getDocFilesByKeys = getDocFilesByKeys;
|
|
6
|
+
exports.DOCUMENT_GUIDES = [
|
|
7
|
+
{
|
|
8
|
+
key: 'project-overview',
|
|
9
|
+
title: 'Project Overview',
|
|
10
|
+
file: 'project-overview.md',
|
|
11
|
+
marker: 'ai-task:project-overview',
|
|
12
|
+
primaryInputs: 'Roadmap, README, stakeholder notes'
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
key: 'architecture',
|
|
16
|
+
title: 'Architecture Notes',
|
|
17
|
+
file: 'architecture.md',
|
|
18
|
+
marker: 'ai-task:architecture-notes',
|
|
19
|
+
primaryInputs: 'ADRs, service boundaries, dependency graphs'
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
key: 'development-workflow',
|
|
23
|
+
title: 'Development Workflow',
|
|
24
|
+
file: 'development-workflow.md',
|
|
25
|
+
marker: 'ai-task:development-workflow',
|
|
26
|
+
primaryInputs: 'Branching rules, CI config, contributing guide'
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
key: 'testing-strategy',
|
|
30
|
+
title: 'Testing Strategy',
|
|
31
|
+
file: 'testing-strategy.md',
|
|
32
|
+
marker: 'ai-task:testing-strategy',
|
|
33
|
+
primaryInputs: 'Test configs, CI gates, known flaky suites'
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
key: 'glossary',
|
|
37
|
+
title: 'Glossary & Domain Concepts',
|
|
38
|
+
file: 'glossary.md',
|
|
39
|
+
marker: 'ai-task:glossary',
|
|
40
|
+
primaryInputs: 'Business terminology, user personas, domain rules'
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
key: 'data-flow',
|
|
44
|
+
title: 'Data Flow & Integrations',
|
|
45
|
+
file: 'data-flow.md',
|
|
46
|
+
marker: 'ai-task:data-flow',
|
|
47
|
+
primaryInputs: 'System diagrams, integration specs, queue topics'
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
key: 'security',
|
|
51
|
+
title: 'Security & Compliance Notes',
|
|
52
|
+
file: 'security.md',
|
|
53
|
+
marker: 'ai-task:security',
|
|
54
|
+
primaryInputs: 'Auth model, secrets management, compliance requirements'
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
key: 'tooling',
|
|
58
|
+
title: 'Tooling & Productivity Guide',
|
|
59
|
+
file: 'tooling.md',
|
|
60
|
+
marker: 'ai-task:tooling',
|
|
61
|
+
primaryInputs: 'CLI scripts, IDE configs, automation workflows'
|
|
62
|
+
}
|
|
63
|
+
];
|
|
64
|
+
exports.DOCUMENT_GUIDE_KEYS = exports.DOCUMENT_GUIDES.map(guide => guide.key);
|
|
65
|
+
function getGuidesByKeys(keys) {
|
|
66
|
+
if (!keys || keys.length === 0) {
|
|
67
|
+
return exports.DOCUMENT_GUIDES;
|
|
68
|
+
}
|
|
69
|
+
const set = new Set(keys);
|
|
70
|
+
const filtered = exports.DOCUMENT_GUIDES.filter(guide => set.has(guide.key));
|
|
71
|
+
return filtered.length > 0 ? filtered : exports.DOCUMENT_GUIDES;
|
|
72
|
+
}
|
|
73
|
+
function getDocFilesByKeys(keys) {
|
|
74
|
+
if (!keys || keys.length === 0) {
|
|
75
|
+
return undefined;
|
|
76
|
+
}
|
|
77
|
+
const files = exports.DOCUMENT_GUIDES
|
|
78
|
+
.filter(guide => keys.includes(guide.key))
|
|
79
|
+
.map(guide => guide.file);
|
|
80
|
+
return files.length ? new Set(files) : undefined;
|
|
81
|
+
}
|
|
82
|
+
//# sourceMappingURL=guideRegistry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"guideRegistry.js","sourceRoot":"","sources":["../../../src/generators/documentation/guideRegistry.ts"],"names":[],"mappings":";;;AA+DA,0CAQC;AAED,8CAQC;AA/EY,QAAA,eAAe,GAAgB;IAC1C;QACE,GAAG,EAAE,kBAAkB;QACvB,KAAK,EAAE,kBAAkB;QACzB,IAAI,EAAE,qBAAqB;QAC3B,MAAM,EAAE,0BAA0B;QAClC,aAAa,EAAE,oCAAoC;KACpD;IACD;QACE,GAAG,EAAE,cAAc;QACnB,KAAK,EAAE,oBAAoB;QAC3B,IAAI,EAAE,iBAAiB;QACvB,MAAM,EAAE,4BAA4B;QACpC,aAAa,EAAE,6CAA6C;KAC7D;IACD;QACE,GAAG,EAAE,sBAAsB;QAC3B,KAAK,EAAE,sBAAsB;QAC7B,IAAI,EAAE,yBAAyB;QAC/B,MAAM,EAAE,8BAA8B;QACtC,aAAa,EAAE,gDAAgD;KAChE;IACD;QACE,GAAG,EAAE,kBAAkB;QACvB,KAAK,EAAE,kBAAkB;QACzB,IAAI,EAAE,qBAAqB;QAC3B,MAAM,EAAE,0BAA0B;QAClC,aAAa,EAAE,4CAA4C;KAC5D;IACD;QACE,GAAG,EAAE,UAAU;QACf,KAAK,EAAE,4BAA4B;QACnC,IAAI,EAAE,aAAa;QACnB,MAAM,EAAE,kBAAkB;QAC1B,aAAa,EAAE,mDAAmD;KACnE;IACD;QACE,GAAG,EAAE,WAAW;QAChB,KAAK,EAAE,0BAA0B;QACjC,IAAI,EAAE,cAAc;QACpB,MAAM,EAAE,mBAAmB;QAC3B,aAAa,EAAE,kDAAkD;KAClE;IACD;QACE,GAAG,EAAE,UAAU;QACf,KAAK,EAAE,6BAA6B;QACpC,IAAI,EAAE,aAAa;QACnB,MAAM,EAAE,kBAAkB;QAC1B,aAAa,EAAE,yDAAyD;KACzE;IACD;QACE,GAAG,EAAE,SAAS;QACd,KAAK,EAAE,8BAA8B;QACrC,IAAI,EAAE,YAAY;QAClB,MAAM,EAAE,iBAAiB;QACzB,aAAa,EAAE,gDAAgD;KAChE;CACF,CAAC;AAEW,QAAA,mBAAmB,GAAG,uBAAe,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAE3E,SAAgB,eAAe,CAAC,IAAe;IAC7C,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/B,OAAO,uBAAe,CAAC;IACzB,CAAC;IAED,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC;IAC1B,MAAM,QAAQ,GAAG,uBAAe,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;IACrE,OAAO,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,uBAAe,CAAC;AAC1D,CAAC;AAED,SAAgB,iBAAiB,CAAC,IAAe;IAC/C,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/B,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,KAAK,GAAG,uBAAe;SAC1B,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;SACzC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC5B,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACnD,CAAC"}
|
|
@@ -1,8 +1,2 @@
|
|
|
1
1
|
export { DocumentationGenerator } from './documentationGenerator';
|
|
2
|
-
export { DocumentationUtils } from './documentationUtils';
|
|
3
|
-
export { DocumentationTemplates } from './documentationTemplates';
|
|
4
|
-
export { IncrementalDocumentationGenerator } from './incrementalDocumentationGenerator';
|
|
5
|
-
export { DOCUMENTATION_TYPES, DOCUMENTATION_TYPES_ARRAY, DocumentationType, DocumentationConfig, DOCUMENTATION_CONFIG_FILES } from './documentationTypes';
|
|
6
|
-
export { CodebaseAnalyzer } from '../analyzers';
|
|
7
|
-
export { GuidelinesGenerator, GuidelinesAnalyzer, GuidelineCategory, GuidelineConfig } from '../guidelines';
|
|
8
2
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/generators/documentation/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/generators/documentation/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC"}
|
|
@@ -1,22 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.DocumentationGenerator = void 0;
|
|
4
4
|
var documentationGenerator_1 = require("./documentationGenerator");
|
|
5
5
|
Object.defineProperty(exports, "DocumentationGenerator", { enumerable: true, get: function () { return documentationGenerator_1.DocumentationGenerator; } });
|
|
6
|
-
var documentationUtils_1 = require("./documentationUtils");
|
|
7
|
-
Object.defineProperty(exports, "DocumentationUtils", { enumerable: true, get: function () { return documentationUtils_1.DocumentationUtils; } });
|
|
8
|
-
var documentationTemplates_1 = require("./documentationTemplates");
|
|
9
|
-
Object.defineProperty(exports, "DocumentationTemplates", { enumerable: true, get: function () { return documentationTemplates_1.DocumentationTemplates; } });
|
|
10
|
-
var incrementalDocumentationGenerator_1 = require("./incrementalDocumentationGenerator");
|
|
11
|
-
Object.defineProperty(exports, "IncrementalDocumentationGenerator", { enumerable: true, get: function () { return incrementalDocumentationGenerator_1.IncrementalDocumentationGenerator; } });
|
|
12
|
-
var documentationTypes_1 = require("./documentationTypes");
|
|
13
|
-
Object.defineProperty(exports, "DOCUMENTATION_TYPES", { enumerable: true, get: function () { return documentationTypes_1.DOCUMENTATION_TYPES; } });
|
|
14
|
-
Object.defineProperty(exports, "DOCUMENTATION_TYPES_ARRAY", { enumerable: true, get: function () { return documentationTypes_1.DOCUMENTATION_TYPES_ARRAY; } });
|
|
15
|
-
Object.defineProperty(exports, "DOCUMENTATION_CONFIG_FILES", { enumerable: true, get: function () { return documentationTypes_1.DOCUMENTATION_CONFIG_FILES; } });
|
|
16
|
-
// Re-export analyzers and guidelines for convenience
|
|
17
|
-
var analyzers_1 = require("../analyzers");
|
|
18
|
-
Object.defineProperty(exports, "CodebaseAnalyzer", { enumerable: true, get: function () { return analyzers_1.CodebaseAnalyzer; } });
|
|
19
|
-
var guidelines_1 = require("../guidelines");
|
|
20
|
-
Object.defineProperty(exports, "GuidelinesGenerator", { enumerable: true, get: function () { return guidelines_1.GuidelinesGenerator; } });
|
|
21
|
-
Object.defineProperty(exports, "GuidelinesAnalyzer", { enumerable: true, get: function () { return guidelines_1.GuidelinesAnalyzer; } });
|
|
22
6
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/generators/documentation/index.ts"],"names":[],"mappings":";;;AAAA,mEAAkE;AAAzD,gIAAA,sBAAsB,OAAA
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/generators/documentation/index.ts"],"names":[],"mappings":";;;AAAA,mEAAkE;AAAzD,gIAAA,sBAAsB,OAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"architectureTemplate.d.ts","sourceRoot":"","sources":["../../../../src/generators/documentation/templates/architectureTemplate.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,4BAA4B,EAAE,MAAM,SAAS,CAAC;AAGvD,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,4BAA4B,GAAG,MAAM,CA8DrF"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.renderArchitectureNotes = renderArchitectureNotes;
|
|
4
|
+
const frontMatter_1 = require("./frontMatter");
|
|
5
|
+
const common_1 = require("./common");
|
|
6
|
+
function renderArchitectureNotes(context) {
|
|
7
|
+
const frontMatter = (0, frontMatter_1.createFrontMatter)({
|
|
8
|
+
id: 'architecture-notes',
|
|
9
|
+
goal: 'Describe how the system is assembled, key trade-offs, and active constraints.',
|
|
10
|
+
requiredInputs: [
|
|
11
|
+
'Recent architectural decisions or ADRs',
|
|
12
|
+
'Observed service/module boundaries in the codebase',
|
|
13
|
+
'Dependency graphs or build tooling insights'
|
|
14
|
+
],
|
|
15
|
+
successCriteria: [
|
|
16
|
+
'Decision list covers the most influential trade-offs',
|
|
17
|
+
'Risks capture active constraints or technical debt',
|
|
18
|
+
'Links to diagrams or monitors are up to date'
|
|
19
|
+
],
|
|
20
|
+
relatedAgents: ['architect-specialist', 'backend-specialist']
|
|
21
|
+
});
|
|
22
|
+
const defaultSections = [
|
|
23
|
+
'System boundaries and integration points',
|
|
24
|
+
'Primary modules and their responsibilities',
|
|
25
|
+
'Data flow between major components',
|
|
26
|
+
'Dependencies worth highlighting'
|
|
27
|
+
];
|
|
28
|
+
const directorySnapshot = (0, common_1.formatDirectoryStats)(context.directoryStats);
|
|
29
|
+
return `${frontMatter}
|
|
30
|
+
<!-- ai-task:architecture-notes -->
|
|
31
|
+
# Architecture Notes
|
|
32
|
+
|
|
33
|
+
> TODO: Describe how the system is assembled and why the current design exists.
|
|
34
|
+
|
|
35
|
+
## Decisions To Record
|
|
36
|
+
${defaultSections.map(item => `- ${item}`).join('\n')}
|
|
37
|
+
|
|
38
|
+
## Diagrams
|
|
39
|
+
- Link architectural diagrams or add mermaid definitions here.
|
|
40
|
+
|
|
41
|
+
## Risks & Constraints
|
|
42
|
+
- Document performance constraints, scaling considerations, or external system assumptions.
|
|
43
|
+
|
|
44
|
+
## Top Directories Snapshot
|
|
45
|
+
${directorySnapshot}
|
|
46
|
+
|
|
47
|
+
## AI Update Checklist
|
|
48
|
+
1. Review ADRs, design docs, or major PRs for architectural changes.
|
|
49
|
+
2. Verify that each documented decision still holds; mark superseded choices clearly.
|
|
50
|
+
3. Capture upstream/downstream impacts (APIs, events, data flows).
|
|
51
|
+
4. Update Risks & Constraints with active incident learnings or TODO debt.
|
|
52
|
+
5. Link any new diagrams or dashboards referenced in recent work.
|
|
53
|
+
|
|
54
|
+
## Acceptable Sources
|
|
55
|
+
- ADR folders, \`/docs/architecture\` notes, or RFC threads.
|
|
56
|
+
- Dependency visualisations from build tooling or scripts.
|
|
57
|
+
- Issue tracker discussions vetted by maintainers.
|
|
58
|
+
|
|
59
|
+
## Related Resources
|
|
60
|
+
- [Project Overview](./project-overview.md)
|
|
61
|
+
- Update [agents/README.md](../agents/README.md) when architecture changes.
|
|
62
|
+
|
|
63
|
+
<!-- /ai-task -->
|
|
64
|
+
`;
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=architectureTemplate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"architectureTemplate.js","sourceRoot":"","sources":["../../../../src/generators/documentation/templates/architectureTemplate.ts"],"names":[],"mappings":";;AAIA,0DA8DC;AAlED,+CAAkD;AAElD,qCAAgD;AAEhD,SAAgB,uBAAuB,CAAC,OAAqC;IAC3E,MAAM,WAAW,GAAG,IAAA,+BAAiB,EAAC;QACpC,EAAE,EAAE,oBAAoB;QACxB,IAAI,EAAE,+EAA+E;QACrF,cAAc,EAAE;YACd,wCAAwC;YACxC,oDAAoD;YACpD,6CAA6C;SAC9C;QACD,eAAe,EAAE;YACf,sDAAsD;YACtD,oDAAoD;YACpD,8CAA8C;SAC/C;QACD,aAAa,EAAE,CAAC,sBAAsB,EAAE,oBAAoB,CAAC;KAC9D,CAAC,CAAC;IAEH,MAAM,eAAe,GAAG;QACtB,0CAA0C;QAC1C,4CAA4C;QAC5C,oCAAoC;QACpC,iCAAiC;KAClC,CAAC;IAEF,MAAM,iBAAiB,GAAG,IAAA,6BAAoB,EAAC,OAAO,CAAC,cAAc,CAAC,CAAC;IAEvE,OAAO,GAAG,WAAW;;;;;;;EAOrB,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;;;;;;;;;EASnD,iBAAiB;;;;;;;;;;;;;;;;;;;CAmBlB,CAAC;AACF,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { DirectoryStat, DocumentationTemplateContext } from './types';
|
|
2
|
+
export declare function formatDirectoryList(context: DocumentationTemplateContext, includePlaceholders: boolean): string;
|
|
3
|
+
export declare function buildDocumentMapTable(guides: DocumentationTemplateContext['guides']): string;
|
|
4
|
+
export declare function formatDirectoryStats(stats: DirectoryStat[]): string;
|
|
5
|
+
export declare function formatInlineDirectoryList(directories: string[]): string;
|
|
6
|
+
export declare function slugify(value: string): string;
|
|
7
|
+
//# sourceMappingURL=common.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../../../src/generators/documentation/templates/common.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,4BAA4B,EAAE,MAAM,SAAS,CAAC;AAWtE,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,4BAA4B,EACrC,mBAAmB,EAAE,OAAO,GAC3B,MAAM,CAoBR;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,4BAA4B,CAAC,QAAQ,CAAC,GAAG,MAAM,CAG5F;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,aAAa,EAAE,GAAG,MAAM,CAQnE;AAED,wBAAgB,yBAAyB,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,MAAM,CAMvE;AAED,wBAAgB,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAK7C"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.formatDirectoryList = formatDirectoryList;
|
|
4
|
+
exports.buildDocumentMapTable = buildDocumentMapTable;
|
|
5
|
+
exports.formatDirectoryStats = formatDirectoryStats;
|
|
6
|
+
exports.formatInlineDirectoryList = formatInlineDirectoryList;
|
|
7
|
+
exports.slugify = slugify;
|
|
8
|
+
const KNOWN_DESCRIPTIONS = {
|
|
9
|
+
src: 'TypeScript source files and CLI entrypoints.',
|
|
10
|
+
dist: 'Compiled JavaScript output generated by the build step.',
|
|
11
|
+
docs: 'Living documentation produced by this tool.',
|
|
12
|
+
agents: 'AI agent playbooks and prompts.',
|
|
13
|
+
tests: 'Automated tests and fixtures.',
|
|
14
|
+
packages: 'Workspace packages or modules.'
|
|
15
|
+
};
|
|
16
|
+
function formatDirectoryList(context, includePlaceholders) {
|
|
17
|
+
if (context.topLevelDirectories.length === 0) {
|
|
18
|
+
return '';
|
|
19
|
+
}
|
|
20
|
+
return context.topLevelDirectories
|
|
21
|
+
.map(dir => {
|
|
22
|
+
const description = KNOWN_DESCRIPTIONS[dir];
|
|
23
|
+
if (description) {
|
|
24
|
+
return `- \`${dir}/\` — ${description}`;
|
|
25
|
+
}
|
|
26
|
+
if (!includePlaceholders) {
|
|
27
|
+
return `- \`${dir}/\``;
|
|
28
|
+
}
|
|
29
|
+
const slotId = slugify(dir);
|
|
30
|
+
return `- <!-- ai-slot:directory-${slotId} -->\`${dir}/\` — TODO: Describe the purpose of this directory.<!-- /ai-slot -->`;
|
|
31
|
+
})
|
|
32
|
+
.join('\n');
|
|
33
|
+
}
|
|
34
|
+
function buildDocumentMapTable(guides) {
|
|
35
|
+
const rows = guides.map(meta => `| ${meta.title} | \`${meta.file}\` | ${meta.marker} | ${meta.primaryInputs} |`);
|
|
36
|
+
return ['| Guide | File | Task Marker | Primary Inputs |', '| --- | --- | --- | --- |', ...rows].join('\n');
|
|
37
|
+
}
|
|
38
|
+
function formatDirectoryStats(stats) {
|
|
39
|
+
if (!stats.length) {
|
|
40
|
+
return '*No directories detected.*';
|
|
41
|
+
}
|
|
42
|
+
return stats
|
|
43
|
+
.map(stat => `- \`${stat.name}/\` — approximately ${stat.fileCount} files`)
|
|
44
|
+
.join('\n');
|
|
45
|
+
}
|
|
46
|
+
function formatInlineDirectoryList(directories) {
|
|
47
|
+
if (!directories.length) {
|
|
48
|
+
return '`n/a`';
|
|
49
|
+
}
|
|
50
|
+
return directories.map(dir => `\`${dir}\``).join(', ');
|
|
51
|
+
}
|
|
52
|
+
function slugify(value) {
|
|
53
|
+
return value
|
|
54
|
+
.toLowerCase()
|
|
55
|
+
.replace(/[^a-z0-9]+/g, '-')
|
|
56
|
+
.replace(/^-+|-+$/g, '');
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=common.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"common.js","sourceRoot":"","sources":["../../../../src/generators/documentation/templates/common.ts"],"names":[],"mappings":";;AAWA,kDAuBC;AAED,sDAGC;AAED,oDAQC;AAED,8DAMC;AAED,0BAKC;AA9DD,MAAM,kBAAkB,GAA2B;IACjD,GAAG,EAAE,8CAA8C;IACnD,IAAI,EAAE,yDAAyD;IAC/D,IAAI,EAAE,6CAA6C;IACnD,MAAM,EAAE,iCAAiC;IACzC,KAAK,EAAE,+BAA+B;IACtC,QAAQ,EAAE,gCAAgC;CAC3C,CAAC;AAEF,SAAgB,mBAAmB,CACjC,OAAqC,EACrC,mBAA4B;IAE5B,IAAI,OAAO,CAAC,mBAAmB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7C,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,OAAO,OAAO,CAAC,mBAAmB;SAC/B,GAAG,CAAC,GAAG,CAAC,EAAE;QACT,MAAM,WAAW,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;QAC5C,IAAI,WAAW,EAAE,CAAC;YAChB,OAAO,OAAO,GAAG,SAAS,WAAW,EAAE,CAAC;QAC1C,CAAC;QAED,IAAI,CAAC,mBAAmB,EAAE,CAAC;YACzB,OAAO,OAAO,GAAG,KAAK,CAAC;QACzB,CAAC;QAED,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;QAC5B,OAAO,4BAA4B,MAAM,SAAS,GAAG,sEAAsE,CAAC;IAC9H,CAAC,CAAC;SACD,IAAI,CAAC,IAAI,CAAC,CAAC;AAChB,CAAC;AAED,SAAgB,qBAAqB,CAAC,MAA8C;IAClF,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,IAAI,CAAC,KAAK,QAAQ,IAAI,CAAC,IAAI,QAAQ,IAAI,CAAC,MAAM,MAAM,IAAI,CAAC,aAAa,IAAI,CAAC,CAAC;IACjH,OAAO,CAAC,iDAAiD,EAAE,2BAA2B,EAAE,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC9G,CAAC;AAED,SAAgB,oBAAoB,CAAC,KAAsB;IACzD,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;QAClB,OAAO,4BAA4B,CAAC;IACtC,CAAC;IAED,OAAO,KAAK;SACT,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,IAAI,CAAC,IAAI,uBAAuB,IAAI,CAAC,SAAS,QAAQ,CAAC;SAC1E,IAAI,CAAC,IAAI,CAAC,CAAC;AAChB,CAAC;AAED,SAAgB,yBAAyB,CAAC,WAAqB;IAC7D,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC;QACxB,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,OAAO,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACzD,CAAC;AAED,SAAgB,OAAO,CAAC,KAAa;IACnC,OAAO,KAAK;SACT,WAAW,EAAE;SACb,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC;SAC3B,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;AAC7B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dataFlowTemplate.d.ts","sourceRoot":"","sources":["../../../../src/generators/documentation/templates/dataFlowTemplate.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,4BAA4B,EAAE,MAAM,SAAS,CAAC;AAGvD,wBAAgB,cAAc,CAAC,OAAO,EAAE,4BAA4B,GAAG,MAAM,CAiD5E"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.renderDataFlow = renderDataFlow;
|
|
4
|
+
const frontMatter_1 = require("./frontMatter");
|
|
5
|
+
const common_1 = require("./common");
|
|
6
|
+
function renderDataFlow(context) {
|
|
7
|
+
const frontMatter = (0, frontMatter_1.createFrontMatter)({
|
|
8
|
+
id: 'data-flow',
|
|
9
|
+
goal: 'Describe how information moves through the system and where it integrates with external services.',
|
|
10
|
+
requiredInputs: [
|
|
11
|
+
'Architecture diagrams or sequence flows',
|
|
12
|
+
'Integration specs (APIs, queues, webhooks, third-party services)',
|
|
13
|
+
'Notes on batch jobs, schedulers, or ETL processes'
|
|
14
|
+
],
|
|
15
|
+
successCriteria: [
|
|
16
|
+
'Highlights inbound, internal, and outbound flows',
|
|
17
|
+
'Documents transformation points and trust boundaries',
|
|
18
|
+
'Identifies failure modes and retry/backoff behaviour'
|
|
19
|
+
],
|
|
20
|
+
relatedAgents: ['architect-specialist', 'backend-specialist']
|
|
21
|
+
});
|
|
22
|
+
return `${frontMatter}
|
|
23
|
+
<!-- ai-task:data-flow -->
|
|
24
|
+
# Data Flow & Integrations
|
|
25
|
+
|
|
26
|
+
Explain how data enters, moves through, and exits the system, including interactions with external services.
|
|
27
|
+
|
|
28
|
+
## High-level Flow
|
|
29
|
+
- Summarize the primary pipeline from input to output. Reference diagrams or embed Mermaid definitions when available.
|
|
30
|
+
|
|
31
|
+
## Internal Movement
|
|
32
|
+
- Describe how modules within ${(0, common_1.formatInlineDirectoryList)(context.topLevelDirectories)} collaborate (queues, events, RPC calls, shared databases).
|
|
33
|
+
|
|
34
|
+
## External Integrations
|
|
35
|
+
- <!-- ai-slot:integration -->**Integration** — Purpose, authentication, payload shapes, retry strategy.<!-- /ai-slot -->
|
|
36
|
+
|
|
37
|
+
## Observability & Failure Modes
|
|
38
|
+
- Metrics, traces, or logs that monitor the flow.
|
|
39
|
+
- Backoff, dead-letter, or compensating actions when downstream systems fail.
|
|
40
|
+
|
|
41
|
+
## AI Update Checklist
|
|
42
|
+
1. Validate flows against the latest integration contracts or diagrams.
|
|
43
|
+
2. Update authentication, scopes, or rate limits when they change.
|
|
44
|
+
3. Capture recent incidents or lessons learned that influenced reliability.
|
|
45
|
+
4. Link to runbooks or dashboards used during triage.
|
|
46
|
+
|
|
47
|
+
## Acceptable Sources
|
|
48
|
+
- Architecture diagrams, ADRs, integration playbooks.
|
|
49
|
+
- API specs, queue/topic definitions, infrastructure code.
|
|
50
|
+
- Postmortems or incident reviews impacting data movement.
|
|
51
|
+
|
|
52
|
+
<!-- /ai-task -->
|
|
53
|
+
`;
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=dataFlowTemplate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dataFlowTemplate.js","sourceRoot":"","sources":["../../../../src/generators/documentation/templates/dataFlowTemplate.ts"],"names":[],"mappings":";;AAIA,wCAiDC;AArDD,+CAAkD;AAElD,qCAAqD;AAErD,SAAgB,cAAc,CAAC,OAAqC;IAClE,MAAM,WAAW,GAAG,IAAA,+BAAiB,EAAC;QACpC,EAAE,EAAE,WAAW;QACf,IAAI,EAAE,mGAAmG;QACzG,cAAc,EAAE;YACd,yCAAyC;YACzC,kEAAkE;YAClE,mDAAmD;SACpD;QACD,eAAe,EAAE;YACf,kDAAkD;YAClD,sDAAsD;YACtD,sDAAsD;SACvD;QACD,aAAa,EAAE,CAAC,sBAAsB,EAAE,oBAAoB,CAAC;KAC9D,CAAC,CAAC;IAEH,OAAO,GAAG,WAAW;;;;;;;;;;gCAUS,IAAA,kCAAyB,EAAC,OAAO,CAAC,mBAAmB,CAAC;;;;;;;;;;;;;;;;;;;;;CAqBrF,CAAC;AACF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"developmentWorkflowTemplate.d.ts","sourceRoot":"","sources":["../../../../src/generators/documentation/templates/developmentWorkflowTemplate.ts"],"names":[],"mappings":"AAEA,wBAAgB,yBAAyB,IAAI,MAAM,CAsDlD"}
|