Skip to content

Roadmap: normalise horizon vocabulary and add per-theme progress rollups at every grain #1207

Open

Description

@dezren39

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

Roadmap grains silently hide rows and the timeline has no progress rollup. Evidence: derive.ts roadmapDayGrain returns coarse/outside rows rendered only as a muted footnote; timeline() groups by Area x Horizon with no per-cell/per-theme counts or % done. Horizon vocabulary in seed data mixes 'Q4 2026', ISO dates, Ongoing, Now, Next, Later and Unscheduled, with the last three bucketed as opaque 'other' lanes.

Acceptance:

  • No row is reachable only via another grain; dateless rows render in a visible 'undated' lane.
  • Each theme header shows done/total rollups.
  • Horizon is constrained to a documented vocabulary and seed + live Grist vocabularies are validated by a script/test.

Acceptance criteria

  • No roadmap row is reachable only via another grain; dateless rows render in a visible 'undated' lane.
  • Each theme header shows done/total progress rollups.
  • Horizon is constrained to a documented vocabulary, and seed plus live Grist vocabularies are validated by a script/test.

Activity

  1. developing-today commented on Oct 27, 2026

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

    @dezren39
    MemberAuthor

    Intake review — fleet monitor

    Liveness: Verified still live at intake (2026-10-28): issue is open and unheld, and a merged-PR search for #1207 returned only unrelated text matches (no PR title or fix reference resolves this item). Part of epic #1184 (PM stack coherence review, 2026-10-26); sibling batch #1210–#1222 was enriched in the previous monitor run.

    Notes: Related: #1628 (filed 2026-10-28) shows horizon dates are also never validated at the aggregator layer — month 13 invents a Q5 lane. Vocabulary normalisation here and validation there should agree on one documented vocabulary.

    Risks: Scope creep across the pm-stack pages is the main risk for this batch; the acceptance criteria above (converted from the issue's original Acceptance list) bound the work. CI on the aggregator's render/derive tests is the verification surface.

    Suggested approach: Take the acceptance criteria in order; keep the JSON twins in lockstep with the HTML pages, per the batch convention.

    Labels normalised this pass: source/human (coherence-review filer), effort/m, meta/enriched; existing kind/priority/status/app labels kept.

  4. added
    work/assignedQueue worker lifecycle state
    queue/claimedQueue worker lifecycle state
    and removed on Nov 1, 2026
  5. 13 remaining items

  6. added
    queue/queuedHas a queued task in the Supabase agent queue
    task/triageQueue packet kind: verify, reproduce, and route this item
    and removed
    queue/claimedQueue worker lifecycle state
    work/assignedQueue worker lifecycle state
    on Nov 1, 2026
  7. dezren39 commented on Nov 3, 2026

    @dezren39
    MemberAuthor

    agent-note:v1
    state: triaged (coverage pass)
    Coverage pass 2026-11-03: reviewed in the fleet-wide per-issue pass (drift / overlap / already-handled / stale / blockers / ordering). Verdict: still live; queued in repo-health-code-pilot as triage at priority 40 (priority/normal). If this is already handled at current main, the triage closes it with evidence; if it needs splitting, the triage files the split.
    Found via: coverage pass 2026-11-03

  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 · done — duplicate triage packet; verdict already posted, fix PR is open but has bit-rotted (already_done)

    Verdict: triage already complete; fix exists as PR #3958 and now conflicts with main

    Triage task 2485 posted the verdict here on 2026-11-01 (confirmed live) and queued implementation follow-up task 4917, which opened PR #3958 (queue/4917-1207-roadmap-horizon, 1 commit, 2026-11-01T20:02Z). The 2026-11-03 coverage join missed it because the issue has no queued/claimed task, only an open PR.

    Fresh state (verified now):

    • origin/main is still unchanged on all three acceptance criteria: derive.ts keeps out-of-window rows as a bare outside count and undated rows in coarse (no visible undated lane); roadmap theme headers have no done/total rollup (the only done/total rollup in render.ts is the epic rollup); horizon remains free text in seed and live source.
    • PR fix(pm-stack): keep roadmap rows visible and validate horizons (#1207) #3958 is OPEN, not draft, created 2026-11-01T20:02Z, last updated 2026-11-01T21:42Z — no activity for ~2 days. Only check present is CodeRabbit (NEUTRAL); no required checks reported.
    • The PR no longer merges cleanly: git merge-tree origin/main origin/queue/4917-1207-roadmap-horizon reports a conflict in pm-stack/aggregator/src/render.ts (3 stages), caused by main moving under it since 2026-11-01 (e.g. Aggregator: one canonical work-item projection behind Today/Board/Needs-you/Projects #1206 canonical work-item projection, fix(aggregator): close 390px mobile audit gaps #4552). Diff is otherwise on-scope: derive/render/roadmap-horizon + seed/live validation script and tests, 11 files.

    Routing / ordering

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