This document defines Go/No-Go gates for ThreadPilot releases.
| Gate | Criteria | Owner | Status |
|---|---|---|---|
| Build integrity | Release build succeeds with no blocking errors | CI/CD | Complete |
| Core automated tests | Tests/ThreadPilot.Core.Tests passes on Release config |
QA | Complete |
| Coverage gate | CI parses Cobertura and fails below the active threshold | QA | Complete |
| Dependency security | No Critical/High vulnerabilities from dotnet audit | Security | Complete |
| Secret hygiene | Gitleaks scan has no active findings | Security | Complete |
| Performance baseline | Idle tray footprint collected and archived | Performance | Complete |
| Packaging | Installer + release zips + checksums + packaging evidence generated | Release Eng | Complete |
| Documentation | Release notes, runbook, changelog updated | Tech Writer | Complete |
| Compatibility | Smoke test on Windows 11 and Windows 10 best-effort | QA | Deferred (release candidate pass) |
dotnet restore ThreadPilot_1.sln
dotnet build ThreadPilot_1.sln --configuration Release --no-restore
dotnet test Tests/ThreadPilot.Core.Tests/ThreadPilot.Core.Tests.csproj --configuration Release --no-restore --collect:"XPlat Code Coverage" --settings "Tests/ThreadPilot.Core.Tests/coverlet.runsettings" --results-directory TestResults
dotnet list ThreadPilot.csproj package --vulnerable --include-transitive- The coverage badge tracks business/application code.
- Generated build artifacts are excluded via
coverlet.runsettings. - Legacy runtime harness files under
Tests/*.csare not part of the CI coverage contract.
The repository now uses a real Cobertura-parsed gate in CI.
- Transitional threshold:
1.5%line coverage - Reason: this matches the current honest baseline while service coverage is still being expanded
- Planned ratchet: raise progressively as additional deterministic service tests land
Release can proceed only when all gates are marked complete or explicitly waived with a written risk note.
- Build:
dotnet build ThreadPilot_1.sln --configuration Release --no-restore(success in CI release path). - Tests:
dotnet test Tests/ThreadPilot.Core.Tests/ThreadPilot.Core.Tests.csproj --configuration Release --collect:"XPlat Code Coverage" --settings "Tests/ThreadPilot.Core.Tests/coverlet.runsettings"(45passed,0failed in the current hardening branch). - Coverage: Cobertura from the current hardening branch is
7.52%line /5.50%branch and is enforced by CI against the transitional1.5%line gate. - Dependency security:
dotnet list ThreadPilot.csproj package --vulnerable --include-transitive(no vulnerable packages). - Secret hygiene: local gitleaks run, report
docs/audits/GITLEAKS_REPORT_2026-04-15.json(no leaks). - Packaging: installer/packages/checksums plus winget/chocolatey evidence artifacts generated in
artifacts/release// workflow artifacts.