fleet-expert
暂无简介
- License 许可
- MIT
- 最近更新
- 2026-11-12
- Stars
- ★ 2
- Forks
- 0
03 SKILL.md 正文
Fleet Expert
Scope: The big picture — every repo, port, integration, and architecture pattern across the fleet.
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.
Standards root: mcp-central-docs/standards/
Port registry: mcp-central-docs/operations/WEBAPP_PORTS.md
Known bugs: mcp-central-docs/troubleshooting/BUGS_DEPOT.md
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).
1. Architecture Patterns (stable — safe to quote)
Two tracks since 2026-10-17 regime change (see standards/RUST_ARTCRAFT_STANDARD.md):
Track A — Pure-Rust ArtCraft (Cargo.toml at root, Buckets A/B):
L1 (<domain>-core) direct in-process dispatch, no HTTP sidecar
L2 (<domain>-mcp) CLI-first clap binary (--json) + hand-rolled MCP stdio loop
L3 (<domain>-app) eframe/egui native GPU desktop, zero ports, zero node_modules
Gates: cargo clippy --workspace --all-targets --all-features -- -D warnings (deny unwrap/expect/panic/todo), cargo test --workspace, cargo fmt --check. Zero ports claimed. NSIS via installer/installer.nsi (no WebView2).
Track B — Legacy Python / FastMCP (pyproject.toml at root, Buckets C/D):
Backend (FastMCP 3.4+ + Starlette/FastAPI, port {B})
├── REST API at /api/*
├── MCP transport at /mcp (streamable HTTP, plus stdio for local clients)
└── Health at /health
Frontend (React + Vite + Tailwind, port {F})
└── Proxies /api and /mcp to backend
Native (Tauri 2.0, optional)
└── PyInstaller-frozen backend embedded inside NSIS installer
Fleet standards: uv package manager, ruff linter, pytest test runner, biome for TS/JS.
Version floors move — check mcp-central-docs/standards/JUNE_2026_STANDARDS_BAR.md for the current FastMCP floor, never quote one from memory.
Infrastructure tier: repos mark infrastructure: true in manifests (credential vaults, artifact depots, shared LLMs, observability, orchestration); webapp for diagnostics only.
Port Convention (stable — safe to quote, Python track only)
- Reservoir: 10700-15000 for webapps (widened to 15000 on 2026-10-13; the registry table itself is truth over any cached number).
- Adjacency Rule: Frontend and backend for one project MUST be adjacent (e.g. 10792/10793).
- 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.
- FORBIDDEN: 3000, 5000, 5173, 8000, 8080.
- Never invent a port. Claim one with
mcp-central-docs/fleet-gate/claim_ports.py, which checksWEBAPP_PORTS.mdand everyfleet-start.config.ps1.
2. Find Any Repo (lookup procedure — follow in order)
Step 1 — Spoken or colloquial name → voice-bus aliases
mcp-central-docs/config/voice_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.
Step 2 — Canonical catalog → FLEET_INDEX.md
mcp-central-docs/projects/FLEET_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.
Step 3 — Ports → the registry, never memory
mcp-central-docs/operations/WEBAPP_PORTS.md is the port truth. Backend/frontend pairs, claim dates, move history. For a new allocation use fleet-gate/claim_ports.py, never hardcode.
Step 4 — Launch → starts/ scripts and repo entry points
mcp-central-docs/starts/<name>-start.bat— canonical per-repo launchers.- Repo root
start.ps1/start.bat+fleet-start.config.ps1— the repo's own declared startup (ports, venv, preflight). - 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).
Step 5 — Depth → per-repo AGENTS.md + skills/
Every active repo has <repo>/AGENTS.md (ports, tool pattern, key files, test/lint/build commands) and often skills/<name>-*.md operator guides with exact tool operations, device facts, and known issues. Read these before touching the repo — they outrank any summary.
Step 6 — Prove it by running
A 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.
3. Adjacent / Alternative Repos (which repo handles it?)
Overlap is intentional — check before building:
- Search
FLEET_INDEX.mdfor the capability noun first (e.g.audio,cad,ebook,robot). If 2+ repos match, read bothAGENTS.md"Scope / Non-goals" sections. - Prefer the wrappee-owner: the repo named after the software it wraps owns that API (e.g.
blender-mcpfor Blender,calibre-mcpfor Calibre). A generic repo doing the same thing is the alternative, not the default. - 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. - If both a Python repo and a
rust-*-mcpexist for the same domain, Rust is canonical for Buckets A/B (REST/clean-hardware/system). Python stays canonical for Buckets C/D (embedded host-app, CUDA/PyTorch). See §5. - When in doubt, ask in the repo's
fleet-<name>Discord channel — each has one — before scaffolding a new repo. New repos need a FLEET_INDEX entry + claimed ports before code.
4. Upstream / External Handling (read-only by default)
_upstream/= third-party clones (incl. all xyzcraft + Strata). Checkgit remote -vper 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.external/= 66 vendored reference clones (migration planned, do NOT move anything).D:\Dev\external\stray dir (calibreduplicatesrepos\external\calibre) is known-misplaced — do not fix by hand._archives/= frozen. Never build on top of it; copy out if you must revive.- Never invent an upstream URL — use the explicit remote URL from
git remote -v. Hallucinated repo/skill names are a promptware vector (seestandards/threats/AGENTIC_BOTNETS.md).
5. ArtCraft Craft Apps + Rustification (where the fleet is going)
- 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/rust-artcraft/CRAFT_APPS_MCP_UTILIZATION.md. Control planes:standards/rust-artcraft/CRAFT_COMMAND_BUS.md(headlessrunvs livemcp --attach/--bridge/--connect). - 4-Bucket Triage (
standards/RUST_ARTCRAFT_STANDARD.md§3): A (REST/cloud/SQLite/CLI/system) + B (clean hardware/SCPI/LAN IoT) → build Pure-Rust; C (embedded host-app Python) + D (CUDA/ML) → stay Python/FastMCP. Default is Rust unless the dossier names a Bucket C/D blocker indocs/DEVELOPMENT.md. - Conversion macro:
repconv <repo>perpatterns/REPCONV_SOP.md(shadow-then-swap vs in-place, 70% reusable kernel, 4-PR tiered factory). Never fail a Rust repo for lackingpyproject.toml/webapp//fastmcp/prefab-ui/ ports. - Vendoring this skill: this file is the source. Repos carry a thin shim at
src/<pkg>/skills/fleet-expert/SKILL.mdpointing here — never a full copy. Update here once, all shims follow.
6. Cross-Fleet Integration Points (ILLUSTRATIVE EXAMPLES, not exhaustive)
| Integration | Source → Destination | What Flows |
|---|---|---|
| CFD → Godot | freecad-cfd → godot-mcp | Velocity field CSV → particle animation |
| Paper → Calibre | arxiv-mcp → calibre-mcp | PDF + metadata → ebook library |
| AI video → ittybitty | google-ai-mcp → ittybitty | Veo-generated clips |
| Audio → Game | speech-mcp → godot-mcp | TTS narration → 3D scene |
| News → Digest | aiwatcher-mcp → email | RSS → scored daily digest (+ TTS) |
| Media request | arr-mcp → jellyfin-mcp | Add + scan new media |
| Benchmark verify | arxiv-mcp → epoch | Claimed scores vs public DB |
| Robot teleop | teleoperator-mcp → yahboom-mcp | WebXR → robot action |
| Vacuum map → Robot nav | dreame-mcp → yahboom-mcp | LIDAR floor map (GET /api/v1/map) → shared spatial ground truth |
For a real integration design, check both repos' AGENTS.md for current tool surfaces — examples above may predate refactors.
7. Related Skills
For per-repo implementation work (Tauri build, CUA test, MCPB, assess & fix, webapp SOTA, tool design), use the repo-expert skill.
04 同仓库更多 Skills
Docs Research
Use MCP Central Docs server to search, ask, and retrieve documentation (FastMCP, standards, packaging).
wrappee-drift
Read-only, single-repo audit of a repo's tool coverage against the software it wraps (its current real API/docs, not training-data memory) and against comparable/competing 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/archive decisions (that is quality-check) -- this is specifically about the gap between the repo's tool list and the wrapped software's/competitors' actual current capabilities.
modules
暂无简介
mcp-standards
Use when developing MCP servers to access comprehensive standards for scaffolding, packaging, sampling, documentation, testing, error handling, monitoring, and CI/CD workflows.
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 / cua-nsis-test) and not for DOM assertions (Playwright), and not for hunting fake data or dead buttons (fakefind).
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/nsis-build, not a substitute for them -- if the repo hasn't been assessed recently, say so before shipping rather than shipping blind.