Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Step-by-step validation workflow for checker agents - initialize report, discover content, validate progressively, finalize with summary. Use when implementing or updating checker agents.
.claude/skills/majiayu000-wow-executing-checker-workflow/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-04 | ✗→✓ | ▲ Improved | 155% | 0% |
| case-08 | ✗→✓ | ▲ Improved | 102% | 0% |
| case-10 | ✗→✓ | ▲ Improved | 115% | 0% |
| case-11 | ✗→✓ | ▲ Improved | 142% | 0% |
| case-16 | ✗→✓ | ▲ Improved | 75% | 0% |
Common workflow pattern for all checker agents in the maker-checker-fixer three-stage quality pipeline.
This Skill auto-loads for checker agents that need standardized workflow for validating content and generating audit reports.
Checker agents follow a consistent 5-step workflow:
Step 0: Initialize Report
↓
Step 1-N: Validate Content (domain-specific)
↓
Final Step: Finalize ReportCRITICAL FIRST STEP - Execute before any validation begins:
See wow-generating-validation-reports Skill for complete UUID chain generation and report initialization.
Quick Implementation:
bash# 1. Generate 6-char UUID MY_UUID=$(uuidgen | tr '[:upper:]' '[:lower:]' | head -c 6) # 2. Determine UUID chain (scope-based) SCOPE="${EXECUTION_SCOPE:-agent-family}" CHAIN_FILE="generated-reports/.execution-chain-${SCOPE}" if [ -f "$CHAIN_FILE" ]; then read PARENT_TIME PARENT_CHAIN < "$CHAIN_FILE" CURRENT_TIME=$(date +%s) TIME_DIFF=$((CURRENT_TIME - PARENT_TIME)) if [ $TIME_DIFF -lt 300 ]; then UUID_CHAIN="${PARENT_CHAIN}_${MY_UUID}" else UUID_CHAIN="$MY_UUID" fi else UUID_CHAIN="$MY_UUID" fi echo "$(date +%s) $UUID_CHAIN" > "$CHAIN_FILE" # 3. Generate UTC+7 timestamp TIMESTAMP=$(TZ='Asia/Jakarta' date +"%Y-%m-%d--%H-%M") # 4. Create report filename REPORT_FILE="generated-reports/${AGENT_FAMILY}__${UUID_CHAIN}__${TIMESTAMP}__audit.md" # 5. Initialize report with header cat > "$REPORT_FILE" << 'HEADER' # Validation Report: {Agent Name} **Status**: In Progress **Agent**: {agent-name} **Scope**: {scope-description} **Timestamp**: {YYYY-MM-DD--HH-MM UTC+7} **UUID Chain**: {uuid-chain} --- ## Findings [Findings will be written progressively during validation] HEADER
Why Initialize Early?
Pattern: Each checker has domain-specific validation steps, but all follow progressive writing.
Common Validation Step Structure:
markdown### Step {N}: {Validation Type} **Objective**: {What this step validates} **Process**: 1. {Discovery action - e.g., "Find all markdown files"} 2. {Extraction action - e.g., "Extract code blocks"} 3. {Validation action - e.g., "Verify against standards"} 4. **Write findings immediately** (progressive writing) **Success Criteria**: {How to know step completed} **On Failure**: {Error handling}
Progressive Writing Requirements:
Finding Format:
markdown### Finding {N}: {Title} **File**: path/to/file.md **Line**: {line-number} (if applicable) **Criticality**: {CRITICAL/HIGH/MEDIUM/LOW} **Category**: {category-name} **Issue**: {Description of what's wrong} **Recommendation**: {How to fix it} ---
Content Quality Checkers (docs, readme, tutorial):
Factual Accuracy Checkers (docs, facts):
Link Checkers (link-general, link-specific):
Structure Checkers (structure, navigation):
Final update to existing report file:
bash# Update report status cat >> "$REPORT_FILE" << 'SUMMARY' ## Summary **Total Findings**: {N} **By Criticality**: - CRITICAL: {count} - HIGH: {count} - MEDIUM: {count} - LOW: {count} **Status**: Complete **Completed**: {YYYY-MM-DD--HH-MM UTC+7} SUMMARY
Finalization Checklist:
Checkers typically need:
Bash Tool Critical: Required for UUID generation and report initialization.
Required Skills (should be in checker's skills: frontmatter):
wow-generating-validation-reports - UUID chain, report format, progressive writingwow-assessing-criticality-confidence - Criticality level assessmentdocs-validating-factual-accuracy, docs-validating-links)Related Documentation:
CRITICAL REQUIREMENT: All checkers MUST write findings progressively.
Why Progressive Writing?
Implementation Pattern:
markdownStep 0: Initialize Report File → Create file immediately with header Steps 1-N: Validate Content → For each validation check: 1. Perform validation 2. Immediately append finding to report file 3. Continue to next check → DO NOT buffer findings in memory Final Step: Finalize Report → Update status and add summary → File already contains all findings
Anti-Pattern (Don't Do This):
python# ❌ BAD: Buffering findings in memory findings = [] for file in files: issue = validate(file) findings.append(issue) # Buffered in memory! # Write all at end (lost if context compacts) write_report(findings)
Correct Pattern:
python# ✅ GOOD: Progressive writing initialize_report() for file in files: issue = validate(file) append_to_report(issue) # Written immediately! finalize_report()
markdownStep 1: Discover files using Glob Step 2: For each file: - Read content - Check against standards - Write findings immediately Step 3: Finalize with summary
markdownStep 1: Discover files Step 2: Extract verifiable claims using Grep Step 3: For each claim: - Verify against source (WebFetch/WebSearch) - Assess correctness - Write finding immediately Step 4: Finalize with summary
markdownStep 1: Build index of all valid targets Step 2: Discover files with references Step 3: For each reference: - Check against index - Verify target exists - Write finding if broken Step 4: Finalize with summary
See wow-assessing-criticality-confidence Skill for complete guidance.
Quick Guidelines:
Domain-Specific Examples (add to checker agent, not this Skill):
Each checker should include domain-specific criticality examples relevant to its validation scope.
markdownStep 0: Initialize Report → UUID: a1b2c3 → Timestamp: 2025-12-14--20-45 → File: docs**a1b2c3**2025-12-14--20-45\_\_audit.md → Status: In Progress Step 1: Discover Files → Found 15 markdown files in docs/ Step 2: Validate Structure → File 1: Check heading hierarchy → MEDIUM finding → Write immediately → File 2: Check frontmatter → HIGH finding → Write immediately → ...continue for all files Step 3: Validate Content → File 1: Check active voice → LOW finding → Write immediately → ...continue validation Step 4: Validate Links → Extract 50 links → Validate each → 3 CRITICAL findings → Write immediately Final Step: Finalize Report → Update status: Complete → Add summary: 1 CRITICAL, 2 HIGH, 4 MEDIUM, 3 LOW → Total: 10 findings
This workflow ensures consistent, auditable, and resilient validation across all checker agents.
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→fail | 28,719 | 25,645 | -11% | 1 | 1 | 0% | 3,854 | 4,001 | +4% | 0 | 0 | — |
case-02 | fail→fail | 9,589 | 9,397 | -2% | 1 | 1 | 0% | 273 | 3,467 | +1170% | 0 | 0 | — |
case-03 | fail→fail | 16,721 | 20,540 | +23% | 1 | 1 | 0% | 2,763 | 3,730 | +35% | 0 | 0 | — |
case-04 | fail→pass | 13,008 | 10,535 | -19% | 1 | 1 | 0% | 1,550 | 3,945 | +155% | 0 | 0 | — |
case-05 | pass→pass | 10,437 | 5,232 | -50% | 1 | 1 | 0% | 1,919 | 3,872 | +102% | 0 | 0 | — |
case-06 | pass→pass | 12,043 | 5,769 | -52% | 1 | 1 | 0% | 1,253 | 3,731 | +198% | 0 | 0 | — |
case-07 | pass→pass | 16,556 | 6,403 | -61% | 1 | 1 | 0% | 1,738 | 3,937 | +127% | 0 | 0 | — |
case-08 | fail→pass | 14,491 | 16,124 | +11% | 1 | 1 | 0% | 2,378 | 4,800 | +102% | 0 | 0 | — |
case-09 | pass→pass | 18,475 | 12,575 | -32% | 1 | 1 | 0% | 2,433 | 4,138 | +70% | 0 | 0 | — |
case-10 | fail→pass | 16,339 | 11,940 | -27% | 1 | 1 | 0% | 1,785 | 3,844 | +115% | 0 | 0 | — |
case-11 | fail→pass | 15,709 | 12,586 | -20% | 1 | 1 | 0% | 1,643 | 3,980 | +142% | 0 | 0 | — |
case-12 | pass→pass | 12,709 | 9,865 | -22% | 1 | 1 | 0% | 2,251 | 4,485 | +99% | 0 | 0 | — |
case-13 | pass→pass | 13,461 | 20,211 | +50% | 1 | 1 | 0% | 2,179 | 4,546 | +109% | 0 | 0 | — |
case-14 | pass→pass | 20,575 | 14,232 | -31% | 1 | 1 | 0% | 2,466 | 4,420 | +79% | 0 | 0 | — |
case-15 | fail→fail | 6,932 | 5,604 | -19% | 1 | 1 | 0% | 987 | 3,665 | +271% | 0 | 0 | — |
case-16 | fail→pass | 18,447 | 3,770 | -80% | 1 | 1 | 0% | 1,930 | 3,382 | +75% | 0 | 0 | — |
case-17 | pass→pass | 12,533 | 11,984 | -4% | 1 | 1 | 0% | 1,952 | 3,957 | +103% | 0 | 0 | — |
case-18 | pass→pass | 10,513 | 10,409 | -1% | 1 | 1 | 0% | 1,597 | 3,826 | +140% | 0 | 0 | — |
case-19 | pass→pass | 21,433 | 20,196 | -6% | 1 | 1 | 0% | 2,811 | 5,210 | +85% | 0 | 0 | — |
case-20 | pass→pass | 20,820 | 19,855 | -5% | 1 | 1 | 0% | 2,550 | 5,654 | +122% | 0 | 0 | — |
case-21 | pass→pass | 19,865 | 22,016 | +11% | 1 | 1 | 0% | 2,543 | 5,641 | +122% | 0 | 0 | — |
case-22 | pass→pass | 13,805 | 18,216 | +32% | 1 | 1 | 0% | 2,597 | 5,141 | +98% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted, and 21 counted toward the lift figure. The other 1 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +23 percentage points is the difference between those two pass rates over the 21 comparable cases. 1 case got worse with the skill loaded, and it is included in that figure.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.