From harness-loom
Use when `/harness-init` is invoked to install the target-side runtime foundation into the current working directory. Scaffolds `.harness/loom/` canonical staging plus `.harness/cycle/` runtime state, copies target-local `hook.sh` and `sync.ts`, and stops there. Platform trees are derived later by `node .harness/loom/sync.ts --provider <list>`.
How this skill is triggered — by the user, by Claude, or both
Slash command
/harness-loom:harness-initThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
`harness-init` is the **factory-side installer** for the target runtime. Its job is to seed the target project's `.harness/` tree in the correct shape and then stop. After install, the target project's LLM should read only target-local artifacts under `.harness/loom/`, `.harness/cycle/`, and later derived platform trees.
references/runtime/events.template.mdreferences/runtime/harness-context/SKILL.template.mdreferences/runtime/harness-finalizer.template.mdreferences/runtime/harness-orchestrate/SKILL.template.mdreferences/runtime/harness-orchestrate/references/dispatch-envelope.mdreferences/runtime/harness-orchestrate/references/events-md-format.mdreferences/runtime/harness-orchestrate/references/state-machine.mdreferences/runtime/harness-orchestrate/references/state-md-schema.mdreferences/runtime/harness-planner.template.mdreferences/runtime/harness-planning/SKILL.template.mdreferences/runtime/registry.mdreferences/runtime/state.template.mdscripts/hook.shscripts/install.tsscripts/sync.tsharness-init is the factory-side installer for the target runtime. Its job is to seed the target project's .harness/ tree in the correct shape and then stop. After install, the target project's LLM should read only target-local artifacts under .harness/loom/, .harness/cycle/, and later derived platform trees.
That boundary is strict:
/harness-pair-dev authors project-specific pairs laternode .harness/loom/sync.ts --provider <list> derives platform trees later/harness-init
The installer always targets the current working directory. Run /harness-init from the project root that should receive .harness/.
Run the installer script once:
node ${CLAUDE_SKILL_DIR}/scripts/install.ts
Then summarize the script result for the user. Trust the script's own output rather than improvising extra shell inspection.
Install seeds two namespaces:
.harness/loom/ — canonical staging for target-side skills, agents, hook.sh, and sync.ts.harness/cycle/ — runtime scaffold for state.md, events.md, epics/, and finalizer/tasks/On a fresh install, the target receives at least:
.harness/loom/skills/{harness-orchestrate,harness-planning,harness-context}/.harness/loom/agents/{harness-planner,harness-finalizer}.md — harness-finalizer.md is a generic skeleton; the project fills in the concrete cycle-end work (documentation refresh, goal-coverage inspection, release prep, etc.) before running the first real cycle.harness/loom/{hook.sh,sync.ts}.harness/cycle/{state.md,events.md,epics/,finalizer/tasks/}Install does not create .claude/, .codex/, or .gemini/. Those are derived later from .harness/loom/.
.harness/loom/ and .harness/cycle/..harness/loom/ is wipe-on-rerun and must be re-authored afterward..harness/cycle/ is also reseeded. Finished-cycle preservation belongs to the orchestrator's goal-different archive path, not to harness-init./harness-auto-setup. harness-init does not snapshot live harness state, parse old registry intent, or preserve customized finalizer work.If the script reports that pair-authored content inside .harness/loom/ was removed during a rerun, surface that clearly to the user so they can re-author those pairs afterward.
Verification is script-owned. Read the install summary and report:
If verification fails, report the failure and stop.
After install, the next actions are:
node .harness/loom/sync.ts --provider claude
node .harness/loom/sync.ts --provider claude,codex,gemini
/harness-pair-dev --add ...harness-init itself should not run sync, author pairs, or mutate derived platform trees.
.harness/loom/ and .harness/cycle/ in the target project..harness/cycle/goal.md or .harness/cycle/user-request-snapshot.md; direct runtime goal entry owns cycle-local request snapshots.hook.sh and sync.ts into .harness/loom/..claude/, .codex/, or .gemini/..harness/loom/ and .harness/cycle/.node .harness/loom/sync.ts --provider <list>..template.md outputs as target-side runtime artifacts, not as factory-side working files..claude/ the source-of-truth runtime. Canonical runtime staging is .harness/loom/.plugins/harness-loom/.....claude/, .codex/, or .gemini/./harness-init.install.ts.${CLAUDE_SKILL_DIR}/scripts/install.ts — canonical installer implementationreferences/runtime/ — target runtime templates seeded into .harness/loom/../harness-pair-dev/SKILL.md — pair authoring after installnpx claudepluginhub kinggyusuh/harness-loom --plugin harness-loomGuides creation, editing, and verification of skills for AI coding agents using test-driven development with subagent scenarios. Use when authoring or debugging skills.