You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
refactor(test-classifier): own the skill in-repo + hide parse markers on local runs (#60)
* refactor(test-classifier): own the skill in-repo; hide parse markers locally
Two local-ergonomics + provenance fixes.
1. Drop the agent-skills fetch — the bundle owns its skill.
The in-repo .skills/test-classifier/SKILL.md is already the canonical, and is
in fact NEWER than agent-skills@v0.1.0 (the fetch was overwriting the better
in-repo copy with a staler one each run). Remove scripts/fetch-skills.sh, the
.skills-vendor/ indirection, the dispatcher's vendor-preference branch, the
"Vendor SKILL.md" steps in both workflows + the Jenkinsfile/README, and the
.gitignore entry. SKILL_PATH_CANONICAL now always points at the in-repo copy.
2. Strip machine-only markers from terminal output.
On a local run the raw <!-- AI_CLASSIFIER_JSON_* --> block and the
<<<AI_REVIEW_RESULT:…>>> sentinel leaked into the terminal — meaningful only
to the parser / PR-comment poster, noise to a human. strip_machine_markers()
removes them from what's PRINTED; parse_result and extract_classifier_json
still read the untouched classifier_output, so CLASSIFIED/NO_ACTION detection
and --post-comment/--json-only are unchanged.
Verified: strip leaves the human report intact (markers gone, blank lines
collapsed); both scripts pass bash -n; no fetch-skills/agent-skills/skills-vendor
references remain anywhere in testing/ or .github/.
* feat(test-classifier): actionable terminal summary after the report
The markdown report is formatted for the PR comment; locally a developer had to
read the whole wall to find the verdict and what to do about it. Add a compact,
colored terminal summary printed after the report on a human run: one line per
failing test — VERDICT, file:line, confidence — plus the one-line action
derived from the verdict (→ Fix the TEST / Fix the CODE / Re-run + deflake /
Fix the ENV), mirroring SKILL.md's taxonomy table.
The skill is diagnostic-only by design (it names the side to fix, never writes
a patch), so the summary points; it doesn't auto-fix. Rendered from the JSON the
dispatcher already extracts, printed to STDERR (never touches the parsed stdout),
gated to non---json-only runs, and best-effort (skips silently without python3
or a parseable block). Verified end-to-end against a real classified diff.
0 commit comments