Priority
Medium — earlier detection of bad code patterns and public API regressions.
Context
The repository has a strong CI surface, including multi-platform tests, vulnerability checks, parser fuzz smoke, generated app integration, generated output determinism, docs checks, and focused dead-code/staticcheck coverage.
The current general Go module test script runs go test ./.... The focused dead-code script runs Staticcheck with -checks=U1000 on a selected package set, not a fuller analyzer pass over the root module and nested modules.
Problem
Important classes of maintainability and correctness issues may not be gated consistently:
- broad
go vet ./... findings outside selected docs-site paths;
- Staticcheck correctness, simplification, API misuse, and performance diagnostics beyond
U1000;
- nested module drift;
- accidental broad suppressions or package exclusions becoming permanent.
This is especially important because GOWDK is compiler/runtime infrastructure with many generated-code and public-contract boundaries.
Proposed direction
Add a staged static-analysis policy:
- run
go vet ./... for the root module and selected nested modules;
- run Staticcheck with a reviewed baseline over the root module;
- expand nested module coverage over time;
- document temporary suppressions with reasons and expiry/issue links;
- keep focused
U1000/deadcode checks if they catch a different class of issue.
Acceptance criteria
Related
Priority
Medium — earlier detection of bad code patterns and public API regressions.
Context
The repository has a strong CI surface, including multi-platform tests, vulnerability checks, parser fuzz smoke, generated app integration, generated output determinism, docs checks, and focused dead-code/staticcheck coverage.
The current general Go module test script runs
go test ./.... The focused dead-code script runs Staticcheck with-checks=U1000on a selected package set, not a fuller analyzer pass over the root module and nested modules.Problem
Important classes of maintainability and correctness issues may not be gated consistently:
go vet ./...findings outside selected docs-site paths;U1000;This is especially important because GOWDK is compiler/runtime infrastructure with many generated-code and public-contract boundaries.
Proposed direction
Add a staged static-analysis policy:
go vet ./...for the root module and selected nested modules;U1000/deadcode checks if they catch a different class of issue.Acceptance criteria
go vet ./...for the root module.go vet ./...for nested runtime/addon modules where practical.U1000on at least the root module or a documented expanding package set.docs/engineering/ci.md.Related