create-harness-spec について
create-harness-specは、hedera-harnessの機能レシピを作成するためのエージェントスキルで、Hederaアプリ開発者を対象としています。要件の整理からschemaVersion 3のファイル作成、整合性チェックまでを案内します。
主な機能
- 01hedera-harness v3向けレシピの作成
- 02要件整理による機能目標の確認
- 03PRD、仕様、検証ファイルの作成
- 04レシピ読み込みとファイル整合性の確認
活用シーン
- 01新しいHederaアプリのレシピ作成
- 02既存アプリへのハーネス導入
- 03旧形式のレシピをv3へ書き換え
- 04実行前のレシピ検証
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ hedera-dev/ hedera-skills --skill create-harness-specインストール後、Claude Code で/create-harness-specを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
evals/evals.jsonspec.jsonreferences/grilling.md詳細
Harness Spec の作成
Hedera の機能アイデアを掘り下げて、hedera-harness 用の完全なレシピに仕上げます。
まず、共通の用語を確認します。../harness-spec-anatomy/SKILL.md と
GLOSSARY.md を読んでください。記載された用語をそのまま使用します。
対象は hedera-harness schemaVersion 3 です。
これらのスキルは作成用です。レシピにスキルは列挙しません。hedera-skills のプロダクトプラグインは実行ごとに検出され、ジェネレーターが選択します。実行はブラインドにします。PRD にはユーザージャーニーと成果を記載し、番号付きのアサーションはevaluate チェックリストに記載します。
Claude Code(マーケットプレイスプラグイン)および SKILL.md を読み込む Cursor/その他のエージェントで動作します。そのスキルがインストールされている場合は /grilling を優先してください。そうでなければ、インラインプロトコルを使用します。Claude Code では通常、インラインの方法を使用します。
Step 1: 対象を特定する
レシピは、スキャフォールド済みアプリ内の .harness/ に配置します。それ以外の構成はありません。
| 状況 | 対応 |
|---|---|
Cwd がスキャフォールド済みアプリ(Scaffold HBAR または hedera-harness init) | そのアプリの .harness/ に作成します |
Cwd が .harness/ のないアプリ | hedera-harness init で既存のアプリにハーネスを導入します |
| アプリがまだない | hedera-harness init <dir>(必要に応じて --template <name> を指定) |
Cwd にすでに .harness/spec.yaml がある | schemaVersion を確認します。存在しない場合、1 または 2 の場合は、v3 に書き換えます(または init で再生成して編集内容を再適用します)。hedera-harness migrate は廃止されています。 |
v1/v2 のレシピを読み込み可能なものとして扱わないでください。contract: を eval: に置き換え、skills: を削除し、schemaVersion: 3 を設定します。
レシピファイル内のパスは、プロジェクトルートからの相対パスです。
Step 2: 掘り下げる
references/grilling.md に従います。利用可能な場合は /grilling を優先し、そうでなければ、そこに記載されたインラインプロトコルを使用します。
ユーザーが共通認識を確認するまでは、ファイルを書き込まないでください。
Step 3: レシピを出力する
同梱のスケルトンをコピーする方法を優先してください。これは常に最新です。
cp -r "$(npm root -g)/hedera-harness/skeletons/project-harness/." .harness/
次に、以下を行います。
- 掘り下げた内容をもとに
.harness/prd.md(または各インクリメントにつき1ファイルを.harness/prds/の下に)作成します。プロダクト向けの内容のみを記載し、実行はブラインドにします。 .harness/spec.yamlを埋めます。必須項目はschemaVersion: 3、name、description、およびinstallという名前のコマンドを文字どおり含むbaselineです。デフォルト項目はすべてコメントアウトしたままにします。 4つのキーだけでレシピは完成です。ユーザーが Cursor を希望しない限り、agent:は省略します(デフォルトは Claude です)。- 機能の成果物に基づいて
.harness/validators/static.jsonと.harness/validators/yarn.jsonを作成します。template.jsonはアサーションの対象にしないでください。スキャフォールディング時に create-scaffold-hbar が削除します。 skills:リストは追加しないでください。ジェネレーターがプロダクトスキルを選べるように、関連する Hedera サービスを PRD に記載します。- SMOKE / EVALUATE / CHAIN は、掘り下げ時にユーザーが希望した場合に限り追加します。
harness-spec-anatomy→ references/stage-strategy.md を参照してください。prd:がリストで、EVALUATE が有効な場合は、それに対応するeval:リストを作成します。 - SMOKE ホストパッケージを有効にした場合はインストールします。プロジェクトルートにインストールし、ワークスペース内だけにインストールしないでください。Doctor は
hedera-harnessと同じ場所からplaywrightをインポートします。また、Yarn のnmHoistingLimits: workspacesはpackages/nextjsのインストールを隠します。- SMOKE →
yarn add -D playwright(または npm/pnpm の同等コマンド) ルートのpackage.jsonにすでに記載されている場合は追加を省略します。doctorの失敗後の対応ではなく、出力の一環として実施してください。 CHAIN にはプロジェクトへのインストールは不要です。@hiero-ledger/sdkはhedera-harnessに同梱されています。オペレーターの環境変数のみ、ホスト側で設定します。
- SMOKE →
スケルトンが利用できない場合に限り、本体を手作業で再構成します。
harness-spec-anatomy → references/spec-files.md を参照してください。
ステップ 4:完了条件
順に 2 つのチェックを行います。
# 1. Does the recipe load? (authoritative — schema, defaults, baseline, network)
hedera-harness doctor .harness/spec.yaml --recipe-only
# 2. Is it coherent across files? (traceability, stage pairing, blind rule)
bash <path-to>/harness-spec-anatomy/scripts/check-spec.sh <project-root>
check-spec.sh はそれ自体で doctor を実行するため、ハーネス CLI がインストールされていれば、単独で実行するだけで十分です。スキーマが検証されていないと報告された場合は、部分的な結果です。ハーネスをインストールまたはアップグレードして、再実行してください。
check-spec.sh がエラーなく終了すれば完了です。
次に引き継ぎます。
# Prefer /review-harness-spec next, then:
hedera-harness run .harness/spec.yaml --max-attempts 3
# or: yarn harness:run
インストール、エージェント認証、ステージホストの前提条件については、ハーネスの README を参照してください。hedera-harness doctor(--recipe-only なし)でそれらをチェックできます。CLI の説明は、これらの次のコマンドより先には広げないでください。
追加リソース
- references/grilling.md
- 関連項目:
/review-harness-spec - 用語集:
/harness-spec-anatomy - 上流ドキュメント:docs/authoring-a-recipe.md