Repository navigation
Bound Code Execution in the Local Strict Review Brief - #2879
Conversation
A reviewer probing a dev-loop script by running it executes the real thing, building environments and starting servers whose gitignored artifacts leave git status clean, while the brief still reads as read-only. Both briefs now bound execution, and fleet-code-review states that executing the change belongs to its author. Closes #2864
The first wording allowed any listed lint or type-check run without its exact invocation, bounded only code from the change, and implied a run with arguments was safe. The review skill's reason claimed author verification that an outside pull request lacks.
Read-only git and search commands left a shell-only reviewer no way to read a whole file. The dev-loop rationale overclaimed every argument, and the review skill's name-the-command sentence clashed with discarding an unsupported finding, so it moves into the local brief, which publishes nothing.
|
Important
This repository does not receive automatic reviews because it has fewer than 10 stars. ⚙️ Run configuration
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
🟡 Changes recommended
Two unresolved execution-boundary findings remain.
2 open findings
What changed in this PR
This PR bounds reviewer code execution and regenerates distributed skill copies.
Changes:
- Restricts review execution to read-only or explicitly required commands.
- Delegates normal code and test execution to authors and CI.
- Regenerates GitHub and Claude skill distributions and source digests.
| File | Summary |
|---|---|
.github/skills/local-strict-review/SKILL.md |
Generated local-review skill |
.github/skills/fleet-code-review/SKILL.md |
Generated review skill |
.claude-plugin/fleet-skills/skills/local-strict-review/SKILL.md |
Generated local-review skill |
.claude-plugin/fleet-skills/skills/fleet-code-review/SKILL.md |
Generated review skill |
.claude-plugin/fleet-skills/.source-digests/local-strict-review |
Updated source digest |
.claude-plugin/fleet-skills/.source-digests/fleet-code-review |
Updated source digest |
.agents/skills/local-strict-review/SKILL.md |
Canonical execution bounds |
.agents/skills/fleet-code-review/SKILL.md |
Review execution policy |
🧠 Review effort: Lite
💡 Configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
The review skill's bound named only the change's code, so running an unchanged consumer of a changed config stayed allowed. The brief's exception read as any command the skill names, recording commands included. The sweep brief also gains the name-the-command fallback.
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## develop #2879 +/- ##
========================================
Coverage 59.93% 59.93%
========================================
Files 16 16
Lines 8627 8627
========================================
Hits 5171 5171
Misses 3456 3456
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
The review skill's bound named only repository code, left item 4 assuming the reviewer runs unnamed checks, and lacked the fallback both briefs restated, so an unprovable finding fell to discard-or-publish. The brief's reason no longer claims every run of a dev-loop script has side effects.
A probe is not a check, so the review rule now bounds every command beyond reading files, git state, and the pull request. A finding only an unnamed command could prove counts as supported once it names that command, so it no longer conflicts with discarding unsupported findings. The sweep brief relies on the quoted section rather than restating the bound.
|
A recorded local strict-review pass covers head |
The brief's Bounds line restated the bound in different words, so it now points at Review the Change and adds only Task's exact commands. The reason moves into Review the Change, and the fallback no longer cites a section the local briefs exclude.
The pointer read as defining the whole allowance, which excluded the git reads the brief's own Paths line needs. The reason sentence now applies only outside the named commands.
|
A recorded local strict-review pass covers head |
…ounds, PurpleAir Rows, and the D7.1 Schedule Suffix to Main (#2884) - #2878 exempts tool directive names from the comment-case rule - #2880 isolates TestCli from the working directory and tests the absolute-path diff floor - #2879 bounds code execution in the local strict review brief - #2881 ticks the homeassistant-purpleair rollout rows in Stages 1, 3, and 4 - #2883 names the schedule run-id suffix in D7.1 and accepts it in the audit Closes #2828 Closes #2861 Closes #2862 Closes #2864 Closes #2875 Closes #2876 🤖 Generated with [Claude Code](https://claude.com/claude-code)


Summary
The
local-strict-reviewbrief said "read-only" but put no bound on running code. A reviewer that probes a script by running it still fits those words. A dev-loop script run that way builds environments and starts servers, and their gitignored artifacts leavegit statusclean.fleet-code-review"Review the Change" is the single home for the rule and its reason:--helprun can build environments and start servers thatgit statusmisses.local-strict-review"Running It": the diff brief's Bounds line points at "Review the Change" and adds only the exact commands its Task line names. The sweep brief quotes "Review the Change" and so carries the same bound without restating it..github/skills/and.claude-plugin/withscripts/build_dist.py.Closes #2864
Local review
A local strict review pass was recorded before every push, and the last pass on this head found nothing. Earlier findings were disposed of as follows:
Verification
python3 scripts/build_dist.py --check: currentpython3 scripts/prose_lint.py . --diff <merge-base>, with and without--check sentence-length: cleanprose_lint.py--checkinvocation fromOPERATIONS.md: cleanpython3 scripts/repo_gate.py,python3 spec/validate.py,python3 scripts/docker_lint.py: pass🤖 Generated with Claude Code