Skip to content

Timeline surface over knowledge-work entities — roadmap as a rendered view of PROJECT / MILESTONE / WORK_ITEM #79

Description

@wow-miley

Context

socket-link/ampere#663 rejected ROADMAP as a canon type with the rationale that a roadmap is a view, not a noun — a rendering of PROJECT, MILESTONE, and WORK_ITEM over time. This ticket is that view: a Phosphor surface that renders the admitted knowledge-work entities as a timeline. Filed early by request.

Gate: opens after socket-link/ampere#663 merges and a producing Link exists so the surface renders real entities, not fixtures.

Objective

A timeline surface: projects as lanes, milestones as markers on targetDate, work items groupable into their projectId lane, statuses color-mapped from the closed CanonWorkStatus enum.

Expected Outcomes

  • Timeline surface consuming the three entity types via their display models (never canon types directly — same isolation wall as all UI)
  • Status → color mapping over the closed enum, exhaustively; providerStatus on detail inspection only
  • Degrades gracefully: entities with no targetDate collect in an undated shelf rather than vanishing; empty projects render as empty lanes
  • Consistent with existing Phosphor rendering conventions and thermal discipline (Breaker-aware if animated)

Tasks

  1. Recon (STOP): verify merged entity shapes; survey existing Phosphor surface patterns and the VoxelFrame DTO path for whether the timeline is a Phosphor-rendered surface or a Compose surface consuming Phosphor conventions — record the verdict
  2. Design pass: lane/marker/shelf layout against the design system
  3. Implement against fixture data mirroring real merged shapes; swap to live entities when a producing Link ships
  4. Validate: snapshot per CanonWorkStatus member; undated-shelf and empty-lane states covered

Technical Constraints

Read-only view; no scheduling/editing affordances; closed-enum styling only; performance within existing thermal budgets.

Out of Scope

Any ROADMAP canon type (rejected, recorded on socket-link/ampere#663); editing or re-planning interactions; Gantt-style dependency arrows (needs relation data the canon types don't carry — future widening question, not a rendering hack).

Agent: Opus for recon/design; Sonnet for implementation

Activity

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

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions