[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6PF9048MGARERK2NFEVZ01H":3,"skill-same:01M6PF9048MGARERK2NFEVZ01H":47},{"skillNo":4,"name":5,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":17,"publishedAt":21,"linkOnly":22,"markdownContent":23,"markdownBody":24,"frontMatter":25,"refName":26,"commitSha":27,"skillDirectory":28,"forksCount":29,"repositoryHtmlUrl":30,"repositoryHomepageUrl":6,"ownerHtmlUrl":31,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":32,"install":33,"resources":46},"01M6PF9048MGARERK2NFEVZ01H","fleet-expert",null,"sandraschi\u002Fdocumentation-mcp","sandraschi","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F34750307?v=4","01M6C42H9WE5EC9CK3N5RGZP8S","Sandra Schipal","01M6PE1X2FZP8KR5GANPPFTHA8",2,"MIT","https:\u002F\u002Fgithub.com\u002Fsandraschi\u002Fdocumentation-mcp\u002Fblob\u002Fmaster\u002Fdocs\u002Fskills\u002Ffleet-expert\u002FSKILL.md",[],[18,19,20],"expert","fleet","fleet expert","2026-11-10 10:12:30",false,"---\nname: fleet-expert\ndescription: Fleet-wide reference for what repos do, port assignments, and cross-repo handoffs. Resolves via live indexes (never a static roster): voice-bus aliases for spoken names, FLEET_INDEX for catalog, WEBAPP_PORTS + claim_ports for ports, starts\u002F scripts for launch, per-repo AGENTS.md for depth. Also covers adjacent\u002Falternative repos, upstream handling, ArtCraft craft apps, and Rustification buckets. Use for fleet catalog lookups, port queries, integration design, and deciding which repo handles a task.\n---\n\n# Fleet Expert\n\n**Scope**: The big picture — every repo, port, integration, and architecture pattern across the fleet.\n\n**Canonical source**: `D:\\Dev\\repos\\mcp-central-docs\\skills\\fleet-expert\\SKILL.md` (this file). Vendored by reference into repos — do not fork it per-repo.\n**Standards root**: `mcp-central-docs\u002Fstandards\u002F`\n**Port registry**: `mcp-central-docs\u002Foperations\u002FWEBAPP_PORTS.md`\n**Known bugs**: `mcp-central-docs\u002Ftroubleshooting\u002FBUGS_DEPOT.md`\n\n**Freshness rule (2026-10-13): this skill contains no repo roster by design.** A static table rots within weeks against daily repo additions. Resolve everything through the live indexes in §2, in order. Indexes live with the work; this skill only holds stable patterns (§1) and illustrative examples (§6, marked as such).\n\n---\n\n## 1. Architecture Patterns (stable — safe to quote)\n\nTwo tracks since 2026-10-17 regime change (see `standards\u002FRUST_ARTCRAFT_STANDARD.md`):\n\n**Track A — Pure-Rust ArtCraft** (`Cargo.toml` at root, Buckets A\u002FB):\n```\nL1 (\u003Cdomain>-core) direct in-process dispatch, no HTTP sidecar\nL2 (\u003Cdomain>-mcp) CLI-first clap binary (--json) + hand-rolled MCP stdio loop\nL3 (\u003Cdomain>-app) eframe\u002Fegui native GPU desktop, zero ports, zero node_modules\n```\nGates: `cargo clippy --workspace --all-targets --all-features -- -D warnings` (deny unwrap\u002Fexpect\u002Fpanic\u002Ftodo), `cargo test --workspace`, `cargo fmt --check`. Zero ports claimed. NSIS via `installer\u002Finstaller.nsi` (no WebView2).\n\n**Track B — Legacy Python \u002F FastMCP** (`pyproject.toml` at root, Buckets C\u002FD):\n```\nBackend (FastMCP 3.4+ + Starlette\u002FFastAPI, port {B})\n  ├── REST API at \u002Fapi\u002F*\n  ├── MCP transport at \u002Fmcp (streamable HTTP, plus stdio for local clients)\n  └── Health at \u002Fhealth\nFrontend (React + Vite + Tailwind, port {F})\n  └── Proxies \u002Fapi and \u002Fmcp to backend\nNative (Tauri 2.0, optional)\n  └── PyInstaller-frozen backend embedded inside NSIS installer\n```\nFleet standards: `uv` package manager, `ruff` linter, `pytest` test runner, `biome` for TS\u002FJS.\nVersion floors move — check `mcp-central-docs\u002Fstandards\u002FJUNE_2026_STANDARDS_BAR.md` for the current FastMCP floor, never quote one from memory.\nInfrastructure tier: repos mark `infrastructure: true` in manifests (credential vaults, artifact depots, shared LLMs, observability, orchestration); webapp for diagnostics only.\n\n### Port Convention (stable — safe to quote, Python track only)\n\n- **Reservoir**: 10700-15000 for webapps (widened to 15000 on 2026-10-13; the registry table itself is truth over any cached number).\n- **Adjacency Rule**: Frontend and backend for one project MUST be adjacent (e.g. 10792\u002F10793).\n- **Tauri side-by-side**: repo with Tauri desktop app claims a SECOND pair for the installed operator; operator port is never the dev backend port.\n- **FORBIDDEN**: 3000, 5000, 5173, 8000, 8080.\n- **Never invent a port.** Claim one with `mcp-central-docs\u002Ffleet-gate\u002Fclaim_ports.py`, which checks `WEBAPP_PORTS.md` *and* every `fleet-start.config.ps1`.\n\n---\n\n## 2. Find Any Repo (lookup procedure — follow in order)\n\n### Step 1 — Spoken or colloquial name → voice-bus aliases\n\n`mcp-central-docs\u002Fconfig\u002Fvoice_command_bus.yaml` maps everyday words to the owning server and tool: aliases like `[dreame, dream, vacuum, robohoove, hoover, robovac]` → server `dreame`, keywords `[clean, vacuum, sweep, mop]` → tool `dreame_tool`. \"Hoover bot\", \"the vacuum\", \"start cleaning\" all resolve here first. If the name isn't an alias, continue.\n\n### Step 2 — Canonical catalog → FLEET_INDEX.md\n\n`mcp-central-docs\u002Fprojects\u002FFLEET_INDEX.md` is the repo roster: type, status, description, registered ports per repo. Check its `Last Updated` header — if the repo is newer than the header date, fall through to Steps 3-4 rather than concluding it doesn't exist.\n\n### Step 3 — Ports → the registry, never memory\n\n`mcp-central-docs\u002Foperations\u002FWEBAPP_PORTS.md` is the port truth. Backend\u002Ffrontend pairs, claim dates, move history. For a new allocation use `fleet-gate\u002Fclaim_ports.py`, never hardcode.\n\n### Step 4 — Launch → starts\u002F scripts and repo entry points\n\n- `mcp-central-docs\u002Fstarts\u002F\u003Cname>-start.bat` — canonical per-repo launchers.\n- Repo root `start.ps1` \u002F `start.bat` + `fleet-start.config.ps1` — the repo's own declared startup (ports, venv, preflight).\n- Non-MCP upstreams (local models, engines) live outside the fleet pattern — read their own docs (e.g. Strata: `START-HERE.bat`, OpenAI-compat on its own port).\n\n### Step 5 — Depth → per-repo AGENTS.md + skills\u002F\n\nEvery active repo has `\u003Crepo>\u002FAGENTS.md` (ports, tool pattern, key files, test\u002Flint\u002Fbuild commands) and often `skills\u002F\u003Cname>-*.md` operator guides with exact tool operations, device facts, and known issues. Read these before touching the repo — they outrank any summary.\n\n### Step 6 — Prove it by running\n\nA lookup isn't done until something executes: health endpoint answers, `opencode mcp list` shows `✓ connected`, or a stdio handshake prints ready. After any restart, verify a NEW PID owns the port. A gate that reports success having examined nothing is this fleet's most common failure mode.\n\n---\n\n## 3. Adjacent \u002F Alternative Repos (which repo handles it?)\n\nOverlap is intentional — check before building:\n\n1. Search `FLEET_INDEX.md` for the capability noun first (e.g. `audio`, `cad`, `ebook`, `robot`). If 2+ repos match, read both `AGENTS.md` \"Scope \u002F Non-goals\" sections.\n2. Prefer the wrappee-owner: the repo named after the software it wraps owns that API (e.g. `blender-mcp` for Blender, `calibre-mcp` for Calibre). A generic repo doing the same thing is the alternative, not the default.\n3. One-hop rule: fleet crossconnects are single-hop (`arxiv-mcp → calibre-mcp`), never chains. If your design needs 2+ hops, you picked the wrong entry point.\n4. If both a Python repo and a `rust-*-mcp` exist for the same domain, Rust is canonical for Buckets A\u002FB (REST\u002Fclean-hardware\u002Fsystem). Python stays canonical for Buckets C\u002FD (embedded host-app, CUDA\u002FPyTorch). See §5.\n5. When in doubt, ask in the repo's `fleet-\u003Cname>` Discord channel — each has one — before scaffolding a new repo. New repos need a FLEET_INDEX entry + claimed ports before code.\n\n## 4. Upstream \u002F External Handling (read-only by default)\n\n- `_upstream\u002F` = third-party clones (incl. all xyzcraft + Strata). Check `git remote -v` per dir: `origin=storytold` = pure clone (pull-only), `origin=sandraschi` + `upstream=storytold` = fork (pushable, PRs go upstream). Default read-only either way; never modify without a reason.\n- `external\u002F` = 66 vendored reference clones (migration planned, do NOT move anything). `D:\\Dev\\external\\` stray dir (`calibre` duplicates `repos\\external\\calibre`) is known-misplaced — do not fix by hand.\n- `_archives\u002F` = frozen. Never build on top of it; copy out if you must revive.\n- Never invent an upstream URL — use the explicit remote URL from `git remote -v`. Hallucinated repo\u002Fskill names are a promptware vector (see `standards\u002Fthreats\u002FAGENTIC_BOTNETS.md`).\n\n## 5. ArtCraft Craft Apps + Rustification (where the fleet is going)\n\n- **Public banner**: 13 pure-Rust Craft apps by storytold (CADCraft, DeckCraft, DesignCraft, EffectCraft, FigCraft, FilmCraft, GridCraft, LightCraft, PdfCraft, PhotoCraft, SoundCraft, VectorCraft, WordCraft). Each = native app + CLI + MCP server. Fleet r11n borrows the harness, does not reimplement. Inventory: `standards\u002Frust-artcraft\u002FCRAFT_APPS_MCP_UTILIZATION.md`. Control planes: `standards\u002Frust-artcraft\u002FCRAFT_COMMAND_BUS.md` (headless `run` vs live `mcp --attach\u002F--bridge\u002F--connect`).\n- **4-Bucket Triage** (`standards\u002FRUST_ARTCRAFT_STANDARD.md` §3): A (REST\u002Fcloud\u002FSQLite\u002FCLI\u002Fsystem) + B (clean hardware\u002FSCPI\u002FLAN IoT) → build Pure-Rust; C (embedded host-app Python) + D (CUDA\u002FML) → stay Python\u002FFastMCP. Default is Rust unless the dossier names a Bucket C\u002FD blocker in `docs\u002FDEVELOPMENT.md`.\n- **Conversion macro**: `repconv \u003Crepo>` per `patterns\u002FREPCONV_SOP.md` (shadow-then-swap vs in-place, 70% reusable kernel, 4-PR tiered factory). Never fail a Rust repo for lacking `pyproject.toml` \u002F `webapp\u002F` \u002F `fastmcp` \u002F `prefab-ui` \u002F ports.\n- **Vendoring this skill**: this file is the source. Repos carry a thin shim at `src\u002F\u003Cpkg>\u002Fskills\u002Ffleet-expert\u002FSKILL.md` pointing here — never a full copy. Update here once, all shims follow.\n\n---\n\n## 6. Cross-Fleet Integration Points (ILLUSTRATIVE EXAMPLES, not exhaustive)\n\n| Integration | Source → Destination | What Flows |\n|------------|---------------------|------------|\n| CFD → Godot | freecad-cfd → godot-mcp | Velocity field CSV → particle animation |\n| Paper → Calibre | arxiv-mcp → calibre-mcp | PDF + metadata → ebook library |\n| AI video → ittybitty | google-ai-mcp → ittybitty | Veo-generated clips |\n| Audio → Game | speech-mcp → godot-mcp | TTS narration → 3D scene |\n| News → Digest | aiwatcher-mcp → email | RSS → scored daily digest (+ TTS) |\n| Media request | arr-mcp → jellyfin-mcp | Add + scan new media |\n| Benchmark verify | arxiv-mcp → epoch | Claimed scores vs public DB |\n| Robot teleop | teleoperator-mcp → yahboom-mcp | WebXR → robot action |\n| Vacuum map → Robot nav | dreame-mcp → yahboom-mcp | LIDAR floor map (`GET \u002Fapi\u002Fv1\u002Fmap`) → shared spatial ground truth |\n\nFor a real integration design, check both repos' AGENTS.md for current tool surfaces — examples above may predate refactors.\n\n---\n\n## 7. Related Skills\n\nFor per-repo implementation work (Tauri build, CUA test, MCPB, assess & fix, webapp SOTA, tool design), use the **repo-expert** skill.\n","# Fleet Expert\n\n**Scope**: The big picture — every repo, port, integration, and architecture pattern across the fleet.\n\n**Canonical source**: `D:\\Dev\\repos\\mcp-central-docs\\skills\\fleet-expert\\SKILL.md` (this file). Vendored by reference into repos — do not fork it per-repo.\n**Standards root**: `mcp-central-docs\u002Fstandards\u002F`\n**Port registry**: `mcp-central-docs\u002Foperations\u002FWEBAPP_PORTS.md`\n**Known bugs**: `mcp-central-docs\u002Ftroubleshooting\u002FBUGS_DEPOT.md`\n\n**Freshness rule (2026-10-13): this skill contains no repo roster by design.** A static table rots within weeks against daily repo additions. Resolve everything through the live indexes in §2, in order. Indexes live with the work; this skill only holds stable patterns (§1) and illustrative examples (§6, marked as such).\n\n---\n\n## 1. Architecture Patterns (stable — safe to quote)\n\nTwo tracks since 2026-10-17 regime change (see `standards\u002FRUST_ARTCRAFT_STANDARD.md`):\n\n**Track A — Pure-Rust ArtCraft** (`Cargo.toml` at root, Buckets A\u002FB):\n```\nL1 (\u003Cdomain>-core) direct in-process dispatch, no HTTP sidecar\nL2 (\u003Cdomain>-mcp) CLI-first clap binary (--json) + hand-rolled MCP stdio loop\nL3 (\u003Cdomain>-app) eframe\u002Fegui native GPU desktop, zero ports, zero node_modules\n```\nGates: `cargo clippy --workspace --all-targets --all-features -- -D warnings` (deny unwrap\u002Fexpect\u002Fpanic\u002Ftodo), `cargo test --workspace`, `cargo fmt --check`. Zero ports claimed. NSIS via `installer\u002Finstaller.nsi` (no WebView2).\n\n**Track B — Legacy Python \u002F FastMCP** (`pyproject.toml` at root, Buckets C\u002FD):\n```\nBackend (FastMCP 3.4+ + Starlette\u002FFastAPI, port {B})\n  ├── REST API at \u002Fapi\u002F*\n  ├── MCP transport at \u002Fmcp (streamable HTTP, plus stdio for local clients)\n  └── Health at \u002Fhealth\nFrontend (React + Vite + Tailwind, port {F})\n  └── Proxies \u002Fapi and \u002Fmcp to backend\nNative (Tauri 2.0, optional)\n  └── PyInstaller-frozen backend embedded inside NSIS installer\n```\nFleet standards: `uv` package manager, `ruff` linter, `pytest` test runner, `biome` for TS\u002FJS.\nVersion floors move — check `mcp-central-docs\u002Fstandards\u002FJUNE_2026_STANDARDS_BAR.md` for the current FastMCP floor, never quote one from memory.\nInfrastructure tier: repos mark `infrastructure: true` in manifests (credential vaults, artifact depots, shared LLMs, observability, orchestration); webapp for diagnostics only.\n\n### Port Convention (stable — safe to quote, Python track only)\n\n- **Reservoir**: 10700-15000 for webapps (widened to 15000 on 2026-10-13; the registry table itself is truth over any cached number).\n- **Adjacency Rule**: Frontend and backend for one project MUST be adjacent (e.g. 10792\u002F10793).\n- **Tauri side-by-side**: repo with Tauri desktop app claims a SECOND pair for the installed operator; operator port is never the dev backend port.\n- **FORBIDDEN**: 3000, 5000, 5173, 8000, 8080.\n- **Never invent a port.** Claim one with `mcp-central-docs\u002Ffleet-gate\u002Fclaim_ports.py`, which checks `WEBAPP_PORTS.md` *and* every `fleet-start.config.ps1`.\n\n---\n\n## 2. Find Any Repo (lookup procedure — follow in order)\n\n### Step 1 — Spoken or colloquial name → voice-bus aliases\n\n`mcp-central-docs\u002Fconfig\u002Fvoice_command_bus.yaml` maps everyday words to the owning server and tool: aliases like `[dreame, dream, vacuum, robohoove, hoover, robovac]` → server `dreame`, keywords `[clean, vacuum, sweep, mop]` → tool `dreame_tool`. \"Hoover bot\", \"the vacuum\", \"start cleaning\" all resolve here first. If the name isn't an alias, continue.\n\n### Step 2 — Canonical catalog → FLEET_INDEX.md\n\n`mcp-central-docs\u002Fprojects\u002FFLEET_INDEX.md` is the repo roster: type, status, description, registered ports per repo. Check its `Last Updated` header — if the repo is newer than the header date, fall through to Steps 3-4 rather than concluding it doesn't exist.\n\n### Step 3 — Ports → the registry, never memory\n\n`mcp-central-docs\u002Foperations\u002FWEBAPP_PORTS.md` is the port truth. Backend\u002Ffrontend pairs, claim dates, move history. For a new allocation use `fleet-gate\u002Fclaim_ports.py`, never hardcode.\n\n### Step 4 — Launch → starts\u002F scripts and repo entry points\n\n- `mcp-central-docs\u002Fstarts\u002F\u003Cname>-start.bat` — canonical per-repo launchers.\n- Repo root `start.ps1` \u002F `start.bat` + `fleet-start.config.ps1` — the repo's own declared startup (ports, venv, preflight).\n- Non-MCP upstreams (local models, engines) live outside the fleet pattern — read their own docs (e.g. Strata: `START-HERE.bat`, OpenAI-compat on its own port).\n\n### Step 5 — Depth → per-repo AGENTS.md + skills\u002F\n\nEvery active repo has `\u003Crepo>\u002FAGENTS.md` (ports, tool pattern, key files, test\u002Flint\u002Fbuild commands) and often `skills\u002F\u003Cname>-*.md` operator guides with exact tool operations, device facts, and known issues. Read these before touching the repo — they outrank any summary.\n\n### Step 6 — Prove it by running\n\nA lookup isn't done until something executes: health endpoint answers, `opencode mcp list` shows `✓ connected`, or a stdio handshake prints ready. After any restart, verify a NEW PID owns the port. A gate that reports success having examined nothing is this fleet's most common failure mode.\n\n---\n\n## 3. Adjacent \u002F Alternative Repos (which repo handles it?)\n\nOverlap is intentional — check before building:\n\n1. Search `FLEET_INDEX.md` for the capability noun first (e.g. `audio`, `cad`, `ebook`, `robot`). If 2+ repos match, read both `AGENTS.md` \"Scope \u002F Non-goals\" sections.\n2. Prefer the wrappee-owner: the repo named after the software it wraps owns that API (e.g. `blender-mcp` for Blender, `calibre-mcp` for Calibre). A generic repo doing the same thing is the alternative, not the default.\n3. One-hop rule: fleet crossconnects are single-hop (`arxiv-mcp → calibre-mcp`), never chains. If your design needs 2+ hops, you picked the wrong entry point.\n4. If both a Python repo and a `rust-*-mcp` exist for the same domain, Rust is canonical for Buckets A\u002FB (REST\u002Fclean-hardware\u002Fsystem). Python stays canonical for Buckets C\u002FD (embedded host-app, CUDA\u002FPyTorch). See §5.\n5. When in doubt, ask in the repo's `fleet-\u003Cname>` Discord channel — each has one — before scaffolding a new repo. New repos need a FLEET_INDEX entry + claimed ports before code.\n\n## 4. Upstream \u002F External Handling (read-only by default)\n\n- `_upstream\u002F` = third-party clones (incl. all xyzcraft + Strata). Check `git remote -v` per dir: `origin=storytold` = pure clone (pull-only), `origin=sandraschi` + `upstream=storytold` = fork (pushable, PRs go upstream). Default read-only either way; never modify without a reason.\n- `external\u002F` = 66 vendored reference clones (migration planned, do NOT move anything). `D:\\Dev\\external\\` stray dir (`calibre` duplicates `repos\\external\\calibre`) is known-misplaced — do not fix by hand.\n- `_archives\u002F` = frozen. Never build on top of it; copy out if you must revive.\n- Never invent an upstream URL — use the explicit remote URL from `git remote -v`. Hallucinated repo\u002Fskill names are a promptware vector (see `standards\u002Fthreats\u002FAGENTIC_BOTNETS.md`).\n\n## 5. ArtCraft Craft Apps + Rustification (where the fleet is going)\n\n- **Public banner**: 13 pure-Rust Craft apps by storytold (CADCraft, DeckCraft, DesignCraft, EffectCraft, FigCraft, FilmCraft, GridCraft, LightCraft, PdfCraft, PhotoCraft, SoundCraft, VectorCraft, WordCraft). Each = native app + CLI + MCP server. Fleet r11n borrows the harness, does not reimplement. Inventory: `standards\u002Frust-artcraft\u002FCRAFT_APPS_MCP_UTILIZATION.md`. Control planes: `standards\u002Frust-artcraft\u002FCRAFT_COMMAND_BUS.md` (headless `run` vs live `mcp --attach\u002F--bridge\u002F--connect`).\n- **4-Bucket Triage** (`standards\u002FRUST_ARTCRAFT_STANDARD.md` §3): A (REST\u002Fcloud\u002FSQLite\u002FCLI\u002Fsystem) + B (clean hardware\u002FSCPI\u002FLAN IoT) → build Pure-Rust; C (embedded host-app Python) + D (CUDA\u002FML) → stay Python\u002FFastMCP. Default is Rust unless the dossier names a Bucket C\u002FD blocker in `docs\u002FDEVELOPMENT.md`.\n- **Conversion macro**: `repconv \u003Crepo>` per `patterns\u002FREPCONV_SOP.md` (shadow-then-swap vs in-place, 70% reusable kernel, 4-PR tiered factory). Never fail a Rust repo for lacking `pyproject.toml` \u002F `webapp\u002F` \u002F `fastmcp` \u002F `prefab-ui` \u002F ports.\n- **Vendoring this skill**: this file is the source. Repos carry a thin shim at `src\u002F\u003Cpkg>\u002Fskills\u002Ffleet-expert\u002FSKILL.md` pointing here — never a full copy. Update here once, all shims follow.\n\n---\n\n## 6. Cross-Fleet Integration Points (ILLUSTRATIVE EXAMPLES, not exhaustive)\n\n| Integration | Source → Destination | What Flows |\n|------------|---------------------|------------|\n| CFD → Godot | freecad-cfd → godot-mcp | Velocity field CSV → particle animation |\n| Paper → Calibre | arxiv-mcp → calibre-mcp | PDF + metadata → ebook library |\n| AI video → ittybitty | google-ai-mcp → ittybitty | Veo-generated clips |\n| Audio → Game | speech-mcp → godot-mcp | TTS narration → 3D scene |\n| News → Digest | aiwatcher-mcp → email | RSS → scored daily digest (+ TTS) |\n| Media request | arr-mcp → jellyfin-mcp | Add + scan new media |\n| Benchmark verify | arxiv-mcp → epoch | Claimed scores vs public DB |\n| Robot teleop | teleoperator-mcp → yahboom-mcp | WebXR → robot action |\n| Vacuum map → Robot nav | dreame-mcp → yahboom-mcp | LIDAR floor map (`GET \u002Fapi\u002Fv1\u002Fmap`) → shared spatial ground truth |\n\nFor a real integration design, check both repos' AGENTS.md for current tool surfaces — examples above may predate refactors.\n\n---\n\n## 7. Related Skills\n\nFor per-repo implementation work (Tauri build, CUA test, MCPB, assess & fix, webapp SOTA, tool design), use the **repo-expert** skill.\n",{},"master","be156301b65e301887f327d08190ed4f17ba08d2","docs\u002Fskills\u002Ffleet-expert",0,"https:\u002F\u002Fgithub.com\u002Fsandraschi\u002Fdocumentation-mcp","https:\u002F\u002Fgithub.com\u002Fsandraschi","2026-11-12 11:03:54",{"source":7,"skillName":5,"commands":34,"prompt":44,"zipAvailable":45},[35,38,41],{"tool":36,"command":37},"npx","npx skills add sandraschi\u002Fdocumentation-mcp --skill fleet-expert",{"tool":39,"command":40},"bunx","bunx skills add sandraschi\u002Fdocumentation-mcp --skill fleet-expert",{"tool":42,"command":43},"pnpm","pnpm dlx skills add sandraschi\u002Fdocumentation-mcp --skill fleet-expert","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fsandraschi\u002Fdocumentation-mcp\u002Fblob\u002Fmaster\u002Fdocs\u002Fskills\u002Ffleet-expert\u002FSKILL.md",true,[],[48,75,101,111,137,163],{"skillNo":49,"name":50,"nameZh":6,"description":51,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":52,"categories":53,"keywords":62,"publishedAt":21},"01M6PFAWAHEJJCKKVNXEWNK87W","Docs Research","Use MCP Central Docs server to search, ask, and retrieve documentation (FastMCP, standards, packaging).","https:\u002F\u002Fgithub.com\u002Fsandraschi\u002Fdocumentation-mcp\u002Fblob\u002Fmaster\u002Fsrc\u002Fdocs_mcp\u002Fskills\u002Fdocs-research\u002FSKILL.md",[54,59],{"categoryNo":55,"categoryName":56,"taxonomyType":57,"taxonomyTypeDesc":58},"01JBSEEDCAT000000000000021","资料检索与研究","SCENARIO","使用场景",{"categoryNo":60,"categoryName":61,"taxonomyType":57,"taxonomyTypeDesc":58},"01JBSEEDCAT000000000000023","Skill与智能体开发",[63,64,65,66,67,68,69,70,71,72,73,74],"docs research","docs","research","standards","use","packaging","ask","server","search","fastmcp","documentation","MCP",{"skillNo":76,"name":77,"nameZh":6,"description":78,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":79,"categories":80,"keywords":81,"publishedAt":21},"01M6PFAN4DAENMY574Q7Q3CB3H","wrappee-drift","Read-only, single-repo audit of a repo's tool coverage against the software it wraps (its current real API\u002Fdocs, not training-data memory) and against comparable\u002Fcompeting wrappers. Trigger when the user says \"wrappee drift\" followed by a repo name, \"capability audit\" followed by a repo name, or asks whether a repo is missing features the wrapped software or a competitor now has. Always scoped to one named repo per invocation -- never trigger this fleet-wide or unprompted; that is explicitly against the SOP. Do NOT trigger for internal fleet-standard compliance (that is drift-scan) or strategic worth\u002Farchive decisions (that is quality-check) -- this is specifically about the gap between the repo's tool list and the wrapped software's\u002Fcompetitors' actual current capabilities.","https:\u002F\u002Fgithub.com\u002Fsandraschi\u002Fdocumentation-mcp\u002Fblob\u002Fmaster\u002Fdocs\u002Fskills\u002Fwrappee-drift\u002FSKILL.md",[],[82,83,84,85,86,87,88,89,90,91,92,19,93,94,95,96,97,98,99,100],"drift","wrappee drift","api","data","audit","capabilities","training","memory","features","repo audit","competitors","now","software","tool list","only","never","coverage","list","read",{"skillNo":102,"name":103,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":104,"categories":105,"keywords":110,"publishedAt":21},"01M6PFADA3X031SK3W3T6X0N6H","modules","https:\u002F\u002Fgithub.com\u002Fsandraschi\u002Fdocumentation-mcp\u002Fblob\u002Fmaster\u002Fdocs\u002Fskills\u002Fwindsurf-mcp-standards\u002Fmodules\u002FSKILL.md",[106,109],{"categoryNo":107,"categoryName":108,"taxonomyType":57,"taxonomyTypeDesc":58},"01JBSEEDCAT000000000000011","运维与部署",{"categoryNo":60,"categoryName":61,"taxonomyType":57,"taxonomyTypeDesc":58},[103],{"skillNo":112,"name":113,"nameZh":6,"description":114,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":115,"categories":116,"keywords":121,"publishedAt":21},"01M6PFA8YA029N68TW0X31FB1W","mcp-standards","Use when developing MCP servers to access comprehensive standards for scaffolding, packaging, sampling, documentation, testing, error handling, monitoring, and CI\u002FCD workflows.","https:\u002F\u002Fgithub.com\u002Fsandraschi\u002Fdocumentation-mcp\u002Fblob\u002Fmaster\u002Fdocs\u002Fskills\u002Fwindsurf-mcp-standards\u002FSKILL.md",[117,120],{"categoryNo":118,"categoryName":119,"taxonomyType":57,"taxonomyTypeDesc":58},"01JBSEEDCAT000000000000008","测试与质量",{"categoryNo":60,"categoryName":61,"taxonomyType":57,"taxonomyTypeDesc":58},[122,74,66,67,123,124,125,126,127,128,129,130,131,132,133,134,73,135,136,68],"mcp standards","monitoring","sampling","scaffolding","servers","cd","error","for","CI\u002FCD","access","ci","mcp servers","error handling","workflows","testing",{"skillNo":138,"name":139,"nameZh":6,"description":140,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":141,"categories":142,"keywords":145,"publishedAt":21},"01M6PFA1XX344WX57B0DJZY94Q","webapp-cua-test","Run the pre-Tauri CUA click-through test (real browser, dev stack, OCR \"Connected\" wait, sidebar nav walk) for a fleet MCP server repo under D:\\Dev\\repos. Trigger when the user says \"cua webapp test\" or \"webapp clickthrough\" followed by a repo name, asks for an e2e click-through of a webapp, or asks whether a webapp boots and connects in a real browser. Not for the installed NSIS app (that is the nsis-build skill \u002F cua-nsis-test) and not for DOM assertions (Playwright), and not for hunting fake data or dead buttons (fakefind).","https:\u002F\u002Fgithub.com\u002Fsandraschi\u002Fdocumentation-mcp\u002Fblob\u002Fmaster\u002Fdocs\u002Fskills\u002Fwebapp-cua-test\u002FSKILL.md",[143,144],{"categoryNo":118,"categoryName":119,"taxonomyType":57,"taxonomyTypeDesc":58},{"categoryNo":60,"categoryName":61,"taxonomyType":57,"taxonomyTypeDesc":58},[146,147,148,149,150,74,151,152,153,129,154,155,156,157,158,159,160,161,70,162],"webapp","test","webapp cua test","playwright","mcp server","dev","dom","assertions","trigger","click","app","tauri","repo","stack","e2e","ocr","browser",{"skillNo":164,"name":165,"nameZh":6,"description":166,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":167,"categories":168,"keywords":170,"publishedAt":21},"01M6PF9WYF6NWJR7WVN38TT0WH","ship","Final release gate for a fleet MCP server repo under D:\\Dev\\repos -- run all quality gates, build the release artifact, verify it, commit, push, and cut a GitHub release. Trigger this whenever the user says \"ship it\", \"ship\" followed by a repo name, \"release\" followed by a repo name, or asks to finalize and publish work that's already been done in a repo. This is the terminal step after assfix\u002Fnsis-build, not a substitute for them -- if the repo hasn't been assessed recently, say so before shipping rather than shipping blind.","https:\u002F\u002Fgithub.com\u002Fsandraschi\u002Fdocumentation-mcp\u002Fblob\u002Fmaster\u002Fdocs\u002Fskills\u002Fship\u002FSKILL.md",[169],{"categoryNo":60,"categoryName":61,"taxonomyType":57,"taxonomyTypeDesc":58},[165,158,129,154,171,172,173,174,175,176,177,70,178,151,179,180,181,150,182,74],"gates","ship it","artifact","done","say","work","publish","push","shipping","quality gates","commit","github"]