feat: adopt tasks-axi backlog mutations - #60
Merged
Merged
Conversation
Section 3 TASKS_AXI note and section 10 now describe the active policy: when tasks-axi is on PATH, route backlog mutations through its verbs (add/done/update/block/unblock/ready/show/mv/render) and rely on its auto-prune+archive instead of hand-editing; when absent, hand-edit as before. Secondmates inherit via the same AGENTS.md and .tasks.toml.
augustomklee
added a commit
to augustomklee/firstmate
that referenced
this pull request
Jun 24, 2026
Port upstream batch 3: optional tasks-axi backlog support (kunchenguid#55 + kunchenguid#60)
This was referenced Jun 24, 2026
Merged
leo1oel
added a commit
to leo1oel/nemo
that referenced
this pull request
Jun 25, 2026
Port upstream tasks-axi support (kunchenguid#55/kunchenguid#60) adapted to the herdr/Claude-only fork: provisioning lives in the dotfiles update-tools.sh axi loop (this fork has no fm-bootstrap), and a compatible tasks-axi is optional everywhere. - .tasks.toml: pin the tasks-axi markdown backend to data/backlog.md (done_keep=10, archive data/done-archive.md) - bin/fm-tasks-axi-lib.sh: shared 0.1.1+ compatibility probe - bin/fm-teardown.sh: route the post-teardown reminder through tasks-axi done/ready when compatible, else the hand-edit fallback; the secondmate retirement path keeps its data/secondmates.md hint - AGENTS.md sections 2/3/7/10, README, CONTRIBUTING: document the verb mapping and present-or-absent fallback; add .tasks.toml to tracked material - tests/fm-teardown.test.sh: compatible-tasks-axi reminder test
This was referenced Jun 28, 2026
vipentti
pushed a commit
to vipentti/firstmate
that referenced
this pull request
Aug 5, 2026
* docs: flip on tasks-axi backlog mutation-adoption Section 3 TASKS_AXI note and section 10 now describe the active policy: when tasks-axi is on PATH, route backlog mutations through its verbs (add/done/update/block/unblock/ready/show/mv/render) and rely on its auto-prune+archive instead of hand-editing; when absent, hand-edit as before. Secondmates inherit via the same AGENTS.md and .tasks.toml. * no-mistakes(review): Captain, document tasks-axi start and handoff policy * no-mistakes(review): Gate tasks-axi adoption and teardown prompts * no-mistakes(review): Clarify tasks-axi date gates * no-mistakes(document): Sync tasks-axi backlog docs * no-mistakes(lint): Shellcheck fixes applied
This was referenced Aug 9, 2026
This was referenced Aug 9, 2026
This was referenced Aug 10, 2026
This was referenced Aug 11, 2026
This was referenced Aug 11, 2026
This was referenced Aug 12, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Intent
Flip ON full tasks-axi backlog mutation-adoption in firstmate's AGENTS.md (CLAUDE.md is a symlink to it). tasks-axi 0.1.1 is published and empirically verified to round-trip data/backlog.md byte-safely. The prior PR #55 shipped detection-only and AGENTS.md said mutation-adoption was DEFERRED; this change activates it. Specifically: (1) Section 3 TASKS_AXI bootstrap note now says WHEN tasks-axi is on PATH firstmate mutates data/backlog.md via its verbs instead of hand-editing, WHEN absent it hand-edits exactly as before with the silent guarantee intact. (2) Section 10 replaces the deferred paragraph with the ACTIVE policy plus a verb mapping of firstmate's real ops (add/done/update/block/unblock/ready/show/mv/render, all verified against tasks-axi 0.1.1 --help), notes tasks-axi auto-prunes Done to done_keep=10 and archives to data/done-archive.md which SUPERSEDES the manual prune convention when present, and keeps the In flight/Queued/Done format spec block intact since the verbs edit in place byte-exact. (3) The WHEN-ABSENT path stays the unchanged hand-edit behavior. (4) Secondmates inherit automatically via the same AGENTS.md + .tasks.toml. Deliberate scope decisions: this is purely a docs/policy change - tasks-axi itself was NOT changed, and data/backlog.md was NOT reformatted or migrated (it is gitignored/local and tasks-axi handles it in place). I also fixed one internal-consistency line in the section 2 layout that still called .tasks.toml 'currently inert', since that contradicts the flip. Prose follows the repo convention of one full sentence per physical line and plain '-' dashes (no em dashes).
What Changed
tasks-axias the preferreddata/backlog.mdmutation path when a compatible 0.1.1+ install is detected, while preserving manual edits as the fallback when unavailable.fm-tasks-axi-lib.shfeature probing and wires bootstrap diagnostics so incompatibletasks-axiversions do not silently enter the active mutation policy.Risk Assessment
✅ Low: Captain, the remaining change is well-bounded to tasks-axi policy docs plus a small compatibility probe and teardown reminder, with no material merge-blocking issues found.
Testing
Captain, I inspected the base-to-target diff, ran the two relevant automated shell tests, verified the installed
tasks-axiis version 0.1.1, checked the documented command help surface, and ran a disposable firstmate-style backlog fixture that usedtasks-axito add, start, update, block, unblock, show, complete, render, prune Done to 10, and archive older entries. All checks passed, evidence was written under the requested evidence directory, and the worktree was clean afterward.Evidence: policy excerpts
Evidence: tasks-axi help surface
Evidence: tasks-axi end-to-end transcript
Evidence: fixture backlog after tasks-axi render
Evidence: fixture done archive
Evidence: bootstrap test transcript
Evidence: teardown test transcript
Pipeline
Updates from git push no-mistakes
✅ **intent** - passed
✅ No issues found.
✅ **Rebase** - passed
✅ No issues found.
🔧 **Review** - 3 issues found → auto-fixed (3) ✅
AGENTS.md:663- The active tasks-axi policy omits the dispatch path for an existing queued task. Section 7 still requires re-evaluating Queued and dispatching unblocked or date-due work, but under the new 'no hand-editing when tasks-axi is present' rule the documented verb list only coversadd --startfor new immediate dispatch and never tells firstmate to runtasks-axi start <id>for an already-queued item. That can leave launched work recorded as Queued, making recovery or heartbeat dispatch it again.AGENTS.md:668- This new mapping tells firstmate to hand off secondmate work with baretasks-axi mv, but the rest of AGENTS.md still directs handoffs throughbin/fm-backlog-handoff.sh. That helper resolves the registered secondmate home, validates the.fm-secondmate-homemarker, refuses in-flight items, and provides idempotent all-or-nothing moves. The new policy either conflicts with those existing instructions or bypasses their firstmate-specific safety checks, so the handoff path should be reconciled before enabling mandatory tasks-axi mutations.AGENTS.md:659- The README still says tasks-axi is detection-only and backlog mutations remain manual, contradicting the new active policy here. Since README is the public operator overview, merge would leave two repo-level sources giving opposite instructions about whether firstmate should use tasks-axi.🔧 Fix: Captain, document tasks-axi start and handoff policy
2 warnings still open:
AGENTS.md:115- The new policy activates tasks-axi for any executable on PATH, but bootstrap still detects it with a bare command-v check while section 10 relies on 0.1.1-specific verbs, flags, pruning, and format compatibility. An older incompatible tasks-axi install would now be treated as safe and could fail or mutate the durable backlog incorrectly. Gate adoption on a version or feature probe, or explicitly fall back to manual edits when the probe fails.AGENTS.md:672- This says tasks-axi done supersedes manual Done pruning, but the operational teardown path still tells firstmate to move the task to Done and keep Done to 10 manually, including the printed prompt in bin/fm-teardown.sh. Since that prompt appears at the exact moment the backlog must be updated, it can steer agents around tasks-axi done and skip archive-backed pruning. Update the teardown instructions or prompt to use tasks-axi done when available.🔧 Fix: Gate tasks-axi adoption and teardown prompts
1 warning still open:
AGENTS.md:670-tasks-axi readyonly reports queued tasks without unresolved blockers, but the existing protocol also treats future date-gated queued items as not dispatchable until their date arrives. This line now describesreadyas a complete 'dispatchable right now' list, so a firstmate following the new policy can start future-dated work early. Clarify thatreadyis dependency-only and that date gates still need the existing manual check beforetasks-axi start.🔧 Fix: Clarify tasks-axi date gates
✅ Re-checked - no issues remain.
✅ **Test** - passed
✅ No issues found.
git diff 3718fd0cd010a0a2668493d8c11eeb6331904d7d..f33ebc40e8dfd68183348e5e415585af30f6e54f -- AGENTS.md README.md bin/fm-bootstrap.sh bin/fm-tasks-axi-lib.sh bin/fm-teardown.sh tests/fm-bootstrap.test.sh tests/fm-teardown.test.shtests/fm-bootstrap.test.sh > /var/folders/5x/4nqprlbx0518k3ybcb1sz6gr0000gn/T/no-mistakes-evidence/01KVV986B2GZC3950RQ7CS223X/fm-bootstrap.test.log 2>&1tests/fm-teardown.test.sh > /var/folders/5x/4nqprlbx0518k3ybcb1sz6gr0000gn/T/no-mistakes-evidence/01KVV986B2GZC3950RQ7CS223X/fm-teardown.test.log 2>&1command -v tasks-axiandtasks-axi --versiontasks-axi --help,tasks-axi add --help,tasks-axi done --help, andtasks-axi ready --helpfor cmd in add start done update block unblock ready show mv render; do tasks-axi "$cmd" --help; done > /var/folders/5x/4nqprlbx0518k3ybcb1sz6gr0000gn/T/no-mistakes-evidence/01KVV986B2GZC3950RQ7CS223X/tasks-axi-help-surface.log./run-e2e.sh > /var/folders/5x/4nqprlbx0518k3ybcb1sz6gr0000gn/T/no-mistakes-evidence/01KVV986B2GZC3950RQ7CS223X/tasks-axi-e2e.log 2>&1from the evidence fixturereadlink CLAUDE.md,cat .tasks.toml, and targetedsedexcerpts fromAGENTS.mdintopolicy-excerpts.txtgit status --shortafter testing to confirm no worktree artifacts were left behind✅ **Document** - passed
✅ No issues found.
✅ **Lint** - passed
✅ No issues found.
✅ **Push** - passed
✅ No issues found.