@chrono-meta/fh-gate 1.4.0 → 1.4.2
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/CATALOG.md +1 -1
- package/README.md +5 -5
- package/package.json +2 -2
- package/plugins/fh-meta/skills/harness-doctor/SKILL_detail.md +0 -1
- package/plugins/fh-meta/skills/sim-conductor/SKILL.md +2 -2
- package/plugins/fh-meta/skills/steel-quench/SKILL.md +47 -2
- package/plugins/fh-meta/skills/steel-quench/SKILL_detail.md +58 -0
- /package/{CONTRIBUTING.md → docs/CONTRIBUTING.md} +0 -0
package/CATALOG.md
CHANGED
|
@@ -9,7 +9,7 @@ AI reads this file first when searching past work. Open individual files for det
|
|
|
9
9
|
<!-- Add entries in reverse date order (newest at top) -->
|
|
10
10
|
|
|
11
11
|
### 2026-06-05 | _audit | sister-asset, gstack, field-harness, garry-tan
|
|
12
|
-
**File:** tracks/_audit/session_2026_06_05_gstack-sister.md (private mirror
|
|
12
|
+
**File:** tracks/_audit/session_2026_06_05_gstack-sister.md (private companion mirror)
|
|
13
13
|
gstack (garrytan, ~66K stars) sister-asset cross-audit — the field/execution-harness counterpart to FH's meta/governance harness, both running on the Claude Code skill substrate. FH governs / gstack executes (composes, not competes). Bidirectional import (frictionless one-command install, opinionated front door, privacy-first telemetry) / propagate (post-ship governance gate, cross-project knowledge compounding, HITL promotion gate) lists recorded.
|
|
14
14
|
- Decision: public index only — bet evidence (B1·ID·SB) + full audit held in private store; external cross-link proposal to garrytan/gstack gated behind 3+ persona × 4-axis audit.
|
|
15
15
|
|
package/README.md
CHANGED
|
@@ -28,9 +28,9 @@
|
|
|
28
28
|
</p>
|
|
29
29
|
|
|
30
30
|
<p align="center">
|
|
31
|
-
<a href="ETHOS.md"><b>The principles</b></a> ·
|
|
32
|
-
<a href="WHY.md"><b>Why it exists</b></a> ·
|
|
33
|
-
<a href="OUTPUT_EVIDENCE.md"><b>The evidence</b></a> ·
|
|
31
|
+
<a href="docs/ETHOS.md"><b>The principles</b></a> ·
|
|
32
|
+
<a href="docs/WHY.md"><b>Why it exists</b></a> ·
|
|
33
|
+
<a href="docs/OUTPUT_EVIDENCE.md"><b>The evidence</b></a> ·
|
|
34
34
|
<a href="CHEATSHEET.md"><b>How to use it</b></a>
|
|
35
35
|
</p>
|
|
36
36
|
|
|
@@ -164,7 +164,7 @@ hardened by attack, and only then does it ship faster, for having survived.
|
|
|
164
164
|
| → **Accelerate** | a blade that survived the forge cuts faster | `goal-quench` — *Pass → Accelerate* |
|
|
165
165
|
|
|
166
166
|
Three movements are shipped; **temper** is the direction ahead — and naming the movement we have *not*
|
|
167
|
-
finished is the point (see [`ETHOS.md`](ETHOS.md#the-forge)). Around the forge, two more signatures keep
|
|
167
|
+
finished is the point (see [`ETHOS.md`](docs/ETHOS.md#the-forge)). Around the forge, two more signatures keep
|
|
168
168
|
it running: `harvest-loop` (each session's lessons become permanent skills) and `agent-composer`
|
|
169
169
|
(orchestrate the dispatch). The other skills wait until you need them — full list below.
|
|
170
170
|
|
|
@@ -286,5 +286,5 @@ External convergence:
|
|
|
286
286
|
| [`CHEATSHEET.md`](CHEATSHEET.md) | Full command reference |
|
|
287
287
|
| [`AGENTS.md`](AGENTS.md) | Runtime agent specs |
|
|
288
288
|
| [`CATALOG.md`](CATALOG.md) | Past work search index |
|
|
289
|
-
| [`CONTRIBUTING.md`](CONTRIBUTING.md) | How to contribute skills and patterns |
|
|
289
|
+
| [`CONTRIBUTING.md`](docs/CONTRIBUTING.md) | How to contribute skills and patterns |
|
|
290
290
|
| [`fh_integration_contract.md`](knowledge/shared/harness-core/fh_integration_contract.md) | Governance gate spec |
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@chrono-meta/fh-gate",
|
|
3
|
-
"version": "1.4.
|
|
3
|
+
"version": "1.4.2",
|
|
4
4
|
"description": "FH runtime adapters — run FH governance, skills, and agents via Claude or Codex with machine-parseable gates.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"keywords": [
|
|
@@ -45,7 +45,7 @@
|
|
|
45
45
|
"CATALOG.md",
|
|
46
46
|
"CHEATSHEET.md",
|
|
47
47
|
"CLAUDE.md",
|
|
48
|
-
"CONTRIBUTING.md",
|
|
48
|
+
"docs/CONTRIBUTING.md",
|
|
49
49
|
"bin/fh-gate.js",
|
|
50
50
|
"bin/fh-run.js",
|
|
51
51
|
"bin/fh-goal.js",
|
|
@@ -420,7 +420,6 @@ fi
|
|
|
420
420
|
|
|
421
421
|
```bash
|
|
422
422
|
if echo "$changed" | grep -q "^README\.md$"; then
|
|
423
|
-
grep -n "chrono-code" README.md 2>/dev/null && echo "STALE: 'chrono-code' found — should be 'chrono-meta'" || true
|
|
424
423
|
actual=$(ls -d plugins/fh-meta/skills/*/ plugins/fh-commons/skills/*/ 2>/dev/null | wc -l | tr -d ' ')
|
|
425
424
|
readme_count=$(grep -oE '[0-9]+ (fh-meta[^)]+)?skills' README.md 2>/dev/null | head -1 || echo "not found")
|
|
426
425
|
echo "Actual skills: $actual | README mentions: $readme_count"
|
|
@@ -276,7 +276,7 @@ Consumer agent attempts actual use (not just reads and judges). Grades: F (funct
|
|
|
276
276
|
|
|
277
277
|
## Step 1.5 — Persona Output Protocol + Neutral Synthesizer (parallax)
|
|
278
278
|
|
|
279
|
-
Generalized from the field `deep-insight` multi-persona pattern (
|
|
279
|
+
Generalized from the field `deep-insight` multi-persona pattern (private companion store), domain-stripped — the *pattern*
|
|
280
280
|
is renamed **parallax** for public FH (it is a mode of this skill, not a separate skill — see asset-placement
|
|
281
281
|
2026-06-06). It gives the persona dispatch above a shared output contract + a neutral aggregator, so
|
|
282
282
|
multi-persona findings stay comparable and the synthesis injects no bias of its own.
|
|
@@ -328,7 +328,7 @@ supplies the specialist lens. Same ①installed → ②fallback → ③fetch pri
|
|
|
328
328
|
external harness's review-skills count as ① installed sources, widening the persona pool without FH
|
|
329
329
|
shipping every specialist.
|
|
330
330
|
|
|
331
|
-
> **Absence check — resolved (added above)**: the clean replication (
|
|
331
|
+
> **Absence check — resolved (added above)**: the clean replication (companion-store experiment, Arm F: identical
|
|
332
332
|
> artifact, explicit omission prompt, ownership-only variable) found self ≈ isolated (~90% overlap) —
|
|
333
333
|
> **omission-detection is self-administrable when explicitly asked**, refuting the earlier "the author
|
|
334
334
|
> can't see their own omissions" (Arm E, a prompt/design-drift artifact). So the Absence check is a
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: steel-quench
|
|
3
3
|
description: >-
|
|
4
|
-
A meta-skill that concretizes a designer's anxiety into AI-driven all-angle challenger attacks (via fh-commons:quench-challenger) and shakes off flaws through defensive rounds. Systematically surfaces root weaknesses of near-complete projects wave by wave, guaranteeing near-human-review quality without direct human deep inspection. Wave 4 (Meta-Aware Adversary) is an advanced mode where the challenger uses its own AI nature — hallucination, context collapse, prompt injection, tool lock-in — as attack vectors. Built-in fh-commons:quench-challenger agent outputs harness structure 6-axis attack+prescription pairs; after convergence, fh-meta:persona-innovator auto-extracts new patterns. Triggered by: "quench this", "devil's judgment", "all-angle review", "end-to-end verification", "steel quench", "deep pre-completion inspection", "shake out design anxiety", "attack from the root".
|
|
4
|
+
A meta-skill that concretizes a designer's anxiety into AI-driven all-angle challenger attacks (via fh-commons:quench-challenger) and shakes off flaws through defensive rounds. Systematically surfaces root weaknesses of near-complete projects wave by wave, guaranteeing near-human-review quality without direct human deep inspection. Wave 4 (Meta-Aware Adversary) is an advanced mode where the challenger uses its own AI nature — hallucination, context collapse, prompt injection, tool lock-in — as attack vectors. Wave-P3 (gate-passage re-attack) re-attacks an artifact on Coverage/Narrative/False-confidence right after an upstream gate declares PASS. Built-in fh-commons:quench-challenger agent outputs harness structure 6-axis attack+prescription pairs; after convergence, fh-meta:persona-innovator auto-extracts new patterns. Triggered by: "quench this", "devil's judgment", "all-angle review", "end-to-end verification", "steel quench", "deep pre-completion inspection", "shake out design anxiety", "attack from the root", "did it really pass?".
|
|
5
5
|
user-invocable: true
|
|
6
6
|
allowed-tools: ["Read", "Write", "Edit", "Bash", "Grep", "Glob", "WebSearch", "Agent"]
|
|
7
7
|
model: opus
|
|
@@ -25,6 +25,7 @@ A designer's anxiety is most dangerous when vague. steel-quench breaks that anxi
|
|
|
25
25
|
| "shake out design anxiety", "deep pre-completion inspection" | Concretize vague anxiety |
|
|
26
26
|
| "attack from the root" | Re-verify from reason for existence |
|
|
27
27
|
| "diagnose with counterexample", "use this bad case as reference" | Phase 0 calibration |
|
|
28
|
+
| "did it really pass?", "re-attack after the gate", "the gate said PASS" | Wave-P3 gate-passage re-attack |
|
|
28
29
|
| `/steel-quench` | Explicit call |
|
|
29
30
|
|
|
30
31
|
---
|
|
@@ -38,7 +39,7 @@ A designer's anxiety is most dangerous when vague. steel-quench breaks that anxi
|
|
|
38
39
|
| **Wave 2** | Defense — defend or state as residual risk | — |
|
|
39
40
|
| **Wave 3+** | Convergence — repeat until zero new S-grade | Zero new S-grade |
|
|
40
41
|
| **Wave 4** (optional) | Meta-Aware Adversary — AI uses its own nature as attack vector | Zero new S-grade + AI-specific criteria |
|
|
41
|
-
| **Wave-P3** (
|
|
42
|
+
| **Wave-P3** (optional) | Gate-passage re-attack — when an upstream gate declares PASS, re-attack the just-passed artifact on Coverage / Narrative / False-confidence | All 3 dimensions Attack Failed |
|
|
42
43
|
| **Wave 5** (optional) | Multi-Team Adversarial Panel — external CLIs or cross-session Claude | Zero new S-grade cross-team |
|
|
43
44
|
|
|
44
45
|
---
|
|
@@ -148,6 +149,49 @@ Wave 4 convergence = Wave 3 criteria + 3 AI-specific vectors actually reviewed +
|
|
|
148
149
|
|
|
149
150
|
---
|
|
150
151
|
|
|
152
|
+
## Wave-P3 — Gate-Passage Re-Attack (optional)
|
|
153
|
+
|
|
154
|
+
**Activation**: When an upstream gate declares PASS on an artifact — any "declared-complete boundary"
|
|
155
|
+
(a verification gate's terminal PASS, a `/pipeline-conductor` green sweep, a `/marketplace-gate` listing
|
|
156
|
+
verdict, the 4-axis auto-gate marker, a domain TC/coverage gate). Propose preemptively, run after approval.
|
|
157
|
+
No gate-PASS in scope → skip Wave-P3 entirely.
|
|
158
|
+
|
|
159
|
+
> A 1-round gate PASS is exactly when reviewers stop looking — "we just passed" is the lowest-vigilance
|
|
160
|
+
> moment in any workflow. Wave-P3 distrusts the declaration and re-attacks the just-passed artifact on three
|
|
161
|
+
> dimensions the gate's own pass criteria structurally could not check. Only when all three Attack Failed can
|
|
162
|
+
> a **"Real PASS"** be declared.
|
|
163
|
+
|
|
164
|
+
**Agent utilization**:
|
|
165
|
+
- `fh-commons:quench-challenger` (optional) — adds 6-axis structural attack to each dimension. If absent, run the 3 dimensions directly.
|
|
166
|
+
- `fh-meta:persona-innovator` (after convergence) — error/gap patterns found during Wave-P3 → auto-propose new Cross-Project Pattern rows or skill-candidate signals.
|
|
167
|
+
|
|
168
|
+
The three dimensions generalize the gate's three blind spots:
|
|
169
|
+
|
|
170
|
+
| # | Dimension | The blind spot it attacks |
|
|
171
|
+
|:---:|---|---|
|
|
172
|
+
| Wave-P3a | **Coverage** | *What did the gate not check?* Items marked covered/passed that lack a traceable artifact (ID, test, file, citation). |
|
|
173
|
+
| Wave-P3b | **Narrative** | *What story does the passed artifact tell that may be wrong?* Residual hardcoded/environment-coupled values and vague, unverifiable claims the PASS declaration smuggled through. |
|
|
174
|
+
| Wave-P3c | **False-confidence** | *Did the gate produce false confidence?* High-risk items that passed carrying only a binary pass/fail, with no residual-risk or failure-mode caveat. |
|
|
175
|
+
|
|
176
|
+
Each dimension is `Attack Succeeded` (defect found) or `Attack Failed` (clean).
|
|
177
|
+
|
|
178
|
+
**Wave-P3 Done When**:
|
|
179
|
+
```
|
|
180
|
+
All 3 dimensions [Attack Failed] → ✅ Real PASS → activate fh-meta:persona-innovator (extract new patterns)
|
|
181
|
+
Any 1 [Attack Succeeded] → fix affected items, re-run Wave-P3 (max 2 re-runs)
|
|
182
|
+
Still [Attack Succeeded] after 2 re-runs → "gate structural redesign required" → ESCALATE
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
**Basis**: reverse-imported from a field-side sister harness (private companion signal, 2026-06-08). Field
|
|
186
|
+
evidence: a test-case coverage gate declared a 1-round PASS, then additional FAILs surfaced in rounds 2–3 —
|
|
187
|
+
the gate-PASS-then-defect-found-in-next-stage pattern Wave-P3 collapses. Generalized from the field's
|
|
188
|
+
domain-coupled (a spec→test-case gate) form to a gate-agnostic boundary hook. Shares its root with
|
|
189
|
+
`fh-commons:convergence-loop` (single-pass distrust).
|
|
190
|
+
|
|
191
|
+
> **Detail**: See `SKILL_detail.md §WaveP3` — per-dimension attack questions, gap criteria, and output format — read when running a gate-passage re-attack.
|
|
192
|
+
|
|
193
|
+
---
|
|
194
|
+
|
|
151
195
|
## External-GT Adjudication (when the target has a public ground truth)
|
|
152
196
|
|
|
153
197
|
When quenching a **public artifact that has its own ground truth** — a repo's open issues, test suite, or
|
|
@@ -242,6 +286,7 @@ sim-conductor Area A (external user perspective)
|
|
|
242
286
|
- **Always check self-referential pattern (P3).** Cross-validate Wave results with external criteria.
|
|
243
287
|
- **Public target → adjudicate against external GT before claiming.** A finding the target's own docs/policy/threat-model marks intentional or out-of-scope is a false positive, not a catch. See §External-GT Adjudication.
|
|
244
288
|
- **Attack surface limit**: steel-quench attacks output content patterns. Phantom Claim detection → `phantom-quench`.
|
|
289
|
+
- **Gate cross-reference**: any FH skill that declares a PASS / green / listing-ready verdict (`pipeline-conductor`, `marketplace-gate`, the 4-axis auto-gate, `convergence-loop`, domain coverage gates) is a valid Wave-P3 entry point. Invoke `/steel-quench` Wave-P3 on the just-passed artifact rather than editing each gate to embed it — the hook lives here, callers reference it.
|
|
245
290
|
|
|
246
291
|
## Failure Fallback
|
|
247
292
|
|
|
@@ -170,6 +170,64 @@ New S-grade blockers: N (from AI-specific vectors: N)
|
|
|
170
170
|
|
|
171
171
|
---
|
|
172
172
|
|
|
173
|
+
## §WaveP3 — Gate-Passage Re-Attack (per-dimension spec + output format)
|
|
174
|
+
|
|
175
|
+
> Summary, activation, agent utilization, and Done When live in `SKILL.md §Wave-P3`. This section holds the
|
|
176
|
+
> per-dimension attack questions and the output format — read when actually running a gate-passage re-attack.
|
|
177
|
+
|
|
178
|
+
### Wave-P3a — Coverage re-attack
|
|
179
|
+
|
|
180
|
+
Second-pass search for gaps hiding behind the pass declaration — *what the gate did not check.*
|
|
181
|
+
|
|
182
|
+
| Attack Question | Gap Criterion |
|
|
183
|
+
|---|---|
|
|
184
|
+
| Do items the gate marked "covered" / "documented" / "done" actually have a traceable artifact (test ID, file, commit, citation)? | Marked-covered item without a backing artifact = gap |
|
|
185
|
+
| Are boundary/edge cases the gate's scope implied actually each enumerated? | Implied-but-absent case = gap |
|
|
186
|
+
| Does every claimed mapping (state→test, requirement→implementation, claim→source) resolve 1:1? | Unresolved mapping = gap |
|
|
187
|
+
|
|
188
|
+
Verdict: `[Wave-P3a: Attack Succeeded]` (gap found) / `[Wave-P3a: Attack Failed]` (no gap)
|
|
189
|
+
|
|
190
|
+
### Wave-P3b — Narrative re-attack
|
|
191
|
+
|
|
192
|
+
Residue the pass declaration carried through unexamined — *the story the artifact tells that may be wrong.*
|
|
193
|
+
|
|
194
|
+
| Attack Question | Residue Criterion |
|
|
195
|
+
|---|---|
|
|
196
|
+
| Do passed outputs hardcode concrete values where a parameter/placeholder belongs? | 1 hardcoded value = residue |
|
|
197
|
+
| Do passed outputs contain unverifiable vague terms ("works correctly", "handled properly", "normally")? | 1 vague term = residue |
|
|
198
|
+
| Do passed outputs assume environment-coupled values (absolute paths, fixed accounts, machine-specific config)? | 1 coupled assumption = residue |
|
|
199
|
+
|
|
200
|
+
Verdict: `[Wave-P3b: Attack Succeeded]` (residue found) / `[Wave-P3b: Attack Failed]` (clean)
|
|
201
|
+
|
|
202
|
+
### Wave-P3c — False-confidence re-attack
|
|
203
|
+
|
|
204
|
+
High-risk items that passed without a caveat — *did the gate manufacture confidence it had not earned?*
|
|
205
|
+
|
|
206
|
+
| Attack Question | Missing Criterion |
|
|
207
|
+
|---|---|
|
|
208
|
+
| Do high-risk items (irreversible action, security boundary, branch/assignment logic) carry a failure-mode / FP caveat? | Missing caveat on a high-risk item = gap |
|
|
209
|
+
| Do items prone to confusion (near-identical states, off-by-one boundaries) carry a confusion warning? | Missing warning = gap |
|
|
210
|
+
| Among the highest-priority items, do >50% carry only binary pass/fail with no residual-risk note? | Ratio exceeded = gap |
|
|
211
|
+
|
|
212
|
+
Verdict: `[Wave-P3c: Attack Succeeded]` (missing found) / `[Wave-P3c: Attack Failed]` (all labeled)
|
|
213
|
+
|
|
214
|
+
### Wave-P3 Output Format
|
|
215
|
+
|
|
216
|
+
```
|
|
217
|
+
## Wave-P3 — Gate-Passage Re-Attack Results (gate: {which gate declared PASS})
|
|
218
|
+
|
|
219
|
+
| Dimension | Attack Result | Discovered Items | Fix Required |
|
|
220
|
+
|:---:|:---:|---|:---:|
|
|
221
|
+
| Wave-P3a (Coverage) | Succeeded/Failed | [gaps or none] | Y/N |
|
|
222
|
+
| Wave-P3b (Narrative) | Succeeded/Failed | [residue or none] | Y/N |
|
|
223
|
+
| Wave-P3c (False-confidence) | Succeeded/Failed | [missing or none] | Y/N |
|
|
224
|
+
|
|
225
|
+
✅ Real PASS → persona-innovator: [N new pattern/rule candidates]
|
|
226
|
+
❌ Fix required, re-run (round N)
|
|
227
|
+
```
|
|
228
|
+
|
|
229
|
+
---
|
|
230
|
+
|
|
173
231
|
## §Wave5 — Multi-Team Adversarial Panel (Full Spec)
|
|
174
232
|
|
|
175
233
|
**Activation**: After Wave 1~4 convergence + A-grade items remain. `--sidecar` flag or "run sidecar wave".
|
|
File without changes
|