Skip to content

.agent mirror issue layer is stale: workflows call issue_claim/issue_release/issue_any_claimable which do not exist #71

Description

@laird

CLAUDE.md declares mirror parity CRITICAL, but the entire issue layer under .agent/scripts/ has drifted from plugins/autocoder/scripts/. The Antigravity /fix workflow is broken end to end as a result.

The mirror calls verbs its own library does not define

.agent/workflows/fix.md calls three verbs that .agent/scripts/issue-fns.sh never defines:

verb called at defined in .agent?
issue_any_claimable fix.md:320
issue_claim fix.md:532, fix.md:648
issue_release fix.md:575, fix.md:681, fix.md:1479

Verified live:

$ source .agent/scripts/issue-fns.sh
  defined:   issue_list
  defined:   issue_get
  MISSING:   issue_claim
  MISSING:   issue_release
  MISSING:   issue_any_claimable

Consequence: Antigravity /fix exits at preflight, every run

fix.md:319-323:

issue_any_claimable
case $? in
  0) ;;  # work exists; fall through
  1) echo "No claimable issues. Nothing to do."; exit 0 ;;
  *) echo "Backend error while checking for claimable issues"; exit 1 ;;

Undefined function → exit 127 → falls to *)exit 1. The workflow never reaches any issue. This is not a degraded path; /fix on Antigravity cannot run at all.

Second break: --state blocked is unsupported

.agent's _ifns_gh_list passes --state straight through to gh:

$ source .agent/scripts/issue-fns.sh; issue_list --state blocked --limit 2
invalid argument "blocked" for "-s, --state" flag: valid values are {open|closed|all}

That breaks .agent/workflows/list-needs-feedback.md:43 and .agent/workflows/approve-proposal.md:85.

Third: no backend-level blocking-label filter

.agent's inline _ifns_gh_list applies no label exclusion at all — it never had the no:label bug from #57 because it has no filter whatsoever. Per the 9-verb contract, list --state open is supposed to mean "claimable". The command-layer jq/python filters happen to compensate today, but the backend contract is not honoured.

Scope of the drift

file status
issues-gh.sh absent from .agent/ entirely
issues-file.py 438 differing lines; lacks claim/release/any-claimable and the bucket layout (3 bucket refs vs 30)
issue-fns.sh 180 differing lines; inline gh impl vs dispatcher
issue-config.sh 4 differing lines

.agent/scripts/issues-file.py was last touched 2026-05-19; the plugins copy has moved on since.

Fix

Sync the issue layer forward — these are meant to be identical shared infrastructure, and the plugins copy is the maintained one (it implements the full 9-verb contract the mirror's own workflows already assume):

  • copy issues-gh.sh into .agent/scripts/
  • replace .agent/scripts/issue-fns.sh with the dispatcher version
  • refresh .agent/scripts/issues-file.py and issue-config.sh

Then assert all 9 verbs resolve and --state blocked works.

Out of scope, noted

.agent/workflows/fix.md.backup and fix-loop.md.backup are stale editor backups committed to git.

🤖 Found by autonomous fix workflow

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    P1High priority issueawaiting-integrationFix is complete and merged to the integration branch but has not reached the shipping branchbugSomething isn't working

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions