$npx -y skills add AdamBien/airails --skill system-testsGeneric, composable conventions for system tests — black-box tests exercising the running system from the outside through its public surface. Defines the stack-neutral contract (no internals, environment coordinates as configuration, test isolation, total verdict reporting) and t
| 1 | # System Tests |
| 2 | |
| 3 | A system test exercises the **running system** from the **outside** through its **public surface** — HTTP, CLI, messaging, files. It observes what a consumer observes; nothing else. |
| 4 | |
| 5 | ## Contract |
| 6 | |
| 7 | - **Black box** — assert only through the public surface: no mocks, no internal classes, no database access unless the database is the public surface. Behavior not observable from outside is a unit or integration concern. |
| 8 | - **Running system** — tests target a started instance and never instantiate production classes. Starting and deploying is the stack skill's concern. |
| 9 | - **Coordinates as configuration** — base URL, broker address, working directory come from configuration (e.g. microprofile-server's `service_uri` configKey), never hardcoded. The same suite runs unchanged against dev, CI, and a migration target. |
| 10 | - **Isolation** — each test runs alone and in any order; seed-data assumptions are declared, not implied. |
| 11 | - **Total reporting** — every test appears in the result with a verdict; skipped is a verdict, not an omission. |
| 12 | |
| 13 | ## Expectation Origins |
| 14 | |
| 15 | Same test level, different oracle: |
| 16 | |
| 17 | | Origin | Expected values come from | Skill | |
| 18 | |---|---|---| |
| 19 | | Specified | hand-written from known requirements | (default) | |
| 20 | | Spec-derived | EARS statements of a capability spec | ears-tests | |
| 21 | | Recorded | golden masters of the running legacy system | characterization-tests | |
| 22 | |
| 23 | ## Composition |
| 24 | |
| 25 | - This skill owns the contract above. |
| 26 | - The composed stack skill owns launch mechanics, module layout, and test syntax — microprofile-server: `-st` Maven module, JUnit 5, rest client; java-cli-app: zunit; web-components: browser-driven checks. |
| 27 | - ears-tests and characterization-tests own their expectation origins and compose with both this skill and the stack skill. |