Findings
Built-in tools coverage gaps — create-but-can't-follow-up pattern
Date: 2026-06-12 Status: implemented 2026-06-12 — all gaps below filled (jira lifecycle, bitbucket review set, github review+issue lifecycle+search+actions, asana lifecycle, gmail thread reply+modify, sheets append, calendar freebusy, slack update/delete). Scope: gap analysis across all built-in plugins (companion to 2026-06-12 builtin tools round review, which covers quality of existing tools; this covers what's missing).
The pattern#
Three plugins ship the entry-point write but none of the lifecycle that follows:
- GitHub:
create_issue/create_prexist, but nolist_prs,get_pr, issue read/update/comment — open a PR, then blind. - Asana:
create_taskexists, but noget_task/update_task— can create a task, never complete one. - Bitbucket:
create_pr/list_prs/get_prexist, but no diff, comments, approve, or merge — can open a PR, can't review one.
Per-plugin gaps (priority order)#
1. GitHub (biggest hole)#
| Missing | Why |
|---|---|
list_prs / get_pr / get_pr_diff / PR comments / merge_pr | Whole review loop absent — worse than Bitbucket |
list_issues / update_issue / add_issue_comment | Has create only; can't read or follow up own issues |
search_code / search_issues | No discovery |
Actions: list_workflow_runs / get_run | CI status — common agent ask |
2. Bitbucket (scopes already sufficient — repository, pullrequest:write)#
| Missing | Endpoint |
|---|---|
get_pr_diff | GET /pullrequests/{id}/diff (or /diffstat, cheaper) |
list_pr_comments / add_pr_comment (inline path+line) | /pullrequests/{id}/comments |
approve_pr / request_changes | POST /pullrequests/{id}/approve, /request-changes |
merge_pr / decline_pr | POST /pullrequests/{id}/merge, /decline |
get_file (source at ref) | GET /src/{commit}/{path} |
list_pr_commits | /pullrequests/{id}/commits |
Native Bitbucket issue tracker (/issues, issue:write scope) deliberately skipped — tickets belong in Jira.
3. Jira (existing scopes write:jira-work/read:jira-work cover all of these — no reconnect)#
| Missing | Endpoint |
|---|---|
update_issue | PUT /rest/api/3/issue/{key} |
transition_issue + get_transitions | POST /issue/{key}/transitions — top agent op, no way to move status today |
add_comment / get_comments | /issue/{key}/comment |
list_projects | GET /rest/api/3/project/search — no project-key discovery today (project_types doesn't help) |
Sprint/board ops need read:board-scope:jira-software (same scope blocking jira_get_boards) — bundle with that reconnect or skip.
4. Asana#
get_task, update_task (complete / assign / due date), add_comment (stories API).
5. Gmail#
sendbuilds raw MIME with nothreadId(gmail.ts:15-22) → every reply forks a new conversation. AddthreadId+In-Reply-To/Referencesheaders.- No
modify(mark read, archive, add/remove labels), no attachment download.
6. Sheets#
write is PUT values = overwrite only (sheets.ts:30). Missing append (POST …/values/{range}:append) — the log-a-row case is the most common agent write. No add-tab either.
7. Second tier#
- Calendar:
freebusy(availability before scheduling), respond-to-invite (accept/decline). - Slack:
update_message/delete_message(agents editing own progress messages).
Fine as-is#
Docs, Slides, Drive (maybe move/rename later), Gemini, Confluence (surface complete — its problem is broken endpoints, see the v1 content API removal, resolved by 2026-06-22 confluence v2 migration), httpbin (test plugin).
Build order suggestion#
- Jira lifecycle set (update/transition/comment/list_projects) — one file, no scope change
- Bitbucket review set (diff/comments/approve/merge) — no scope change
- GitHub review + issue lifecycle
- Asana lifecycle, Gmail thread-reply + modify, Sheets append
- Calendar freebusy, Slack edit