ADR-256: Remove authenticated connector tools from sub-agents; add 8-milestone scrum master table - #12
Conversation
…ema, add dev-team.md milestone table All authenticated connector tools removed from developer.md per the scrum-master-owns-all-operations design. Reviewer output schema updated to thread-based JSON. Full 8-milestone table added to dev-team.md with sidecar persistence, thread-matching, and Jira idempotency guard. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
jodavis-claude
left a comment
There was a problem hiding this comment.
ADR-256 First-Pass Review
Three issues require changes: one exit-criterion gap (P1) and two correctness bugs in dev_team.py (P2). One documentation note (P4) on reviewer.md frontmatter.
Exit criteria status
-
developer.md: all 5 Jira MCP tools removed -
reviewer.md: output format updated to{body, threads[], status} -
dev-team.md: all 8 milestones present with sidecar read/write logic;[DEV-TEAM] PR details readyabsent (guard satisfied) - GitHub MCP method names for reply/resolve: implementation uses
gh apiREST/GraphQL instead of MCP methods (see inline comment)
* ADR-255: Update reviewer/developer skill files to use thread schema - reviewer-review.md: replace $PR_URL with $BASE_BRANCH; remove Step 3 (PR gate) and Step 6 (gh api post); replace gh pr diff with git diff origin/$BASE_BRANCH; output uses threads[] with filePath/lineNumber/ resolved/comments schema (no id field) - reviewer-sign-off.md: replace $PR_URL with $BASE_BRANCH and $REVIEW_THREADS; remove GraphQL fetch (Step 3), GitHub MCP resolve calls, gh api post (Step 6), and Step 6a; Reviewer evaluates threads from $REVIEW_THREADS and returns every thread evaluated (comments: [] if no new comment); output has no status field; id preserved on carried-over threads - developer-fix.md: remove Step 3 (GitHub MCP fetch) and Step 4 (triage with direct GitHub reply); add Build/Test Issues and Review Threads input sections; add mode-detection; in review-fix mode Developer returns full updated threads[] JSON block; disagree flow appends Developer comment to thread instead of posting to GitHub * ADR-255: Fix developer-fix.md to preserve prior comments in threads output Returning comments: [] erased the original Reviewer comment, leaving the sign-off Reviewer with no issue description. Instruction now says to include all prior comments as-is and append a Developer reply only when disagreeing or explaining. Example JSON block updated to match. * ADR-255: Fix FixPrStep to increment iteration before save ctx.save() was called before ctx.review_fix_iteration += 1, so a crash between the two lines would replay the step with the same iteration count, allowing one extra retry beyond the configured limit. --------- Co-authored-by: Joe Davis <ElwoodMoves@hotmail.com>
…_team.py P2a: Move ctx.save() to after review_fix_iteration and work_summaries updates in FixPrStep so a pipeline resume after interruption sees the correct iteration count and the latest work summary. P2b: Preserve signoff body in SignoffStep when failures is empty but threads are unresolved. ctx.review_notes now falls back to ctx.signoff_notes so the developer-fix agent receives textual context explaining why sign-off failed. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…frontmatter P1: Add implementation note to the thread-posting section of dev-team.md explaining that mcp__github__help was called but plugin:github:github was unavailable, and that gh api REST/GraphQL calls are the direct equivalent. Preserves all functional behaviour; satisfies the exit criterion by documenting the discovery outcome. P4: Update reviewer.md description frontmatter to remove "Creates GitHub PRs" — the scrum master owns PR creation after ADR-256; the reviewer only outputs a structured JSON result. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
The reply endpoint requires the pull number in the path: /pulls/<pull-num>/comments/<id>/replies not the shorter form without it. Verified empirically while posting PR thread replies — the shorter form returns 404. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…ment for reply-to-thread Satisfies exit criterion #4: MCP method name discovered from plugin:github:github server and now referenced in Thread-posting logic. resolve-thread continues to use gh api graphql resolveReviewThread (no MCP equivalent exists). Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
jodavis-claude
left a comment
There was a problem hiding this comment.
Sign-off review: all three prior threads addressed satisfactorily. (1) Exit criterion #4 met — mcp__plugin_github_github__add_reply_to_pull_request_comment discovered and used in dev-team.md; resolve-thread correctly falls back to gh api graphql resolveReviewThread since no MCP equivalent exists. (2) review_notes empty-string bug fixed — ctx.signoff_notes or join(failures) preserves sign-off body when only failure is unresolved threads. (3) ctx.save() ordering in FixPrStep corrected — iteration count and work summaries now persisted before save. No new P1–P4 issues found in modified files. Approving.
…-remove-authenticated-connector-tools-fr
Work item
ADR-256 — Remove Jira MCP tools from the Developer sub-agent, update the Reviewer output format to reflect the thread-based schema, and add the full 8-milestone scrum master milestone table (with sidecar file mechanics) to
dev-team.mdso the top-level session owns all GitHub and Jira operations.Changes
plugins/dev-team/agents/developer.md— Removed all five Jira MCP tool entries (mcp__jira__atlassianUserInfo,mcp__jira__getTransitionsForJiraIssue,mcp__jira__transitionJiraIssue,mcp__jira__editJiraIssue,mcp__jira__addCommentToJiraIssue) from thetools:list; Developer now relies solely on Bash/git for its operations.plugins/dev-team/agents/reviewer.md— Updated role description body and replaced the output format section: old{"status": "...", "pr_url": "..."}replaced with the full{body, threads[], status}schema; documented thatpr_urlmoves to the scrum master sidecar file.plugins/dev-team/commands/dev-team.md— Added Step 6 (244 lines) covering: sidecar file structure (.claude/logs/dev-team/<work-item-id>-threads.json) and load/write semantics; context file section extraction via sentinel comments; Jira idempotency guard; thread-posting logic (reply-existing vs. create-new); and all 8 milestone entries with full action descriptions.Design decisions
mcp__github__helpunavailable — fell back toghCLI. The spec called for discovering exact MCP method names for reply-to-thread and resolve-thread at implementation time. Theplugin:github:githubMCP server never became available in this session. Usedgh api .../pulls/comments/<id>/replies(forgithubCommentId) andgh api graphql resolveReviewThread(forgithubThreadId) — the same patterns already established inreviewer-review.mdandreviewer-sign-off.md.[DEV-TEAM]markers while Step 4's pipeline runs.