Working PR for ADR-246: implementation can be done by dev team in cloud environment - #6
Closed
jodavis wants to merge 7 commits into
Closed
Working PR for ADR-246: implementation can be done by dev team in cloud environment#6jodavis wants to merge 7 commits into
jodavis wants to merge 7 commits into
Conversation
…ontext, add parse_json_list_output (#5) * ADR-253: Add ReviewComment/ReviewThread dataclasses, extend PipelineContext, add parse_json_list_output - Add ReviewComment and ReviewThread dataclasses - Add PipelineContext fields: review_threads, first_push_done, base_branch - Remove pr_url from PipelineContext (moves to sidecar; ADR-254 fixes step references) - save(): first_push_done as lowercase true/false; review_threads as camelCase JSON unconditionally; review_notes unconditionally - load(): deserialise all new fields; review_threads camelCase→snake_case - Add parse_json_list_output(): fenced blocks first, then bare lines, returns [] on failure - main(): compute base_branch via git before pipeline run, guarded against recomputation on resume - Add test_dev_team.py with 34 unit tests covering all round-trips and edge cases - Update validate-tests.cmd/.sh to invoke pytest Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * ADR-253: Fix validate-tests scripts to reference correct test path %~dp0 / SCRIPT_DIR resolves to scripts/ (repo root), but test_dev_team.py lives in plugins/dev-team/scripts/. Point both the PYTHONPATH and the pytest target at the correct plugin subdirectory. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * ADR-253: uncommitted changes at validation * ADR-253: Add TypeError to review_threads exception handler in load() If the Review Threads section contained valid JSON that was not a list (null, string, dict — e.g. from file corruption), json.loads would succeed but `for t in threads_data` would raise TypeError, crashing load() on pipeline resume. Added TypeError to the except tuple and a test covering null, dict, and string cases. * ADR-253: uncommitted changes at validation * Put dev-team plugin back in settings --------- Co-authored-by: Joe Davis <ElwoodMoves@hotmail.com> Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com> Co-authored-by: Joe Davis <jodasoft@outlook.com>
jodavis
marked this pull request as draft
June 3, 2026 18:50
- ReviewStep: remove PR-creation block; parse reviewer JSON into ReviewThread objects with UUID assignment; save ctx.review_threads / ctx.review_notes; emit [DEV-TEAM] Review ready: <status> - FixPrStep: add context_path ctor; pass $REVIEW_THREADS (unresolved threads JSON); thread-merge preserving Reviewer's resolved value; ctx.save() after merge - SignoffStep: add context_path ctor; _run_reviewer_signoff returns 4-tuple (ok, error, thread_dicts, body); $BASE_BRANCH/$REVIEW_THREADS substitutions; sys.exit(1) guard in main thread; thread-merge appending comments / updating resolved / adding new threads with UUIDs; ctx.signoff_notes; approval driven by thread resolution; explicit save - ValidateStep: add context_path ctor; emit [DEV-TEAM] First push complete (save-before-marker pattern, skipped on resume) - ImplementStep: emit [DEV-TEAM] Implementation started / complete - DebugStep: emit [DEV-TEAM] Debug complete - FixStep: add $REVIEW_THREADS: "" substitution - PipelineContext: add signoff_notes field with save/load via <!-- section:Signoff Notes --> (mirrors review_notes pattern) Co-authored-by: Joe Davis <ElwoodMoves@hotmail.com> Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
* 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>
…milestone scrum master table (#12) * ADR-256: Remove Jira tools from developer, update reviewer output schema, 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> * ADR-255: Update reviewer/developer skill files to use thread schema (#9) * 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> * ADR-256: Fix ctx.save() ordering and review_notes preservation in dev_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> * ADR-256: Document gh api strategy in dev-team.md; update reviewer.md 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> * ADR-256: Fix reply-to-thread URL in dev-team.md 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> * ADR-256: Use mcp__plugin_github_github__add_reply_to_pull_request_comment 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> * Remove gh CLI instructions from dev-team.md --------- Co-authored-by: Joe Davis <ElwoodMoves@hotmail.com> Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com> Co-authored-by: Joe Davis <jodasoft@outlook.com>
Owner
Author
|
Issue: There are SO MANY permission requests in this process. A lot of them are for |
Owner
Author
|
Ran out of tokens on this fairly simple change. There's still some work to do here. The top level agent is doing a lot of work re-figuring its own tasks, when they should just be working. |
…reliable and the agent is falling back on gh anyway. The cloud environment will have to have gh set up and authenticated.
Owner
Author
|
This wasn't working as we hoped, so abandoning it in favor of the new architecture |
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.
Working PR for ADR-246: implementation can be done by dev team in cloud environment
Includes breaking changes which must be completed before consumers can update their dev-team instances.