Roadmap view — design plan (8 October 2026)
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 getpriorityand a definition of done (done_when), optionallykey_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)
| Field | Applies to | Form |
|---|---|---|
priority | initiative, project | Integer 1–4 (4 highest), shown as stars. Omit = not yet reviewed. Each change gets a dated status_notes entry naming who set it. |
objective | initiative (project optional) | One sentence. Projects may keep their ## Objective body section; the field is the short form. |
key_results | initiative, project | List of strings, each measurable where possible. |
done_when | project | One 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
- Records (
projects/26xx-*.md,initiatives/*.md): frontmatter gains the fields above. These are the source of truth for in-repo projects. - 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: 30with a reason, where no tree exists or the tree measures only planning.
- Builder
scripts/roadmap.py: reads records + YAML, computes % complete from Beads (bd list --all --jsonin each repo: closed descendants / all descendants of the listed epic, viaparent), writesprojects/2600-life-itself-roadmap-september-december/roadmap.jsonand inlines it intoprojects/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.
- Header: "Life Itself Roadmap · Oct–Dec 2026", as-of date, one-line legend (stars, computed vs estimated).
- Timeline strip: Oct–Dec with today marker and the three key dates as pins.
- Top priorities: the ★★★★ projects as a short list (title, owner, date, bar), so the meeting starts with them.
- 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.
- 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).
- 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) | 4 | record |
| 2607 SoR launch | 3 | record |
| 2608 Rebrand / brand design V1 | 3 | record |
| 2606 Brand rollout | 3 | record |
| 2609 Website | 3 | record |
| 2611 Global Connection Call v1 | 2 | record |
| Wisdom paper (incl. launch, 18 Nov webinar) | 2 | external, 2rbook rbook-8k3 |
| 2602 Content pipeline | 2 | record |
| Junior comms hire | 2 | external, lip-zrh |
| 2604 Operations | 2 | record |
| 2605 PM infrastructure | 2 | record |
| SoR experiences (animations) | blank | external, design design-323 |
| Over the Mountains autumn series | blank | external, podcast/Asana |
| 2613 Publications SOP | 1 | record |
| 2603 Content strategy (paused) | 1 | record |
| 2601 AI training | 1 | record |
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.
- Sequencing from Beads. Beads already has
lip-42k.1blockslip-42k.2blockslip-42k.3. Addlip-mp5blockslip-42k.3(website before launch, Rufus 7 Oct). Builder readsblocksdependencies 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. - 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>andstars:<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'sstars:label.roadmap.jsonkeeps layout, milestones and questions only; it stops holding priorities. Documented indocs/bd-task-conventions.md. Progress for pointer epics stays a dated snapshot. - 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/toprojects/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). - 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_resultsand drop the proposed block. - SoR design system (
life-itself/design/projects/sor-design-system). Paper ground, ink text, hairline rules; Polyamine display vialocal()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. - 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.