Give the agent loop a board, and keep it in step with Forgejo #129
No reviewers
Labels
No labels
area:docs
area:identity
area:ops
area:plugin
area:server
channel:community
channel:direct
channel:owned
channel:press
channel:social
e2ee-constrained
gate:at-ga
gate:pre-ga
marketing
parity
relay:absent
relay:planned
relay:requested
relay:supported
risk:additive
risk:contract
risk:none
usability
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
Nectenda/nectenda!129
Loading…
Reference in a new issue
No description provided.
Delete branch "worktree-agent-queue"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
The agent work queue's board, and the tools that filled it.
Forgejo has no Projects API, so an agent can read an issue but never move it between columns. Work is moving to a self-hosted Vikunja board (projectron), where an agent can.
scripts/agent/lib/vikunja.mjs: a small v2 client that enforces Markdown in and out (format=markdown), refuses a PATCH that carries Markdown, reads whole buckets (they page inside), and compares round trips by what renders.scripts/agent/lib/reconcile.mjs: a pure planner that keeps the board in step with Forgejo until the cut. It never overwrites a card edited on the board, and never mistakes an issue closed for the move for finished work.scripts/agent/migrate-forgejo.mjs: migrate,--reconcile,--verify, and--close-forgejo --apply.CLAUDE.mdand.forgejo/pull_request_template.md: work is now tracked on the board, not in Forgejo issues. The template'sCloses #becomesTask: NEC-. The cut was made on 23 September 2026: the 75 open issues were closed, each with a comment naming its card, and only the Dependency Dashboard (#18) remains open.docs/changes/README.md: where change specs go, and which Markdown survives the board.Tests:
node --test scripts/agent/, 22 tests. Every rule was mutation-checked, and each broken rule failed its own test. Nothing here is mirrored;build-mirror --checkstages cleanly.Changelog
NONE