Repository navigation
claude: fast triage job plus a build job that can run tests - #16954
Conversation
|
Claude finished @midleman's task in 27s —— View job Review: 2 findingsThe current commit only removes the 1. The prompt contradicts itself on tests. 2. I did not run anything. This PR changes only a workflow file. |
|
E2E Tests 🚀 Why these tags?Test count: Linux: 62 tests. Note No feature tags detected. If this PR needs feature coverage, add the tag above and retrigger the workflow. |
|
Claude finished @midleman's task in 50s —— View job Review: 2 findingsCommit 1. The JSON schema does not tell Claude what the fields mean. 2. The SPIKE step can make a good run show the I did not run anything. This PR changes only a workflow file and a build script. |
|
Claude finished @midleman's task in 50s —— View job Review: 1 findingThe two findings from the last review are fixed. The build job is not in the diff yet. I expected this because the PR is WIP. 1. The Note: the I did not run anything. This PR changes only a workflow file and a build script. |
…-deps setup action
…ert before merge)
|
Claude finished @midleman's task in 1m 11s —— View job Review: 2 findingsThe new composite actions look correct. On a cache hit, 1. The 2. The I did not run anything. This PR changes only workflow files, composite actions, and a build script. |
|
Claude finished @midleman's task in 28s —— View job Review: no new findingsThe new commit Two findings from the last review are still open:
The triage/build handoff is not in the diff yet. I expected this because the PR is WIP. I did not run anything. This PR changes only workflow files, composite actions, and a build script. |
|
Claude finished @midleman's task in 1m 9s —— View job Review: 1 new findingThe triage/build split in 1. On a PR, the build job installs the dependencies of Still open from the last review: the I did not run anything. This PR changes only workflow files, composite actions, and a build script. |
|
Claude finished @midleman's task in 20s —— View job Handed off: uppercase backend schemes in
|
|
Claude finished @midleman's task in 17s —— View job Handed off: uppercase backend schemes in
|
|
Claude finished @midleman's task in 2m 41s —— View job Opened draft PR #16956: uppercase backend schemes in
|
|
Claude finished @midleman's task in 10s —— View job Answer:
|
|
Claude finished @midleman's task in 13s —— View job Answer:
|
|
The handoff to the build job failed. See https://github.com/posit-dev/positron/actions/runs/40714675815. |
Triage now hands off any non-Markdown change, and --disallowedTools Edit rules block code edits even though tag mode auto-accepts edits. Also drop the unused GitHub token from the core npm ci step and correct which lockfiles the build job installs on review events.
# Conflicts: # .github/workflows/claude.yml
|
Claude finished @midleman's task in 48s —— View job Review: 1 new findingThe new commits 1. The
The commit title says the rules "enforce" the Markdown limit, but they only block the common cases. Add the missing patterns, at minimum Still open from earlier reviews
I did not run anything. This PR changes only workflow files, composite actions, and a build script. |
Triage gets a read-only list of git commands instead of Bash(git:*), git rm is blocked, and the deny list adds style, SVG, and Dockerfile files. The prompt now says no code rather than Markdown only, matching what the deny rules enforce.
|
Claude finished @midleman's task in 38s —— View job Spike: 3 of 4 steps were blocked, and the Markdown edit was allowedThe permission rules worked as planned. The code edit and both file-changing
Note on step 2. Step 2 was not blocked by a deny rule. It failed because the command is not on the allow list, and nobody can approve a prompt in CI. The result is the same, but the error is different from step 3. If you want the same explicit denial, add Cleanup. After step 4, I removed the |
This reverts commit f12dd67.
|
Claude finished @midleman's task in 44s —— View job Review: no new findingsThe new commit Small gap. The prompt at Still open from earlier reviews
I did not run anything. This PR changes only workflow files, composite actions, and a build script. |
|
Claude finished @midleman's task in 20s —— View job Handed off: uppercase backend schemes in
|
|
Claude finished @midleman's task in 2m 25s —— View job Opened draft PR #16962: uppercase backend schemes in
|
…ge)" This reverts commit 3ed12de.
|
Claude finished @midleman's task in 27s —— View job Review: no new findingsThe new commits Still open from earlier reviews
I did not run anything. This PR changes only workflow files, composite actions, and a build script. |
|
Claude finished @midleman's task in 28s —— View job Review: no new findingsThe new commit Still open from earlier reviews
I did not run anything. This PR changes only workflow files, composite actions, and a build script. |
|
Claude finished @midleman's task in 28s —— View job Review: 1 open findingThe new commit Still open from earlier reviews
I did not run anything. This PR changes only workflow files, composite actions, and a build script. |
|
Claude finished @midleman's task in 15s —— View job Review: no open findingsThe new commit All earlier findings are closed. I did not run anything. This PR changes only workflow files, composite actions, and a build script. |
nealrichardson
left a comment
There was a problem hiding this comment.
Seems directionally right to me, worth trying out. Left a couple of suggestions.
| token: ${{ steps.generate-token.outputs.token }} | ||
| persist-credentials: false | ||
|
|
||
| - name: Checkout Simple English plugin |
There was a problem hiding this comment.
Would it make sense to pull more of these steps into the shared setup-claude-sandbox and make that a broader setup-claude action?
There was a problem hiding this comment.
Done in 265f901. setup-claude-sandbox is now setup-claude, and it runs the Simple English plugin checkout, the Anthropic key load, the sandbox setup, and Node setup for both jobs. The token and repo checkout stay in the workflow, since a local action needs the repo checked out first. This run passed with it.
| --fallback-model sonnet | ||
| --allowedTools "Edit,Write,WebFetch(domain:posit.co),WebFetch(domain:*.posit.co),WebSearch,Read,Skill,Bash(git:*),Bash(gh pr view:*),Bash(gh pr edit:*),Bash(gh issue view:*),Bash(gh issue edit:*),Bash(gh label list:*),Bash(gh run view:*),Bash(npm ci:*),Bash(npm --prefix build ci:*),Bash(npm run:*),Bash(npx vitest:*),Bash(npx eslint:*),Bash(node scripts/format.mts:*),Bash(./scripts/file-origin.sh:*),Bash(.claude/skills/positron-pr-helper/scripts/fetch-test-tags.sh:*),mcp__github__create_pull_request,mcp__github__create_issue,mcp__github__search_issues,mcp__github__update_issue,mcp__github__create_pending_pull_request_review,mcp__github__add_comment_to_pending_review,mcp__github__submit_pending_pull_request_review,mcp__github__get_pull_request_diff,mcp__github__add_sub_issue" | ||
| --allowedTools "Edit,Write,WebFetch(domain:posit.co),WebFetch(domain:*.posit.co),WebSearch,Read,Skill,Bash(git log:*),Bash(git show:*),Bash(git diff:*),Bash(git blame:*),Bash(git status:*),Bash(git grep:*),Bash(git ls-files:*),Bash(git rev-parse:*),Bash(git fetch:*),Bash(gh pr view:*),Bash(gh pr edit:*),Bash(gh issue view:*),Bash(gh issue edit:*),Bash(gh label list:*),Bash(gh run view:*),Bash(./scripts/file-origin.sh:*),Bash(.claude/skills/positron-pr-helper/scripts/fetch-test-tags.sh:*),mcp__github__create_pull_request,mcp__github__create_issue,mcp__github__search_issues,mcp__github__update_issue,mcp__github__create_pending_pull_request_review,mcp__github__add_comment_to_pending_review,mcp__github__submit_pending_pull_request_review,mcp__github__get_pull_request_diff,mcp__github__add_sub_issue" | ||
| --disallowedTools "Edit(/src/**),Edit(/extensions/**),Edit(/build/**),Edit(/scripts/**),Edit(/test/**),Edit(/cli/**),Edit(/remote/**),Edit(/positron/**),Edit(/.eslint-plugin-local/**),Edit(/ai-lib/**),Edit(**/*.ts),Edit(**/*.tsx),Edit(**/*.mts),Edit(**/*.js),Edit(**/*.mjs),Edit(**/*.cjs),Edit(**/*.json),Edit(**/*.rs),Edit(**/*.py),Edit(**/*.R),Edit(**/*.sh),Edit(**/*.ps1),Edit(**/*.cmd),Edit(**/*.toml),Edit(**/*.yml),Edit(**/*.yaml),Edit(**/*.css),Edit(**/*.scss),Edit(**/*.less),Edit(**/*.svg),Edit(**/*.html),Edit(**/Dockerfile*),Edit(/.npmrc),Edit(/.nvmrc),Edit(/.python-version),Bash(git rm:*)" |
There was a problem hiding this comment.
Would it be simpler to express this as an allowlist under allowedTools, rather than allow all Edit and then block these paths?
There was a problem hiding this comment.
I tried an allowlist first, but it doesn't work with this action.
claude-code-action always starts Claude in acceptEdits mode (source). In that mode every file edit in the repo is approved automatically, and --allowedTools never gets checked for edits. So an allowlist of Edit(**/*.md) would still let triage edit a .ts file.
The one thing that mode still respects is --disallowedTools, which is why I went with a blocklist. I tested it in this run: the .ts edit was blocked and the README edit went through.
The downside is that a blocklist can miss a file type we didn't think of. The prompt also tells triage not to edit code, as a second layer.
Both jobs ran the same plugin checkout, secret load, sandbox setup, and Node setup. The setup-claude-sandbox action becomes setup-claude and runs all four.
|
Claude finished @midleman's task in 19s —— View job Review: no new findingsThe new commit The move is correct:
Still open: the second review comment from @nealrichardson, which asks for an I did not run anything. This PR changes only workflow files, composite actions, and a build script. |
Summary
Splits
@claudeinto two jobs so questions stay fast and code changes get tested. Addresses #16794.build/deps (includingbuild/rspackandbuild/vite, to match thenpm-corecache) via a newcorevalue forPOSITRON_EXTENSIONS_FILTER; it restoresnpm-coreand never saves a cacheOut of scope / follow-ups
.claude/(the action mounts it read-only), so requests to change skills or rules need a humanQA Notes
Tested on this PR's own runs. The
npm-corecache-hit path can only be tested after merge.