| name | harness-install |
| description | Install the agent harness into a repo. Use when the user says "install the harness",
"set up the harness", "bootstrap harness", "add harness to this repo", or wants to
replicate the harness-exp agent control surface in another project.
The harness installs: .claude/settings.json, .codex/config.toml, .codex/hooks.json,
.mcp.json, .githooks/pre-commit, .githooks/pre-push, scripts/agent_harness/,
memory/PROJECT_MEMORY.md, memory/UPDATE_LOG.md, docs/PHASE_STATUS.md.
After installing, sets git config core.hooksPath .githooks and prints next steps.
|
| version | 1.0.0 |
Harness Install Skill
Install the full agent harness into a target repo.
What this skill does
- Runs
install_harness.py from the plugin scripts directory.
- Writes all harness config files into the target repo.
- Sets
git config core.hooksPath .githooks.
- Prints post-install instructions.
Steps
1. Identify the target repo
- If the user specified a path, use it.
- Otherwise, use the current working directory.
2. Run the installer
uv run python "${CLAUDE_PLUGIN_ROOT}/scripts/install_harness.py" --target <path>
To preview without writing:
uv run python "${CLAUDE_PLUGIN_ROOT}/scripts/install_harness.py" --target <path> --dry-run
To overwrite existing files:
uv run python "${CLAUDE_PLUGIN_ROOT}/scripts/install_harness.py" --target <path> --force
3. Validate the install
uv run python "${CLAUDE_PLUGIN_ROOT}/scripts/validate_harness.py"
4. Post-install checklist
After the installer runs, tell the user:
| Step | Command |
|---|
| Set git identity | git config user.name <name> && git config user.email <email> |
| Verify git hooks | git config core.hooksPath → should be .githooks |
| Run validation | uv run python scripts/agent_harness/validate_harness.py |
| Open in Claude Code | open the repo; SessionStart hook fires on first session |
| Trust Codex hooks | accept prompt on first Codex open |
| Set optional env vars | DATABASE_URL for postgres MCP, GITHUB_TOKEN for github MCP |
Files the installer writes
| File | Purpose |
|---|
.claude/settings.json | Claude Code permissions, attribution off, SessionStart hook |
.codex/config.toml | Codex features + context7 MCP |
.codex/hooks.json | Codex SessionStart and PreToolUse hooks |
.mcp.json | Shared MCP servers: context7, postgres, github |
.githooks/pre-commit | Memory freshness gate on commit |
.githooks/pre-push | Memory freshness gate on push |
scripts/agent_harness/ | validate_harness.py, check_memory_freshness.py, run_npx_mcp.py, session_context.py, block_dangerous_bash.py, lint_on_edit.py |
memory/PROJECT_MEMORY.md | Durable project facts (timestamped) |
memory/UPDATE_LOG.md | Timestamped event log |
docs/PHASE_STATUS.md | Active phase and test matrix |
AGENTS.md | Shared project contract for all agents |
CLAUDE.md | @AGENTS.md import + Claude-specific hook paths, commit rules, timestamp format |
What NOT to do
- Do not run with
--force unless the user has confirmed they want existing files overwritten.
- Do not install into a path that is not a git repo.
- Do not skip the validation step after install.