aios-core 2.1.3 → 2.1.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.aios-core/infrastructure/scripts/llm-routing/install-llm-routing.js +6 -6
- package/.claude/rules/mcp-usage.md +55 -9
- package/package.json +1 -1
- package/packages/installer/src/config/templates/env-template.js +2 -2
- package/packages/installer/src/wizard/wizard.js +34 -185
- package/src/wizard/index.js +2 -2
- package/.aios-core/development/tasks/analyze-brownfield.md +0 -456
- package/.aios-core/development/tasks/setup-project-docs.md +0 -444
- package/.aios-core/infrastructure/scripts/documentation-integrity/brownfield-analyzer.js +0 -501
- package/.aios-core/infrastructure/scripts/documentation-integrity/config-generator.js +0 -329
- package/.aios-core/infrastructure/scripts/documentation-integrity/deployment-config-loader.js +0 -282
- package/.aios-core/infrastructure/scripts/documentation-integrity/doc-generator.js +0 -331
- package/.aios-core/infrastructure/scripts/documentation-integrity/gitignore-generator.js +0 -312
- package/.aios-core/infrastructure/scripts/documentation-integrity/index.js +0 -74
- package/.aios-core/infrastructure/scripts/documentation-integrity/mode-detector.js +0 -358
- package/.aios-core/infrastructure/templates/core-config/core-config-brownfield.tmpl.yaml +0 -182
- package/.aios-core/infrastructure/templates/core-config/core-config-greenfield.tmpl.yaml +0 -127
- package/.aios-core/infrastructure/templates/gitignore/gitignore-aios-base.tmpl +0 -63
- package/.aios-core/infrastructure/templates/gitignore/gitignore-brownfield-merge.tmpl +0 -18
- package/.aios-core/infrastructure/templates/gitignore/gitignore-node.tmpl +0 -85
- package/.aios-core/infrastructure/templates/gitignore/gitignore-python.tmpl +0 -145
- package/.aios-core/infrastructure/templates/project-docs/coding-standards-tmpl.md +0 -346
- package/.aios-core/infrastructure/templates/project-docs/source-tree-tmpl.md +0 -177
- package/.aios-core/infrastructure/templates/project-docs/tech-stack-tmpl.md +0 -267
|
@@ -1,358 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Mode Detector Module
|
|
3
|
-
*
|
|
4
|
-
* Detects installation mode for AIOS projects with three-mode support:
|
|
5
|
-
* - FRAMEWORK_DEV: Contributing to aios-core itself
|
|
6
|
-
* - GREENFIELD: New empty project
|
|
7
|
-
* - BROWNFIELD: Existing project being integrated
|
|
8
|
-
*
|
|
9
|
-
* @module documentation-integrity/mode-detector
|
|
10
|
-
* @version 1.0.0
|
|
11
|
-
* @story 6.9
|
|
12
|
-
*/
|
|
13
|
-
|
|
14
|
-
const fs = require('fs');
|
|
15
|
-
const path = require('path');
|
|
16
|
-
|
|
17
|
-
/**
|
|
18
|
-
* Installation modes supported by AIOS
|
|
19
|
-
* @enum {string}
|
|
20
|
-
*/
|
|
21
|
-
const InstallationMode = {
|
|
22
|
-
FRAMEWORK_DEV: 'framework-dev',
|
|
23
|
-
GREENFIELD: 'greenfield',
|
|
24
|
-
BROWNFIELD: 'brownfield',
|
|
25
|
-
UNKNOWN: 'unknown',
|
|
26
|
-
};
|
|
27
|
-
|
|
28
|
-
/**
|
|
29
|
-
* Legacy project type mappings (for backward compatibility)
|
|
30
|
-
* @enum {string}
|
|
31
|
-
*/
|
|
32
|
-
const LegacyProjectType = {
|
|
33
|
-
EXISTING_AIOS: 'EXISTING_AIOS',
|
|
34
|
-
GREENFIELD: 'GREENFIELD',
|
|
35
|
-
BROWNFIELD: 'BROWNFIELD',
|
|
36
|
-
UNKNOWN: 'UNKNOWN',
|
|
37
|
-
};
|
|
38
|
-
|
|
39
|
-
/**
|
|
40
|
-
* Mode descriptions for display in wizard
|
|
41
|
-
* @type {Object.<string, Object>}
|
|
42
|
-
*/
|
|
43
|
-
const ModeDescriptions = {
|
|
44
|
-
[InstallationMode.FRAMEWORK_DEV]: {
|
|
45
|
-
label: '🔧 Framework Development',
|
|
46
|
-
hint: 'Developing aios-core itself - uses framework standards, skips project setup',
|
|
47
|
-
description: 'For AIOS contributors working on the framework',
|
|
48
|
-
},
|
|
49
|
-
[InstallationMode.GREENFIELD]: {
|
|
50
|
-
label: '🆕 New Project (Greenfield)',
|
|
51
|
-
hint: 'Start a fresh project with AIOS - generates project docs, config, and infrastructure',
|
|
52
|
-
description: 'Empty directory setup with full scaffolding',
|
|
53
|
-
},
|
|
54
|
-
[InstallationMode.BROWNFIELD]: {
|
|
55
|
-
label: '📂 Existing Project (Brownfield)',
|
|
56
|
-
hint: 'Add AIOS to existing project - analyzes current structure and adapts',
|
|
57
|
-
description: 'Integration with existing codebase',
|
|
58
|
-
},
|
|
59
|
-
[InstallationMode.UNKNOWN]: {
|
|
60
|
-
label: '❓ Unknown',
|
|
61
|
-
hint: 'Could not determine project type - manual selection required',
|
|
62
|
-
description: 'Manual mode selection needed',
|
|
63
|
-
},
|
|
64
|
-
};
|
|
65
|
-
|
|
66
|
-
/**
|
|
67
|
-
* Detection result with confidence and reasoning
|
|
68
|
-
* @typedef {Object} DetectionResult
|
|
69
|
-
* @property {string} mode - Detected installation mode
|
|
70
|
-
* @property {string} legacyType - Legacy project type for backward compatibility
|
|
71
|
-
* @property {number} confidence - Detection confidence (0-100)
|
|
72
|
-
* @property {string} reason - Human-readable reason for detection
|
|
73
|
-
* @property {Object} markers - Detected markers in the directory
|
|
74
|
-
*/
|
|
75
|
-
|
|
76
|
-
/**
|
|
77
|
-
* Detects the installation mode for a target directory
|
|
78
|
-
*
|
|
79
|
-
* Detection Priority Order:
|
|
80
|
-
* 1. FRAMEWORK_DEV - .aios-core/ exists AND is aios-core repo
|
|
81
|
-
* 2. GREENFIELD - directory is empty
|
|
82
|
-
* 3. BROWNFIELD - has package.json, .git, or other project markers
|
|
83
|
-
* 4. UNKNOWN - has files but no recognized markers
|
|
84
|
-
*
|
|
85
|
-
* @param {string} targetDir - Directory to analyze
|
|
86
|
-
* @returns {DetectionResult} Detection result with mode and metadata
|
|
87
|
-
* @throws {Error} If directory cannot be accessed
|
|
88
|
-
*/
|
|
89
|
-
function detectInstallationMode(targetDir = process.cwd()) {
|
|
90
|
-
// Validate input
|
|
91
|
-
if (!targetDir || typeof targetDir !== 'string') {
|
|
92
|
-
throw new Error('Invalid targetDir parameter: must be a non-empty string');
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
const normalizedDir = path.resolve(targetDir);
|
|
96
|
-
|
|
97
|
-
// Check if directory exists
|
|
98
|
-
if (!fs.existsSync(normalizedDir)) {
|
|
99
|
-
throw new Error(`Directory does not exist: ${normalizedDir}`);
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
// Collect markers
|
|
103
|
-
const markers = collectMarkers(normalizedDir);
|
|
104
|
-
|
|
105
|
-
// Priority 1: Check for AIOS framework development
|
|
106
|
-
if (markers.hasAiosCore && markers.isAiosCoreRepo) {
|
|
107
|
-
return {
|
|
108
|
-
mode: InstallationMode.FRAMEWORK_DEV,
|
|
109
|
-
legacyType: LegacyProjectType.EXISTING_AIOS,
|
|
110
|
-
confidence: 100,
|
|
111
|
-
reason: 'Detected aios-core repository with .aios-core directory',
|
|
112
|
-
markers,
|
|
113
|
-
};
|
|
114
|
-
}
|
|
115
|
-
|
|
116
|
-
// Priority 2: Check for existing AIOS installation (non-framework)
|
|
117
|
-
if (markers.hasAiosCore && !markers.isAiosCoreRepo) {
|
|
118
|
-
return {
|
|
119
|
-
mode: InstallationMode.BROWNFIELD,
|
|
120
|
-
legacyType: LegacyProjectType.EXISTING_AIOS,
|
|
121
|
-
confidence: 95,
|
|
122
|
-
reason: 'AIOS already installed in user project - treating as brownfield update',
|
|
123
|
-
markers,
|
|
124
|
-
};
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
// Priority 3: Check for empty directory (greenfield)
|
|
128
|
-
if (markers.isEmpty) {
|
|
129
|
-
return {
|
|
130
|
-
mode: InstallationMode.GREENFIELD,
|
|
131
|
-
legacyType: LegacyProjectType.GREENFIELD,
|
|
132
|
-
confidence: 100,
|
|
133
|
-
reason: 'Empty directory detected',
|
|
134
|
-
markers,
|
|
135
|
-
};
|
|
136
|
-
}
|
|
137
|
-
|
|
138
|
-
// Priority 4: Check for project markers (brownfield)
|
|
139
|
-
if (
|
|
140
|
-
markers.hasPackageJson ||
|
|
141
|
-
markers.hasGit ||
|
|
142
|
-
markers.hasPythonProject ||
|
|
143
|
-
markers.hasGoMod ||
|
|
144
|
-
markers.hasCargoToml
|
|
145
|
-
) {
|
|
146
|
-
const projectTypes = [];
|
|
147
|
-
if (markers.hasPackageJson) projectTypes.push('Node.js');
|
|
148
|
-
if (markers.hasPythonProject) projectTypes.push('Python');
|
|
149
|
-
if (markers.hasGoMod) projectTypes.push('Go');
|
|
150
|
-
if (markers.hasCargoToml) projectTypes.push('Rust');
|
|
151
|
-
|
|
152
|
-
return {
|
|
153
|
-
mode: InstallationMode.BROWNFIELD,
|
|
154
|
-
legacyType: LegacyProjectType.BROWNFIELD,
|
|
155
|
-
confidence: 90,
|
|
156
|
-
reason: `Existing project detected: ${projectTypes.join(', ') || 'Git repository'}`,
|
|
157
|
-
markers,
|
|
158
|
-
};
|
|
159
|
-
}
|
|
160
|
-
|
|
161
|
-
// Priority 5: Directory has files but no recognized markers
|
|
162
|
-
return {
|
|
163
|
-
mode: InstallationMode.UNKNOWN,
|
|
164
|
-
legacyType: LegacyProjectType.UNKNOWN,
|
|
165
|
-
confidence: 0,
|
|
166
|
-
reason: 'Directory has files but no recognized project markers',
|
|
167
|
-
markers,
|
|
168
|
-
};
|
|
169
|
-
}
|
|
170
|
-
|
|
171
|
-
/**
|
|
172
|
-
* Collects all relevant markers from a directory
|
|
173
|
-
*
|
|
174
|
-
* @param {string} targetDir - Directory to scan
|
|
175
|
-
* @returns {Object} Object containing all detected markers
|
|
176
|
-
*/
|
|
177
|
-
function collectMarkers(targetDir) {
|
|
178
|
-
const dirContents = fs.readdirSync(targetDir);
|
|
179
|
-
|
|
180
|
-
return {
|
|
181
|
-
// AIOS markers
|
|
182
|
-
hasAiosCore: fs.existsSync(path.join(targetDir, '.aios-core')),
|
|
183
|
-
isAiosCoreRepo: isAiosCoreRepository(targetDir),
|
|
184
|
-
|
|
185
|
-
// Directory state
|
|
186
|
-
isEmpty: dirContents.length === 0,
|
|
187
|
-
fileCount: dirContents.length,
|
|
188
|
-
|
|
189
|
-
// Project markers
|
|
190
|
-
hasPackageJson: fs.existsSync(path.join(targetDir, 'package.json')),
|
|
191
|
-
hasGit: fs.existsSync(path.join(targetDir, '.git')),
|
|
192
|
-
|
|
193
|
-
// Python markers
|
|
194
|
-
hasPythonProject:
|
|
195
|
-
fs.existsSync(path.join(targetDir, 'requirements.txt')) ||
|
|
196
|
-
fs.existsSync(path.join(targetDir, 'pyproject.toml')) ||
|
|
197
|
-
fs.existsSync(path.join(targetDir, 'setup.py')),
|
|
198
|
-
|
|
199
|
-
// Go markers
|
|
200
|
-
hasGoMod: fs.existsSync(path.join(targetDir, 'go.mod')),
|
|
201
|
-
|
|
202
|
-
// Rust markers
|
|
203
|
-
hasCargoToml: fs.existsSync(path.join(targetDir, 'Cargo.toml')),
|
|
204
|
-
|
|
205
|
-
// Existing standards markers
|
|
206
|
-
hasEslintrc:
|
|
207
|
-
fs.existsSync(path.join(targetDir, '.eslintrc.js')) ||
|
|
208
|
-
fs.existsSync(path.join(targetDir, '.eslintrc.json')) ||
|
|
209
|
-
fs.existsSync(path.join(targetDir, '.eslintrc.yaml')),
|
|
210
|
-
hasPrettierrc:
|
|
211
|
-
fs.existsSync(path.join(targetDir, '.prettierrc')) ||
|
|
212
|
-
fs.existsSync(path.join(targetDir, '.prettierrc.json')) ||
|
|
213
|
-
fs.existsSync(path.join(targetDir, 'prettier.config.js')),
|
|
214
|
-
hasTsconfig: fs.existsSync(path.join(targetDir, 'tsconfig.json')),
|
|
215
|
-
|
|
216
|
-
// CI/CD markers
|
|
217
|
-
hasGithubWorkflows: fs.existsSync(path.join(targetDir, '.github', 'workflows')),
|
|
218
|
-
hasGitlabCi: fs.existsSync(path.join(targetDir, '.gitlab-ci.yml')),
|
|
219
|
-
};
|
|
220
|
-
}
|
|
221
|
-
|
|
222
|
-
/**
|
|
223
|
-
* Checks if the target directory is the aios-core repository itself
|
|
224
|
-
*
|
|
225
|
-
* @param {string} targetDir - Directory to check
|
|
226
|
-
* @returns {boolean} True if this is the aios-core repository
|
|
227
|
-
*/
|
|
228
|
-
function isAiosCoreRepository(targetDir) {
|
|
229
|
-
const packageJsonPath = path.join(targetDir, 'package.json');
|
|
230
|
-
|
|
231
|
-
if (!fs.existsSync(packageJsonPath)) {
|
|
232
|
-
return false;
|
|
233
|
-
}
|
|
234
|
-
|
|
235
|
-
try {
|
|
236
|
-
const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf8'));
|
|
237
|
-
// Check for aios-core package name or workspaces pattern
|
|
238
|
-
const isAiosCore =
|
|
239
|
-
packageJson.name === '@aios/core' ||
|
|
240
|
-
packageJson.name === 'aios-core' ||
|
|
241
|
-
(Array.isArray(packageJson.workspaces) && packageJson.workspaces.includes('packages/*'));
|
|
242
|
-
return isAiosCore === true;
|
|
243
|
-
} catch {
|
|
244
|
-
return false;
|
|
245
|
-
}
|
|
246
|
-
}
|
|
247
|
-
|
|
248
|
-
/**
|
|
249
|
-
* Maps legacy project type to new installation mode
|
|
250
|
-
*
|
|
251
|
-
* @param {string} legacyType - Legacy project type (EXISTING_AIOS, GREENFIELD, etc.)
|
|
252
|
-
* @returns {string} New installation mode
|
|
253
|
-
*/
|
|
254
|
-
function mapLegacyTypeToMode(legacyType) {
|
|
255
|
-
const mapping = {
|
|
256
|
-
[LegacyProjectType.EXISTING_AIOS]: InstallationMode.FRAMEWORK_DEV,
|
|
257
|
-
[LegacyProjectType.GREENFIELD]: InstallationMode.GREENFIELD,
|
|
258
|
-
[LegacyProjectType.BROWNFIELD]: InstallationMode.BROWNFIELD,
|
|
259
|
-
[LegacyProjectType.UNKNOWN]: InstallationMode.UNKNOWN,
|
|
260
|
-
};
|
|
261
|
-
|
|
262
|
-
return mapping[legacyType] || InstallationMode.UNKNOWN;
|
|
263
|
-
}
|
|
264
|
-
|
|
265
|
-
/**
|
|
266
|
-
* Validates user mode selection against auto-detection
|
|
267
|
-
*
|
|
268
|
-
* @param {string} selectedMode - User-selected mode
|
|
269
|
-
* @param {DetectionResult} detected - Auto-detected result
|
|
270
|
-
* @returns {Object} Validation result with warnings if mismatch
|
|
271
|
-
*/
|
|
272
|
-
function validateModeSelection(selectedMode, detected) {
|
|
273
|
-
const result = {
|
|
274
|
-
isValid: true,
|
|
275
|
-
warnings: [],
|
|
276
|
-
suggestions: [],
|
|
277
|
-
};
|
|
278
|
-
|
|
279
|
-
// Allow any selection for UNKNOWN detection
|
|
280
|
-
if (detected.mode === InstallationMode.UNKNOWN) {
|
|
281
|
-
return result;
|
|
282
|
-
}
|
|
283
|
-
|
|
284
|
-
// Check for mismatches
|
|
285
|
-
if (selectedMode !== detected.mode) {
|
|
286
|
-
if (selectedMode === InstallationMode.GREENFIELD && !detected.markers.isEmpty) {
|
|
287
|
-
result.warnings.push(
|
|
288
|
-
'Selected greenfield but directory is not empty. Existing files may be overwritten.',
|
|
289
|
-
);
|
|
290
|
-
}
|
|
291
|
-
|
|
292
|
-
if (selectedMode === InstallationMode.FRAMEWORK_DEV && !detected.markers.isAiosCoreRepo) {
|
|
293
|
-
result.warnings.push(
|
|
294
|
-
'Selected framework-dev but this does not appear to be the aios-core repository.',
|
|
295
|
-
);
|
|
296
|
-
}
|
|
297
|
-
|
|
298
|
-
if (selectedMode === InstallationMode.BROWNFIELD && detected.markers.isEmpty) {
|
|
299
|
-
result.warnings.push(
|
|
300
|
-
'Selected brownfield but directory is empty. Consider using greenfield instead.',
|
|
301
|
-
);
|
|
302
|
-
result.suggestions.push(InstallationMode.GREENFIELD);
|
|
303
|
-
}
|
|
304
|
-
}
|
|
305
|
-
|
|
306
|
-
return result;
|
|
307
|
-
}
|
|
308
|
-
|
|
309
|
-
/**
|
|
310
|
-
* Gets mode options for wizard display
|
|
311
|
-
*
|
|
312
|
-
* @param {DetectionResult} [detected] - Optional detected result to highlight recommended
|
|
313
|
-
* @returns {Array<Object>} Array of mode options for wizard
|
|
314
|
-
*/
|
|
315
|
-
function getModeOptions(detected = null) {
|
|
316
|
-
const options = [
|
|
317
|
-
{
|
|
318
|
-
value: InstallationMode.GREENFIELD,
|
|
319
|
-
label: ModeDescriptions[InstallationMode.GREENFIELD].label,
|
|
320
|
-
hint: ModeDescriptions[InstallationMode.GREENFIELD].hint,
|
|
321
|
-
},
|
|
322
|
-
{
|
|
323
|
-
value: InstallationMode.BROWNFIELD,
|
|
324
|
-
label: ModeDescriptions[InstallationMode.BROWNFIELD].label,
|
|
325
|
-
hint: ModeDescriptions[InstallationMode.BROWNFIELD].hint,
|
|
326
|
-
},
|
|
327
|
-
{
|
|
328
|
-
value: InstallationMode.FRAMEWORK_DEV,
|
|
329
|
-
label: ModeDescriptions[InstallationMode.FRAMEWORK_DEV].label,
|
|
330
|
-
hint: ModeDescriptions[InstallationMode.FRAMEWORK_DEV].hint,
|
|
331
|
-
},
|
|
332
|
-
];
|
|
333
|
-
|
|
334
|
-
// If we have detection, mark recommended option
|
|
335
|
-
if (detected && detected.mode !== InstallationMode.UNKNOWN) {
|
|
336
|
-
const recommendedIndex = options.findIndex((opt) => opt.value === detected.mode);
|
|
337
|
-
if (recommendedIndex >= 0) {
|
|
338
|
-
options[recommendedIndex].hint += ' (Recommended)';
|
|
339
|
-
// Move recommended to top
|
|
340
|
-
const recommended = options.splice(recommendedIndex, 1)[0];
|
|
341
|
-
options.unshift(recommended);
|
|
342
|
-
}
|
|
343
|
-
}
|
|
344
|
-
|
|
345
|
-
return options;
|
|
346
|
-
}
|
|
347
|
-
|
|
348
|
-
module.exports = {
|
|
349
|
-
detectInstallationMode,
|
|
350
|
-
collectMarkers,
|
|
351
|
-
isAiosCoreRepository,
|
|
352
|
-
mapLegacyTypeToMode,
|
|
353
|
-
validateModeSelection,
|
|
354
|
-
getModeOptions,
|
|
355
|
-
InstallationMode,
|
|
356
|
-
LegacyProjectType,
|
|
357
|
-
ModeDescriptions,
|
|
358
|
-
};
|
|
@@ -1,182 +0,0 @@
|
|
|
1
|
-
# AIOS Core Configuration
|
|
2
|
-
# Generated by AIOS Documentation Integrity System
|
|
3
|
-
# Mode: Brownfield (Existing Project Integration)
|
|
4
|
-
# Date: {{GENERATED_DATE}}
|
|
5
|
-
|
|
6
|
-
# =============================================================================
|
|
7
|
-
# PROJECT CONFIGURATION
|
|
8
|
-
# =============================================================================
|
|
9
|
-
project:
|
|
10
|
-
type: USER_PROJECT
|
|
11
|
-
mode: brownfield
|
|
12
|
-
name: "{{PROJECT_NAME}}"
|
|
13
|
-
analyzed: "{{GENERATED_DATE}}"
|
|
14
|
-
version: "{{PROJECT_VERSION}}"
|
|
15
|
-
|
|
16
|
-
# Analysis metadata from brownfield analyzer
|
|
17
|
-
analysis:
|
|
18
|
-
existing_structure: {{HAS_EXISTING_STRUCTURE}}
|
|
19
|
-
existing_workflows: {{HAS_EXISTING_WORKFLOWS}}
|
|
20
|
-
existing_standards: {{HAS_EXISTING_STANDARDS}}
|
|
21
|
-
merge_strategy: "{{MERGE_STRATEGY}}" # parallel | replace | manual
|
|
22
|
-
|
|
23
|
-
# Detected configurations (for reference)
|
|
24
|
-
detected:
|
|
25
|
-
tech_stack: {{DETECTED_TECH_STACK}}
|
|
26
|
-
frameworks: {{DETECTED_FRAMEWORKS}}
|
|
27
|
-
linting: {{DETECTED_LINTING}}
|
|
28
|
-
formatting: {{DETECTED_FORMATTING}}
|
|
29
|
-
testing: {{DETECTED_TESTING}}
|
|
30
|
-
|
|
31
|
-
# =============================================================================
|
|
32
|
-
# DEV CONTEXT LOADING
|
|
33
|
-
# Files loaded automatically when @dev agent activates
|
|
34
|
-
# =============================================================================
|
|
35
|
-
devLoadAlwaysFiles:
|
|
36
|
-
- docs/architecture/coding-standards.md
|
|
37
|
-
- docs/architecture/tech-stack.md
|
|
38
|
-
- docs/architecture/source-tree.md
|
|
39
|
-
|
|
40
|
-
# =============================================================================
|
|
41
|
-
# DEPLOYMENT CONFIGURATION
|
|
42
|
-
# All @devops agent tasks read from this section
|
|
43
|
-
# Analyzed from existing workflows + user confirmation
|
|
44
|
-
# =============================================================================
|
|
45
|
-
deployment:
|
|
46
|
-
# Workflow type (detected or user-selected)
|
|
47
|
-
workflow: {{DEPLOYMENT_WORKFLOW}}
|
|
48
|
-
|
|
49
|
-
# Branch routing configuration (analyzed from existing PR patterns)
|
|
50
|
-
branches:
|
|
51
|
-
staging_targets:
|
|
52
|
-
- "feature/*"
|
|
53
|
-
- "fix/*"
|
|
54
|
-
- "docs/*"
|
|
55
|
-
- "chore/*"
|
|
56
|
-
- "refactor/*"
|
|
57
|
-
- "test/*"
|
|
58
|
-
|
|
59
|
-
production_targets:
|
|
60
|
-
- "hotfix/*"
|
|
61
|
-
|
|
62
|
-
# Detected branch names (may differ from defaults)
|
|
63
|
-
staging_branch: {{STAGING_BRANCH}}
|
|
64
|
-
production_branch: {{PRODUCTION_BRANCH}}
|
|
65
|
-
default_target: {{DEFAULT_TARGET}}
|
|
66
|
-
|
|
67
|
-
# Environment configuration (detected from existing deploy configs)
|
|
68
|
-
environments:
|
|
69
|
-
staging:
|
|
70
|
-
name: "{{STAGING_ENV_NAME}}"
|
|
71
|
-
branch: {{STAGING_BRANCH}}
|
|
72
|
-
auto_deploy: {{STAGING_AUTO_DEPLOY}}
|
|
73
|
-
platform: "{{DEPLOYMENT_PLATFORM}}"
|
|
74
|
-
url: "${STAGING_URL}"
|
|
75
|
-
promotion_message: "After validation, create PR to {{PRODUCTION_BRANCH}} for production"
|
|
76
|
-
|
|
77
|
-
production:
|
|
78
|
-
name: "{{PRODUCTION_ENV_NAME}}"
|
|
79
|
-
branch: {{PRODUCTION_BRANCH}}
|
|
80
|
-
auto_deploy: {{PRODUCTION_AUTO_DEPLOY}}
|
|
81
|
-
platform: "{{DEPLOYMENT_PLATFORM}}"
|
|
82
|
-
url: "${PRODUCTION_URL}"
|
|
83
|
-
promotion_message: "This is the final production deployment"
|
|
84
|
-
|
|
85
|
-
# Quality gates (detected from existing CI)
|
|
86
|
-
quality_gates:
|
|
87
|
-
lint: {{QUALITY_LINT}}
|
|
88
|
-
typecheck: {{QUALITY_TYPECHECK}}
|
|
89
|
-
tests: {{QUALITY_TESTS}}
|
|
90
|
-
security_scan: {{QUALITY_SECURITY}}
|
|
91
|
-
min_coverage: {{MIN_COVERAGE}}
|
|
92
|
-
|
|
93
|
-
# PR defaults
|
|
94
|
-
pr_defaults:
|
|
95
|
-
auto_assign_reviewers: {{AUTO_ASSIGN_REVIEWERS}}
|
|
96
|
-
draft_by_default: {{DRAFT_BY_DEFAULT}}
|
|
97
|
-
include_deployment_info: true
|
|
98
|
-
|
|
99
|
-
# =============================================================================
|
|
100
|
-
# EXISTING CONFIGURATION PRESERVATION
|
|
101
|
-
# References to existing config files that should be respected
|
|
102
|
-
# =============================================================================
|
|
103
|
-
existing_configs:
|
|
104
|
-
# Linting/Formatting (don't override these)
|
|
105
|
-
eslint: {{ESLINT_CONFIG_PATH}}
|
|
106
|
-
prettier: {{PRETTIER_CONFIG_PATH}}
|
|
107
|
-
tsconfig: {{TSCONFIG_PATH}}
|
|
108
|
-
flake8: {{FLAKE8_CONFIG_PATH}}
|
|
109
|
-
|
|
110
|
-
# CI/CD (may need merge)
|
|
111
|
-
github_workflows: {{GITHUB_WORKFLOWS_PATH}}
|
|
112
|
-
gitlab_ci: {{GITLAB_CI_PATH}}
|
|
113
|
-
|
|
114
|
-
# Package management
|
|
115
|
-
package_json: {{PACKAGE_JSON_PATH}}
|
|
116
|
-
requirements_txt: {{REQUIREMENTS_PATH}}
|
|
117
|
-
go_mod: {{GO_MOD_PATH}}
|
|
118
|
-
|
|
119
|
-
# =============================================================================
|
|
120
|
-
# AGENT CONFIGURATION
|
|
121
|
-
# =============================================================================
|
|
122
|
-
agents:
|
|
123
|
-
dev:
|
|
124
|
-
auto_load_context: true
|
|
125
|
-
story_tracking: true
|
|
126
|
-
respect_existing_standards: true
|
|
127
|
-
|
|
128
|
-
qa:
|
|
129
|
-
run_on_pr: true
|
|
130
|
-
coverage_threshold: {{MIN_COVERAGE}}
|
|
131
|
-
|
|
132
|
-
devops:
|
|
133
|
-
auto_detect_workflow: true
|
|
134
|
-
merge_with_existing: {{MERGE_WORKFLOWS}}
|
|
135
|
-
|
|
136
|
-
# =============================================================================
|
|
137
|
-
# FEATURES
|
|
138
|
-
# =============================================================================
|
|
139
|
-
features:
|
|
140
|
-
documentation_integrity: true
|
|
141
|
-
source_tree_guardian: true
|
|
142
|
-
quality_metrics: true
|
|
143
|
-
|
|
144
|
-
documentation_integrity_options:
|
|
145
|
-
generate_source_tree: true
|
|
146
|
-
generate_coding_standards: true
|
|
147
|
-
generate_tech_stack: true
|
|
148
|
-
brownfield_analysis: true
|
|
149
|
-
gitignore_generation: true
|
|
150
|
-
merge_gitignore: true # Merge with existing instead of replace
|
|
151
|
-
|
|
152
|
-
# =============================================================================
|
|
153
|
-
# MIGRATION NOTES
|
|
154
|
-
# Auto-generated notes from brownfield analysis
|
|
155
|
-
# =============================================================================
|
|
156
|
-
migration_notes:
|
|
157
|
-
# Summary of what was detected vs generated
|
|
158
|
-
summary: "{{MIGRATION_SUMMARY}}"
|
|
159
|
-
|
|
160
|
-
# Items requiring manual review
|
|
161
|
-
manual_review_items:
|
|
162
|
-
{{#each MANUAL_REVIEW_ITEMS}}
|
|
163
|
-
- "{{this}}"
|
|
164
|
-
{{/each}}
|
|
165
|
-
|
|
166
|
-
# Potential conflicts detected
|
|
167
|
-
conflicts:
|
|
168
|
-
{{#each CONFLICTS}}
|
|
169
|
-
- "{{this}}"
|
|
170
|
-
{{/each}}
|
|
171
|
-
|
|
172
|
-
# Recommendations
|
|
173
|
-
recommendations:
|
|
174
|
-
{{#each RECOMMENDATIONS}}
|
|
175
|
-
- "{{this}}"
|
|
176
|
-
{{/each}}
|
|
177
|
-
|
|
178
|
-
# =============================================================================
|
|
179
|
-
# CUSTOM CONFIGURATION
|
|
180
|
-
# Project-specific settings
|
|
181
|
-
# =============================================================================
|
|
182
|
-
custom: {}
|
|
@@ -1,127 +0,0 @@
|
|
|
1
|
-
# AIOS Core Configuration
|
|
2
|
-
# Generated by AIOS Documentation Integrity System
|
|
3
|
-
# Mode: Greenfield (New Project)
|
|
4
|
-
# Date: {{GENERATED_DATE}}
|
|
5
|
-
|
|
6
|
-
# =============================================================================
|
|
7
|
-
# PROJECT CONFIGURATION
|
|
8
|
-
# =============================================================================
|
|
9
|
-
project:
|
|
10
|
-
type: USER_PROJECT
|
|
11
|
-
mode: greenfield
|
|
12
|
-
name: "{{PROJECT_NAME}}"
|
|
13
|
-
created: "{{GENERATED_DATE}}"
|
|
14
|
-
version: "0.1.0"
|
|
15
|
-
|
|
16
|
-
# =============================================================================
|
|
17
|
-
# DEV CONTEXT LOADING
|
|
18
|
-
# Files loaded automatically when @dev agent activates
|
|
19
|
-
# =============================================================================
|
|
20
|
-
devLoadAlwaysFiles:
|
|
21
|
-
- docs/architecture/coding-standards.md
|
|
22
|
-
- docs/architecture/tech-stack.md
|
|
23
|
-
- docs/architecture/source-tree.md
|
|
24
|
-
|
|
25
|
-
# =============================================================================
|
|
26
|
-
# DEPLOYMENT CONFIGURATION
|
|
27
|
-
# All @devops agent tasks read from this section
|
|
28
|
-
# See docs/guides/DEPLOYMENT-GUIDE.md for details
|
|
29
|
-
# =============================================================================
|
|
30
|
-
deployment:
|
|
31
|
-
# Workflow type: staging-first (with staging branch) or direct-to-main
|
|
32
|
-
workflow: {{DEPLOYMENT_WORKFLOW}}
|
|
33
|
-
|
|
34
|
-
# Branch routing configuration
|
|
35
|
-
branches:
|
|
36
|
-
# These branch patterns will target staging (if staging-first workflow)
|
|
37
|
-
staging_targets:
|
|
38
|
-
- "feature/*"
|
|
39
|
-
- "fix/*"
|
|
40
|
-
- "docs/*"
|
|
41
|
-
- "chore/*"
|
|
42
|
-
- "refactor/*"
|
|
43
|
-
- "test/*"
|
|
44
|
-
|
|
45
|
-
# These branch patterns will target production directly (emergency fixes)
|
|
46
|
-
production_targets:
|
|
47
|
-
- "hotfix/*"
|
|
48
|
-
|
|
49
|
-
# Branch names
|
|
50
|
-
staging_branch: {{STAGING_BRANCH}}
|
|
51
|
-
production_branch: {{PRODUCTION_BRANCH}}
|
|
52
|
-
|
|
53
|
-
# Default PR target for ambiguous cases
|
|
54
|
-
default_target: {{DEFAULT_TARGET}}
|
|
55
|
-
|
|
56
|
-
# Environment configuration
|
|
57
|
-
environments:
|
|
58
|
-
staging:
|
|
59
|
-
name: "{{STAGING_ENV_NAME}}"
|
|
60
|
-
branch: {{STAGING_BRANCH}}
|
|
61
|
-
auto_deploy: true
|
|
62
|
-
platform: "{{DEPLOYMENT_PLATFORM}}"
|
|
63
|
-
url: "${STAGING_URL}"
|
|
64
|
-
promotion_message: "After validation, create PR to {{PRODUCTION_BRANCH}} for production"
|
|
65
|
-
|
|
66
|
-
production:
|
|
67
|
-
name: "{{PRODUCTION_ENV_NAME}}"
|
|
68
|
-
branch: {{PRODUCTION_BRANCH}}
|
|
69
|
-
auto_deploy: true
|
|
70
|
-
platform: "{{DEPLOYMENT_PLATFORM}}"
|
|
71
|
-
url: "${PRODUCTION_URL}"
|
|
72
|
-
promotion_message: "This is the final production deployment"
|
|
73
|
-
|
|
74
|
-
# Quality gates for PRs
|
|
75
|
-
quality_gates:
|
|
76
|
-
lint: {{QUALITY_LINT}}
|
|
77
|
-
typecheck: {{QUALITY_TYPECHECK}}
|
|
78
|
-
tests: {{QUALITY_TESTS}}
|
|
79
|
-
security_scan: {{QUALITY_SECURITY}}
|
|
80
|
-
min_coverage: {{MIN_COVERAGE}}
|
|
81
|
-
|
|
82
|
-
# PR defaults
|
|
83
|
-
pr_defaults:
|
|
84
|
-
auto_assign_reviewers: false
|
|
85
|
-
draft_by_default: false
|
|
86
|
-
include_deployment_info: true
|
|
87
|
-
labels:
|
|
88
|
-
staging: ["staging", "needs-review"]
|
|
89
|
-
production: ["production", "promotion"]
|
|
90
|
-
|
|
91
|
-
# =============================================================================
|
|
92
|
-
# AGENT CONFIGURATION
|
|
93
|
-
# Agent-specific settings
|
|
94
|
-
# =============================================================================
|
|
95
|
-
agents:
|
|
96
|
-
dev:
|
|
97
|
-
auto_load_context: true
|
|
98
|
-
story_tracking: true
|
|
99
|
-
|
|
100
|
-
qa:
|
|
101
|
-
run_on_pr: true
|
|
102
|
-
coverage_threshold: {{MIN_COVERAGE}}
|
|
103
|
-
|
|
104
|
-
devops:
|
|
105
|
-
auto_detect_workflow: true
|
|
106
|
-
|
|
107
|
-
# =============================================================================
|
|
108
|
-
# FEATURES
|
|
109
|
-
# Feature flags for optional functionality
|
|
110
|
-
# =============================================================================
|
|
111
|
-
features:
|
|
112
|
-
documentation_integrity: true
|
|
113
|
-
source_tree_guardian: true
|
|
114
|
-
quality_metrics: true
|
|
115
|
-
|
|
116
|
-
documentation_integrity_options:
|
|
117
|
-
generate_source_tree: true
|
|
118
|
-
generate_coding_standards: true
|
|
119
|
-
generate_tech_stack: true
|
|
120
|
-
brownfield_analysis: false
|
|
121
|
-
gitignore_generation: true
|
|
122
|
-
|
|
123
|
-
# =============================================================================
|
|
124
|
-
# CUSTOM CONFIGURATION
|
|
125
|
-
# Project-specific settings
|
|
126
|
-
# =============================================================================
|
|
127
|
-
custom: {}
|