Skip to content

TG6 — IA/taxonomy spec + shared mapping function + public docs + #1224 reconciliation/cross-link contract #1272

Description

@njhensley

Parent: #1263 · Labels: enhancement, area/docs (auto, docs/**) ·
Size: M · Depends on: TG4a (the URL form must exist to document the
coordinate→link contract); the mapping spec + shared function can land earlier

Goal. Make the CSP-first taxonomy, the canonical recipe→coordinate mapping (as a
shared Go function), and the pinned column-metadata key schema the single documented
source of truth; publish the public docs page; reconcile precisely with ADR-009's
deferred validation-posture design; and define the bot-verifiable cross-link
contract with docs/user/recipe-health.md (#1224) so the recipe-quality epic can wire it.

Scope.

  • Canonical mapping spec + shared function (spec in docs/design/ or
    docs/contributor/; function in the shared pkg/recipe coordinate helper):
    group=service, dashboard=accelerator-os, tab=intent[-platform],
    row=<phase>/<check>, column=one build; k8s-in-column rationale (stable links)
    and its cost + the UI-facet countermeasure; join key = overlay metadata.name;
    the mapping takes resolved Criteria as input and never parses
    metadata.name (accelerator-first name vs service-first coordinate). State the
    empty-platform→bare-intent tab rule and the "optional sub-segment dropped, not
    unknown-substituted" rule as the single source of truth TG2 and RQ1 reference.
    Enumerate the deterministic recipe→(group,dashboard,tab) function and the
    stable URL form the API/UI expose. The package golden test exercises both
    launch clouds (h100-eks-ubuntu-training → eks/h100-ubuntu/training-kubeflow;
    h100-gke-cos-inference-dynamo → gke/h100-cos/inference-dynamo) and enumerates
    values from the runtime CriteriaRegistry union, not a closed enum.
  • Pinned column-metadata key schema. Define the exact started.json metadata key
    strings, count, and order (aicr version aicr_version, observed k8s version k8s_version
    major.minor, recipe-declared k8s constraint k8s_constraint, signer identity,
    issuer, source, evidence digest) that TG2 emits and TG3's Header.extra
    references — authored once here.
  • Public docs page (docs/user/): what the AICR TestGrid is, how to read it,
    CSP-first navigation, the k8s facet, provenance/signer/source columns (community
    vs uat), and how it relates to the offline recipe-health matrix.
  • Epic: Recipe health tracking (ADR-009 V1) — enumeration, structural soundness, public matrix #1224 reconciliation + cross-link contract. State explicitly the difference
    between ADR-009's deferred validation-posture axis — a verify-gated,
    AttestedAt-reading, in-cell trust state
    (unattested vs aged-but-verified)
    computed from the in-tree signed pointer
    (docs/design/009-recipe-health-tracking.md:245-251,427) — and the recipe-quality epic's
    coordinate deep-link Evidence column (link only, no status token). Pick and
    state the relationship (recommend: coexist — recipe-health keeps the offline
    structural/freshness signal it owns; TestGrid is the live board the Evidence
    column links to, never duplicating it). Then: recipe-health
    (docs/user/recipe-health.md) owns the offline structural surface and TestGrid
    owns the live validation posture surface; they share the metadata.name join
    key; the recipe-health Evidence column will link (not duplicate) into the
    TestGrid coordinate URL (RQ1); the link is bot-verifiable via TG4a's
    coordinate-presence endpoint (RQ2). Note that ADR-009's matrix and
    pkg/health/ do not exist at HEAD and that the enumeration seam (LeafCombo +
    MetadataStore.LeafCriteria(), aicr recipe list,
    009-recipe-health-tracking.md:285-291,154) is specified-but-unimplemented (part
    of pkg/health: core Compute() loop, resolves signal, rollup, determinism #1225-CI: weekly health-refresh bot PR for the recipe-health matrix #1230) — this contract is the interface tools/health generator + make targets + public recipe-health matrix #1229's generator (the
    recipe-quality epic) consumes.
  • Honor the doc conventions: auto-anchors (no TOCs), promote bold labels to
    headings sparingly, anchor-link hygiene (lychee runs in fern-docs-ci.yaml:54
    on docs/** PRs). A new docs page must be registered in the Fern nav
    (fern/docs.yml and the versioned navs under fern/versions/*.yml) — that
    registration is enforced by review / fern-docs-ci, not by a make qualify
    step. (make qualify = test-coverage lint e2e scan license-check,
    Makefile:244; make lint's doc checks are check-docs-filenames /
    check-docs-mdx, Makefile:135-141 — neither is a sidebar/nav check.)

Out of scope. Editing recipe-health.md itself (RQ1, and the file does
not exist yet); the link-integrity bot (RQ2); implementing the API/UI (TG4a/TG4b).
The shared coordinate helper's consumers (TG2/TG3/TG4a/RQ1) live in their own children.

Key files. New docs/design/ taxonomy spec; new docs/user/ TestGrid page
(register in fern/docs.yml + fern/versions/*.yml); the shared pkg/recipe
coordinate helper + its golden test; cross-reference target
docs/user/recipe-health.md (future, #1224); ADR-009 reconciliation anchors
docs/design/009-recipe-health-tracking.md:245-251,285-291,427; doc-CI reference
.github/workflows/fern-docs-ci.yaml.

Tests. Docs build clean under fern-docs-ci (lychee anchor-link check passes);
the shared coordinate function's golden test (both launch clouds, runtime-union
enumeration) is the canonical mapping test TG2/TG4a/RQ1 reference rather than
re-implementing. 75% floor on the shared pkg/recipe helper.

Acceptance. The CSP-first taxonomy, recipe→coordinate mapping (shipped as the
shared Go function), and pinned metadata-key schema are documented canonically; the
public TestGrid docs page is live and registered in the Fern nav; the ADR-009
reconciliation is explicit (coexist, not identity); the #1224 cross-link contract is
precise, link-only, and bot-verifiable via the coordinate-presence endpoint;
make qualify and fern-docs-ci pass.


Child of #1263 · staged from docs/design/010-aicr-testgrid.md (TG6).

Metadata

Metadata

Assignees

Type

No type

Fields

No fields configured for issues without a type.

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions