Skip to content

fix(usage-hub): bring #1047 up to the epic pattern — labels, children, and a scope ruling on the follow-ups #1217

Closed

Description

@dezren39

Part of epic #1184 (PM stack coherence review, 2026-10-26).

Epic #1047 breaks the repo's own epic pattern and is leaking scope. Evidence: #1047 carries only the meta/follow-up label — no epic, kind, status, priority or app labels — and its 12 children are linked by body text only with zero native sub-issues. Later usage-hub follow-ups #1111 and #1114-#1119 were filed outside it, breakaway epic #1149 covers substantially the same quota program, and #1047's acceptance is unmeasurable because its real child set is undefined.

Acceptance:

Acceptance criteria

Activity

  1. added
    kind/choreRoutine maintenance, housekeeping, dependency hygiene
    on Oct 27, 2026
  2. developing-today commented on Oct 27, 2026

    @developing-today
    Contributor
  3. added
    priority/normalOrdinary priority (the default)
    app/pm-stackpm-stack (Pad/Grist) in developing-today/code
    on Oct 27, 2026
  4. added
    source/humanFiled directly by a human
    effort/sSmall: expected under 2 hours of work
    meta/enrichedIntake review done: acceptance criteria, links, and normalized labels added
    on Oct 28, 2026
  5. dezren39 commented on Oct 28, 2026

    @dezren39
    MemberAuthor

    Intake review

    Fleet-monitor intake pass (protocol §5), 2026-10-28.

    Still live: verified this run — the issue is open, and a merged-PR search found no PR that explicitly resolves it (no fixes-reference; the only real merged hit in the search set, PR #1318, does not mention it). It does not merely look solved.

    Related: Related: epic #1184; subject epic #1047; follow-ups #1111, #1114–#1119; breakaway #1149.

    Notes / risks: Risk: the scope ruling on #1149 is a judgment call — record the reasoning on #1047 itself, not only here.

    Suggested approach: Suggested approach: labels first, then native sub-issues for the confirmed child set, then restate the epic body with the full list + measurable acceptance.

    Labels normalized this pass (see the issue's label set); acceptance criteria appended to the body as the standard ## Acceptance criteria section, original body preserved verbatim above it.

  6. added
    work/assignedQueue worker lifecycle state
    queue/claimedQueue worker lifecycle state
    and removed on Nov 1, 2026
  7. 12 remaining items

  8. added
    queue/parkedQueue task is parked (waiting on CI, time, or an event)
    status/parkedDeliberately paused with a recorded resume condition
    and removed
    queue/claimedQueue worker lifecycle state
    on Nov 1, 2026
  9. dezren39 commented on Nov 1, 2026

    @dezren39
    MemberAuthor

    🤖 Agent note · parked

  10. added
    queue/claimedQueue worker lifecycle state
    and removed
    status/parkedDeliberately paused with a recorded resume condition
    queue/parkedQueue task is parked (waiting on CI, time, or an event)
    on Nov 1, 2026
  11. dezren39 commented on Nov 1, 2026

    @dezren39
    MemberAuthor

    🤖 Agent note · picked up

  12. dezren39 commented on Nov 1, 2026

    @dezren39
    MemberAuthor

    🤖 Agent note · done

    Summary of the curation (all verified fresh after the changes):

    1. Labels on epic(usage-hub): SaaS/cloud services completion — v2 live collectors, daily console reads, v3 reconciliation #1047: added kind/feature, status/needs-triage, source/human, priority/normal, now, effort/l, meta/enriched, app/pm-stack, mode/online (the epic(dashboard): PM stack coherence - single-URL, fresh data, triage-able, hierarchical #1184 pattern); kept meta/follow-up and epic. Verified: gh issue view 1047 shows the full set.
    2. Children attached to epic(usage-hub): SaaS/cloud services completion — v2 live collectors, daily console reads, v3 reconciliation #1047 as native sub-issues (10): feat(usage-hub): v2 Turso usage collector — verify org usage route, daily read #1049, chore(usage-hub): close master-tracker open checks (ChatGPT tier, Go exact %, Claude reset, Wispr, Bitwarden, Muse plan) #1055, feat(usage-hub): v3 invoice reconciliation — Cloudflare Nov 2 first, monthly billed-vs-estimated #1056, feat(usage-hub): v3 charges auto-matching — Plaid + Gmail alerts to services #1057, feat(usage-hub): v2 collectors — Modal credits (monthly read) + Bitwarden SM counts #1111, design(usage-hub): managed quota-credential pattern for console-only pools #1115, feat(usage-hub): self-monitoring — feed staleness + fixture-fallback alarm #1116, chore(usage-hub): OpenCode Go lapse handling — Personal Nov 2, Lab Nov 6 #1118, epic(quota-plane): Stage 2 — 15-minute quota gathering in the PM stack, token adapters, automated pool decisions #1149, feat(usage-hub): #1116 remainder items 4+5 — stewardship stale-feed finding + collector-stop acceptance verification #2990. Verified: the sub_issues API returns exactly this set, all open.
    3. epic(quota-plane): Stage 2 — 15-minute quota gathering in the PM stack, token adapters, automated pool decisions #1149 ruling — attached as sub-epic. Its own body declares it the Stage-2 epic under epic(usage-hub): SaaS/cloud services completion — v2 live collectors, daily console reads, v3 reconciliation #1047 (Drew's direction 2026-10-26). Boundary: epic(usage-hub): SaaS/cloud services completion — v2 live collectors, daily console reads, v3 reconciliation #1047 owns the usage-hub program (v2 collectors, daily console reads, v3 reconciliation, presentation); epic(quota-plane): Stage 2 — 15-minute quota gathering in the PM stack, token adapters, automated pool decisions #1149 owns the quota-plane Stage-2 slice (15-minute gathering, token adapters, automated pool decisions). Quota-plane implementation issues belong under epic(quota-plane): Stage 2 — 15-minute quota gathering in the PM stack, token adapters, automated pool decisions #1149. Neither epic closed or merged.
    4. Exclusions (named on epic(usage-hub): SaaS/cloud services completion — v2 live collectors, daily console reads, v3 reconciliation #1047 with reasons): blocked(usage-hub): Open Design quota instrumentation — laptop sign-in, cookie capture, parser verification #1054 (user/owned hard stop — fleet curation does not touch it), fix(usage-hub): bring #1047 up to the epic pattern — labels, children, and a scope ruling on the follow-ups #1217 itself (this fix), fix(usage-hub): disabled providers must not appear in quota — audit + regression test #1114/feat(usage-hub): snapshot retention — 13-month raw, monthly rollups, backup check #1117/test(usage-hub): contract tests for /api/quota.json saas/payg schema #1119 (already closed; listed in the epic body as program history), aggregator bug issues mentioning usage-hub only in body text (their own queue tasks own them).
    5. Epic body: epic(usage-hub): SaaS/cloud services completion — v2 live collectors, daily console reads, v3 reconciliation #1047's body now lists the full child set and restates measurable acceptance (epic closes when every child is closed, with the v2-collectors / daily-console-reads / v3-reconciliation outcomes named).

    No child issue's content or labels were changed beyond the sub-issue link; #1047 and #1149 both remain open.

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/sSmall: expected under 2 hours of workkind/choreRoutine maintenance, housekeeping, dependency hygienemeta/enrichedIntake review done: acceptance criteria, links, and normalized labels addedpriority/normalOrdinary priority (the default)source/humanFiled directly by a human

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions