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
3 changes: 2 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ this repository is **agystack**, the agentic engineering framework for Google An

### prerequisites

- `bun` (v1.0+) is mandatory for PR babysitting (`watch-pr`) and multi-agent orchestration (`orch`). Node.js is not supported.
- `bun` (v1.0+) is used for PR babysitting (`watch-pr`). Orchestration is native agentic markdown via Brain Artifacts. Node.js is not supported.
- `gh` (GitHub CLI) is required for PR automation and preflight checks.
- `gt` (Graphite CLI) is recommended for stacked PRs.

Expand Down Expand Up @@ -207,6 +207,7 @@ Or trigger `/swarm` right in chat:
| [`/unslop`](./skills/unslop/SKILL.md) | you're cleaning up writing. removes AI tells. |
| [`/bro`](./skills/bro/SKILL.md) | you want the last message restated in plain human language, no jargon. |
| [`/technical-writing`](./skills/technical-writing/SKILL.md) | layered doc standard (Diátaxis + Google developer style + STE + Global English) for docs, RFCs, readmes, PR descriptions, commit messages. |
| [`/statechart`](./skills/statechart/SKILL.md) | you want to model system states, transitions, invariants, and failure modes as native Mermaid diagrams. |

</details>

Expand Down
File renamed without changes.
19 changes: 19 additions & 0 deletions assets/logo.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion docs/guide/01-setup.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ Run:
/setup-agystack
```

[`/setup-agystack`](../../skills/setup-agystack/SKILL.md) detects the models you have access to, shows you each role (code delegates, judgment, the review panels), and asks what you want. Answer the questions. It writes `~/.gemini/config/plugins/agystack/rules/agystack-models.md`, a small rule every agystack skill reads.
[`/setup-agystack`](../../skills/setup-agystack/SKILL.md) detects the models you have access to, shows you each role (code delegates, judgment, the review panels), and asks what you want. Answer the questions. It writes `~/.gemini/config/plugins/agystack/agystack-models.md`, a configuration file every agystack skill reads.

You only override what you care about. A role with no line in the rule keeps the skill's default. To restore a default later, delete that role's line, or just run `/setup-agystack` again.

Expand Down
311 changes: 311 additions & 0 deletions docs/plans/2026-10-cloud-run-model-heterogeneity.md

Large diffs are not rendered by default.

7 changes: 7 additions & 0 deletions plugin.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
{
"$schema": "https://antigravity.google/schemas/v1/plugin.json",
"name": "agystack",
"displayName": "agystack",
"version": "0.15.0",
"description": "agystack for Antigravity IDE. Rigorous agent workflows: poteto-mode, how, why, architect, arena, swarm, interrogate, deslop. Port of Lauren Tan's pstack for Antigravity.",
"author": {
Expand All @@ -9,6 +10,7 @@
"homepage": "https://github.com/jtaroreh/agystack",
"repository": "https://github.com/jtaroreh/agystack",
"license": "MIT",
"logo": "assets/logo.svg",
"keywords": [
"agystack",
"pstack",
Expand All @@ -19,5 +21,10 @@
"subagents",
"unslop",
"deslop"
],
"suggestedPrompts": [
"Plan and implement this feature with /poteto-mode rigor",
"Interrogate this implementation with multi-model adversarial reviews",
"Run /arena to compare multiple architectural approaches"
]
}
2 changes: 1 addition & 1 deletion rules/AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -44,4 +44,4 @@ Always use the most direct, deterministic tool surface for each task:
2. **CLI / Runtime Tools (`run_command`)**: Test suites, API endpoints, build/server logs, process lifecycles, and exit codes.
3. **Browser Tools (`browser_subagent` / Chrome DevTools MCP)**: Strictly for live UI interaction, DOM layout, CSS styles, user events, and rendered visual screenshots.

Per-role models live in `agystack-models.md` next to this file. `/setup-agystack` rewrites that file.
Per-role models live in `agystack-models.md` at the plugin root. `/setup-agystack` rewrites that file.
4 changes: 2 additions & 2 deletions skills/arena/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ Open a todolist tracking the operational phases:

1. **Artifact.** Define the target output each candidate must produce.
2. **Rubric.** Formulate 3-6 concrete, gradeable criteria (e.g. `Adds a --dry-run flag that skips writes`).
3. **Runners.** Use `arena runners` from `~/.gemini/config/plugins/agystack/rules/agystack-models.md` if configured, or default across available tiers: `pro`, `flash`, `inherit`.
3. **Runners.** Use `arena runners` from `~/.gemini/config/plugins/agystack/agystack-models.md` if configured, or default across available tiers: `pro`, `flash`, `inherit`.
4. **Workspaces.** Assign isolated workspaces via `Workspace: "branch"` or scratch paths (`<appDataDir>/brain/<conversation-id>/scratch/arena-<slug>/candidate-<n>/`) per **principle-separate-before-serializing-shared-state**.

## Phase B: Fan out
Expand All @@ -41,7 +41,7 @@ Provide `{PARENT_CONVERSATION_ID}` in each prompt. Candidates MUST invoke `send_

## Phase C: Cross-judge

Spawn one judge subagent via `invoke_subagent` (`TypeName: "research"`, `Role: "Arena Cross-Judge"`) on a distinct tier from `pro`, `flash`, `inherit`. The judge scores candidates against rubric criteria and recommends a base with rationale.
Spawn one judge subagent via `invoke_subagent` (`TypeName: "research"`, `Role: "Arena Cross-Judge"`). The cross-judge must be selected from a different model family than the candidates. For Antigravity, assign the judge role to `Model: "pro"` (Gemini Pro) to ensure deep comparative judgment over Flash candidate drafts. The judge scores candidates against rubric criteria and recommends a base with rationale.

## Phase D: Pick a base

Expand Down
31 changes: 19 additions & 12 deletions skills/interrogate/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ State what the code attempts to accomplish based on commit messages, PR descript

Launch all reviewers in a single turn using `invoke_subagent`. Simulating reviewer personas in-context is strictly prohibited.

Use the `interrogate reviewers` list from `~/.gemini/config/plugins/agystack/rules/agystack-models.md` when present, or fall back to defaults:
Use the `interrogate reviewers` list from `~/.gemini/config/plugins/agystack/agystack-models.md` when present, or fall back to defaults:

| Subagent | Default model tier |
|---|---|
Expand All @@ -42,7 +42,11 @@ For each reviewer:
Fill `references/reviewer-prompt.md` with:
1. Stated intent
2. Diff or file contents
3. Rubric from `references/rubric.md`
3. Rubric from `references/rubric.md`, explicitly injecting concrete audit categories:
- **Idempotency & Crash Recovery:** Re-execution safety and partial failure state.
- **Concurrency & Races:** Shared state serialization and lock invariants.
- **Boundary Discipline:** System boundary validation vs internal type trust.
- **Contract vs Symptom:** Root cause verification vs shallow guard clauses.
4. Code-quality lens from `references/code-quality-review.md`
5. System `{PARENT_CONVERSATION_ID}` for return routing

Expand All @@ -55,21 +59,24 @@ Fill `references/reviewer-prompt.md` with:
4. **Full Arrival:** When all reviewers report, cancel the timer via `manage_task(Action: "kill", TaskId: <timer_task_id>)` and proceed to Step 4.
5. **Watchdog Timeout Fallback:** If the watchdog fires, inspect `manage_subagents(Action: "list")`, terminate unresponsive workers (`manage_subagents(Action: "kill", ConversationIds: [<id>])`), and synthesize surviving findings.

## Step 4. Synthesize
## Step 4. Empirical Verification Gate & Synthesis

- Parse reviewer findings
- Identify multi-model consensus (highest confidence)
- Isolate lone-model findings (lower confidence)
- Deduplicate overlapping issues
- Highlight direct disagreements between models
- Parse reviewer findings.
- **Empirical Gate:** Every actionable finding MUST include an executable repro command, curl call, test snippet, or shell one-liner proving the defect or reproducing the failure against the code. Speculative findings lacking executable reproduction are dropped.
- **Lead Verifier Rerun:** The coordinator reruns each repro command using `run_command`. If the command does not reproduce the failure against the codebase, the finding is dropped.
- Identify multi-model consensus (highest confidence).
- Isolate lone-model findings (lower confidence).
- Deduplicate overlapping issues.
- Highlight direct disagreements between models.

## Step 5. Lead Judgment

Classify findings using the framework in `references/lead-judgment.md`:
- **Act on.** Critical defects in correctness, security, or maintainability that block landing.
Classify surviving verified findings using the framework in `references/lead-judgment.md`:
- Filter out "Nitpick Gravity" and subjective preferences ("I would have done it differently").
- **Act on.** Critical defects in correctness, security, or maintainability with verified repros that block landing.
- **Consider.** Valid tradeoffs worth operator attention.
- **Noted.** Context-dependent, premature optimization, or low impact.
- **Dismissed.** False positives or missing context, with brief rationale.
- **Dismissed.** Unreproduced findings, false positives, or missing context, with brief rationale.

## Output Format

Expand All @@ -78,7 +85,7 @@ Write the complete categorized review, rationales, and agreement map to `<appDat
Structure:
- **Intent.** Stated goal of the change.
- **Reviewers.** One bullet per reviewer (model, finding count).
- **Act On.** Findings requiring resolution.
- **Act On.** Findings requiring resolution, with verified repro commands.
- **Consider.** Tradeoffs to evaluate.
- **Noted.** Low-priority items.
- **Dismissed.** Rejected findings with justification.
Expand Down
6 changes: 6 additions & 0 deletions skills/interrogate/references/lead-judgment.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,12 @@ You have the full conversation context. Use it.

## Filtering Principles

### Empirical Verification Rerun

Before acting on any finding, the coordinator reruns the reviewer's provided repro command using `run_command`.
- If the command does not reproduce the failure against the code, or if the reviewer failed to provide an executable reproduction, drop the finding.
- A finding must stand on empirical evidence, not theoretical speculation or rhetorical confidence.

### Nitpick Gravity

Reviewers, especially adversarial ones, tend to fill their review. If they don't find critical issues, they'll inflate nits to fill the space. If a reviewer's findings are all nits and style preferences, the code is probably fine. Say so.
Expand Down
4 changes: 3 additions & 1 deletion skills/interrogate/references/reviewer-prompt.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,8 @@ For each finding, provide:
- `nit`: Style, naming, minor improvement. Only include nits if they're genuinely useful, not to pad your review.
2. **Finding**: What the problem is, in concrete terms. Reference specific lines/functions.
3. **Evidence**: Why you believe this is a problem. Show your reasoning. Don't just assert.
4. **Suggestion** (optional): What you'd do instead, if you have a concrete alternative. Skip this if you don't have a clear fix.
4. **Repro / Verification**: An executable command, curl call, test snippet, or shell one-liner proving the defect or reproducing the failure against the code. Findings without a reproducible check or executable proof are rejected.
5. **Suggestion** (optional): What you'd do instead, if you have a concrete alternative. Skip this if you don't have a clear fix.

## What Makes a Good Finding

Expand Down Expand Up @@ -72,6 +73,7 @@ Format your findings as:
**Location**: file:line or function name
**Finding**: What's wrong
**Evidence**: Why this matters
**Repro / Verification**: An executable command, curl call, test snippet, or shell one-liner proving the defect or reproducing the failure against the code.
**Suggestion**: (optional) What to do instead

### 2. [Severity] Short title
Expand Down
6 changes: 5 additions & 1 deletion skills/ketchup/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ The user can respond with a single token or pick such as Option A.
Do not ask open-ended questions when a structured pick settles the fork.
When an action is blocked on external input, state the exact input required and the default fallback.

## Native Antigravity Artifacts
## Native Antigravity Artifacts & Visual Progress

Deliver comprehensive context through native Antigravity Artifacts in `<appDataDir>/brain/<conversation-id>/`.
Point to artifacts using clickable file links.
Expand All @@ -38,6 +38,10 @@ Key companion artifacts include:
- `decision_trail.md` for sequential forks, rationales, and results.
- `implementation_plan.md` for roadmap progress and checked boxes.

### Visual Progress Carousels and Generative UI
Use native markdown carousels (````carousel ... ````) with `<!-- slide -->` comments for sequential visual walkthroughs and before/after progressions.
Embed `generative_ui` HTML/SVG timeline widgets for visual progress rendering directly in artifacts without external video compilation dependencies like ffmpeg MP4s.

## Visual Media Embedding

Link or embed visual media directly to provide immediate visual receipts.
Expand Down
2 changes: 1 addition & 1 deletion skills/poteto-mode/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
name: Poteto Mode
name: poteto-mode
description: poteto's agent style for concise, detailed responses, deliberate subagents, unslopped prose, simple code, and verified work. Use for poteto, /poteto-mode, or requests to work in this style.
mode: true
icon: crown
Expand Down
Loading
Loading