Handbook
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_gateonly 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.