feat(ci): let a maintainer re-run the issue analyst with @claude analyze

The analyst ran only on a new issue or on the reporter's reply to a
"clarification needed" question, and a comment mentioning @claude was
explicitly skipped. A maintainer had no way to get a fresh analysis after
the code moved, after the prompt improved, or to point it at a lead; the
only option was re-running the old job, which replays the old commit and
the old prompt.

A comment starting `@claude analyze` from an OWNER, MEMBER or COLLABORATOR
on an issue (open or closed, never a PR) now runs it as
`maintainer_request`, mirroring `@claude review` on PRs. In that mode the
analyst re-checks its earlier analysis against the current checkout, treats
text after the command as a steer on what to investigate (never as a
change to its rules), posts a complete standalone analysis that says what
changed, does not tag the maintainer, and leaves the issue's open/closed
state alone. The reporter path is unchanged and still skips @claude
comments, so one comment never starts both.

No test reaches a workflow trigger; actionlint 1.7.7 passes on the file,
and the first `@claude analyze` after the push is the demonstration.
This commit is contained in:
MHSanaei
2026-10-12 16:42:02 +02:00
parent 6eeaaa912a
commit 99d971ff83
2 changed files with 40 additions and 5 deletions
+2 -1
View File
@@ -587,7 +587,8 @@ root → `go build ./...` / `go run main.go`.
**CI** (`.github/workflows/`): `ci.yml` (build/test/lint), `codeql.yml` (security scan),
`mutation.yml` (mutation testing), `docker.yml` + `release.yml`
(multi-arch image + release builds), `cleanup_caches.yml`, `claude-pr-review.yml` (PR review
only - it changes no code), `claude-issue-analyst.yml` (issue triage).
only - it changes no code), `claude-issue-analyst.yml` (issue triage). A maintainer re-runs
them with a comment starting `@claude review` on a PR or `@claude analyze` on an issue.
---