@chrono-meta/fh-gate 1.4.97 → 1.4.99
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/CATALOG.md +19 -0
- package/CHEATSHEET.md +9 -1
- package/CLAUDE.md +28 -2
- package/README.ja.md +229 -42
- package/README.ko.md +241 -45
- package/README.md +168 -31
- package/README.zh.md +219 -40
- package/docs/OUTPUT_EVIDENCE.md +21 -12
- package/docs/pillars.svg +3 -7
- package/knowledge/shared/harness-core/fh_ecosystem_positioning.md +2 -0
- package/knowledge/shared/harness-core/fh_global_positioning_and_distribution_roadmap.md +136 -0
- package/knowledge/shared/harness-core/fh_three_layer_canon.md +20 -0
- package/knowledge/shared/harness-core/field_verdict_crossfamily_gate.md +215 -2
- package/knowledge/shared/harness-core/ship_readiness_gate.md +112 -0
- package/knowledge/shared/learnings/subagent_invocations_log.yaml +65 -0
- package/package.json +5 -1
- package/plugins/fh-commons/.claude-plugin/plugin.json +1 -1
- package/plugins/fh-commons/skills/ko-tech-writer/SKILL.md +63 -12
- package/plugins/fh-meta/.claude-plugin/plugin.json +1 -1
- package/plugins/fh-meta/CHANGELOG.md +166 -0
- package/plugins/fh-meta/skills/auto-decorrelation/SKILL.md +30 -0
- package/scripts/consent_registry_check.sh +124 -1
- package/scripts/degrade_direction_scan.sh +10 -1
- package/scripts/digest_landing_check.sh +20 -4
- package/scripts/fh_node_check.sh +128 -1
- package/scripts/fh_session_load.sh +22 -2
- package/scripts/frontier_digest_autopilot.sh +229 -0
- package/scripts/lane_runner_check.sh +294 -26
- package/scripts/package_coverage_check.sh +17 -0
- package/scripts/postinstall_notice.js +34 -0
- package/scripts/selfcheck.sh +183 -5
- package/scripts/test_consent_registry.sh +99 -0
- package/scripts/test_degrade_scan_shell_probes.sh +75 -0
- package/scripts/test_field_canon_lanes.sh +29 -5
- package/scripts/test_lane_runner_lanes.sh +295 -0
- package/scripts/test_node_check_lanes.sh +217 -0
- package/scripts/test_selfcheck_state_lanes.sh +61 -0
- package/scripts/test_stale_clone_guard_lanes.sh +21 -7
- package/scripts/test_version_lockstep_lanes.sh +62 -0
- package/scripts/version_lockstep_check.sh +143 -1
- package/templates/.git-hooks/pre-commit +22 -1
- package/templates/consent_classes.yaml.example +30 -0
- package/templates/degrade_direction_scan.sh +10 -1
package/README.md
CHANGED
|
@@ -8,12 +8,18 @@
|
|
|
8
8
|
<img src="https://img.shields.io/badge/Claude_Code-compatible-a855f7.svg" alt="Claude Code">
|
|
9
9
|
<a href="https://github.com/chrono-meta/forge-harness/issues/72"><img src="https://img.shields.io/badge/Codex-beta_·_help_validate-f59e0b.svg" alt="Codex-compatible beta — help validate (issue #72)"></a>
|
|
10
10
|
<a href="https://www.npmjs.com/package/@chrono-meta/fh-gate"><img src="https://img.shields.io/npm/v/@chrono-meta/fh-gate.svg?color=cb3837" alt="npm"></a>
|
|
11
|
+
<a href="https://github.com/chrono-meta/homebrew-forge-harness"><img src="https://img.shields.io/badge/homebrew-tap-FBB040.svg" alt="Homebrew tap"></a>
|
|
12
|
+
<a href="https://github.com/chrono-meta/forge-harness/stargazers"><img src="https://img.shields.io/github/stars/chrono-meta/forge-harness?style=social" alt="GitHub stars"></a>
|
|
11
13
|
</p>
|
|
12
14
|
|
|
13
15
|
<p align="center">
|
|
14
16
|
<b>English</b> · <a href="README.ko.md">한국어</a> · <a href="README.zh.md">中文</a> · <a href="README.ja.md">日本語</a>
|
|
15
17
|
</p>
|
|
16
18
|
|
|
19
|
+
<p align="center">
|
|
20
|
+
<sub>If this is useful, a ⭐ helps others find it.</sub>
|
|
21
|
+
</p>
|
|
22
|
+
|
|
17
23
|
<p align="center">
|
|
18
24
|
<b>Forge your Claude Code projects — pass them through, they come out faster.</b><br>
|
|
19
25
|
A practitioner's <b>meta-harness</b> — the galaxy your project harnesses live in.<br>It raises each project's <b>floor</b> (harness-ify the setup) and <b>ceiling</b> (accelerate the work), then compounds the gains across your whole portfolio.
|
|
@@ -61,7 +67,9 @@
|
|
|
61
67
|
The consent-registry gate parses YAML, and it **fails closed** when it cannot — correctly, since an
|
|
62
68
|
unvalidated consent record must not read as a clean one. But that fail-closed turns the whole of
|
|
63
69
|
`npm test` (and `prepublishOnly`) red on a machine without PyYAML, and until 2026-08-12 the
|
|
64
|
-
requirement was written down **nowhere
|
|
70
|
+
requirement was written down **nowhere**. It is written here now — and, as of this edit, *only*
|
|
71
|
+
here: it is still absent from `package.json`, the cheatsheet and every other doc, so this block is
|
|
72
|
+
the single place a new machine can learn it. That is an improvement over nowhere, not a fix:
|
|
65
73
|
|
|
66
74
|
```bash
|
|
67
75
|
python3 -m pip install --user pyyaml # verify: python3 -c 'import yaml; print(yaml.__version__)'
|
|
@@ -128,6 +136,7 @@ cd ~/projects/{your-project} && claude
|
|
|
128
136
|
| Solo dev, one project, just trying it | [`templates/starter_profile.md`](templates/starter_profile.md) — one command, curated first-five skills |
|
|
129
137
|
| Multiple projects, want the compounding hub | Clone the hub (quickstart above) |
|
|
130
138
|
| CI / non-Claude runtime, gates only | `npx @chrono-meta/fh-gate` (zero-install governance gate) |
|
|
139
|
+
| Prefer `brew` over `npx`/`npm` | `brew tap chrono-meta/forge-harness && brew install forge-harness` — same 100%-parity content, different install UX (community tap; not yet in Homebrew Core, so `brew search` won't find it without the tap first) |
|
|
131
140
|
|
|
132
141
|
---
|
|
133
142
|
|
|
@@ -176,35 +185,146 @@ them evolve together instead of scattering.
|
|
|
176
185
|
This galaxy is more than a container. FH can run a field harness **in simulation inside its own
|
|
177
186
|
sandbox** — expensive per run, cheaper in total, because the trial-and-error pools in one place and
|
|
178
187
|
compounds — and when the simulation holds, it **emits** the project as an independent, specialized
|
|
179
|
-
harness. That is the goal it is built toward
|
|
188
|
+
harness. **That last step is the goal it is built toward, not a shipped feature** — the incubation
|
|
189
|
+
chamber has emitted once, and the run that produced it did not go through the full flow. Read the
|
|
190
|
+
simulate-and-emit sentence as direction of travel; everything before it is in use today.
|
|
180
191
|
|
|
181
|
-
|
|
182
|
-
the project. You don't wire up skills one by one; you get a **harness** — its plugins, skills, and agents
|
|
183
|
-
included — assembled to fit.
|
|
192
|
+
### The five identities — what FH is for
|
|
184
193
|
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
194
|
+
These are not five modules, and they are not five shipped features either. They are the **shapes the
|
|
195
|
+
skills clump into** — the name of something that was already there, spread across the skills and agents
|
|
196
|
+
rather than layered on top of them. They sit at a different level from the problem table at the top of
|
|
197
|
+
this page: that table is *symptoms you might arrive with*, this is *what the hub is organized around*.
|
|
189
198
|
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
199
|
+
| | Identity | What a person gets |
|
|
200
|
+
|---|---|---|
|
|
201
|
+
| **①** | **Multi-harness cluster** | One task rides several harnesses, and governance is computed *between* them |
|
|
202
|
+
| **②** | **Project incubator** | A new harness comes out **walking where it was born**, not as an empty scaffold |
|
|
203
|
+
| **③** | **Governance gate** | What must not ship is blocked **mechanically**, not by remembering to check |
|
|
204
|
+
| **④** | **Frontier → org propagation** | What arrives from outside lands all the way *inside* the organization |
|
|
205
|
+
| **⑤** | **Amplifier** | A short intent gets forged all the way to the finished artifact |
|
|
206
|
+
|
|
207
|
+
**They are not equally finished, and you should not read the table as five working features.** Maturity is
|
|
208
|
+
tracked per identity on a four-step scale — `aspirational → partial → RC (stood up in the lab) → REALIZED
|
|
209
|
+
(walked outside)` — with a dated line of evidence for each. Those grades are deliberately **not** copied
|
|
210
|
+
here: a grade kept in two files goes stale in one, and this page exists in four languages, so a copy here
|
|
211
|
+
would be four copies. Before you rely on any row above, read the current grades — that is one file:
|
|
212
|
+
[`ship_readiness_gate.md`](knowledge/shared/harness-core/ship_readiness_gate.md). The short version if you
|
|
213
|
+
only want one sentence, as of **2026-08-15**: **③ and ⑤ are graded green — demonstrated outside the lab;
|
|
214
|
+
①, ② and ④ are release candidates — built and calibrated, not yet shown to walk in someone else's hands.**
|
|
215
|
+
If that sentence and the gate file disagree, the gate file is right and this line is stale.
|
|
216
|
+
|
|
217
|
+
Two properties cut across all five, and neither is a feature you switch on:
|
|
218
|
+
|
|
219
|
+
- **It rides the frontier instead of patching it.** FH dispatches across families (Claude, Codex, Gemini,
|
|
220
|
+
local) — but the point is *not* papering over each model's weak spots, because that scaffolding dies as
|
|
221
|
+
models improve. It is co-evolution: shed what the substrate now does natively, absorb what it ships
|
|
222
|
+
next. **Decorrelation** is today's trust lever, and it is the load-bearing word on this page:
|
|
223
|
+
deliberately making two checks fail *differently* — a reviewer from another model family, a run against
|
|
224
|
+
a real target, an outside audit of your own record — so that what one is blind to, another is not.
|
|
225
|
+
A cross-family panel beats a single model's ceiling for exactly that reason, not because it is bigger.
|
|
226
|
+
- **It evolves in two directions.** *Outward*, each session's lessons compound into the hub so the next
|
|
227
|
+
project starts further along. *Inward*, it catches and repairs **its own** defects — the same gates,
|
|
228
|
+
turned on the harness itself.
|
|
200
229
|
|
|
201
230
|
The whole thing is a division of labor: **raw capability is the model's; assembly, trust, and evolution
|
|
202
231
|
are the harness's.**
|
|
203
232
|
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
233
|
+
---
|
|
234
|
+
|
|
235
|
+
## How it is built — process → engines → identity
|
|
236
|
+
|
|
237
|
+
The five identities above are the surface. Two layers sit under them, and naming all three is what keeps
|
|
238
|
+
"what FH does" from collapsing into one undifferentiated pile:
|
|
239
|
+
|
|
240
|
+
```
|
|
241
|
+
five identities what a person can actually use (surface — what you get)
|
|
242
|
+
↑ backed by
|
|
243
|
+
four engines the capability that makes it possible (capability — what it can do)
|
|
244
|
+
↑ produced by
|
|
245
|
+
three-stage the ORDER those engines are forged in (process — how it gets made)
|
|
246
|
+
process
|
|
247
|
+
```
|
|
248
|
+
|
|
249
|
+
**The four engines.** Each one is what some identity above is standing on. They were not invented for this
|
|
250
|
+
page: the readiness gate had already been scoring every identity against these same four capabilities in a
|
|
251
|
+
column of its own ([`ship_readiness_gate.md`](knowledge/shared/harness-core/ship_readiness_gate.md)), so
|
|
252
|
+
naming them was recognition rather than taxonomy-building.
|
|
253
|
+
|
|
254
|
+
| Engine | What it is | Identities it backs |
|
|
255
|
+
|---|---|---|
|
|
256
|
+
| `judgment-circuit` | what counts as success, which way to lean under uncertainty, what is out of scope, what never happens | ⑤ Amplifier · ② Incubator |
|
|
257
|
+
| `ship-gate` | mechanical blocking before an irreversible surface — commit, publish, delete, rewrite | ③ Governance gate |
|
|
258
|
+
| `context-continuity` | not losing the thread across compaction, sub-agents, machines, sessions | ① Cluster · ② Incubator |
|
|
259
|
+
| `external-grounding` | reaching outside the repo *before* asserting novelty or settling a design | ④ Frontier → org |
|
|
260
|
+
|
|
261
|
+
They are written by name, never by number — the table order here and the prose order elsewhere differ, so
|
|
262
|
+
"engine ④" decodes to two different engines depending on which you read.
|
|
263
|
+
|
|
264
|
+
`judgment-circuit` is the one that gets misread most, so state it flatly: **it is a coordinate system for
|
|
265
|
+
deciding, not a statement of who the harness is.** The four items in its row are the whole of it. Do not
|
|
266
|
+
shorten it to "the harness's soul" in English either — that word reads as *persona*, and the largest
|
|
267
|
+
finding of the measurement behind this engine (105 runs, comparing prompts with and without an identity
|
|
268
|
+
declaration) was precisely that the two are different things: adding *"you are a ~"* came out a **net loss**
|
|
269
|
+
on the weakest model tested, and taking it out recovered ground. A one-word rename re-fuses exactly what
|
|
270
|
+
that measurement separated. The figure itself is deliberately not quoted here — the source records it
|
|
271
|
+
without a scale, and an unscaled number on a front page is decoration; it is in
|
|
272
|
+
[`ship_readiness_gate.md`](knowledge/shared/harness-core/ship_readiness_gate.md) with its context. Nor is
|
|
273
|
+
a judgment circuit built in one sitting: FH hands a new harness a **seed draft**, and it fills in as that
|
|
274
|
+
harness is actually used.
|
|
275
|
+
|
|
276
|
+
**The three-stage process** — this is an *order of investment*, not a menu:
|
|
277
|
+
|
|
278
|
+
```
|
|
279
|
+
① Circuit before design the judgment circuit goes in FIRST — success · leaning · out-of-scope ·
|
|
280
|
+
never-do — not written up afterwards as a record of what you did
|
|
281
|
+
|
|
282
|
+
② Decorrelate in the split the work into checks that fail DIFFERENTLY and run them at once.
|
|
283
|
+
middle, to accelerate Choose which differences matter — a second reviewer of the same kind is
|
|
284
|
+
not decorrelation, it is the same blind spot twice. Parallelism has no
|
|
285
|
+
direction of its own; the judgment circuit from ① is what picks.
|
|
286
|
+
This is a way of WORKING, not the end-of-line check in ③.
|
|
287
|
+
|
|
288
|
+
③ Burn it down at the the four axes below. Adversarial review is ONE of them, not all of them
|
|
289
|
+
end, on four axes
|
|
290
|
+
```
|
|
291
|
+
|
|
292
|
+
**The four verification axes** — where "we reviewed it" usually turns out to mean only the first of them.
|
|
293
|
+
Read the middle column to pick one, and the right column to see what it catches:
|
|
294
|
+
|
|
295
|
+
| Axis | Reach for it when… | What it catches | Typical instrument |
|
|
296
|
+
|---|---|---|---|
|
|
297
|
+
| **ⓐ Different family** | the change decides something — a PASS/FAIL, a gate, a safety rule | the **implementation** is wrong | a reviewer from another model family (`auto-decorrelation`) |
|
|
298
|
+
| **ⓑ First real use** | you are about to trust a number, a count, or a scan's output | the **way you are measuring** is wrong | run it once against one real target and look at the result by hand |
|
|
299
|
+
| **ⓒ Record grounding** | you wrote down claims, figures or citations others will act on | the **claim** is wrong | someone who did not write it re-measures what it says |
|
|
300
|
+
| **ⓓ Revert and observe** | you added a test, a guard or a check and believe it protects you | the **anchor** is wrong — the check is decorative | delete the thing it guards and confirm *that specific* check goes red |
|
|
301
|
+
|
|
302
|
+
**You do not run all four every time, and that is the design.** A one-line fix earns none of them; a change
|
|
303
|
+
that returns a verdict earns ⓐ; a published number earns ⓑ and ⓒ; a new guard earns ⓓ; an irreversible
|
|
304
|
+
surface — publish, delete, history rewrite — earns whichever of the four its failure mode exposes, and the
|
|
305
|
+
benefit of the doubt goes to running one more. Multiplying reviewers is not the same as adding an axis.
|
|
306
|
+
|
|
307
|
+
One further axis sits outside this four because it changes *whose* ground truth you stand on rather than
|
|
308
|
+
*what* you check: **standpoint** — when a change crosses into another harness, run the diff from the
|
|
309
|
+
target's own repo and rules, not from your reading of them
|
|
310
|
+
([`field_verdict_crossfamily_gate.md §7`](knowledge/shared/harness-core/field_verdict_crossfamily_gate.md)).
|
|
311
|
+
|
|
312
|
+
> **Honest note — this is not a clean stack, and that is the point.** Stage ① and stage ③ are made of the
|
|
313
|
+
> same material as the engines, so the lower layer uses the upper one. The contradiction resolves on
|
|
314
|
+
> *subject*: the **engines** are what FH applies to your work, while the **process** is the order FH uses
|
|
315
|
+
> when forging its own engines. If the method had been borrowed from outside it would be unrelated to the
|
|
316
|
+
> engines; the overlap is the fingerprint of dogfooding. Full canon, including the sample limits behind
|
|
317
|
+
> each claim: [`fh_three_layer_canon.md`](knowledge/shared/harness-core/fh_three_layer_canon.md).
|
|
318
|
+
|
|
319
|
+
> **Self-healing here isn't a claim — check it.** `git log` in this repo is the record, and the shape
|
|
320
|
+
> repeats: a miss is caught, the fix is attacked, and the attack often lands on the fix rather than on the
|
|
321
|
+
> original. One you can open by hash — `cb74ea4`, where a register-consistency rule was added to
|
|
322
|
+
> `CLAUDE.md §Voice/Tone` after the harness drifted register mid-session. A second, in the same change
|
|
323
|
+
> that added this section: a checker whose whole job is finding tests nothing runs was caught reporting a
|
|
324
|
+
> green count off a script's *own comment*, and then the guard written to fix that turned out to have no
|
|
325
|
+
> test that would fail if it were deleted — found by a different model family, not by the author, and
|
|
326
|
+
> closed with a fixture that does fail. Commit hashes on feature branches do not survive squash-merge, so
|
|
327
|
+
> that one is cited by its shape rather than by an ID that would rot.
|
|
208
328
|
|
|
209
329
|
---
|
|
210
330
|
|
|
@@ -230,6 +350,10 @@ npx --package @chrono-meta/fh-gate fh-gate # default: Claude
|
|
|
230
350
|
FH_BACKEND=codex npx --package @chrono-meta/fh-gate fh-gate # Codex backend
|
|
231
351
|
FH_BACKEND=auto npx --package @chrono-meta/fh-gate fh-gate "src/foo.ts" full
|
|
232
352
|
# → FH_GATE_VERDICT: PASS | PENDING | BLOCKED | ESCALATE
|
|
353
|
+
|
|
354
|
+
# or, via Homebrew (same content, no npx prefix needed after install):
|
|
355
|
+
brew tap chrono-meta/forge-harness && brew install forge-harness
|
|
356
|
+
fh-gate
|
|
233
357
|
```
|
|
234
358
|
|
|
235
359
|
`fh-gate` uses the same FH governance prompt for both runtimes. `FH_BACKEND=claude` runs `claude --print`; `FH_BACKEND=codex` runs `codex exec`; `FH_BACKEND=auto` prefers Codex when both CLIs are present — note that `auto` is fallback *selection*: it runs ONE leg. `FH_BACKEND=cross` runs BOTH families and unions their findings (a finding only one family saw is still a finding, so it unions rather than votes); the verdict is the most severe across legs. It costs ~2x, so it is for load-bearing verdict/gate/irreversible-surface changes, not a default. The output always declares which legs actually ran (`FH_GATE_LEGS:`, `FH_GATE_DECORRELATED:`) — on a machine with only one family, `cross` degrades to that single leg and says so, because a single-family result that reads as cross-checked is worse than an honest one.
|
|
@@ -334,13 +458,21 @@ two more signatures keep it running: `harvest-loop` (each session's lessons beco
|
|
|
334
458
|
| `mcp-circuit-breaker` *(fh-commons)* | MCP tool failure pattern detection | "MCP keeps failing" |
|
|
335
459
|
| `ko-tech-writer` *(fh-commons)* | Korean technical-writing pipeline (register calibration, translationese removal, honesty layering, perceptual QA) | "기술문서 써줘", "번역투 고쳐줘" |
|
|
336
460
|
| `quench-challenger` *(fh-commons)* | Adversarial pressure-test agent | "Challenge this with a devil" |
|
|
337
|
-
|
|
|
461
|
+
| `auto-decorrelation` | Recruits a different-model-family reviewer for load-bearing changes | "Decorrelate this verification" |
|
|
462
|
+
| `video-ingest` | Video → agent context, routed by capability and length | "What does this video show?" |
|
|
463
|
+
| `fh` | Renders the hub map on demand, without a greeting | "fh" |
|
|
464
|
+
| *(+ remaining skills)* | marketplace-gate · contention-layer · deliberation · edit-manifest · goal-quench · install-doctor · memory-hygiene · prompt-regression · public-surface-audit · return-path-gate · salience-splitter | |
|
|
465
|
+
| **8 agents** | `challenger` · `quench-challenger` (adversarial) · `beginner` · `main-player` · `expert` (the user-mastery spectrum — cold read, daily use, domain authority) · `fact-checker` · `hub-persona-auditor` · `persona-innovator` | dispatched by the skills above, or by name |
|
|
338
466
|
|
|
339
467
|
| Active count | Diagnosis |
|
|
340
468
|
|:---:|---|
|
|
341
|
-
| **
|
|
342
|
-
| **
|
|
343
|
-
| **
|
|
469
|
+
| **~half the surface or more** | Advanced — chain agent-composer + sim-conductor + steel-quench + pipeline-conductor |
|
|
470
|
+
| **a handful up to that** | Activation stage — gradually enable unchecked assets |
|
|
471
|
+
| **almost none** | Early stage — start with `install-wizard` |
|
|
472
|
+
|
|
473
|
+
> These bands are a rough self-check, not a measurement — no artifact defines the thresholds, and the
|
|
474
|
+
> earlier fixed numbers were calibrated against a smaller roster, so they quietly drifted as the roster
|
|
475
|
+
> grew. Using more skills is also not the goal; using the ones your work actually needs is.
|
|
344
476
|
|
|
345
477
|
**Find a skill by what you're trying to do:**
|
|
346
478
|
|
|
@@ -376,7 +508,7 @@ Claude Code does not auto-select models by task complexity — you configure thi
|
|
|
376
508
|
| `/model opus` | Opus handles everything | Harness-editing sessions (Mode D) · maximum depth on every turn |
|
|
377
509
|
| `/model opusplan` | Opus *plans* · Sonnet executes *(when Opus engages)* | Cost-conscious routine coding — see caveat |
|
|
378
510
|
|
|
379
|
-
**Why default Sonnet now works**: measured (see
|
|
511
|
+
**Why default Sonnet now works**: measured (see *Measured, not asserted* below), *operating* FH is
|
|
380
512
|
nearly model-flat — the rules in context do most of the work. What still needs a stronger model is a
|
|
381
513
|
small set of depth-sensitive turns, and FH handles those itself: **some skills and agents declare a
|
|
382
514
|
model-tier floor** (e.g. `quench-challenger` floors at opus) and are dispatched as sub-agents at the
|
|
@@ -397,8 +529,13 @@ dispatch's own `model` parameter; the session model/plan-mode does **not** propa
|
|
|
397
529
|
> does not. Sub-agent token costs are CC-visible in the session jsonl under `message.model`.
|
|
398
530
|
|
|
399
531
|
**Measured, not asserted** (worked examples): on a blind rule-application battery, *operating* FH is
|
|
400
|
-
near model-flat —
|
|
401
|
-
Haiku 4.5
|
|
532
|
+
near model-flat — on a 30-point blind battery (2026-06-10) the four tiers run scored **94–100%**
|
|
533
|
+
(top-tier anchor / Opus 4.8 / Sonnet 4.6 / Haiku 4.5 = 100 / 100 / 97 / 94), and a 2026-07-03
|
|
534
|
+
replication re-anchored Opus 4.8, **Sonnet 5** and Haiku 4.5 at 16/16 each. Two honesty notes rather
|
|
535
|
+
than one round number: the source artifact deliberately leaves the top tier unnamed, so this page does
|
|
536
|
+
not name it either; and the **current** top tier has not been run on this battery — the doctrine below
|
|
537
|
+
is what carries forward, not the scores. The few lost points are format discipline, never a trap or
|
|
538
|
+
gate-class miss. The tiers
|
|
402
539
|
separate only on above-rubric *design* increments (developing the harness, not running it) — which is
|
|
403
540
|
why the default is Sonnet with **tier-floored dispatch** covering the depth-sensitive turns, and a
|
|
404
541
|
pinned stronger model is recommended only for harness-editing sessions.
|
|
@@ -460,7 +597,7 @@ Claude-side token cost does not increase when the extra reviewer is an external
|
|
|
460
597
|
|
|
461
598
|
> **FH papers** — the methodology below is documented, not just asserted:
|
|
462
599
|
> - **v1.0 — methodology** · [Zenodo](https://zenodo.org/records/20397566) (DOI 10.5281/zenodo.20397566). 2-layer design, 6-axis framework, 4-agent orchestration, and the compounding loop, with empirical evidence.
|
|
463
|
-
> - **cs.SE companion — governance-gate methodology** · **published** [Zenodo](https://zenodo.org/records/20680081) (DOI 10.5281/zenodo.20680081 · latest v1.1 10.5281/zenodo.20740038 · CC-BY-4.0) · arXiv submitted (cs.SE
|
|
600
|
+
> - **cs.SE companion — governance-gate methodology** · **published** [Zenodo](https://zenodo.org/records/20680081) (DOI 10.5281/zenodo.20680081 · latest v1.1 10.5281/zenodo.20740038 · CC-BY-4.0) · arXiv submitted (cs.SE); the moderation outcome is not tracked in this repo, so treat "submitted" as the last state this page can vouch for, not as current.
|
|
464
601
|
> - **cs.AI companion — "Governance Dividend"** · in preparation.
|
|
465
602
|
|
|
466
603
|
External convergence:
|