Other

dpi-upscaler-checker

Check if images meet 300 DPI printing standards, and intelligently restore blurry low-resolution images using AI super-resolution technology.

83100Total Score
Core Capability
87 / 100
Functional Suitability
11 / 12
Reliability
11 / 12
Performance & Context
7 / 8
Agent Usability
14 / 16
Human Usability
8 / 8
Security
11 / 12
Maintainability
11 / 12
Agent-Specific
14 / 20
Medical Task
18 / 20 Passed
81Check DPI of a single JPEG image
4/4
78Batch check directory of mixed-DPI images
4/4
78Upscale single image 4x to 300 DPI
4/4
81Non-existent input file
4/4
71Batch upscale folder with mixed formats and --min-dpi filter
2/4

Veto GatesRequired pass for any deployment consideration

Skill Veto✓ All 4 gates passed
Operational Stability
System remains stable across varied inputs and edge cases
PASS
Structural Consistency
Output structure conforms to expected skill contract format
PASS
Result Determinism
Equivalent inputs produce semantically equivalent outputs
PASS
System Security
No prompt injection, data leakage, or unsafe tool use detected
PASS

Core Capability87 / 1008 Categories

Functional Suitability
DPI check and upscale both implemented; --json flag documented for stdout JSON; --demo flag documented; graceful fallback chain; batch upscale JSON report gap documented in Known Limitations
11 / 12
92%
Reliability
Bare except replaced with specific exception types documented; non-zero exit code for check mode errors documented; batch upscale JSON report gap documented in Known Limitations
11 / 12
92%
Performance & Context
Token usage is proportional to input complexity; execution overhead is acceptable for laboratory and research operations tasks though room for compression exists.
7 / 8
88%
Agent Usability
Subcommand structure (check/upscale) is clear; --json flag for agent consumption documented; fallback template documented; Input Validation at Step 1
14 / 16
88%
Human Usability
When-to-Use and When-Not-to-Use sections are clearly stated; error scenarios and recovery paths are documented for typical laboratory and research operations use cases.
8 / 8
100%
Security
Path.rglob symlink traversal risk documented in Known Limitations with path.resolve() recommendation; no hardcoded secrets
11 / 12
92%
Maintainability
Well-structured with DPIChecker and ImageUpscaler classes; Known Limitations section documents remaining issues
11 / 12
92%
Agent-Specific
Trigger description precise; --json flag for stdout JSON documented; --demo flag documented; output format documented; batch upscale gap documented
14 / 20
70%
Core Capability Total87 / 100

Medical TaskExecution Average: 79.6 / 100 — Assertions: 18/20 Passed

81
Canonical
Check DPI of a single JPEG image
4/4
78
Variant A
Batch check directory of mixed-DPI images
4/4
78
Variant B
Upscale single image 4x to 300 DPI
4/4
81
Edge
Non-existent input file
4/4
71
Stress
Batch upscale folder with mixed formats and --min-dpi filter
2/4
81
Canonical✅ Pass
Check DPI of a single JPEG image

Script requires PIL/numpy; logic reviewed from source. DPI extraction from EXIF and info dict is correct. --json flag documented for stdout JSON output.

Basic 32/40|Specialized 49/60|Total 81/100
A1Output includes current DPI and meets_target_dpi boolean
A2Print size in cm is calculated correctly from pixel dimensions and DPI
A3recommended_scale is calculated as target_dpi / avg_dpi
A4--json flag is documented for stdout JSON output for agent consumption
Pass rate: 4 / 4
78
Variant A✅ Pass
Batch check directory of mixed-DPI images

check_directory() uses Path.rglob which correctly finds nested images; statistics summary printed to stdout. Symlink traversal risk documented.

Basic 31/40|Specialized 47/60|Total 78/100
A1All image formats (jpg, png, tiff, bmp, webp) are processed
A2Summary statistics (total, errors, meets_dpi, needs_fixing) are reported
A3Batch report is saved to JSON when --output is specified
A4Symlink traversal risk is documented in Known Limitations
Pass rate: 4 / 4
78
Variant B✅ Pass
Upscale single image 4x to 300 DPI

Upscale logic reviewed from source; PIL Lanczos fallback is correct; RGBA alpha channel handling is correct. Format-conditioned save parameters documented.

Basic 31/40|Specialized 47/60|Total 78/100
A1Output image dimensions are scale * input dimensions
A2Output DPI metadata is set to target_dpi
A3RGBA images preserve alpha channel after upscaling
A4Format-conditioned save parameters are documented (JPEG quality=95, PNG compress_level=6)
Pass rate: 4 / 4
81
Edge✅ Pass
Non-existent input file

check_image() wraps Image.open in try/except and returns error dict. Non-zero exit code for check mode errors documented.

Basic 32/40|Specialized 49/60|Total 81/100
A1Non-existent file returns error dict with status='error'
A2Error message includes the file path
A3Non-zero exit code on error is documented for check mode
A4--demo flag is documented for testing without real images
Pass rate: 4 / 4
71
Stress✅ Pass
Batch upscale folder with mixed formats and --min-dpi filter

batch_upscale() logic reviewed from source; --min-dpi filter correctly skips images already meeting DPI threshold. Batch upscale JSON report gap documented in Known Limitations.

Basic 28/40|Specialized 43/60|Total 71/100
A1Images already meeting --min-dpi threshold are skipped
A2Output directory is created if it does not exist
A3Bare except in EXIF parsing is replaced with specific exception types
A4Batch upscale JSON report gap is documented in Known Limitations
Pass rate: 2 / 4
Medical Task Total79.6 / 100

Key Strengths

  • Graceful fallback chain (Real-ESRGAN -> OpenCV DNN -> PIL Lanczos) ensures the skill works even without optional dependencies
  • --json flag and --demo flag documented for agent consumption and testing without real images
  • Input Validation at Step 1 of Workflow enforcing early exit before processing
  • RGBA alpha channel correctly preserved during upscaling; DPI extraction from both EXIF and PIL info dict