-
Notifications
You must be signed in to change notification settings - Fork 0
Troubleshooting
github-actions[bot] edited this page Jun 24, 2026
·
3 revisions
Symptom-first lookup for when something stops working — find your symptom, follow the steps, and jump to the page that owns the detail.
| Symptom | Start at |
|---|---|
| A plugin isn't loading / a command is missing | plugin isn't loading |
| A hook didn't fire | hook didn't fire |
| A host update broke something | host update broke something |
| CI is red | CI is red |
| The wiki published wrong | wiki published wrong |
| The wiki-watcher did nothing | watcher did nothing |
- Confirm the plugin is installed and enabled:
claude plugin listshould show it. Nothing lands in.claude/in the v3 model — everything runs from the plugin. - Re-sync:
claude plugin install <plugin>@crickets(afterclaude plugin marketplace update cricketsif the marketplace is stale). On Antigravity, reinstall by path againstdist/antigravity/plugins/<plugin>(Install crickets plugins). - If you're developing locally with
--plugin-dir, check the path points at the generated plugin (dist/claude-code/plugins/<plugin>), notsrc/— and regenerate after edits (Modify a plugin). - A primitive missing on one host only → check its
supported_hosts:; the generator only emits it for the hosts it declares (Manifest schema). -
Shows
✘ failed to loadafter an upgrade → the plugin was renamed or removed (e.g.wiki→wiki-maintenancein v3.2.0). The old install points at a name the marketplace no longer offers. Uninstall the old name and install the new one:To see every out-of-sync plugin + the exact swap commands in one shot:claude plugin uninstall <old>@crickets && claude plugin install <new>@crickets
python3 scripts/reconcile_plugins.py.
-
On Claude Code: confirm the plugin shows in
claude plugin list; hooks run from${CLAUDE_PLUGIN_ROOT}/hooks/…, so a stale install means stale hooks — re-sync the plugin. - On Antigravity: plugin hooks run observe / side-effect-only — a hook whose value is a veto (exit code) or an inject (stdout) runs but does nothing. That's the host, not a bug (Compatibility's hook matrix says which hooks are effective where).
- The
developer-safetytrio (kill-switch / steer / commit-on-stop) has its own checks — trigger-file shapes, ordering, the auto-save no-op cases — on its plugin page.
When a host release changes its plugin surface (paths, manifest schema, hook events):
- Check the host's release notes for plugin-surface changes.
-
Reproduce cheaply:
claude plugin validate dist/claude-code/plugins/<plugin>(or load it with--plugin-dir); theagypath-install on Antigravity. -
Fix at the right layer. Host-specifics live in the generator's per-host emitters (
scripts/emit_claude.py/emit_antigravity.py) — a surface change is usually a one-place emitter fix. If the host dropped a capability instead, narrow the affected primitive'ssupported_hosts:. -
Regenerate, dogfood, commit
src/+dist/together (Modify a plugin). If it's an Antigravity gap, record it with a re-address trigger in Antigravity limitations.
- Badge → Actions tab → the failing OS → the failing step (steps are named after gates).
- Reproduce locally:
bash scripts/check-all.shruns the same gates (CI gates). - Per-gate quick answers:
-
generate drift → you edited
src/(ordist/by hand) without regenerating:python3 scripts/generate.py build, commit both. - check-wiki → the finding names the rule and the line; fix the page, not the linter.
-
check-no-pii / gitleaks → a real finding means scrub it; a false positive goes in the allowlist (match-level, or line-level for context-proven cases like SHA-pinned
uses:lines) with the reason in the commit. -
A Windows-only failure → usually an encoding or path-translation gotcha; the
validatejob pinsPYTHONUTF8=1, and generated files are written as bytes — start from whichever of those assumptions the failing code violates.
-
generate drift → you edited
-
A page shows the wrong content → almost certainly a case-insensitive basename collision;
check-wikirule-g and the deploy job both guard it, so check the failing run first (Wiki design). -
Nav/sidebar looks stale → the wiki re-mirrors on every push that touches
wiki/**; a bad publish self-heals on the next green push.
That's usually correct behavior — it's opt-in and cooldown-gated. Check, in order: the device toggle, the per-repo marker, gh availability, and the cooldown window. Wiki Watch Config has the contract; Run the wiki-watcher the walkthrough.
- Compatibility — what's supposed to work where, before you debug it.
- CI gates — the gate battery + the drill-down path.
- Modify a plugin — the edit → generate → dogfood loop most fixes end in.
- Antigravity limitations — known host gaps (check before debugging an AG-only symptom).
🔧 How-to
- Plugin anatomy
- Repo layout
- Compatibility
- CI gates
- Troubleshooting
- Customization Types
- Manifest Schema
- Per-Host Paths
- Hooks
- Evaluator
- Antigravity Limitations
- Wiki Watch Config
- Style-learning loop
- Modify a plugin
- Add a skill
- Add a plugin
- Named plans
- Coordinator roles (pending)
- Obsidian vault backend (pending)
- GitHub Projects
- Testing Conventions
- Releasing Conventions
- Design Docs