harness-init
設計思想
harness-init はターゲットランタイム向けの ファクトリーサイドインストーラ です。ターゲットプロジェクトの .harness/ ツリーを正しい構造でシードし、その後停止します。インストール後、ターゲットプロジェクトのLLMは .harness/loom/、.harness/cycle/、および後続で派生するプラットフォームツリー配下のターゲットローカル成果物のみを読み取る必要があります。
この境界は厳格です:
- インストールはランタイム基盤をシードします
/harness-pair-devは後でプロジェクト固有のペアを作成しますnode .harness/loom/sync.ts --provider <list>は後でプラットフォームツリーを派生させます
方法論
1. 引数
/harness-init [<target>] [--force]
<target>— ターゲットプロジェクトのルートパス。省略した場合はprocess.cwd()がターゲットになります。--force—.harness/loom/と.harness/cycle/の両方を置き換えます。
--force なしの場合、インストールは .harness/loom/ をリフレッシュし、既存の .harness/cycle/ 監査証跡を保持します。
2. 実行
インストーラスクリプトを1回実行します:
node ${CLAUDE_SKILL_DIR}/scripts/install.ts $ARGUMENTS
その後、スクリプトの結果をユーザーに要約します。追加のシェル調査を即興で行わず、スクリプト自身の出力を信頼してください。
3. インストールが保証するもの
インストールは2つの名前空間をシードします:
.harness/loom/— ターゲット側スキル、エージェント、hook.sh、sync.tsのための正規のステージング領域.harness/cycle/—state.md、events.md、epics/のためのランタイム状態
新規インストールでは、ターゲットは少なくとも以下を受け取ります:
.harness/loom/skills/{harness-orchestrate,harness-planning,harness-context,harness-doc-keeper}/.harness/loom/agents/{harness-planner,harness-doc-keeper-producer}.md.harness/loom/{hook.sh,sync.ts}.harness/cycle/{state.md,events.md,epics/}
インストールは .claude/、.codex/、または .gemini/ を 作成しません。これらは後で .harness/loom/ から派生します。
4. 再実行時の動作
- デフォルトの再実行:
.harness/loom/をリフレッシュ、.harness/cycle/を保持 --force:.harness/loom/と.harness/cycle/の両方をリフレッシュ
スクリプトが、デフォルトのリフレッシュ中に .harness/loom/ 内のペア作成済みコンテンツが削除されたことを報告した場合、そのことをユーザーに明確に伝え、後でそれらのペアを再作成できるようにします。
5. 検証
検証はスクリプトが所有します。インストールの要約を読み、以下を報告します:
- インストールが成功したかどうか
- プレースホルダの残骸やパスの失敗が残っていないかどうか
- リフレッシュ中にペア作成済みのルームコンテンツが消去されたかどうか
- 次に取るべき手順は何か
検証が失敗した場合は、障害を報告して停止します。
6. インストール後の境界
インストール後、次のアクションは以下の通りです:
- ターゲットローカルランタイムから1つ以上のプラットフォームツリーを派生させる:
node .harness/loom/sync.ts --provider claude
node .harness/loom/sync.ts --provider claude,codex,gemini
/harness-pair-dev --add ...でプロジェクト固有のペアを作成する
harness-init 自体は同期の実行、ペアの作成、派生プラットフォームツリーの変更を行うべきではありません。
評価基準
- インストールはターゲットプロジェクトに
.harness/loom/と.harness/cycle/を書き込みます。 - インストールはターゲットローカルの
hook.shとsync.tsを.harness/loom/にコピーします。 - インストールは
.claude/、.codex/、または.gemini/を作成しません。 - デフォルトの再実行は
.harness/cycle/を保持し、.harness/loom/をリフレッシュします。 --forceは.harness/loom/と.harness/cycle/の両方をリフレッシュします。- 検証はアドホックなシェル調査ではなく、インストール要約に基づいて記述されます。
- インストール後のワークフローは、ターゲットローカルの
node .harness/loom/sync.ts --provider <list>を指します。 - スキルは一貫して
.template.mdの出力をファクトリー側の作業ファイルではなく、ターゲット側のランタイム成果物として扱います。
禁止事項
- インストールが
.claude/を信頼できる情報源ランタイムにするように説明すること。正規のランタイムステージングは.harness/loom/です。 - ターゲットランタイムに
plugins/harness-loom/...などのファクトリーパスを読み取るように指示すること。 - インストールで
.claude/、.codex/、または.gemini/を作成または変更すること。 /harness-initにペア作成やプラットフォーム派生を混在させること。- このスキルを
install.tsの行単位の複製にすること。
参照
${CLAUDE_SKILL_DIR}/scripts/install.ts— 正規のインストーラ実装references/runtime/—.harness/loom/にシードされるターゲットランタイムテンプレート../harness-pair-dev/SKILL.md— インストール後のペア作成