@nahisaho/musubix-core 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/musubix.js +18 -0
- package/dist/__tests__/index.test.d.ts +2 -0
- package/dist/__tests__/index.test.d.ts.map +1 -0
- package/dist/__tests__/index.test.js +27 -0
- package/dist/__tests__/index.test.js.map +1 -0
- package/dist/auth/auth-manager.d.ts +320 -0
- package/dist/auth/auth-manager.d.ts.map +1 -0
- package/dist/auth/auth-manager.js +580 -0
- package/dist/auth/auth-manager.js.map +1 -0
- package/dist/cli/base.d.ts +58 -0
- package/dist/cli/base.d.ts.map +1 -0
- package/dist/cli/base.js +93 -0
- package/dist/cli/base.js.map +1 -0
- package/dist/cli/commands/help.d.ts +17 -0
- package/dist/cli/commands/help.d.ts.map +1 -0
- package/dist/cli/commands/help.js +228 -0
- package/dist/cli/commands/help.js.map +1 -0
- package/dist/cli/commands/index.d.ts +14 -0
- package/dist/cli/commands/index.d.ts.map +1 -0
- package/dist/cli/commands/index.js +25 -0
- package/dist/cli/commands/index.js.map +1 -0
- package/dist/cli/commands/init.d.ts +38 -0
- package/dist/cli/commands/init.d.ts.map +1 -0
- package/dist/cli/commands/init.js +258 -0
- package/dist/cli/commands/init.js.map +1 -0
- package/dist/cli/index.d.ts +9 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +9 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/codegen/coding-standards.d.ts +250 -0
- package/dist/codegen/coding-standards.d.ts.map +1 -0
- package/dist/codegen/coding-standards.js +976 -0
- package/dist/codegen/coding-standards.js.map +1 -0
- package/dist/codegen/coverage-reporter.d.ts +264 -0
- package/dist/codegen/coverage-reporter.d.ts.map +1 -0
- package/dist/codegen/coverage-reporter.js +697 -0
- package/dist/codegen/coverage-reporter.js.map +1 -0
- package/dist/codegen/dependency-analyzer.d.ts +271 -0
- package/dist/codegen/dependency-analyzer.d.ts.map +1 -0
- package/dist/codegen/dependency-analyzer.js +661 -0
- package/dist/codegen/dependency-analyzer.js.map +1 -0
- package/dist/codegen/generator.d.ts +275 -0
- package/dist/codegen/generator.d.ts.map +1 -0
- package/dist/codegen/generator.js +781 -0
- package/dist/codegen/generator.js.map +1 -0
- package/dist/codegen/index.d.ts +18 -0
- package/dist/codegen/index.d.ts.map +1 -0
- package/dist/codegen/index.js +27 -0
- package/dist/codegen/index.js.map +1 -0
- package/dist/codegen/integration-test-generator.d.ts +312 -0
- package/dist/codegen/integration-test-generator.d.ts.map +1 -0
- package/dist/codegen/integration-test-generator.js +765 -0
- package/dist/codegen/integration-test-generator.js.map +1 -0
- package/dist/codegen/pattern-conformance.d.ts +309 -0
- package/dist/codegen/pattern-conformance.d.ts.map +1 -0
- package/dist/codegen/pattern-conformance.js +590 -0
- package/dist/codegen/pattern-conformance.js.map +1 -0
- package/dist/codegen/quality-metrics.d.ts +235 -0
- package/dist/codegen/quality-metrics.d.ts.map +1 -0
- package/dist/codegen/quality-metrics.js +439 -0
- package/dist/codegen/quality-metrics.js.map +1 -0
- package/dist/codegen/security-scanner.d.ts +179 -0
- package/dist/codegen/security-scanner.d.ts.map +1 -0
- package/dist/codegen/security-scanner.js +495 -0
- package/dist/codegen/security-scanner.js.map +1 -0
- package/dist/codegen/static-analyzer.d.ts +188 -0
- package/dist/codegen/static-analyzer.d.ts.map +1 -0
- package/dist/codegen/static-analyzer.js +490 -0
- package/dist/codegen/static-analyzer.js.map +1 -0
- package/dist/codegen/unit-test-generator.d.ts +289 -0
- package/dist/codegen/unit-test-generator.d.ts.map +1 -0
- package/dist/codegen/unit-test-generator.js +634 -0
- package/dist/codegen/unit-test-generator.js.map +1 -0
- package/dist/design/adr-generator.d.ts +227 -0
- package/dist/design/adr-generator.d.ts.map +1 -0
- package/dist/design/adr-generator.js +423 -0
- package/dist/design/adr-generator.js.map +1 -0
- package/dist/design/c4-generator.d.ts +267 -0
- package/dist/design/c4-generator.d.ts.map +1 -0
- package/dist/design/c4-generator.js +453 -0
- package/dist/design/c4-generator.js.map +1 -0
- package/dist/design/framework-optimizer.d.ts +190 -0
- package/dist/design/framework-optimizer.d.ts.map +1 -0
- package/dist/design/framework-optimizer.js +589 -0
- package/dist/design/framework-optimizer.js.map +1 -0
- package/dist/design/index.d.ts +12 -0
- package/dist/design/index.d.ts.map +1 -0
- package/dist/design/index.js +13 -0
- package/dist/design/index.js.map +1 -0
- package/dist/design/pattern-detector.d.ts +270 -0
- package/dist/design/pattern-detector.d.ts.map +1 -0
- package/dist/design/pattern-detector.js +621 -0
- package/dist/design/pattern-detector.js.map +1 -0
- package/dist/design/solid-validator.d.ts +188 -0
- package/dist/design/solid-validator.d.ts.map +1 -0
- package/dist/design/solid-validator.js +579 -0
- package/dist/design/solid-validator.js.map +1 -0
- package/dist/error/data-persistence.d.ts +311 -0
- package/dist/error/data-persistence.d.ts.map +1 -0
- package/dist/error/data-persistence.js +586 -0
- package/dist/error/data-persistence.js.map +1 -0
- package/dist/error/graceful-degradation.d.ts +309 -0
- package/dist/error/graceful-degradation.d.ts.map +1 -0
- package/dist/error/graceful-degradation.js +510 -0
- package/dist/error/graceful-degradation.js.map +1 -0
- package/dist/error/index.d.ts +11 -0
- package/dist/error/index.d.ts.map +1 -0
- package/dist/error/index.js +19 -0
- package/dist/error/index.js.map +1 -0
- package/dist/explanation/explanation-generator.d.ts +228 -0
- package/dist/explanation/explanation-generator.d.ts.map +1 -0
- package/dist/explanation/explanation-generator.js +662 -0
- package/dist/explanation/explanation-generator.js.map +1 -0
- package/dist/explanation/index.d.ts +11 -0
- package/dist/explanation/index.d.ts.map +1 -0
- package/dist/explanation/index.js +19 -0
- package/dist/explanation/index.js.map +1 -0
- package/dist/explanation/reasoning-chain.d.ts +314 -0
- package/dist/explanation/reasoning-chain.d.ts.map +1 -0
- package/dist/explanation/reasoning-chain.js +414 -0
- package/dist/explanation/reasoning-chain.js.map +1 -0
- package/dist/explanation/visual-explanation.d.ts +315 -0
- package/dist/explanation/visual-explanation.d.ts.map +1 -0
- package/dist/explanation/visual-explanation.js +667 -0
- package/dist/explanation/visual-explanation.js.map +1 -0
- package/dist/index.d.ts +33 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +47 -0
- package/dist/index.js.map +1 -0
- package/dist/requirements/decomposer.d.ts +235 -0
- package/dist/requirements/decomposer.d.ts.map +1 -0
- package/dist/requirements/decomposer.js +587 -0
- package/dist/requirements/decomposer.js.map +1 -0
- package/dist/requirements/related-finder.d.ts +261 -0
- package/dist/requirements/related-finder.d.ts.map +1 -0
- package/dist/requirements/related-finder.js +629 -0
- package/dist/requirements/related-finder.js.map +1 -0
- package/dist/traceability/impact.d.ts +196 -0
- package/dist/traceability/impact.d.ts.map +1 -0
- package/dist/traceability/impact.js +438 -0
- package/dist/traceability/impact.js.map +1 -0
- package/dist/traceability/index.d.ts +9 -0
- package/dist/traceability/index.d.ts.map +1 -0
- package/dist/traceability/index.js +10 -0
- package/dist/traceability/index.js.map +1 -0
- package/dist/traceability/manager.d.ts +266 -0
- package/dist/traceability/manager.d.ts.map +1 -0
- package/dist/traceability/manager.js +412 -0
- package/dist/traceability/manager.js.map +1 -0
- package/dist/types/common.d.ts +294 -0
- package/dist/types/common.d.ts.map +1 -0
- package/dist/types/common.js +15 -0
- package/dist/types/common.js.map +1 -0
- package/dist/types/ears.d.ts +158 -0
- package/dist/types/ears.d.ts.map +1 -0
- package/dist/types/ears.js +33 -0
- package/dist/types/ears.js.map +1 -0
- package/dist/types/errors.d.ts +176 -0
- package/dist/types/errors.d.ts.map +1 -0
- package/dist/types/errors.js +55 -0
- package/dist/types/errors.js.map +1 -0
- package/dist/types/index.d.ts +10 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +10 -0
- package/dist/types/index.js.map +1 -0
- package/dist/utils/data-protector.d.ts +122 -0
- package/dist/utils/data-protector.d.ts.map +1 -0
- package/dist/utils/data-protector.js +275 -0
- package/dist/utils/data-protector.js.map +1 -0
- package/dist/utils/error-handler.d.ts +101 -0
- package/dist/utils/error-handler.d.ts.map +1 -0
- package/dist/utils/error-handler.js +324 -0
- package/dist/utils/error-handler.js.map +1 -0
- package/dist/utils/i18n-manager.d.ts +259 -0
- package/dist/utils/i18n-manager.d.ts.map +1 -0
- package/dist/utils/i18n-manager.js +554 -0
- package/dist/utils/i18n-manager.js.map +1 -0
- package/dist/utils/index.d.ts +10 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +10 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/logger.d.ts +120 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +237 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/performance-profiler.d.ts +251 -0
- package/dist/utils/performance-profiler.d.ts.map +1 -0
- package/dist/utils/performance-profiler.js +458 -0
- package/dist/utils/performance-profiler.js.map +1 -0
- package/dist/utils/scalability-optimizer.d.ts +294 -0
- package/dist/utils/scalability-optimizer.d.ts.map +1 -0
- package/dist/utils/scalability-optimizer.js +606 -0
- package/dist/utils/scalability-optimizer.js.map +1 -0
- package/dist/utils/structured-logger.d.ts +294 -0
- package/dist/utils/structured-logger.d.ts.map +1 -0
- package/dist/utils/structured-logger.js +630 -0
- package/dist/utils/structured-logger.js.map +1 -0
- package/dist/utils/version-compatibility.d.ts +217 -0
- package/dist/utils/version-compatibility.d.ts.map +1 -0
- package/dist/utils/version-compatibility.js +443 -0
- package/dist/utils/version-compatibility.js.map +1 -0
- package/dist/validators/ears-validator.d.ts +182 -0
- package/dist/validators/ears-validator.d.ts.map +1 -0
- package/dist/validators/ears-validator.js +357 -0
- package/dist/validators/ears-validator.js.map +1 -0
- package/dist/validators/index.d.ts +8 -0
- package/dist/validators/index.d.ts.map +1 -0
- package/dist/validators/index.js +9 -0
- package/dist/validators/index.js.map +1 -0
- package/dist/version.d.ts +8 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +8 -0
- package/dist/version.js.map +1 -0
- package/package.json +100 -0
|
@@ -0,0 +1,258 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Init Command
|
|
3
|
+
*
|
|
4
|
+
* Initializes a new MUSUBIX project
|
|
5
|
+
*
|
|
6
|
+
* @packageDocumentation
|
|
7
|
+
* @module cli/commands/init
|
|
8
|
+
*
|
|
9
|
+
* @see REQ-ARC-002 - CLI Interface
|
|
10
|
+
* @see DES-MUSUBIX-001 Section 3.2.2 - CLI Commands
|
|
11
|
+
*/
|
|
12
|
+
import { mkdir, writeFile, access } from 'fs/promises';
|
|
13
|
+
import { join } from 'path';
|
|
14
|
+
import { ExitCode, getGlobalOptions, outputResult } from '../base.js';
|
|
15
|
+
import { VERSION } from '../../version.js';
|
|
16
|
+
/**
|
|
17
|
+
* Default project configuration template
|
|
18
|
+
*/
|
|
19
|
+
const DEFAULT_CONFIG = {
|
|
20
|
+
version: VERSION,
|
|
21
|
+
project: 'my-project',
|
|
22
|
+
steeringDir: './steering',
|
|
23
|
+
storageDir: './storage',
|
|
24
|
+
llm: {
|
|
25
|
+
provider: 'anthropic',
|
|
26
|
+
model: 'claude-sonnet-4-20250514',
|
|
27
|
+
maxTokens: 4096,
|
|
28
|
+
temperature: 0.7,
|
|
29
|
+
},
|
|
30
|
+
yata: {
|
|
31
|
+
transport: 'stdio',
|
|
32
|
+
server: 'yata-mcp',
|
|
33
|
+
timeout: 30000,
|
|
34
|
+
},
|
|
35
|
+
integration: {
|
|
36
|
+
neuralThreshold: 0.7,
|
|
37
|
+
symbolicThreshold: 0.8,
|
|
38
|
+
defaultStrategy: 'neural-validated',
|
|
39
|
+
gracefulDegradation: true,
|
|
40
|
+
},
|
|
41
|
+
};
|
|
42
|
+
/**
|
|
43
|
+
* Directory structure to create
|
|
44
|
+
*/
|
|
45
|
+
const DIRECTORY_STRUCTURE = [
|
|
46
|
+
'steering',
|
|
47
|
+
'steering/rules',
|
|
48
|
+
'storage',
|
|
49
|
+
'storage/specs',
|
|
50
|
+
'storage/archive',
|
|
51
|
+
'storage/changes',
|
|
52
|
+
];
|
|
53
|
+
/**
|
|
54
|
+
* Register init command
|
|
55
|
+
*/
|
|
56
|
+
export function registerInitCommand(program) {
|
|
57
|
+
program
|
|
58
|
+
.command('init')
|
|
59
|
+
.description('Initialize a new MUSUBIX project')
|
|
60
|
+
.argument('[path]', 'Project directory (default: current directory)', '.')
|
|
61
|
+
.option('-n, --name <name>', 'Project name')
|
|
62
|
+
.option('-t, --template <template>', 'Project template', 'default')
|
|
63
|
+
.option('-f, --force', 'Overwrite existing files', false)
|
|
64
|
+
.action(async (path, options) => {
|
|
65
|
+
const globalOpts = getGlobalOptions(program);
|
|
66
|
+
try {
|
|
67
|
+
const result = await executeInit(path, options);
|
|
68
|
+
outputResult(result, globalOpts);
|
|
69
|
+
process.exit(result.success ? ExitCode.SUCCESS : ExitCode.GENERAL_ERROR);
|
|
70
|
+
}
|
|
71
|
+
catch (error) {
|
|
72
|
+
if (globalOpts.json) {
|
|
73
|
+
console.error(JSON.stringify({
|
|
74
|
+
success: false,
|
|
75
|
+
error: error instanceof Error ? error.message : String(error),
|
|
76
|
+
}));
|
|
77
|
+
}
|
|
78
|
+
else {
|
|
79
|
+
console.error(`Error: ${error instanceof Error ? error.message : String(error)}`);
|
|
80
|
+
}
|
|
81
|
+
process.exit(ExitCode.GENERAL_ERROR);
|
|
82
|
+
}
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Execute init command
|
|
87
|
+
*/
|
|
88
|
+
export async function executeInit(targetPath, options) {
|
|
89
|
+
const projectPath = join(process.cwd(), targetPath);
|
|
90
|
+
const projectName = options.name ?? getProjectNameFromPath(projectPath);
|
|
91
|
+
const filesCreated = [];
|
|
92
|
+
// Check if directory exists and has files
|
|
93
|
+
if (!options.force) {
|
|
94
|
+
const configPath = join(projectPath, 'musubix.config.json');
|
|
95
|
+
try {
|
|
96
|
+
await access(configPath);
|
|
97
|
+
return {
|
|
98
|
+
success: false,
|
|
99
|
+
projectPath,
|
|
100
|
+
filesCreated: [],
|
|
101
|
+
message: 'Project already initialized. Use --force to overwrite.',
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
catch {
|
|
105
|
+
// Config doesn't exist, continue
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
// Create directory structure
|
|
109
|
+
for (const dir of DIRECTORY_STRUCTURE) {
|
|
110
|
+
const dirPath = join(projectPath, dir);
|
|
111
|
+
await mkdir(dirPath, { recursive: true });
|
|
112
|
+
filesCreated.push(dir + '/');
|
|
113
|
+
}
|
|
114
|
+
// Create configuration file
|
|
115
|
+
const config = {
|
|
116
|
+
...DEFAULT_CONFIG,
|
|
117
|
+
project: projectName,
|
|
118
|
+
};
|
|
119
|
+
const configPath = join(projectPath, 'musubix.config.json');
|
|
120
|
+
await writeFile(configPath, JSON.stringify(config, null, 2) + '\n');
|
|
121
|
+
filesCreated.push('musubix.config.json');
|
|
122
|
+
// Create steering documents
|
|
123
|
+
await createSteeringDocuments(projectPath, projectName, filesCreated);
|
|
124
|
+
// Create .gitkeep files
|
|
125
|
+
await writeFile(join(projectPath, 'storage/archive/.gitkeep'), '');
|
|
126
|
+
await writeFile(join(projectPath, 'storage/changes/.gitkeep'), '');
|
|
127
|
+
filesCreated.push('storage/archive/.gitkeep', 'storage/changes/.gitkeep');
|
|
128
|
+
return {
|
|
129
|
+
success: true,
|
|
130
|
+
projectPath,
|
|
131
|
+
filesCreated,
|
|
132
|
+
message: `MUSUBIX project '${projectName}' initialized successfully!`,
|
|
133
|
+
};
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Create steering documents
|
|
137
|
+
*/
|
|
138
|
+
async function createSteeringDocuments(projectPath, projectName, filesCreated) {
|
|
139
|
+
// Constitution
|
|
140
|
+
const constitution = `# ${projectName} Constitution
|
|
141
|
+
|
|
142
|
+
## 9つの憲法条項
|
|
143
|
+
|
|
144
|
+
本プロジェクトは以下の憲法条項に準拠します。
|
|
145
|
+
|
|
146
|
+
### Article I: Library-First Architecture
|
|
147
|
+
すべての機能はライブラリとして分離すること。
|
|
148
|
+
|
|
149
|
+
### Article II: CLI Interface Mandate
|
|
150
|
+
すべてのライブラリにCLIエントリーポイントを設けること。
|
|
151
|
+
|
|
152
|
+
### Article III: Test-First Development
|
|
153
|
+
テスト駆動開発を実践すること。
|
|
154
|
+
|
|
155
|
+
### Article IV: Project Memory
|
|
156
|
+
steering/配下にプロジェクトメモリを維持すること。
|
|
157
|
+
|
|
158
|
+
### Article V: Traceability
|
|
159
|
+
要件からコードまでの追跡可能性を確保すること。
|
|
160
|
+
|
|
161
|
+
### Article VI: Agent Memory Format
|
|
162
|
+
MUSUBI SDD形式でメモリを管理すること。
|
|
163
|
+
|
|
164
|
+
### Article VII: Simplicity Gate
|
|
165
|
+
初期は3プロジェクト以内に抑えること。
|
|
166
|
+
|
|
167
|
+
### Article VIII: Anti-Abstraction
|
|
168
|
+
フレームワークAPIを直接使用すること。
|
|
169
|
+
|
|
170
|
+
### Article IX: Integration Testing
|
|
171
|
+
実サービスでテストを行うこと。
|
|
172
|
+
|
|
173
|
+
---
|
|
174
|
+
|
|
175
|
+
**生成日**: ${new Date().toISOString().split('T')[0]}
|
|
176
|
+
**MUSUBIX Version**: ${VERSION}
|
|
177
|
+
`;
|
|
178
|
+
await writeFile(join(projectPath, 'steering/rules/constitution.md'), constitution);
|
|
179
|
+
filesCreated.push('steering/rules/constitution.md');
|
|
180
|
+
// Product context
|
|
181
|
+
const product = `# ${projectName} - Product Context
|
|
182
|
+
|
|
183
|
+
## 概要
|
|
184
|
+
|
|
185
|
+
[プロジェクトの概要を記述]
|
|
186
|
+
|
|
187
|
+
## 目的
|
|
188
|
+
|
|
189
|
+
[プロジェクトの目的を記述]
|
|
190
|
+
|
|
191
|
+
## ステークホルダー
|
|
192
|
+
|
|
193
|
+
- [ステークホルダー1]
|
|
194
|
+
- [ステークホルダー2]
|
|
195
|
+
|
|
196
|
+
---
|
|
197
|
+
|
|
198
|
+
**生成日**: ${new Date().toISOString().split('T')[0]}
|
|
199
|
+
`;
|
|
200
|
+
await writeFile(join(projectPath, 'steering/product.md'), product);
|
|
201
|
+
filesCreated.push('steering/product.md');
|
|
202
|
+
// Tech stack
|
|
203
|
+
const tech = `# ${projectName} - Technology Stack
|
|
204
|
+
|
|
205
|
+
## 言語
|
|
206
|
+
|
|
207
|
+
- TypeScript 5.3+
|
|
208
|
+
- Node.js 20+
|
|
209
|
+
|
|
210
|
+
## フレームワーク
|
|
211
|
+
|
|
212
|
+
- [使用するフレームワーク]
|
|
213
|
+
|
|
214
|
+
## ツール
|
|
215
|
+
|
|
216
|
+
- Vitest (テスト)
|
|
217
|
+
- ESLint (リント)
|
|
218
|
+
|
|
219
|
+
---
|
|
220
|
+
|
|
221
|
+
**生成日**: ${new Date().toISOString().split('T')[0]}
|
|
222
|
+
`;
|
|
223
|
+
await writeFile(join(projectPath, 'steering/tech.md'), tech);
|
|
224
|
+
filesCreated.push('steering/tech.md');
|
|
225
|
+
// Structure
|
|
226
|
+
const structure = `# ${projectName} - Project Structure
|
|
227
|
+
|
|
228
|
+
## ディレクトリ構成
|
|
229
|
+
|
|
230
|
+
\`\`\`
|
|
231
|
+
${projectName}/
|
|
232
|
+
├── steering/ # プロジェクトメモリ
|
|
233
|
+
│ ├── rules/ # 憲法・ルール
|
|
234
|
+
│ ├── product.md # プロダクトコンテキスト
|
|
235
|
+
│ ├── tech.md # 技術スタック
|
|
236
|
+
│ └── structure.md # 構造定義
|
|
237
|
+
├── storage/ # データストレージ
|
|
238
|
+
│ ├── specs/ # 仕様書
|
|
239
|
+
│ ├── archive/ # アーカイブ
|
|
240
|
+
│ └── changes/ # 変更履歴
|
|
241
|
+
└── musubix.config.json # 設定ファイル
|
|
242
|
+
\`\`\`
|
|
243
|
+
|
|
244
|
+
---
|
|
245
|
+
|
|
246
|
+
**生成日**: ${new Date().toISOString().split('T')[0]}
|
|
247
|
+
`;
|
|
248
|
+
await writeFile(join(projectPath, 'steering/structure.md'), structure);
|
|
249
|
+
filesCreated.push('steering/structure.md');
|
|
250
|
+
}
|
|
251
|
+
/**
|
|
252
|
+
* Extract project name from path
|
|
253
|
+
*/
|
|
254
|
+
function getProjectNameFromPath(projectPath) {
|
|
255
|
+
const parts = projectPath.split(/[/\\]/);
|
|
256
|
+
return parts[parts.length - 1] || 'my-project';
|
|
257
|
+
}
|
|
258
|
+
//# sourceMappingURL=init.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/cli/commands/init.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,cAAc,WAAW,CAAC;AAC1B,cAAc,qBAAqB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,cAAc,WAAW,CAAC;AAC1B,cAAc,qBAAqB,CAAC"}
|
|
@@ -0,0 +1,250 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Coding Standards Checker
|
|
3
|
+
*
|
|
4
|
+
* Checks and enforces coding standards
|
|
5
|
+
*
|
|
6
|
+
* @packageDocumentation
|
|
7
|
+
* @module codegen/coding-standards
|
|
8
|
+
*
|
|
9
|
+
* @see REQ-COD-005 - Coding Standards Enforcement
|
|
10
|
+
* @see Article III - Bidirectional Traceability
|
|
11
|
+
*/
|
|
12
|
+
/**
|
|
13
|
+
* Severity level
|
|
14
|
+
*/
|
|
15
|
+
export type Severity = 'error' | 'warning' | 'info' | 'hint';
|
|
16
|
+
/**
|
|
17
|
+
* Standard category
|
|
18
|
+
*/
|
|
19
|
+
export type StandardCategory = 'naming' | 'formatting' | 'structure' | 'documentation' | 'complexity' | 'security' | 'performance' | 'testing' | 'style';
|
|
20
|
+
/**
|
|
21
|
+
* Coding standard rule
|
|
22
|
+
*/
|
|
23
|
+
export interface CodingRule {
|
|
24
|
+
/** Rule ID */
|
|
25
|
+
id: string;
|
|
26
|
+
/** Rule name */
|
|
27
|
+
name: string;
|
|
28
|
+
/** Description */
|
|
29
|
+
description: string;
|
|
30
|
+
/** Category */
|
|
31
|
+
category: StandardCategory;
|
|
32
|
+
/** Severity */
|
|
33
|
+
severity: Severity;
|
|
34
|
+
/** Enabled */
|
|
35
|
+
enabled: boolean;
|
|
36
|
+
/** Configurable options */
|
|
37
|
+
options?: Record<string, unknown>;
|
|
38
|
+
/** Auto-fix available */
|
|
39
|
+
autoFixable: boolean;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Rule violation
|
|
43
|
+
*/
|
|
44
|
+
export interface RuleViolation {
|
|
45
|
+
/** Rule ID */
|
|
46
|
+
ruleId: string;
|
|
47
|
+
/** Rule name */
|
|
48
|
+
ruleName: string;
|
|
49
|
+
/** Severity */
|
|
50
|
+
severity: Severity;
|
|
51
|
+
/** Message */
|
|
52
|
+
message: string;
|
|
53
|
+
/** File path */
|
|
54
|
+
file: string;
|
|
55
|
+
/** Line number */
|
|
56
|
+
line: number;
|
|
57
|
+
/** Column number */
|
|
58
|
+
column: number;
|
|
59
|
+
/** End line */
|
|
60
|
+
endLine?: number;
|
|
61
|
+
/** End column */
|
|
62
|
+
endColumn?: number;
|
|
63
|
+
/** Suggestion */
|
|
64
|
+
suggestion?: string;
|
|
65
|
+
/** Auto-fix available */
|
|
66
|
+
autoFixable: boolean;
|
|
67
|
+
/** Fix function */
|
|
68
|
+
fix?: () => string;
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Check result
|
|
72
|
+
*/
|
|
73
|
+
export interface CheckResult {
|
|
74
|
+
/** File checked */
|
|
75
|
+
file: string;
|
|
76
|
+
/** Violations found */
|
|
77
|
+
violations: RuleViolation[];
|
|
78
|
+
/** Error count */
|
|
79
|
+
errorCount: number;
|
|
80
|
+
/** Warning count */
|
|
81
|
+
warningCount: number;
|
|
82
|
+
/** Info count */
|
|
83
|
+
infoCount: number;
|
|
84
|
+
/** Passed */
|
|
85
|
+
passed: boolean;
|
|
86
|
+
/** Check duration (ms) */
|
|
87
|
+
duration: number;
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Standards report
|
|
91
|
+
*/
|
|
92
|
+
export interface StandardsReport {
|
|
93
|
+
/** Timestamp */
|
|
94
|
+
timestamp: Date;
|
|
95
|
+
/** Files checked */
|
|
96
|
+
filesChecked: number;
|
|
97
|
+
/** Files passed */
|
|
98
|
+
filesPassed: number;
|
|
99
|
+
/** Files failed */
|
|
100
|
+
filesFailed: number;
|
|
101
|
+
/** Total violations */
|
|
102
|
+
totalViolations: number;
|
|
103
|
+
/** Violations by severity */
|
|
104
|
+
bySeverity: Record<Severity, number>;
|
|
105
|
+
/** Violations by category */
|
|
106
|
+
byCategory: Record<StandardCategory, number>;
|
|
107
|
+
/** Results by file */
|
|
108
|
+
results: CheckResult[];
|
|
109
|
+
/** Duration (ms) */
|
|
110
|
+
duration: number;
|
|
111
|
+
/** Pass rate */
|
|
112
|
+
passRate: number;
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Standards config
|
|
116
|
+
*/
|
|
117
|
+
export interface CodingStandardsConfig {
|
|
118
|
+
/** Language */
|
|
119
|
+
language: 'typescript' | 'javascript' | 'python' | 'java';
|
|
120
|
+
/** Enabled categories */
|
|
121
|
+
enabledCategories: StandardCategory[];
|
|
122
|
+
/** Min severity to report */
|
|
123
|
+
minSeverity: Severity;
|
|
124
|
+
/** Fail on warning */
|
|
125
|
+
failOnWarning: boolean;
|
|
126
|
+
/** Ignore patterns */
|
|
127
|
+
ignorePatterns: string[];
|
|
128
|
+
/** Custom rules */
|
|
129
|
+
customRules: CodingRule[];
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Default configuration
|
|
133
|
+
*/
|
|
134
|
+
export declare const DEFAULT_STANDARDS_CONFIG: CodingStandardsConfig;
|
|
135
|
+
/**
|
|
136
|
+
* Built-in rules
|
|
137
|
+
*/
|
|
138
|
+
export declare const BUILTIN_RULES: CodingRule[];
|
|
139
|
+
/**
|
|
140
|
+
* Coding Standards Checker
|
|
141
|
+
*/
|
|
142
|
+
export declare class CodingStandardsChecker {
|
|
143
|
+
private config;
|
|
144
|
+
private rules;
|
|
145
|
+
constructor(config?: Partial<CodingStandardsConfig>);
|
|
146
|
+
/**
|
|
147
|
+
* Initialize rules
|
|
148
|
+
*/
|
|
149
|
+
private initializeRules;
|
|
150
|
+
/**
|
|
151
|
+
* Check file content
|
|
152
|
+
*/
|
|
153
|
+
check(content: string, filePath: string): CheckResult;
|
|
154
|
+
/**
|
|
155
|
+
* Check multiple files
|
|
156
|
+
*/
|
|
157
|
+
checkFiles(files: Array<{
|
|
158
|
+
path: string;
|
|
159
|
+
content: string;
|
|
160
|
+
}>): StandardsReport;
|
|
161
|
+
/**
|
|
162
|
+
* Run a specific rule
|
|
163
|
+
*/
|
|
164
|
+
private runRule;
|
|
165
|
+
/**
|
|
166
|
+
* Check camelCase naming
|
|
167
|
+
*/
|
|
168
|
+
private checkCamelCase;
|
|
169
|
+
/**
|
|
170
|
+
* Check PascalCase for classes
|
|
171
|
+
*/
|
|
172
|
+
private checkPascalCaseClass;
|
|
173
|
+
/**
|
|
174
|
+
* Check UPPER_CASE for constants
|
|
175
|
+
*/
|
|
176
|
+
private checkUpperCaseConstants;
|
|
177
|
+
/**
|
|
178
|
+
* Check meaningful names
|
|
179
|
+
*/
|
|
180
|
+
private checkMeaningfulNames;
|
|
181
|
+
/**
|
|
182
|
+
* Check max line length
|
|
183
|
+
*/
|
|
184
|
+
private checkMaxLineLength;
|
|
185
|
+
/**
|
|
186
|
+
* Check indentation
|
|
187
|
+
*/
|
|
188
|
+
private checkIndentation;
|
|
189
|
+
/**
|
|
190
|
+
* Check max file lines
|
|
191
|
+
*/
|
|
192
|
+
private checkMaxFileLines;
|
|
193
|
+
/**
|
|
194
|
+
* Check max function lines
|
|
195
|
+
*/
|
|
196
|
+
private checkMaxFunctionLines;
|
|
197
|
+
/**
|
|
198
|
+
* Check max parameters
|
|
199
|
+
*/
|
|
200
|
+
private checkMaxParameters;
|
|
201
|
+
/**
|
|
202
|
+
* Check JSDoc required
|
|
203
|
+
*/
|
|
204
|
+
private checkJSDocRequired;
|
|
205
|
+
/**
|
|
206
|
+
* Check cyclomatic complexity
|
|
207
|
+
*/
|
|
208
|
+
private checkCyclomaticComplexity;
|
|
209
|
+
/**
|
|
210
|
+
* Check max nesting level
|
|
211
|
+
*/
|
|
212
|
+
private checkMaxNesting;
|
|
213
|
+
/**
|
|
214
|
+
* Check for eval usage
|
|
215
|
+
*/
|
|
216
|
+
private checkNoEval;
|
|
217
|
+
/**
|
|
218
|
+
* Check for hardcoded secrets
|
|
219
|
+
*/
|
|
220
|
+
private checkNoHardcodedSecrets;
|
|
221
|
+
/**
|
|
222
|
+
* Check if severity should be reported
|
|
223
|
+
*/
|
|
224
|
+
private shouldReport;
|
|
225
|
+
/**
|
|
226
|
+
* Check if file should be ignored
|
|
227
|
+
*/
|
|
228
|
+
private shouldIgnore;
|
|
229
|
+
/**
|
|
230
|
+
* Get enabled rules
|
|
231
|
+
*/
|
|
232
|
+
getEnabledRules(): CodingRule[];
|
|
233
|
+
/**
|
|
234
|
+
* Enable/disable rule
|
|
235
|
+
*/
|
|
236
|
+
setRuleEnabled(ruleId: string, enabled: boolean): void;
|
|
237
|
+
/**
|
|
238
|
+
* Add custom rule
|
|
239
|
+
*/
|
|
240
|
+
addRule(rule: CodingRule): void;
|
|
241
|
+
/**
|
|
242
|
+
* Format report as string
|
|
243
|
+
*/
|
|
244
|
+
formatReport(report: StandardsReport): string;
|
|
245
|
+
}
|
|
246
|
+
/**
|
|
247
|
+
* Create coding standards checker instance
|
|
248
|
+
*/
|
|
249
|
+
export declare function createCodingStandardsChecker(config?: Partial<CodingStandardsConfig>): CodingStandardsChecker;
|
|
250
|
+
//# sourceMappingURL=coding-standards.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"coding-standards.d.ts","sourceRoot":"","sources":["../../src/codegen/coding-standards.ts"],"names":[],"mappings":"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"}
|