gitnexus-cli
Use when the user needs to run GitNexus CLI commands like analyze/index a repo, check status, clean the index, generate a wiki,…
Generic contract/schema boundary audit across authoring, discovery, validation, and execute—detecting split-brain between listings and invoke paths, gateway divergence, and permissive placeholders. Use when changing tool registration, RPC/plugin registries, dynamic tools, MCP or
$ npx -y skills add Arenukvern/mcp_flutter --skill flutter-mcp-boundary-audit --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/flutter-mcp-boundary-auditContext preview
The summary Claude sees to decide when to auto-load this skill.
Generic contract/schema boundary audit across authoring, discovery, validation, and execute—detecting split-brain between listings and invoke paths, gateway divergence, and permissive placeholders. Use when changing tool registration, RPC/plugin registries, dynamic tools, MCP or
name: flutter-mcp-boundary-audit description: Generic contract/schema boundary audit across authoring, discovery, validation, and execute—detecting split-brain between listings and invoke paths, gateway divergence, and permissive placeholders. Use when changing tool registration, RPC/plugin registries, dynamic tools, MCP or WebMCP surfaces, CLI exec aliases, OpenAPI or JSON Schema contracts, migrators/codegen, bridge argument encoding, or platform docs that describe API contracts.
<!-- @FMT_MODE_PRELUDE -->
> **Skill ID:** `flutter-mcp-boundary-audit` — name is historical; content is **repository-neutral**. Same workflow applies to MCP stacks, RPC gateways, plugin registries, and OpenAPI-style contracts.
For `mcp_flutter`, use this skill to audit Flutter adapter parity: `fmt_*` catalog schemas, CLI `exec`, VM-service extension gateways, dynamic discovery, migrators, and consumer platform docs. Change app discovery or the Flutter bridge here; change canonical IntentCall registry/session semantics, schema policy, platform projection, or publish behavior upstream.
Find **split-brain** bugs: what clients **see** in listings, catalogs, or docs ≠ what **runtime** enforces on invoke—or validation exists on one gateway only.
Typical symptoms:
| Trigger (generic) | Audit focus | |-------------------|-------------| | Tool/handler authoring, schema attachment at registration | Authoring → discovery payload | | Dynamic or plugin registration on the app/runtime side | Runtime validate-before-handler | | Server registry, forward/dispatch, catalog `*_client_tool` helpers | Registry listing + invoke | | Host gateway (VM extension, IPC, HTTP proxy) before delegating to runtime | Host validate-before-delegate; fail-closed missing schema | | In-process invoke (`invokeDirect`, browser hook, embedded bridge) | Same schema as listing; validate before execute | | Entry migrator / codegen from annotated sources | Schema preservation, not permissive fallbacks | | Shared schema module vs duplicate definitions | Dual-path parity | | Bridge handlers, non-scalar arguments | Encoding (JSON, protobuf, etc.) vs handler expectations | | Platform / ADR / registration docs | Stale claims vs code |
Also run after changes to **JSON Schema**, **OpenAPI** request bodies, **protobuf** RPC messages, or **plugin manifest** input shapes when multiple gateways consume the same logical tool.
Trace **authoring → discovery → validation → execute** for every touched tool or RPC:
| Step | Question | Where to look (your repo) | |------|----------|---------------------------| | **Authoring** | Does the canonical input schema reach the registration/descriptor type (not dropped at a toolkit/bridge wrapper)? | Authoring layer / entry model / code generator output | | **Authoring** | Do bridge tools encode non-scalar args consistently for legacy handlers? | Bridge helpers, adapter layers | | **Discovery** | Does dynamic registration send the full `inputSchema` (not `{}` or implicit-any)? | App registration API, manifest emitter | | **Discovery** | Does the host list/catalog tool expose the same schemas as the runtime registry? | List-tools handler vs app registration | | **Server registry** | Does registry intent/metadata use real schema, not a permissive placeholder? | Registry builder, MCP tool → intent mapping | | **Validate (registry)** | Does forward/dispatch call validate before `execute`? | Registry forward path | | **Validate (host gateway)** | Does the host gateway validate before delegating? **Fail-closed** if schema missing? | Gateway implementation | | **Validate (runtime)** | Does the runtime callback validate before handler? | Service extension / in-process hook | | **Validate (wire)** | If wire args are strings/maps, is coercion applied before strict validation on paths that see wire shape? | Coercion module vs host-only typed JSON | | **Validate (in-process)** | Does direct invoke validate before `execute`? | In-process entry invoke | | **Validate (CLI)** | Do CLI `exec` / catalog commands use the same schema as MCP listing? | CLI dispatch vs server tools | | **Execute** | Any `.execute(` / handler dispatch without prior `validate` in production code? | Grep (below) | | **Migrator** | Does migration preserve primitive/required/additionalProperties from source schema? | Migrator, codegen | | **Docs** | Do platform/registration docs match actual fail-closed behavior? | Platform doc, ADRs |
Same logical tool may flow through **different gateways**—each must agree on schema and validation order:
Authoring (entry / descriptor)
├─► Runtime registration ──► extension/callback ──► handler
├─► In-process register (WebMCP / embedded) ──► invokeDirect
└─► Host list/catalog ──► catalog invoke ──► host gateway ──► runtime| Gateway role | Must validate before | Fail if schema missing? | |--------------|----------------------|-------------------------| | Runtime callback (extension, plugin hook) | handler | yes (production tools) | | Registry forward | `execute` / handler | yes | | Host gateway (proxy to runtime) | delegate call | yes | | In-process invoke | `execute` | yes | | Catalog / fmt_* / CLI wrapper | forward to runtime | yes (same as listing) | | CLI `exec` | command dispatch | yes |
**Red flag:** validation only in tests, only on the catalog path, or only on listing—not on the path your change actually uses.
Inspect and drive a running Flutter app from your AI assistant. 📖 Docs: docs.page/arenukvern/mcp_flutter 🤝 Contribute: guide · contributors · code of conduct · security flutter-mcp-toolkit is a Dart MCP server + Flutter package for AI agents (Codex, Zed,
Use when the user needs to run GitNexus CLI commands like analyze/index a repo, check status, clean the index, generate a wiki,…
Use when the user is debugging a bug, tracing an error, or asking why something fails. Examples: \"Why is X failing?\", \"Where…
Use when the user asks how code works, wants to understand architecture, trace execution flows, or explore unfamiliar parts of…
Use when the user asks about GitNexus itself — available tools, how to query the knowledge graph, MCP resources, graph schema, or…
Use when the user wants to know what will break if they change something, or needs safety analysis before editing code. Examples:…
Use when the user wants to rename, extract, split, move, or restructure code safely. Examples: \"Rename this function\",…