Skip to content

Epic: CI health & gating + journey coverage — green CI, and every promise tested end to end #1850

Open
34 of 59 issues completed

Description

@vybe

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.

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)

  1. Tracker: public. Sub-issues cannot cross repos and test infra is core code.
  2. Journey cap: ~15. Past that it is a lane or a step, not a journey.
  3. 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.
  4. Hosted lanes: DigitalOcean supported (must be green to cut); Vultr and Hostinger best-effort.
  5. Owner: the trinity dev 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

  1. added
    type-epicParent epic issue (groups child sub-issues)
    status-readyGreenlit and ready for development (vetted; counterpart to status-incubating)
    on Jul 28, 2026
  2. 37 remaining items

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

priority-p2Importantstatus-readyGreenlit and ready for development (vetted; counterpart to status-incubating)theme-devexTheme: DevExtype-epicParent epic issue (groups child sub-issues)

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions