Problem
The (Spec)/(Live) qualifier model for AAO Verified landed across several PRs in quick succession:
This addresses the highest-friction cases. Before 3.1 GA we should do a full sweep so the doc set tells one coherent story.
What still needs auditing
1. Stale "AdCP Conformant" / "Tier 1" / "Tier 2" / "AAO Verified mark" residue
A grep across all docs and changesets for:
AdCP Conformant — should generally become AAO Verified (Spec) or just stay neutral ("conformant" lowercase is fine when not naming the mark)
Tier 1 / Tier 2 — fully retired language; flag any remaining occurrences
AAO Verified mark (without qualifier) — distinguish: is this referring to the umbrella mark (fine) or specifically (Live) (needs qualification)?
Verified ⊆ Conformant containment language — replace with the independent-axes framing
2. Pages likely to mention the badge that may not have been touched
docs/building/compliance-catalog.mdx
docs/building/validate-your-agent.mdx
docs/building/get-test-ready.mdx
docs/learning/overview.mdx and learning track pages (tracks/*.mdx)
docs/community/working-group.mdx
docs/reference/versioning.mdx
docs/reference/known-limitations.mdx
- The skills (
skills/*/SKILL.md)
docs/intro.mdx and docs/quickstart.mdx
3. Independence framing — check for surviving prerequisite language
Per #3536, (Spec) and (Live) are independent. Audit for surviving phrasing like:
- "(Live) presumes (Spec)"
- "Verified (Live) requires Verified (Spec)"
- "A storyboard regression blocks Verified" (still true for (Spec); for (Live) the link is via the eight checks, not via (Spec))
4. attestation_verifier reporting/runner split
Once #3561 is implemented, every doc that mentions attestation_verifier should be checked: does it accurately say "reporting" rather than implying it covers all of (Live)? The note added in #3537 covers the primary doc; sweep for secondary ones.
5. Cross-link / anchor audit
When sections were renamed during the (Spec)/(Live) reframing, anchor links from other docs may have broken. Run the broken-links check after the sweep and confirm:
6. Storyboard / compliance-suite copy
The badge name is shown in the compliance heartbeat output, the storyboard runner CLI, and some of the lint rules. Audit:
static/compliance/source/**/*.yaml — any prose referring to the mark by name
scripts/lint-*.cjs — any error messages mentioning "AdCP Conformant" or old framings
- The
@adcp/client storyboard runner output strings (separate repo, but worth flagging)
7. Changeset entries already queued for 3.1.0-beta
Six changesets in .changeset/ reference the mark. Grep:
grep -l 'AdCP Conformant\|Tier 1\|Tier 2\|AAO Verified mark' .changeset/*.md
Any hits should be updated to current framing — the release notes need to read consistently.
Acceptance
- A single sweep PR (or a small set of focused ones) that closes every hit from the audits above.
- Broken-links check passes.
- A reader landing on any of the affected pages cold sees one coherent framing: AAO Verified is one mark with two qualifiers (Spec) and (Live); they are independent axes; storyboards back (Spec); continuous observability backs (Live).
- No surviving "Tier 1 / Tier 2" or "AdCP Conformant + AAO Verified" two-marks language outside historical/changelog entries that explicitly describe the framing's evolution.
Out of scope
Timeline
Ship before 3.1.0 GA so the release ships with a coherent doc set.
Related
Problem
The (Spec)/(Live) qualifier model for AAO Verified landed across several PRs in quick succession:
aao-verified.mdxto (Spec)/(Live)conformance.mdx's contradictory "Two marks" section, qualified six call-sites inaccounts/overview.mdx, plus three new sections inaao-verified.mdxThis addresses the highest-friction cases. Before 3.1 GA we should do a full sweep so the doc set tells one coherent story.
What still needs auditing
1. Stale "AdCP Conformant" / "Tier 1" / "Tier 2" / "AAO Verified mark" residue
A grep across all docs and changesets for:
AdCP Conformant— should generally becomeAAO Verified (Spec)or just stay neutral ("conformant" lowercase is fine when not naming the mark)Tier 1/Tier 2— fully retired language; flag any remaining occurrencesAAO Verified mark(without qualifier) — distinguish: is this referring to the umbrella mark (fine) or specifically (Live) (needs qualification)?Verified ⊆ Conformantcontainment language — replace with the independent-axes framing2. Pages likely to mention the badge that may not have been touched
docs/building/compliance-catalog.mdxdocs/building/validate-your-agent.mdxdocs/building/get-test-ready.mdxdocs/learning/overview.mdxand learning track pages (tracks/*.mdx)docs/community/working-group.mdxdocs/reference/versioning.mdxdocs/reference/known-limitations.mdxskills/*/SKILL.md)docs/intro.mdxanddocs/quickstart.mdx3. Independence framing — check for surviving prerequisite language
Per #3536, (Spec) and (Live) are independent. Audit for surviving phrasing like:
4. attestation_verifier reporting/runner split
Once #3561 is implemented, every doc that mentions
attestation_verifiershould be checked: does it accurately say "reporting" rather than implying it covers all of (Live)? The note added in #3537 covers the primary doc; sweep for secondary ones.5. Cross-link / anchor audit
When sections were renamed during the (Spec)/(Live) reframing, anchor links from other docs may have broken. Run the broken-links check after the sweep and confirm:
#two-marks-...anchors removed fromaao-verified.mdxare not still linked from elsewhere#why-these-two-marks-not-the-earlier-tier-1--tier-2(currently inaao-verified.mdx) is still the canonical landing for "Why two marks?" cross-refs#how-to-claim-each-qualifier,#what-aao-verified-is-not,#relationship-to-supporting-specs) have no broken inbound links6. Storyboard / compliance-suite copy
The badge name is shown in the compliance heartbeat output, the storyboard runner CLI, and some of the lint rules. Audit:
static/compliance/source/**/*.yaml— any prose referring to the mark by namescripts/lint-*.cjs— any error messages mentioning "AdCP Conformant" or old framings@adcp/clientstoryboard runner output strings (separate repo, but worth flagging)7. Changeset entries already queued for 3.1.0-beta
Six changesets in
.changeset/reference the mark. Grep:Any hits should be updated to current framing — the release notes need to read consistently.
Acceptance
Out of scope
Timeline
Ship before 3.1.0 GA so the release ships with a coherent doc set.
Related