First-party. This plugin is built and maintained by ShipWithAI. Unlike the reviewed third-party tools in this toolkit, it is our own product — judge it accordingly.

Problem it solves

Most projects start their Claude Code life with a pasted CLAUDE.md that describes a project that no longer exists. The commands are wrong, the directory layout drifted three refactors ago, and nothing stops the model from writing to .env.

Harness inverts the order: it reads your repository first, then writes the file. Stack, build commands, directory structure, env vars and test framework are extracted from the files that are actually in the project — not from a template you promise yourself you will update later.

How to install

/plugin marketplace add ShipWithAI/shipwithai-plugins
/plugin install shipwithai-harness@shipwithai

How to use

/shipwithai-harness:setup # scan the project, then generate the harness
/shipwithai-harness:doctor # score an existing harness and offer fixes

setup runs in five steps — scan, summarize, ask, write, validate. It asks exactly two questions: what the project is (required) and any conventions you want enforced (optional).

Five files come out of it:

FileWhat it holds
CLAUDE.mdYour real commands, directory layout, and conventions
.claude/settings.jsonPermission rules tuned to your toolchain
.claude/hooks/validate-command.pyBlocks fork bombs, curl | bash, force pushes
.claude/hooks/protect-files.pyHard-blocks writes to .env, .pem, .key
docs/ARCHITECTURE.mdArchitecture snapshot from your actual structure

Pro tips

  • Read the scan summary before answering the two questions. If it misread your stack, fix that first — everything downstream inherits the mistake.
  • Run /shipwithai-harness:doctor after a big refactor. Harness drift is invisible until Claude starts confidently running a command that no longer exists.
  • The generated hooks are a floor, not a ceiling. Add project-specific blocks once you see which mistakes your codebase actually invites.

When NOT to use

Skip it if you already run ShipWithAI Starter — Starter’s init covers the same ground and more. Skip it for throwaway scripts and sandboxes, where a harness costs more than it saves. And if your project has no recognizable config file, expect to edit the output by hand.