Work & projects · A4 landscape · v0.1.0
Project Plan
A one-page landscape project plan built around a real Gantt chart: a time grid of up to 12 periods, task bars in four states, a today marker, milestone diamonds, risks and assumptions. Pick it when someone wants a timeline, phasing or plan on one page.
Paste the prompt into Claude (or any agent that can fetch URLs) with your content — you get back a finished, self-contained HTML file. Manifest ↗
Live preview — the example content ships with the template and is replaced by your content.
What an agent may change — and what content you should have ready. Everything outside these slots is fixed by design.
Slots
| Slot | Type | Req. | Example |
|---|---|---|---|
doc-title |
text | yes | Project plan — New Distribution Centre Zwolle |
project-name |
text | yes | New Distribution Centre — Zwolle |
plan-subtitle |
text | yes | Bergveld Foodservice B.V. — consolidating the Apeldoorn and Kampen depots into one 24.000 m² automated DC. |
plan-owner |
text | yes | Nadia el Amrani |
plan-sponsor |
text | no | Hugo Stellinga (COO) |
plan-date |
date | yes | 19 Aug 2026 |
plan-ref |
text | no | PRJ-2026-014 rev 3 |
plan-status |
text | yes | In execution |
timeline-caption |
text | yes | Mar 2026 → Feb 2027 · monthly |
today-style |
text | yes | left:46.8% |
today-label |
text | yes | Today · 19 Aug |
risks-content |
html | no | <ul><li><strong>Racking delivery is the critical path.</strong> A two-week slip pushes migration into the December peak.</li></ul> |
assumptions-content |
html | no | <ul><li>Building handover on 30 Oct 2026 per contract; penalty clause € 4.500 per week.</li></ul> |
footer-line |
text | no | Bergveld Foodservice B.V. · steering committee pack, monthly · confidential |
Repeat: period (4–12×)
One column of the time grid — a week, sprint, month or quarter. The column count sets the bar geometry: with N periods each column is 100/N %.
| Slot | Type | Req. | Example |
|---|---|---|---|
period-label |
text | yes | Mar |
Repeat: task (2–16×)
One task or workstream row: label, owner and a bar on the time grid. Order by start date and group by phase.
| Slot | Type | Req. | Example |
|---|---|---|---|
task-name |
text | yes | Design freeze & building permit |
task-owner |
text | yes | J. Bakker |
task-bar-style |
text | yes | left:0%;width:16.66% |
task-bar-class |
text | yes | bar bar-done |
Repeat: milestone (1–8×)
A diamond marker on the milestone row, on a column boundary — phase gates, approvals, go-live.
| Slot | Type | Req. | Example |
|---|---|---|---|
milestone-style |
text | yes | left:16.66% |
milestone-label |
text | yes | Permit granted |
Optional blocks
risks— Key risks & mitigations panel, bottom left. Remove when the user gives no risks — an empty panel is worse than none.assumptions— Assumptions & dependencies panel, bottom right. Remove when there is nothing the plan measurably depends on.
The authoritative fill instructions from manifest.json — the only place a template may instruct an agent (why).
GEOMETRY IS THE JOB. With N period columns each column is 100/N %; 12 columns = 8.3333% each. For a task running from period 3 to period 6 inclusive: left = (3-1)x8.3333 = 16.66%, width = (6-3+1)x8.3333 = 33.33%, so task-bar-style is left:16.66%;width:33.33%. Compute every bar this way and check left+width never exceeds 100. task-bar-class must be exactly one of: "bar bar-plan", "bar bar-active", "bar bar-done", "bar bar-risk" — and must agree with the today marker (nothing left of today is still "plan"). today-style uses the same scale, e.g. mid-way through column 6 of 12 = left:46.8%. milestone-style lands on a column boundary: end of period P = P x 100/N %. Delete every data-example node — they are preview content only. Keep task-name under ~45 chars and milestone-label under ~22. Order task rows by start date and group them by phase. Max 16 tasks: if the plan has more, roll up to phase level rather than shrinking rows. THIS MUST STAY ONE LANDSCAPE PAGE — tighten wording, never edit the CSS. Dates as "19 Aug 2026", money as "€ 4.500"; bind both with so they never break across a line. Drop the risks and/or assumptions block when the user has none. Unknown dates or owners: write [PLACEHOLDER] and tell the user to fill them in with the built-in Edit button.
Published versions are immutable: /t/project-plan@{version}/ never changes once live. /t/project-plan/ always points at the latest.