Skip to content

[TRACKING] One delivery path, one partner boundary — execution checklist (#148) #157

Closed

Description

@Polichinel

Execution checklist for epic #148. Cross off in order — the sequence is load-bearing, not cosmetic.

The order and why

S1 ──┬──> S2
     ├──> S3 ──> S4 ──┐
     └────────────────┴──> S5 ──┬──> S6
                                └──> S7 ──> S8

S1 first because it removes ~200 lines that every later story would otherwise have to move, read around, or keep working. S5 late because it is the largest diff and benefits most from a smaller tree. S6/S7 after S5 because they document and pin the end state, not an intermediate one.

Checklist

Ritual per story

/review-diff → /register-risk if there are findings → address them → /ship-it → PR → CI green → merge → sync development.

Invariants that must hold at every step

  1. The wire contract does not change. test_hop_b_sink_e2e.py and test_wire_*.py byte-parity fixtures green throughout. Any moved byte means the story is wrong.
  2. All 40+ ADR-013 falsification guards green.
  3. views_pipeline_core stays imported by exactly one module. It is one file wide today; no story may spread it.
  4. Expect the 5 known local pyarrow byte-parity failures (local 23.0.1 vs pinned 16.1.0) and no new ones — CI is authoritative.

Definition of done for the epic

  • One delivery path; an incomplete launch config raises naming the missing key
  • unfao/managers/unfao.py < 450 lines (from 636)
  • Partner-neutral machinery importable with zero reference to unfao, proven by subprocess test
  • Every row of ADR-012's ontology table verifiable by a command
  • Register reflects the end state; Cluster L closed
  • docs/CLONING.md exists and is short enough to read before cutting a repo

Not in this epic — deliberately

Strategy hierarchy · DeliveryProfile object (C-33/D-09 — awaits #97's real second-partner needs) · shared client library · pipeline-core de-inheritance (C-40's shell — blocked on their 3.0.0) · repo rename (D-12/#96).

Each is an abstraction for a consumer that does not exist yet. WET before DRY — build it when the second partner shows its shape, and defer behind a named trigger.

Out-of-epic dependencies

None. This epic is deliberately free of upstream blocks — everything else open in the register waits on pipeline-core, the 3.0.0 release signal, views-datafactory#387 or faoapi. That is why it can run now.

Activity

  1. added
    epicA large capability spanning multiple stories
    planningInvestigation/spike/decision work
    on Jul 31, 2026
  2. added a commit that references this issue on Aug 1, 2026
    3c0d3e9
  3. Polichinel commented on Aug 1, 2026

    @Polichinel
    CollaboratorAuthor

    ✅ Epic complete — all eight stories merged

    PRs #159, #160, #161, #162, #163, #164, #165, #166 — every one CI-green.

    Invariants held throughout

    1. The wire contract did not change. The §10 golden fixture and byte-parity tests were untouched and green on CI at all eight merges. contract_version unchanged.
    2. All ADR-013 falsification guards green.
    3. views_pipeline_core still imported by exactly one module — now pinned mechanically rather than by claim.

    Measured

    before after
    Manager 636 lines 406
    Config forks 14 0 + one refusal
    pandas importers 3 1
    Lookup reads per delivery 3 1
    Open register concerns 34 25

    Also closed

    #145 (superseded — the epic retired rather than guarded) and register Cluster L, whose prediction held exactly: one deletion, not five fixes.

    Deliberately still open

    C-40 — the double inheritance stands. Its surface shrank and its blast radius is now pinned, but the remaining fix waits on views-pipeline-core 3.0.0, which is a release signal rather than engineering work. Closing it would have been the easy lie.

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

    epicA large capability spanning multiple storiesplanningInvestigation/spike/decision work

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions