Skip to content

TRACKING: Make silent failures loud — execution checklist (#421) #429

Description

@Polichinel

Execution checklist for #421. One line per issue, in the order they should be done. Tick as each merges to development.

Order

Why this order

#422 and #423 first — smallest, fully local, no operator time, no interaction with anything else. They also establish the epic's shape: a test that fails today for a real reason.

#424 before #425 — Story 3 moves gates into CI; Story 4 adds a new gate. Adding the gate after the mechanism exists means it lands in the right place the first time.

#426 late — the only story that changes what happens on every git push. A hook that misfires blocks all work, so it should not be under a half-finished epic.

#427 any time — independent of the rest, and gated on operator availability rather than on code. Start it early if the operator is free; it has real elapsed-time waits.

#434 after #424. They are the same idea at two layers — CI's uv lock --check and the host's tag-vs-HEAD refusal — and having the cheap CI one first makes the production one easier to describe.

#428 last, strictly. It reports outcomes. Written earlier it would report predictions, and the difference between those two is the entire subject of this epic.

Per-story ritual — mandatory, no exceptions

Every story follows this, in order:

  1. Branch from development, implement, open a PR
  2. /code-review medium
  3. /register-risk — address anything it registers
  4. /review-diff
  5. /register-risk — address anything it registers
  6. If either /register-risk registered anything, return to step 1. Maximum 2 iterations.
  7. /ship-it, push, merge to development

No branching off main, no PRs to main — everything through development.

Standing constraints for this epic

  • WET before DRY. Three stories touch CI workflows and two add shell scripts. Duplicate first; a shared helper is not on this epic's scope. Premature abstraction here would itself be untested shared machinery.
  • Skip, do not fail, where the environment cannot answer (C-320). Several of these gates cannot run in CI. pytest.skip with a reason that says why, and never a silent pass.
  • One line per command when the operator runs anything (C-339 — a multi-line paste destroyed a 528 KB production log on 2026-08-03).
  • No new merge-blocking checks for monitoring. Monitoring failures open issues; they do not redden pull requests.

Definition of done for the epic

The register is accurate — including where it says a concern is only narrowed. Every mechanism this epic touched has been observed doing its job, not merely believed to. #428 records both, and #421 closes.

Activity

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    epicMulti-story work packageplanning

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions