Skip to content

Policy: do SHOULD-level (WARNING) checks count toward Tier-1 conformance? #245

@pcarleton

Description

@pcarleton

SEP-1730 says Tier-1 requires "all conformance tests pass" / "100% compliance" but doesn't define whether SHOULD-level checks (which emit WARNING) count. Our own tooling disagrees with itself:

Layer Behavior Location
SEP-1730 undefined seps/1730
tier-check WARNING ignored in pass_rate (only SUCCESS/FAILURE counted) src/tier-check/checks/test-conformance-results.ts:55-57
CI runner warnings > 0overallFailure src/runner/client.ts:202

Today every Tier-1 SDK (Go, TypeScript, Python) shows 0 warnings. So the de-facto policy is "WARNINGs must be fixed," but tier-check would still award Tier-1 if one slipped through.

What a WARNING actually means here: since conformance runs against a maximally-configured everything-client, a WARNING signals "the SDK cannot be configured to satisfy this SHOULD" (missing API surface), not "a typical app skips it." That's a stronger statement than a SHOULD usually carries.

Decide and document one of:

  • (a) Tier-1 requires zero WARNINGs → align tier-check with client.ts:202; scenario authors keep using WARNING for SHOULD and it's effectively required
  • (b) Tier-1 tolerates WARNINGs → drop warnings > 0 from client.ts:202 overallFailure; WARNINGs become genuinely advisory
  • (c) Distinguish "SDK can't" (FAILURE) from "SDK can but everything-client didn't opt in" (WARNING) — probably impractical

Since it's roughly "0 cost" to do it today, and having SHOULD checks be required for Tier 1 makes the ecosystem stronger, I'm leaning towards (a).

Whichever we pick should be recorded in AGENTS.md and potentially proposed as a clarification to SEP-1730.

Came up reviewing #200 (SEP-2164), where the same SHOULD-vs-FAILURE question determines whether a wrong error code blocks Tier-1. Related: #243.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions