5.9 KiB
| name | description | version | module |
|---|---|---|---|
| validate-agent-workflow | Workflow de validation des profils d'agents BYAN v2 | 2.0.0 | byan |
BYAN v2 Agent Validation Workflow
Vue d'ensemble
Ce workflow valide les profils d'agents créés par BYAN v2 contre les exigences du GitHub Copilot CLI SDK et les standards BYAN.
Durée: < 5 secondes
Mode: Automatique
Résultat: Pass/Fail avec rapport détaillé
Workflow Steps
Step 1: Load Agent Profile
Action: Charger le fichier markdown de l'agent
const fs = require('fs');
const profileContent = fs.readFileSync(agentPath, 'utf-8');
Validation:
- Fichier existe
- Extension .md
- Contenu non vide
Step 2: Parse Frontmatter
Action: Extraire et valider le YAML frontmatter
const matter = require('gray-matter');
const { data, content } = matter(profileContent);
Champs requis:
name(string, lowercase-with-dashes)description(string, < 200 chars)version(semantic versioning)
Champs optionnels:
icontagsdependencies
Step 3: Validate Agent Structure
Worker: generation/agent-profile-validator.js
Checks:
-
YAML Frontmatter
- Présent en début de fichier
- Format valide
- Champs obligatoires présents
-
Agent Definition
- Présence section persona
- Présence section capabilities
- Présence section knowledge base
-
Markdown Syntax
- Liens valides
- Code blocks bien formés
- Headers hiérarchie correcte
Step 4: SDK Compliance Check
Référence: GitHub Copilot CLI SDK requirements
Validations:
-
Profile Format
name: agent-name # lowercase-with-dashes description: "Brief description" version: "1.0.0" -
Agent Instructions
- Section
<agent_instructions>présente - Contenu structuré
- Activation steps définis
- Section
-
Capabilities
- Au moins 1 capability définie
- Format structured (liste ou table)
-
No Emoji Pollution (Mantra IA-23)
- Zero emojis dans code technique
- Zero emojis dans metadata
- Emojis autorisés uniquement dans docs utilisateur
Step 5: Generate Validation Report
Output: JSON report
{
"valid": true,
"profile": "agent-name",
"version": "1.0.0",
"timestamp": "2026-02-07T12:00:00Z",
"checks": {
"frontmatter": { "passed": true },
"structure": { "passed": true },
"sdkCompliance": { "passed": true },
"emojiPollution": { "passed": true, "violations": [] }
},
"warnings": [],
"errors": []
}
Validation Rules
Rule 1: Name Format
Regex: ^[a-z][a-z0-9-]*[a-z0-9]$
Valid:
code-review-assistanttest-generatordoc-writer-pro
Invalid:
CodeReview(uppercase)code_review(underscore)-code-review(starts with dash)
Rule 2: Description Length
Max: 200 characters
Min: 20 characters
Rationale: CLI display constraints
Rule 3: Version Format
Format: Semantic versioning (X.Y.Z)
Examples:
1.0.0✅2.1.3✅1.0❌v1.0.0❌
Rule 4: Emoji Zero Tolerance
Scope: Code, YAML, technical sections
Allowed: User-facing documentation only
Enforcement:
const emojiRegex = /[\u{1F600}-\u{1F64F}]/gu;
if (emojiRegex.test(yamlContent)) {
errors.push('Emoji pollution detected (Mantra IA-23)');
}
Integration
Programmatic Usage
const AgentProfileValidator = require('./src/byan-v2/generation/agent-profile-validator');
const validator = new AgentProfileValidator();
const result = await validator.validateProfile(agentPath);
if (result.valid) {
console.log('✅ Agent profile valid');
} else {
console.error('❌ Validation failed:', result.errors);
}
CLI Usage
# Validate single agent
byan-v2 validate agent.md
# Validate all agents in directory
byan-v2 validate .github/copilot/agents/*.md
# Output JSON report
byan-v2 validate agent.md --format=json
CI/CD Integration
# GitHub Actions
- name: Validate BYAN Agents
run: |
npm install
npm run validate:agents
Error Handling
Invalid Frontmatter
Error:
YAML frontmatter missing or invalid
Expected format:
---
name: agent-name
description: "Description"
version: "1.0.0"
---
Action: Fix frontmatter syntax
Missing Required Fields
Error:
Missing required field: 'description'
Action: Add missing field to frontmatter
Emoji Detected
Error:
Emoji pollution detected (Mantra IA-23)
Found: 🚀 at line 42
Emojis not allowed in technical sections
Action: Remove all emojis from code/YAML
Testing
Unit Tests
File: __tests__/byan-v2/generation/agent-profile-validator.test.js
Coverage:
- ✅ Valid profile passes all checks
- ✅ Invalid YAML frontmatter detected
- ✅ Missing required fields detected
- ✅ Emoji pollution detected
- ✅ Name format validation
- ✅ Description length validation
- ✅ Version format validation
Integration Tests
Scenarios:
- Validate demo agent (demo-byan-v2-simple.js output)
- Validate all BYAN agents in _byan/agents/
- Detect invalid agents (negative tests)
Configuration
File: _byan/config.yaml
validation:
strict_mode: true
emoji_tolerance: zero
min_description_length: 20
max_description_length: 200
allow_beta_versions: true
Metrics
Validation Time
- Average: < 100ms per agent
- Max: < 500ms (complex agents)
Success Rate
- Current: 100% (all generated agents pass)
- Target: 100% maintained
References
- GitHub Copilot CLI SDK: https://github.com/github/copilot-sdk
- Semantic Versioning: https://semver.org/
- YAML Spec: https://yaml.org/spec/
- Mantra IA-23: Zero Emoji Pollution in technical artifacts
Status: ✅ OPERATIONAL
Version: 2.0.0
Last Updated: 2026-02-07