Repository navigation
Epic: CI health & gating + journey coverage — green CI, and every promise tested end to end #1850
Description
Carved out of #1259 (epic-health pass 2026-07-28), rechartered 2026-08-20 to name both halves explicitly. Its previous charter ("green CI, test infrastructure, automated validation") is why journey work had no obvious home and #2037 ended up parentless.
Charter — two halves, one epic
A. CI health & gating — a trustworthy, fully-green CI that catches regressions before they ship.
- CI/CD pipeline health and coverage (feat: implement CI/CD pipeline for automated test suite execution on dev/staging #851 anchor, with Add frontend test infrastructure (Vitest + Playwright) #556)
- The merge-gate hole: dev's required checks run no unit tests (ci: dev's required checks run no unit tests, so two independently-green PRs can redden dev on contact #1958)
- Frontend + integration test infrastructure
- Automated/scheduled validation runs on the dev instance
- Template/bundle validation guards
B. Journey coverage — every promise the platform makes to a user or an agent is tested end to end, and the suite grows when the product grows.
- The rails: a
tests/journeys/tier, a per-PR journey-smoke gate, one invariant namespace, the journey catalog, consolidated testing docs - The journeys themselves: J01–J10
- The process gates that make coverage an obligation rather than a request
Why both halves live here
They are the same problem seen from two ends: the suite defends past fixes (ticket-named tests) rather than asserting current promises, and the gate that would catch the difference collects tests/unit/ only. Splitting them into two epics recreates the fragmentation this recharter exists to kill.
The durable/delivery split — read this before judging the %
An epic is a delivery vehicle with a rollup % and a hard 100-sub-issue cap (#1045 already hit it). The durable home for journey coverage is tests/journeys/catalog.yaml + docs/testing/STRATEGY.md, which never close and expand with the roadmap.
With ~40 mixed children — one-off CI bugs alongside structural journey work — this epic's % is burn-down on the current wave, not a coverage number. Coverage % comes from the catalog (journeys built and green ÷ journeys declared). Two numbers, two questions.
Operator decisions (2026-08-20)
- Tracker: public. Sub-issues cannot cross repos and test infra is core code.
- Journey cap: ~15. Past that it is a lane or a step, not a journey.
- Release-blocking: advisory this cut, automatic from the next. A suite built during the release it would block cannot also be that release's gate.
- Hosted lanes: DigitalOcean supported (must be green to cut); Vultr and Hostinger best-effort.
- Owner: the
trinitydev agent by default, with the operator named on the top three journeys.
Sequencing
R1–R5 ship before any journey issue moves to status-in-progress. No runner means no process.
Not duplicated here: #1771 (property testing — the pure-function complement) · #1766 (pull/work-stealing soak) · #2037 (adopted, not recreated) · #1958 (absorbed by R2).
Placement: workstream 3, Band A release floor (ROADMAP.md). #1259 keeps the sibling charter: execution correctness.
Activity
37 remaining items