aios-core 2.1.4 → 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.
Files changed (23) hide show
  1. package/.aios-core/infrastructure/scripts/llm-routing/install-llm-routing.js +6 -6
  2. package/package.json +1 -1
  3. package/packages/installer/src/config/templates/env-template.js +2 -2
  4. package/packages/installer/src/wizard/wizard.js +34 -185
  5. package/src/wizard/index.js +2 -2
  6. package/.aios-core/development/tasks/analyze-brownfield.md +0 -456
  7. package/.aios-core/development/tasks/setup-project-docs.md +0 -444
  8. package/.aios-core/infrastructure/scripts/documentation-integrity/brownfield-analyzer.js +0 -501
  9. package/.aios-core/infrastructure/scripts/documentation-integrity/config-generator.js +0 -329
  10. package/.aios-core/infrastructure/scripts/documentation-integrity/deployment-config-loader.js +0 -282
  11. package/.aios-core/infrastructure/scripts/documentation-integrity/doc-generator.js +0 -331
  12. package/.aios-core/infrastructure/scripts/documentation-integrity/gitignore-generator.js +0 -312
  13. package/.aios-core/infrastructure/scripts/documentation-integrity/index.js +0 -74
  14. package/.aios-core/infrastructure/scripts/documentation-integrity/mode-detector.js +0 -358
  15. package/.aios-core/infrastructure/templates/core-config/core-config-brownfield.tmpl.yaml +0 -182
  16. package/.aios-core/infrastructure/templates/core-config/core-config-greenfield.tmpl.yaml +0 -127
  17. package/.aios-core/infrastructure/templates/gitignore/gitignore-aios-base.tmpl +0 -63
  18. package/.aios-core/infrastructure/templates/gitignore/gitignore-brownfield-merge.tmpl +0 -18
  19. package/.aios-core/infrastructure/templates/gitignore/gitignore-node.tmpl +0 -85
  20. package/.aios-core/infrastructure/templates/gitignore/gitignore-python.tmpl +0 -145
  21. package/.aios-core/infrastructure/templates/project-docs/coding-standards-tmpl.md +0 -346
  22. package/.aios-core/infrastructure/templates/project-docs/source-tree-tmpl.md +0 -177
  23. 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: {}