From ea5d602756c20fec2a91376ca08529f8937d0d04 Mon Sep 17 00:00:00 2001 From: AINative Admin Date: Mon, 6 Apr 2026 03:05:13 -0700 Subject: [PATCH] Add uninstall link to install section + NO FINDINGS sanity check README.md (#801): Add one-line uninstall reference right after the install command so users who paste-install can find it without scrolling. Links to the existing Uninstall section for manual steps. review/SKILL.md, ship/SKILL.md (#839): Add sanity check when ALL specialists return NO FINDINGS on a non-trivial diff (>50 lines). Warns the user about possible configuration issues (wrong branch, empty diff, skills not reading files) before proceeding with clean result. Fixes #801, fixes #839 --- README.md | 2 ++ review/SKILL.md | 7 +++++++ ship/SKILL.md | 7 +++++++ 3 files changed, 16 insertions(+) diff --git a/README.md b/README.md index 7f07f1570..710905407 100644 --- a/README.md +++ b/README.md @@ -48,6 +48,8 @@ Open Claude Code and paste this. Claude does the rest. > Install gstack: run **`git clone --single-branch --depth 1 https://github.com/garrytan/gstack.git ~/.claude/skills/gstack && cd ~/.claude/skills/gstack && ./setup`** then add a "gstack" section to CLAUDE.md that says to use the /browse skill from gstack for all web browsing, never use mcp\_\_claude-in-chrome\_\_\* tools, and lists the available skills: /office-hours, /plan-ceo-review, /plan-eng-review, /plan-design-review, /design-consultation, /design-shotgun, /design-html, /review, /ship, /land-and-deploy, /canary, /benchmark, /browse, /connect-chrome, /qa, /qa-only, /design-review, /setup-browser-cookies, /setup-deploy, /retro, /investigate, /document-release, /codex, /cso, /autoplan, /plan-devex-review, /devex-review, /careful, /freeze, /guard, /unfreeze, /gstack-upgrade, /learn. Then ask the user if they also want to add gstack to the current project so teammates get it. +**To uninstall:** `~/.claude/skills/gstack/bin/gstack-uninstall` — or see [Uninstall](#uninstall) for manual steps if you no longer have the repo locally. + ### Step 2: Team mode — auto-update for shared repos (recommended) Every developer installs globally, updates happen automatically: diff --git a/review/SKILL.md b/review/SKILL.md index 9e2965db3..a4a9d2fed 100644 --- a/review/SKILL.md +++ b/review/SKILL.md @@ -1054,6 +1054,13 @@ For each specialist's output: 2. Otherwise, parse each line as a JSON object. Skip lines that are not valid JSON. 3. Collect all parsed findings into a single list, tagged with their specialist name. +**Sanity check — all specialists returned NO FINDINGS (#839):** +If EVERY specialist returned "NO FINDINGS" (zero parsed findings from all subagents), pause and verify before proceeding: +1. Confirm the diff is non-empty: `git diff $(git merge-base HEAD main)..HEAD --stat` should show changed files +2. Confirm the specialist subagents received the diff (check their output for file paths) +3. If the diff is non-trivial (>50 lines changed) and all specialists found nothing, warn the user: + "All specialists returned NO FINDINGS on a non-trivial diff. This may indicate a configuration issue (wrong branch, empty diff, or skills not reading files). Proceeding with clean result — verify manually if unexpected." + **Fingerprint and deduplicate:** For each finding, compute its fingerprint: - If `fingerprint` field is present, use it diff --git a/ship/SKILL.md b/ship/SKILL.md index f3bfd6269..50a4e8766 100644 --- a/ship/SKILL.md +++ b/ship/SKILL.md @@ -1835,6 +1835,13 @@ For each specialist's output: 2. Otherwise, parse each line as a JSON object. Skip lines that are not valid JSON. 3. Collect all parsed findings into a single list, tagged with their specialist name. +**Sanity check — all specialists returned NO FINDINGS (#839):** +If EVERY specialist returned "NO FINDINGS" (zero parsed findings from all subagents), pause and verify before proceeding: +1. Confirm the diff is non-empty: `git diff $(git merge-base HEAD main)..HEAD --stat` should show changed files +2. Confirm the specialist subagents received the diff (check their output for file paths) +3. If the diff is non-trivial (>50 lines changed) and all specialists found nothing, warn the user: + "All specialists returned NO FINDINGS on a non-trivial diff. This may indicate a configuration issue (wrong branch, empty diff, or skills not reading files). Proceeding with clean result — verify manually if unexpected." + **Fingerprint and deduplicate:** For each finding, compute its fingerprint: - If `fingerprint` field is present, use it