From harness-engineering
Bootstrap a repository with Harness Engineering tooling: detect stack (TS/Go/Proto/mixed), install config templates (biome.json, .golangci.yml, .go-arch-lint.yml, buf.yaml, lefthook.yml), copy a pointer-style CLAUDE.md, and wire up .claude/review-profile.yaml. Use this when the user says 'set up harness', 'bootstrap the repo', 'add harness engineering', or runs /harness:init. Do NOT use for modifying existing configs — that's what /harness:check is for.
npx claudepluginhub toru-oizumi/claude-harness-engineering --plugin harness-engineeringThis skill uses the workspace's default tool permissions.
Bootstrap a repository with Harness Engineering guardrails. This is the canonical "get started" workflow. Run it once per repo.
Generates design tokens/docs from CSS/Tailwind/styled-components codebases, audits visual consistency across 10 dimensions, detects AI slop in UI.
Records polished WebM UI demo videos of web apps using Playwright with cursor overlay, natural pacing, and three-phase scripting. Activates for demo, walkthrough, screen recording, or tutorial requests.
Delivers idiomatic Kotlin patterns for null safety, immutability, sealed classes, coroutines, Flows, extensions, DSL builders, and Gradle DSL. Use when writing, reviewing, refactoring, or designing Kotlin code.
Bootstrap a repository with Harness Engineering guardrails. This is the canonical "get started" workflow. Run it once per repo.
/harness:init/harness:add-proto etc. instead)/harness:check)Check the repo for these marker files and record which are present:
| Marker | Stack |
|---|---|
tsconfig.json or package.json | TypeScript |
go.mod | Go |
*.proto files (anywhere) or buf.yaml | Proto |
A repo may be any combination of these. Report the detected stack to the user before proceeding.
Copy ${CLAUDE_PLUGIN_ROOT}/templates/CLAUDE.md.template to the repo root as CLAUDE.md.
IMPORTANT constraints:
rules/general/*.md and skill namesCLAUDE.md already exists, ASK the user before overwriting. Offer to diff the two.Per detected stack, copy these templates:
TypeScript:
templates/biome.json → <repo>/biome.jsontemplates/review-profile.typescript.yaml → <repo>/.claude/review-profile.yaml (or merge if exists)Go:
templates/.go-arch-lint.clean-arch.yml → <repo>/.go-arch-lint.yml.golangci.yml matching the user's preference (ask: strict / moderate / lenient)templates/review-profile.go.yaml → <repo>/.claude/review-profile.yamlProto:
templates/buf.yaml → <repo>/buf.yaml (if none exists)templates/review-profile.proto.yaml → <repo>/.claude/review-profile.yamlCopy templates/lefthook.yml to the repo root. Run lefthook install if the user has lefthook installed; otherwise instruct them to brew install lefthook first.
Suggest running /harness:check to verify everything is wired up correctly.
pre-config-protect hook will start blocking edits to biome.json, .golangci.yml, etc. immediately after they're created. If the user needs to tune these, they must edit manually from outside Claude Code..claude/review-profile.yaml per service directory is supported but advanced — default to a single root profile for v0.1.ts-stack, go-stack, proto-stack — stack-specific detailsconfig-protect — why linter configs are write-protectededit-lint-feedback-loop — how the hook infrastructure worksSee gotchas.md in this directory.