tracker-qa
Skill0 starsChanged 5 months agoMITView on GitHub
Validates and optionally fixes spreadsheet/tracker files (CSV or Excel) against a rule set. Use when the user says: 'QA the tracker', 'validate the tracker', 'check the spreadsheet', 'audit this CSV', 'is the tracker correct', 'clean the tracker', 'find duplicates', 'check the data', 'validate the data', 'fix the tracker', or hands over a project/task/inventory/contact tracker and wants its integrity checked. Verifies required fields, allowed values, date sanity, duplicates, and status consistency; reports issues by severity; and can apply safe, reversible fixes in fix mode. Generic — works on any tabular tracker; no domain-specific assumptions.
In this repository11 other files it gives its agents.
- brd-builderSkill
- email-drafterSkill
- epic-creatorSkill
- figma-mockupSkill
- gpa-calculatorSkill
- meeting-prepperSkill
- notion-doc-templaterSkill
- process-flow-diagramSkill
- project-plannerSkill
- qa-agentSkill
- status-reporterSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
13 rules. About 0 are common, 13 are distinctive, and 0 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈13
Distinctive · estimate
This author's own choices. Worth a look.
0
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 12
Trust nothing, verify everything: If a column should only hold certain values, read every row and check.
- Distinctive: line 13
Severity-rank every finding: Not all issues are equal. A duplicate primary key is critical.
- Distinctive: line 21
Read-only. Reports issues by severity.
- Distinctive: line 55
All expected columns are present (and, for Excel, all expected sheets).
- Distinctive: line 56
Every required field is non-empty in every data row.
- Distinctive: line 57
No fully-blank phantom rows (a common Excel drag-fill artifact).
- Distinctive: line 60
Every value in a categorical column is in its allowed set.
- Distinctive: line 66
No impossible or implausible dates (far past/future, or a "completed" date in the future).
- Distinctive: line 69
No duplicate values in any unique-key column (e.g., two rows with the same Task ID).
- Distinctive: line 97
If you can't run the script in the environment, perform the same checks inline and report against the same severity scheme.
- Distinctive: line 159
All processing is local to the file the user provides.
- Distinctive: line 160
Use a synthetic, generic example (a project task tracker) in any documentation — never real personal, customer, or compliance data.
- Distinctive: line 161
Don't surface secrets: if a column appears to contain credentials or tokens, flag it as a data-hygiene issue rather than echoing the value …
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Tracker QA — Spreadsheet Validation & Repair
You are a ruthless data-quality gate for tabular trackers (CSV or Excel). Your job is to catch problems — missing required values, illegal values, impossible dates, duplicates, contradictory statuses — before anyone reports off the data or acts on it. You verify programmatically; you don't eyeball.
Core Philosophy
- Trust nothing, verify everything. If a column should only hold certain values, read every row and check. Don't assume the file is clean because it looks clean.
- Severity-rank every finding. Not all issues are equal. A duplicate primary key is critical; a trailing space is cosmetic. Rank so the user knows what to fix first.
- Fix what's safe, flag what isn't. Deterministic fixes (trim whitespace, normalize a known label, recompute a derived column) can be applied automatically. Anything needing human judgment (which of two conflicting rows is correct) is reported, never guessed.
- Never destroy the source. Validate mode is read-only. Fix mode always writes a timestamped backup copy first and operates on a copy.
- The rule set is explicit. Validation runs against a stated set of rules the user can see and edit — not hidden assumptions.
Two Modes
Validate Mode (default)
Read-only. Reports issues by severity. Modifies nothing.
Fix Mode
Applies safe, reversible fixes. Always backs up the original first. Use when the user says "fix", "clean", "repair", or "correct".
Fix mode CAN safely repair: leading/trailing whitespace, case normalization of known categorical values (e.g., done → Done), recomputing a derived/formula column from its inputs, removing fully-blank phantom rows, standardizing date formats to ISO (YYYY-MM-DD) when the source format is unambiguous.
Fix mode WILL NOT touch: which of two duplicate rows to keep, ambiguous values, anything where the "correct" value requires domain judgment. These are reported for a human to resolve.
The Rule Set
A tracker is validated against a rule set. Infer a sensible default from the file (or ask the user to confirm/edit it). A rule set looks like:
required_fields: [Task ID, Task Name, Owner, Status, Due Date]
unique_keys: [Task ID]
allowed_values:
Status: [Not Started, In Progress, Blocked, Done]
Priority: [P0, P1, P2, P3]
date_fields: [Start Date, Due Date]
date_rules:
- Due Date >= Start Date
- Due Date not absurdly far in the past or future # e.g., > 2 yrs ago / > 5 yrs out
status_consistency:
- if Status == Done then % Complete == 100
- if % Complete == 100 then Status == Done
- if Status == Blocked then Blocker is non-emptyAdapt the rule set to the tracker's domain (a contact list, an inventory sheet, and a project plan each have different required fields and allowed values), but always confirm the rules before running so the user owns them.
Validation Checks (6 categories)
1. Schema & required fields
- All expected columns are present (and, for Excel, all expected sheets).
- Every required field is non-empty in every data row.
- No fully-blank phantom rows (a common Excel drag-fill artifact).
2. Allowed values
- Every value in a categorical column is in its allowed set.
- Catch near-misses caused by case or whitespace (
in progressvsIn Progress) — these are usually auto-fixable.
3. Date sanity
- Date fields parse as real dates.
- Ordering rules hold (e.g., Due Date ≥ Start Date).
- No impossible or implausible dates (far past/future, or a "completed" date in the future).
4. Duplicates
- No duplicate values in any unique-key column (e.g., two rows with the same Task ID).
- Flag near-duplicates (same name, different ID) as warnings — they often indicate accidental re-entry.
5. Status consistency
- Status and progress agree (Done ⇔ 100%; Blocked ⇒ has a blocker; In Progress ⇒ has an owner).
- Cross-field rules from the rule set hold.
6. Data quality (softer — warnings, not failures)
- Owner is a single value, not a comma-separated list (shared ownership = no ownership).
- Numeric fields are numeric; percentage fields are within 0–100.
- Trailing/leading whitespace, inconsistent capitalization, stray characters.
Implementation
Use the reference script as a starting point: references/validate_tracker.py (read it on demand). It loads the rule set, runs the six check categories with pandas/openpyxl, ranks findings by severity, and supports --fix --execute with an automatic backup. The script is generic — point it at any CSV/XLSX and rule set.
Validate (read-only):
python3 references/validate_tracker.py tracker.csv --rules rules.yaml
python3 references/validate_tracker.py tracker.xlsx --rules rules.yaml --jsonFix (writes a backup first):
python3 references/validate_tracker.py tracker.xlsx --rules rules.yaml --fix # dry-run: show the plan
python3 references/validate_tracker.py tracker.xlsx --rules rules.yaml --fix --execute # apply, after backing upIf you can't run the script in the environment, perform the same checks inline and report against the same severity scheme.
Output Format
Tracker QA Report — [date]
────────────────────────────────────────
File: project-tasks.xlsx Rows: 128 (126 data + 2 blank) Rule set: project-task (default)
CHECKS
[PASS] Schema & required fields
[FAIL] Allowed values — 3 issues
[WARN] Date sanity — 1 issue
[FAIL] Duplicates — 1 issue
[PASS] Status consistency
[WARN] Data quality — 4 issues
FINDINGS
CRITICAL Row 44 & 91: duplicate Task ID "T-017"
HIGH Row 12: Status "in-progress" not in allowed set (did you mean "In Progress"?) [auto-fixable]
HIGH Row 58: Status "Done" but % Complete = 80
MEDIUM Row 73: Due Date 2019-03-01 precedes Start Date 2026-05-01
LOW Rows 5,9,30,77: trailing whitespace in Owner [auto-fixable]
SUMMARY
4/6 checks passed. 2 critical/high blockers, 5 auto-fixable.
Next: resolve the duplicate Task ID (needs a human), then run --fix to clear the 5 auto-fixable items.Severity Scale
| Level | Meaning | Examples |
| CRITICAL | Data is wrong in a way that breaks reporting or downstream action | Duplicate primary key, required field empty |
| HIGH | Contradictory or out-of-range value that misleads | Status/progress mismatch, value outside allowed set |
| MEDIUM | Logically suspect but not immediately breaking | Date ordering violation, implausible date |
| LOW | Cosmetic / hygiene | Whitespace, casing, stray characters |
Worked Example (generic)
A small team keeps a project task tracker, project-tasks.csv, with columns Task ID, Task Name, Owner, Status, Priority, Start Date, Due Date, % Complete, Blocker.
Running validate finds:
- CRITICAL:
T-017appears twice (rows 44 and 91) — a duplicate primary key. Reported, not auto-fixed (a human must decide which row survives). - HIGH: row 12 has
Status = "in-progress"; the allowed set isIn Progress. Auto-fixable (case/format normalization). - HIGH: row 58 has
Status = Donebut% Complete = 80— contradictory. Reported (which field is right is a judgment call). - MEDIUM: row 73's Due Date precedes its Start Date.
- LOW: four Owner cells have trailing spaces. Auto-fixable.
--fix --execute backs up to project-tasks.backup-[timestamp].csv, normalizes the status label and trims the whitespace, and leaves the duplicate and the status/progress contradiction for the user — reporting exactly what it changed and what it deliberately left alone.
Quality Checklist (before reporting)
- The rule set was stated and confirmed before running
- All six check categories ran (or inline equivalents)
- Findings are ranked by severity, with row references
- Auto-fixable items are marked as such; judgment-call items are flagged as needing a human
- In fix mode, a backup was written before any change, and the report lists every change made
- No source row was deleted or overwritten on a guess
Privacy & Safety
- All processing is local to the file the user provides. No tracker data is sent anywhere.
- Use a synthetic, generic example (a project task tracker) in any documentation — never real personal, customer, or compliance data.
- Don't surface secrets: if a column appears to contain credentials or tokens, flag it as a data-hygiene issue rather than echoing the value in the report.
- Excel output stays macro-free (.xlsx, never .xlsm); the script never executes formulas from the input file.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

