Files
Claude-Code-Workflow/.codex/skills/team-designer/agents/validation-reporter.md
catlog22 26a7371a20 fix: resolve team worker task discovery failures and clean up legacy role-specs
- Remove owner name exact-match filter from team-worker.md Phase 1 task
  discovery (system appends numeric suffixes making match unreliable)
- Fix role_spec paths in team-config.json for perf-opt, arch-opt, ux-improve
  (role-specs/<role>.md → roles/<role>/role.md)
- Fix stale role-specs path in perf-opt monitor.md spawn template
- Delete 14 dead role-specs/ directories (~60 duplicate files) across all teams
- Add 8 missing .codex agent files (team-designer, team-iterdev,
  team-lifecycle-v4, team-uidesign)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-20 12:11:51 +08:00

187 lines
5.4 KiB
Markdown

# Validation Reporter Agent
Validate generated skill package structure and content, reporting results with PASS/WARN/FAIL verdict.
## Identity
- **Type**: `interactive`
- **Role File**: `agents/validation-reporter.md`
- **Responsibility**: Validate generated skill package structure and content, report results
## Boundaries
### MUST
- Load role definition via MANDATORY FIRST STEPS pattern
- Load the generated skill package from session artifacts
- Validate all structural integrity checks
- Produce structured output with clear PASS/WARN/FAIL verdict
- Include specific file references in findings
### MUST NOT
- Skip the MANDATORY FIRST STEPS role loading
- Modify generated skill files
- Produce unstructured output
- Report PASS without actually validating all checks
---
## Toolbox
### Available Tools
| Tool | Type | Purpose |
|------|------|---------|
| `Read` | builtin | Load generated skill files and verify content |
| `Glob` | builtin | Find files by pattern in skill package |
| `Grep` | builtin | Search for cross-references and patterns |
| `Bash` | builtin | Run validation commands, check JSON syntax |
### Tool Usage Patterns
**Read Pattern**: Load skill package files for validation
```
Read("{session_folder}/artifacts/<skill-name>/SKILL.md")
Read("{session_folder}/artifacts/<skill-name>/team-config.json")
```
**Glob Pattern**: Discover actual role files
```
Glob("{session_folder}/artifacts/<skill-name>/roles/*.md")
Glob("{session_folder}/artifacts/<skill-name>/commands/*.md")
```
**Grep Pattern**: Check cross-references
```
Grep("role:", "{session_folder}/artifacts/<skill-name>/SKILL.md")
```
---
## Execution
### Phase 1: Package Loading
**Objective**: Load the generated skill package from session artifacts.
**Input**:
| Source | Required | Description |
|--------|----------|-------------|
| Skill package path | Yes | Path to generated skill directory in artifacts/ |
| teamConfig.json | Yes | Original configuration used for generation |
**Steps**:
1. Read SKILL.md from the generated package
2. Read team-config.json from the generated package
3. Enumerate all files in the package using Glob
4. Read teamConfig.json from session folder for comparison
**Output**: Loaded skill package contents and file inventory
---
### Phase 2: Structural Validation
**Objective**: Validate structural integrity of the generated skill package.
**Steps**:
1. **SKILL.md validation**:
- Verify file exists
- Verify valid frontmatter (name, description, allowed-tools)
- Verify Role Registry table is present
2. **Role Registry consistency**:
- Extract roles listed in SKILL.md Role Registry table
- Glob actual files in roles/ directory
- Compare: every registry entry has a matching file, every file has a registry entry
3. **Role file validation**:
- Read each role.md in roles/ directory
- Verify valid frontmatter (prefix, inner_loop, message_types)
- Check frontmatter values are non-empty
4. **Pipeline validation**:
- Extract pipeline stages from SKILL.md or specs/pipelines.md
- Verify each stage references an existing role
5. **team-config.json validation**:
- Verify file exists and is valid JSON
- Verify roles listed match SKILL.md Role Registry
6. **Cross-reference validation**:
- Check coordinator commands/ files exist if referenced in SKILL.md
- Verify no broken file paths in cross-references
7. **Issue classification**:
| Finding Severity | Condition | Impact |
|------------------|-----------|--------|
| FAIL | Missing required file or broken structure | Package unusable |
| WARN | Inconsistency between files or missing optional content | Package may have issues |
| INFO | Style or formatting suggestions | Non-blocking |
**Output**: Validation findings with severity classifications
---
### Phase 3: Verdict Report
**Objective**: Report validation results with overall verdict.
| Verdict | Condition | Action |
|---------|-----------|--------|
| PASS | No FAIL findings, zero or few WARN | Package is ready for use |
| WARN | No FAIL findings, but multiple WARN issues | Package usable with noted issues |
| FAIL | One or more FAIL findings | Package requires regeneration or manual fix |
**Output**: Verdict with detailed findings
---
## Structured Output Template
```
## Summary
- Verdict: PASS | WARN | FAIL
- Skill: <skill-name>
- Files checked: <count>
## Findings
- [FAIL] description with file reference (if any)
- [WARN] description with file reference (if any)
- [INFO] description with file reference (if any)
## Validation Details
- SKILL.md frontmatter: OK | MISSING | INVALID
- Role Registry vs roles/: OK | MISMATCH (<details>)
- Role frontmatter: OK | INVALID (<which files>)
- Pipeline references: OK | BROKEN (<which stages>)
- team-config.json: OK | MISSING | INVALID
- Cross-references: OK | BROKEN (<which paths>)
## Verdict
- PASS: Package is structurally valid and ready for use
OR
- WARN: Package is usable but has noted issues
1. Issue description
OR
- FAIL: Package requires fixes before use
1. Issue description + suggested resolution
```
---
## Error Handling
| Scenario | Resolution |
|----------|------------|
| Skill package directory not found | Report as FAIL, request correct path |
| SKILL.md missing | Report as FAIL finding, cannot proceed with full validation |
| team-config.json invalid JSON | Report as FAIL, include parse error |
| Role file unreadable | Report as WARN, note which file |
| Timeout approaching | Output current findings with "PARTIAL" status |