diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 382100d..ed11e14 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -161,6 +161,7 @@ jobs: const validAgentTools = new Set([ "send_message", + "read_file", "view_file", "grep_search", "find_by_name", @@ -169,8 +170,10 @@ jobs: "search_web", "schedule", "generate_image", + "edit_file", "multi_replace_file_content", "replace_file_content", + "write_file", "write_to_file", "run_command", "manage_task", diff --git a/skills/architect/SKILL.md b/skills/architect/SKILL.md index 9e027a7..9ae69f9 100644 --- a/skills/architect/SKILL.md +++ b/skills/architect/SKILL.md @@ -10,7 +10,7 @@ Sketch types, function signatures, class shapes, and module boundaries with `not ## Start -Open a todolist by writing and updating `/brain//task.md` with `write_to_file` (the system prompt names `` and ``). Antigravity has no native todolist tool, so that file is the list. Give it one entry per phase before starting. +Open a todolist by writing and updating `/brain//task.md` with `write_file` or `write_to_file` (the system prompt names `` and ``). Antigravity has no native todolist tool, so that file is the list. Give it one entry per phase before starting. 1. Ground 2. Sketch @@ -28,7 +28,7 @@ Skip Phase A only when the work is genuinely greenfield with no surrounding syst Run the **arena** skill with the design-sketch task and the Phase A grounding artifacts. Pass `references/runner-prompt.md` as each runner's prompt. -Take the runners from the `architect runners` line in `~/.gemini/config/rules/pstack-models.md`, in place of the `arena runners` line. That file is an always-applied rule, already in context when present, so do not `view_file` it. If the rule is not in context or that line is missing, use `pro` and `flash`. Alias and rejected entries follow the runner rules in the **arena** skill's Phase A. +Take the runners from the `architect runners` line in `~/.gemini/config/rules/pstack-models.md`, in place of the `arena runners` line. That file is an always-applied rule, already in context when present, so do not `read_file` or `view_file` it. If the rule is not in context or that line is missing, use `pro` and `flash`. Alias and rejected entries follow the runner rules in the **arena** skill's Phase A. Design it twice. Require at least two structurally distinct candidates before synthesis, even when the first looks sufficient. This is the **exhaust-the-design-space** principle skill made concrete. Whole-shape alternatives, not point fixes inside one shape. diff --git a/skills/arena/SKILL.md b/skills/arena/SKILL.md index cd18f4b..caf99fd 100644 --- a/skills/arena/SKILL.md +++ b/skills/arena/SKILL.md @@ -6,7 +6,7 @@ disable-model-invocation: true # Arena -Open a todolist by writing and updating `/brain//task.md` with `write_to_file` (the system prompt names `` and ``). Antigravity has no native todolist tool, so that file is the list. Give it one entry per phase (Frame, Fan out, Cross-judge, Pick, Graft, Verify) before launching anything. +Open a todolist by writing and updating `/brain//task.md` with `write_file` or `write_to_file` (the system prompt names `` and ``). Antigravity has no native todolist tool, so that file is the list. Give it one entry per phase (Frame, Fan out, Cross-judge, Pick, Graft, Verify) before launching anything. ## Phase A: Frame @@ -14,7 +14,7 @@ Every candidate gets the same prompt, so the prompt is the contract. 1. State the artifact each candidate is producing. 2. Derive the rubric, 3-6 concrete gradeable criteria for what success looks like on *this* task. It is the picker's tool in Phase D. Candidates only see the task. -3. Pick the runners. Use the `arena runners` line in `~/.gemini/config/rules/pstack-models.md`. That file is an always-applied rule, already in context when present, so do not `view_file` it. If the rule is not in context or that line is missing, default to one each on `Model: "pro"` and `Model: "flash"`. An `inherit`, `auto`, or `inherit-parent` entry in this line or the cross-judge line means the parent model (`Model: "inherit"`). Spawn more runners when the arena covers multiple design directions. Use the same model tier N times when the work is generation-bound rather than judgment-sensitive. Pick each subagent's model tier for the job, per the Subagents section of the **poteto-mode** skill. +3. Pick the runners. Use the `arena runners` line in `~/.gemini/config/rules/pstack-models.md`. That file is an always-applied rule, already in context when present, so do not `read_file` or `view_file` it. If the rule is not in context or that line is missing, default to one each on `Model: "pro"` and `Model: "flash"`. An `inherit`, `auto`, or `inherit-parent` entry in this line or the cross-judge line means the parent model (`Model: "inherit"`). Spawn more runners when the arena covers multiple design directions. Use the same model tier N times when the work is generation-bound rather than judgment-sensitive. Pick each subagent's model tier for the job, per the Subagents section of the **poteto-mode** skill. 4. Give each candidate its own output location (a git worktree or `Workspace: "branch"` where possible, otherwise `/tmp/arena-/candidate-/`), per the **separate-before-serializing-shared-state** principle skill. ## Phase B: Fan out @@ -25,7 +25,7 @@ If a candidate produces no output, proceed with N-1 and note the dropout. ## Phase C: Cross-judge -After all Phase B candidates complete, choose one model tier from the `arena cross-judge pool` line in `~/.gemini/config/rules/pstack-models.md`. That file is an always-applied rule, already in context when present, so do not `view_file` it. If the rule is not in context or that line is missing, choose from `pro` and `flash`. Prefer a different tier from the parent's. Spawn one read-only judge subagent (`TypeName: "research"`) on that tier. It sees the rubric and the candidates by path label, scores each criterion, and recommends a base with rationale. It runs in parallel with your reading in Phase D. Don't spawn it while candidates are still writing. +After all Phase B candidates complete, choose one model tier from the `arena cross-judge pool` line in `~/.gemini/config/rules/pstack-models.md`. That file is an always-applied rule, already in context when present, so do not `read_file` or `view_file` it. If the rule is not in context or that line is missing, choose from `pro` and `flash`. Prefer a different tier from the parent's. Spawn one read-only judge subagent (`TypeName: "research"`) on that tier. It sees the rubric and the candidates by path label, scores each criterion, and recommends a base with rationale. It runs in parallel with your reading in Phase D. Don't spawn it while candidates are still writing. ## Phase D: Pick a base diff --git a/skills/figure-it-out/SKILL.md b/skills/figure-it-out/SKILL.md index cab43df..099d1fb 100644 --- a/skills/figure-it-out/SKILL.md +++ b/skills/figure-it-out/SKILL.md @@ -10,7 +10,7 @@ When the task matches no playbook, design one. The deliverable before any code i ## Start -Open a todolist by writing and updating `/brain//task.md` with `write_to_file` (the system prompt names `` and ``). Antigravity has no native todolist tool, so that file is the list. Its first item is to read the Principles section of the **poteto-mode** skill. Then add the phases below as todos. +Open a todolist by writing and updating `/brain//task.md` with `write_file` or `write_to_file` (the system prompt names `` and ``). Antigravity has no native todolist tool, so that file is the list. Its first item is to read the Principles section of the **poteto-mode** skill. Then add the phases below as todos. ## Phase A: Frame diff --git a/skills/how/SKILL.md b/skills/how/SKILL.md index d42b958..66ffa36 100644 --- a/skills/how/SKILL.md +++ b/skills/how/SKILL.md @@ -8,7 +8,7 @@ disable-model-invocation: true Explore the codebase to answer "how does X work?" questions. Produce architectural explanations at the level of a senior engineer onboarding onto a subsystem, enough to build a working mental model, not so much that it reads like annotated source code. -Every spawn uses `invoke_subagent` with `TypeName: "research"`. Explorers use the `how explorer` line in `~/.gemini/config/rules/pstack-models.md` (default `Model: "flash"`), and every explainer uses the `how explainer` line (default `Model: "pro"`). That file is an always-applied rule, already in context when present, so do not `view_file` it. Set `Model` to that line's value, or to the default if the rule is not in context or the line is missing. Use `Model: "inherit"` when the value is `inherit`, `auto`, or `inherit-parent`. Pick each subagent's model tier for the job, per the Subagents section of the **poteto-mode** skill. +Every spawn uses `invoke_subagent` with `TypeName: "research"`. Explorers use the `how explorer` line in `~/.gemini/config/rules/pstack-models.md` (default `Model: "flash"`), and every explainer uses the `how explainer` line (default `Model: "pro"`). That file is an always-applied rule, already in context when present, so do not `read_file` or `view_file` it. Set `Model` to that line's value, or to the default if the rule is not in context or the line is missing. Use `Model: "inherit"` when the value is `inherit`, `auto`, or `inherit-parent`. Pick each subagent's model tier for the job, per the Subagents section of the **poteto-mode** skill. ## 1. Assess complexity diff --git a/skills/how/references/explainer-prompt.md b/skills/how/references/explainer-prompt.md index 0b4702f..394c727 100644 --- a/skills/how/references/explainer-prompt.md +++ b/skills/how/references/explainer-prompt.md @@ -20,7 +20,7 @@ The explorers each investigated a different angle of the same subsystem. Their f Write an explanation a senior engineer unfamiliar with this area could read and walk away with a solid mental model, understanding the architecture well enough to start working in it confidently. -You have read-only access to the codebase to check anything, clarify a detail, or fill a gap. Use `view_file`, `grep_search`, and `find_by_name` as needed. If you use `run_command`, only run read-only inspection. Do not mutate the repository or any remote. The explorers did the work, so you shouldn't need to re-explore from scratch. +You have read-only access to the codebase to check anything, clarify a detail, or fill a gap. Use `read_file`, `view_file`, `grep_search`, and `find_by_name` as needed. If you use `run_command`, only run read-only inspection. Do not mutate the repository or any remote. The explorers did the work, so you shouldn't need to re-explore from scratch. ## Output Format diff --git a/skills/interrogate/SKILL.md b/skills/interrogate/SKILL.md index 6a70b77..df0a4a5 100644 --- a/skills/interrogate/SKILL.md +++ b/skills/interrogate/SKILL.md @@ -24,7 +24,7 @@ Before spawning reviewers, state the intent in one clear paragraph from the user ## Step 3, Spawn Reviewers -Launch all reviewers in a single `invoke_subagent` call, one per entry on the `interrogate reviewers` line in `~/.gemini/config/rules/pstack-models.md`, labeled Reviewer A, B, and so on to match the entry count. That file is an always-applied rule, already in context when present, so do not `view_file` it. If the rule is not in context or that line is missing, use the table defaults. +Launch all reviewers in a single `invoke_subagent` call, one per entry on the `interrogate reviewers` line in `~/.gemini/config/rules/pstack-models.md`, labeled Reviewer A, B, and so on to match the entry count. That file is an always-applied rule, already in context when present, so do not `read_file` or `view_file` it. If the rule is not in context or that line is missing, use the table defaults. | Subagent | Default model tier | |----------|--------------------| diff --git a/skills/interrogate/references/rubric.md b/skills/interrogate/references/rubric.md index 9b25044..070d4f6 100644 --- a/skills/interrogate/references/rubric.md +++ b/skills/interrogate/references/rubric.md @@ -20,7 +20,7 @@ When you find a potential bug, trace the execution path. Don't just flag "this c Is the code fixing the actual problem or papering over a symptom? -Answering this often requires looking beyond the changed files. Read the surrounding code (callers, callees, type definitions, sibling modules) and understand the architecture the change lives in. Use the tools available to you (`view_file`, `grep_search`, `find_by_name`) to follow the call chain, read the types, and understand why the code exists before judging whether the change addresses the right layer. +Answering this often requires looking beyond the changed files. Read the surrounding code (callers, callees, type definitions, sibling modules) and understand the architecture the change lives in. Use the tools available to you (`read_file`, `view_file`, `grep_search`, `find_by_name`) to follow the call chain, read the types, and understand why the code exists before judging whether the change addresses the right layer. - Guard clauses that mask a deeper invariant violation - Retry logic that hides a broken contract diff --git a/skills/poteto-mode/SKILL.md b/skills/poteto-mode/SKILL.md index 0798f75..db9a4dc 100644 --- a/skills/poteto-mode/SKILL.md +++ b/skills/poteto-mode/SKILL.md @@ -93,7 +93,7 @@ Read the leaf skill in full for any principle you apply. Each entry names when i **Use `TypeName: "poteto-agent"` in `invoke_subagent` for any subagent you spawn inside a playbook step** (code-writing delegates, ad-hoc helpers). The chat that receives `/poteto-mode` runs the playbook. Never spawn a `poteto-agent` to run the playbook itself. Routed workflow skills (`how`, `why`, `interrogate`, `reflect`, `swarm`) set their own `TypeName` (`research` or `self`) for diverse-model review. Respect what the skill prescribes, don't override to `poteto-agent`. -**Defaults for every `invoke_subagent` call.** Background execution, agent mode (`TypeName: "self"` when MCP access is needed; `TypeName: "research"` is read-only and has no MCP tools), file pointers not inlined context, explicit model tier per role (configurable via `/setup-pstack` in `~/.gemini/config/rules/pstack-models.md`. Defaults `Model: "flash"` for code, `Model: "pro"` for prose and judgment). `~/.gemini/config/rules/pstack-models.md` is an always-applied rule already in context when present. Do not `view_file` it, including when the file is absent. Code delegates tier by difficulty. The hardest changes (cross-cutting design, gnarly concurrency, subtle algorithms) go to your strongest judgment tier (`Model: "pro"`), whether the task needs judgment on vague intent or is a precisely specified sequence of steps to execute to the letter. Trivial mechanical edits go to your fast code tier (`Model: "flash"` or `"flash_lite"`). Per-role lines in `~/.gemini/config/rules/pstack-models.md` override these defaults and the model choices in the routed skills (`how`, `why`, `arena`, `swarm`, `architect`, `interrogate`, `reflect`). A role with no line keeps its default, and a role line of `inherit`, `inherit-parent`, or `auto` runs that role on the parent chat model (`Model: "inherit"`). Each code playbook's configured model comes from its line (`feature, refactoring`, `bug-fix`, `perf-issue`, or `hillclimb`), and the hardest changes read `hardest tasks`. Prose and judgment read `judgment and prose`. +**Defaults for every `invoke_subagent` call.** Background execution, agent mode (`TypeName: "self"` when MCP access is needed; `TypeName: "research"` is read-only and has no MCP tools), file pointers not inlined context, explicit model tier per role (configurable via `/setup-pstack` in `~/.gemini/config/rules/pstack-models.md`. Defaults `Model: "flash"` for code, `Model: "pro"` for prose and judgment). `~/.gemini/config/rules/pstack-models.md` is an always-applied rule already in context when present. Do not `read_file` or `view_file` it, including when the file is absent. Code delegates tier by difficulty. The hardest changes (cross-cutting design, gnarly concurrency, subtle algorithms) go to your strongest judgment tier (`Model: "pro"`), whether the task needs judgment on vague intent or is a precisely specified sequence of steps to execute to the letter. Trivial mechanical edits go to your fast code tier (`Model: "flash"` or `"flash_lite"`). Per-role lines in `~/.gemini/config/rules/pstack-models.md` override these defaults and the model choices in the routed skills (`how`, `why`, `arena`, `swarm`, `architect`, `interrogate`, `reflect`). A role with no line keeps its default, and a role line of `inherit`, `inherit-parent`, or `auto` runs that role on the parent chat model and preserves its reasoning effort (`Model: "inherit"`), whereas `pro`, `flash`, and `flash_lite` resolve to the backend default for that tier. Each code playbook's configured model comes from its line (`feature, refactoring`, `bug-fix`, `perf-issue`, or `hillclimb`), and the hardest changes read `hardest tasks`. Prose and judgment read `judgment and prose`. **Match the model to the job.** Before each spawn, start from the role's line or default and pick the model tier the job needs. The `/setup-pstack` budget sets each role's starting tier. Raise it one step, up to `pro`, for the hardest or subtlest work. Lower it one step for judgment and two or more steps for routine work. The ladder, low to high, is `flash_lite`, `flash`, `pro`. Antigravity has no separate fast or standard speed, so the tier is the only effort knob. Verification is the exception and stays on the `swarm workers` tier (`Model: "flash"` by default). When a panel names different tiers, keep those seats on different tiers unless the job's difficulty is what moved one of them. A role on `inherit`, `auto`, or `inherit-parent` stays on the parent model (`Model: "inherit"`). If `invoke_subagent` rejects the adjusted tier, do not try another adjusted tier. Use the role's line or default and say so. @@ -121,7 +121,7 @@ Comments follow the same rule as the reply. Write them clean as you go. Keep a c ## Playbooks -Open a todolist by writing and updating `/brain//task.md` with `write_to_file` (the system prompt names `` and ``). Antigravity has no native todolist tool, so that file is the list. Its first items are the matched playbook's steps, copied in verbatim, before any task-specific todos. A step you choose not to do stays in the list with a one-line `skip: `. Match the task to a playbook below and open its full steps at `playbooks/.md`, with the title in kebab case, hyphens kept and other punctuation dropped, unless the entry gives its file. Copy its steps in verbatim. +Open a todolist by writing and updating `<appDataDir>/brain/<conversation-id>/task.md` with `write_file` or `write_to_file` (the system prompt names `<appDataDir>` and `<conversation-id>`). Antigravity has no native todolist tool, so that file is the list. Its first items are the matched playbook's steps, copied in verbatim, before any task-specific todos. A step you choose not to do stays in the list with a one-line `skip: <reason>`. Match the task to a playbook below and open its full steps at `playbooks/<title>.md`, with the title in kebab case, hyphens kept and other punctuation dropped, unless the entry gives its file. Copy its steps in verbatim. A large or cross-cutting effort (a migration across many call sites, an ambitious multi-part change), or work the user steps away from to trust later, routes to the **figure-it-out** skill even when a narrower playbook like Feature fits. Use **figure-it-out** whenever no bundled playbook fits. It designs a bespoke, rigorous playbook for the task. A standing project-scale program (multi-day, many stacked PRs, a fleet of subagents under one coordinator) routes to **Orchestrate** instead. figure-it-out designs one bespoke run, orchestrate runs the program. diff --git a/skills/reflect/SKILL.md b/skills/reflect/SKILL.md index 0d9d8e4..8da167f 100644 --- a/skills/reflect/SKILL.md +++ b/skills/reflect/SKILL.md @@ -20,7 +20,7 @@ If the transcript file is unavailable, pass a tight digest of the session instea One `invoke_subagent` call with three entries, `TypeName: "self"` (agent mode). Reviewers need MCP access to look up the tickets, chat threads, and observability traces the transcript references, and `TypeName: "research"` strips MCPs. -Each reviewer and the synthesizer name a role line in `~/.gemini/config/rules/pstack-models.md` and a default. That file is an always-applied rule, already in context when present, so do not `view_file` it. Set `Model` to that line's value, or to the default if the rule is not in context or the line is missing. Pass `Model: "inherit"` when the value is `inherit`, `auto`, or `inherit-parent`. Pick each subagent's model tier for the job, per the Subagents section of the **poteto-mode** skill. +Each reviewer and the synthesizer name a role line in `~/.gemini/config/rules/pstack-models.md` and a default. That file is an always-applied rule, already in context when present, so do not `read_file` or `view_file` it. Set `Model` to that line's value, or to the default if the rule is not in context or the line is missing. Pass `Model: "inherit"` when the value is `inherit`, `auto`, or `inherit-parent`. Pick each subagent's model tier for the job, per the Subagents section of the **poteto-mode** skill. | Lens | Role line | Default `Model` | Prompt template | |---|---|---|---| diff --git a/skills/reflect/references/divergent-reviewer.md b/skills/reflect/references/divergent-reviewer.md index bd0d400..7845ac6 100644 --- a/skills/reflect/references/divergent-reviewer.md +++ b/skills/reflect/references/divergent-reviewer.md @@ -18,7 +18,7 @@ Scan for: ## Scope to skills and tools the session actually used -Route findings only to skills, tools, or MCPs this transcript used. A skill counts as used when the transcript shows a `view_file` of its `SKILL.md` (under `.agents/skills/`, `~/.agents/skills/`, `~/.gemini/config/skills/`, `~/.gemini/config/plugins/`, or `.agents/plugins/`), an `invoke_subagent` prompt naming its path, or a tool call (`run_command`, `grep_search`, MCP, etc.) matching its documented commands. Speculative routings to skills the parent never opened do not count. +Route findings only to skills, tools, or MCPs this transcript used. A skill counts as used when the transcript shows a `read_file` or `view_file` of its `SKILL.md` (under `.agents/skills/`, `~/.agents/skills/`, `~/.gemini/config/skills/`, `~/.gemini/config/plugins/`, or `.agents/plugins/`), an `invoke_subagent` prompt naming its path, or a tool call (`run_command`, `grep_search`, MCP, etc.) matching its documented commands. Speculative routings to skills the parent never opened do not count. Two finding shapes are valid: - The parent invoked the skill and you found a real gap in its body. Route to the skill's relevant section. diff --git a/skills/reflect/references/judgment-reviewer.md b/skills/reflect/references/judgment-reviewer.md index 83bfdcf..900fbb8 100644 --- a/skills/reflect/references/judgment-reviewer.md +++ b/skills/reflect/references/judgment-reviewer.md @@ -17,7 +17,7 @@ Scan for: ## Scope to skills and tools the session actually used -Route findings only to skills, tools, or MCPs this transcript used. A skill counts as used when the transcript shows a `view_file` of its `SKILL.md` (under `.agents/skills/`, `~/.agents/skills/`, `~/.gemini/config/skills/`, `~/.gemini/config/plugins/`, or `.agents/plugins/`), an `invoke_subagent` prompt naming its path, or a tool call (`run_command`, `grep_search`, MCP, etc.) matching its documented commands. Speculative routings to skills the parent never opened do not count. +Route findings only to skills, tools, or MCPs this transcript used. A skill counts as used when the transcript shows a `read_file` or `view_file` of its `SKILL.md` (under `.agents/skills/`, `~/.agents/skills/`, `~/.gemini/config/skills/`, `~/.gemini/config/plugins/`, or `.agents/plugins/`), an `invoke_subagent` prompt naming its path, or a tool call (`run_command`, `grep_search`, MCP, etc.) matching its documented commands. Speculative routings to skills the parent never opened do not count. Two finding shapes are valid: - The parent invoked the skill and you found a real gap in its body. Route to the skill's relevant section. diff --git a/skills/reflect/references/tooling-reviewer.md b/skills/reflect/references/tooling-reviewer.md index bc63902..6996132 100644 --- a/skills/reflect/references/tooling-reviewer.md +++ b/skills/reflect/references/tooling-reviewer.md @@ -28,7 +28,7 @@ Scan for: ## Scope to skills and tools the session actually used -Route findings only to skills, tools, or MCPs this transcript used. A skill counts as used when the transcript shows a `view_file` of its `SKILL.md` (under `.agents/skills/`, `~/.agents/skills/`, `~/.gemini/config/skills/`, `~/.gemini/config/plugins/`, or `.agents/plugins/`), an `invoke_subagent` prompt naming its path, or a tool call (`run_command`, `grep_search`, MCP, etc.) matching its documented commands. Speculative routings to skills the parent never opened do not count. +Route findings only to skills, tools, or MCPs this transcript used. A skill counts as used when the transcript shows a `read_file` or `view_file` of its `SKILL.md` (under `.agents/skills/`, `~/.agents/skills/`, `~/.gemini/config/skills/`, `~/.gemini/config/plugins/`, or `.agents/plugins/`), an `invoke_subagent` prompt naming its path, or a tool call (`run_command`, `grep_search`, MCP, etc.) matching its documented commands. Speculative routings to skills the parent never opened do not count. Two finding shapes are valid: - The parent invoked the skill and you found a real gap in its body. Route to the skill's relevant section. diff --git a/skills/setup-pstack/SKILL.md b/skills/setup-pstack/SKILL.md index 94fd29d..da961f8 100644 --- a/skills/setup-pstack/SKILL.md +++ b/skills/setup-pstack/SKILL.md @@ -11,7 +11,7 @@ Write `~/.gemini/config/rules/pstack-models.md`, an always-applied rule that set ### 1. Detect available model tiers -Antigravity's `invoke_subagent` accepts four `Model` tiers: `pro`, `flash`, `flash_lite`, and `inherit`. You can also run `agy models` to inspect the underlying models available in the current session. The aliases `inherit-parent` and `auto` are always valid and map to `Model: "inherit"`. +Antigravity's `invoke_subagent` accepts four `Model` tiers: `pro`, `flash`, `flash_lite`, and `inherit`. You can also run `agy models` to inspect the underlying models available in the current session. Passing `pro`, `flash`, or `flash_lite` resolves to the backend's default model and default reasoning effort for that tier, whereas `inherit` (and the aliases `inherit-parent` and `auto`, which map to `Model: "inherit"`) clones the parent session's exact model and reasoning effort. ### 2. Load current state @@ -28,7 +28,7 @@ The default role-to-model mapping is the rule shape shown in step 5 below. If `~ **(b) Apply it.** Build the working table from the skill defaults, and on a re-run keep any role you changed by tier, list, or alias (`inherit`, `inherit-parent`, `auto`). `unlimited` upgrades `flash` roles to `pro`. `large` keeps the skill defaults (`pro` for judgment, prose, and hardest tasks; `flash` for fast code, explorer, investigator, and worker roles). `medium` maps code and explorer roles to `flash` and judgment roles to `pro` or `flash`. `small` maps fast code and explorer roles to `flash_lite` and judgment roles to `flash`. `inherit`, `inherit-parent`, and `auto` do not change. -**(c) Show the roles and confirm.** Show every role with its model tier. Also list each line step 2 dropped. Ask whether to accept as-is or change specific roles, offering `pro`, `flash`, `flash_lite`, and `inherit` (which runs that role on the parent chat model) as the options. Prefer `ask_question` over free text. For panel roles (arena runners, architect runners, interrogate reviewers) the value is a list, and one subagent runs per entry, alias entries included, so the list length sets the count. `arena cross-judge pool` is also a list, and Arena selects one value from it that differs from the parent's tier when possible. `swarm workers` is the default tier for every worker unless a race or comparison assigns another tier per arm. +**(c) Show the roles and confirm.** Show every role with its model tier. Also list each line step 2 dropped. Ask whether to accept as-is or change specific roles, offering `pro`, `flash`, `flash_lite`, and `inherit` (which runs that role on the parent chat model and preserves its reasoning effort) as the options. Prefer `ask_question` over free text. For panel roles (arena runners, architect runners, interrogate reviewers) the value is a list, and one subagent runs per entry, alias entries included, so the list length sets the count. `arena cross-judge pool` is also a list, and Arena selects one value from it that differs from the parent's tier when possible. `swarm workers` is the default tier for every worker unless a race or comparison assigns another tier per arm. ### 4. Validate @@ -40,7 +40,7 @@ Write `~/.gemini/config/rules/pstack-models.md` as plain Markdown (no YAML front ``` # pstack model configuration. One line per role. Delete a line to fall back to the skill default. -# `inherit`, `inherit-parent`, or `auto` as a value: the role runs on the parent chat model (`Model: "inherit"`). Alias entries in a panel list still count toward its fan-out. +# `inherit`, `inherit-parent`, or `auto` as a value: the role runs on the parent chat model and preserves its reasoning effort (`Model: "inherit"`). Alias entries in a panel list still count toward its fan-out. # budget: large (pro / flash) feature, refactoring: flash bug-fix: flash diff --git a/skills/swarm/SKILL.md b/skills/swarm/SKILL.md index b99ff8a..5820665 100644 --- a/skills/swarm/SKILL.md +++ b/skills/swarm/SKILL.md @@ -8,7 +8,7 @@ disable-model-invocation: true ## Start -Open a todolist by writing and updating `<appDataDir>/brain/<conversation-id>/task.md` with `write_to_file` (the system prompt names `<appDataDir>` and `<conversation-id>`). Antigravity has no native todolist tool, so that file is the list. Give it one entry per phase before launching anything. +Open a todolist by writing and updating `<appDataDir>/brain/<conversation-id>/task.md` with `write_file` or `write_to_file` (the system prompt names `<appDataDir>` and `<conversation-id>`). Antigravity has no native todolist tool, so that file is the list. Give it one entry per phase before launching anything. 1. Frame 2. Fan out @@ -19,7 +19,7 @@ Open a todolist by writing and updating `<appDataDir>/brain/<conversation-id>/ta 1. State the done predicate and the artifact or report the swarm must return. 2. Choose the shape. Partition into slices, race N workers on identical briefs, or mix both. For a race or mixed shape, declare `first pass`, `rank all`, or `best-of` before spawning. -4. Pick the worker model tier from the `swarm workers` line in `~/.gemini/config/rules/pstack-models.md`. That file is an always-applied rule, already in context when present, so do not `view_file` it. If the rule is not in context or that line is missing, use `Model: "flash"`. For `inherit`, `auto`, or `inherit-parent`, pass `Model: "inherit"` so the workers run on the parent model. For a model race, name each arm's model tier up front. Pick each subagent's model tier for the job, per the Subagents section of the **poteto-mode** skill. +4. Pick the worker model tier from the `swarm workers` line in `~/.gemini/config/rules/pstack-models.md`. That file is an always-applied rule, already in context when present, so do not `read_file` or `view_file` it. If the rule is not in context or that line is missing, use `Model: "flash"`. For `inherit`, `auto`, or `inherit-parent`, pass `Model: "inherit"` so the workers run on the parent model. For a model race, name each arm's model tier up front. Pick each subagent's model tier for the job, per the Subagents section of the **poteto-mode** skill. 5. Give each worker its own writable output when it writes (`Workspace: "branch"` when modifying repo files). When workers verify or measure commits, each brief names the exact SHAs. A measurement brief also names the method (sample count, what one sample is, order). The worker records both in its result. ## Phase B: Fan out diff --git a/skills/why/SKILL.md b/skills/why/SKILL.md index 5c65f5b..6a9f528 100644 --- a/skills/why/SKILL.md +++ b/skills/why/SKILL.md @@ -8,7 +8,7 @@ disable-model-invocation: true Investigate the motivation and intent behind code. The companion `how` skill answers what the code does and how it works. `why` answers what forces led to its shape. -Each spawn below names a role line in `~/.gemini/config/rules/pstack-models.md` and a default. That file is an always-applied rule, already in context when present, so do not `view_file` it. Set `Model` to that line's value, or to the default if the rule is not in context or the line is missing. Pass `Model: "inherit"` when the value is `inherit`, `auto`, or `inherit-parent`. Pick each subagent's model tier for the job, per the Subagents section of the **poteto-mode** skill. +Each spawn below names a role line in `~/.gemini/config/rules/pstack-models.md` and a default. That file is an always-applied rule, already in context when present, so do not `read_file` or `view_file` it. Set `Model` to that line's value, or to the default if the rule is not in context or the line is missing. Pass `Model: "inherit"` when the value is `inherit`, `auto`, or `inherit-parent`. Pick each subagent's model tier for the job, per the Subagents section of the **poteto-mode** skill. Every spawn uses `invoke_subagent` with `TypeName: "self"` (agent mode). **Do not use `TypeName: "research"`** when MCP access is needed. It strips MCP access, which disables the MCP-backed investigators and the synthesizer's citation spot-checks. Investigators still shouldn't write anything.