Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
54 changes: 45 additions & 9 deletions .claude/skills/gemini-task/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -273,7 +273,7 @@ This section is for the Gemini agent in the owner's agy session.
to take.

Reading GitHub is fine. Your only writes are your own branch and your own
draft PR (step 7); never create, edit, comment on, label, or close anything
draft PR (step 8); never create, edit, comment on, label, or close anything
else.

**Scale out when there is work for several agents (owner, 2026-10-30).**
Expand Down Expand Up @@ -313,18 +313,20 @@ This section is for the Gemini agent in the owner's agy session.
gates and test commands on the merged result; its path checks (which
files may change) hold per package, so run those on its package branch
(`git diff --name-only origin/main...origin/gemini/<slug>-<k>`). Add one
changelog fragment for the task, push, and open one draft PR (step 7)
whose `## Plan` lists each package with its merge commit. A package that
failed stays out; name it under open steps.
changelog fragment for the task, push, have the whole task reviewed
(step 7), and open one draft PR (step 8) whose `## Plan` lists each
package with its merge commit. A package that failed stays out; name it
under open steps.
- **A review round** is an owner's comment on the draft PR that lists
packages the way briefs do (section 3, step 4). Work it as above, with
these differences: round `<n>`'s packages branch from
`origin/gemini/<slug>` as `gemini/<slug>-r<n>-<k>` and merge back into
`gemini/<slug>` the same way; path checks diff against
`origin/gemini/<slug>` instead of `origin/main`; and the fragment and the
draft PR exist already, so update the fragment only if the round changes
what it says. After the push, comment on the PR with each package's merge
commit and the result of every mutation-table row.
what it says. After the push, have the round reviewed (step 7), then
comment on the PR with each package's merge commit, the result of every
mutation-table row, and the self-review's findings.
- Do not use `/teamwork` for this repository: it builds in its own folder
(`~/teamwork_projects/<project>`) without branches or PRs.
2. **Work in the dedicated clone on your own branch.** That clone is
Expand Down Expand Up @@ -401,7 +403,34 @@ This section is for the Gemini agent in the owner's agy session.
Co-Authored-By: Antigravity (<your current model name>) <noreply@google.com>
```

7. **Hand over** when you finish or stop, whether on a blocker or at the end of
7. **Have the finished work reviewed before you hand it over** (owner,
2026-10-30: code quality comes before saving tokens). This holds for every
task, a single brief as much as one in packages. When every step is done
(for packages: after the integration in step 1) and the gates pass, push
the branch and start one fresh subagent as the reviewer, in its own
worktree (the `branch` mode) on a detached checkout of
`origin/gemini/<id>`. Its prompt names only:
- the Constraints and Acceptance sections of each brief, to `cat` itself,
or of the issue;
- the diff: `git diff origin/main...origin/gemini/<id>`, or for a review
round only the round's changes,
`git diff <tip before the round>...origin/gemini/<id>`;
- its job: read the whole diff for defects (bugs, missed edge cases,
changes outside the Constraints, broken conventions, tests that
would stay green against a broken implementation); run the mutation
table, if Acceptance has one, and add two or three breaks of its own in
the code the change claims to cover; report each finding with
`path:line`, severity, and a concrete fix; commit and push nothing.

Leave out your plan and your notes, so the reviewer judges the code and
not your intent. Fix the findings that hold up, in commits of their own,
run the gates again, and push. The PR body lists every finding under
`## Self-review`, fixed with its commit or declined with the reason. A
hand-over on a blocker skips this step. The self-review does not replace
Claude's review (section 3, step 3): a reviewer of the same model shares
the author's blind spots, so Claude's stays the independent one.

8. **Hand over** when you finish or stop, whether on a blocker or at the end of
the session. Push your branch and open a draft PR, or update the one you
opened before. Write the body into a temp file first, in the repository's
PR format, so Claude can ship it without rewriting it:
Expand All @@ -426,6 +455,11 @@ This section is for the Gemini agent in the owner's agy session.
## Decisions
- The choices the task left to you, and what you chose.

## Self-review
- Each finding of the review subagent (step 7): fixed in <commit>, or
declined and why. On a blocker hand-over: "Not run: hand-over on a
blocker."

## Open steps and questions
- The steps still open and your questions, or "None".
```
Expand Down Expand Up @@ -496,7 +530,9 @@ This section is for the Gemini agent in the owner's agy session.
package that drifted stands out.
- Add Fable for high-risk diffs: security, production data, sandboxing,
privacy.
- Gemini never reviews its own work.
- Gemini's self-review (section 2, step 7) does not replace this one, and
the subagent never sees it. Afterwards, judge each finding the
self-review declined in the PR body yourself.
- **New tests need their mutation table run** by the subagent: apply each
row to the real code, check that a test turns red, and revert; add a
break or two of its own in the logic the tests claim to cover. On
Expand Down Expand Up @@ -550,7 +586,7 @@ This section is for the Gemini agent in the owner's agy session.
branch, never by rebasing a pushed branch.
5. **Ship.** Run the open-pr gates, add the PR number to the changelog
fragment, and add one Summary bullet to the PR body, which Gemini wrote in
the repository's format (section 2, step 7): the change was implemented by
the repository's format (section 2, step 8): the change was implemented by
Gemini 4 Argon in the owner's interactive agy session and reviewed by
Claude, with the defects the review found and the commits that fixed them.
This is provenance for the reviewer, not a "Generated with" footer. Then
Expand Down
12 changes: 12 additions & 0 deletions changelog.d/gemini-self-review.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
### Changed

- **Gemini reviews its own finished work before it hands over.** In the
`gemini-task` skill, Gemini starts one fresh subagent as a reviewer once a
task, single or in packages, or a review round is done. The reviewer sees
only the brief's Constraints and Acceptance and the diff, reads the whole
diff for defects, and runs the mutation table plus
breaks of its own. Gemini fixes the findings that hold up and lists every
finding in a new `## Self-review` section of the PR body, as fixed or
declined. Claude's independent Opus review stays, because a reviewer of
the same model shares the author's blind spots. The owner's reason: code
quality comes before saving tokens. (#12476)
Loading