Repository navigation
Record actual language-tool execution inside quality jobs #299
Copy link
Copy link
Open
Labels
enhancementNew feature or requestNew feature or requestpriority: P2Do nextDo nextready-for-agentFully specified, ready for an AFK agentFully specified, ready for an AFK agent
Description
Parent
#95. Specification: #295 — Spec: per-run analysis scope and honest finding trends.
What to build
The quality-run artifact and summary explain which existing language checks
actually ran within each job. They distinguish setup failure, an earlier check
preventing a later one, optional dead-code checks being off or unavailable,
and completed analysis. Job success no longer substitutes for tool execution.
Cover the existing TypeScript lint invocation and knip, .NET build/analyzer
boundary, Python Ruff/mypy/deptry, Rust formatting/Clippy/audit stages, and
Java compiler/analyzer and formatter boundaries. Keep opaque Adopter scripts
opaque rather than inventing evidence about their internal tools.
Acceptance criteria
- Each directly invoked analysis command and known optional tool has its own execution record, outcome/reason and measurement slots. Unsupported numeric counts retain explicit unknown or not-applicable status.
- Record actual npm/pnpm lint-script execution without inferring which internal analyzers ran. Likewise, configured build plugins are not labelled executed solely because their enclosing build succeeded.
- Python fixture failures distinguish environment setup, Ruff execution and mypy prevented by earlier failure. Deptry package-level invocation records respect the existing enumeration boundary.
- Dead-code off, auto with unavailable tool, require with unavailable tool and normal execution are distinguishable without changing their existing verdict behavior.
- Rust formatting failure leaves Clippy and the later audit visibly unexecuted; Clippy failure leaves the later audit unexecuted. Detailed target/feature capture is left to the dependent Rust step.
- Java compilation that ends before the analyzer pass does not claim that pass completed; later formatting prevented by failure is represented separately. Unknown nested execution remains unknown.
- Partial diagnostics survive failure and are referenced from the aggregate artifact and bounded summary. No new unconditional execution is introduced after an existing short-circuit.
- Fixtures run actual workflow command bodies/action handoffs with deterministic success/failure controls; assertions inspect emitted scope and unchanged exit behavior, not just a mirrored state table.
- Workflow/action wiring checks prove records reach the existing aggregate collector on ordinary failure paths. No arbitrary Adopter script rewriting, consumer changes or analysis expansion is included.
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or requestpriority: P2Do nextDo nextready-for-agentFully specified, ready for an AFK agentFully specified, ready for an AFK agent
Activity