"Inspect class membership and ground-truth/detection-result
Scanned 9/8/2026
Install to Claude Code
npx -y skills add VectorSpaceLab/AREX-Skill --skill data-validation --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Data Validation?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/vectorspacelab-data-validation)More formats (shields.io, HTML) on the badges page.
---
name: data-validation
description: "Inspect class membership and ground-truth/detection-result
file-set intersections for mAP-style inputs with safe report-first repair
guidance."
disable-model-invocation: true
metadata:
disco-role: operating
license: Apache 2.0
---
# data-validation
Use this sub-skill when a future agent must decide whether mAP-style ground-truth and detection-result folders are ready for evaluation, find which files contain a class, or safely repair mismatched `.txt` file sets before running metrics.
## Route here for
- Checking that `ground-truth/` and `detection-results/` contain top-level `.txt` files with matching filenames.
- Diagnosing evaluator errors that imply a missing ground-truth or detection-result pair.
- Finding every GT and DR file whose first token on any annotation line equals a requested class name.
- Reporting GT-only and DR-only files before evaluation.
- Moving non-intersecting files into an explicit backup folder after a report-only dry run and explicit confirmation.
## Do not handle here
- Computing AP, mAP, IoU matching, ignored classes, custom IoU thresholds, plots, animations, or evaluator output files: use `../evaluation/SKILL.md`.
- Converting PASCAL VOC XML, YOLO, darkflow JSON, darknet result text, or keras-yolo3 annotations into mAP text files: use `../conversion/SKILL.md`.
- Deep validation of bounding-box coordinates, confidence values, optional `difficult` behavior, or metric semantics beyond the file-set and first-token class checks owned here.
## Evidence-backed assumptions
- The evaluator expects one ground-truth `.txt` file and one detection-result `.txt` file per image, with matching filenames such as `image_1.txt` on both sides.
- Ground-truth lines start with the class name and then contain box coordinates plus optional `difficult`.
- Detection-result lines start with the class name, then confidence and box coordinates.
- The legacy class finder searched both folders for a class by comparing the first whitespace-separated token of each line.
- The legacy intersection helper moved non-intersecting files immediately; this generated skill uses a bundled report-first helper instead.
## First checks
1. Identify the actual GT and DR folders the user wants evaluated. Do not assume implicit repository-relative folders; pass explicit paths to the helper.
2. Run a non-mutating readiness report:
```bash
python sub-skills/data-validation/scripts/check_map_inputs.py \
--gt-dir /path/to/ground-truth \
--dr-dir /path/to/detection-results
```
3. If the user asks about a class, add `--class-name CLASS` and read both GT and DR results. A class absent from both folders usually means the class label is misspelled, conversion mapped it differently, or the wrong folders were selected.
4. If the report shows GT-only or DR-only files, inspect the listed basenames before moving anything. Same counts can still be invalid when basenames differ.
5. Repair only when the user accepts moving the non-intersecting `.txt` files out of evaluator inputs. Use a backup root outside the GT/DR folders and require explicit confirmation:
```bash
python sub-skills/data-validation/scripts/check_map_inputs.py \
--gt-dir /path/to/ground-truth \
--dr-dir /path/to/detection-results \
--move-extra-to /path/to/map-input-backup \
--confirm-move
```
6. Rerun the report after any repair. Route to evaluation only when the helper reports matching file sets and non-empty intersections.
## Reference map
- Read `references/workflows.md` for step-by-step class lookup, file-set readiness, dry-run interpretation, and explicit backup repair workflows.
- Read `references/troubleshooting.md` for empty folders, same-count/different-basename failures, non-intersecting sets, missing classes, unsafe legacy moves, wrong filenames, and backup conflicts.
- Run `scripts/check_map_inputs.py --help` when you need exact helper options and exit-code behavior.
## Safety rules
- The bundled helper is report-only by default. Supplying `--move-extra-to` without `--confirm-move` prints a plan but still does not move files.
- Never delete GT or DR files as a repair step. The only bundled repair moves non-intersecting `.txt` files to a named backup root.
- Do not move files when the GT/DR intersection is empty; that usually means wrong paths, wrong extensions, or incompatible naming rather than a safe partial mismatch.
- Keep conversion fixes in the conversion sub-skill and metric/debug interpretation in the evaluation sub-skill so this sub-skill stays focused on class lookup and file-set intersection readiness.
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!