# Kanban A board over a folder of markdown todo files — as many projects as you point it at. Items are `/.md` with frontmatter and hand-written prose. **The files are the truth.** This plugin stores no copy of them: its one table is a list of folders, so uninstalling it with "delete its data" ticked loses the list and never a line of anybody's work. ## Adding a project The path is the folder that holds the theme directories — usually `todo/`, not the repository root. It must be absolute and inside your home; symlinks are resolved before that is checked. ## What it does to your files - Writes **frontmatter only** — `status`, `priority`, `due`, `order`. The body is yours and no route here can touch it. - Regenerates `TODO.md` beside the folder on every write. - Never deletes anything. Removing a project removes the row. ## Where it came from `/todos` in the Officer platform, which read `resolve(process.cwd(), 'todo')` — one board, found by assuming the server's working directory. The reader, the ordering and the frontmatter handling came across unchanged, with their tests. What changed is that the directory is a setting. The platform kept its own `todo/` folder and `scripts/todo-index.ts`: that folder is its own backlog, committed with its own code, and the CLI regenerates the index from a terminal with no Officer running. Making the platform's own backlog depend on a plugin being installed would have been the wrong trade. **That leaves two copies of the tree reader** — this one, generalised over a root, and the platform's, which serves only that CLI. They will drift. The alternative was worse in both directions, and the honest fix on the day it matters is to delete the platform's CLI and let this own the format outright.