Roadmap view — design plan (8 October 2026)

Status: draft for sub-agent review, then build. Beads: lip-21d. Part of project-management infrastructure (lip-tqk).

Job

Give the Life Itself team, in today's meeting (8 Oct), one scrolling page showing for October–December 2026: our initiatives, the projects under them (the project is what we prioritise), each project's priority, its objective / key results or definition of done, where we are (% complete), source (owner) and key date. Hand-built for now from the records; not a generic Beads graph.

Decisions so far (Rufus, 8 Oct, in chat)

  • Priority scale: 1–4 stars. ★ = lowest priority, ★★★★ = highest. Blank = not yet reviewed (never 0 stars). Proposed meanings: ★★★★ must ship, hard date this quarter; ★★★ core this quarter; ★★ progressing; ★ background.
  • Ratings agreed: the drafted table stands, except Comms infrastructure (CRM and newsletters) → ★★★★ and Global Connection Call → ★★. Initiatives stay unrated (blank) until reviewed.
  • Fields: initiatives get priority, objective, key_results. Projects get priority and a definition of done (done_when), optionally key_results.
  • Projects outside this repo (Wisdom paper incl. its launch, Junior comms hire, SoR experiences, Over the Mountains autumn series) go in a roadmap data file pointing to their home Bead. No new projects/ records. Rule kept: a planning-repo project record exists only where we hold reference material (issue tree, structure).
  • Open structural question (for the meeting, not decided here): should every project, wherever it lives, get a lightweight Bead in this repo so the portfolio can track it? The data file is a stopgap that does not pre-empt that.

Schema change (docs/data-model.md, optional fields)

FieldApplies toForm
priorityinitiative, projectInteger 1–4 (4 highest), shown as stars. Omit = not yet reviewed. Each change gets a dated status_notes entry naming who set it.
objectiveinitiative (project optional)One sentence. Projects may keep their ## Objective body section; the field is the short form.
key_resultsinitiative, projectList of strings, each measurable where possible.
done_whenprojectOne sentence or short list: the definition of done.

Not added: a rank within a star level, or per-period priorities. Priority is "as of" the latest dated note; history is in the notes and Git.

Data

  1. Records (projects/26xx-*.md, initiatives/*.md): frontmatter gains the fields above. These are the source of truth for in-repo projects.
  2. Roadmap data file projects/2600-life-itself-roadmap-september-december/roadmap.yaml: the page's layout and anything not in a record:
    • Group order (initiative → projects), which records are on the roadmap.
    • External projects: title, parent initiative, priority, done_when, owner, key date, home Bead (repo:id).
    • Key dates / milestones (15 Oct call, 1 Nov launch, 18 Nov Wisdom webinar).
    • Progress overrides: estimate: 30 with a reason, where no tree exists or the tree measures only planning.
  3. Builder scripts/roadmap.py: reads records + YAML, computes % complete from Beads (bd list --all --json in each repo: closed descendants / all descendants of the listed epic, via parent), writes projects/2600-life-itself-roadmap-september-december/roadmap.json and inlines it into projects/2600-life-itself-roadmap-september-december/index.html. Rerun to refresh; the page itself is static.

Progress display: bar + "12/24 tasks" for computed; hatched bar + "est." for estimates. Note in the page: task-count % is a rough proxy (tasks vary in size; trees that only cover planning understate).

Page

One scrolling page, utilitarian-polished, readable projected on a screen and on a phone.

  1. Header: "Life Itself Roadmap · Oct–Dec 2026", as-of date, one-line legend (stars, computed vs estimated).
  2. Timeline strip: Oct–Dec with today marker and the three key dates as pins.
  3. Top priorities: the ★★★★ projects as a short list (title, owner, date, bar), so the meeting starts with them.
  4. By initiative: one section per initiative (Seeds of Renaissance; Media House; Life Itself management / ops; top-level), each with its objective line, then project rows: stars · title (link to record or home Bead) · done_when / KRs · progress bar · owner · key date. Rows sorted by priority, then date.
  5. Unrated / not yet reviewed section and Open questions for the meeting (owners missing on 2608, 2609, 2612, 2602, 2604; launch date now the full site is in scope; structural question above).
  6. Footer: sources and how to refresh.

Typography/colour: an intentional palette (not the AI-default looks), stars in one accent, semantic colour only for progress. Light and dark themes. Mobile: rows collapse to stacked cards.

Published as a private Artifact; source saved at projects/2600-life-itself-roadmap-september-december/index.html.

Out of scope today

Generic Beads graph rendering; editing priorities from the page; month/week views; resolving the structural question.

Draft ratings

Project★Where
2612 Comms infra (CRM, newsletters)4record
2607 SoR launch3record
2608 Rebrand / brand design V13record
2606 Brand rollout3record
2609 Website3record
2611 Global Connection Call v12record
Wisdom paper (incl. launch, 18 Nov webinar)2external, 2rbook rbook-8k3
2602 Content pipeline2record
Junior comms hire2external, lip-zrh
2604 Operations2record
2605 PM infrastructure2record
SoR experiences (animations)blankexternal, design design-323
Over the Mountains autumn seriesblankexternal, podcast/Asana
2613 Publications SOP1record
2603 Content strategy (paused)1record
2601 AI training1record

Review outcome and what was built

A sub-agent reviewed this plan before the build. Adopted: sections follow the real parent chains (Seeds of Renaissance › Media House, › Gardens of Change › Calls & Catalysts, Life Itself › Management › Ops) with sub-projects indented (2610 → 2602 → 2613); 2610 and 2600 added, unrated; header labels ratings as draft; Wisdom shown as live with the 18 Nov webinar remaining; the existing due field is used, and projects keep ## Objective in the body rather than a frontmatter objective; no live Beads reads in other repos (dated snapshot counts instead); status chips and dimmed paused rows; questions placed straight after top priorities; "top priorities" = ★★★ and above; 9 Oct goals added to the timeline.

Built: projects/2600-life-itself-roadmap-september-december/roadmap.json (layout, external projects, milestones, questions; external priorities there are a stopgap until the structural question is decided), projects/2600-life-itself-roadmap-september-december/template.html, scripts/build_roadmap.py (writes projects/2600-life-itself-roadmap-september-december/index.html), published as a private Artifact: https://claude.ai/artifact/Km1wSKenqwz1AEZMrvJzm1

v2 plan (after Rufus's feedback, 8 Oct)

Feedback: 2612 → ★★★. Owners: 2612 rufus, 2608 uriel, 2609 rufus ("probably"), 2604 rufus, 2601 rufus, junior comms hire asdra; 2602 rufus or uriel (undecided). Launch: 1 Nov holds, possibly earlier. Ratings otherwise hold. Rufus asked me to decide the lightweight-Bead question, wants sequencing shown (rebrand → rollout → launch; website before launch), asked whether this duplicates 2600, wants the SoR design system applied, and wants proposed OKRs for top initiatives.

  1. Sequencing from Beads. Beads already has lip-42k.1 blocks lip-42k.2 blocks lip-42k.3. Add lip-mp5 blocks lip-42k.3 (website before launch, Rufus 7 Oct). Builder reads blocks dependencies between roadmap epics and shows "After: …" on each row, plus a small launch-path strip (Rebrand → Rollout → Launch ← Website) drawn from those edges. Beads is the source of sequencing; the page only displays it.
  2. Decision: every roadmap project gets a Bead in the planning repo. In-repo projects already have an epic. A project living elsewhere gets one lightweight pointer epic here: title, one-line description with a link to its home epic/tracker, labels initiative:<slug> and stars:<n>, no child tasks (work stays in its home tracker). Priority lives in the project record when there is one, otherwise in the pointer epic's stars: label. roadmap.json keeps layout, milestones and questions only; it stops holding priorities. Documented in docs/bd-task-conventions.md. Progress for pointer epics stays a dated snapshot.
  3. Merge with 2600. 2600 is the roadmap project: it keeps the reasoning (issue tree, sequencing options, decisions). The page becomes 2600's live view. Move projects/2600-life-itself-roadmap-september-december/ to projects/2600-life-itself-roadmap-september-december/ (precedent: projects/2602-content-delivery-pipeline/), add a "Current view" section to 2600 linking the page and data, mark its "Project-portfolio hypothesis" list as history superseded by the view, and answer the issue-tree questions now resolved (focus, sequence).
  4. OKRs. Propose one objective (one sentence) and 2–3 measurable key results for each initiative with rated projects: Seeds of Renaissance, Media House, Calls & Catalysts, Ops. Show them on the page marked Proposed, from roadmap.json, until Rufus agrees; then move them into the initiative records' objective/key_results and drop the proposed block.
  5. SoR design system (life-itself/design/projects/sor-design-system). Paper ground, ink text, hairline rules; Polyamine display via local() only (unlicensed, not embedded) falling back to Fraunces; Bricolage Grotesque body; Apfel Grotezk labels (OFL, embedded from the system's fonts.css). Single fixed theme (the system has no dark mode; "night is a section"): the timeline becomes the one night section. Stars and bars in ink, estimates hatched; red only for the occasional link. Sunlight ground for the top-priorities band.
  6. Explain 2603 / 2610 / 2600 to Rufus and recommend: 2610 is a project acting as an umbrella for 2602 and 2603; propose converting it to an initiative or folding it into Media House (not done without his say).

v2 review outcome

Second sub-agent review adopted in full: pointer epics use --external-ref and carry no initiative:/stars: labels (no new label vocabulary, no double counting); external priorities stay in roadmap.json as an explicit stopgap with who set them; template rebuilt on the SoR tokens as a single theme with ink-only status, red only for links, the timeline as the one night section; 2600 keeps its reasoning, answers the resolved questions, marks the hypothesis list superseded and drops its task list. Note: SoR is a sub-brand system and this is a Life Itself page; using it here was Rufus's request. Polyamine is referenced via local() only (not embedded, unlicensed), falling back to Fraunces for viewers without it installed.

Built with LogoFlowershow