Skip to content
Testing
Skill

/init

Scaffold the completely thin layer into the current repository — Definition of Done, the harness rules snippet in CLAUDE.md, and an optional project-specific quality command. Use when setting up claude-harness in a new project, or when the user says "harness init", "set up the

From plugin
completely
516 skills9 agents
Install
$ npx -y skills add 23ag1/completely --skill init --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/init

Context preview

The summary Claude sees to decide when to auto-load this skill.

Scaffold the completely thin layer into the current repository — Definition of Done, the harness rules snippet in CLAUDE.md, and an optional project-specific quality command. Use when setting up claude-harness in a new project, or when the user says "harness init", "set up the

SKILL.md

init.SKILL.md
name: completely:init
description: Scaffold the completely thin layer into the current repository — Definition of Done, the harness rules snippet in CLAUDE.md, and an optional project-specific quality command. Use when setting up claude-harness in a new project, or when the user says "harness init", "set up the harness", or "wire up the quality gates here".
version: 0.1.0
user-invocable: true
argument-hint: "[--force]"

You are scaffolding the **claude-harness** project thin layer into the current repo. The heavy logic (hooks, evaluator agent) ships with the plugin/global install; this only adds the small per-project pieces. **Never overwrite an existing file without asking** (unless the user passed `--force`).

Steps

1. **Locate the repo root** (`git rev-parse --show-toplevel`, else cwd) and **detect the stack**:

  • `pyproject.toml` / `setup.cfg` → Python (commands: `ruff check`, `mypy`, `pytest`)
  • `package.json` → JS/TS (read its `scripts`; commands likely `eslint .`, `tsc --noEmit`, `vitest run` / `jest`)
  • `go.mod` → Go; `Cargo.toml` → Rust. Record the real lint/typecheck/test commands.

2. **Create `.claude/` and `.claude/harness/`** if missing.

3. **Write `.claude/DEFINITION_OF_DONE.md`.** Copy the harness template. Locate it under the installed plugin (try `${CLAUDE_PLUGIN_ROOT}/templates/DEFINITION_OF_DONE.md`, then `~/.claude/harness/core/`); if you can't find it, regenerate it from the canonical content you know (default-FAIL checklist). Fill in the detected stack's commands.

4. **Merge the harness rules into the project `CLAUDE.md`.** If `CLAUDE.md` exists, append the `CLAUDE.harness.md` snippet (between its `<!-- claude-harness -->` markers) — do not duplicate if already present. If no `CLAUDE.md`, create a minimal one with the snippet. Fill in the real project commands you detected in step 1.

5. **Project quality command (optional).** If the repo already has an aggregate check script (e.g. `scripts/check.sh`, a `Makefile` `check` target, or a `package.json` `check` script), create `.claude/harness/quality-gate.local.sh` that delegates to it — this makes the harness `quality-gate` hook reuse the project's own gate instead of guessing. Make it executable. If there is no such script, skip this (the hook's built-in stack detection handles it).

6. **Confirm hook activation.** If the plugin is installed, the gates are already active globally — say so. Otherwise tell the user to run `install.sh --project <repo>` (manual path).

7. **Report** exactly what you created/changed and what you skipped (and why). Suggest a one-line verification: `echo '{"tool_input":{"command":"rm -rf /"}}' | bash <guard-dangerous.sh>; echo exit=$?` (expect exit=2)

Guardrails

  • Idempotent: re-running must not duplicate the CLAUDE.md snippet or clobber edits.
  • Do not invent commands — read them from the project's real config.
  • This is a self-tooling task: scaffold the FULL thin layer; if something blocks it, return

`blocked` with the reason — do not silently skip a piece.

Compose with the user's own skills/rules (never override)

DETECT and LAYER — do not clobber:

  • If the repo has a `CLAUDE.md`, APPEND the harness rules between `<!-- claude-harness -->`

markers (idempotent). Keep the user's content; harness hard-invariants on top, project rules below. Never replace the file.

  • Leave the user's existing `~/.claude` skills/agents untouched; compose via `core/routing.md`,

treating user skills as first-class for their intents.

  • If a user skill already covers an intent (e.g. their own `/review`), PREFER it over the

harness default and record the choice in routing. Hierarchy, not replacement.

Discovery (new vs existing) — do this FIRST

1. **Ask what it is** — one question: what are we building / what is this repo? 2. **New vs existing:**

  • **NEW** (empty repo / no source) → scaffold from zero: CLAUDE.md, `completely.toml`, pick

stack + architecture (offer presets, recommend a default), set up quality (`cmpl quality`), reference the rules. Confirm, then write.

  • **EXISTING** → STUDY first: read CLAUDE.md/AGENTS.md, package.json/pyproject, the dir shape;

infer stack + architecture; then ask ONLY the gaps — don't re-ask what you can see. Reconcile with the existing CLAUDE.md — APPEND harness rules, never overwrite the user's content. 3. **Ask architecture** (see `core/architectures.md`). If unsure → choose the recommended for the stack and state the one-line trade-off. 4. Record in `completely.toml` (`[project][stack][architecture]`) and the CLAUDE.md snippet. One question at a time; idempotent; never interrogate or clobber.

Read more
Ships withcompletely

A quality-first harness for autonomous AI coding agents. It turns "the agent said it's done" into *"here's the proof — graded by an independent, default-FAIL checker."* Done is earned, not asserted.

Get the whole plugin

Other skills on completely.

auto
Skill

auto

Run completely AUTONOMOUSLY — loop the FULL task engine over the Beads queue, a fresh `claude -p` per task, until the queue is empty. Same complete recipe as…

check
Skill

check

Run all configured quality checks (lint, types, tests) in one pass with terse output — reports "clean" when green, and only the failing check's output when…

control
Skill

control

Run completely UNDER CONTROL — execute the SINGLE next Beads task through the FULL task engine (understand → map → plan-check → parallel subagents → TDD →…

plan
Skill

plan

Plan a phase or feature DIRECTLY into Beads — no PLAN.md, no markdown bridge. Runs GSD-style socratic discovery + decomposition + a goal-backward self-check,…

run
Skill

run

Drive the Beads queue (`bd ready`) with one engine in two autonomy modes — supervised (GSD wave subagents, human gates at phase boundaries) or unattended…