mirror of
https://github.com/Comfy-Org/comfy-typescript-sdk.git
synced 2026-11-04 23:47:27 +00:00
[PR #65] [CLOSED] ci: add the team-gated Cursor review caller #67
Labels
No labels
audit:ai-readiness
audit:community
audit:github
audit:health-scoring
audit:policy
audit:release
audit:supply-chain
bug
cursor-review-pin
effort:medium
effort:small
effort:trivial
priority:nice-to-have
priority:recommended
pull-request
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
Comfy-Org/comfy-typescript-sdk#67
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
📋 Pull Request Information
Original PR: https://github.com/Comfy-Org/comfy-typescript-sdk/pull/65
Author: @mattmillerai
Created: 8/22/2026
Status: ❌ Closed
Base:
main← Head:chore/cursor-review-caller📝 Commits (5)
8c2a448ci: add the team-gated Cursor review caller83dc03cci: allowlist the public reusable-workflows repo in the hygiene check6ea9edaci: gate via the reusable workflow and size-exempt the generated tree9b78e2cmerge: resolve add/add conflict with main's already-merged Cursor review callered6c5a0fixup: use main's exact hygiene-allowlist entry, not the PR's duplicate📄 Description
ELI-5
Every actively-developed repo in the org gets an automated code review when you put a
cursor-reviewlabel on a PR. This repo was missing the file that switches that on, so its PRs never got one. This adds it.What this is
A thin caller for the reusable
cursor-reviewworkflow inComfy-Org/github-workflows, which owns the review panel, the judge, the prompts and the scripts. The caller carries no logic of its own — it pins a SHA and passes repo-specific settings.Copied from the callers in
comfy-cli/comfy-toolbox/evalsand adjusted for this repo. Thecursor-reviewlabel already exists here, so nothing else needs creating.Why now
This repo was just made routable for automated code work, and it is about to receive its first agent-authored PRs. Landing the review caller before that work arrives means those PRs get a review pass from the outset rather than retroactively — and this PR is itself a deliberately small first change to prove the path.
Repo-specific tuning
The repo's generated and heavy paths go to
extra_generated_globs, notdiff_excludes. At the pinned SHA those inputs are not interchangeable:diff_excludesstrips paths from the reviewed patch only, whileextra_generated_globsfeeds the sharedcheck-pr-sizeclassifier and so drops them from thediff_size_capcount as well.Supplying it replaces the reusable default wholesale, so the shared defaults (
node_modules,dist,vendor,*.generated.*, minified output) are restated verbatim before this repo's own paths:src/low/generated/**— the generated client treeassets/**The generated tree is the one that matters. Under
diff_excludesa routine regeneration would still be charged its full added+removed churn against the 5000-line cap and could skip the entire panel — including the hand-written changes riding along with it, which is exactly the case the exclusion exists to prevent.Lockfiles need no entry: the classifier already covers
pnpm-lock.yamlamong its eight built-in lockfiles.Gating
There is deliberately no job-level
if:— the reusable workflow'sgatejob owns all gating (fork skip,skip-cursor-review, trigger label, same-commit dedupe), and every downstream job is guarded onneeds.gate.outputs.should_run. A caller-sideif:onlabeledwould make theunlabeledtrigger dead code, so removingskip-cursor-reviewwould never re-fire the review.Access control
Two layers, both inherited from the reusable workflow's design:
CURSOR_API_KEYis only reachable from internal branches.Permissions are
contents: read+pull-requests: write— no write access to code.Verification and the one open question
The workflow YAML parses, the pin is the current
github-workflowsmain(6a374b7), andworkflows_refmatches theuses:SHA so prompts and scripts load from the same commit as the definition.What I could not verify:
CURSOR_API_KEYis an org-level secret — no repo carries it locally, yet the workflow runs green incomfy-toolbox— but reading org secret visibility needsadmin:org, which I do not have. So I cannot confirm whether its visibility is all repositories or a selected list that excludes this one.If it is a selected list, the first labelled run here fails on a missing secret, visibly and with an obvious cause. That is cheap and self-diagnosing, so I would rather land this and let the first run answer it than block on an org-admin check. To test: apply the
cursor-reviewlabel to this PR.Provenance
Verified:
pnpm test(169 tests, 16 files),pnpm lint,pnpm format:check,pnpm typecheck, andnode scripts/check-public-repo-hygiene.mjsall pass locally on the merged tree. The workflow YAML parses and resolves to noif:, nodiff_excludes, and the eight-globextra_generated_globsvalue. The pathspec defect was confirmed empirically —git ls-files -- ':!**/pnpm-lock.yaml'still lists the rootpnpm-lock.yaml, while:!pnpm-lock.yamlexcludes it. Input semantics, the classifier'sglobRegexp, and every downstream job'sneeds.gate.outputs.should_runguard were read fromComfy-Org/github-workflowsat the pinned SHA6a374b7.Deviations: None from the review findings, all four of which were confirmed against upstream source and applied. The panel additionally suggested keeping the restated
diff_excludesdefaults alongside the move; they were dropped instead, sinceextra_generated_globsrestates them and the lockfile entries are classifier built-ins.🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.