Skip to content

design(pm-stack): forecasting — epic ETAs from measured velocity, quota-wall prediction, and stall-risk scoring #1256

Open
2 of 5 issues completed

Description

@dezren39

Part of epic #1184 (PM stack coherence — ideal-system design series, 2026-10-26).

Why

Roadmap and Projects today show state, never trajectory: Drew can't see whether an epic lands this month, which pool walls first, or which in-flight item is quietly dying. The ideal stack forecasts from its own measurements — completion velocity per epic, per-pool burn vs reset windows, and stall-risk signals (age, blocked time, session silence) — and shows every forecast with its confidence and inputs.

Design questions to answer

  • Velocity model: what counts as throughput per epic/project (closed sub-issues, merged PRs), over what windows, and how are small-sample epics handled?
  • Quota-wall prediction: per pool, projected exhaustion vs window reset using current burn and scheduled work — what data does the quota plane need to expose?
  • Stall-risk score: which signals (blocked age, no-activity age, claimed-but-silent, repeated requeue) and what threshold surfaces an item, where?
  • Presentation: how are ETA ranges and confidence rendered on Roadmap/Projects so a weak forecast never looks like a date commitment?
  • Backtesting: how do we measure forecast accuracy against what actually happened and tune or retire bad models?

Acceptance

Acceptance criteria

  • A design note answering every question listed under "Design questions to answer" is landed in the repo doc/ tree and linked from this issue.
  • Implementation issues are filed and linked as sub-issues of epic epic(dashboard): PM stack coherence - single-URL, fresh data, triage-able, hierarchical #1184 (developing-today/code), each with its own acceptance criteria — this design issue does not itself carry implementation work.
  • Every open question that needs Drew is named explicitly in the design note (not buried in prose).
  • The velocity model states its windows and small-sample handling explicitly, and every forecast the design specifies renders with its confidence and inputs — never as a bare date.

Activity

  1. added
    kind/featureNew feature or capability request
    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
    priority/normalOrdinary priority (the default)
    effort/mMedium: expected under 1 day of work
    meta/enrichedIntake review done: acceptance criteria, links, and normalized labels added
    on Oct 28, 2026
  4. dezren39 commented on Oct 28, 2026

    @dezren39
    MemberAuthor

    Intake review

    Fleet-monitor intake pass (2026-10-28T02:40:00Z): this issue was missing a priority/* label and/or the standard ## Acceptance criteria section and was not yet meta/enriched. The criteria section has been appended to the body (original text preserved verbatim above it) and labels normalized.

    Related: Epic: #1184 (PM stack coherence design series). Siblings in the same series were intake-enriched in prior monitor runs (#1264–#1277).

    Notes: Design-series issue (forecasting), filed 2026-10-27 by Drew as part of the #1184 batch; body is well-formed (Why + design questions + its own Acceptance section). Still live: merged-PR search this run returns only unrelated PRs whose text coincidentally contains the number — none resolves or implements this design.

    Risks: Design-only stall risk (see tail).

    Suggested approach: This is one of the #1184 PM-stack coherence design series; its own "Acceptance" section already states the bar (design note in doc/ + implementation sub-issues), and the appended criteria restate that in the fleet's standard heading so the monitor and queue can gate on it. Risks: design-only items can sit silently — per house rules a design with no implementation link is flagged by the next sweep, so the follow-through that matters is the sub-issue filing, not the note alone. Suggested approach: answer the design questions against the current aggregator/orchestrator code (cite file:line), land the note, file the implementation sub-issues in the same pass.

    🤖 Agent note · state: handed off

    • Agent: fleet monitor (repo-fleet-monitor)
    • Session / ID: repo-fleet-monitor run 2026-10-27 21:19 CDT
    • Found via: monitor reconciliation (intake enrichment duty)
    • Task: Intake enrichment — acceptance criteria appended, labels normalized, this review posted; the item itself is not being worked by the monitor.
    • Expectation: unenriched → enriched; routing/work happens through the normal queue/sweep paths.
    • Links: n/a
  5. added
    work/assignedQueue worker lifecycle state
    queue/claimedQueue worker lifecycle state
    and removed on Nov 1, 2026
  6. 36 remaining items

  7. dezren39 commented on Nov 3, 2026

    @dezren39
    MemberAuthor

    🤖 Agent note · handed off

    • Agent: fleet monitor (repo-fleet-monitor)
    • Session / ID: task 7659
    • Found via: monitor reconciliation
    • Task: Claim-eviction repair: the queue task for this issue is queued and unclaimed (its previous claim's lease expired without a complete/park/block), but the issue labels still said claimed. Labels reset to the truth: queue/queued + status/needs-triage. Checkpoint stage on the task: handed_off.
    • Expectation: a queue lane re-claims the task and resumes from the checkpoint stage named in the task progress.
  8. added
    work/assignedQueue worker lifecycle state
    queue/claimedQueue worker lifecycle state
    and removed
    queue/queuedHas a queued task in the Supabase agent queue
    on Nov 3, 2026
  9. dezren39 commented on Nov 3, 2026

    @dezren39
    MemberAuthor

    🤖 Agent note · handed off

  10. dezren39 commented on Nov 3, 2026

    @dezren39
    MemberAuthor

    agent-note:v1
    event: picked_up
    task: 7659 (repo-health-code-pilot, repo-worker-code; OpenChamber scheduled lane 9aca43b4-5439-4939-9f71-323f5d32521b)
    state: claimed, origin=openchamber-scheduled-lane. Fresh check: #1256 is OPEN with no hard-stop labels. I am validating its design delivery and existing implementation subissues against current main before deciding whether anything remains to route.
    next: record evidence from merged PR #3988 and the current state of #3981/#3982/#3983/#3984/#3986; preserve the issue as an open tracking parent if implementation work remains.

  11. dezren39 commented on Nov 3, 2026

    @dezren39
    MemberAuthor

    Coverage triage (task 7659) — CONFIRMED, still-live tracking parent

    Fresh verification at current main: origin/main is 298f35f75b4a62e71666810f9a972138a088fb55, and design PR #3988 merged at b11292f833849f0578914738ac8505f41d52ae4c (ancestor of current main). The dated design note is present at doc/2026-11-01T21-07-00Z_design_pm-stack_forecasting/2026-11-01T21-07-00Z_design_pm-stack_forecasting.md. The five design questions and implementation split were already addressed.

    Existing implementation children: #3981 is CLOSED; #3982 is OPEN/in progress; #3983 is OPEN/parked; #3984 is OPEN/blocked; #3986 is OPEN/parked. These are the already-filed implementation follow-ups; no additional split or task is needed. Prior completion notes explicitly keep #1256 open as their tracking parent, so I am leaving it OPEN rather than closing it prematurely. No code changes or tests were needed for this metadata/design triage.

    🤖 Agent note · triaged

  12. dezren39 commented on Nov 3, 2026

    @dezren39
    MemberAuthor

    🤖 Agent note · done — triaged

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/featureNew feature or capability requestmeta/enrichedIntake review done: acceptance criteria, links, and normalized labels addedpriority/normalOrdinary priority (the default)source/humanFiled directly by a humantask/triageQueue packet kind: verify, reproduce, and route this item

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions