Skip to content

spec(qa): TestScenarioSchema/TestSuiteSchema are declared-but-inert — no runtime consumer, no liveness ledger #6247

Description

@baozhoutao

Recorded while building the standing platform test checklist (branch claude/platform-test-checklist-ocwugl), not claiming or fixing here — filing per Prime Directive #10.

Finding. packages/spec/src/qa/testing.zod.ts declares a full test-scenario protocol — TestSuiteSchema, TestScenarioSchema, TestStepSchema (action + assertions + capture), TestActionSchema (create_record/api_call/run_script/…), TestAssertionSchema — and it is documented at content/docs/references/qa/testing.mdx. But:

  • grep finds no runtime consumer: the only references are the domain's own testing.test.ts, type-alias-convention.pin.test.ts, the generated api-surface/qa.json baseline, and the generated reference docs;
  • the qa domain has no packages/spec/liveness/ entry, so the ADR-0049/0054 enforce-or-remove machinery never looks at it.

Under ADR-0049 that is declared-but-unenforced surface: the docs advertise a testing protocol nothing executes (declared ≠ enforced, cf. Prime Directive #10's #1475 precedent).

Options (decision for the enforce-or-remove worklist, cf. #2998 Track B):

  1. Adopt — give it a consumer (e.g. an objectstack test runner, or serialization target for @objectstack/verify scenarios), and add the missing liveness ledger file; or
  2. Retire — remove the domain via the spec-property-retirement route (ADR-0087 registries, generated baselines, docs regen).

Context: the new docs/qa/platform-checklist/ ledger deliberately does not reuse this schema (its action vocabulary is headless-API-only and cannot express browser clauses/oracles/fixtures/evidence) — rationale recorded in that README, so whichever way this lands, the checklist is unaffected.

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions