home / skills / jmagly / aiwg / quality-checker

This skill validates Claude skill packages for quality and completeness, ensuring standards conformance before packaging.

npx playbooks add skill jmagly/aiwg --skill quality-checker

Review the files below or copy the command above to add this skill to your agents.

Files (1)
SKILL.md
8.0 KB
---
name: quality-checker
description: Validate skill quality, completeness, and adherence to standards. Use before packaging to ensure skill meets quality requirements.
tools: Read, Write, Bash, Glob, Grep
---

# Quality Checker Skill

## Purpose

Single responsibility: Validate Claude skill packages for quality, completeness, and standards compliance before upload. (BP-4)

## Grounding Checkpoint (Archetype 1 Mitigation)

Before executing, VERIFY:

- [ ] Skill directory exists
- [ ] SKILL.md is present
- [ ] Quality criteria are defined
- [ ] Validation scope is clear (quick/full/custom)

**DO NOT validate without defining quality criteria.**

## Uncertainty Escalation (Archetype 2 Mitigation)

ASK USER instead of guessing when:

- Quality threshold unclear (strict vs lenient)
- Custom validation rules needed
- Failures found - block or warn?
- Edge cases in validation logic

**NEVER auto-pass quality checks without proper validation.**

## Context Scope (Archetype 3 Mitigation)

| Context Type | Included | Excluded |
|--------------|----------|----------|
| RELEVANT | Skill directory, quality criteria | Other skills |
| PERIPHERAL | Quality examples for comparison | Source documentation |
| DISTRACTOR | Build process | Enhancement history |

## Quality Dimensions

| Dimension | Weight | Checks |
|-----------|--------|--------|
| Structure | 25% | Required files, directory layout |
| Content | 35% | SKILL.md completeness, references |
| Code Examples | 20% | Presence, syntax, relevance |
| Documentation | 20% | Clarity, navigation, completeness |

## Workflow Steps

### Step 1: Structure Validation (Grounding)

```bash
# Required files
SKILL_DIR="output/<skill-name>"

# Check SKILL.md
test -f "$SKILL_DIR/SKILL.md" && echo "✅ SKILL.md present" || echo "❌ SKILL.md missing"

# Check references directory
test -d "$SKILL_DIR/references" && echo "✅ references/ present" || echo "❌ references/ missing"

# Check at least one reference file
ls "$SKILL_DIR/references/"*.md >/dev/null 2>&1 && \
  echo "✅ Reference files present" || echo "❌ No reference files"

# Check for index
test -f "$SKILL_DIR/references/index.md" && \
  echo "✅ Index present" || echo "⚠️ No index.md (recommended)"
```

### Step 2: SKILL.md Content Validation

```bash
SKILL_MD="output/<skill-name>/SKILL.md"

# Required sections
echo "=== Section Check ==="
grep -q "^# " "$SKILL_MD" && echo "✅ Title present" || echo "❌ Missing title"
grep -q "^## Description\|^## Purpose" "$SKILL_MD" && echo "✅ Description present" || echo "❌ Missing description"

# Recommended sections
grep -q "^## Quick Reference\|^## Overview" "$SKILL_MD" && echo "✅ Quick reference" || echo "⚠️ No quick reference"
grep -q "^## Code Examples\|^## Examples" "$SKILL_MD" && echo "✅ Examples section" || echo "⚠️ No examples section"
grep -q "^## Navigation\|^## Contents" "$SKILL_MD" && echo "✅ Navigation" || echo "⚠️ No navigation"

# Content quality
echo ""
echo "=== Content Metrics ==="
echo "Lines: $(wc -l < "$SKILL_MD")"
echo "Code blocks: $(grep -c '```' "$SKILL_MD")"
echo "Sections: $(grep -c '^## ' "$SKILL_MD")"
echo "Links: $(grep -oE '\[.*\]\(.*\)' "$SKILL_MD" | wc -l)"
```

### Step 3: Code Example Validation

```bash
SKILL_MD="output/<skill-name>/SKILL.md"

# Extract code blocks
echo "=== Code Examples ==="
example_count=$(grep -c '```' "$SKILL_MD")
echo "Total code blocks: $((example_count / 2))"

# Check for language tags
tagged=$(grep -c '```[a-z]' "$SKILL_MD")
echo "Language-tagged blocks: $tagged"

# Check code isn't just placeholders
placeholder_count=$(grep -E '```\n(# placeholder|// TODO|pass)\n```' "$SKILL_MD" | wc -l)
echo "Placeholder blocks: $placeholder_count"

# Minimum requirement: 3 real code examples
real_examples=$((example_count / 2 - placeholder_count))
if [ "$real_examples" -ge 3 ]; then
  echo "✅ Sufficient code examples ($real_examples)"
else
  echo "⚠️ Few code examples ($real_examples, recommend 3+)"
fi
```

### Step 4: Reference Quality Validation

```bash
REF_DIR="output/<skill-name>/references"

echo "=== Reference Files ==="
for file in "$REF_DIR"/*.md; do
  if [ -f "$file" ]; then
    lines=$(wc -l < "$file")
    name=$(basename "$file")
    if [ "$lines" -lt 10 ]; then
      echo "⚠️ $name: $lines lines (sparse)"
    else
      echo "✅ $name: $lines lines"
    fi
  fi
done

# Total reference content
total_lines=$(cat "$REF_DIR"/*.md 2>/dev/null | wc -l)
echo ""
echo "Total reference content: $total_lines lines"
```

### Step 5: Generate Quality Report

```markdown
# Quality Report: <skill-name>

## Summary
- Overall Score: XX/100
- Status: PASS/WARN/FAIL

## Structure (25/25)
- [x] SKILL.md present
- [x] references/ directory
- [x] Reference files present
- [ ] Optional: scripts/, assets/

## Content (30/35)
- [x] Title present
- [x] Description clear
- [x] Quick reference
- [ ] FAQ section (missing)

## Code Examples (15/20)
- [x] 5 code examples
- [x] Language tags
- [ ] Example diversity (all Python)

## Documentation (18/20)
- [x] Navigation table
- [x] Links work
- [ ] Version info missing

## Recommendations
1. Add FAQ section based on common questions
2. Include examples in other languages
3. Add version/last updated info
```

## Recovery Protocol (Archetype 4 Mitigation)

On error:

1. **PAUSE** - Complete partial validation
2. **DIAGNOSE** - Check error type:
   - `File not found` → Check path
   - `Parse error` → Check file format
   - `Script error` → Simplify validation
3. **ADAPT** - Adjust validation scope
4. **RETRY** - With corrected parameters (max 3 attempts)
5. **ESCALATE** - Report partial results

## Checkpoint Support

State saved to: `.aiwg/working/checkpoints/quality-checker/`

```
checkpoints/quality-checker/
├── structure_results.json
├── content_results.json
├── code_results.json
├── docs_results.json
└── final_report.md
```

## Quality Thresholds

| Level | Score | Action |
|-------|-------|--------|
| PASS | 80-100 | Ready for packaging |
| WARN | 60-79 | Review recommendations |
| FAIL | <60 | Address issues before packaging |

## Configuration Options

```json
{
  "skill_dir": "output/myskill/",
  "validation_level": "full",
  "thresholds": {
    "pass": 80,
    "warn": 60
  },
  "requirements": {
    "min_skill_md_lines": 100,
    "min_code_examples": 3,
    "min_reference_files": 2,
    "require_navigation": true,
    "require_faq": false
  },
  "output": {
    "report_format": "markdown",
    "save_report": true
  }
}
```

## Validation Levels

| Level | Checks | Time |
|-------|--------|------|
| quick | Structure only | <5s |
| standard | Structure + content | <30s |
| full | All dimensions | <2m |
| strict | Full + extra rules | <5m |

## Custom Validation Rules

Add custom rules via configuration:

```json
{
  "custom_rules": [
    {
      "name": "api_coverage",
      "type": "grep",
      "pattern": "^### .*\\(\\)",
      "file": "references/api.md",
      "min_matches": 10,
      "message": "API reference should document at least 10 functions"
    }
  ]
}
```

## Troubleshooting

| Issue | Diagnosis | Solution |
|-------|-----------|----------|
| False positives | Rules too strict | Adjust thresholds |
| Missed issues | Rules too lenient | Use strict mode |
| Slow validation | Full mode on large skill | Use quick mode first |
| Parse errors | Malformed markdown | Fix source files |

## Integration with Workflow

```
doc-scraper → skill-builder → skill-enhancer → quality-checker → skill-packager
                                                     ↓
                                              [If FAIL: fix issues]
                                                     ↓
                                              [If WARN: review]
                                                     ↓
                                              [If PASS: package]
```

## References

- Claude Skills Quality Guidelines: https://docs.anthropic.com/skills
- AIWG Quality Standards: `agentic/code/addons/writing-quality/`
- REF-001: Production-Grade Agentic Workflows (BP-4, BP-9)
- REF-002: LLM Failure Modes (Archetype 1 grounding, Archetype 2 over-helpfulness)

Overview

This skill validates a skill package for quality, completeness, and standards compliance before packaging. It scores structure, content, code examples, and documentation, then emits a pass/warn/fail decision and actionable recommendations. Use it as a pre-release gate to catch gaps and enforce minimum quality thresholds.

How this skill works

The checker inspects the skill directory layout, required documentation files, reference material, and embedded code examples. It measures content metrics (length, sections, links), verifies example counts and language tags, and evaluates reference file coverage. Results are aggregated into a weighted score and a machine-readable quality report saved to a checkpoints folder. Validation can run at quick, standard, full, or strict levels and supports custom rules and thresholds.

When to use it

  • Before packaging or publishing a skill to ensure it meets release standards
  • As an automated CI step to gate merges that affect skill artifacts
  • When onboarding contributors to verify documentation and example completeness
  • To audit third-party or legacy skills for gaps and modernization needs

Best practices

  • Define clear quality criteria and validation level (quick/standard/full/strict) before running checks
  • Require a concise manifest and navigation section so automated parsing finds key sections
  • Include at least three real, language-tagged code examples with minimal placeholders
  • Maintain multiple reference files with substantive content rather than single sparse documents
  • Treat WARN results as review items and FAIL results as blockers until corrected

Example use cases

  • Automated pre-release CI job that fails the pipeline when the quality score is below threshold
  • Local developer command to run a quick validation before opening a pull request
  • Quality audit of a skill catalog to produce prioritized remediation tickets
  • Custom validation enforcing API coverage rules for reference documentation

FAQ

What does PASS/WARN/FAIL mean?

PASS means the score meets the configured pass threshold and the package is ready for packaging; WARN indicates reviewable issues; FAIL requires remediation before packaging.

Can I customize validation rules and thresholds?

Yes. You can configure thresholds, minimum lines, minimum example counts, required reference files, and add custom grep-style rules for specialized checks.