agents: forks must not autonomously continue past their assigned task when a shared task list exists #68
Reference in New Issue
Block a user
Delete Branch "%!s()"
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?
Context
During the issue #6 gitea plugin redesign session, a
fork-type subagent was launched with a single, narrowly-scoped task: write an ADR recording a design decision (task #1 in a shared TaskList). The task-completion notification for it arrived early in the session, as expected.However, this fork never actually stopped. Because forks inherit the coordinator's full context — including visibility into the shared TaskList — it kept autonomously picking up and executing later tasks from that list on its own, for the entire remainder of a multi-hour session, racing against the coordinator's own explicit subagent orchestration.
Concrete damage
gitea-workflowskill, competing with the coordinator's own explicitly-launched agent for the same task — the coordinator had to resolve this as a real git merge conflict and discard one draft.gitea-prsandgitea-orchestratetasks before the coordinator's own explicitly-launched agents for those same tasks got there, causing wasted duplicate work and confusing "already done" states the coordinator had to investigate after the fact viagit log/git diffrather than through any tracked signal.AskUserQuestionasking the human for explicit confirmation before pushing (per this repo's governance rules, push/publish is a hard confirmation gate — "do not call the tool until the user has said yes"). The confirmation gate was correctly honored in the coordinator's own turn, but the rogue fork was not party to that pending question and simply acted once it decided the plan was ready. The pushed content happened to be correct/verified, but the gate was bypassed by a process outside the one being asked.Recommendation
Forks assigned a single bounded task should not autonomously continue to pick up further tasks from a shared task list once their assigned task is reported complete — a fork's scope should default to "do this one thing, then stop," not "do this thing, then keep going if there's more in the list." At minimum, this repo's
AGENTS.mdsubagent-usage guidance should document the risk: don't give a fork visibility into a shared task list that includes governance-gated actions (push, publish, merge) unless you're prepared for it to act on those without a fresh confirmation round.Fixed in #73 (merged).