Document the schema, value types, and render semantics so a Macroplan .toml can be produced and consumed outside this app's renderer. Ships a JSON Schema (served from public/ for editor use) and a reference file.
80 lines
2.4 KiB
TOML
80 lines
2.4 KiB
TOML
#:schema https://macroplan.apoena.dev/macroplan.schema.json
|
|
#
|
|
# Reference Macroplan — a conformance sample exercising every field and state.
|
|
# The authoritative definition of this format is docs/format.md.
|
|
|
|
# Format version. Optional; the current version is 1. Omitting it means "1".
|
|
macroplan_version = 1
|
|
|
|
title = "Q3 — Checkout revamp"
|
|
|
|
# Optional plan span: pad the plan with lead-in / trailing weeks.
|
|
# Rule: `start` only ever extends the span left, `end` extends it right;
|
|
# neither clips a feature. Omit both to auto-fit the columns.
|
|
start = 2026-05-25
|
|
end = 2026-08-03
|
|
|
|
# Dates are TOML date literals. Any day snaps to that week's Monday.
|
|
|
|
# On-time delivery: delivered on/before the Original Estimate → ◉ (subsumes ◯).
|
|
[[feature]]
|
|
name = "Auth"
|
|
start = 2026-06-01
|
|
original = 2026-06-15
|
|
delivered = 2026-06-15
|
|
learning = "Spiking the OAuth flow first paid off — do discovery spikes earlier."
|
|
|
|
# Late delivery with slips: ◯ baseline kept, one △ per re-estimate, then ▲.
|
|
# Late because delivery (07-20) is after `original` (06-15) — the re-estimates
|
|
# never move the goalpost (ADR-0001).
|
|
[[feature]]
|
|
name = "Payments"
|
|
start = 2026-06-01
|
|
original = 2026-06-15
|
|
reestimates = [2026-06-29, 2026-07-13]
|
|
delivered = 2026-07-20
|
|
learning = "Vendor lead time was the real constraint — derisk vendors up front."
|
|
|
|
# In-flight and overdue: undelivered, `original` already in the past → ◯ only,
|
|
# bar runs to "now". `status` + `note` express confidence while it's open.
|
|
[[feature]]
|
|
name = "Dashboard"
|
|
start = 2026-06-01
|
|
original = 2026-06-08
|
|
status = "off-track"
|
|
note = "No recovery plan yet — needs an owner."
|
|
|
|
# In-flight, re-estimated once: ◯ + △, still open.
|
|
[[feature]]
|
|
name = "Search"
|
|
start = 2026-06-08
|
|
original = 2026-06-22
|
|
reestimates = [2026-07-06]
|
|
status = "at-risk"
|
|
note = "Third-party search API is flaky; spike a fallback."
|
|
|
|
# In-flight, on track: the minimal feature — only the three required fields
|
|
# plus a status.
|
|
[[feature]]
|
|
name = "Notifications"
|
|
start = 2026-06-22
|
|
original = 2026-07-06
|
|
status = "on-track"
|
|
|
|
# Milestones tie a due week to the features that must ship by then.
|
|
[[milestone]]
|
|
name = "Code freeze"
|
|
week = 2026-06-29
|
|
requires = ["Auth", "Payments"]
|
|
|
|
[[milestone]]
|
|
name = "MVP go-live"
|
|
week = 2026-07-06
|
|
requires = ["Auth", "Payments", "Dashboard"]
|
|
|
|
# A milestone with no requirements is valid too.
|
|
[[milestone]]
|
|
name = "Beta launch"
|
|
week = 2026-07-13
|
|
requires = ["Search", "Notifications"]
|