Files
Dragan Spiridonov 99511738c1 feat(v3.4.2): add skill validation system with trust tiers (ADR-056) (#221)
* fix(v3.4.1): bundle missing dependencies and test timeouts

- Fixed issue #219: MCP bundle failing due to missing packages
- Changed build scripts from --packages=external to selective externalization
- Pure JS deps (fast-json-patch, jose, uuid) now bundled inline
- Native modules properly externalized (better-sqlite3, hnswlib-node, etc.)
- CommonJS modules with dynamic requires externalized (typescript, fast-glob, yaml, commander, cli-progress, ora)
- Bundle size reduced from ~15MB to ~5MB
- Added timeouts to handleQualityAssess tests to prevent CI failures
- Updated version to 3.4.1

Closes #219

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* feat(v3.4.2): add skill validation system with trust tiers (ADR-056)

Implement 4-layer skill validation system for deterministic outputs:
- Tier 3 (Verified): 46 skills with full eval test suites
- Tier 2 (Validated): 7 skills with executable validators
- Tier 1 (Structured): 5 skills with JSON output schemas
- Tier 0 (Advisory): 5 skills with SKILL.md guidance only

Key additions:
- JSON Schema validation templates for skill outputs
- Executable validator scripts for correctness verification
- Evaluation test framework with multi-model support
- CLI commands: aqe skill report/summary/compare, aqe eval run/status
- ReasoningBank integration for validation pattern learning
- GitHub Actions workflow for CI skill validation
- Trust tier frontmatter in all 63 skill SKILL.md files
- Comprehensive documentation and user guides

Infrastructure:
- .claude/skills/.validation/ - Templates and frameworks
- .claude/skills/*/schemas/ - Output schemas per skill
- .claude/skills/*/scripts/ - Validator scripts per skill
- .claude/skills/*/evals/ - Test cases per skill

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* fix(ci): trust tier-based skill validation

- Tier 3 (Verified): Blocks PR on validation failure
- Tier 2 (Validated): Warns only, doesn't block
- Tier 1 (Structured): Warns only, doesn't block
- Tier 0 (Advisory): Skipped entirely

Reads trust_tier from SKILL.md frontmatter to determine
validation requirements. Only 46 Tier 3 skills block merge.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* fix(validators): remove local keyword from self-test blocks

Shell script fix: 'local' can only be used inside functions, not in
if/else blocks. Both accessibility-testing and compatibility-testing
validators had 'local' declarations in their self-test sections that
caused errors when run outside of a function context.

- Remove local test_file from accessibility-testing self-test
- Remove local test_file, browser_count, tier1_pass from compatibility-testing self-test
- Sync fixes to v3/assets/skills/

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* fix(validators): add --self-test support to n8n skill validators

The 5 n8n skill validators were failing CI because they didn't handle
the --self-test flag properly. Added self-test handling that:
- Checks for required tools (jq)
- Verifies schema file exists and is valid JSON
- Returns exit 0 on success

Fixed validators:
- n8n-expression-testing
- n8n-integration-testing-patterns
- n8n-security-testing
- n8n-trigger-testing-strategies
- n8n-workflow-testing-fundamentals

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-02 12:51:51 +01:00

74 lines
2.1 KiB
JSON

{
"$schema": "https://agentic-qe.dev/schemas/skill-output-template.json",
"skillName": "sample-skill",
"version": "1.0.0",
"timestamp": "2026-02-02T12:00:00Z",
"status": "success",
"trustTier": 2,
"output": {
"summary": "Sample skill execution completed successfully. This is a demonstration output for validator self-testing.",
"findings": [
{
"id": "FINDING-001",
"title": "Sample Finding",
"description": "This is a sample finding to demonstrate the output structure. In a real skill, this would contain actual analysis results.",
"severity": "medium",
"category": "demonstration",
"location": {
"file": "src/example.ts",
"line": 42
},
"evidence": "Example code snippet showing the issue"
},
{
"id": "FINDING-002",
"title": "Another Sample Finding",
"description": "A second sample finding showing multiple findings can exist.",
"severity": "low",
"category": "demonstration"
}
],
"recommendations": [
{
"id": "REC-001",
"title": "Implement Best Practice",
"description": "Consider implementing this best practice to improve code quality.",
"priority": "medium",
"effort": "low",
"relatedFindings": ["FINDING-001"]
}
],
"metrics": {
"totalIssues": 2,
"criticalCount": 0,
"highCount": 0,
"mediumCount": 1,
"lowCount": 1,
"score": 85.5,
"passRate": 0.95
},
"artifacts": [
{
"type": "report",
"path": "reports/sample-report.html",
"format": "html",
"description": "Detailed HTML report with findings"
}
]
},
"metadata": {
"executionTimeMs": 1250,
"toolsUsed": ["eslint", "typescript", "custom-analyzer"],
"agentId": "qe-test-architect",
"modelUsed": "claude-sonnet-4",
"inputHash": "sha256:abc123def456",
"parentTaskId": "task-789"
},
"validation": {
"schemaValid": true,
"contentValid": true,
"confidence": 0.95,
"warnings": []
}
}