docs: story frontmatter + Dataview board views

- 28 story files gain YAML frontmatter: iteration id, status
  (mirrors folder), chain position (7 files, positions 1-6)
- board-views.md: Dataview queries (not-done, by-status lanes,
  chain order, active); Kanban caveat — view only, frontmatter
  is source of truth, folder move + status key change together
- board points at the views

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
shoney.arickathil 2026-08-21 12:17:50 +02:00
parent 788e026739
commit 954aacc9a5
30 changed files with 217 additions and 0 deletions

View file

@ -26,6 +26,10 @@ rejection in [`discarded.md`](../plan/discarded.md) with its reason.
Statuses: ✅ **done** · 🔄 **in progress** · ⬜ **pending** · ⏸ **hold**
Story files carry YAML frontmatter (`iteration`/`status`/`chain`) — the
machine-readable truth behind this board; live Obsidian Dataview views:
[`board-views.md`](board-views.md) (Kanban = view only, never edits status).
---
## ▶ NEXT PLAN

View file

@ -0,0 +1,66 @@
# Live board views (Obsidian Dataview)
Every story iteration file carries YAML frontmatter — **the frontmatter
is the source of truth**:
```yaml
---
iteration: "8" # immutable id (string: "7b", "9b" exist)
status: in-progress # done | in-progress | refine | hold — mirrors its folder
chain: 1 # concurrency-chain position, chain stories only (1–6)
---
```
The folder move IS the status change: moving a story between `done/`,
`in-progress/`, `refine/`, `hold/` must update its `status:` in the same
change — the two never disagree. The prose board
([`00-status.md`](00-status.md)) stays the standup narrative; these
queries are the live views over the same facts.
Adjust the `FROM` path to your vault root (queries below assume the
vault opens at the repo root).
## Everything not done, chain order first
```dataview
TABLE iteration, status, chain
FROM "docs/stories/language-runtime-database"
WHERE status != "done"
SORT chain ASC, iteration ASC
```
## Grouped by status (the kanban lanes, as data)
```dataview
TABLE rows.file.link AS story, rows.iteration AS iteration
FROM "docs/stories/language-runtime-database"
WHERE status != "done"
GROUP BY status
```
## The concurrency chain, in execution order
```dataview
TABLE iteration, status
FROM "docs/stories/language-runtime-database"
WHERE chain
SORT chain ASC
```
## Active right now
```dataview
LIST
FROM "docs/stories/language-runtime-database"
WHERE status = "in-progress"
```
## Kanban caveat
The Kanban plugin stores board state in its own markdown file — a
second copy of status. To keep frontmatter the single source of truth:
**use Dataview for querying; treat any Kanban board as a VIEW, never
the place status is edited.** Status changes happen by moving the story
file between folders + updating its `status:` key (one commit); a
Kanban card drag that only rewrites the Kanban file is a lie the next
query won't see.

View file

@ -1,3 +1,8 @@
---
iteration: "1"
status: done
---
# Iteration 1 — the principles doc
> Format: fiberloom `product/story-iteration-template`. Part of

View file

@ -1,3 +1,8 @@
---
iteration: "2"
status: done
---
# Iteration 2 — VM core (`wovm`)
> Format: fiberloom `product/story-iteration-template`. Part of

View file

@ -1,3 +1,8 @@
---
iteration: "3"
status: done
---
# Iteration 3 — compiler front (`woc`)
> Format: fiberloom `product/story-iteration-template`. Part of

View file

@ -1,3 +1,8 @@
---
iteration: "4"
status: done
---
# Iteration 4 — single binary end-to-end
> Format: fiberloom `product/story-iteration-template`. Part of

View file

@ -1,3 +1,8 @@
---
iteration: "5"
status: done
---
# Iteration 5 — language surface (Haxe-parity adoptions)
> Format: fiberloom `product/story-iteration-template`. Part of

View file

@ -1,3 +1,8 @@
---
iteration: "6"
status: done
---
# Iteration 6 — program mode + systems stdlib
> Format: fiberloom `product/story-iteration-template`. Part of

View file

@ -1,3 +1,8 @@
---
iteration: "7"
status: done
---
# Iteration 7 — log-watcher proof workload
> Format: fiberloom `product/story-iteration-template`. Part of

View file

@ -1,3 +1,8 @@
---
iteration: "7b"
status: done
---
# Iteration 7b — inferred GC + incremental mark-sweep
> Format: fiberloom `product/story-iteration-template`. Part of

View file

@ -1,3 +1,8 @@
---
iteration: "9"
status: done
---
# Iteration 9 — database engine
> Format: fiberloom `product/story-iteration-template`. Part of

View file

@ -1,3 +1,8 @@
---
iteration: "9b"
status: done
---
# Iteration 9b — `@table`, relations, and language-integrated query
> Format: fiberloom `product/story-iteration-template`. Part of

View file

@ -1,3 +1,8 @@
---
iteration: "15"
status: done
---
# Iteration 15 — dependencies: `wo.toml [deps]`, git fetch, `wo.lock`
> Format: fiberloom `product/story-iteration-template`. Part of

View file

@ -1,3 +1,8 @@
---
iteration: "16"
status: done
---
# Iteration 16 — the web framework: a `.wo` library, HTTP/1.1 behind a proxy
> Format: fiberloom `product/story-iteration-template`. Part of

View file

@ -1,3 +1,8 @@
---
iteration: "17"
status: done
---
# Iteration 17 — library projects and dependency privacy (`kind`, `internal/`)
> Format: fiberloom `product/story-iteration-template`. Part of

View file

@ -1,3 +1,8 @@
---
iteration: "19"
status: done
---
# Iteration 19 — the missing scalar types: Float and Bytes
> Format: fiberloom `product/story-iteration-template`. Part of

View file

@ -1,3 +1,8 @@
---
iteration: "18"
status: hold
---
# Iteration 18 — framework v2: memory-rich features over the embedded database
> **Scope label (2026-08-20): this iteration is FRAMEWORK V2.** Framework

View file

@ -1,3 +1,8 @@
---
iteration: "20"
status: hold
---
# Iteration 20 — cross-program tables: attach to a running program's database
> Format: fiberloom `product/story-iteration-template`. Part of

View file

@ -1,3 +1,8 @@
---
iteration: "21"
status: hold
---
# Iteration 21 — keypair authentication for cross-program attach
> Format: fiberloom `product/story-iteration-template`. Part of

View file

@ -1,3 +1,8 @@
---
iteration: "26"
status: hold
---
# Iteration 26 — blue-green in-runtime deployment
> Format: fiberloom `product/story-iteration-template`. Part of

View file

@ -1,3 +1,8 @@
---
iteration: "27"
status: hold
---
# Iteration 27 — query grammar, driven by real embedded-DB corpora
> Format: fiberloom `product/story-iteration-template`. Part of

View file

@ -1,3 +1,8 @@
---
iteration: "28"
status: hold
---
# Iteration 28 — skillhost: a host-shaped workload, and the capability gaps it exposes
> Format: fiberloom `product/story-iteration-template`. Part of

View file

@ -1,3 +1,8 @@
---
iteration: "29"
status: hold
---
# Iteration 29 — compile-time metaprogramming (derive from the class table)
> Format: fiberloom `product/story-iteration-template`. Part of

View file

@ -1,3 +1,9 @@
---
iteration: "8"
status: in-progress
chain: 1
---
# Iteration 8 — shard-actor runtime (the 8+11 concurrency arc, part 1)
> Format: fiberloom `product/story-iteration-template`. Part of

View file

@ -1,3 +1,9 @@
---
iteration: "11"
status: in-progress
chain: 1
---
# Iteration 11 — fibers (the 8+11 concurrency arc, part 2)
> Format: fiberloom `product/story-iteration-template`. Part of

View file

@ -1,3 +1,9 @@
---
iteration: "22"
status: refine
chain: 2
---
# Iteration 22 — durability proof, throughput, and scale under load
> Format: fiberloom `product/story-iteration-template`. Part of

View file

@ -1,3 +1,9 @@
---
iteration: "23"
status: refine
chain: 5
---
# Iteration 23 — io_uring group-commit write path
> Format: fiberloom `product/story-iteration-template`. Part of

View file

@ -1,3 +1,9 @@
---
iteration: "24"
status: refine
chain: 4
---
# Iteration 24 — chat: the WebSocket pub/sub driving workload
> Format: fiberloom `product/story-iteration-template`. Part of

View file

@ -1,3 +1,9 @@
---
iteration: "31"
status: refine
chain: 3
---
# Iteration 31 — actor lifecycle: request/response, backpressure, death, timers
> Format: fiberloom `product/story-iteration-template`. Part of

View file

@ -1,3 +1,9 @@
---
iteration: "32"
status: refine
chain: 6
---
# Iteration 32 — WAL checkpoint: disk space reclamation and bounded replay
> Format: fiberloom `product/story-iteration-template`. Part of