Skip to content

impl(pm-stack): contract test suite for publisher -> collector -> aggregator schemas (the #1110 failure class) #1176

Closed

Description

@dezren39

Finding

Evidence (live review 2026-10-26 ~22:40 CDT, laptop loopback + gh, cross-checked): Tonight's #1110 (orchestration section rejected over provenance object-vs-string) is the third shape-drift incident on this contract (run 1 of #899 had shape defects caught by a hand audit; the /today crash of Oct 26 was a publisher shape change). Each side tests against its own fixtures, so drift ships silently and surfaces as missing data on pages.

Proposal

A shared contract corpus: real published sections (orchestration, quota, dns, registry, projects) captured as golden fixtures in the repo, validated by (a) aggregator tests running isFleetFeed/isOrchestrationSection/etc. over the corpus, (b) collector tests asserting its output passes the same checks, (c) the orchestrator's pre-publish self-check running the aggregator's actual validator (vendored or via the aggregator package) rather than a prose description of it. Contract changes require corpus + both sides in one PR.

Acceptance

Acceptance criteria

Activity

  1. added
    kind/testTest coverage, test infrastructure, or test-only fixes
    app/pm-stackpm-stack (Pad/Grist) in developing-today/code
    on Oct 27, 2026
  2. developing-today commented on Oct 27, 2026

    @developing-today
    Contributor
  3. added
    source/humanFiled directly by a human
    meta/enrichedIntake review done: acceptance criteria, links, and normalized labels added
    priority/highImportant and time-sensitive
    effort/mMedium: expected under 1 day of work
    on Oct 28, 2026
  4. dezren39 commented on Oct 28, 2026

    @dezren39
    MemberAuthor

    Intake review

    Fleet monitor intake enrichment (protocol §5) — 2026-10-28T06:26Z. This issue was filed 2026-10-27 by Drew (dezren39) from the 2026-10-26 live pm-stack review and had no priority/* label and no standard ## Acceptance criteria section; both are now supplied (the body's own Acceptance text is restated under the standard heading, original body preserved verbatim above it).

  5. added
    work/assignedQueue worker lifecycle state
    queue/claimedQueue worker lifecycle state
    and removed on Nov 2, 2026
  6. 39 remaining items

  7. added
    queue/queuedHas a queued task in the Supabase agent queue
    queue/parkedQueue task is parked (waiting on CI, time, or an event)
    queue/claimedQueue worker lifecycle state
    and removed
    queue/parkedQueue task is parked (waiting on CI, time, or an event)
    queue/queuedHas a queued task in the Supabase agent queue
    status/parkedDeliberately paused with a recorded resume condition
    on Nov 3, 2026
  8. dezren39 commented on Nov 4, 2026

    @dezren39
    MemberAuthor

    🤖 Agent note · picked up

  9. added a commit that references this issue on Nov 4, 2026
  10. dezren39 commented on Nov 4, 2026

    @dezren39
    MemberAuthor

    🤖 Agent note · done

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

Metadata

Metadata

Assignees

Labels

app/pm-stackpm-stack (Pad/Grist) in developing-today/codeeffort/mMedium: expected under 1 day of workkind/testTest coverage, test infrastructure, or test-only fixesmeta/enrichedIntake review done: acceptance criteria, links, and normalized labels addedpriority/highImportant and time-sensitivesource/humanFiled directly by a humantask/small-fixQueue packet kind: bounded fix with reproduction and targeted tests

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions