| name | harness-contribute |
| description | プロジェクト側の改善をハーネスリポジトリに自動還元する。対象ファイルを指定すると、ハーネスリポジトリに feature branch を作成し、変更を適用して PR を作成する。 |
Harness Contribute(ハーネスへの改善還元)
概要
プロジェクト側で行った改善(ルール修正、エージェント改善、スキル追加等)をハーネスリポジトリに自動で還元する。
入力: 還元したいファイルパスまたは変更内容の説明
出力: ハーネスリポジトリへの PR
前提条件
copier がインストール済みであること(pip install copier または pipx install copier)
- プロジェクトルートに
.copier-answers.yml が存在すること(copier copy で導入したプロジェクトであれば自動生成される)
いつ使うか
- 振り返り(retrospective)で「この改善は他プロジェクトでも使える」と判断したとき
- ルールやスキルを改善して、ハーネスに反映したいとき
- 新しいルールやエージェントを作って、ハーネスに追加したいとき
プロセス
digraph harness_contribute {
rankdir=TB;
input [label="還元したい\n変更の指定", shape=ellipse];
identify [label="ハーネスリポジトリの\n特定・クローン", shape=box, style=filled, fillcolor="#cce5ff"];
map [label="プロジェクト側ファイル→\nハーネス側ファイルのマッピング", shape=box, style=filled, fillcolor="#ccccff"];
classify [label="汎用的改善か\nプロジェクト固有かを判断", shape=diamond];
branch [label="feature branch 作成\n+ 変更適用", shape=box, style=filled, fillcolor="#ccffcc"];
test [label="copier update --vcs-ref\nでテスト適用", shape=box, style=filled, fillcolor="#ffffcc"];
pr [label="PR 作成", shape=box, style=filled, fillcolor="#ccffcc"];
done [label="完了", shape=ellipse];
skip [label="還元不要と判断\n(プロジェクト固有)", shape=ellipse];
input -> identify;
identify -> map;
map -> classify;
classify -> branch [label="汎用的"];
classify -> skip [label="固有"];
branch -> test;
test -> pr;
pr -> done;
}
1. ハーネスリポジトリの特定
.copier-answers.yml からハーネスリポジトリの情報を読み取る。
_src_path: gh:sizukutamago/claude-code-harness
ローカルにクローンがあるか確認する。なければユーザーにパスを聞く。
2. ファイルマッピング
プロジェクト側のファイルパスをハーネスリポジトリ内のパスにマッピングする。
| プロジェクト側 | ハーネスリポジトリ側 |
|---|
.claude/agents/xxx.md | .claude/agents/xxx.md |
.claude/skills/xxx/SKILL.md | .claude/skills/xxx/SKILL.md |
.claude/rules/xxx.md | .claude/rules/xxx.md |
.claude/hooks/xxx | .claude/hooks/xxx |
パスが一致するものはそのまま。プロジェクト固有のファイル(ハーネスに存在しないもの)は新規追加として扱う。
3. 汎用性の判断
変更内容を確認し、汎用的改善かプロジェクト固有かを判断する。
汎用的改善(還元すべき):
- バグ修正(テンプレート起因の問題)
- ルールの改善(より良い表現、抜けの補完)
- エージェントの動作改善(プロンプト改善、tools 修正)
- 新しいルールやスキルで複数プロジェクトに有効なもの
プロジェクト固有(還元しない):
- プロジェクト固有の命名規則
- 特定フレームワーク固有のルール
- プロジェクト固有のワークフロー変更
判断に迷ったら人間パートナーに確認する。
4. feature branch 作成 + 変更適用
ハーネスリポジトリで作業する。
- ハーネスリポジトリに移動
- main から feature branch を作成(
improve/<変更の要約>)
- 対応するファイルに変更を適用
- 条件付きファイル(
.jinja)の場合は Jinja テンプレート構文を維持する
注意: プロジェクト側のファイルをそのままコピーするのではなく、ハーネスのテンプレートとして適切な形に変換する。プロジェクト固有の値がハードコードされていないか確認する。
5. テスト適用
元のプロジェクトに戻り、feature branch の変更をテスト適用する。
cd /path/to/project
copier update --vcs-ref improve/<変更の要約>
テスト適用後、変更が意図通りか確認する。問題があればハーネスリポジトリ側を修正。
6. PR 作成
テスト適用が OK なら、ハーネスリポジトリで PR を作成する。
PR に含める情報:
- 何を変えたか
- なぜ変えたか(どのプロジェクトで発見した改善か)
- テスト適用の結果
検証チェックリスト
危険信号
委譲指示
このスキルは委譲しない。 メインセッションが直接実行する。
理由:
- ハーネスリポジトリとプロジェクトリポジトリの2つを行き来する
- 汎用性の判断に人間の確認が必要
- git 操作(branch 作成、PR 作成)はメインセッションが行う
Integration
前提スキル:
- なし(独立して使用可能。retrospective の後に使うことが多い)
このスキルを使うスキル:
- retrospective — 振り返りで発見した改善の還元時に参照