| name | validate-codex-config |
| description | Validate afi-config codex and governance configuration for structural consistency, broken references, and schema alignment, without changing protocol semantics. This skill performs read-only validation and produces a human-readable report of issues found, without attempting automatic fixes. |
Skill: validate-codex-config (afi-config)
Purpose
Use this skill when you need to validate the structural integrity and consistency of afi-config's codex, governance artifacts, and schema definitions.
This skill ensures:
- Codex files are structurally valid (JSON/YAML syntax, required fields)
- File references are not broken (paths point to existing files)
- Schemas are valid (JSON Schema Draft 2020-12 compliance)
- Validation commands pass (
npm run validate,npm test) .afi-codex.jsonmetadata is accurate (reflects actual capabilities)
This skill is primarily used by config-keeper-droid and can be called when:
- We want to validate codex structure before making changes
- We want to catch broken references in governance docs
- We want to ensure schemas are valid before publishing
- We want to verify that validation tests pass
- We want to audit configuration drift or inconsistencies
Preconditions
Before using this skill, the droid must:
Read:
afi-config/AGENTS.md- AFI Droid Charter v0.1 (
afi-config/codex/governance/droids/AFI_DROID_CHARTER.v0.1.md) - AFI Droid Playbook v0.1 (
afi-config/codex/governance/droids/AFI_DROID_PLAYBOOK.v0.1.md)
Confirm:
- The request is about validation only, not modification
- You have access to
afi-configrepo - Node.js and npm are installed (
node --version,npm --version) - Dependencies are installed (
npm installif needed)
Understand afi-config structure:
- codex/ — Codex metadata and governance artifacts
- codex/governance/droids/ — AFI Droid Charter, Playbook, Glossary
- schemas/ — JSON Schema definitions for AFI Protocol
- templates/ — Configuration templates
- tests/ — Schema validation tests (Vitest)
- .afi-codex.json — Repo metadata (provides, consumers, entrypoints)
Understand validation commands:
npm run validate— Run schema validation testsnpm test— Run all tests (Vitest)npm run typecheck— Validate TypeScript typesnpm run build— Compile TypeScript
If any requirement is unclear or appears to violate AGENTS.md or Charter, STOP and ask for human clarification.
Inputs Expected
The caller should provide, in natural language or structured form:
- scope: Which files or directories to validate (default: full validation)
full— Validate all codex, schemas, and governance filescodex— Validate only codex filesschemas— Validate only schema filesgovernance— Validate only governance artifactsmetadata— Validate only.afi-codex.json
- checks: Which validation checks to run (default: all)
syntax— JSON/YAML syntax validationreferences— File reference validationschema-compliance— JSON Schema compliance validationtests— Run validation commands (npm run validate,npm test)all— Run all checks
Optional:
- filters: Specific files or patterns to validate (e.g.,
schemas/pipeline.schema.json) - report_format: Output format (
summary,detailed,json)
If no inputs are provided, use conservative defaults:
- scope:
full - checks:
all - report_format:
summary
Step-by-Step Instructions
When this skill is invoked, follow this sequence:
1. Restate the request
In your own words, summarize:
- Which files or directories will be validated
- Which validation checks will be run
- What the expected outcome is (validation report)
- Confirm this is read-only validation and won't modify files
This summary should be short and precise, so humans can quickly confirm the intent.
2. Enumerate files in scope
Navigate to afi-config/ and list files based on scope:
Full validation (default):
- Codex files:
find codex -type f \( -name "*.md" -o -name "*.json" -o -name "*.yaml" \) - Schema files:
find schemas -type f -name "*.json" - Governance files:
find codex/governance -type f -name "*.md" - Metadata:
.afi-codex.json
Codex only:
find codex -type f \( -name "*.md" -o -name "*.json" -o -name "*.yaml" \)
Schemas only:
find schemas -type f -name "*.json"
Governance only:
find codex/governance -type f -name "*.md"
Metadata only:
.afi-codex.json
Filtered:
- Use provided file patterns or paths
3. Run validation checks
Based on the checks input, run the following:
Check 1: JSON/YAML Syntax Validation
For each JSON file:
# Validate JSON syntax
node -e "JSON.parse(require('fs').readFileSync('path/to/file.json', 'utf8'))"
For each YAML file (if any):
# Validate YAML syntax (requires js-yaml or similar)
# Or use a simple parser check
Capture:
- Files with syntax errors
- Error messages and line numbers
Check 2: File Reference Validation
For each codex file and governance doc:
Extract file references:
- Look for markdown links:
[text](path/to/file.md) - Look for JSON/YAML path fields:
"path": "schemas/pipeline.schema.json" - Look for relative paths in documentation
- Look for markdown links:
Validate each reference:
- Check if file exists:
test -f path/to/file - If file doesn't exist, record as broken reference
- Check if file exists:
Capture:
- Broken file references (file path, source file, line number)
- Missing files
Check 3: JSON Schema Compliance Validation
For each schema file in schemas/:
Parse as JSON (already done in Check 1)
Validate against JSON Schema meta-schema:
- Check that
$schemafield is present - Validate against Draft 2020-12 meta-schema (if tooling available)
- Check for required fields:
type,properties, etc.
- Check that
Check schema structure:
- Ensure
$idis present and unique - Validate that
$refreferences are resolvable - Check for circular references
- Ensure
Capture:
- Invalid schemas (file path, error message)
- Missing required fields
- Unresolvable references
Check 4: Run Validation Commands
Execute validation commands defined in package.json:
npm run validate:
cd afi-config
npm run validate
Capture:
- Exit code (0 = pass, non-zero = fail)
- stdout and stderr output
- Number of tests passed/failed
npm test:
cd afi-config
npm test
Capture:
- Exit code (0 = pass, non-zero = fail)
- Test results (passed/failed/total)
- Error messages for failed tests
npm run typecheck (optional):
cd afi-config
npm run typecheck
Capture:
- Exit code (0 = pass, non-zero = fail)
- TypeScript errors (if any)
4. Validate .afi-codex.json metadata
Read .afi-codex.json and validate:
Required fields:
codexVersion(should be "2.0.0")module.name(should be "afi-config")module.role(should be "config-schema-library")provides(array of capabilities)consumers(array of consuming repos)entrypoints(array of entry points)
Consistency checks:
- provides: Check that each capability corresponds to actual files
configSchemas→schemas/directory existsdroidCharter→codex/governance/droids/AFI_DROID_CHARTER.v0.1.mdexists
- entrypoints: Check that each path exists
schemas/→ directory existstemplates/→ directory existscodex/→ directory exists
- consumers: Check that each repo is a valid AFI repo name
- Valid:
afi-core,afi-reactor,afi-skills,afi-ops,afi-token, etc.
- Valid:
- provides: Check that each capability corresponds to actual files
Capture:
- Missing required fields
- Inconsistencies between metadata and actual files
- Invalid consumer names
5. Collect findings
Organize findings by severity:
ERRORS (must fix):
- JSON/YAML syntax errors
- Broken file references in critical paths
- Invalid schemas (fail JSON Schema meta-schema validation)
- Failed validation commands (
npm run validate,npm test) - Missing required fields in
.afi-codex.json
WARNINGS (should fix):
- Broken file references in documentation
- Missing optional fields in schemas
- Inconsistencies in
.afi-codex.jsonmetadata - TypeScript type errors (if not critical)
INFO (nice to have):
- Formatting inconsistencies
- Typos in comments
- Outdated documentation
6. Produce validation report
Generate a concise, human-readable report:
Summary format (default):
## Codex Validation Report
**Scope**: Full validation (codex/, schemas/, governance/, metadata)
**Timestamp**: 2025-11-28 14:30:00 UTC
**Files Scanned**:
- Codex files: 4 (codex/governance/droids/*.md, codex/governance/README.md)
- Schema files: 7 (schemas/*.json, schemas/usignal/v1/*.json)
- Governance files: 3 (codex/governance/droids/*.md)
- Metadata: 1 (.afi-codex.json)
**Validation Results**:
- ✅ JSON/YAML syntax: PASS (12/12 files valid)
- ✅ File references: PASS (0 broken references)
- ✅ Schema compliance: PASS (7/7 schemas valid)
- ✅ `npm run validate`: PASS (20/20 tests)
- ✅ `npm test`: PASS (20/20 tests)
- ✅ `.afi-codex.json`: PASS (all required fields present)
**Issues Found**: None
**Overall Status**: ✅ CLEAN
Detailed format (if requested):
Include full list of files scanned, detailed error messages, and suggested fixes.
JSON format (if requested):
{
"timestamp": "2025-11-28T14:30:00Z",
"scope": "full",
"files_scanned": {
"codex": 4,
"schemas": 7,
"governance": 3,
"metadata": 1
},
"checks": {
"syntax": { "status": "PASS", "errors": [] },
"references": { "status": "PASS", "errors": [] },
"schema_compliance": { "status": "PASS", "errors": [] },
"validation_commands": { "status": "PASS", "errors": [] },
"metadata": { "status": "PASS", "errors": [] }
},
"overall_status": "CLEAN"
}
7. Escalate if needed
If validation reveals critical issues, escalate:
Schema breaking changes:
- Tag @afi-core-team for cross-repo coordination
- Explain which schemas are affected and which repos consume them
Governance inconsistencies:
- Tag @afi-governance-team for review
- Explain which governance artifacts are affected
Systemic validation failures:
- Tag @afi-core-team for architecture review
- Provide full validation output and error messages
Unclear requirements:
- Ask for clarification on validation scope or expected behavior
Hard Boundaries
When using this skill, you MUST NOT:
Modify any files:
- Do NOT fix syntax errors automatically
- Do NOT update file references
- Do NOT change schema definitions
- Do NOT modify
.afi-codex.json - This skill is read-only validation only
Modify governance artifacts:
- Do NOT change AFI Droid Charter v0.1
- Do NOT change AFI Droid Playbook v0.1
- Do NOT modify governance rules or policies
Change protocol semantics:
- Do NOT modify schema field types or semantics
- Do NOT remove schema fields
- Do NOT change validation logic
Touch other repos:
- Do NOT validate or modify files in afi-core, afi-reactor, afi-skills, afi-ops, afi-token, etc.
- Do NOT run validation commands in other repos
If a request forces you towards any of the above, STOP and escalate.
Output / Summary Format
At the end of a successful validate-codex-config operation, produce a summary that includes:
Validation Scope:
- Which files or directories were validated
- Which validation checks were run
Files Scanned:
- Number of codex files
- Number of schema files
- Number of governance files
- Number of metadata files
Validation Results:
- JSON/YAML syntax: PASS/FAIL (number of files with errors)
- File references: PASS/FAIL (number of broken references)
- Schema compliance: PASS/FAIL (number of invalid schemas)
- Validation commands: PASS/FAIL (test results)
- Metadata: PASS/FAIL (consistency check results)
Issues Found:
- List of errors (critical issues)
- List of warnings (should fix)
- List of info items (nice to have)
Overall Status:
- ✅ CLEAN — No issues found
- ⚠️ WARNINGS — Some warnings, no errors
- ❌ ERRORS — Critical issues found
Next Steps:
- Action items (e.g., "Fix broken reference in codex/governance/README.md")
- Escalation recommendations (if needed)
Example Usage Patterns
Example A: Full Validation
Request:
"Validate the entire afi-config codex to make sure there are no broken references or invalid schemas."
Inputs:
- scope:
full - checks:
all - report_format:
summary
Implementation:
- Restate: "Running full validation on all codex, schemas, and governance files."
- Enumerate files:
- Codex: 4 files
- Schemas: 7 files
- Governance: 3 files
- Metadata: 1 file
- Run checks:
- JSON syntax: Parse all JSON files → All valid
- File references: Check all markdown links → No broken references
- Schema compliance: Validate all schemas → All valid
- Validation commands: Run
npm run validateandnpm test→ All pass - Metadata: Validate
.afi-codex.json→ All required fields present
- Collect findings: No errors, no warnings
- Produce report:
## Codex Validation Report
**Scope**: Full validation (codex/, schemas/, governance/, metadata)
**Files Scanned**: 15 total
- Codex files: 4
- Schema files: 7
- Governance files: 3
- Metadata: 1
**Validation Results**:
- ✅ JSON/YAML syntax: PASS (15/15 files valid)
- ✅ File references: PASS (0 broken references)
- ✅ Schema compliance: PASS (7/7 schemas valid)
- ✅ `npm run validate`: PASS (20/20 tests)
- ✅ `npm test`: PASS (20/20 tests)
- ✅ `.afi-codex.json`: PASS (all required fields present)
**Issues Found**: None
**Overall Status**: ✅ CLEAN
**Next Steps**: No action required. All validation checks passed.
Example B: Schema-Only Validation
Request:
"Check that all schemas in
schemas/are valid JSON Schema Draft 2020-12."
Inputs:
- scope:
schemas - checks:
schema-compliance - report_format:
summary
Implementation:
- Restate: "Validating all schema files in
schemas/for JSON Schema Draft 2020-12 compliance." - Enumerate files:
- Schemas: 7 files (blueprint.schema.json, character.schema.json, pipeline.schema.json, etc.)
- Run checks:
- Schema compliance: Validate each schema against meta-schema → All valid
- Collect findings: No errors
- Produce report:
## Schema Validation Report
**Scope**: Schema validation only (schemas/)
**Files Scanned**: 7 schemas
- blueprint.schema.json
- character.schema.json
- pipeline.schema.json
- plugin-manifest.schema.json
- repo-metadata.schema.json
- vault.schema.json
- usignal/v1/*.json
**Validation Results**:
- ✅ Schema compliance: PASS (7/7 schemas valid JSON Schema Draft 2020-12)
**Issues Found**: None
**Overall Status**: ✅ CLEAN
**Next Steps**: No action required. All schemas are valid.
Example C: Validation with Errors
Request:
"Validate codex and report any broken file references."
Inputs:
- scope:
codex - checks:
references - report_format:
detailed
Implementation:
- Restate: "Validating codex files for broken file references."
- Enumerate files:
- Codex: 4 files
- Run checks:
- File references: Check all markdown links
- Found broken reference in
codex/governance/README.mdline 15:[Charter](droids/AFI_DROID_CHARTER.v0.2.md)→ File does not exist
- Found broken reference in
- File references: Check all markdown links
- Collect findings:
- ERRORS: 1 broken reference
- Produce report:
## Codex Validation Report
**Scope**: Codex validation (codex/)
**Files Scanned**: 4 codex files
**Validation Results**:
- ❌ File references: FAIL (1 broken reference)
**Issues Found**:
### ERRORS (1)
1. **Broken file reference** in `codex/governance/README.md` (line 15):
- Reference: `[Charter](droids/AFI_DROID_CHARTER.v0.2.md)`
- Expected file: `codex/governance/droids/AFI_DROID_CHARTER.v0.2.md`
- Status: File does not exist
- **Suggested fix**: Change to `[Charter](droids/AFI_DROID_CHARTER.v0.1.md)` (actual file)
**Overall Status**: ❌ ERRORS
**Next Steps**:
1. Fix broken reference in `codex/governance/README.md` line 15
2. Re-run validation to confirm fix
- Escalate: "Found broken reference in governance README. Please review and fix."
Notes for Humans
When to Use This Skill
Use this skill when:
- Before making changes to codex or schemas (validate current state)
- After making changes to codex or schemas (validate new state)
- Before publishing schemas or governance artifacts (ensure validity)
- Periodic audits to catch drift or inconsistencies
- CI/CD integration to validate on every commit
Expected Outcomes
- Validation report: Clear summary of validation results
- Issue list: Errors, warnings, and info items (if any)
- No modifications: This skill is read-only and does not fix issues
- Escalation: Critical issues are escalated to appropriate teams
Limitations
This skill is read-only validation only:
- Does NOT fix syntax errors (escalate to human or config-keeper-droid)
- Does NOT update file references (escalate to human)
- Does NOT modify schemas (escalate to human for schema changes)
- Does NOT change governance artifacts (escalate to @afi-governance-team)
Integration with CI/CD
This skill can be integrated into CI/CD pipelines:
# .github/workflows/validate-config.yml
name: Validate Config
on: [push, pull_request]
jobs:
validate:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: '20'
- run: npm install
- run: npm run validate
- run: npm test
Last Updated: 2025-11-28
Maintainers: AFI Core Team
Charter: afi-config/codex/governance/droids/AFI_DROID_CHARTER.v0.1.md
Workflow: afi-config/AGENTS.md
Consumers: afi-core, afi-reactor, afi-skills, afi-ops, afi-token, afi-infra, afi-plugins