test-harnesslisted
Install: claude install-skill samuel-stidham/smithy
# /forge:test-harness
Generate an MCP server that exposes this project's public API surface
as tools, so Claude can drive the application headlessly: launch it,
send inputs, read state, find bugs. This command builds the harness.
The QA pass is a separate task the user starts afterward.
Focus area: $ARGUMENTS. Empty means the full public API surface.
## Orientation
Detect the language and tooling from manifests. Never assume them.
Find the domain and application layers per the `clean-architecture`
skill. The harness wraps the same interfaces the presentation layer
uses, never infrastructure or presentation directly. If an MCP server
already exists in the project, ask before extending or replacing it.
## Generate
- A standalone module in the language's idiomatic layout, such as
`cmd/mcp-server/` in Go or an `mcp-server/` package elsewhere. Stdio
transport. The harness depends on the project. The project never
depends on the harness.
- Tools in four groups, as the API surface supports them: lifecycle
(start, stop, reset, configure), actions (send inputs, trigger
operations, plus a batch tool to cut round trips), inspection
(structured state, detailed and summary forms), and targeted testing
(state overrides for edge cases, clearly marked test-only).
- An `mcpServers` entry in `.mcp.json` at the repo root, merged into
any existing file, never overwriting it. Note in the report that
Claude Code will ask to approve the project server on next start.
- A `TES