Skip to content

feat(aggregator): roadmap annotations — dated decision/outcome notes on roadmap items and epics, rendered on the timeline #1284

Closed

Description

@dezren39

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

Roadmap items and epics slip, get re-scoped, or get deliberately dropped, and the reasoning lives in chat — weeks later the timeline shows a moved item with no trace of why. Roadmap annotations fix the record at the source: a dated note (decision, outcome, or context) attachable to any roadmap item or epic, rendered on the timeline/drill-down next to the item it explains, attributed like dashboard comments (never anonymous) and stored in the aggregator's own store keyed by the item's stable ref, so annotations survive feed republishes and source reshuffles. Annotations are part of the item's drill-down and its JSON twin, and a "why did this slip" answer should be reachable from the roadmap in one click — the target being that schedule changes stop being chat archaeology.

Acceptance:

  • Any roadmap item or epic can carry dated, attributed annotations, created from its drill-down page.
  • Annotations render on the roadmap timeline and item page in date order, and are present in the item's JSON twin.
  • Annotations persist across feed republishes and aggregator restarts (keyed by stable item ref, covered by a store test like the comments store).
  • Editing is append/correct-by-new-note (history is not silently rewritten), matching the dashboard comment model.

Acceptance criteria

  • Roadmap items and epics can carry dated annotations (decision / outcome / context) that render on the timeline/drift views and are present in the item's machine-first JSON twin.
  • Annotations persist across feed republishes and aggregator restarts (keyed by stable item ref, covered by a store test like the comments store).
  • Editing is append/correct-by-new-note — history is not silently rewritten — matching the dashboard comment model.

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 27, 2026
  4. dezren39 commented on Oct 27, 2026

    @dezren39
    MemberAuthor

    Intake review

    Related: epic #1184 (wave 2 parent).

    Notes: body criteria preserved above; appended section formalises them. Verified live this run: recent aggregator PRs (#1318 honesty/freshness, #1305 project pages) touch adjacent surfaces but add no annotation store or rendering.

    Risks: annotation store keyed by anything less stable than the item ref will lose notes on republish — the store test is the guard.

    Suggested approach: reuse the existing comments-store pattern (same persistence/keying), add the timeline render + JSON twin field, seed with one real annotation (a recent re-scope) to prove the flow.

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

  7. added
    queue/claimedQueue worker lifecycle state
    and removed
    queue/parkedQueue task is parked (waiting on CI, time, or an event)
    on Nov 1, 2026
  8. dezren39 commented on Nov 1, 2026

    @dezren39
    MemberAuthor

    agent-note:v1 — state: parked (small_fix task 5002, OpenChamber scheduled lane)

  9. 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
  10. added 2 commits that reference this issue on Nov 1, 2026
  11. dezren39 commented on Nov 1, 2026

    @dezren39
    MemberAuthor

    🤖 Agent note · done

    • Agent: queue worker (repo-worker-code), lane F
    • Session / ID: task 5002
    • Found via: queue claim (resumed from the awaiting_ci checkpoint)
    • Task: PR feat(aggregator): roadmap annotations (#1284) #4054 merged (merge commit b56c854); issue feat(aggregator): roadmap annotations — dated decision/outcome notes on roadmap items and epics, rendered on the timeline #1284 closed by the merge. The one live Codex P1 — annotation state defaulting into the deployed Git checkout, which would dirty the primary clone and block pm-git-sync — was fixed in 585be44 by wiring PM_AGG_ROADMAP_ANNOTATIONS_FILE to the aggregator state dir in nixos/services/pm-stack/default.nix (same pattern as the coverage snapshot). Codex re-review of 585be44: completed, no findings.
    • Expectation: done — verification on the laptop: roadmap-annotations.test.ts 2/2 pass; slice3 24 pass / 1 fail (the known pre-existing env-dependent routes baseline reproduced on clean main by earlier shifts; the change is Nix-only and the bun suites do not read it); nix-instantiate --parse OK. Earlier shift evidence stands: targeted annotation tests pass, full aggregator suite 940 pass / same 1 baseline fail.
    • Links: PR feat(aggregator): roadmap annotations (#1284) #4054 · branch queue/5002-1284-roadmap-annotations
  12. removed
    status/parkedDeliberately paused with a recorded resume condition
    queue/parkedQueue task is parked (waiting on CI, time, or an event)
    work/assignedQueue worker lifecycle state
    on Nov 1, 2026
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 human

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions