Layered test artifacts

STI organizes test work in layers so humans and agents edit the right abstraction without collapsing strategy into raw pytest strings.

Updated

Layer Artifact Typical author Format
L0 — Intent Quality goal, risk hypothesis Human (PM/BA/QA) ForgeRun intent or short GoalSpec
L1 — Strategy Levels, types, exit criteria Human + LCDL assist Markdown or lmeta unit
L2 — Plan Scope, environments, RTM skeleton Human + agent Markdown + trace links
L3 — Suite Feature/risk-area grouping Agent-heavy, human review test_suite.v1 JSON
L4 — Case Atomic preconditions, steps, oracle Agent generate, human edit test_case.v1 JSON
L5 — Execution binding pytest id, Playwright spec, Fleet template SE / DevOps oracle.binding + template id
L6 — Campaign Orchestration flow Reviewable by all .lmeta top-level flow

lmeta composition

Layers L1–L4 map to lmeta v3 units with extends/overrides for variants (smoke vs regression vs release-gate). Layer L6 is the campaign document that wires units, forgeConsumerHook for local/Fleet execution, and optional forgeOptimizeLoop for generate→evaluate→refine (parity pattern from LCDL PDF extractor flows).

Oracle discipline

Prefer deterministic oracles at L5:

  • assert / schema / subprocess (exit code)
  • llm_gate only when judgment cannot be mechanized — always with LCDL contract and evidence

Schema reference

Cursor workflow

Composer prompts in .cursor/composer/ target L3–L4 authoring and L6 run triggers. Pair with versona-testing for formal §5 review sessions.