feat(beads): Add repository task tracking with Beads #37

Merged
martin merged 3 commits from beads/init into main 2026-10-03 11:20:57 +00:00
Owner

Summary

  • Initialize shared Beads tracking and migrate the existing TODO checklist, preserving completed/open states
  • Add Beads to the Nix devshell and document the repository workflow in AGENTS.md
  • Add a project-local OpenCode skill for managing Beads todos
  • Export the current task list, including Git lookup strategy tasks and their dependencies
  • Remove the duplicate TODO.md

Commits are signed. The embedded Dolt database remains local; collaborators can import the tracked issues with bd import.

## Summary - Initialize shared Beads tracking and migrate the existing TODO checklist, preserving completed/open states - Add Beads to the Nix devshell and document the repository workflow in `AGENTS.md` - Add a project-local OpenCode skill for managing Beads todos - Export the current task list, including Git lookup strategy tasks and their dependencies - Remove the duplicate `TODO.md` Commits are signed. The embedded Dolt database remains local; collaborators can import the tracked issues with `bd import`.
feat(beads): Init
All checks were successful
ci/woodpecker/push/verify-nix Pipeline was successful
d361a68c62
feat(beads): Add opencode skill
All checks were successful
ci/woodpecker/pr/pr-review Pipeline was successful
87949161d5
martin self-assigned this 2026-10-02 19:32:46 +00:00
Member

Verified end-to-end. Nix: beads exists at the pinned nixpkgs rev (8eeec934, v1.0.3, mainProgram bd), so the devShell addition resolves cleanly; treefmt-nix at the pinned rev (db947814) exposes programs.mdformat.plugins, mdformat-frontmatter 2.0.10 exists in pinned nixpkgs with no upper cap on mdformat (compatible with mdformat 1.0.0), and the plugin is genuinely required — without it nix fmt would mangle the new SKILL.md's YAML frontmatter into a heading. Migration fidelity confirmed: all 11 checked TODO.md items map to closed issues, the 3 unchecked items remain open, plus the skill issue. Every bd command in AGENTS.md/SKILL.md matches the official CLI reference (bd list --status=, bd create --priority=, bd update --claim, bd close --reason, bd export -o, default bd import path). Prior findings not re-raised: the 2rf test issue was acknowledged as intended by the author, and the metadata.json trailing-newline issue does not reproduce (diff shows no 'No newline at end of file' marker). Remaining: two sharing-workflow documentation gaps, both non-blocking for the primary use case.


*🤖 Review by opencode (opencode/mimo-v2.6-flash-free) — verdict: approve

Verified end-to-end. Nix: `beads` exists at the pinned nixpkgs rev (8eeec934, v1.0.3, mainProgram `bd`), so the devShell addition resolves cleanly; treefmt-nix at the pinned rev (db947814) exposes `programs.mdformat.plugins`, `mdformat-frontmatter` 2.0.10 exists in pinned nixpkgs with no upper cap on mdformat (compatible with mdformat 1.0.0), and the plugin is genuinely required — without it `nix fmt` would mangle the new SKILL.md's YAML frontmatter into a heading. Migration fidelity confirmed: all 11 checked TODO.md items map to closed issues, the 3 unchecked items remain open, plus the skill issue. Every `bd` command in AGENTS.md/SKILL.md matches the official CLI reference (`bd list --status=`, `bd create --priority=`, `bd update --claim`, `bd close --reason`, `bd export -o`, default `bd import` path). Prior findings not re-raised: the `2rf` test issue was acknowledged as intended by the author, and the metadata.json trailing-newline issue does not reproduce (diff shows no 'No newline at end of file' marker). Remaining: two sharing-workflow documentation gaps, both non-blocking for the primary use case. --- *🤖 Review by opencode (opencode/mimo-v2.6-flash-free) — verdict: **approve** <!-- forgejo-opencode-review -->
clank-bot left a comment

Code review findings from opencode.

Code review findings from opencode. <!-- forgejo-opencode-review -->
Member
[style] Links point to `github.com/steveyegge/beads`, but the project has moved to the `gastownhall` org. GitHub redirects currently mask this; consider updating the links (README body and install URL) to the new org.
<!-- forgejo-opencode-review --> [style] Links point to `github.com/steveyegge/beads`, but the project has moved to the `gastownhall` org. GitHub redirects currently mask this; consider updating the links (README body and install URL) to the new org.
martin marked this conversation as resolved
@ -0,0 +1,20 @@
{"_type":"issue","id":"woodpecker-extension-2rf","title":"Test the local config","status":"open","priority":0,"issue_type":"task","owner":"git@martials.no","created_at":"2026-10-02T19:14:51Z","created_by":"Martin Berg Alstad","updated_at":"2026-10-02T19:14:51Z","dependency_count":0,"dependent_count":0,"comment_count":0}
Member
[style] Stray test issue `woodpecker-extension-2rf` ("Test the local config", priority 0 — the highest priority) is included in the shared export. Collaborators running `bd import` will receive it. Close/delete it and re-export before merging.
<!-- forgejo-opencode-review --> [style] Stray test issue `woodpecker-extension-2rf` ("Test the local config", priority 0 — the highest priority) is included in the shared export. Collaborators running `bd import` will receive it. Close/delete it and re-export before merging.
Author
Owner

This is intended

This is intended
martin marked this conversation as resolved
@ -0,0 +4,4 @@
"dolt_mode": "embedded",
"dolt_database": "woodpecker_extension",
"project_id": "789a5302-4cb0-4d39-9e45-2226232809cf"
}
Member
[style] File is missing a trailing newline ("No newline at end of file" in the diff). Add one to match the rest of the repo and avoid noisy diffs on the next metadata change.
<!-- forgejo-opencode-review --> [style] File is missing a trailing newline ("No newline at end of file" in the diff). Add one to match the rest of the repo and avoid noisy diffs on the next metadata change.
@ -65,6 +65,7 @@
tooltip = "defaultToolchain";
packages = with pkgs; [
woodpecker-cli
beads
Member
[style] `beads` exists in nixpkgs (`pkgs/by-name/be/beads`, binary `bd`), but verify it is present in the pinned `flake.lock` nixpkgs revision — if the pin predates the package's addition, `nix develop`/`nix build` evaluation will fail.
<!-- forgejo-opencode-review --> [style] `beads` exists in nixpkgs (`pkgs/by-name/be/beads`, binary `bd`), but verify it is present in the pinned `flake.lock` nixpkgs revision — if the pin predates the package's addition, `nix develop`/`nix build` evaluation will fail.
Author
Owner

It is there

It is there
cleanup
All checks were successful
ci/woodpecker/push/verify-nix Pipeline was successful
ci/woodpecker/pr/pr-review Pipeline was successful
6b95f20279
clank-bot left a comment

Code review findings from opencode.

Code review findings from opencode. <!-- forgejo-opencode-review -->
@ -0,0 +30,4 @@
## Share task changes
- After creating or changing tasks, run `bd export -o .beads/issues.jsonl` so
Member
[bug] Export/import only upserts, so locally deleted or pruned issues are never removed on other machines — and a later export from another clone re-imports them, resurrecting the deletion. Upstream is explicit: 'Do not use JSONL as sync ... cannot safely reconcile deletes or pruning.' Either note this caveat here, or document `bd dolt push`/`bd dolt pull` (with `bd bootstrap` on clones) if the Forgejo remote accepts `refs/dolt/data`.
<!-- forgejo-opencode-review --> [bug] Export/import only upserts, so locally deleted or pruned issues are never removed on other machines — and a later export from another clone re-imports them, resurrecting the deletion. Upstream is explicit: 'Do not use JSONL as sync ... cannot safely reconcile deletes or pruning.' Either note this caveat here, or document `bd dolt push`/`bd dolt pull` (with `bd bootstrap` on clones) if the Forgejo remote accepts `refs/dolt/data`.
@ -6,0 +11,4 @@
- Run `bd prime` for Beads workflow guidance and `bd ready` to find available work.
- Use `bd show <id>`, `bd create "Title"`, `bd update <id>`, and `bd close <id>`
to inspect and manage tasks.
- Tasks are shared through `.beads/issues.jsonl`: run `bd import` after pulling
Member
[bug] First-run on a fresh clone fails: the Dolt DB (`embeddeddolt/`) is gitignored, so per upstream troubleshooting `bd import` errors with 'database not found' before it can read the JSONL. Document `bd bootstrap` for initial setup (it auto-imports the tracked `.beads/issues.jsonl`, or clones `refs/dolt/data` if present) and keep `bd import` for subsequent pulls. The same instruction is mirrored at .opencode/skills/beads-todos/SKILL.md:35 and needs the same fix.
<!-- forgejo-opencode-review --> [bug] First-run on a fresh clone fails: the Dolt DB (`embeddeddolt/`) is gitignored, so per upstream troubleshooting `bd import` errors with 'database not found' before it can read the JSONL. Document `bd bootstrap` for initial setup (it auto-imports the tracked `.beads/issues.jsonl`, or clones `refs/dolt/data` if present) and keep `bd import` for subsequent pulls. The same instruction is mirrored at .opencode/skills/beads-todos/SKILL.md:35 and needs the same fix.
martin merged commit c8d538b5ea into main 2026-10-03 11:20:57 +00:00
martin deleted branch beads/init 2026-10-03 11:20:57 +00:00
Sign in to join this conversation.
No description provided.