Skip to content
flying-dicePublic

About

VS Code extension for Kanban Boards with Docs and Decisions

Topics

Resources

Contributing

Stars

1 star

Watchers

0 watching

Forks

Repository files navigation

RepoDoc

Task boards, decision records, and documentation for VS Code, stored as plain files in your repository.

RepoDoc boards, cards, decisions, and docs

One core, two hosts

RepoDoc is a VS Code extension and a command line over the same core. Both read and write the same files with the same rules, so a card moved by an agent from a terminal looks exactly like one dragged on the board.

VS Code ─┐
         ├─▶ @repodoc/core ─▶ boards/  decisions/  docs/
CLI ─────┘

The CLI

No install step. From any repository:

bunx github:flying-dice/repodoc board list
bunx github:flying-dice/repodoc card create project-backlog "Add CSV export" --priority high
bunx github:flying-dice/repodoc card move project-backlog add-csv-export doing
bunx github:flying-dice/repodoc card comment project-backlog add-csv-export "Wired the endpoint in src/export/router.ts:22-49"
bunx github:flying-dice/repodoc card gates project-backlog add-csv-export done

Every command takes --json for machine-readable output and --who <name> to sign comments and gate evidence. card move refuses a move whose workflow gates fail, exactly like the board does. See the CLI reference.

Everything lives in the repository

A card is a markdown file. A decision is a markdown file. A board is a folder with a JSON config. Project state is versioned with the code it describes, shows up in diffs and pull requests, and travels with every clone. There is no server and no account.

Rich markdown

Every content block goes through one renderer: card descriptions, card comments, decision records, and docs. All render full GitHub Flavored Markdown (tables, task lists, strikethrough, autolinks), Mermaid diagrams with no network calls, and PlantUML through a configurable server. In cards and comments, path/to/file.ts:12 references become one-click links that open the file at that line.

The board

Columns with drag and drop, WIP limits, labels, priorities, and search. Cards show a checklist count, comment count, progress, and custom field chips. The board updates when the files change on disk.

Kanban board

Open a card to edit its fields, tick its checklist, read its description as rendered markdown, and follow its comment history. File references in comments, such as src/core/store.ts:123, open that file at that line.

Card detail

Custom fields

Boards define typed fields in their config: text, number, boolean, date, select, and multiselect. Values are stored in each card's frontmatter and edited in the card view. Fields marked showOnCard appear as chips on the card.

Workflow gates

Columns can declare conditions for cards entering or leaving. A script gate requires a recorded green run of a command. A field gate checks a card field against an expression such as = true, >= 3, or contains core. A move that fails a gate is blocked with the reasons listed; choosing to override records the override in the card file.

"enter": [
  { "id": "tests-passing", "script": "npm test", "label": "All tests passing" },
  { "id": "peer-review", "field": "peer-reviewed", "check": "= true", "label": "Peer reviewed" }
]

Card with gates and comment history

Decision records

Numbered markdown records with status and date in frontmatter. The sidebar lists them with status colors, and each record opens in a reading view.

A rendered decision record

Documentation

The docs/ tree renders as a handbook. Numeric filename prefixes set the sidebar order. Frontmatter renders as a table under the title. Mermaid fences render as diagrams with no network calls. PlantUML fences render through a configurable server.

Rendered documentation page

Uncommitted changes

RepoDoc reads the repository it lives in. Docs, decisions, cards and features whose file differs from HEAD carry a change badge in the tree, in your theme's own colours; a folder is badged when anything beneath it changed. Open one and the top bar offers HEAD → working tree: the same rendered page, with added and removed blocks marked in place — prose stays prose, diagrams stay diagrams. Card descriptions get the same toggle in the card view.

Outside a git repository, or with repodoc.git.enabled off, every surface renders exactly as it always did.

What this does not do:

  • Deletions are not shown. Every RepoDoc tree is built from files it can read, so a deleted file leaves no row to badge. Badges are added, modified and renamed only.
  • Frontmatter-only edits badge but do not diff. The reading view shows frontmatter as a table, not prose, so a status: or date: change marks the file as modified and the top bar says metadata changed — there is no body difference to render.
  • Renames are only detected once staged. Moving a card between columns rewrites its file name; until that rename is in the index, git reports it as a delete plus an add.
  • Git is read synchronously. Results are cached until something changes, but the first read after a change happens on the extension host. On a very large repository that is a pause, not a hang.

Native to VS Code

Navigation uses standard tree views: boards expand into columns and cards, and decisions and docs open in one click. Every surface follows your color theme.

The same board in a light theme

Getting started

  1. Install RepoDoc and open a repository.
  2. Click the RepoDoc icon in the activity bar and run Initialize RepoDoc. This creates one file, the starter board config.
  3. Add cards from the board, or create markdown files under boards/.

File layout

Path Contents
boards/<board-id>/NN-slug.md One card per file. Frontmatter holds column, labels, priority, and field values
boards/<board-id>/.config.json Board name, columns, WIP limits, labels, fields, gates
decisions/NN-slug.md Decision records with status: and date: frontmatter
docs/NN-slug.md Documentation tree, ordered by numeric prefix

Settings

  • repodoc.readingWidth sets the width of reading views and the card view: narrow, wide, or full.
  • repodoc.git.enabled shows change badges and the HEAD → working tree diff. On by default; turn it off to render every surface as if the workspace were not a repository.
  • repodoc.plantUmlServer sets the PlantUML renderer. The default is the public plantuml.com server. To render privately, run docker run -d --name plantuml -p 8792:8080 plantuml/plantuml-server:jetty and set the value to http://localhost:8792.

License

MIT

About

VS Code extension for Kanban Boards with Docs and Decisions

Topics

Resources

Contributing

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages