Open Reach Tech Inc.

8 文かけて述べた規則は、毎回 8 文ぶんの費用がかかる

Jiro Yamamotoのプロフィール写真
Jiro YamamotoBackend Developer

「Hora Kit の設計」シリーズの 11 本目。kit/ は毎回読まれ、docs/ は読まれない。8 文かけて述べた規則は、毎回 8 文ぶんの費用がかかります。Hora Kit を使わない方でも、Claude Code の skill を書いている人なら誰にでも関係する、skill の書き方の話です。

Banner of 8 文かけて述べた規則は、毎回 8 文ぶんの費用がかかる

1. はじめに

この記事は、弊社(Open Reach Tech)が OSS にした AI 開発フレームワーク『Hora Kit』の設計を解説するシリーズの 11 本目です。メイン記事はこちらです。

本当の意味での自動開発を実現するためのAI開発フレームワーク『Hora Kit』をOSSにしました

用語の確認。 Hora Kit で打つコマンドは /hora の 1 つだけです。/hora が状況に応じて /hora-spec(仕様書を書く)、/hora-setup(実装リポジトリを作る)、/hora-plan(版を確定し、機能一覧と契約を書く)、/hora-build(1 機能を 18 の関所に通す)、/hora-accept(検収する)を順に呼びます。/hora-hotfix だけは /hora が呼ばず、人が直接打ちます。docs はこのうち /hora-spec を「決める側」、残りを「作る側」と呼んでいて、この記事でもその呼び方を使います。

シリーズの中でこの記事だけは、Hora Kit を使わない方にも読んでほしいと思っています。Claude Code の skill を書いている人なら誰にでも関係する話だからです。

自分の skill に「なぜこの規則があるのか」を丁寧に書いている方は、少し耳の痛い話になるかもしれません。

2. kit/ は毎回読まれ、docs/ は読まれない

Hora Kit のリポジトリには、文章が 2 種類あります。

kit/ は毎回読まれ、docs/ は読まれない

kit/docs/
誰が読むかエージェント。実行時に、毎回人。問いを持って、自分の意思で
費用文の数 × 実行回数0
何を書くか規則論拠、退けた代案、防いでいる失敗

docs の writing-style.ja.md は、この一文で始まります。hora の各パッケージが配る全ファイルは、エージェントが動く前に実行時に読まれる。8 文かけて述べた規則は、毎回 8 文ぶんの費用がかかる、と。

skill を書くとき、「なぜこの規則があるのか」を skill の中に書きたくなります。そのほうが親切に見えますし、1 か所で読めます。ところがそれは、エージェントが実行するたびに、規則 1 つにつき数段落を読み込ませることでもあります。しかも「なぜ」の部分は、規則を正しく適用するために必要ないことがほとんどです。

だから Hora Kit では分けています。「なぜ」は docs へ、「何を」は kit へ、です。

3. kit/ 側の 3 つの規則

1 つ目は、規則を述べ、失敗を物語らない、です。

✅ Match on what a description says, never on what a name sounds like.
❌ Match on what a description says, never on what a name sounds like. Two
   skills whose names differ by one word can serve different surfaces
   entirely, and a name that stops matching does not announce itself — the
   gate simply runs without its convention and reports a pass, which is the
   one kind of failure a gate must not have.

規則のあとに「破ったらどうなるか」を 2 段落続けても、規則は 1 つのままです。理由は、それがないと規則を正しく適用できない場合にだけ、1 節で残します。

2 つ目は、一度だけ書き、他は指す、です。規則ごとに所有ファイルを 1 つ決め、他のファイルは 1 行の参照だけ置きます。これは Hora Kit がスキルパッケージに対して既に採っている考え方(写しは黙って古くなる)と同じで、自分たちの散文にも同じく適用しています。

3 つ目は、1 文 1 主張です。2 つめの主張を繋ぐ em ダッシュは、そこで文を切ります。40 語が上限の目安です。

4. 行レベルでの意味

太字命令・禁止そのものだけ。1 節あたり 1〜2 個
em ダッシュ1 文に 1 個まで。2 個目は文の切れ目
見出し6 語以内の名詞句。他ファイルが引用している見出しは、引用側を直さずに変えない
相互参照規則 1 つにつき 1 個、文末に置く
否定成り立つことを書く。1 文に否定 2 つを入れない
箴言1 文書に 1 つまで
description:2 文・40 語。何をするか、いつ動くか

この中で特に重要なのが description: の行です。Hora Kit はスキルを名前ではなく description でマッチするので、ここが「何をするか、いつ動くか」を 2 文で言えていないと、そのスキルは呼ばれません。

5. 圧縮しないもの

完全一致で読まれるため、表現を良くすると壊れるものがあります。

  • checkpoints.md の 18 チェックポイント見出し。/hora-plan が逐語コピーします
  • _plan.md の節名: ## Features, ## Features — adopted as built, ## Not accepted, ## Withdrawn, ## Acceptance
  • 判定の語法: reach: full, reach: scoped, passed over <n> of <m> features; <k> not accepted, version-criteria:, not-accepted:

これらは文章ではなく識別子です。「文章を整える」つもりで触ると、他のファイルが見つけられなくなります。

6. docs/ 側の文体は、逆向き

docs 側には document-style.ja.md という別の文体規則があります。そこには、2 つを隔てているのは費用だ、と書いてあります。skill ファイルの規則は実行のたびに支払われるので、あちらの 3 つの規則はすべて圧縮についてのものになる。一方 docs は実行時に読まれないので、議論に費用がかからない、と。

だから docs では、論拠を述べること、退けた代案を示すこと、その規則が防いでいる失敗を名指すことが、すべて場所に値します。予算は長さではなく、見つけやすさです。値しないのは、読者が 4 つの節から組み立て直さなければならない主張だけです。

太字の使い方も違います。docs では「命令、禁止、あるいは流し読みする読者にも持ち帰らせたい唯一の事実」に太字を使い、段落の主題は太字にしません。それは見出しの仕事だからです。

ついでに書いておくと、docs は日本語版と英語版の対で書かれていますが、日本語版は翻訳ではありません。片方を直したら同じコミットでもう片方も直す、という規則で、両方が原典です。

7. Claude Code の skill を書く人へ

Hora Kit を使わなくても、この分け方は使えると弊社は思っています。弊社が勧めるチェックは 3 つです。

この文は、規則を正しく適用するために必要か。必要ないなら docs へ。この規則は、他の skill にも書いていないか。書いていたら片方を参照に変える。description: は 2 文で「何をするか、いつ動くか」を言えているか。言えていなければ呼ばれない。

skill は毎回読まれます。1 文減らすと、その skill が動くたびに 1 文ぶん安くなり、しかも規則の適用精度は下がりません。skill が長くなって困っている方の参考になれば幸いです。

原典はこちらです。 https://github.com/openreachtech/hora-core/blob/main/docs/writing-style.ja.mdhttps://github.com/openreachtech/hora-core/blob/main/docs/document-style.ja.md

送信完了!

お問い合わせいただきありがとうございます。 担当者より24〜72時間以内にご連絡いたします。