@chrono-meta/fh-gate 1.4.58 → 1.4.59
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/CLAUDE.md +23 -0
- package/knowledge/shared/harness-core/fh_detail_protocols.md +20 -4
- package/knowledge/shared/harness-core/harness_incubator_doctrine.md +30 -11
- package/knowledge/shared/harness-core/ship_readiness_gate.md +15 -9
- package/package.json +1 -1
- package/plugins/fh-commons/.claude-plugin/plugin.json +1 -1
- package/plugins/fh-meta/.claude-plugin/plugin.json +1 -1
|
@@ -11,13 +11,13 @@
|
|
|
11
11
|
"plugins": [
|
|
12
12
|
{
|
|
13
13
|
"name": "fh-meta",
|
|
14
|
-
"version": "1.4.
|
|
14
|
+
"version": "1.4.59",
|
|
15
15
|
"description": "Hub meta-operations toolkit — 33 skills + 7 agents. New in 1.4.53: `fh-codex-doctor` (npm bin) — Codex adapter drift scanner; reads the documented M1/M2/M3 skill tier map + skill/agent source and reports codex-native/adapter-required/claude-native/unclassified per unit, wired into `npm test`/`prepublishOnly` (fail-closed on unclassified Claude-native primitives). New in 1.4.49: steel-quench gains Step 0.6 Verdict-Invariance Probe (groundedness axis — a load-bearing judged gate's verdict must track behavior, not rubric phrasing; measured flip-count over cross-family paraphrases; arXiv:2605.06161 Policy Invariance anchor); multi_model_sidecar_strategy §Vendor-native harness (a model is strongest in its own vendor CLI — Claude/CC, GPT/codex, Gemini/Antigravity; a universal router degrades all of them, so it stays an autocomplete/QA sidecar, never orchestration); predelete_check.sh fail-closed rewrite; memory-hygiene A-TMA anchor. New in 1.4.48: phantom-quench + steel-quench gain external frontier anchors (arXiv:2607.02052 package-hallucination; arXiv:2607.02057 prompt-coverage-adequacy); README model-flat claim reframed from a per-release point-curve to structural invariants (operation flattens across tiers; depth tier-order fixed within a generation). New in 1.4.47: onboarding step ① surfaces the Mode D companion-store session-start load in the auto-read salience anchor (previously only in the local binding + rules, so a greeting could skip the load). New in 1.4.46: context-doctor command-output axis (route to rtk/proxy for verbose CLI stdout, complementing .claudeignore; risk-gated to token-scarce envs). New in 1.4.41: context-doctor 2026 trigger vocab (context engineering/rot/collapse) + phantom-citation hardening; hub measurement-integrity-checklist (cross-model measurement pre-flight: display-name pin/reps≥3/discriminating probe). New in 1.4.40: install-wizard queryable-wiki scaffold (INDEX + session-start read + R/W/C ingest). New in 1.4.39: auto-decorrelation (cross-family verifier sidecar recruitment) + video-ingest (capability-routed video ingestion). New in 1.4.x: verify-axis check-class taxonomy (mandatory-pass/measured/judged), no-reinvention Tier-0 inventory, 7-class failure taxonomy, Destructive-Op Gate, Wave-T (Temper), tier-floor governance, Mode D Model Notice, FC consent lane, default-Sonnet guidance. New in 1.3.0: public-surface-audit, field-harvest Mode B auto-trigger, 4-axis gate scope ext. Validated cross-CLI: Claude Code, Codex, Gemini.",
|
|
16
16
|
"source": "./plugins/fh-meta"
|
|
17
17
|
},
|
|
18
18
|
{
|
|
19
19
|
"name": "fh-commons",
|
|
20
|
-
"version": "1.4.
|
|
20
|
+
"version": "1.4.59",
|
|
21
21
|
"description": "Project-agnostic utility skills — 4 skills (convergence-loop · deliberation · mcp-circuit-breaker · token-budget-gate) + 1 agent (quench-challenger). Domain-independent utilities transplantable into any project.",
|
|
22
22
|
"source": "./plugins/fh-commons"
|
|
23
23
|
}
|
package/CLAUDE.md
CHANGED
|
@@ -82,6 +82,25 @@ Two orthogonal layers — never collapse them.
|
|
|
82
82
|
judgment rigor — if a response reads as more agreeable, less verified, or hedged, the tone layer has
|
|
83
83
|
leaked into the judgment layer and the response is wrong, not warm.
|
|
84
84
|
|
|
85
|
+
## Envelope-Boundary Discipline — the reinvention-reflex counterweight
|
|
86
|
+
|
|
87
|
+
When the operator's input introduces something that does **not** fit an existing asset or category — a
|
|
88
|
+
novel insight, a specific case that resists the known boxes, a live path with no slot — the default
|
|
89
|
+
reflex is to **normalize** it ("we have that / that's like X") and pull it back inside the envelope.
|
|
90
|
+
That pull mis-scores the new as familiar and can extinguish what would become net-new. The entire asset
|
|
91
|
+
base leans toward normalization (no-reinvention gate · `asset-placement-gate` · "build only what adds
|
|
92
|
+
governance"), so this is its deliberate **counterweight** — and the reflex **strengthens with maturity**
|
|
93
|
+
(more boxes to pattern-match against), so the counterweight must be explicit, never assumed.
|
|
94
|
+
|
|
95
|
+
**Discipline**: at the boundary, do **not** normalize. Hold the unfamiliar unfamiliar; test what it
|
|
96
|
+
actually *is* — net-new? tool-shaped (→ possible EMIT) or judgment-shaped (→ doctrine)? — **before**
|
|
97
|
+
mapping it to a known asset. This is the meta-harness's growth point: it evolves by *not-collapsing the
|
|
98
|
+
unfamiliar*, not by adding machinery. The reflex fires **before** memory recall, so this lives
|
|
99
|
+
always-loaded, not only in memory. (Measured 2026-07-14, one session, 3×: two identities each collapsed
|
|
100
|
+
onto their single hardest sub-mechanism, and a failure from a **non-harness** run mapped onto a harness
|
|
101
|
+
metric — each read a live-but-incomplete thing as zero, each caught by the operator, not self-caught.
|
|
102
|
+
Detail: `[[feedback_reinvention_reflex_normalization_counterweight]]`.)
|
|
103
|
+
|
|
85
104
|
## New Project Onboarding
|
|
86
105
|
|
|
87
106
|
> Detailed procedure: `knowledge/shared/rules/auto_project_mapping.md` (5-step mapping + §6 Full-Harness Mode)
|
|
@@ -459,6 +478,10 @@ let the innovator center a recommend cascade, produce a ranked install plan, and
|
|
|
459
478
|
**Guards**: (a) **non-overwriting is inviolable** — the one thing both revfactory surfaces get wrong; FH
|
|
460
479
|
proposes merge, never clobbers; (b) **no-reinvention** — Tier 0/1 first, scaffold only what adds governance;
|
|
461
480
|
(c) **company residency** — discovery of a company sibling repo surfaces it, does not auto-map/leak it;
|
|
481
|
+
promoted to a machine field (`residency` on the skill registry, `fh_detail_protocols.md §1-c`) so any
|
|
482
|
+
derived recommendation naming a `company`/`operator-private` entry lands only in gitignored `tracks/_meta/`
|
|
483
|
+
or the private companion store, never a tracked public file (chamber run #7, 2026-07-14 — the guard was
|
|
484
|
+
prose-only and the field didn't exist);
|
|
462
485
|
(d) **autonomy floor** — the discover/rank judgment is trusted at opus-tier+; below-floor, present the raw
|
|
463
486
|
recommend and ask; (e) **once per door-entry**, not a per-turn nag. This is the door ③ (accelerate) engine
|
|
464
487
|
and the new-project/harness-write path made autonomous — the operator asks once and the harness discovers,
|
|
@@ -58,10 +58,26 @@ Then **fail-closed** (irreversible-ish: a silent empty overwrite blinds the bus)
|
|
|
58
58
|
**and** the existing registry has >0 entries, do **not** overwrite — flag `⚠️ scan returned 0 (root=$ROOT);
|
|
59
59
|
kept existing registry` and skip the rewrite. Only rewrite when the scan is non-empty (or the registry
|
|
60
60
|
was absent). Group by project (parent dir name). Record per skill: name · path · description · trigger
|
|
61
|
-
phrases · `requires_cwd` · `direct-executable` · `origin(FH|project|external)`+trust
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
61
|
+
phrases · `requires_cwd` · `direct-executable` · `origin(FH|project|external)`+trust ·
|
|
62
|
+
**`residency(public|company|operator-private)`** · **`generality(general-purpose|project-specific)`**.
|
|
63
|
+
**Non-FH skills are propose-only (ask-tier), never auto-run** — a cross-project skill body is an
|
|
64
|
+
injection surface. Propose cross-project skills when a request maps to the registry. Scan once per
|
|
65
|
+
session. (Detection belongs at install too — `/install-wizard` records HUB/ROOT so the runtime never
|
|
66
|
+
guesses; see install-wizard.)
|
|
67
|
+
|
|
68
|
+
**`residency` derivation (mechanical, not asserted)** — from the project's git remote at scan time:
|
|
69
|
+
company org/account (e.g. a known company-dev namespace) → `company`; the operator's own account, repo
|
|
70
|
+
not `public` on the host → `operator-private`; else → `public`. **`generality` derivation (judged, not
|
|
71
|
+
mechanical — the scan flags a candidate, a session confirms)**: a skill whose description names no
|
|
72
|
+
project/company-specific noun and needs no project-local context to run elsewhere → `general-purpose`
|
|
73
|
+
candidate; confirmed only when a session actually reads the skill body and judges it works outside its
|
|
74
|
+
origin project (never auto-confirmed from the tag alone — chamber run #7, 2026-07-14, found the
|
|
75
|
+
generality field itself absent and the confirmed-general-purpose seed count effectively 0, which is
|
|
76
|
+
exactly the gap these two fields close). **Output landing-surface rule** (residency-restricted
|
|
77
|
+
combinations must never reach a public surface): any derived recommendation, "better-together" list, or
|
|
78
|
+
synergy output that names a `company`/`operator-private` residency entry lands **only** in gitignored
|
|
79
|
+
`tracks/_meta/` (or the private companion store) — **never** in tracked `tracks/{project}/` or any other
|
|
80
|
+
public-tracked file. A `public`-only combination may land in tracked docs.
|
|
65
81
|
|
|
66
82
|
### Step 2 — Active Proposal
|
|
67
83
|
|
|
@@ -99,19 +99,38 @@ this chamber's field emit terminus); an **FH-internal utility** (a skill/script/
|
|
|
99
99
|
field harness) instead routes through the **New-Skill Pre-Commit gate + `asset-placement-gate`** (the
|
|
100
100
|
same gate every FH asset passes). KILL emits nothing — the workspace stays as the evidence record.
|
|
101
101
|
|
|
102
|
-
**EMIT-worthiness — the measured screening criterion (
|
|
103
|
-
all KILL.
|
|
104
|
-
|
|
105
|
-
|
|
102
|
+
**EMIT-worthiness — the measured screening criterion (runs #5–#6, 2026-07-14)**: six chamber runs, EMIT
|
|
103
|
+
0/6, all KILL. A candidate is emit-worthy only if it clears **all four** of — (1) **net-new** (not a
|
|
104
|
+
reinvention of an existing FH/official asset, nor a cosmetic re-wrap of code that already ships — runs
|
|
105
|
+
#2–#4 died here, and run #6 partially here too — its core was already conceived in a parked FH signal);
|
|
106
106
|
(2) **artifact-shaped** (a tool/script/rule that stands alone, *not* a judgment-method — run #5's genuine
|
|
107
107
|
niche was real, but its value lived in a scan∪cross-family *lens*, i.e. an LLM judgment, which cannot be
|
|
108
|
-
`npm publish`ed); (3) **real-code-precision-adequate** (its mechanical form, measured on real
|
|
109
|
-
does not cry-wolf — run #5's rule scored 5/5 false-positive on 111 real files
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
108
|
+
`npm publish`ed); (3) **real-code/real-data-precision-adequate** (its mechanical form, measured on real
|
|
109
|
+
external inputs, does not cry-wolf — run #5's rule scored 5/5 false-positive on 111 real files; run #6's
|
|
110
|
+
heuristic scored 14/22 false-fire on a real sibling-folder scan); (4) **hub-state-independent** (run #6,
|
|
111
|
+
new axis — a capability whose value structurally depends on hub-held state, e.g. the curated registry +
|
|
112
|
+
company-residency knowledge, is not a standalone-first candidate: run #6's `harness-orchestrator` hit
|
|
113
|
+
private/company repos it structurally could not know to suppress, because residency knowledge lives only
|
|
114
|
+
in the hub. Contrast with fh-commons's 4 skills, which graduated cleanly to portable precisely because they
|
|
115
|
+
never depended on hub state). 0/6 candidates cleared all four. This is not "keep trying" — it is a
|
|
116
|
+
**pre-screen for future candidates**, cheapest-to-costliest: (1)/(2)/(4) are cheap to predict from the
|
|
117
|
+
candidate's own design (does it need hub-only knowledge to work correctly?); only (3) needs a measurement
|
|
118
|
+
leg (a real-input precision run), which runs #5–#6 established as the decisive test. The chamber's honest
|
|
119
|
+
value to date remains *screening* — preventing reinventions, low-precision births, and premature
|
|
120
|
+
standalone graduations — not yet *birthing*. **Graduation order** (run #6's positive finding): a
|
|
121
|
+
hub-state-dependent capability graduates hub-internal → proven in use → THEN extracted portable, never
|
|
122
|
+
speculated standalone-first — the only path every successfully-portable FH asset actually took.
|
|
123
|
+
|
|
124
|
+
**Chamber scope — what belongs in the chamber at all (run #7, 2026-07-14)**: run #7 tested a hub-internal
|
|
125
|
+
reactivation of the cluster-wizard signal and KILLed it — decisively on its own merits (its "narrow
|
|
126
|
+
net-new" claim collapsed against the real shipped registry and an already-existing synergy skill), but
|
|
127
|
+
it also surfaced a scope question worth keeping regardless: **a small feature graft onto an
|
|
128
|
+
already-shipped hub-internal mechanism is ordinary Mode D self-development under the 4-axis gate, not
|
|
129
|
+
automatically a chamber-EMIT question.** The chamber screens candidates that would become a **new
|
|
130
|
+
independent artifact** (a skill, a plugin, a standalone tool) — not every internal feature extension.
|
|
131
|
+
Route by this test: *would this, if built, be net-new as a standalone thing someone installs/adopts, or
|
|
132
|
+
is it two lines added to something already shipped?* The former is chamber-scope; the latter is ordinary
|
|
133
|
+
self-dev review.
|
|
115
134
|
|
|
116
135
|
*Vocabulary reservation (term hygiene, not standardization)*: a run of this skeleton is a **chamber
|
|
117
136
|
run** — going forward, run/workspace/log labels use "chamber" for incubation and keep "sim/simulation"
|
|
@@ -109,20 +109,26 @@ decision is logged here and the tag's notes state the real status.
|
|
|
109
109
|
| ③ | 거버넌스 게이트 (governance) | 🟢 GREEN | pre-commit/pre-push physically block; moat measured 3–4 family blind (HITL 8/8 ABSENT); cross-family caught a real companion-store-name leak 2026-07-14 (fail-closed) |
|
|
110
110
|
| ⑤ | 증폭자 (amplifier) | 🟢 GREEN | short-intent→literature-grounding→ultimate-doc real instances; rules-diet −18.2k measured; intent-routing probe 94% (below) |
|
|
111
111
|
| ④ | 프런티어→조직 전파 | 🟡 YELLOW | frontier-digest launchd auto + AX submission docs both real, but digest→org never closed as ONE pipeline |
|
|
112
|
-
| ① | 멀티하네스 클러스터
|
|
113
|
-
| ② | 프로젝트 인큐베이터
|
|
112
|
+
| ① | 멀티하네스 클러스터 | 🟡 PARTIAL | routing runs for real — 17 nodes mapped, sidecar-orchestrator, Skill Bus routing qasp/dashboard/stockbattle (so NOT 🔴 ideal-only). Missing: continuous 2-node relay channel + external-harness recommend (cluster-wizard parked) → 🟡 not 🟢 |
|
|
113
|
+
| ② | 프로젝트 인큐베이터 | 🟡 PARTIAL | incubation is running — **stockbattle is being incubated now** (S1 built, mid-flight) + qasp/pmh spin-out precedent + scaffold-emit shipped (doctrine: "emit shipped today as scaffold+approval; the chamber flow is the named target"). What's still 0 is the **formal chamber simulate-then-emit** mechanism (6 runs, 6 KILL — runs #5–#6 *measured* the emit-worthiness criterion: net-new ∧ artifact-shaped ∧ real-data-precision-adequate ∧ hub-state-independent, 0/6 cleared all four; run #6 also confirmed the graduation-order principle — hub-internal proof before standalone extraction, never the reverse). That mechanism is ONE path of ②, not the whole identity → 🔴 was too narrow; incubation runs but no closed emit-via-incubation yet → 🟡 |
|
|
114
114
|
|
|
115
115
|
**Cross-cutting measured (intent-based autonomous completion)**: blind floor-tier Sonnet trigger-accuracy
|
|
116
116
|
probe (n=10, 2026-07-14): **should-fire 7.5/8 (94%), false-fire 0/2**. One weak trigger (simulate-first /
|
|
117
117
|
incubator entry absorbed into deep-clarify) — the identity-② weakness surfaces in routing too.
|
|
118
118
|
|
|
119
|
-
**Verdict (2026-07-14)**: FH is tagged **`v0.1.0` = honest baseline**, not all-green. ③⑤ are
|
|
120
|
-
|
|
121
|
-
above). **`v1.0.0` remains the all-green target.** What blocks v1.0 is **
|
|
122
|
-
2-node
|
|
123
|
-
measured
|
|
124
|
-
artifact, tracked in `tracks/_meta/identity_audit_*.md`.
|
|
125
|
-
|
|
119
|
+
**Verdict (2026-07-14, ①② corrected)**: FH is tagged **`v0.1.0` = honest baseline**, not all-green. ③⑤ are
|
|
120
|
+
🟢, ①②④ 🟡, **none 🔴** — the `v0.1.0` notes state this and make no all-green claim (per the refined 0.x↔1.0
|
|
121
|
+
mapping above). **`v1.0.0` remains the all-green target.** What blocks v1.0 is **closing the 🟡s**: ①'s
|
|
122
|
+
continuous 2-node relay channel, ②'s first closed emit-via-incubation (formal chamber first EMIT — criterion
|
|
123
|
+
measured in run #5 — or a chamber-incubated spin-out closing), ④'s closed digest→org pipeline. Each remedy
|
|
124
|
+
is a run that leaves an artifact, tracked in `tracks/_meta/identity_audit_*.md`.
|
|
125
|
+
|
|
126
|
+
> **①② correction (2026-07-14)**: an earlier pass marked ①② 🔴 by collapsing each identity onto its most
|
|
127
|
+
> advanced *single mechanism* — ② onto the formal chamber EMIT (0/5), ① onto the continuous-relay channel.
|
|
128
|
+
> That contradicts the doctrine (emit is "shipped today as scaffold+approval; the chamber is the named
|
|
129
|
+
> target") and the live reality (routing runs; **stockbattle is being incubated now**; qasp/pmh spun out).
|
|
130
|
+
> An identity whose broad path *runs* is not 🔴 ideal-only. Both are 🟡: running, not yet closed. Lesson:
|
|
131
|
+
> do not score an identity by its hardest sub-mechanism — that reads a live-but-incomplete path as zero.
|
|
126
132
|
|
|
127
133
|
## For a field harness (e.g. pmh, qasp)
|
|
128
134
|
Same gate, its own identities. A field harness ships to its team when its identity checklist is all-green,
|
package/package.json
CHANGED