Skip to content

Project Plan

Day-to-day tracking lives on the public GitHub Projects board at github.com/orgs/PacketFive/projects/7. The roadmap below is rendered from that board, one lane per epic, one card per task, coloured by status. Drag to pan, scroll to zoom, and click a card to open its issue.

100% Updated see the PDF PDF
Loading the roadmap graphic.

How the graphic is produced

scripts/roadmap/export_project_plan.py reads the board through the gh CLI and writes three files that the page and the download share:

File Purpose
docs/assets/roadmap/cnuas-project-plan.svg The graphic embedded above
docs/assets/roadmap/cnuas-project-plan.pdf The download, converted from the same SVG
docs/assets/roadmap/cnuas-project-plan.json Timestamp, source and per-status counts

Because the PDF is a conversion of the embedded SVG rather than a second drawing, the download and the graphic on screen cannot drift apart. The timestamp is the moment the data was last exported, not the moment the site was built, so it means what it says.

# Refresh from the board
python scripts/roadmap/export_project_plan.py --owner PacketFive

# Refresh from the checked-in CSV, no network
python scripts/roadmap/export_project_plan.py --offline

If the board cannot be reached, the exporter falls back to scripts/roadmap/roadmap.csv, which is the checked-in source of truth that seeds the board in the first place, and it records which of the two it used in the JSON and in the caption on the graphic. A documentation build therefore never requires network access, and a throttled API can never be mistaken for an empty roadmap.

Status vocabulary

Board column Roadmap status Meaning
Done Available Implemented and exercised
In Progress In Progress Being worked on now
Todo Planned Specified, not implemented
Todo Blocked Waiting on another task

The Cnuas Roadmap carries the same tasks as prose, with the reasoning behind each epic and the milestones the tasks belong to.