Skip to content

CI - Unify the Claude workflow and job names - #4307

Merged
shrunyan merged 3 commits into
devfrom
chore/unify-claude-workflow-names
Sep 18, 2026
Merged

shrunyan merged 3 commits into
devfrom
chore/unify-claude-workflow-names

Conversation

@agalin920

@agalin920 agalin920 commented Aug 31, 2026

Copy link
Copy Markdown
Contributor

Names the five Claude workflows for what they do, and makes the Actions list and the PR check list read the same way.

file workflow name check name
claude-auto-reviewer.yml Claude: Code Review Claude Code Review
claude-change-verifier.yml Claude: Acceptance Criteria QA Claude Acceptance Criteria QA
claude-issue-critique.yml Claude: Issue Triage Claude Duplicate Issue Check / Claude Issue Triage
claude-negative-qa.yml Claude: Adversarial Browser QA Claude Adversarial Browser QA (advisory)
claude-sentry-handler.yml Claude: Sentry Triage & Auto-Fix Claude Sentry Triage & Auto-Fix

Two names were wrong against behaviour, not just inconsistent:

  • Sentry. "RCA" names only the complex branch. CI - Automated Sentry Issue Root-Cause Analysis #4231 specifies two processes, and the workflow implements both: :509 posts an RCA-only comment on verdict == complex, :526 opens an auto-fix PR against dev on verdict == simple.
  • Negative QA. The prompt is entirely attack sequences — delete-while-referenced, double-submit, navigate-mid-save — with a two-reproductions rule. "Browser QA" named the mechanism and dropped the intent.

Three prompts also referenced a workflow called "QA Review", which has never existed under that name; they now name the real sibling workflows. The comment headings each workflow posts are aligned to the same names (## QA Review## Acceptance Criteria QA, ## Negative QA## Adversarial Browser QA).

Scope

No trigger, permission, secret, model, or step-logic change. Job ids are untouched, so needs:, workflow_dispatch, and gh workflow run claude-negative-qa.yml all keep working. The HTML markers (<!-- cv-verifier -->, <!-- negative-qa -->, <!-- claude-code-review -->) are untouched, so comment upsert and every downstream grep still match.

Verification

  • All five parse under YAML.load; prettier --check clean.
  • Adding a job name: changes the check-run names on PRs. Ruleset 16667349 (dev) requires only all_tests_passed, so no required check is affected.
  • Not reviewed by the reviewer subagent — subagents were unavailable this session.

All five Claude workflows now use a "Claude: <what it does>" display name and
a "Claude ..." job name, so the Actions list and the PR check list both group
and read the same way. Cross-references inside the prompts were pointing at
names that no longer existed ("QA Review") and now name the real workflows.

No trigger, permission, or step change. Job ids are untouched, so nothing that
depends on them (needs:, workflow_dispatch, gh workflow run) changes.
@shrunyan
shrunyan enabled auto-merge (squash) September 4, 2026 18:57
@github-actions

github-actions Bot commented Sep 4, 2026

Copy link
Copy Markdown
Contributor

Acceptance Criteria QA — ✅ PASS

No linked issue found — change-only QA.

  1. ✅ Every workflow's top-level name: is renamed to the Claude: <Thing> form from the PR's table, and values containing a colon ("Claude: Code Review", "Claude: Issue Triage", "Claude: Adversarial Browser QA", "Claude: Sentry Triage & Auto-Fix") are quoted so the YAML scalar stays valid.
  2. ✅ A job-level name: is added to every job named in the PR's check-name column (review, verify, duplicate-check, triage, negative-qa, sentry-rca), and each string matches the table exactly, including the (advisory) suffix on negative-qa.
  3. ✅ Cross-workflow references inside prompt text and comments are updated in lockstep — claude-auto-reviewer.yml's comment naming the verifier workflow, claude-change-verifier.yml's reference to the old "Claude Auto Review" name and its ::error:: string, and claude-negative-qa.yml's two "QA Review"/"Claude Change Verifier" mentions all now point at the new names, with no stale old name left in the diff.
  4. ✅ Report heading strings inside the prompts move together with the workflow rename (## QA Review## Acceptance Criteria QA; ## Negative QA## Adversarial Browser QA in both the findings-present and findings-empty branches), while the <!-- cv-verifier --> and <!-- negative-qa --> HTML markers appear only as unchanged context lines in the diff, so comment-upsert matching is preserved.
  5. ✅ No on:, permissions:, secrets:, model, or step-logic lines appear in the diff — every hunk edits only a name: scalar or prose inside an existing prompt string, consistent with the PR's stated "no trigger/permission/secret/model/step-logic change" scope.
  6. ⚠️ The claim that branch-protection ruleset 16667349 requires only all_tests_passed and is unaffected by the new check-run names — this is GitHub repo-settings state, not something the checked-out YAML can confirm.
Suggested Cypress coverage

This PR only edits .github/workflows/*.yml (job/workflow display names and prompt text); it has no effect on the manager-ui React app's runtime behavior, so no cypress/e2e/** spec exercises this surface and none needs to be added.

@github-actions

github-actions Bot commented Sep 4, 2026

Copy link
Copy Markdown
Contributor

Code Review — ✅ No blockers

@github-actions

github-actions Bot commented Sep 4, 2026

Copy link
Copy Markdown
Contributor

Adversarial Browser QA

No reproducible edge-case failures found on the surfaces this PR changes.

Also checked and working correctly
  • Confirmed via gh pr diff that the entire changeset is limited to .github/workflows/*.yml (workflow name:, job name:, and prompt text referencing other workflow names) — no files under src/ or cypress/ are touched, so there is no app route or component to exercise in the browser.

finnar-bin added a commit that referenced this pull request Sep 7, 2026
## What

Two model pins, in two commits:

| File | Job | Before | After |
|---|---|---|---|
| `claude-auto-reviewer.yml` | review | `claude-sonnet-4-6` |
`claude-sonnet-5` |
| `claude-issue-critique.yml` | triage | `claude-opus-4-8` |
`claude-sonnet-5` |

After this, all six `claude-code-action` invocations in the repo run
`claude-sonnet-5`, and no invocation relies on the action's default
model. `grep -i opus .github/workflows/` returns nothing.

## Why

**auto-reviewer** was the last workflow on `claude-sonnet-4-6`. That pin
dates to #4150, the commit that first added a `--model` flag to the
file; nothing since bumped it while the other four workflows moved to
sonnet-5.

**issue-critique triage** was the only job deliberately on Opus. Changed
on the Director's instruction. Two comments in that file justified the
Opus pin and are updated with it:

- the `# claude-opus-4-8 ... do not downgrade` line above `claude_args`
is removed — it no longer describes the file;
- the `if:` gate rationale above the `triage` job said the
HIGH-duplicate skip "avoids wasting an Opus run". The skip still stands
on its own merits, so the condition is unchanged and only the cost
framing is reworded.

`--max-turns 100` and `timeout-minutes: 20` are untouched on both jobs.

## Not verified

A model flag only takes effect on the next event that triggers its
workflow, so nothing here demonstrates that either job runs green on
`claude-sonnet-5`. If a model string is rejected by the pinned action
version, it surfaces as a failed job on the first PR (auto-reviewer) or
the first opened issue (triage) after merge.

Related, not addressed: `claude-auto-reviewer.yml` carries the repo's
oldest action pin, `anthropics/claude-code-action@1dc994e` (v1.0.127),
against v1.0.184/185 elsewhere.

## Conflicts

None with #4307, which edits lines 1-14 and 36-48 of
`claude-auto-reviewer.yml`; this touches line 86. #4307 also edits
`claude-issue-critique.yml`, at the workflow/job `name:` keys, not
`claude_args`.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

---------

Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
Co-authored-by: Nar -- <28705606+finnar-bin@users.noreply.github.com>
@github-actions

Copy link
Copy Markdown
Contributor

Code Review — ✅ No blockers

@shrunyan
shrunyan merged commit 553758b into dev Sep 18, 2026
29 of 34 checks passed
@shrunyan
shrunyan deleted the chore/unify-claude-workflow-names branch September 18, 2026 00:57
@github-actions

Copy link
Copy Markdown
Contributor

Coverage Report

Overall Coverage

Lines Statements Branches Functions
61.80% 61.42% 56.07% 56.36%

Changed Files Coverage

File Lines Statements Branches Functions
No changed files found - - - -

agalin920 added a commit that referenced this pull request Sep 18, 2026
Conflict in .github/workflows/claude-change-verifier.yml only, from #4307
(Claude workflow/job rename) landing on dev while this branch rewrote the
same report template and gate message.

Resolved as dev's names over this branch's logic:

- Report heading is `## Acceptance Criteria QA` (dev's name), still bare —
  this branch removed the agent-written `— <PASS|FAIL|INCONCLUSIVE>` suffix
  because the post step computes the verdict.
- The gate's `::error::` keeps this branch's wording (no "or a clear bug";
  the agent no longer judges bugs) and dev's comment name.

Two unconflicted lines renamed for consistency, because the post step's
parser is coupled to the template it completes: the prompt's "leave the
`## …` heading exactly as written" instruction, and the python
`startswith(...)` / rewrite pair in `Post or update QA comment`. Leaving
those at "QA Review" would have left the heading uncompleted and the counts
off every comment.

Verification: all five Claude workflows parse under js-yaml; prettier clean.
The post step was extracted verbatim from the merged YAML and re-run against
the same six fixtures as the original commit — 6✅/1❌ → `❌ FAIL — 1 of 7`;
2✅/1 runtime → `✅ PASS — 2/2 …, 1 needs a running app`; all-runtime → PASS
"nothing was checkable"; no criteria → gate red; no marker → gate red; and a
disobedient report (own verdict marker, heading suffix, prose ✅) normalised
to one marker with the prose ✅ uncounted. Merged tree differs from dev in
this one file.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants