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
Parent:#1224 (Epic: Recipe health tracking, ADR-009 V1)
Summary
Mirror the BOM generate-and-PR precedent (ADR-009 §5): a deterministic generator, make targets that splice into a marked region, and the public matrix doc — but hermetic/offline (no live Helm render, unlike tools/bom).
Scope
New tools/health/main.go paralleling tools/bom/main.go: flags -deterministic and -no-title, -out-dir, -aicr-version. Calls pkg/health.Compute() directly and renders the Markdown matrix (rolled-up status, Coverage column, and an Evidence column that is a literal pending for every recipe in V1).
Makefile targets cloning bom-docs/bom-check, named to avoid the existing check-health/check-health-all/component-health cluster-chainsaw family (the health-check vs check-health homophone is a footgun):
make recipe-health-docs → go run ./tools/health -deterministic -no-title, then awk-splice into docs/user/recipe-health.md between <!-- BEGIN AICR-HEALTH --> / <!-- END AICR-HEALTH -->.
make recipe-health-check → run the docs target, fail on git diff; advisory, not wired into make qualify (comment it like bom-check).
Compute-budget gate: a measurable assertion that the generator stays under the ADR-009 sub-minute target (e.g. a go test timing ceiling on Compute() over the full catalog), referenced by the epic acceptance criteria.
docs/user/recipe-health.md: hand-written header (incl. a note on the uniform pending Evidence column and the layer-1-only chart_pinned meaning) + the marked region.
Register in docs/index.yml under User Guide (after Component Catalog); cross-link from docs/user/component-catalog.md.
Committed recipe-health.json; committed internal detail doc (the weekly job writes per-dimension detail to $GITHUB_STEP_SUMMARY — #1230).
Key files
tools/bom/main.go (structure minus the network render), pkg/bom/markdown.go (NoTitle/Deterministic), Makefile (bom-docs/bom-check region), docs/index.yml, docs/user/component-catalog.md, .github/CODEOWNERS.
Tests
tools/health golden test (-deterministic byte-stable across runs); recipe-health-check regenerate-and-diff; marker-presence guard; budget-timing test. Lychee (CI, on docs/**) validates the new doc's links.
Acceptance
make recipe-health-docs regenerates the marked region with no network; recipe-health-check flags staleness; budget gate holds; doc registered, cross-linked, owned.
Dependencies
Depends on #1226 and #1227 (so the first published matrix is fully graded). Blocks #1230.
Parent: #1224 (Epic: Recipe health tracking, ADR-009 V1)
Summary
Mirror the BOM generate-and-PR precedent (ADR-009 §5): a deterministic generator, make targets that splice into a marked region, and the public matrix doc — but hermetic/offline (no live Helm render, unlike
tools/bom).Scope
tools/health/main.goparallelingtools/bom/main.go: flags-deterministicand-no-title,-out-dir,-aicr-version. Callspkg/health.Compute()directly and renders the Markdown matrix (rolled-up status,Coveragecolumn, and anEvidencecolumn that is a literalpendingfor every recipe in V1).Makefiletargets cloningbom-docs/bom-check, named to avoid the existingcheck-health/check-health-all/component-healthcluster-chainsaw family (thehealth-checkvscheck-healthhomophone is a footgun):make recipe-health-docs→go run ./tools/health -deterministic -no-title, thenawk-splice intodocs/user/recipe-health.mdbetween<!-- BEGIN AICR-HEALTH -->/<!-- END AICR-HEALTH -->.make recipe-health-check→ run the docs target, fail ongit diff; advisory, not wired intomake qualify(comment it likebom-check).go testtiming ceiling onCompute()over the full catalog), referenced by the epic acceptance criteria.git diffagainst the committedrecipe-health.md— the byte-stability backstop complementing pkg/health: core Compute() loop, resolves signal, rollup, determinism #1225's in-process marshal test.docs/user/recipe-health.md: hand-written header (incl. a note on the uniformpendingEvidence column and the layer-1-onlychart_pinnedmeaning) + the marked region.docs/index.ymlunder User Guide (after Component Catalog); cross-link fromdocs/user/component-catalog.md.CODEOWNERS: addtools/health/**anddocs/user/recipe-health.md(→@nvidia/aicr-maintainer). (pkg/health/**is pinned to pkg/health: core Compute() loop, resolves signal, rollup, determinism #1225.)Out of scope
Committed
recipe-health.json; committed internal detail doc (the weekly job writes per-dimension detail to$GITHUB_STEP_SUMMARY— #1230).Key files
tools/bom/main.go(structure minus the network render),pkg/bom/markdown.go(NoTitle/Deterministic),Makefile(bom-docs/bom-check region),docs/index.yml,docs/user/component-catalog.md,.github/CODEOWNERS.Tests
tools/healthgolden test (-deterministicbyte-stable across runs);recipe-health-checkregenerate-and-diff; marker-presence guard; budget-timing test. Lychee (CI, ondocs/**) validates the new doc's links.Acceptance
make recipe-health-docsregenerates the marked region with no network;recipe-health-checkflags staleness; budget gate holds; doc registered, cross-linked, owned.Dependencies
Depends on #1226 and #1227 (so the first published matrix is fully graded). Blocks #1230.