---
name: wow-executing-checker-workflow
description: Step-by-step validation workflow for checker agents - initialize report, discover content, validate progressively, finalize with summary. Use when implementing or updating checker agents.
created: 2026-01-05
updated: 2026-01-05
---

# Executing Checker Workflow

Common workflow pattern for all checker agents in the maker-checker-fixer three-stage quality pipeline.

## When This Skill Loads

This Skill auto-loads for checker agents that need standardized workflow for validating content and generating audit reports.

## Core Checker Workflow

Checker agents follow a consistent 5-step workflow:

```
Step 0: Initialize Report
    ↓
Step 1-N: Validate Content (domain-specific)
    ↓
Final Step: Finalize Report
```

### Step 0: Initialize Report File

**CRITICAL 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?**

- Creates file before validation begins (survives context compaction)
- Enables progressive writing (append findings as discovered)
- Provides audit trail even if validation interrupted
- File is readable throughout execution

### Steps 1-N: Validate Content (Domain-Specific)

**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**:

- Write each finding to report file immediately after discovery
- Don't buffer findings in memory
- Use append mode for file writes
- Include all finding details (file, line, criticality, issue, recommendation)

**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}

---
```

### Common Validation Steps by Checker Type

**Content Quality Checkers** (docs, readme, tutorial):

1. Step 1: Discovery - Find files to validate
2. Step 2: Structure - Check heading hierarchy, frontmatter
3. Step 3: Content Quality - Verify active voice, accessibility, formatting
4. Step 4: Standards Compliance - Check against conventions
5. Step 5: Cross-References - Validate internal links

**Factual Accuracy Checkers** (docs, facts):

1. Step 1: Discovery - Find files with verifiable claims
2. Step 2: Extraction - Extract commands, versions, code examples
3. Step 3: Verification - Check claims against authoritative sources (WebSearch/WebFetch)
4. Step 4: Classification - Mark as [Verified]/[Error]/[Outdated]/[Unverified]
5. Step 5: Confidence Assessment - Assign confidence levels

**Link Checkers** (link-general, link-specific):

1. Step 1: Discovery - Find all markdown files
2. Step 2: Extraction - Extract internal and external links
3. Step 3: Internal Validation - Check internal references exist
4. Step 4: External Validation - Check external URLs accessible
5. Step 5: Cache Management - Update link cache

**Structure Checkers** (structure, navigation):

1. Step 1: Discovery - Find folder structure
2. Step 2: Organization - Validate folder patterns
3. Step 3: Weights - Check weight ordering system
4. Step 4: Navigation - Verify prev/next links
5. Step 5: Completeness - Check for missing files

### Final Step: Finalize Report

**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**:

1. Update status: "In Progress" → "Complete"
2. Count findings by criticality level
3. Add completion timestamp
4. Ensure all findings written to file (progressive writing)
5. Report file path to user

## Tool Requirements

Checkers typically need:

- **Read**: Read files to validate
- **Glob**: Find files by pattern
- **Grep**: Extract content patterns (code blocks, commands, etc.)
- **Write**: Initialize and update report file
- **Bash**: Generate UUID, timestamp, file operations
- **WebFetch**: (Optional) Access official documentation
- **WebSearch**: (Optional) Find authoritative sources

**Bash Tool Critical**: Required for UUID generation and report initialization.

## Integration with Other Skills

**Required Skills** (should be in checker's `skills:` frontmatter):

- `wow-generating-validation-reports` - UUID chain, report format, progressive writing
- `wow-assessing-criticality-confidence` - Criticality level assessment
- Domain-specific Skills (e.g., `docs-validating-factual-accuracy`, `docs-validating-links`)

**Related Documentation**:

- [Temporary Files Convention](../../../docs/explanation/rules/development/infra/ex-ru-de-in__temporary-files.md)
- [Maker-Checker-Fixer Pattern](../../../docs/explanation/rules/development/pattern/ex-ru-de-pa__maker-checker-fixer.md)
- [Criticality Levels Convention](../../../docs/explanation/rules/development/quality/ex-ru-de-qu__criticality-levels.md)

## Progressive Writing Methodology

**CRITICAL REQUIREMENT**: All checkers MUST write findings progressively.

**Why Progressive Writing?**

- Context compaction during long validation runs can lose buffered findings
- Progressive writing ensures audit history survives
- File is readable during execution (monitoring)
- Findings preserved even if validation interrupted

**Implementation Pattern**:

```markdown
Step 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()
```

## Common Validation Patterns

### Pattern 1: File-Based Validation

```markdown
Step 1: Discover files using Glob
Step 2: For each file:

- Read content
- Check against standards
- Write findings immediately
  Step 3: Finalize with summary
```

### Pattern 2: Content Extraction and Verification

```markdown
Step 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
```

### Pattern 3: Cross-Reference Validation

```markdown
Step 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
```

## Criticality Assessment

See `wow-assessing-criticality-confidence` Skill for complete guidance.

**Quick Guidelines**:

- **CRITICAL**: Breaks functionality, renders content unusable
- **HIGH**: Significant impact, misleads users, violates core standards
- **MEDIUM**: Quality issues, minor violations, subjective improvements
- **LOW**: Cosmetic issues, suggestions, optional improvements

**Domain-Specific Examples** (add to checker agent, not this Skill):

Each checker should include domain-specific criticality examples relevant to its validation scope.

## Best Practices

1. **Initialize Early**: Create report file before any validation
2. **Write Progressively**: Append findings immediately, don't buffer
3. **Use Bash Tools**: Required for UUID and timestamp generation
4. **Follow Naming**: Use 4-part pattern with UUID chain
5. **Update Status**: "In Progress" during validation, "Complete" when done
6. **Count Findings**: Provide summary by criticality level
7. **Be Specific**: Include file paths, line numbers, clear recommendations
8. **Assess Criticality**: Use consistent criteria across checkers

## Example Workflow Execution

```markdown
Step 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
```

## Key Takeaways

- **Initialize first**: Create report before validation begins
- **Write progressively**: Append findings immediately during validation
- **Use consistent format**: Follow 4-part naming with UUID chains
- **Be domain-specific**: Customize Steps 1-N for validation type
- **Finalize completely**: Update status and add summary statistics
- **Require Bash**: Essential for UUID and timestamp generation
- **Trust the pattern**: All checkers follow this workflow structure

This workflow ensures consistent, auditable, and resilient validation across all checker agents.
