---
summary: "init scaffold derives script list from package.json files: (closes #73); field-test and design-mcp-server skills audit descriptions for implementation leaks, meta-coaching, and consumer-aware phrasing (closes #74)"
breaking: false
---

# 0.7.5 — 2026-04-25

Two small fixes queued from issues [#73](https://github.com/cyanheads/mcp-ts-core/issues/73) and [#74](https://github.com/cyanheads/mcp-ts-core/issues/74). The init CLI now derives the scaffold script list from `package.json` `files:` so newly-shipped framework scripts can no longer be missed by a stale hardcoded mirror; the `field-test` and `design-mcp-server` skills name three explicit categories of description leak so a review pass catches them at catalog time.

## Fixed

- **`init` scaffolds every shipped framework script ([#73](https://github.com/cyanheads/mcp-ts-core/issues/73))** — `src/cli/init.ts` previously kept a hardcoded `SCAFFOLD_SCRIPTS` array (8 entries) that drifted from `package.json` `files:` (9 shipped scripts). When 0.7.2 added `scripts/check-framework-antipatterns.ts` to `files:`, the static list missed it; fresh `npx @cyanheads/mcp-ts-core init` projects therefore produced `scripts/devcheck.ts` invoking a file that didn't exist, and `bun run devcheck` failed immediately on the new project. Replaced the static list with a derivation from `PACKAGE_JSON.files` filtered to `scripts/*.ts` — `package.json` `files:` is now the single source of truth, and any future script added there automatically scaffolds. Unit test extended to cover the regression. Same drift class as [#69](https://github.com/cyanheads/mcp-ts-core/issues/69) (maintenance skill Phase C); the symmetric fix for #69 is still pending. As an incidental simplification this commit also consolidates three duplicate `JSON.parse(readFileSync(package.json))` reads in `init.ts` to a single module-level `PACKAGE_JSON` const.

## Changed

- **`field-test` skill audits descriptions for leaks ([#74](https://github.com/cyanheads/mcp-ts-core/issues/74))** — Step 3 catalog pass now requires an explicit audit of every tool/parameter/output `.describe()` against three leak categories: *implementation details* (endpoint paths, API call counts, internal parameter mappings, routing logic), *meta-coaching* (directives like "treat X as the canonical Y", "callers should…", "the LLM should…"), and *consumer-aware phrasing* (references to "LLM", "agent", "Claude", or any specific reader). The `tools/list` jq projection now includes `outputSchema` so field-level describes are visible. Severity table `ux` row extended to mention leaky descriptions; checklist updated to require the audit. Resolves the gap where the design-time authoring rule did not reach the review-time workflow.
- **`design-mcp-server` skill restates the leak rule with the same three categories** — the *Don't leak implementation details* bullet under *Tool descriptions* is now *Don't leak.* with the same three sub-categories as the field-test audit. Out-of-scope per [#74](https://github.com/cyanheads/mcp-ts-core/issues/74) but trivially valuable: keeps authoring rule and review rule on identical taxonomy so guidance doesn't fork.
- **`CLAUDE.md` / `AGENTS.md` Version:** bumped to 0.7.5 — caught up from 0.7.3 (the v0.7.4 release missed this sync).
