Pre-first-publish live validation (2026-07-17, .llm/runs/beta10-cli--orchestrator/slices/mcp-live-validation/report.md) against a real scaffolded running app (58/0 scaffold.runtime, fresh worker execution, Dashboard provably serving 2 resourceSpans / 26 spans) — verdict HOLD:
- Telemetry adapter response-shape incompatibility (7 tools affected).
/api/telemetry/spans?limit=100 returns {data:{resourceSpans:[…]},totalCount,returnedCount} with live spans, but the MCP telemetry adapter normalizes it to zero resources/spans/runs. get_app_status, list_runs, get_run, get_recent_errors, get_last_job_result, analyze_service_performance, analyze_db_bottlenecks all return contract-shaped false-empty results. Unit tests pass because they consume fixtures — the fixture shape does not match the live Dashboard API (Aspire 13.4.6).
doctor violates its own output schema live: JSON-RPC -32603 invalid_tool_result, $.checks must contain at most 20 items — the real check count exceeds the tool's declared cap; the server rejects its own flow output.
- Docs tools unusable in the real scaffold default: corpus resolves to
<project>/docs/site (unpopulated in scaffolds) → list_docs/search_docs return zero, get_doc → doc_not_found. Needs a working default (embedded corpus, --docs-root default to the installed package's docs, or documented behavior).
Correct paths (regression-guard them): initialize/tools/list (13 tools), execute_command allowlist both directions (plugin list OK, deploy denied pre-spawn), list_commands populated.
Acceptance
Blocks the v0.0.1-beta.10 publish (release PR #801 held).
Pre-first-publish live validation (2026-07-17,
.llm/runs/beta10-cli--orchestrator/slices/mcp-live-validation/report.md) against a real scaffolded running app (58/0 scaffold.runtime, fresh worker execution, Dashboard provably serving 2 resourceSpans / 26 spans) — verdict HOLD:/api/telemetry/spans?limit=100returns{data:{resourceSpans:[…]},totalCount,returnedCount}with live spans, but the MCP telemetry adapter normalizes it to zero resources/spans/runs.get_app_status,list_runs,get_run,get_recent_errors,get_last_job_result,analyze_service_performance,analyze_db_bottlenecksall return contract-shaped false-empty results. Unit tests pass because they consume fixtures — the fixture shape does not match the live Dashboard API (Aspire 13.4.6).doctorviolates its own output schema live: JSON-RPC-32603invalid_tool_result,$.checks must contain at most 20 items— the real check count exceeds the tool's declared cap; the server rejects its own flow output.<project>/docs/site(unpopulated in scaffolds) →list_docs/search_docsreturn zero,get_doc→doc_not_found. Needs a working default (embedded corpus,--docs-rootdefault to the installed package's docs, or documented behavior).Correct paths (regression-guard them):
initialize/tools/list(13 tools),execute_commandallowlist both directions (plugin listOK,deploydenied pre-spawn),list_commandspopulated.Acceptance
doctoroutput fits its contract (aggregate/paginate or raise cap deliberately) — proven live.@netscript/mcp's first publish.Blocks the v0.0.1-beta.10 publish (release PR #801 held).