SpecificationsnormativeSheet 07 of 18
gantt@0.1
A project schedule you can read in any editor and see as an elegant workstream timeline — inclusive dates, visible progress, and dependency edges with no hidden scheduler.
- File
*.gantt.md- ##
- a workstream
- Task
- start · end · progress
- Codes
- MDTO700–799
§ 01
The schedule, without a scheduling database
Every bar begins and ends at dates written on its task line. The renderer derives only the window and geometry; it never moves a deadline or invents duration.
--- markdownto: [email protected] title: Observatory opening --- # Observatory opening ## Site - [x] Survey the ridge [start:: 2026-09-01] [end:: 2026-09-03] [progress:: 100] ^survey - [ ] Pour foundations [start:: 2026-09-04] [end:: 2026-09-18] [progress:: 65] [depends:: ^survey] ^foundations ## Instrument - [ ] Align the primary mirror [start:: 2026-09-12] [end:: 2026-09-22] [owner:: Mira] [depends:: ^foundations] ^mirror - [ ] First light [start:: 2026-09-23] [end:: 2026-09-23] [depends:: ^mirror]
Observatory opening
1 completeof 4 scheduled tasksSep 1, 2026 — Sep 23, 2026
Site
2 tasksInstrument
2 tasks§ 02
Four fields, one honest schedule
today-line:- A boolean, true by default. Draws the viewer’s current date in red when it falls inside the schedule.
[start:: date]- Required inclusive full-date.
[end:: date]- Required inclusive full-date, never before start.
[progress:: n]- Optional integer 0–100; 100 and the checked marker agree.
[depends:: ^id]- Optional ordered pinned-id edges; dangling, self, and cyclic relations are surfaced.
§ 03
Typed, atomic verbs
Verb
Meaning
Smallest edit
add
Insert a fully scheduled task.
One line.
schedule
Replace start and end as one operation.
Two field values, one validation boundary.
progress
Set progress and couple the checkbox.
Field plus one marker.
depend · move · rm
Edit edges, relocate a block verbatim, or remove it.
Only the addressed spans.
§ 04
Invalid schedules fail loudly
--- markdownto: [email protected] --- ## Build - [ ] Missing start [end:: 2026-09-03] - [ ] Missing end [start:: 2026-09-03] - [ ] Impossible date [start:: 2026-02-30] [end:: 2026-03-02] - [ ] Backwards [start:: 2026-09-10] [end:: 2026-09-01] - [x] Bad progress [start:: 2026-09-01] [end:: 2026-09-02] [progress:: 55.5] - [ ] Mismatch [start:: 2026-09-01] [end:: 2026-09-02] [progress:: 100]
-
MDTO705 error line 6
- [ ] Missing start [end:: 2026-09-03]Task has no
startfield. -
MDTO706 error line 7
- [ ] Missing end [start:: 2026-09-03]Task has no
endfield. -
MDTO707 error line 8
- [ ] Impossible date [start:: 2026-02-30] [end:: 2026-03-02]Start
2026-02-30is not a real YYYY-MM-DD full-date. -
MDTO708 error line 9
- [ ] Backwards [start:: 2026-09-10] [end:: 2026-09-01]End
2026-09-01is before start2026-09-10. -
MDTO709 error line 10
- [x] Bad progress [start:: 2026-09-01] [end:: 2026-09-02] [progress:: 55.5]Progress
55.5must be an integer from 0 through 100. -
MDTO713 warning line 11
- [ ] Mismatch [start:: 2026-09-01] [end:: 2026-09-02] [progress:: 100]Unchecked task writes 100 percent progress.
Read gantt.md or run mdto spec gantt for the complete contract.