From 3c9f89ac45677f4eeb7c9be033a69cee168abb29 Mon Sep 17 00:00:00 2001 From: Stephen Freudenthaler Date: Mon, 27 Jul 2026 16:25:39 -0400 Subject: [PATCH 1/2] fix(ci): stop Claude workflows overwriting each other's PR comment MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit anthropics/claude-code-action keys its progress/sticky comment on "authored by the Claude app bot" with no per-workflow marker, so every Anthropic-path workflow on a PR reuses the same comment and the later run wipes the earlier one's content. On #36759 the rollback-safety verdict replaced the AI code review in place. Give the sticky comment a single owner — ai_claude-orchestrator.yml, where an auto-updating review comment is the point — and turn the progress comment off everywhere else. Rollback safety reports through a label plus its own comment when a change is unsafe; the backend reviewer upserts its own marker comment. Neither needs one. Requires the track_progress passthrough in dotCMS/ai-workflows#64 to be released on the v3 tag first. Closes: #36761 Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_01G7gd5sQ41A3k4bFeNVnUkR --- .github/workflows/ai_claude-backend-reviewer.yml | 7 +++++++ .github/workflows/ai_claude-rollback-safety.yml | 7 +++++++ 2 files changed, 14 insertions(+) diff --git a/.github/workflows/ai_claude-backend-reviewer.yml b/.github/workflows/ai_claude-backend-reviewer.yml index 7c9134553080..0787281c8f1b 100644 --- a/.github/workflows/ai_claude-backend-reviewer.yml +++ b/.github/workflows/ai_claude-backend-reviewer.yml @@ -93,6 +93,13 @@ jobs: timeout_minutes: 30 runner: ubuntu-latest enable_mention_detection: false + # No progress comment: claude-code-action finds the comment to reuse by + # "authored by the Claude app bot" with no per-workflow marker, so this + # review would grab — and overwrite — the code review comment posted by + # ai_claude-orchestrator.yml (#36761). STEP 5 below upserts this review's + # own comment, so it needs no comment of + # its own. Only the code-review orchestrator owns a sticky comment. + track_progress: false claude_args: >- --allowedTools "Agent,Bash(git diff*),Bash(git log*),Bash(git show*),Bash(cat CLAUDE.md*),Bash(cat docs/backend/*),Bash(cat docs/core/*),Bash(cat dotCMS/src/*),Bash(find dotCMS/src -name '*.java'*),Bash(grep -rn dotCMS/src*),Bash(gh pr comment*),Bash(gh pr review*),Bash(gh api repos/${{ github.repository }}/issues/${{ github.event.pull_request.number }}/comments*),Bash(gh api repos/${{ github.repository }}/issues/comments/*),Bash(jq*)" diff --git a/.github/workflows/ai_claude-rollback-safety.yml b/.github/workflows/ai_claude-rollback-safety.yml index 2481d0e20f7d..0aff04309418 100644 --- a/.github/workflows/ai_claude-rollback-safety.yml +++ b/.github/workflows/ai_claude-rollback-safety.yml @@ -91,6 +91,13 @@ jobs: model_id: ${{ vars.BEDROCK_MODEL_ID }} bedrock_role_arn: ${{ vars.BEDROCK_ROLE_ARN }} trigger_mode: automatic + # No progress comment: claude-code-action finds the comment to reuse by + # "authored by the Claude app bot" with no per-workflow marker, so this + # check would grab — and overwrite — the code review comment posted by + # ai_claude-orchestrator.yml (#36761). This check reports through a label, + # plus its own comment when the change is unsafe, so it needs no comment + # of its own. Only the code-review orchestrator owns a sticky comment. + track_progress: false prompt: | You are a dotCMS rollback-safety analyst. Determine whether the changes in this PR are safe to roll back to the previous release. From 162f7923e8b6b395d80da438617e2c0858cd466d Mon Sep 17 00:00:00 2001 From: Stephen Freudenthaler Date: Mon, 27 Jul 2026 17:10:52 -0400 Subject: [PATCH 2/2] chore: re-run AI review now that ai-workflows v3.4.0 is on the v3 tag The prior review's blocking finding was the merge-order gate: track_progress did not yet exist on claude-orchestrator.yml@v3. It does now (v3.4.0, v3 moved), so re-run the review against the resolved dependency. Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_01G7gd5sQ41A3k4bFeNVnUkR