From 8fc53e139961938652fcc76d76392ea25e6b48e4 Mon Sep 17 00:00:00 2001 From: Declan McKenna Date: Fri, 9 Oct 2026 15:05:57 +0100 Subject: [PATCH] Retire the org workflow templates --- README.md | 19 ++++--- .../claude-mention.properties.json | 5 -- workflow-templates/claude-mention.yml | 34 ------------- .../claude-pr-review.properties.json | 5 -- workflow-templates/claude-pr-review.yml | 51 ------------------- 5 files changed, 13 insertions(+), 101 deletions(-) delete mode 100644 workflow-templates/claude-mention.properties.json delete mode 100644 workflow-templates/claude-mention.yml delete mode 100644 workflow-templates/claude-pr-review.properties.json delete mode 100644 workflow-templates/claude-pr-review.yml diff --git a/README.md b/README.md index bf49c67..44ae099 100644 --- a/README.md +++ b/README.md @@ -1,11 +1,18 @@ # .github -Org-wide GitHub defaults for sentfutures. `workflow-templates/` holds the -starter workflows every repo sees under Actions → New workflow → "By -sentfutures" — currently the Claude PR review bot and the @claude mention -handler. These templates are thin callers; the shared logic and the setup -runbook live in [sentfutures/devops](https://github.com/sentfutures/devops). -Keep each template in sync with its twin in that repo's `callers/` directory. +Org-wide GitHub defaults for sentfutures. It holds no workflow templates. + +`workflow-templates/` used to offer the Claude PR review bot and the @claude +mention handler under Actions → New workflow → "By sentfutures". They were +retired on 2026-10-09: +- **Unused:** no repo had been set up from them. +- **Not visible everywhere:** repos under personal accounts never see org + templates. +- **Drift:** keeping a second copy of each caller in sync had failed twice. + +To install the bots, use `/install-review-bot` or copy the callers from +[sentfutures/devops](https://github.com/sentfutures/devops)' `callers/` +directory, as its README describes. > **⚠️ This repo silently changes every repo in the org.** Any community > health file added here — `PULL_REQUEST_TEMPLATE.md`, `ISSUE_TEMPLATE/`, diff --git a/workflow-templates/claude-mention.properties.json b/workflow-templates/claude-mention.properties.json deleted file mode 100644 index 52283d8..0000000 --- a/workflow-templates/claude-mention.properties.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "name": "Claude @mention handler — on-demand", - "description": "Summon Claude by commenting @claude on any issue or PR; also the fallback for fork PRs the review bot skips. Setup steps: see the sentfutures/devops README.", - "iconName": "octicon comment-discussion" -} diff --git a/workflow-templates/claude-mention.yml b/workflow-templates/claude-mention.yml deleted file mode 100644 index 9ac0ffa..0000000 --- a/workflow-templates/claude-mention.yml +++ /dev/null @@ -1,34 +0,0 @@ -name: Claude mention handler -# On-demand Claude: comment "@claude " on any issue or PR and Claude -# responds in a thread (it can answer questions, review, or push commits to -# the PR branch when asked). Also the fallback path for PRs the review bot -# skips — fork PRs, and PRs whose automated review never ran. The logic lives -# in sentfutures/devops (.github/workflows/claude-mention.yml). Setup: see the -# sentfutures/devops README. -# -# NOTE the permissions: this handler gets contents: write (it can push -# commits when asked to) — a deliberately broader grant than the review bot's. -# -# This file is mirrored as an org workflow template in sentfutures/.github — -# keep the two in sync when editing. -on: - issue_comment: - types: [created] - pull_request_review_comment: - types: [created] - issues: - types: [opened, assigned] - pull_request_review: - types: [submitted] - -jobs: - claude: - uses: sentfutures/devops/.github/workflows/claude-mention.yml@v1 - permissions: - contents: write - pull-requests: write - issues: write - id-token: write - actions: read # lets Claude read CI results on PRs - secrets: - CLAUDE_CODE_OAUTH_TOKEN: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }} diff --git a/workflow-templates/claude-pr-review.properties.json b/workflow-templates/claude-pr-review.properties.json deleted file mode 100644 index 25369c7..0000000 --- a/workflow-templates/claude-pr-review.properties.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "name": "Claude PR review bot — reviews every PR", - "description": "Installs the org's standing Claude reviewer: every pull request gets inline comments and an approve/request-changes verdict, verified and escalated to a human when the bot can't decide. Setup steps: see the sentfutures/devops README.", - "iconName": "octicon eye" -} diff --git a/workflow-templates/claude-pr-review.yml b/workflow-templates/claude-pr-review.yml deleted file mode 100644 index bb2b75c..0000000 --- a/workflow-templates/claude-pr-review.yml +++ /dev/null @@ -1,51 +0,0 @@ -name: Claude PR review bot -# Standing auto-reviewer: every pull request gets inline comments and an -# approve/request-changes verdict from claude[bot]. This is NOT a one-off -# review — it re-runs on every push. The logic lives in sentfutures/devops -# (.github/workflows/claude-pr-review.yml); this file only carries the -# triggers and this repo's own settings. Setup steps (app install, secret -# access, label, branch protection): see the sentfutures/devops README. -# -# This file is mirrored as an org workflow template in sentfutures/.github — -# keep the two in sync when editing. -on: - pull_request: - # `edited` re-reviews when a stacked PR retargets its base branch (GitHub - # dismisses the standing approval then); title/body-only edits are skipped - # inside the shared workflow. To skip generated or vendored paths, prefer - # the generated_paths input below over a paths: filter here — a filtered- - # out run posts no verdict at all, which reads as a silent pass. - types: [opened, synchronize, ready_for_review, reopened, edited] - -jobs: - review: # branch protection sees this check as "review / claude-review" - uses: sentfutures/devops/.github/workflows/claude-pr-review.yml@v1 - permissions: - contents: read - pull-requests: write - issues: write - id-token: write - # Only used when required_check is set: the verify step reads that - # check's result to refuse an approval over a red suite. Without this - # line the cross-check is skipped with a warning in the run log. - actions: read - with: - # Name of this repo's CI check the reviewer reads instead of running - # tests (e.g. "smoke", "preview"). Delete the line if there is none. - required_check: "FILL_ME_IN" - # Space-separated GitHub logins to page when the bot can't decide. - # Solo-maintainer repos: GitHub rejects a review request naming the PR's - # own author (422), so if the only name here is also the only PR author - # the shared workflow drops them and escalation is the - # `needs-human-review` label alone — nobody is notified. Fill it in - # anyway; it starts working when a second person opens a PR. - escalate_to: "FILL_ME_IN" - # Optional — repo-specific review rules, appended to the prompt: - # extra_instructions: | - # Also flag: - # - Broken internal links in changed HTML - # Optional — skim committed generated data instead of analyzing it: - # generated_paths: "outputs/**" - # generated_paths_note: "See CLAUDE.md for why this data is committed." - secrets: - CLAUDE_CODE_OAUTH_TOKEN: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }}