| name | repo-task-board |
| description | Use when creating, updating, triaging, or completing repository tasks stored as Obsidian Tasks Markdown lines with |
Repository Task Board — ratatoskr
This repository uses Obsidian Tasks-compatible Markdown checkboxes as the canonical task system.
Canonical task line
- [ ] #task <imperative task title> #repo/ratatoskr #area/<area> #status/<status> <priority>
Allowed statuses
#status/backlog
#status/todo
#status/doing
#status/review
#status/blocked
#status/done
#status/dropped
Priority markers
🔺 critical · ⏫ high · 🔼 medium · 🔽 low
Canonical files
docs/tasks/issues/<slug>.md — source of truth — one file per task with YAML frontmatter + canonical line + spec
docs/tasks/backlog.md — Obsidian Tasks query view for #status/backlog
docs/tasks/active.md — Obsidian Tasks query view for #status/doing and #status/review
docs/tasks/blocked.md — Obsidian Tasks query view for #status/blocked
docs/tasks/dashboard.md — full query hub + Bases view links
docs/tasks/board.md — Kanban board (visual only; source of truth is issues/)
Rules
- Preserve valid Obsidian Tasks syntax.
- Never create duplicate task lines for the same work.
- Prefer editing the existing task line over adding a new one.
- Keep task titles imperative and implementation-oriented.
- Exactly one
#status/* tag per task; remove the previous one when transitioning.
- Add
#blocked alongside #status/blocked; add an indented reason below.
- Complete or drop a task by deleting its
issues/<slug>.md note; git history is the audit trail.
- Do not change unrelated prose, code, or other sections.
Per-task notes
Each task lives in its own file at docs/tasks/issues/<slug>.md (kebab-case imperative title). This is the source of truth.
YAML frontmatter schema
---
title: Imperative task title
status: doing
area: auth
priority: high
owner: Role name
blocks: []
blocked_by: []
created: YYYY-MM-DD
updated: YYYY-MM-DD
---
Canonical line inside the per-task note
The per-task note body contains exactly one checkbox line (the canonical task line), followed by spec sections:
- [ ] #task <title> #repo/ratatoskr #area/<area> #status/<status> <priority>
The Tasks plugin picks up this line when querying across the vault — stored inside the per-task note, not in active.md/backlog.md/blocked.md.
Lifecycle
- Create — use Templater: "Create new note from template" →
new-task.md in docs/tasks/templates/. Fill prompts (title, area, priority, owner). Filename is kebab-case of the title.
- Transition — update
status: frontmatter field AND update #status/* tag in the canonical line. Always update updated: YYYY-MM-DD.
- Complete / drop — delete
docs/tasks/issues/<slug>.md. Git history is the audit trail.
- Blocked — add
#blocked after #status/blocked in the canonical line; add an indented reason bullet below it; populate blocked_by: frontmatter with filename stems.
Index files are query-only
active.md, backlog.md, blocked.md, and dashboard.md contain only Obsidian Tasks ```tasks query blocks. Do NOT add task lines to these files; add them only inside issues/<slug>.md.
Task creation workflow
- Search
docs/tasks/ for similar tasks.
- If similar task exists, update it instead of duplicating.
- Create
docs/tasks/issues/<kebab-case-slug>.md from docs/tasks/templates/new-task.md.
- Set
status: in frontmatter and the matching #status/* tag in the canonical line.
- Assign
#repo/ratatoskr, #area/<area>, and a priority marker.
- Add context as indented bullets only when acceptance criteria is non-obvious.