mirror of
https://github.com/google-gemini/gemini-cli.git
synced 2026-05-13 05:12:55 -07:00
feat: add 'review-pr' skill and sunset 'async-pr-review'
This commit is contained in:
@@ -74,3 +74,16 @@ The orchestration logic for this skill is fully tested. To run the tests:
|
||||
npx vitest .gemini/skills/offload/tests/orchestration.test.ts
|
||||
```
|
||||
These tests mock the external environment (SSH, GitHub CLI, and the file system) to ensure that the orchestration scripts generate the correct commands and handle environment isolation accurately.
|
||||
|
||||
## Future roadmap: Offload V2 (Fleet)
|
||||
|
||||
The current version of `offload` focuses on a persistent SSH workstation. The long-term vision for this tool includes:
|
||||
|
||||
- **Elastic compute**: Moving from a single machine to a fleet of ephemeral
|
||||
remote containers (for example, using Cloud Run Jobs or GKE Pods).
|
||||
- **Immutable base images**: Building a Docker container for every commit to
|
||||
`main` to ensure a guaranteed, pristine verification environment.
|
||||
- **Stateless execution**: Eliminating the need for manual cleanup by using
|
||||
on-demand, disposable compute nodes for every offload task.
|
||||
- **Massive parallelism**: Enabling dozens of simultaneous PR reviews and
|
||||
implementations across the elastic fleet.
|
||||
|
||||
@@ -29,12 +29,35 @@ toolName = "codebase_investigator"
|
||||
decision = "allow"
|
||||
priority = 100
|
||||
|
||||
# --- SKILLS ---
|
||||
[[rule]]
|
||||
toolName = "activate_skill"
|
||||
decision = "allow"
|
||||
priority = 100
|
||||
[rule.toolParameters]
|
||||
name = "review-pr"
|
||||
|
||||
[[rule]]
|
||||
toolName = "activate_skill"
|
||||
decision = "allow"
|
||||
priority = 100
|
||||
[rule.toolParameters]
|
||||
name = "fix-pr"
|
||||
|
||||
[[rule]]
|
||||
toolName = "activate_skill"
|
||||
decision = "allow"
|
||||
priority = 100
|
||||
[rule.toolParameters]
|
||||
name = "pr-address-comments"
|
||||
|
||||
# --- SHELL COMMANDS ---
|
||||
|
||||
# Git (Safe/Read-only)
|
||||
# Git (Safe/Read-only + Local State)
|
||||
[[rule]]
|
||||
toolName = "run_shell_command"
|
||||
commandPrefix = [
|
||||
"git checkout",
|
||||
"git blame",
|
||||
"git show",
|
||||
"git grep",
|
||||
|
||||
@@ -10,8 +10,7 @@ export async function runReviewPlaybook(prNumber: string, targetDir: string, pol
|
||||
runner.register([
|
||||
{ id: 'build', name: 'Fast Build', cmd: `cd ${targetDir} && npm ci && npm run build` },
|
||||
{ id: 'ci', name: 'CI Checks', cmd: `gh pr checks ${prNumber}` },
|
||||
{ id: 'review', name: 'Gemini Analysis', cmd: `${geminiBin} --policy ${policyPath} --cwd ${targetDir} -p "/review-frontend ${prNumber}"` },
|
||||
{ id: 'verify', name: 'Behavioral Proof', cmd: `${geminiBin} --policy ${policyPath} --cwd ${targetDir} -p "Analyze the code in ${targetDir} and exercise it to prove it works."`, dep: 'build' }
|
||||
{ id: 'review', name: 'Offloaded Review', cmd: `${geminiBin} --policy ${policyPath} --cwd ${targetDir} -p "Please activate the 'review-pr' skill and use it to conduct a behavioral review of PR #${prNumber}."` }
|
||||
]);
|
||||
|
||||
return runner.run();
|
||||
|
||||
Reference in New Issue
Block a user