Skip to content

I3751 — The roadmap says only what the plan holds, with a bar and a date on every milestone

Make /roadmap/ and its Czech copy state only what the plan and the history hold: every milestone with required issues draws a bar of its accepted issues against the ones it requires, every milestone shows the date of the release that carried it or of its last delivered issue, the share of milestones that depend on another is counted rather than asserted, and a milestone accepted with no issues reads as delivered.

READY wave 0 · p1 · implementation profile · parallel safe

Part of truthful-plan-surfaces — The plan's surfaces are inferred from delivery, and nothing they show is typed beside the repository.

Ready. Every dependency is done, so majordomus plan start I3751 will be accepted.

Objective

Make /roadmap/ and its Czech copy state only what the plan and the history hold: every milestone with required issues draws a bar of its accepted issues against the ones it requires, every milestone shows the date of the release that carried it or of its last delivered issue, the share of milestones that depend on another is counted rather than asserted, and a milestone accepted with no issues reads as delivered.

Why

Found on 2026-10-20 by the owner-ordered audit of /roadmap/ (campaign defect D5), and decided by the owner the same day: dates and progress bars on every surface. The page said that each milestone depends on the ones before it, while 72 of 100 depend on nothing; that each milestone names a claim, while 5 do; that there is no progress bar because a full bar would be a lie, while /ui/roadmap/ draws bars; and foundation read DONE beside 'no issues written yet'. No milestone said when anything happened.

Current state

site/templates/roadmap.html draws per milestone the release label, the status, the blocked-by line and the counts 'done N of M', and nothing on when. Its closing paragraph asserts 'Each milestone depends on the ones before it' and that 'there is no percentage anywhere on this page'. site/content/roadmap.md says 'there is no progress bar on this page' and 'Each milestone names the claim it would move out of planned'. The issueless milestone branch prints 'no issues written yet' whatever the status. The dates exist: site/static/releases/<tag>.json carries published_at, and site/data/generated/delivery.json carries merged.merged_at per issue.

Desired state

Each milestone with required issues draws a native progress element (value: accepted issues, max: required issues, cancelled ones left out, the same count as 'done N of M'). Each milestone shows 'released <date>' from its release record, or 'last delivery <date>' from the latest merged_at of its issues, or says it has no delivery date or nothing delivered. The closing paragraph counts the milestones that depend on another from roadmap.json. An accepted milestone with no issues reads delivered. The numbers and dates are opaque to the translation pass, so the Czech copy needs one segment per sentence, not one per number, and the Czech memory carries each new sentence.

Scope

  • site/templates/roadmap.html
  • site/content/roadmap.md
  • site/i18n/cs/memory
  • test/cases/3724_the_roadmap_says_what_the_plan_holds.sh

Out of scope

  • The /ui/roadmap/ meters, which are I3440's
  • Translating the rest of the roadmap's missing Czech segments, which the multilingual work owns

Dependencies

None. This issue is a root of the graph.

What waits on this

Acceptance criteria

  • Every milestone of roadmap.json with required issues has one bar whose value and max equal its done and required counts
  • A milestone carried by a release shows that release's published_at date; an unreleased one with merged issues shows the latest merged_at of its issues
  • The closing paragraph's count equals the number of milestones in roadmap.json with a non-empty depends_on
  • An accepted milestone with no issues reads delivered, not 'no issues written yet'
  • Negative: the rendered page carries none of the withdrawn sentences ('depends on the ones before it', 'no progress bar', 'would be a lie')
  • The Czech memory holds a translation for each new sentence, and no new segment carries a number or a date in its key

Validation

  • bash test/run.sh 3724_the_roadmap_says_what_the_plan_holds 3103_the_roadmap_draws_every_milestone
  • scripts/site-build && scripts/site-check
  • majordomus plan validate

Evidence required

  • test_the_roadmap_says_what_the_plan_holds

Evidence

None recorded. Every token above needs a command or an artifact behind it before this issue can be completed; narrative is refused.

Timeline

started
—
verified
—
completed
—

Those three fields, the evidence above and the state of the dependencies are all the status is made of. There is no status field to disagree with them.

Canonical record: .ai/repo/project/issues/I3751.yaml. Read it back with majordomus plan show I3751.

Searches the titles and descriptions of every page this site publishes.