@chrono-meta/fh-gate 1.4.15 → 1.4.16
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.md +5 -1
- package/package.json +1 -1
- package/plugins/fh-meta/agents/expert.md +2 -2
- package/plugins/fh-meta/skills/goal-quench/SKILL.md +8 -0
- package/plugins/fh-meta/skills/phantom-quench/SKILL.md +5 -3
- package/scripts/selfcheck.sh +21 -0
- package/plugins/fh-meta/skills/source-grounding-audit/SKILL.md +0 -42
package/CLAUDE.md
CHANGED
|
@@ -194,7 +194,11 @@ the operator (one line), mirroring §Floor governance.
|
|
|
194
194
|
|
|
195
195
|
If `model:`-pinned dispatch is unavailable (plan/billing gate), fall back to a cross-session headless
|
|
196
196
|
run (`claude -p "<trigger>" --model <tier>` in the target cwd) — stronger isolation, zero instruction
|
|
197
|
-
contamination. 2026-06-
|
|
197
|
+
contamination. **Saturation disguise (N=2, 2026-06-11/12)**: the same "Usage credits required for 1M
|
|
198
|
+
context" error also fires when the *session* is near context saturation, not the plan gate — in a
|
|
199
|
+
long-running session, compact (flush handoff state to disk first) and retry the dispatch once before
|
|
200
|
+
concluding the gate is closed (identical opus-pinned dispatch failed pre-compaction, succeeded
|
|
201
|
+
post-compaction 2026-06-12). 2026-06-15+: headless `claude -p` draws from the hard-capped credit pool, not the
|
|
198
202
|
subscription — prefer in-session Agent dispatch when the plan gate allows; take the headless fallback
|
|
199
203
|
knowingly. Record sim results in the Axes 2–3 marker + sub-agent invocation log.
|
|
200
204
|
|
package/package.json
CHANGED
|
@@ -24,10 +24,10 @@ What expert grounds against:
|
|
|
24
24
|
What expert does NOT rely on:
|
|
25
25
|
- Its own unverified parametric recall ("I think X is true")
|
|
26
26
|
- Internal hub assets only (that is fact-checker's job — internal grep)
|
|
27
|
-
- Declared-source-file back-tracing only (that is
|
|
27
|
+
- Declared-source-file back-tracing only (that is phantom-quench's job)
|
|
28
28
|
```
|
|
29
29
|
|
|
30
|
-
**Boundary (no overlap)**: `fact-checker` greps the *hub/own environment*; `
|
|
30
|
+
**Boundary (no overlap)**: `fact-checker` greps the *hub/own environment*; `phantom-quench` traces claims to *declared internal source files*; `expert` checks against the *external world / frontier*. The three cover internal-duplication, internal-provenance, and external-accuracy respectively.
|
|
31
31
|
|
|
32
32
|
## Accuracy Matrix
|
|
33
33
|
|
|
@@ -296,6 +296,14 @@ Output to user (one line only):
|
|
|
296
296
|
|
|
297
297
|
Do not ask for confirmation. The user may override by re-running `/goal-quench --sidecar none`.
|
|
298
298
|
|
|
299
|
+
**Dispatch-failure triage (saturation disguise)**: a sidecar dispatch that fails with a 1M-context /
|
|
300
|
+
usage-credits error late in a long run may be reporting *session context saturation*, not a billing
|
|
301
|
+
gate (measured 2026-06-12: identical error pre-compaction; the same opus-pinned dispatch succeeded
|
|
302
|
+
post-compaction with the sub-agent completing normally). Triage order: compact — flushing handoff
|
|
303
|
+
state to disk first — → retry the dispatch once → only then take the headless `claude -p` fallback
|
|
304
|
+
(credit-pool cost) or an inline at-floor pass. Concluding "billing gate" from the first failure
|
|
305
|
+
skips the cheapest recovery.
|
|
306
|
+
|
|
299
307
|
### Hand-off
|
|
300
308
|
|
|
301
309
|
After orchestration, **update** (not re-create) `.claude/goal-quench.active` — add `mode:` and `composed_plan:` lines alongside existing budget fields. Re-creating the file loses the `start_commit` field written in Phase 1 Step 3. Then proceed to threshold injection (Phase 1 Step 4) and hand off to /goal. Phase 3 verification then runs as in core — `pipeline-conductor --quick` for pro, `--full` for max (max implies external-facing stakes).
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: phantom-quench
|
|
3
|
-
description: The grounding member of the quench series — extracts proper nouns, numerical values, and branching conditions from artifacts (TCs, analysis reports, design documents), back-traces them to declared source files, and marks anything not found as a Phantom Claim (ungrounded — present in the artifact but not traceable to a declared source; not a claim that it is necessarily false). If steel-quench attacks output patterns (self-declarations, cushion language), phantom-quench attacks input tracing (where did this come from?). Renamed from source-grounding-audit (2026-06-06, quench-series);
|
|
3
|
+
description: The grounding member of the quench series — extracts proper nouns, numerical values, and branching conditions from artifacts (TCs, analysis reports, design documents), back-traces them to declared source files, and marks anything not found as a Phantom Claim (ungrounded — present in the artifact but not traceable to a declared source; not a claim that it is necessarily false). If steel-quench attacks output patterns (self-declarations, cushion language), phantom-quench attacks input tracing (where did this come from?). Renamed from source-grounding-audit (2026-06-06, quench-series); the old name appears here so legacy references still route to this skill (alias stub directory removed 2026-06-12). Triggered by "phantom detection", "phantom-quench", "phantom claim", "hallucinated claim detection", "source back-trace", "source audit", "verify source", "TC evidence tracing", "where did this come from", "grounding audit", "source grounding audit", "false claim detection".
|
|
4
4
|
user-invocable: true
|
|
5
5
|
allowed-tools: ["Read", "Write", "Edit", "Bash", "Grep", "Glob"]
|
|
6
6
|
model: sonnet
|
|
@@ -13,8 +13,10 @@ model: sonnet
|
|
|
13
13
|
> **Renamed from `source-grounding-audit` (2026-06-06)** — the grounding member of the quench series
|
|
14
14
|
> (steel-quench · phantom-quench · goal-quench). Same skill, same ruleset; only the label changed to fit
|
|
15
15
|
> the family. The **v1 paper (Zenodo 10.5281/zenodo.20397566) cites the old name** — that is the
|
|
16
|
-
> historical record, not a phantom
|
|
17
|
-
>
|
|
16
|
+
> historical record, not a phantom (`paper/forge_harness_v1.0.html` is left unchanged by design; readers
|
|
17
|
+
> map *source-grounding-audit (v1) = phantom-quench (current)*). The deprecated redirect stub directory
|
|
18
|
+
> was removed 2026-06-12 — old-name utterances ("source grounding audit", "grounding audit") route here
|
|
19
|
+
> via this description's trigger phrases.
|
|
18
20
|
> This is a **label rename, not a capability change** — phantom-quench does not fuse steel-quench or
|
|
19
21
|
> inject faults; those remain separate (orthogonality is deliberate — see Role Separation below).
|
|
20
22
|
>
|
package/scripts/selfcheck.sh
CHANGED
|
@@ -65,6 +65,27 @@ count_check "marketplace.json fh-meta" .claude-plugin/marketplace.json
|
|
|
65
65
|
count_check "README header" README.md "${total_sk} skills · ${total_ag} agents"
|
|
66
66
|
count_check "local_fh_context fh-meta" templates/local_fh_context.md "(fh-meta, ${meta_sk})"
|
|
67
67
|
|
|
68
|
+
# Referenced-path existence: backtick-quoted repo-relative file refs in the always-loaded
|
|
69
|
+
# governance surface (CLAUDE.md + .claude/rules/*.md) must exist. Phantom-reference class
|
|
70
|
+
# recurred N>=3 in the 2026-06-11 audit window (operations.md _scanner.sh, claude-chrono path,
|
|
71
|
+
# stale templates ref) — instrument-not-habit. Globs/placeholders/{vars} are excluded by the
|
|
72
|
+
# filter; tracks/ is machine-local and deliberately out of scope. Gitignored refs (e.g.
|
|
73
|
+
# `.claude/settings.json` named in prose *about* gitignored files) are skipped — they exist
|
|
74
|
+
# locally but not on a fresh clone, and "must exist" here means "must ship".
|
|
75
|
+
while IFS= read -r p; do
|
|
76
|
+
if git check-ignore -q "$p" 2>/dev/null; then
|
|
77
|
+
echo "SKIP ref-path (gitignored): $p"
|
|
78
|
+
elif [ -f "$p" ]; then
|
|
79
|
+
echo "PASS ref-path: $p"
|
|
80
|
+
else
|
|
81
|
+
echo "FAIL ref-path: $p — referenced in CLAUDE.md/.claude/rules but missing"
|
|
82
|
+
fail=1
|
|
83
|
+
fi
|
|
84
|
+
done < <(grep -hoE '\`[^\` ]+\`' CLAUDE.md .claude/rules/*.md 2>/dev/null \
|
|
85
|
+
| sed 's/\`//g' \
|
|
86
|
+
| grep -E '^(knowledge|templates|scripts|docs|plugins|\.claude)/[^*{}<>$]+\.(md|sh|ya?ml|jsonc|json)$' \
|
|
87
|
+
| sort -u)
|
|
88
|
+
|
|
68
89
|
if [ "$fail" -ne 0 ]; then
|
|
69
90
|
echo "SELFCHECK: FAIL"
|
|
70
91
|
exit 1
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: source-grounding-audit
|
|
3
|
-
description: >-
|
|
4
|
-
RENAMED to phantom-quench (2026-06-06, quench-series rebrand). Same skill, same ruleset — only the
|
|
5
|
-
label changed to fit the quench family (steel-quench · phantom-quench · goal-quench). Use
|
|
6
|
-
/phantom-quench. This alias is retained so old references and the v1 paper's name still resolve.
|
|
7
|
-
user-invocable: false
|
|
8
|
-
allowed-tools: []
|
|
9
|
-
model: sonnet
|
|
10
|
-
deprecated: true
|
|
11
|
-
deprecated_reason: renamed to phantom-quench (label-only; not a merge — same skill)
|
|
12
|
-
deprecated_date: 2026-06-06
|
|
13
|
-
successor: phantom-quench
|
|
14
|
-
---
|
|
15
|
-
|
|
16
|
-
# source-grounding-audit — RENAMED to `phantom-quench`
|
|
17
|
-
|
|
18
|
-
> **Renamed to `phantom-quench` (2026-06-06).** This is a **label rename, not a deprecation-by-merge** —
|
|
19
|
-
> the skill is unchanged and fully active under its new name. Invoke **`/phantom-quench`**.
|
|
20
|
-
|
|
21
|
-
## Why the rename
|
|
22
|
-
|
|
23
|
-
phantom-quench is the **grounding member of the quench series** (steel-quench attacks output patterns ·
|
|
24
|
-
phantom-quench traces inputs for Phantom Claims · goal-quench gates autonomous runs). The old descriptive
|
|
25
|
-
name did not signal that family membership; the function is identical.
|
|
26
|
-
|
|
27
|
-
## Where the skill lives now
|
|
28
|
-
|
|
29
|
-
`plugins/fh-meta/skills/phantom-quench/SKILL.md` (+ `SKILL_detail.md`) — full ruleset preserved
|
|
30
|
-
(S-grade blocker, Human Gate, Pattern Diagnosis, etc.).
|
|
31
|
-
|
|
32
|
-
## Record note (do not "fix")
|
|
33
|
-
|
|
34
|
-
The **v1 paper** (Zenodo 10.5281/zenodo.20397566; arXiv submission) cites `source-grounding-audit`.
|
|
35
|
-
That is the **immutable historical name**, not a phantom — `paper/forge_harness_v1.0.html` is left
|
|
36
|
-
unchanged by design. Future readers map: *source-grounding-audit (v1 paper) = phantom-quench (current)*.
|
|
37
|
-
|
|
38
|
-
## Done When
|
|
39
|
-
|
|
40
|
-
Deprecated alias — no active execution path of its own. Done When: all invocation routes through
|
|
41
|
-
`/phantom-quench` (the successor); this entry exists only so old names resolve. Satisfies the
|
|
42
|
-
harness-doctor L2 M-tier Done-When requirement (CLAUDE.md §New Skill Creation Pre-Commit Gate).
|