Communityコーディング&開発github.com

KingGyuSuh/harness-loom

レビュー済みワークハーネスを任意のリポジトリにインストールし、育てるためのスキルです。Claude Code、Codex CLI、Gemini CLI向けの3つのユーザー呼び出し可能スキルを同梱しています。

harness-loom とは?

このスキルは、任意のリポジトリにレビュー済みのワークハーネス(harness)をインストールし、育てるためのファクトリーサイドインストーラです。インストール後、ターゲットプロジェクトのLLMは`.harness/loom/`、`.harness/cycle/`、および後続で派生するプラットフォームツリー配下の成果物のみを読み取るように設計されています。`harness-init`は`.claude/`、`.codex/`、`.gemini/` は作成せず、あくまで`.harness/loom/` と`.harness/cycle/` の2つの名前空間をシードします。インストール後は、`node .harness/loom/sync.ts --provider <list>` でプラットフォームツリーを派生させ、`/harness-pair-dev` でプロジェクト固有のペアを編集するという明確な責務分離を採用しています。

対応✓Claude Code✓Codex CLI~Cursor✓Gemini CLI
npx skills add KingGyuSuh/harness-loom

Installed? Explore more コーディング&開発 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

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. ターゲットローカルランタイムから1つ以上のプラットフォームツリーを派生させる:
node .harness/loom/sync.ts --provider claude
node .harness/loom/sync.ts --provider claude,codex,gemini
  1. /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 — インストール後のペア作成

関連スキル