Content
82%Weight 40%Scale 1-5Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.
A high-quality, highly actionable skill body: complete executable code for every phase, a decision framework for tool selection, ordered steps with checkpoints, and a real verification procedure via basic-host. The main residual costs are mild redundancy between inline guidance and the 'Common Mistakes' section, and reference-style material (SDK v1→v2 migration table) inlined in an already long body.
Suggestions
Drop or compress the 'Common Mistakes' section where it restates inline guidance, and keep only the mistakes not already flagged at the point of use (e.g. CSP domains, dist/ path mismatches).
Move the full SDK v1→v2 migration table behind a one-line pointer (e.g. 'If the server still imports @modelcontextprotocol/sdk v1, see the migration table in the cloned repo docs') to cut a large block that only v1-legacy servers need.
Add a short error-recovery note after the basic-host test (what to check when the UI doesn't render — resource URI mismatch, missing dist build, handlers registered after connect).
| Dimension | Reasoning | Score |
|---|---|---|
Conciseness | The body is dense and mostly earns its tokens — a decision table for which tools benefit from UI, compact API/example tables, and before/after code — but a few sections could be trimmed: 'How It Works' re-explains the resource/_meta.link mechanism that the code in Steps 4–5 already demonstrates, and the 'Common Mistakes' list repeats guidance stated inline ('Always keep the content array', 'Register ALL handlers BEFORE connect()'). Not a 5; well above the verbose/padded levels (1–3). | 4 / 5 |
Actionability | Every step is copy-paste ready: a version-pinned clone command, exact npm install lines, complete vite.config.ts / mcp-app.html / package.json snippets, full before-and-after tool conversion code, working registerAppResource and App-handler code, and a runnable basic-host test procedure with the SERVERS env var. Covers the common cases end to end. | 5 / 5 |
Workflow Clarity | Steps 1–6 are clearly sequenced with ordering constraints stated twice ('Register ALL handlers BEFORE calling app.connect()', 'The UI must be built before the server code bundles it') and Step 1 ends in a user-confirmation checkpoint; the Testing section closes with an explicit 5-item Verify checklist. Falls short of 5 only because there is no error-recovery feedback loop (what to do when the UI fails to render or the basic-host check fails). Not destructive/batch work, so no cap applies. | 4 / 5 |
Progressive Disclosure | No bundle files exist, and the skill does the right thing by deferring bulk material to clearly labeled external locations: API reference tables point at specific cloned-repo files (src/app.ts, src/server/index.ts, ...), examples and framework templates get their own tables, and the full CSS-variable list is delegated to src/spec.types.ts. It stays at 4 rather than 5 because the ~430-line body inlines a few chunks that read like reference material (the full SDK v1→v2 migration table, the complete host CSS variable group list) that would sit better behind the same one-level-deep pointers. | 4 / 5 |
Total | 17 / 20 Passed |