@chrono-meta/fh-gate 2.7.0 → 2.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/marketplace.json +2 -2
- package/AGENTS.md +4 -0
- package/CLAUDE.md +122 -171
- package/README.ja.md +131 -35
- package/README.ko.md +121 -32
- package/README.md +110 -30
- package/README.zh.md +113 -28
- package/docs/ETHOS.md +10 -3
- package/knowledge/shared/dialogue/ai_dialogue_playbook.md +131 -0
- package/knowledge/shared/harness-core/claude_md_gate_details.md +90 -0
- package/knowledge/shared/harness-core/dispatch_conditional_prohibition.md +75 -0
- package/knowledge/shared/harness-core/fh_three_layer_canon.md +77 -3
- package/knowledge/shared/harness-core/field_verdict_crossfamily_gate.md +73 -0
- package/knowledge/shared/harness-core/ship_readiness_gate.md +1 -1
- package/knowledge/shared/learnings/subagent_invocations_log.yaml +106 -0
- package/knowledge/shared/rules/multi_session_close_protocol.md +7 -3
- package/package.json +4 -2
- package/plugins/fh-commons/.claude-plugin/plugin.json +1 -1
- package/plugins/fh-meta/.claude-plugin/plugin.json +1 -1
- package/plugins/fh-meta/CHANGELOG.md +46 -0
- package/plugins/fh-meta/skills/cross-ecosystem-synergy-detection/SKILL.md +37 -0
- package/scripts/branch_claim.sh +3 -1
- package/scripts/listing_watch.sh +187 -0
- package/scripts/selfcheck.sh +15 -0
- package/scripts/test_listing_watch_lanes.sh +162 -0
- package/scripts/test_wizard_snippet_merge_lanes.sh +40 -0
- package/templates/settings.PriorArt.snippet.json +41 -12
package/README.ja.md
CHANGED
|
@@ -18,16 +18,20 @@
|
|
|
18
18
|
</p>
|
|
19
19
|
|
|
20
20
|
<p align="center">
|
|
21
|
-
<b
|
|
21
|
+
<b>品質ゲートを内蔵したメタハーネスです。</b>
|
|
22
22
|
</p>
|
|
23
23
|
|
|
24
24
|
<p align="center">
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
<b
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
25
|
+
プロジェクト、スキル、ハーネス — 作ること、検証すること、速くすること。ここで頼んでください。<br>
|
|
26
|
+
ただ結果を手渡したりはしません。まず、<i>違うかたちで</i>失敗する検査をいくつも通します。<br>
|
|
27
|
+
<b>そして同じ依頼が繰り返し戻ってきたら、それを代わりにやるハーネスを作って渡します。</b>
|
|
28
|
+
</p>
|
|
29
|
+
|
|
30
|
+
<p align="center">
|
|
31
|
+
すでに Claude Code へ同じことを繰り返し伝えているはずです — 走らせる検査、守るべきルール、
|
|
32
|
+
変更が満たすべき形。再利用できるようになるのはまさにその部分で、あえて汎用の形のままにしてあるので、
|
|
33
|
+
使ううちにあなたの事例へ合わせて鍛えられます。<br>
|
|
34
|
+
<sub>大きくなるのは試行の回数です: 試行錯誤があなたから離れ、並列で回ります。</sub>
|
|
31
35
|
</p>
|
|
32
36
|
|
|
33
37
|
---
|
|
@@ -41,24 +45,42 @@ git clone https://github.com/chrono-meta/forge-harness.git ~/projects/forge-harn
|
|
|
41
45
|
cd ~/projects/forge-harness && claude
|
|
42
46
|
```
|
|
43
47
|
|
|
44
|
-
**そして
|
|
45
|
-
|
|
46
|
-
|
|
48
|
+
**そして `こんにちは` と入力してください** — 使い慣れた言語の挨拶なら何でも構いません(`hi`,
|
|
49
|
+
`안녕`, `你好`, `hola`, `bonjour`)。**どの言語で挨拶してもメニューは開き**、その言語で返そうと
|
|
50
|
+
します。番号付きのメニューが出て、そこからはツールが案内します。入口を選んでいくつか答えれば、
|
|
51
|
+
インストールウィザードまで代わりに実行します。
|
|
52
|
+
|
|
53
|
+
<sub>🟥 <b>いまの最後の部分について正直に</b>: 言語を合わせることは散文のルールであって、その背後に
|
|
54
|
+
機械的なものは何もなく、いつも守られるわけではありません。2026-08-21 にフロアティアでブラインド計測
|
|
55
|
+
したところ、<b>あなたがいま作ったのと同じ新しいクローン</b>では、中国語も韓国語も、ドアのラベルまで
|
|
56
|
+
含めてまるごとその言語で返ってきました。一方、既定の言語がピン留めされている開発者本人のマシンでは、
|
|
57
|
+
中国語は<b>5回に1回</b>しか当たりませんでした — この注記が存在する理由はそれです。まだ揺れているのは
|
|
58
|
+
メニューが出るかどうかで、ある挨拶のかたちではメニューが出ませんでした。違う言語で返ってきたときも、
|
|
59
|
+
メニューが飛ばされたときも、そう言ってください — すぐ切り替えます。この残余はならして隠さず
|
|
60
|
+
<code>CLAUDE.md</code> §Voice/Tone に書いてあります。</sub>
|
|
61
|
+
|
|
62
|
+
この線から下は必要になったときに見る参考資料であり、始める前の宿題ではありません。
|
|
47
63
|
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
64
|
+
- **増幅するもの** — 試行の回数です。試行錯誤があなたから離れ、並列で回ります。
|
|
65
|
+
|
|
66
|
+
- **増幅しないもの** — モデルの天井です。ハーネスはモデルを自分の天井まで引き上げるだけで、
|
|
67
|
+
その先へ押し上げることはできません。
|
|
68
|
+
|
|
69
|
+
- **確かめ方** — 自分の評価を公開します。**自分が何であると主張しているか**を5つの名前で挙げておき
|
|
70
|
+
(ハーネスクラスター · プロジェクトインキュベーター · ガバナンスゲート · フロンティア → 組織への
|
|
71
|
+
伝播 · 増幅器)、その一つひとつを
|
|
72
|
+
[リリース](https://github.com/chrono-meta/forge-harness/releases)ごとに正直に採点します。緑でない欄は、
|
|
73
|
+
まだ足りていない実際の実行が何かを名前で述べます。
|
|
74
|
+
<sub>5つそれぞれは、この下の «5つの正体» の節で詳しく書いています。</sub>
|
|
53
75
|
|
|
54
76
|
---
|
|
55
77
|
|
|
56
78
|
<p align="center">
|
|
57
|
-
<img src="docs/pillars.svg" alt="
|
|
79
|
+
<img src="docs/pillars.svg" alt="HARNESS - FORGE - ACCELERATE - COMPOUND" width="680">
|
|
58
80
|
</p>
|
|
59
81
|
|
|
60
82
|
<p align="center">
|
|
61
|
-
<b>品質が梃子であり、速度はその結果です。</b
|
|
83
|
+
<b>品質が梃子であり、速度はその結果です。</b><br>
|
|
62
84
|
<sub>役に立ったら ⭐ が他の人の発見につながります。</sub>
|
|
63
85
|
</p>
|
|
64
86
|
|
|
@@ -121,7 +143,9 @@ cd ~/projects/forge-harness
|
|
|
121
143
|
claude
|
|
122
144
|
```
|
|
123
145
|
|
|
124
|
-
> ✅
|
|
146
|
+
> ✅ そのあと**挨拶を打ってください** — `こんにちは` · `hi` · `안녕` · `你好`、使い慣れた言語で
|
|
147
|
+
> 構いません。その言語で返そうとします(上の注記を参照 — たいていは合いますが、いつもではありません)。
|
|
148
|
+
> 🐿️ のドアメニューは*打たれた挨拶*に対して現れるもので、
|
|
125
149
|
> 起動しただけでは現れません。
|
|
126
150
|
> **「プロジェクトを接続して」** と言えば → ハブが `../` をスキャンして `.git` ディレクトリを見つけ、`tracks/{project}/` を作成します。
|
|
127
151
|
> 初期セットアップ一式(フック · ゲート · ベースライン — 項目ごとに個別承認され、断ればそれは尊重され
|
|
@@ -131,8 +155,8 @@ claude
|
|
|
131
155
|
|
|
132
156
|
**最初の15分** — 成功が何に見えるか、そしてそれをどう使うか:
|
|
133
157
|
|
|
134
|
-
1.
|
|
135
|
-
`tracks/{your-project}/` ができることで分かります。
|
|
158
|
+
1. セットアップがうまくいったことは、挨拶(どの言語でも)で 🐿️ のドアメニューが出て、
|
|
159
|
+
「プロジェクトを接続して」で `tracks/{your-project}/` ができることで分かります。
|
|
136
160
|
2. 次に同じセッションのうちに即効の成果を1つ取ってください: **「このプロジェクトを加速して」**(配線する
|
|
137
161
|
値打ちのあるスキル/プラグインのランク付き計画、インストールはゲート付き)または
|
|
138
162
|
**「`/context-doctor` を回して」**(トークン浪費のスキャン)。
|
|
@@ -319,12 +343,26 @@ Project B ──→ CLAUDE.md でハブを接続
|
|
|
319
343
|
|
|
320
344
|
**3段工程** — これはメニューではなく*投資の順序*です:
|
|
321
345
|
|
|
346
|
+
```mermaid
|
|
347
|
+
flowchart LR
|
|
348
|
+
S["① 判断回路<br/>設計の前に"]
|
|
349
|
+
P["② 並列脱相関<br/>中間で"]
|
|
350
|
+
B["③ 焼き切る<br/>6つの軸で"]
|
|
351
|
+
A(["⟹ 加速する"])
|
|
352
|
+
S --> P --> B --> A
|
|
353
|
+
style A fill:#0f766e,stroke:#0f766e,color:#fff
|
|
354
|
+
```
|
|
355
|
+
|
|
356
|
+
**速度は最後の矢印であって、4つめの箱ではありません。** そして ② は**別々に回す2つのダイヤル**です
|
|
357
|
+
— *脱相関*(盲点のリスクに反応します: 別のモデルファミリー ⓐ、別の立ち位置 ⓑ)と*並列化*(表面の
|
|
358
|
+
大きさに反応します: 1つの文脈に収まるか)。掛け算せずに、選んでください。
|
|
359
|
+
|
|
322
360
|
```
|
|
323
361
|
① 設計の前に回路を 判断回路が最初に入ります — 成功 · 傾け方 · 範囲外 · 決してやらないこと —
|
|
324
362
|
やったことの記録として後から書き起こすものではありません
|
|
325
363
|
|
|
326
|
-
②
|
|
327
|
-
|
|
364
|
+
② 並列脱相関 作業を「違うかたちで失敗する」検査に分けて、一度に走らせます。どの違いが効くかを
|
|
365
|
+
中間で、加速する 選んでください — 同じ種類のレビュアーをもう1人足すのは脱相関ではなく、同じ盲点を
|
|
328
366
|
2度持つだけです。並列化それ自体には方向がなく、選ぶのは①の判断回路です。
|
|
329
367
|
これは「働き方」であって、③の最終検査ではありません。
|
|
330
368
|
|
|
@@ -333,6 +371,12 @@ Project B ──→ CLAUDE.md でハブを接続
|
|
|
333
371
|
乗せたところでその軸に見えないものはやはり見えません
|
|
334
372
|
```
|
|
335
373
|
|
|
374
|
+
> 📖 **ここから先は、もっと知りたい方のためのものです — 使い始めるのに必要ではありません。**
|
|
375
|
+
> インストールして動かしに来たのなら、いちばん上の「2分」の節がすべてです。ここでいったん止めて、
|
|
376
|
+
> どれかの検査に「おや?」と思ったときに戻ってきてください。この先はゲートがなぜその形をしているのか
|
|
377
|
+
> という話で、すでにハブを回している人に向けて書かれています。見慣れない言葉は →
|
|
378
|
+
> [`GLOSSARY.md`](knowledge/shared/GLOSSARY.md)。
|
|
379
|
+
|
|
336
380
|
**6つの検証軸** — 「レビューしました」が実際には最初の1つだけを指していた、と判明しがちな場所です。
|
|
337
381
|
|
|
338
382
|
🟥 **軸は「どれだけ敵対的か」では分かれません。「何を受け取ったか」で分かれます。** 受け取るものが
|
|
@@ -341,13 +385,44 @@ Project B ──→ CLAUDE.md でハブを接続
|
|
|
341
385
|
|
|
342
386
|
| 軸 | **受け取るもの** | 何を捕まえるか | 典型的な計器 |
|
|
343
387
|
|---|---|---|---|
|
|
344
|
-
| **ⓐ 別ファミリー** |
|
|
345
|
-
| **ⓑ 立ち位置 (standpoint)** |
|
|
346
|
-
| **ⓒ 隔離されたグラウンディング** | 著者が書いた文 + いまのツリー | **主張**が間違っている |
|
|
388
|
+
| **ⓐ 別ファミリー** | 変更分 + 著者のフレーミング | **実装**が間違っている | 別のモデルファミリーからのレビュアー (`auto-decorrelation`) |
|
|
389
|
+
| **ⓑ 立ち位置 (standpoint)** | 変更分 + **対象ハーネス自身の正典** | **引用した規約が本当にそう言っているか** | そのハーネス自身のレポ · ルールの側で変更分を走らせる ([`§7`](knowledge/shared/harness-core/field_verdict_crossfamily_gate.md)) |
|
|
390
|
+
| **ⓒ 隔離されたグラウンディング** | 著者が書いた文 — その主張、*そして* **始める前に宣言しておいたもの** — + いまのツリー | **主張**が間違っている · デルタが宣言した内容と食い違う | 書いていない誰かが、書かれている内容を測り直す。事前宣言の側は、書き留めた成功の定義をデルタに突き合わせて読み返すゲート |
|
|
347
391
|
| **ⓓ 第三者との対面** | 問題 + **他人のコードベース** | **これはもう解かれているのでは** · 自分の変更が他人のレポのどこに触るか | 無関係な第三のレポで同じ問題を見る |
|
|
348
392
|
| **ⓔ 初の実使用** | 実物の対象1件 | **測り方**が間違っている — 計器の計器 | 実際の対象1件に対して一度走らせ、結果を自分の手で確かめる |
|
|
349
393
|
| **ⓕ 戻して観察する** | 配線を消したツリー | **アンカー**が間違っている — その検査は装飾だ | 守っている対象を消して、*その特定の*検査が赤くなることを確かめる |
|
|
350
394
|
|
|
395
|
+
> **ⓒ は 2026-08-21 に広がりました。そして「どう広がったか」のほうが役に立ちます。** このレポの
|
|
396
|
+
> コミットマーカーは 2026-08-09 以降、著者自身の**事前宣言** — *何を成功とみなすか* · *何は絶対に
|
|
397
|
+
> しないか* — を設計の*前に*書くことが義務づけられていました。その日コントロールを付けて測ってみると、
|
|
398
|
+
> **それを読むコードは0行**でした。兄弟フィールドが21か所で検査されている一方で、ゲートの仕様は
|
|
399
|
+
> そのフィールドの名前すら挙げていませんでした。実際のコーパスでは、**マーカー98件のうち37件が
|
|
400
|
+
> その行をまったく持って**おらず、その中にはレーン28本を通し他のフィールドをすべて埋めたパネル
|
|
401
|
+
> レビュー済みのものまでありました。軸はどれも*外側*を見ていました — 変更分、対象のレポ、先行事例、
|
|
402
|
+
> 成果物。**その記録自身の必須フィールド**を見た軸はひとつもありません。消費先のないスロットは
|
|
403
|
+
> つねに「できています」と報告します。**存在が判定の代わりをしてしまうから**です。
|
|
404
|
+
>
|
|
405
|
+
> 修理は7つめの軸ではありませんでした。ⓒ はすでに*著者が書いた文 + いまのツリー*を受け取っており、
|
|
406
|
+
> それは事前宣言の検査が受け取るものと**一字一句同じ**です。時制(先に宣言したのか、後から主張したのか)
|
|
407
|
+
> は敵対性と同じく**姿勢**であって、軸ではありません。新しく1本立てていたら、上のブラインド再分類が
|
|
408
|
+
> 見つけたのとまったく同じ誤りを繰り返すところでした。
|
|
409
|
+
|
|
410
|
+
> **ピアセッションは ⓑ と ⓓ に記録します — 2026-08-21 の決定であり、「どのピアに訊くか」が肝です。**
|
|
411
|
+
> 同じハーネスから分かれ、作業の**別の枝で熱く回っている**並列セッションは、あなたの複製ではありません。
|
|
412
|
+
> 熱くなったその地点で、そのセッションは実際に**第二の顔**を持ちます — 本物の立ち位置 (ⓑ) であり、
|
|
413
|
+
> 本物の他人のコードベース (ⓓ) です。ですからピアの判定はその2つの軸に記録し、7つめの軸は立てません
|
|
414
|
+
> でした。マーカーの `axes-run` の並びも変わっていません。
|
|
415
|
+
>
|
|
416
|
+
> 上の ⓓ の行が「別の会社のレポ」ではなく「**他人のコードベース**」と書かれているのは、これが理由です
|
|
417
|
+
> — 効いてくる境界は**その判定を生んだ作業の文脈が誰のものか**であって、ファイルを所有する GitHub の
|
|
418
|
+
> organization が誰のものかではありません。別の枝で熱くなっているピアはその境界の**外側**にいます。
|
|
419
|
+
> 逆に、この文脈から自分で起動したサブエージェントは、どれだけ違うレポを読ませても境界の**内側**です。
|
|
420
|
+
>
|
|
421
|
+
> 🟥 効いてくるのは系のほうです。**ピアには、そのピアが実際に熱くなった軸を訊いてください。** それ以外の
|
|
422
|
+
> ところでピアはあなたと同じ顔をしており、訊いても脱相関しません — 同じ入力、同じ盲点です。サブエージェント
|
|
423
|
+
> でも、自分の書いたものを読み直すことでも**代わりにはなりません。** 第二の顔は、そのセッションが実際に
|
|
424
|
+
> 別の作業を*したこと*から生まれるのであって、プロンプトで作れるものではありません。
|
|
425
|
+
|
|
351
426
|
**6つを毎回すべて回すわけではなく、それが設計です** — 掛け算せずに、**選んでください**:
|
|
352
427
|
|
|
353
428
|
```
|
|
@@ -370,7 +445,9 @@ import している)。小さく戻せる変更ではそうした項目は**
|
|
|
370
445
|
**なぜこれが基盤モデルの進化で置き換わらないのか** — 軸は*レビュアーの能力*ではなく**入力**で
|
|
371
446
|
定義されます。モデルが強くなっても、**「受け取っていない情報」は依然として見えません。** スキャフォー
|
|
372
447
|
ルディングはモデルが良くなれば脱げますが、**入力境界の脱相関は脱げません**。そして単独の著者は定義上
|
|
373
|
-
|
|
448
|
+
自分の入力の外へは出られません。
|
|
449
|
+
|
|
450
|
+
🟥 **正直な際どさ**: エージェントが**ツールで自分から入力を取りに行く**と
|
|
374
451
|
境界はぼやけます — 実際「ストア全件が使われていない」と「例外の握り潰し」は ⓐ · ⓒ でも捕まえられる、
|
|
375
452
|
と外部の判定は見ました(自分で grep するからです)。逆に「他人のレポが過去に廃止したルール」は
|
|
376
453
|
**ツールでも取りに行けません** — そのプロジェクトのレビュー履歴にアクセスする理由がそもそも
|
|
@@ -486,23 +563,42 @@ Code をメインオーケストレーターとし、Gemini, Codex, または An
|
|
|
486
563
|
|
|
487
564
|
---
|
|
488
565
|
|
|
489
|
-
## 鍛冶場 (The forge)
|
|
566
|
+
## 鍛冶場 (The forge) — 名前はどこから来たか
|
|
490
567
|
|
|
491
|
-
forge-harness
|
|
568
|
+
forge-harness はプロジェクトを鋼のように扱い、この比喩は装飾ではなく文字通りです。
|
|
492
569
|
作業は形を与えられ、攻撃で硬くなり、そうして生き延びたからこそ、はじめてより速く出荷されます。
|
|
493
570
|
|
|
494
|
-
|
|
571
|
+
> 🟥 **これは名前の由来であって手順ではありません — 数えないでください。** 下の鍛冶屋の言葉は
|
|
572
|
+
> **語彙**であって、段階のリストではありません。上の **3段工程 · 4大エンジン · 4軸ゲート ·
|
|
573
|
+
> 6軸検証とは別の層**であり、そのどの数字とも対応しません。この節が起こしうる唯一の誤解が
|
|
574
|
+
> 「5つめの番号付きの集合」として読まれることなので、ここで先に断っておきます。
|
|
575
|
+
|
|
576
|
+
**金床の上で三つ:**
|
|
577
|
+
|
|
578
|
+
| 鍛冶屋の言葉 | ここでは何を指すか | コマンド |
|
|
495
579
|
|---|---|---|
|
|
496
580
|
| **鍛え (Forge)** | 生のプロジェクトをハーネスへ形づくる — その床を上げる | `install-wizard`, "harness-ify this project" |
|
|
497
581
|
| **焼き入れ (Quench)** | 攻撃で硬くする — 冷静な検討が健全なものだけを残す | `steel-quench` · `phantom-quench` |
|
|
498
582
|
| **焼き戻し (Temper)** | 硬くなった資産から脆さ (brittleness) を再び抜く | `steel-quench` Wave-T · `templates/temper_check.sh` |
|
|
499
|
-
| → **加速 (Accelerate)** | 鍛冶場を生き延びた刃はより速く斬る | `goal-quench` — *Pass → Accelerate* |
|
|
500
583
|
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
584
|
+
```mermaid
|
|
585
|
+
flowchart LR
|
|
586
|
+
F["鍛え"] --> Q["焼き入れ"] --> T["焼き戻し"] --> A(["⟹ 加速"])
|
|
587
|
+
style A fill:#0f766e,stroke:#0f766e,color:#fff
|
|
588
|
+
```
|
|
589
|
+
|
|
590
|
+
**⟹ そして、速くなります。** 鍛冶場を生き延びた刃はより速く斬る — `goal-quench`、
|
|
591
|
+
*Pass → Accelerate*。速度は上の三つが**生み出すもの**であって、四つめにやることではありません。
|
|
592
|
+
これはこのページ冒頭のタグラインを鍛冶屋の言葉で言い直したものと同じです:
|
|
593
|
+
品質が梃子であり、速度はその結果です。
|
|
594
|
+
|
|
595
|
+
上で名前を挙げたコマンドはすべて、いま出荷されています。焼き戻し (Temper) は作られる*前に*名前が
|
|
596
|
+
先に付けられ — 意図的に(参照: [`ETHOS.md`](docs/ETHOS.md#the-forge))— 測定実行が検証したのちに
|
|
597
|
+
出荷されました。
|
|
598
|
+
|
|
599
|
+
鍛冶場の周りで、さらに2つのシグネチャが回り続けます: `harvest-loop`(各セッションの教訓が恒久
|
|
600
|
+
スキルになる)と `agent-composer`(ディスパッチをオーケストレーション)。残りのスキルは必要に
|
|
601
|
+
なるまで待ちます — 全リストは下に。
|
|
506
602
|
|
|
507
603
|
## 40 skills · 8 agents
|
|
508
604
|
|
package/README.ko.md
CHANGED
|
@@ -18,16 +18,20 @@
|
|
|
18
18
|
</p>
|
|
19
19
|
|
|
20
20
|
<p align="center">
|
|
21
|
-
<b
|
|
21
|
+
<b>품질 게이트를 내장한 메타하네스입니다.</b>
|
|
22
|
+
</p>
|
|
23
|
+
|
|
24
|
+
<p align="center">
|
|
25
|
+
프로젝트든 스킬이든 하네스든 — 만들고, 검증하고, 가속하는 일을 여기서 시킵니다.<br>
|
|
26
|
+
다만 그냥 내주지 않습니다. 서로 <i>다르게</i> 실패하는 검사 여럿을 통과시킨 뒤에 내줍니다.<br>
|
|
27
|
+
<b>그리고 같은 요청이 반복되면, 그 일을 대신할 하네스를 직접 만들어 냅니다.</b>
|
|
22
28
|
</p>
|
|
23
29
|
|
|
24
30
|
<p align="center">
|
|
25
31
|
이미 Claude Code 에 같은 말을 반복하고 계실 겁니다. 돌려야 할 검사, 지켜야 할 규칙,
|
|
26
|
-
변경이 갖춰야 할
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
스킬은 일부러 범용으로 두고 쓰시는 동안 사례에 맞춰 벼립니다.
|
|
30
|
-
<b>같은 모양이 자꾸 돌아오면 그때 출하를 제안합니다</b> — 별도 스킬로, 또는 별도 하네스로.
|
|
32
|
+
변경이 갖춰야 할 모양. 재사용 가능해지는 것이 바로 그 부분이고, 일부러 범용으로 두어
|
|
33
|
+
쓰시는 동안 사례에 맞춰 벼립니다.<br>
|
|
34
|
+
<sub>커지는 것은 시도 횟수입니다 — 시행착오가 당신에게서 떨어져 나가 병렬로 돕니다.</sub>
|
|
31
35
|
</p>
|
|
32
36
|
|
|
33
37
|
---
|
|
@@ -41,24 +45,39 @@ git clone https://github.com/chrono-meta/forge-harness.git ~/projects/forge-harn
|
|
|
41
45
|
cd ~/projects/forge-harness && claude
|
|
42
46
|
```
|
|
43
47
|
|
|
44
|
-
**그리고 `hi`
|
|
45
|
-
|
|
46
|
-
|
|
48
|
+
**그리고 `안녕` 이라고 입력하세요.** `hi` · `こんにちは` · `你好` — 편한 말이면 무엇이든 됩니다.
|
|
49
|
+
**어느 쪽으로 인사하든 메뉴가 열리고**, 그 언어로 답하려 합니다. 번호가 붙은 메뉴가 뜨면
|
|
50
|
+
거기서부터는 도구가 안내합니다. 문을 고르고 몇 가지에 답하면 설치 마법사까지 대신 돌려 줍니다.
|
|
51
|
+
|
|
52
|
+
<sub>🟥 <b>마지막 문장은 정직하게 적습니다</b>: 언어를 맞추는 것은 <b>기계 게이트가 없는 산문
|
|
53
|
+
규칙</b>이라 늘 지켜지지는 않습니다. 2026-08-21 블라인드 플로어 티어로, <b>방금 하신 것과 같은
|
|
54
|
+
새 클론</b>에서 재 봤습니다 — 중국어·한국어 인사 모두 <b>문 라벨까지 그 언어로</b> 돌아왔습니다.
|
|
55
|
+
반면 기본 언어가 핀으로 박힌 개발자 본인 머신에서는 중국어가 <b>5번 중 1번</b>만 맞았고, 이 각주가
|
|
56
|
+
있는 이유가 그것입니다. 아직 흔들리는 쪽은 <b>메뉴가 뜨는지</b>입니다 — 인사말 한 종류에서는 메뉴가
|
|
57
|
+
안 떴습니다. 언어가 어긋나거나 메뉴가 안 뜨면 그냥 말씀하세요, 바로 바꿉니다. 이 잔여는 덮지 않고
|
|
58
|
+
<code>CLAUDE.md</code> §Voice/Tone 에 적어 두었습니다.</sub>
|
|
59
|
+
|
|
60
|
+
이 아래는 필요할 때 찾아보는 참고 자료이고, 시작하기 전에 읽어야 하는 숙제가 아닙니다.
|
|
47
61
|
|
|
48
|
-
**증폭하는
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
62
|
+
- **증폭하는 것** — 시도 횟수입니다. 시행착오가 당신에게서 떨어져 나가 병렬로 돕니다.
|
|
63
|
+
|
|
64
|
+
- **증폭하지 않는 것** — 모델의 천장입니다. 하네스는 모델을 자기 천장까지 끌어올릴 뿐,
|
|
65
|
+
그 너머로 밀어 올리지는 못합니다.
|
|
66
|
+
|
|
67
|
+
- **확인하는 법** — 자기 등급을 공개합니다. **스스로 무엇이라고 주장하는지를 다섯 가지로
|
|
68
|
+
이름 붙여 두고**(하네스 클러스터 · 프로젝트 인큐베이터 · 거버넌스 게이트 · 프런티어 → 조직 전파 ·
|
|
69
|
+
증폭자), 그 각각을 [릴리스](https://github.com/chrono-meta/forge-harness/releases)마다 정직하게
|
|
70
|
+
채점합니다. 초록이 아닌 칸은 아직 없는 실제 실행이 무엇인지 이름으로 말합니다.
|
|
71
|
+
<sub>다섯 각각은 아래 «다섯 정체성» 절에서 풀어 씁니다.</sub>
|
|
53
72
|
|
|
54
73
|
---
|
|
55
74
|
|
|
56
75
|
<p align="center">
|
|
57
|
-
<img src="docs/pillars.svg" alt="
|
|
76
|
+
<img src="docs/pillars.svg" alt="HARNESS - FORGE - ACCELERATE - COMPOUND" width="680">
|
|
58
77
|
</p>
|
|
59
78
|
|
|
60
79
|
<p align="center">
|
|
61
|
-
<b>품질이 지렛대이고 속도는 그 결과입니다.</b
|
|
80
|
+
<b>품질이 지렛대이고 속도는 그 결과입니다.</b><br>
|
|
62
81
|
<sub>도움이 됐다면 ⭐ 하나가 다른 분이 찾는 데 도움이 됩니다.</sub>
|
|
63
82
|
</p>
|
|
64
83
|
|
|
@@ -122,7 +141,9 @@ cd ~/projects/forge-harness
|
|
|
122
141
|
claude
|
|
123
142
|
```
|
|
124
143
|
|
|
125
|
-
> ✅ 그다음 **인사를
|
|
144
|
+
> ✅ 그다음 **인사를 타이핑하세요** — `안녕` · `hi` · `こんにちは` · `你好`, 편한 언어면 됩니다.
|
|
145
|
+
> 그 언어로 답하려 합니다(위 각주 참고 — 대체로 맞지만 항상은 아닙니다).
|
|
146
|
+
> 🐿️ 문 메뉴는 실행만으로가 아니라 *타이핑된* 인사에 뜹니다.
|
|
126
147
|
> **"프로젝트 연결해줘"** 라고 하면 → 허브가 `../`를 스캔해 `.git` 디렉터리를 찾고 `tracks/{project}/`를 생성합니다.
|
|
127
148
|
> 전체 초기 설정(훅 · 게이트 · 베이스라인 — 항목마다 개별 승인하며, 거부해도 존중하고 기록합니다)은
|
|
128
149
|
> **`/install-wizard`**를 요청하세요.
|
|
@@ -131,7 +152,7 @@ claude
|
|
|
131
152
|
|
|
132
153
|
**처음 15분** — 무엇이 성공이고, 그것으로 무엇을 할 것인가:
|
|
133
154
|
|
|
134
|
-
1.
|
|
155
|
+
1. 어떤 언어로 인사하든 🐿️ 문 메뉴가 뜨고, "프로젝트 연결해줘"가 `tracks/{your-project}/`를 만들면 설정이
|
|
135
156
|
된 것입니다.
|
|
136
157
|
2. 그다음 같은 세션에서 즉시 얻을 수 있는 것을 챙기세요: **"이 프로젝트 가속화해줘"**(배선할 값어치가
|
|
137
158
|
있는 스킬·플러그인의 순위 계획, 설치는 게이트를 거침) 또는 **"/context-doctor 돌려줘"**(토큰 낭비 스캔).
|
|
@@ -317,11 +338,25 @@ Project B ──→ CLAUDE.md에서 허브 연결
|
|
|
317
338
|
|
|
318
339
|
**3단 공정** — 이것은 메뉴가 아니라 *투자의 순서*입니다:
|
|
319
340
|
|
|
341
|
+
```mermaid
|
|
342
|
+
flowchart LR
|
|
343
|
+
S["① 설계 전에<br/>판단 회로"]
|
|
344
|
+
P["② 중간은<br/>병렬 탈상관"]
|
|
345
|
+
B["③ 마무리<br/>6축 태우기"]
|
|
346
|
+
A(["⟹ 가속된다"])
|
|
347
|
+
S --> P --> B --> A
|
|
348
|
+
style A fill:#0f766e,stroke:#0f766e,color:#fff
|
|
349
|
+
```
|
|
350
|
+
|
|
351
|
+
**속도는 맨 끝의 화살표지 네 번째 상자가 아닙니다.** 그리고 ②는 **따로 돌리는 두 다이얼**입니다 —
|
|
352
|
+
*탈상관*(사각 위험에 반응 — 다른 모델 계열 ⓐ · 다른 입장 ⓑ)과 *병렬*(표면 크기에 반응 — 한
|
|
353
|
+
컨텍스트에 담기나). 곱하지 말고 고르세요.
|
|
354
|
+
|
|
320
355
|
```
|
|
321
356
|
① 설계 전에 회로 판단 회로부터 심을 것 — 무엇이 성공 · 어디로 기움 · 범위 밖 ·
|
|
322
357
|
절대 안 함. 한 일을 나중에 기록으로 적어두는 게 아님
|
|
323
358
|
|
|
324
|
-
② 중간은
|
|
359
|
+
② 중간은 병렬 탈상관 작업을 «다르게 실패하는» 검사들로 쪼개어 한꺼번에 돌릴 것.
|
|
325
360
|
가속 어떤 차이가 중요한지 고를 것 — 같은 종류의 리뷰어를 하나 더
|
|
326
361
|
붙이는 건 탈상관이 아니라 같은 사각을 두 번 보는 것.
|
|
327
362
|
병렬화 자체엔 방향이 없고, 고르는 것은 ①의 판단 회로.
|
|
@@ -332,6 +367,11 @@ Project B ──→ CLAUDE.md에서 허브 연결
|
|
|
332
367
|
얹어도 그 축이 못 보는 것은 여전히 못 봅니다
|
|
333
368
|
```
|
|
334
369
|
|
|
370
|
+
> 📖 **여기서부터는 더 궁금한 분 몫입니다 — 쓰기 시작하는 데는 필요 없습니다.**
|
|
371
|
+
> 설치하고 굴리러 오셨다면 맨 위 2분 절이 전부이고, 여기서 멈추셨다가 어떤 검사가 의아할 때
|
|
372
|
+
> 돌아오시면 됩니다. 아래는 게이트가 왜 그렇게 생겼는지에 대한 이야기라, 이미 허브를 돌리는
|
|
373
|
+
> 분을 향해 쓰여 있습니다. 낯선 말은 → [`GLOSSARY.md`](knowledge/shared/GLOSSARY.md).
|
|
374
|
+
|
|
335
375
|
**여섯 검증 축** — "리뷰했다"가 실제로는 이 중 첫 번째 하나만 뜻하는 경우가 대부분입니다.
|
|
336
376
|
|
|
337
377
|
🟥 **축은 «얼마나 적대적인가»로 갈리지 않습니다. «무엇을 받았는가»로 갈립니다.** 받는 것이 같으면
|
|
@@ -339,13 +379,43 @@ Project B ──→ CLAUDE.md에서 허브 연결
|
|
|
339
379
|
|
|
340
380
|
| 축 | **받는 것** | 무엇이 틀린 경우를 잡나 | 대표 계기 |
|
|
341
381
|
|---|---|---|---|
|
|
342
|
-
| **ⓐ 다른 패밀리** |
|
|
343
|
-
| **ⓑ 입장** |
|
|
344
|
-
| **ⓒ 격리 그라운딩** | 저자가 쓴 문장 + 지금의 트리 | **주장**이 틀림 | 그것을 쓰지 않은 쪽이 적힌 내용을 다시
|
|
382
|
+
| **ⓐ 다른 패밀리** | 변경분 + 저자의 프레이밍 | **구현**이 틀림 | 다른 모델 패밀리의 리뷰어(`auto-decorrelation`) |
|
|
383
|
+
| **ⓑ 입장** | 변경분 + **대상 하네스의 정본** | **인용한 규약이 정말 그렇게 말하나** | 그 하네스 자신의 레포·규칙에서 변경분을 돌림 ([`§7`](knowledge/shared/harness-core/field_verdict_crossfamily_gate.md)) |
|
|
384
|
+
| **ⓒ 격리 그라운딩** | 저자가 쓴 문장 — 주장 *그리고* **시작 전에 선언해 둔 것** — + 지금의 트리 | **주장**이 틀림 · 델타가 선언한 것과 안 맞음 | 그것을 쓰지 않은 쪽이 적힌 내용을 다시 잼. 사전선언 쪽은, 적어 둔 성공 정의를 델타에 되짚는 게이트 |
|
|
345
385
|
| **ⓓ 3자 대면** | 문제 + **남의 코드베이스** | **이미 풀린 문제 아닌가** · 내 변경이 남의 레포를 어디서 만지나 | 관련 없는 제3의 레포에서 같은 문제를 봄 |
|
|
346
386
|
| **ⓔ 첫 실사용** | 실물 대상 한 건 | **재는 방식**이 틀림 — 계기의 계기 | 진짜 대상 하나에 돌리고 결과를 손으로 확인 |
|
|
347
387
|
| **ⓕ 되돌려 관찰** | 배선을 지운 트리 | **앵커**가 틀림 — 검사가 장식임 | 지키는 대상을 지우고 *바로 그* 검사가 빨개지는지 확인 |
|
|
348
388
|
|
|
389
|
+
> **ⓒ가 2026-08-21 에 넓어졌고, «어떻게» 넓어졌는지가 더 쓸모 있습니다.** 이 저장소의 커밋 마커는
|
|
390
|
+
> 2026-08-09 부터 저자 자신의 **사전선언** — *무엇을 성공으로 치나* · *무엇은 절대 안 하나* — 을
|
|
391
|
+
> 설계 *전에* 적도록 의무화돼 있었습니다. 그날 컨트롤을 붙여 재 봤더니 **그걸 읽는 코드가 0줄**
|
|
392
|
+
> 이었습니다. 형제 필드들은 21곳에서 검사되는 동안, 게이트 스펙은 그 필드를 이름조차 부르지
|
|
393
|
+
> 않았습니다. 실제 코퍼스에서는 **마커 98개 중 37개가 그 줄을 아예 안 달고** 있었고, 그중엔 레인
|
|
394
|
+
> 28개에 다른 필드는 전부 채운 패널-리뷰 통과본도 있었습니다. 축들은 전부 *바깥*을 봤습니다
|
|
395
|
+
> — 변경분, 대상 레포, 선행 사례, 산출물. **그 기록 자신의 의무 필드**를 본 축은 없었습니다.
|
|
396
|
+
> 소비처 없는 슬롯은 언제나 「됐다」고 보고합니다. **존재가 판정을 대신하고 있기 때문입니다.**
|
|
397
|
+
>
|
|
398
|
+
> 수리는 일곱 번째 축이 아니었습니다. ⓒ는 이미 *저자가 쓴 문장 + 지금의 트리*를 받고, 그건
|
|
399
|
+
> 사전선언 검사가 받는 것과 **글자 그대로 같습니다**. 시제(먼저 선언했나 / 나중에 주장했나)는
|
|
400
|
+
> 적대성과 마찬가지로 **자세**지 축이 아닙니다. 새로 하나 찍었다면 위 블라인드 재분류가 잡아낸
|
|
401
|
+
> 바로 그 오류를 반복하는 것이었습니다.
|
|
402
|
+
|
|
403
|
+
> **피어 세션은 ⓑ와 ⓓ에 적습니다 — 2026-08-21 결정, 그리고 «어느 피어에게 묻나»가 핵심입니다.**
|
|
404
|
+
> 같은 하네스에서 갈라져 나와 **다른 갈래에서 뜨겁게 돌고 있는** 병렬 세션은 당신의 사본이
|
|
405
|
+
> 아닙니다. 뜨거워진 그 지점에서 그 세션에는 실제로 **두 번째 얼굴**이 생깁니다 — 진짜 다른
|
|
406
|
+
> 입장(ⓑ)이고, 진짜 남의 코드베이스 자리(ⓓ)입니다. 그래서 피어의 판정은 그 두 축에 기록하고,
|
|
407
|
+
> 일곱 번째 축은 만들지 않았습니다. 마커 `axes-run` 배열도 그대로입니다.
|
|
408
|
+
>
|
|
409
|
+
> 위 ⓓ 행이 «다른 회사의 레포»가 아니라 **«남의 코드베이스»**라고 적힌 이유가 여기 있습니다 —
|
|
410
|
+
> 경계는 **그 판정을 만들어낸 작업 맥락이 누구 것인가**이지, GitHub 조직이 누구 것인가가
|
|
411
|
+
> 아닙니다. 다른 갈래에서 뜨거운 피어는 그 경계 **바깥**이고, 이 맥락에서 띄운 서브에이전트는
|
|
412
|
+
> 아무리 다른 레포를 읽어도 그 경계 **안**입니다.
|
|
413
|
+
>
|
|
414
|
+
> 🟥 물리는 지점은 따름정리 쪽입니다. **피어에게는 그 피어가 뜨거워진 축을 물으세요.** 그 밖에서
|
|
415
|
+
> 피어는 당신과 같은 얼굴을 하고 있고, 물어도 탈상관이 안 됩니다 — 같은 입력, 같은 사각.
|
|
416
|
+
> 서브에이전트로도, 자기 글 다시 읽기로도 **대체되지 않습니다.** 두 번째 얼굴은 그 세션이 실제로
|
|
417
|
+
> 다른 일을 *했다는 데서* 나오는 것이지, 프롬프트로 만들어지지 않습니다.
|
|
418
|
+
|
|
349
419
|
**여섯을 매번 다 돌리지 않으며, 그것이 설계입니다** — 곱하지 말고 **고르세요**:
|
|
350
420
|
|
|
351
421
|
```
|
|
@@ -366,7 +436,8 @@ Project B ──→ CLAUDE.md에서 허브 연결
|
|
|
366
436
|
**왜 이것이 기반 모델 발전으로 대체되지 않나** — 축은 *리뷰어의 능력*이 아니라 **입력**으로
|
|
367
437
|
정의됩니다. 모델이 세져도 **«받지 않은 정보»는 여전히 못 봅니다.** 스캐폴딩은 모델이 좋아지면
|
|
368
438
|
벗겨지지만 **입력 경계 탈상관은 벗겨지지 않으며**, 단일 저자는 정의상 자기 입력을 벗어날 수 없습니다.
|
|
369
|
-
|
|
439
|
+
|
|
440
|
+
🟥 **정직한 가장자리**: 에이전트가 **도구로 스스로 입력을 더 가져오면** 경계는 흐려집니다 — 실제로
|
|
370
441
|
「저장소 전수 미사용」과 「예외 삼킴」은 ⓐ·ⓒ 도 잡을 수 있다고 외부 판정이 봤습니다(스스로 grep 하니까).
|
|
371
442
|
반대로 「남의 레포가 과거에 폐기한 규칙」은 **도구로도 가져올 수 없습니다** — 그 프로젝트의 리뷰
|
|
372
443
|
이력에 접근할 이유가 애초에 없기 때문입니다. 거기가 ⓓ가 남는 자리입니다.
|
|
@@ -528,23 +599,41 @@ FH의 degrade-direction 렌즈를 붙이자 오탐 0으로 6/8을 잡았습니
|
|
|
528
599
|
|
|
529
600
|
---
|
|
530
601
|
|
|
531
|
-
## 대장간(The forge)
|
|
602
|
+
## 대장간(The forge) — 이름이 어디서 왔나
|
|
532
603
|
|
|
533
|
-
forge-harness는 프로젝트를 강철처럼
|
|
604
|
+
forge-harness는 프로젝트를 강철처럼 다루고, 이 은유는 장식이 아니라 문자 그대로입니다.
|
|
534
605
|
작업은 형태를 잡고, 공격으로 단단해지며, 그렇게 살아남았기에 비로소 더 빠르게 출하됩니다.
|
|
535
606
|
|
|
536
|
-
|
|
607
|
+
> 🟥 **이건 이름의 유래지 절차가 아닙니다 — 세지 마세요.** 아래 대장장이의 말들은 **어휘**이지
|
|
608
|
+
> 단계 목록이 아닙니다. 위의 **3단 공정 · 4대 엔진 · 4축 게이트 · 6축 검증과는 다른 층**이고,
|
|
609
|
+
> 그 어느 숫자와도 대응하지 않습니다. 이 절이 일으킬 수 있는 유일한 오해가 «다섯 번째 번호 붙은
|
|
610
|
+
> 집합»으로 읽히는 것이라, 여기서 미리 끊어 둡니다.
|
|
611
|
+
|
|
612
|
+
**모루 위에서 셋:**
|
|
613
|
+
|
|
614
|
+
| 대장장이의 말 | 여기서는 무슨 뜻인가 | 명령 |
|
|
537
615
|
|---|---|---|
|
|
538
616
|
| **벼림(Forge)** | 날것의 프로젝트를 하네스로 형태 잡기 — 바닥을 올림 | `install-wizard`, "이 프로젝트 하네스화" |
|
|
539
617
|
| **담금질(Quench)** | 공격으로 단단하게 — 냉정한 검토가 건전한 것만 남김 | `steel-quench` · `phantom-quench` |
|
|
540
618
|
| **뜨임(Temper)** | 단단해진 자산에서 취성(brittleness)을 다시 빼냄 | `steel-quench` Wave-T · `templates/temper_check.sh` |
|
|
541
|
-
| → **가속(Accelerate)** | 대장간을 살아남은 칼날은 더 빠르게 벤다 | `goal-quench` — *Pass → Accelerate* |
|
|
542
619
|
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
620
|
+
```mermaid
|
|
621
|
+
flowchart LR
|
|
622
|
+
F["벼림 Forge"] --> Q["담금질 Quench"] --> T["뜨임 Temper"] --> A(["⟹ 가속"])
|
|
623
|
+
style A fill:#0f766e,stroke:#0f766e,color:#fff
|
|
624
|
+
```
|
|
625
|
+
|
|
626
|
+
**⟹ 그러고 나서 빨라집니다.** 대장간을 살아남은 칼날은 더 빠르게 벱니다 — `goal-quench`,
|
|
627
|
+
*Pass → Accelerate*. 속도는 위 셋이 **만들어내는 것**이지, 네 번째로 하는 일이 아닙니다.
|
|
628
|
+
이 페이지 맨 위의 한 줄을 대장장이의 말로 옮긴 것과 같습니다 — 품질이 지렛대이고, 속도는 그 결과입니다.
|
|
629
|
+
|
|
630
|
+
위에 이름을 댄 명령은 전부 지금 출하돼 있습니다. 뜨임(Temper)은 만들어지기 *전에* 이름부터
|
|
631
|
+
붙였고 — 의도적으로(참조: [`ETHOS.md`](docs/ETHOS.md#the-forge)) — 측정 실행이 검증한 뒤에
|
|
632
|
+
출하됐습니다.
|
|
633
|
+
|
|
634
|
+
대장간 주위에서 두 시그니처가 더 돌아갑니다: `harvest-loop`(매 세션의 교훈이 영구 스킬이 됨)와
|
|
635
|
+
`agent-composer`(디스패치를 오케스트레이션). 나머지 스킬은 필요해질 때까지 기다립니다 —
|
|
636
|
+
전체 목록은 아래에.
|
|
548
637
|
|
|
549
638
|
## 40 skills · 8 agents
|
|
550
639
|
|