@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.
Files changed (44) hide show
  1. package/.claude-plugin/marketplace.json +2 -2
  2. package/CATALOG.md +19 -0
  3. package/CHEATSHEET.md +9 -1
  4. package/CLAUDE.md +28 -2
  5. package/README.ja.md +229 -42
  6. package/README.ko.md +241 -45
  7. package/README.md +168 -31
  8. package/README.zh.md +219 -40
  9. package/docs/OUTPUT_EVIDENCE.md +21 -12
  10. package/docs/pillars.svg +3 -7
  11. package/knowledge/shared/harness-core/fh_ecosystem_positioning.md +2 -0
  12. package/knowledge/shared/harness-core/fh_global_positioning_and_distribution_roadmap.md +136 -0
  13. package/knowledge/shared/harness-core/fh_three_layer_canon.md +20 -0
  14. package/knowledge/shared/harness-core/field_verdict_crossfamily_gate.md +215 -2
  15. package/knowledge/shared/harness-core/ship_readiness_gate.md +112 -0
  16. package/knowledge/shared/learnings/subagent_invocations_log.yaml +65 -0
  17. package/package.json +5 -1
  18. package/plugins/fh-commons/.claude-plugin/plugin.json +1 -1
  19. package/plugins/fh-commons/skills/ko-tech-writer/SKILL.md +63 -12
  20. package/plugins/fh-meta/.claude-plugin/plugin.json +1 -1
  21. package/plugins/fh-meta/CHANGELOG.md +166 -0
  22. package/plugins/fh-meta/skills/auto-decorrelation/SKILL.md +30 -0
  23. package/scripts/consent_registry_check.sh +124 -1
  24. package/scripts/degrade_direction_scan.sh +10 -1
  25. package/scripts/digest_landing_check.sh +20 -4
  26. package/scripts/fh_node_check.sh +128 -1
  27. package/scripts/fh_session_load.sh +22 -2
  28. package/scripts/frontier_digest_autopilot.sh +229 -0
  29. package/scripts/lane_runner_check.sh +294 -26
  30. package/scripts/package_coverage_check.sh +17 -0
  31. package/scripts/postinstall_notice.js +34 -0
  32. package/scripts/selfcheck.sh +183 -5
  33. package/scripts/test_consent_registry.sh +99 -0
  34. package/scripts/test_degrade_scan_shell_probes.sh +75 -0
  35. package/scripts/test_field_canon_lanes.sh +29 -5
  36. package/scripts/test_lane_runner_lanes.sh +295 -0
  37. package/scripts/test_node_check_lanes.sh +217 -0
  38. package/scripts/test_selfcheck_state_lanes.sh +61 -0
  39. package/scripts/test_stale_clone_guard_lanes.sh +21 -7
  40. package/scripts/test_version_lockstep_lanes.sh +62 -0
  41. package/scripts/version_lockstep_check.sh +143 -1
  42. package/templates/.git-hooks/pre-commit +22 -1
  43. package/templates/consent_classes.yaml.example +30 -0
  44. 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. In practice it works in four ways:
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
- **① Assemble** FH runs a *cluster* of harnesses at optimized token cost and hands you the right one for
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
- **② Forge** *(the quality gate)* every change earns its way through adversarial · phantom · regression
186
- gates. This is not "check more." It is a **responsibility router**: as automation rises, human sign-offs
187
- get fewer but heavier, so the gate spends your attention only where a change is *irreversible*. Quality is
188
- the lever; the speed is the result.
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
- **③ Sidecar** capability itself stays on the frontier. FH dispatches across multiple LLMs (Claude,
191
- Codex, Gemini, local) so raw power is never tied to one model or one generation. The point is *not*
192
- patching each model's weak spots that scaffolding dies as models improve. It is **riding the frontier's
193
- evolution**: shed what the substrate now does natively, absorb what it ships next. Decorrelation is
194
- today's trust lever (a cross-family panel beats a single model's ceiling); co-evolution is the structure.
195
-
196
- **④ Self-evolving loop** the harness gets better without being rebuilt, in two directions: **outward**,
197
- where each session's lessons compound into the hub so the next project starts faster, and **inward**,
198
- where it catches and repairs *its own* defects (the 4-axis gate, bidirectional verify, per-user
199
- adaptation).
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
- > **Self-healing here isn't a claim — it's in the commit log.** This very README's voice rules were fixed
205
- > mid-session by FH catching its own drift: a tone miss → diagnosis → a cross-family challenger that
206
- > attacked *its own first fix* re-fix floor-tier re-verification memory update. A harness repairing
207
- > its own defect, on the record — not a slogan.
233
+ ---
234
+
235
+ ## How it is built processenginesidentity
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
- | *(+ additional assets)* | marketplace-gate · contention-layer · edit-manifest · fact-checker · goal-quench · hub-persona-auditor · install-doctor · memory-hygiene · persona-innovator · prompt-regression · public-surface-audit · salience-splitter | |
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
- | **28+** | Advanced — chain agent-composer + sim-conductor + steel-quench + pipeline-conductor |
342
- | **10–27** | Activation stage — gradually enable unchecked assets |
343
- | **0–9** | Early stage — start with `install-wizard` |
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 §Model setup evidence note below), *operating* FH is
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 — **every Claude tier measured scores 94–100%** (Fable, Opus 4.8, Sonnet 4.6 and 5,
401
- Haiku 4.5); the few lost points are format discipline, never a trap or gate-class miss. The tiers
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, in moderation).
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: