--- name: config-validator description: Validate AIWG configuration files and project setup for correctness and completeness. Use when relevant to the task. --- # config-validator Validate AIWG configuration files and project setup for correctness and completeness. ## Triggers - "validate config" - "check configuration" - "verify setup" - "config issues" - "validate aiwg setup" - "check project setup" ## Purpose This skill ensures AIWG projects are properly configured by: - Validating YAML/JSON configuration syntax - Checking required fields and values - Verifying file references and paths - Detecting configuration conflicts - Recommending fixes for issues ## Behavior When triggered, this skill: 1. **Locates configuration files**: - Scan for AIWG config files - Identify framework configs - Find project-specific configs 2. **Validates syntax**: - Parse YAML/JSON files - Check for syntax errors - Validate structure against schema 3. **Checks completeness**: - Verify required fields present - Check for missing sections - Validate cross-references 4. **Verifies references**: - Check file paths exist - Validate agent references - Verify template paths 5. **Detects conflicts**: - Duplicate definitions - Conflicting settings - Incompatible options 6. **Generates report**: - List all issues found - Severity classification - Fix recommendations ## Configuration Files Validated ### AIWG Core Configs ```yaml aiwg_configs: project_config: path: .aiwg/config/project.yaml schema: schemas/project-config.schema.yaml required_fields: - project_name - project_type - phase team_profile: path: .aiwg/team/team-profile.yaml schema: schemas/team-profile.schema.yaml required_fields: - team_name - members risk_register: path: .aiwg/risks/risk-register.yaml schema: schemas/risk-register.schema.yaml required_fields: - risks artifact_config: path: .aiwg/config/artifacts.yaml schema: schemas/artifact-config.schema.yaml ``` ### Framework Configs ```yaml framework_configs: sdlc_complete: models: path: agentic/code/frameworks/sdlc-complete/config/models.json validates: - model_ids - model_tiers agents: path: agentic/code/frameworks/sdlc-complete/agents/*.md validates: - frontmatter_schema - required_sections media_marketing: brand: path: .aiwg/marketing/brand/*.yaml validates: - color_formats - typography_specs channel_specs: path: .aiwg/marketing/config/channel-specs.yaml validates: - platform_requirements ``` ### Voice Framework Configs ```yaml voice_configs: voice_profiles: path: .aiwg/voices/*.yaml schema: schemas/voice-profile.schema.yaml required_fields: - name - traits - formality banned_patterns: path: validation/banned-patterns.md validates: - pattern_syntax - category_structure ``` ## Validation Rules ### Syntax Validation ```yaml syntax_rules: yaml: - valid_yaml_syntax - proper_indentation - no_tabs_in_yaml - valid_anchors_references json: - valid_json_syntax - proper_escaping - no_trailing_commas markdown: - valid_frontmatter - proper_code_fences - valid_links ``` ### Schema Validation ```yaml schema_validation: project_config: project_name: type: string required: true min_length: 3 project_type: type: string required: true enum: [sdlc, marketing, hybrid] phase: type: string enum: [concept, inception, elaboration, construction, transition, production] created_at: type: date format: ISO8601 ``` ### Reference Validation ```yaml reference_rules: file_paths: - path_exists - correct_extension - within_project_root agent_refs: - agent_exists - agent_has_required_tools template_refs: - template_exists - template_has_placeholders ``` ## Validation Report Format ```markdown # Configuration Validation Report **Date**: 2025-12-08 **Scope**: Full Project Validation **Validator**: config-validator skill ## Summary | Category | Files | Issues | Status | |----------|-------|--------|--------| | AIWG Core | 5 | 2 | ⚠️ Warnings | | Framework | 8 | 0 | ✅ Pass | | Voice | 3 | 1 | ⚠️ Warning | | Custom | 2 | 1 | ❌ Error | | **Total** | **18** | **4** | **Review Needed** | ## Issues Found ### ❌ Error: Invalid Project Config **File**: `.aiwg/config/project.yaml` **Line**: 12 **Issue**: Missing required field `project_type` **Severity**: Error (blocking) **Current**: ```yaml project_name: "My Project" phase: inception ``` **Required**: ```yaml project_name: "My Project" project_type: sdlc # Required field phase: inception ``` **Fix**: Add `project_type` field with value: `sdlc`, `marketing`, or `hybrid` --- ### ⚠️ Warning: Invalid File Reference **File**: `.aiwg/config/artifacts.yaml` **Line**: 34 **Issue**: Referenced template does not exist **Severity**: Warning **Current**: ```yaml template: templates/custom/my-template.md ``` **Problem**: File `templates/custom/my-template.md` not found **Fix Options**: 1. Create the missing template file 2. Update reference to existing template 3. Remove the reference if not needed --- ### ⚠️ Warning: Deprecated Field **File**: `.aiwg/team/team-profile.yaml` **Line**: 8 **Issue**: Field `team_lead` is deprecated **Severity**: Warning **Current**: ```yaml team_lead: "Jane Smith" ``` **New Format**: ```yaml roles: - name: "Jane Smith" role: team_lead ``` --- ### ⚠️ Warning: Voice Profile Incomplete **File**: `.aiwg/voices/brand-voice.yaml` **Line**: 15 **Issue**: Missing recommended field `examples` **Severity**: Info **Recommendation**: Add examples section for better voice application: ```yaml examples: greeting: "Hi there! Let's get started." error: "Oops, something went wrong. Here's what to try..." ``` ## Validation Details ### AIWG Core Configs | File | Status | Issues | |------|--------|--------| | project.yaml | ❌ Error | Missing project_type | | team-profile.yaml | ⚠️ Warning | Deprecated field | | risk-register.yaml | ✅ Pass | - | | artifacts.yaml | ⚠️ Warning | Invalid reference | | phases.yaml | ✅ Pass | - | ### Framework Configs | File | Status | Issues | |------|--------|--------| | models.json | ✅ Pass | - | | channel-specs.yaml | ✅ Pass | - | | brand-colors.yaml | ✅ Pass | - | ### Voice Configs | File | Status | Issues | |------|--------|--------| | brand-voice.yaml | ⚠️ Info | Missing examples | | technical-voice.yaml | ✅ Pass | - | | casual-voice.yaml | ✅ Pass | - | ## Quick Fixes ### Automated Fixes Available These issues can be fixed automatically: | # | Issue | File | Fix Command | |---|-------|------|-------------| | 1 | Deprecated field migration | team-profile.yaml | `config-validator --fix` | | 2 | Add missing defaults | project.yaml | `config-validator --fix` | Run `config-validator --fix` to apply automated fixes. ### Manual Fixes Required These issues require manual intervention: 1. **project_type selection**: Choose appropriate value based on project 2. **Missing template**: Create or select correct template 3. **Voice examples**: Add custom examples matching your brand ## Recommendations 1. **Immediate**: Fix the error in `project.yaml` (blocking) 2. **Soon**: Update deprecated fields before next major version 3. **Recommended**: Add voice examples for better consistency ## Re-Validation After fixes, re-run validation: ``` "validate config" ``` Expected result: All checks passing ``` ## Usage Examples ### Full Validation ``` User: "Validate config" Skill executes: 1. Scan for all config files 2. Validate syntax and schema 3. Check references 4. Generate report Output: "Configuration Validation Complete Files Checked: 18 Errors: 1 (blocking) Warnings: 3 Critical Issue: ❌ project.yaml: Missing required field 'project_type' Warnings: ⚠️ team-profile.yaml: Deprecated field 'team_lead' ⚠️ artifacts.yaml: Template reference not found ⚠️ brand-voice.yaml: Missing recommended 'examples' Quick Fix Available: Run 'config-validator --fix' for automated fixes Report: .aiwg/reports/config-validation.md" ``` ### Specific File Validation ``` User: "Check team profile config" Skill validates single file: 1. Parse team-profile.yaml 2. Validate against schema 3. Check references Output: "Team Profile Validation File: .aiwg/team/team-profile.yaml Status: ⚠️ Warning Issues: 1. Deprecated field 'team_lead' on line 8 - Current: team_lead: "Jane Smith" - New format: roles: [{ name: "Jane Smith", role: team_lead }] All other fields valid." ``` ### Auto-Fix ``` User: "Fix config issues" Skill applies fixes: 1. Identify fixable issues 2. Apply transformations 3. Backup originals 4. Report changes Output: "Configuration Auto-Fix Applied Fixed: ✅ team-profile.yaml: Migrated deprecated field ✅ project.yaml: Added default project_type Backed up: - .aiwg/backup/team-profile.yaml.bak - .aiwg/backup/project.yaml.bak Manual fixes still needed: ⚠️ artifacts.yaml: Create missing template Re-validate to confirm." ``` ## Integration This skill uses: - `project-awareness`: Find config files - `artifact-metadata`: Track validation history ## Configuration ### Validation Strictness ```yaml strictness: development: errors: block warnings: report info: report staging: errors: block warnings: block info: report production: errors: block warnings: block info: block ``` ### Custom Schemas ```yaml custom_schemas: location: .aiwg/config/schemas/ format: json_schema_draft7 auto_discover: true ``` ## Output Locations - Validation reports: `.aiwg/reports/config-validation.md` - Fix backups: `.aiwg/backup/` - Schema cache: `.aiwg/cache/schemas/` ## References - Schema definitions: schemas/ - Config templates: templates/config/ - Migration guides: docs/config-migrations.md