Claude-skill-registry auto-validator

Programmatic asset compliance validation using vision analysis and Northcote scorecard. Eliminates manual validation loops—upload image, receive scored JSON with correction prompts in 30 seconds.

install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/auto-validator" ~/.claude/skills/majiayu000-claude-skill-registry-auto-validator && rm -rf "$T"
manifest: skills/data/auto-validator/SKILL.md
source content

Auto-Validator Skill

Purpose

Automates Northcote Curio asset validation. Upload generated image → receive compliance JSON with scores, violations, and auto-generated correction prompt. Replaces 10-minute conversational validation with 30-second programmatic assessment.

Trigger Conditions

Use when:

  • Gemini/DALL-E generates asset attempt
  • Need compliance score (0-100 across 6 dimensions)
  • Require iteration decision (≥90 package | <90 regenerate)
  • Want correction prompt for next attempt

Validation Scorecard

Dimension 1: Geographic Authenticity (0-20)

  • All specimens Australian endemic
  • Test: "Did organism challenge European taxonomy?"
  • Violations: Non-Australian fauna, generic specimens

Dimension 2: Translucency Physics (0-20)

  • Light transmission (not glow) visible
  • Internal structures shown through material
  • Percentage compliance: 60-80% molt, 40-60% membrane, 20-40% leaves

Dimension 3: Scale Hierarchy (0-20)

  • PRIMARY 1.5-2× SECONDARY
  • SECONDARY 2-3× TERTIARY
  • Clear focal points established

Dimension 4: Density Zones (0-20)

  • Upper-left ≤20% coverage, 200×200px empty
  • Lower-right ≤30% coverage, 150×150px empty
  • Central 60-80% Wunderkammer density

Dimension 5: Background Color (0-10)

  • Target: #1A1714 ±5% tolerance
  • No sepia/brown drift
  • Theatrical void maintained

Dimension 6: Typography (0-10)

  • Serif font (Crimson Text style)
  • Cream #F5F0E8 at 85% opacity
  • 5-6 labels maximum
  • Format: "Fig. X. Scientific name (Common)"

Workflow

Input: Image file path or upload Process:

  1. Extract hex colors (sample 50 points)
  2. Identify specimens (Vision API recognition)
  3. Measure density zones (pixel coverage analysis)
  4. Detect translucency (luminance gradient detection)
  5. Count/validate typography (OCR)
  6. Score each dimension
  7. Generate violation list
  8. Build correction prompt

Output: JSON structure

{
  "asset_id": "ASSET-3",
  "overall_score": 87,
  "decision": "REGENERATE | PACKAGE",
  "dimensions": {
    "geographic_authenticity": {"score": 18, "violations": []},
    "translucency_physics": {"score": 14, "violations": ["Spider molt opaque"]},
    "scale_hierarchy": {"score": 19, "violations": []},
    "density_zones": {"score": 16, "violations": ["Upper-left 25%"]},
    "background_color": {"score": 9, "violations": []},
    "typography": {"score": 8, "violations": ["7 labels (max 6)"]}
  },
  "correction_prompt": "CRITICAL FIXES:\n- Spider molt: Add '60-80% light-transmissive amber chitin'\n- Upper-left: Specify '200×200px COMPLETELY EMPTY'\n- Reduce annotations to 5 labels",
  "iteration_priority": "high"
}

Integration Points

With Flash-Sidekick:

  • Call
    analyze_code_quality
    on generated prompt → identify vague language
  • Call
    web_research_synthesis
    for specimen geographic validation

With Gemini:

  • Auto-validator output → correction_prompt → paste directly into next generation

With Claude Desktop:

  • Decision gate: score ≥90 triggers Asset-Packager skill
  • Score <90 triggers Prompt-Composer with corrections

Usage Example

# Pseudo-workflow
result = auto_validator.validate(
    image_path="/downloads/asset-3-attempt-2.png",
    asset_id="ASSET-3",
    target_score=90
)

if result['decision'] == 'PACKAGE':
    asset_packager.run(result)
else:
    corrected_prompt = prompt_composer.apply_corrections(
        base_prompt=original_prompt,
        corrections=result['correction_prompt']
    )
    # Send to Gemini for regeneration

Efficiency Gain

Before: 10-15 min manual validation per attempt After: 30 sec programmatic validation Savings: 20× faster validation, 95% time reduction Scale Impact: 10 assets × 2-3 attempts = 3-5 hours saved

Implementation Notes

  • Vision API for specimen identification + color extraction
  • Pixel density analysis for zone coverage
  • Luminance gradient detection for translucency validation
  • OCR for typography verification
  • Deterministic scoring (not subjective)

Replaces conversational validation with programmatic compliance measurement. Critical path acceleration for high-volume asset generation.