writeonce/docs/stories/board-views.md
shoney.arickathil 954aacc9a5 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>
2026-08-21 12:17:50 +02:00

1.9 KiB
Raw Blame History

Live board views (Obsidian Dataview)

Every story iteration file carries YAML frontmatter — the frontmatter is the source of truth:

---
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) 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

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)

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

TABLE iteration, status
FROM "docs/stories/language-runtime-database"
WHERE chain
SORT chain ASC

Active right now

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.