fix: address self-validation findings across all shipped artifacts#14
Conversation
Ran Quorum self-validation (standard depth) against all work shipped in v0.6.1. Fixed 64 findings across 10 files: Core Engine (v0.6.1): - models.py: Locus range validation, hash bounds check, TesterResult count validation, VerifiedLocus cross-field validation, compute_hash file guard - base.py: extra_context serialization, None guard on LLM response, per-finding severity normalization, logger.exception for tracebacks - cross_consistency.py: scope brace-escaping (format-string injection), None guard, severity normalization, accurate coverage tracking - aggregator.py: INFO→PASS verdict bug (contradicted documented contract), deterministic dedup sort, SEVERITY_ORDER module constant with .get() - pipeline.py: resume_batch_validation config restoration (was discarding original config + relationships), CancelledError handling, type annotations, UTC timestamp consistency, exc_info on error loggers Copilot CLI Port: - SKILL.md: explicit model assignment, acceptance criteria, error handling, timeouts, token limits, version field - quorum-prescreen.py: library-safe API (no sys.exit in run_prescreen), scoped exceptions, input validation, named constants Golden Test Set: - score.py: 3 logic bugs (existing_ids rebuild, dead by_critic code, fp_rate_clean conflation), path traversal guard, QuorumFinding.from_dict Tools: - validate-docs.py: display_map shipped-filter gate, named constant Tests: 2 tests updated that codified the INFO→PASS_WITH_NOTES bug. 879 passed, 0 failures. Process fix: added mandatory self-validation step to Claude Code task template (~/.claude/tasks/README.md).
Quorum Self-Validation: 3 HIGH, 4 MEDIUM, 2 LOW findings — 8 accepted as false positivesPre-screen validation completed. All findings analyzed: HIGH findings (3) — FALSE POSITIVES
MEDIUM findings (4)
LOW findings (2)
INFO findings (2)
Summary: Shipped with 2 fixes (error message sanitization, docstring clarity) and 8 false positives documented. All changes improve code quality without compromising design. |
Summary
Ran Quorum self-validation (standard depth) against all work shipped tonight (v0.6.1, Copilot CLI Port, Golden Test Set). Fixed 64 findings across 10 files — 3 CRITICAL, 16 HIGH, and 45 MEDIUM/LOW.
Critical Fixes
resume_batch_validationsilently discarded the original run's config and relationships_path, causing resumed batches to produce different results than original runsLocusaccepted reversed line ranges (start_line > end_line), silently hashing to empty bytes and defeating integrity checksHigh-Impact Fixes
scopefield now brace-escaped beforestr.format()run_prescreen()returns error dicts instead of callingsys.exit()Process
This PR exists because we shipped without running self-validation. The gap has been closed: a mandatory self-validation step was added to the Claude Code task template.
Tests
879 passed, 6 skipped, 0 failures. Two tests updated that codified the INFO→PASS_WITH_NOTES bug.