@chrono-meta/fh-gate 1.4.71 → 1.4.73

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 (38) hide show
  1. package/.claude/rules/.public-surface-patterns.defaults +44 -0
  2. package/.claude/rules/fh_4axis_gate.md +207 -0
  3. package/.claude-plugin/marketplace.json +2 -2
  4. package/AGENTS.md +26 -2
  5. package/CATALOG.md +59 -0
  6. package/README.ja.md +1 -1
  7. package/README.ko.md +1 -1
  8. package/README.md +1 -1
  9. package/README.zh.md +1 -1
  10. package/knowledge/shared/harness-core/measurement-integrity-checklist.md +10 -0
  11. package/knowledge/shared/learnings/subagent_invocations_log.yaml +554 -0
  12. package/package.json +21 -1
  13. package/plugins/fh-commons/.claude-plugin/plugin.json +1 -1
  14. package/plugins/fh-meta/.claude-plugin/plugin.json +2 -2
  15. package/plugins/fh-meta/skills/context-doctor/SKILL.md +42 -4
  16. package/plugins/fh-meta/skills/context-doctor/SKILL_detail.md +38 -0
  17. package/plugins/fh-meta/skills/salience-splitter/SKILL.md +1 -1
  18. package/scripts/chamber_candidate_collect.sh +223 -0
  19. package/scripts/degrade_direction_scan.sh +222 -0
  20. package/scripts/fh-gate.sh +76 -2
  21. package/scripts/fh_session_load.sh +202 -0
  22. package/scripts/gate_pathspec_check.sh +166 -0
  23. package/scripts/prepush_guard_check.sh +374 -0
  24. package/scripts/psa_scan_lib.sh +153 -0
  25. package/scripts/public_surface_scan_files.sh +157 -0
  26. package/scripts/selfcheck.sh +16 -0
  27. package/scripts/session_close_check.sh +171 -0
  28. package/scripts/test_degrade_scan_shell_probes.sh +185 -0
  29. package/scripts/test_fh_gate_regressions.sh +46 -2
  30. package/scripts/test_prepush_stdin_integrity.sh +119 -0
  31. package/scripts/universal_guard_check.sh +280 -0
  32. package/templates/.claude/rules/mcp_tool_gating.md +157 -0
  33. package/templates/.git-hooks/pre-commit +848 -0
  34. package/templates/.git-hooks/pre-push +585 -0
  35. package/templates/PRE-PUBLISH-CHECKLIST.md +85 -0
  36. package/templates/degrade_direction_scan.sh +222 -0
  37. package/templates/predelete_check.sh +72 -0
  38. package/templates/regression_guard.sh +563 -0
@@ -0,0 +1,554 @@
1
+ # Sub-agent invocation log (operations.md §Sub-agent Operations).
2
+ # Fields: date · agent · model · purpose · prompt_summary · outcome · finding · note
3
+ # outcome ∈ {accepted, partial, rejected, sustained}
4
+
5
+ - date: 2026-06-10
6
+ agent: general-purpose
7
+ model: opus
8
+ purpose: "Differential test (control) — blind Axis-2 floor-compliance self-flagging"
9
+ prompt_summary: "Run FH 4-axis gate Axis 2 on the frontier-digest video-harvest diff as an Opus-4.8 orchestrator; report verdict + FLOOR-COMPLIANCE line. Blind to the below-floor finding."
10
+ outcome: accepted
11
+ finding: "FLOOR-COMPLIANCE: at-floor. Explicitly distinguished capability-met from mechanism(dispatch)-skipped; PASS verdict (LOW/INFO)."
12
+ note: "Control arm for fh_signal_2026-06-10_adversarial-floor-enforcement discriminator test."
13
+
14
+ - date: 2026-06-10
15
+ agent: general-purpose
16
+ model: sonnet
17
+ purpose: "Differential test (variable) — blind Axis-2 floor-compliance self-flagging"
18
+ prompt_summary: "Identical prompt to the Opus arm, stated tier = Sonnet 4.6. Blind to the below-floor finding."
19
+ outcome: accepted
20
+ finding: "FLOOR-COMPLIANCE: BELOW-FLOOR — self-flagged flawlessly + prescribed remediation. Harsher pass (2 HIGH + 2 MED, BLOCK). Refutes the tier-inherent-unreliability hypothesis: root cause = rule salience, not model tier."
21
+ note: "Variable arm. Result fed back into the signal (hypothesis refuted)."
22
+
23
+ - date: 2026-06-10
24
+ agent: fh-commons:quench-challenger
25
+ model: opus
26
+ purpose: "Axis-2 floor-compliant adversarial review of the S1/S3 fix (REAL dispatch, not inline)"
27
+ prompt_summary: "Attack the de-dating diff; verify S1/S3 resolved without new defects; verdict PASS/BLOCK."
28
+ outcome: accepted
29
+ finding: "PASS. S1/S3 confirmed resolved. 2 MED (Tier-2 gap, probe-not-wired-to-guards) + 3 LOW (ffmpeg-unchecked, blockquote-anchor, example-stale-risk). Folded ffmpeg+pre-EOL+Tier-2-gloss; deferred guard-wiring + heading-promote."
30
+ note: "This is the floor-MET counterpart to the 60515de below-floor inline slip — closes the gate properly per tier-floor governance."
31
+ - date: 2026-06-10
32
+ agent: fh-commons:quench-challenger (opus, round 1)
33
+ task: adversarial pass on mechanical below-floor detector staged diff (Axis 2)
34
+ trigger: 4-axis gate full mode, floor=opus met via dispatch
35
+ outcome: accepted
36
+ note: "3A+1B findings all source-verified true and fixed (engine-field unenforced, heredoc paste loop, legacy self-block, model/floor mismatch undetected)"
37
+ - date: 2026-06-10
38
+ agent: fh-commons:quench-challenger (opus, round 2)
39
+ task: convergence verification of round-1 fixes
40
+ trigger: convergence-loop discipline (FAIL→FIX→re-verify)
41
+ outcome: accepted
42
+ note: "all 4 fixes VERIFIED empirically, CONVERGED; flagged live 0-byte marker precondition (true, resolved pre-commit)"
43
+ - date: 2026-06-10
44
+ agent: general-purpose (opus, blind sim)
45
+ task: post-ship gate simulation — write Axis-2 marker as inline-Opus orchestrator
46
+ trigger: operator request (sidecar simulation)
47
+ outcome: accepted
48
+ note: "wrote at-floor honestly; shipped validator PASS — legitimate inline not blocked"
49
+ - date: 2026-06-10
50
+ agent: general-purpose (sonnet, blind sim)
51
+ task: post-ship gate simulation — write Axis-2 marker as inline-Sonnet orchestrator
52
+ trigger: operator request (sidecar simulation)
53
+ outcome: accepted
54
+ note: "self-flagged below-floor + wrote own ack — exposed ack rubber-stamp residual (MED, recorded in signal); counterfactual at-floor claim BLOCKED by cross-check"
55
+ - date: 2026-06-11
56
+ agent: fh-commons:quench-challenger (fable inherit)
57
+ task: steel-quench Wave 1 on CLAUDE.md 3-door skeleton promotion (2-line governance edit)
58
+ trigger: 4-axis auto-gate Axis 2 (FH asset modified)
59
+ outcome: accepted
60
+ note: "0S+2A+2B — all 4 source-verified true (Only-exclusivity contradiction w/ §Guards, missing sync anchor, unanchored cadence claim, scope salience); cross-cutting anchor edit resolved all in one pass"
61
+ - date: 2026-06-11
62
+ agent: cross-session claude -p (claude-sonnet-4-6, headless, FH cwd)
63
+ task: target-tier sim gate dogfood — blind greeting sim verifying c43209c 3-door menu on bug tier
64
+ trigger: operator request (gate codified same session); model-pinned Agent dispatch (sonnet, haiku) blocked by plan gate -> cross-session fallback
65
+ outcome: accepted
66
+ note: "PASS — 3-door menu fired with card candidates composed into doors 2/3, cadence below menu; residual: missing 🐿️ marker (fh_signal_2026-06-11_fh-direct)"
67
+ - date: 2026-06-11
68
+ agent: general-purpose (sonnet, blind sim, in-session Agent dispatch)
69
+ task: target-tier sim gate — blind greeting sim verifying 🐿️-in-skeleton fold-in (Option A) at the failure tier
70
+ trigger: 4-axis auto-gate Mode D supplement (salience-dependent change, observed sonnet miss fh_signal_2026-06-11)
71
+ outcome: accepted
72
+ note: "PASS — 🐿️ on its own line as skeleton first line + 3-door menu emitted; cadence rode below menu; model-pinned dispatch available in cloud env (plan gate absent), no claude -p fallback needed"
73
+ - date: 2026-06-11
74
+ agent: general-purpose (opus, quench-challenger role)
75
+ task: steel-quench Axis 2 on 🐿️ fold-in + 6/15 billing amendment + below_floor_scan.sh consumer + operations.md wiring
76
+ trigger: 4-axis auto-gate Axis 2 (FH asset modified)
77
+ outcome: accepted
78
+ note: "PASS 0S+3B — marker-append/hook-collision CLEAN (replicated validate_marker_floor), P9 check verdict 'builds the control, not paper-over'; B1 scanner-autoinvoke implication fixed, B2 signal status update routed to the private companion store, B3 opus hardcode accepted (matches hook convention)"
79
+ - date: 2026-06-11
80
+ agent: claude (background, frontier-digest skill execution)
81
+ task: cadence-overdue frontier-digest run (16d+ since 2026-05-26) — WebSearch mode, incremental-only
82
+ trigger: CLAUDE.md cadence rule (7d+ overdue) + operator door-3 batch approval
83
+ outcome: accepted
84
+ note: "digest written to companion store only (no FH asset touched, no commit — reviewed by main session); headline: NLAH arXiv:2603.25723 = convergence candidate n=6, Fable 5 tier shift, Stop-hook additionalContext channel; 5 candidates parked as unapproved checklist"
85
+ - date: 2026-06-11
86
+ task: "Axis 2 adversarial review — mcp_tool_gating template"
87
+ agent: 'general-purpose (model: opus)'
88
+ self_contained_prompt: yes
89
+ outcome: accepted
90
+ note: "2S+4B; S1 name-spoofing was a real design hole (server controls names too) — fixed inline"
91
+ - date: 2026-06-11
92
+ task: "Target-tier sim — mcp_tool_gating under sonnet, unfilled-§3 scenario"
93
+ agent: 'general-purpose (model: sonnet)'
94
+ self_contained_prompt: yes
95
+ outcome: accepted
96
+ note: "PASS — per-item ask on send, batch-approve refused citing meta-write tier; offered §3 fill"
97
+ - date: 2026-06-16
98
+ task: "field-project deep-frontier sweep #1 — agent-as-QA-strategy-partner (spec/PRD→TC) frontier"
99
+ agent: general-purpose (inherit opus)
100
+ outcome: accepted
101
+ note: "6 frontier links verified (APITestGenie/LLMCFG-TGen/TrickCatcher/CANDOR-adjacent/Katalon-agentic). Delta=Non-Model Ground (frontier verifies LLM output but terminal verdict still LLM-as-judge); a fixed self-check loop + pre-injected failure-pattern corpus are the field deltas. Honest gap: no non-English-PRD→TC frontier found."
102
+ - date: 2026-06-16
103
+ task: "field-project deep-frontier sweep #2 — planning-review tool (multimodal × multi-model cross-check)"
104
+ agent: general-purpose (inherit opus)
105
+ outcome: accepted
106
+ note: "Empty-cell finding: multimodal planning input (design/PRD) × multi-model cross-verification AS non-model ground is unfilled by frontier — Kiro(single-model semantic-entropy)/SemEval(multi-model but general hallucination). A multi-inference planning-review sits in the empty cell = publishable delta."
107
+ - date: 2026-06-16
108
+ task: "field-project deep-frontier sweep #3 — dynamic test-pilot / runtime test agent frontier"
109
+ agent: general-purpose (inherit opus)
110
+ outcome: accepted
111
+ note: "CANDOR directly confirms delta: even 'strong oracle' grounds verdict in LLM consensus-against-NL-spec, NOT measured runtime data. Autonoma 'boundaries/deterministic artifacts' closest converging vocab. Delta=static·dynamic complementarity AS explicit invariant."
112
+ - date: 2026-06-16
113
+ task: "field-project deep-frontier sweep #4 — hybrid-app mobile automation + LLM-harness layering (independent-convergence check)"
114
+ agent: general-purpose (inherit opus)
115
+ outcome: accepted
116
+ note: "VERDICT (peak-of-transition): 'layer an LLM/agent on an existing Appium suite' frontier DOES exist + mainstream — appium/appium-mcp (official, v1.85.7 2026-06-16) + BrowserStack selfHeal. The field tool = strong independent CONVERGENCE not lead = credential. Narrow lead axes: (a) hybrid-app context-switch domain, (b) non-model data verification + strategy→execution bridge. Sandbox: a public hybrid demo app mappable externally; the real in-corp sandbox needs a handoff."
117
+ - date: 2026-06-27
118
+ task: "persona-innovator v0.3 Mode-F autonomous run on the-bible (H1-b pilot dogfood — strengthen naming/frames + measure anchor-tier)"
119
+ agent: fh-meta:persona-innovator (inherit opus, v0.3 H1-b)
120
+ self_contained_prompt: yes
121
+ outcome: accepted
122
+ note: "3 naming candidates (Contested-Ground Ceiling / Flip-as-FLAG / Counter-Voice Pairing) + 5 external signals tiered T1/T2/T3. Anchor-tier: 2 T1-live / 2 T1venue-T2grounded / 1 T3-BARRED (bar fired on tempting 76%/91% vendor stat). KEY: tier ⊥ grounded-this-run. Self-floors H1/H1-b/H2/H3/H4 run as declared steps. Signal: companion store paper-signals/h1b_pilot_anchor_tier_thebible_2026-06-27.md"
123
+ - date: 2026-06-27
124
+ task: "challenger adversarial gate on innovator the-bible outputs (no-judge-only-path closure on 3 highest-value claims)"
125
+ agent: fh-meta:challenger (inherit opus)
126
+ self_contained_prompt: yes
127
+ outcome: accepted
128
+ note: "CLAIM1 OWASP credential SURVIVES-WITH-FIX (1c HIGH chat-path-vs-credential overclaim, 1b MED control-shape) · CLAIM2 Contested-Ground Ceiling SURVIVES-WITH-FIX (2d HIGH dangerous 'absolution=SAFE' compression STANDS; 2c phantom = challenger info-gap FP, governor source-closed to _redteam_l2_70b.py) · CLAIM3 H1-b 80% principle SOUND/number REFUTED (self-graded). Bottom line: nothing lands in PUBLIC the-bible without operator sign-off (publish-class fail-closed)."
129
+ - date: 2026-06-27
130
+ task: "persona-innovator v0.3 Mode-F round 2 on the-bible (crisis/L2 layers; H1-b pilot run #2)"
131
+ agent: fh-meta:persona-innovator (inherit opus, v0.3 H1-b)
132
+ self_contained_prompt: yes
133
+ outcome: partial
134
+ note: "3 names (Wide-Net Tier/Bilateral Gate/Unsafe-Dominant Merge) + §3 typed-verdict-channel upgrade recommendation (H2 dedup vs FH typed-verdict-channel = sister-not-dup). H1-b run#2: 3/3 load-bearing claims T1-live (100%, applied round-1 F1 orthogonality), T3-bar fired once (diverted to arXiv primary). DEFECT: quoted 3 OWASP LLM01 control names that are PHANTOM (not real headings) → fh_signal_2026-06-27_innovator-h1-quoted-string-phantom."
135
+ - date: 2026-06-27
136
+ task: "challenger adversarial gate on innovator round-2 outputs (typed-channel code rec + OWASP LLM01 doc + 3 names)"
137
+ agent: fh-meta:challenger (inherit opus)
138
+ self_contained_prompt: yes
139
+ outcome: accepted
140
+ note: "A typed-channel SURVIVES-WITH-FIX (A3 threat-shape forced-fit: spoofer-controls-channel[FH] vs spoofer-controls-fenced-data[bible]; A4 closure narrow not 'finished arc'; A5 haiku --json-schema reliability untested→gate merge). B OWASP LLM01 names PHANTOM S-grade→governor source-closed real headings→drafted correct. C1/C3 SURVIVE, C2 Bilateral Gate w/ dormant-stub fix. Nothing pushes without operator sign-off."
141
+ - date: 2026-07-03
142
+ skill: auto-decorrelation (codex gpt-5.5 xhigh, cross-family)
143
+ context: the-bible L1 mechanical safety-floor adversarial audit (3 surfaces)
144
+ target: the-bible/core grounding_gate*.py + normalization.py + gate_runtime/gate_cli
145
+ outcome: accepted
146
+ note: 3 HIGH (citation-metadata-gated grounding, English crisis coverage gap, shipped wrapper can't reach v4/v5 hardening → homoglyph/encoded crisis PASSES) + 7 MEDIUM. All HIGH empirically confirmed live. Codex ran genuinely (not echo).
147
+ - date: 2026-07-03
148
+ context: "FH item-1 Field-Harness Load-Bearing Change Gate — 4-axis dogfood (gate's own rule applied to itself)"
149
+ agent: fh-meta:challenger (opus, at-floor)
150
+ self_contained_prompt: yes
151
+ outcome: accepted
152
+ note: "Axis2 steel-quench on the new gate: 1S+3M+2R, all fixed. S#1 trigger 'mechanical/not self-judged' overclaim (self-referential defect — gate grants the discretion it removes). M#2 script-verified false-clean on bash (own pre-push trigger category). M#3 per-fix regression test not a required convergence sub-condition. M#4 Probe C misses headline `tok in text`. R#5 wording overlap w/ Irreversibility gates (no fall-between). R#6 lint 0 catches in n=7 (efficacy unproven)."
153
+ - date: 2026-07-03
154
+ context: "FH item-1 gate — Axis3 phantom-quench"
155
+ agent: Explore (isolated, read-only)
156
+ self_contained_prompt: yes
157
+ outcome: accepted
158
+ note: "0 hard phantoms across CLAUDE.md gate section + knowledge doc + fh_signal. auto-decorrelation confirmed real (plugins/fh-meta/skills/). 1 soft-link [[user_adaptation_profile]] (tracks file, not memory slug) → repointed to plain path."
159
+ - date: 2026-07-03
160
+ context: "FH item-1 gate — target-tier salience sim"
161
+ agent: claude (model:sonnet, blind)
162
+ self_contained_prompt: yes
163
+ outcome: accepted
164
+ note: "Strong PASS. Sonnet field session w/ the rule + a planted verdict-fn change (`expected in observed`): fired the gate before merge, refused silent-merge on '머지하자', caught the substring smell (expected='OK'⊂'NOT OK' → default-toward-PASS), chose fail-closed degrade when no sidecar. Salience holds at field tier."
165
+ - date: 2026-07-03
166
+ skill: auto-decorrelation (codex gpt-5.5 high, cross-family DOGFOOD)
167
+ context: "FH item-1 gate — Axis2 cross-family on the gate doctrine itself + convergence re-verify"
168
+ target: "CLAUDE.md §Field-Harness Load-Bearing Change Gate + knowledge detail doc + degrade_direction_scan.sh"
169
+ outcome: accepted
170
+ note: "2 HIGH (fail-open degrade — gate inherited auto-decorrelation's silent same-family fallback = the SAME correlated signature the gate catches) + 2 MED (trigger overclaim, under-coverage) + 1 LOW. All fixed; re-verify: 'H1/H2 fail-open degrade CLOSED'. The gate found its own default-toward-proceed hole — dogfood value made concrete."
171
+ - date: 2026-07-13
172
+ skill: fh-meta:persona-innovator (Mode F, context-entry Mode D)
173
+ context: "FH self-dev autonomous session — incubator/simulate-first axis gap+naming+frontier scan"
174
+ target: harness_incubator_doctrine.md + CLAUDE.md §Autopilot
175
+ outcome: accepted
176
+ note: "6 signals. Adopted: #1 tracks/{project}-sim/ collides with is-mapped signal → tracks/_chamber/{project}/ (real defect, 1-line fix) · #2 'chamber run' vocab reservation · #4 §6 emit-terminus back-pointer · #5 'Emission Gate' name. Deferred (evidence-gated record-only): #3 resumable chamber state (OpenAI Agents SDK) · #6 GenEnv difficulty-alignment sister-anchor."
177
+ - date: 2026-07-13
178
+ context: "Step 0.5 Trigger-Accuracy Probe — simulate-first routing branch (judged→measured)"
179
+ agent: "design=Agent(model:fable) · runners=10× Agent(model:sonnet, blind, isolated, typed verdict)"
180
+ self_contained_prompt: yes
181
+ outcome: accepted
182
+ note: "10/10 correct (5 should-FIRE incl. borderline small-but-exploratory + small-sounding-but-refund-bot; 5 should-NO-FIRE incl. large-but-clear CRUD, simulation-as-topic, scary-word-but-reversible). 0 malformed. All first draws matched expected → no reps needed per measurement-integrity. Baseline recorded in doctrine §3."
183
+ - date: 2026-07-14
184
+ skill: fh-meta:challenger (isolated Agent, Axis-2 code review)
185
+ context: "gap-census close-out — adversarial review of chamber_run.sh (NEW runner) + collect.sh seen-filter"
186
+ target: scripts/chamber_run.sh + scripts/chamber_candidate_collect.sh
187
+ outcome: accepted
188
+ note: "2 HIGH (collect whole-line grep KILL matched 'skill' substring → false exclusion set; runner grep -c counted lines not distinct personas → 3×beginner bypassed isolation gate) + MED-3b (seen-filter <4char-token slug → empty sig → SILENT re-entry, MUST-NOT violation) + MED-3a/MED-4 (over-exclude/paraphrase recall) + 3 LOW. All HIGH+MED-3b+LOW fixed with mechanical regression tests (anchor leg); MED-3a/MED-4 documented as accepted visible-residuals (SEEN-KILLED visible ≻ silent miss). Idempotency/next-num/bash-3.2/fail-directions checked-OK. CONVERGED."
189
+ - date: 2026-07-14
190
+ skill: "Agent(model:fable) + codex gpt-5.6-sol (cross-family)"
191
+ context: "identity-fulfillment audit — 2 decorrelated drafters produce per-identity falsifiable checklist (operator: verify each FH identity, then sim-conductor run)"
192
+ target: "FH 5-identity checklist (cluster / incubator / governance-gate / frontier-propagation / amplifier)"
193
+ outcome: pending
194
+ note: "dispatched parallel; Fable=higher-tier same-family, codex=true cross-family. Synthesis → sim-conductor persona run to shake out overclaim. Log outcome on return."
195
+ - date: 2026-07-14
196
+ skill: "identity-audit — Agent(model:fable) + codex gpt-5.6-sol + general-purpose origin-miner (3-source)"
197
+ context: "FH 5-identity fulfillment audit — falsifiable checklist ×2 (cross-family decorrelated) + origin-mining from memory/tracks/private companion store"
198
+ target: "5 identities: cluster / incubator / governance-gate / frontier-propagation / amplifier"
199
+ outcome: accepted
200
+ note: "Two checklists CONVERGED on the same top-3 overclaim (intent-based arsenal selection unmeasured · incubator economics=design+n=1 · cluster=governance-call-on-1-artifact not 2-node). origin-miner verdict: REALIZED=③governance(strongest)+⑤amplifier; PARTIAL=④frontier; 이상론=①cluster-relay+②chamber-EMIT(0/2 KILL). Fable 1-5 registry-phantom finding = FALSE (registry exists at .claude/registry/, Fable searched wrong dir) — source-grounded, not acted on. Confirmed TRUE: weekly-audit cadence dead (06-11, 33d); CLAUDE.md drift (chamber_run.sh contradicts 'no runner')."
201
+ - date: 2026-07-14
202
+ skill: "trigger-accuracy probe — 10× Agent(model:sonnet, blind, isolated)"
203
+ context: "materialize the #1 overclaim (intent-based autonomous completion unmeasured) into a measured track record — operator: 이상론이면 실제로 돌려 실적 남겨라"
204
+ target: "Autonomous Initiative routing table — does a novice-vocabulary intent fire the right skill/gate without naming it, on the Sonnet floor"
205
+ outcome: accepted
206
+ note: "should-fire 7.5/8 (94%) + false-fire 0/2. HITs: cross-project-skill-bus, pre-publish-gate, destructive-op(predelete ACTUALLY RAN → 3 REVIEW branches, caught unmerged goal-quench branch via memory cross-ref), frontier-digest(surfaced today's launchd digest, no re-run, +GRACE sister catch), deep-clarify ×2, context-doctor, field-harness-diagnostic. no-fire correct on 2 trivial edits (no skill spam). ONLY miss P2: simulate-first(incubator entry) absorbed into deep-clarify on textbook uncertain+failure-expensive utterance — identity-2 weakest trigger, measured. n=1 borderline → reps≥3 follow-up. Artifact: tracks/_meta/identity_audit_2026-07-14.md."
207
+ - date: 2026-07-14
208
+ skill: "dominance HARD benchmark — Fable+Codex(hole authors, decorrelated) + 20× claude -p sonnet blind lanes + codex cross-family"
209
+ context: "materialize 'forward direction' — subtler fail-open holes to show decisive dominance; operator: 패이블 gpt로 열어젖혀라, fh/pmh/docs 반영"
210
+ target: "governance craft dominance + degrade_direction_scan probes E/F"
211
+ outcome: accepted
212
+ note: "8 subtle holes (Fable 4 + Codex 4, test-set author ≠ method = decorrelated). plain 5/8 (2 distractor mis-ID) · degrade-lens 6/8 0-FP · both Sonnet lanes missed f2(falsy-sentinel)+c3(sep-negation) · cross-family codex caught both → STACK 8/8. Finding: dominance is architectural (decorrelated stack, not single lens). MATERIALIZED: degrade_direction_scan.sh probes E+F catch f2+c3 mechanically, 0-FP on FH scripts, templates synced. Reflected: dominance artifact round-2, ship_readiness_gate, README, AX qasp_실증이력, pmh 실증상세."
213
+ - date: 2026-07-14
214
+ skill: "chamber run #5 degrade-lint EMIT attempt — 4 blind cross-family personas (beginner/main-player Sonnet, challenger Fable, expert Sonnet+websearch) + decisive semgrep measurement leg"
215
+ context: "operator: '②는 이상론으로 남는다 — 이걸 실제로 돌려보고 채운 후에 하는 건 불가능?' → genuinely attempt an EMIT (degrade-scanner as independent npm CLI), let the chamber decide honestly"
216
+ target: "incubator identity ② — first real EMIT vs disciplined KILL"
217
+ outcome: accepted
218
+ note: "VERDICT KILL (strongest-evidence of 5 runs). expert web + local semgrep(auto/security-audit/python/default)=0/8 → niche real (CWE-636/OWASP-A10:2025, no packaged rule). challenger sourced re-wrap (2 copies diff=14 lines all comments, logic byte-identical). DECISIVE: authored AST semgrep rule pack, ran on 111 real qasp-dev files → 5/5 FALSE-POSITIVE (skip-if-empty contracts, config toggle, content predicate). 'if not x: return permissive' is ubiquitous-benign; real-hole vs benign-absence is SEMANTIC not syntactic. ∴ valuable capability = judgment (scan∪cross-family lens), not artifact — can't npm publish a judgment. EMIT stays 0/5. MEASURED screening criterion for future candidates: net-new ∧ artifact-shaped ∧ real-code-precision-adequate; 0/5 cleared all three. Reflected: identity_audit ②, chamber ledger run #5, AX qasp/pmh 소개서."
219
+ - date: 2026-07-14
220
+ skill: "target-tier blind Sonnet sim (isolated general-purpose Agent) — Envelope-Boundary Discipline verification"
221
+ context: "operator named the anti-normalization discipline 'the real evolution point'; new always-loaded CLAUDE.md rule needs target-tier sim (salience-dependent, Mode D near-mandatory)"
222
+ target: "does the reinvention-reflex counterweight fire on boundary cases + not over-trigger on genuine reinvention"
223
+ outcome: accepted
224
+ note: "2/2 correct discrimination. MSG-A (boundary-crossing meta-insight ~ asset-placement-gate) → HOLD-AND-TEST (resisted normalizing, held as net-new counterweight). MSG-B (genuine steel-quench reinvention) → NORMALIZE (pointed to existing skill, asked what's missing first). Rule fires on boundary AND preserves legitimate no-reinvention. Shipped CLAUDE.md §Envelope-Boundary Discipline (PR #138), memory feedback_reinvention_reflex_normalization_counterweight."
225
+ - date: 2026-07-14
226
+ skill: "chamber run #6 harness-orchestrator EMIT attempt — 4 blind cross-family personas (beginner/main-player Sonnet, challenger Fable w/ inline real-data measurement, expert Sonnet+websearch)"
227
+ context: "operator: '하네스 오케스트레이터 스킬은 어때... 플러그인화로 사람들이 필요로 할 때' — a portable/hub-decoupled orchestrator directly targeting identity ① (multi-harness cluster). operator: '챔버로 ㄱㄱ'"
228
+ target: "① multi-harness cluster — can this close 🟡→🟢 as a real EMIT"
229
+ outcome: accepted
230
+ note: "VERDICT KILL. challenger sourced RE-WRAP (core already in parked cluster-wizard signal 2026-07-09, which staged hub-internal-first — this was the wrong standalone-first form) + DECISIVE: ran the candidate's own discovery heuristic against real ~/projects → 14/22 folders fire, hitting private/company repos a decoupled scanner cannot suppress (residency lives only in hub state) + irreversible-surface hand-wave (CVE vector in own cited material unaddressed). expert confirmed external reinvention bar survives (genuine niche, 7 sources) but that's 1/4 conditions. NEW 4th EMIT axis extracted: hub-state-independence — value depending on hub state (registry+residency) must graduate hub-internal-first, never standalone-first (fh-commons contrast: 0 hub-state dependency, clean graduation). cluster-wizard signal reinforced not contradicted. EMIT 0/6. Reflected: doctrine, ship_gate, identity_audit, cluster-wizard signal reactivation note."
231
+ - date: 2026-07-14
232
+ skill: "chamber run #7 cluster-wizard hub-internal reactivation — 4 blind cross-family personas (beginner/main-player Sonnet, challenger Fable, expert Sonnet+websearch)"
233
+ context: "operator: '챔버로 지금 돌려봐' — authority-override reactivation of hub-internal cluster-wizard, the form run #6 confirmed correct"
234
+ target: "① multi-harness cluster — can the hub-internal form close it now"
235
+ outcome: accepted
236
+ note: "VERDICT KILL. main-player+challenger read the REAL LOCAL_SKILL_REGISTRY.md + cross-ecosystem-synergy-detection SKILL.md inline: synergy pass substantially already exists (Step 7), general-purpose seed count=0 confirmed today, registry auto-generated (hand tags wiped). challenger sourced prematurity against run #6's own 24h-old re-confirmed condition + residency guard prose-only. NEW META-FINDING: a feature graft onto an already-shipped hub mechanism is ordinary Mode D self-dev under 4-axis gate, not automatically chamber-EMIT scope (chamber = new independent artifacts only). expert: reinvention bar survives externally, flags n=1-registry scale-fit caveat vs field's manual-curation practice. EMIT 0/7. cluster-wizard signal gets concrete 5-item un-park checklist."
237
+ - date: 2026-07-16
238
+ skill: "pre-publish security review of the shipped npm code surface — 3 blind Claude sub-agents (bin/*.js, fh-gate.sh verdict surface, fh-run/fh-goal/count_check/selfcheck) + codex gpt-5.5 cross-family audit + codex re-verify of the fixes"
239
+ context: "operator: 'npm 1.4.60 퍼블리시부터 ㄱㄱ' → gate showed zero SHIPPED executable changed since v1.4.59, so security-review was scoped to the published code surface rather than the (empty) diff. operator: 'security-review 돌리자', then 'b' = fix HIGH/MED first and ship them in 1.4.60. 4090 union unavailable (host offline 13h, tailnet coordination down) — honestly degraded to codex + Claude, no local ensemble breadth."
240
+ target: "@chrono-meta/fh-gate v1.4.60 — is the shipped gate itself fail-open"
241
+ outcome: accepted
242
+ note: "codex verdict BLOCK; publish halted before the irreversible act. 6 holes CONFIRMED by source-grounding, all default-toward-PASS, all live in v1.4.59: (1) fh-gate.sh dispatched the exit code on the model's verdict enum ALONE — _FA was read at :437, printed at :451, never consulted, so {verdict:PASS, findings_a:1} exited 0 = ship-it while holding blocking evidence (codex's strongest, same-family agents missed it); (2) fh-codex-doctor.js maybeReadText swallowed a read failure into '' → 0 tiers → 0 findings → status OK → --strict exit 0, EMPIRICALLY reproduced by the sub-agent (chmod 000 AND markdown bold drift both → OK/0) — a broken instrument reporting no violations; (3) plaintext evidence fence forgeable by a target file → nonce-bound now; (4) FH_TIMEOUT unvalidated into command position via unquoted ${_TIMEOUT_CMD} + `timeout DURATION COMMAND` = arbitrary exec by word-splitting alone, found by a Claude agent and MISSED by codex (union, not redundancy — and two Claude agents CONTRADICTED each other on its severity: one said LOW 'not code execution', the other MED 'arbitrary execution'; source settled it for MED); (5) FH_DRY_RUN=1 exited EXIT_PASS; (6) fh-goal.sh rooted change-detection at FH_ROOT = the npm package dir, so for every npm-installed user the gate skipped forever with exit 0. Also: bin/*.js collapsed every non-zero exit to node's 1, so BLOCKED(2) arrived as PENDING(1)='proceed with awareness'. MECHANICAL ANCHOR: scripts/test_fh_gate_regressions.sh, 20 cases via a fake backend at the process boundary, wired into selfcheck→prepublishOnly; wiring itself verified by reopening a hole and confirming selfcheck exits 1 (test is not decorative). INSTRUMENT NOTE (3rd occurrence of the class): degrade_direction_scan flagged count_check.sh:80, which codex AND a Claude agent independently refuted and relocated to :77 — advisory scan hit the right file, wrong line; 'advisory, not a gate' vindicated. Also two of my own greps false-alarmed (ERE paren, .local matching CLAUDE.local.md). This is [[feedback_apply_own_floors_to_tools]] recurring — FH did not apply its own floors to its own tool, and the package is literally named fh-gate."
243
+ - date: 2026-07-17
244
+ skill: "harness-doctor full run (L1-L5 + --lint) — 2 Explore agents (lint sweep · L5 activity/orphans/E-metrics) + fh-commons:quench-challenger (Axis 2) + Sonnet blind target-tier sim (general-purpose, model:sonnet)"
245
+ context: "operator: '닥터부터 ㄱㄱ … 자체개발/개선 자체적으로 돌아줘 이노베이터 완주' — 35-day-overdue cadence run, Fable 5 background session, autonomous Mode D"
246
+ target: "FH hub structure + the standing footprint M-tier (card-mandated re-raise)"
247
+ outcome: accepted
248
+ note: "Diagnosis: M×2 (footprint 82,162>80k — down from 95.8k; CLAUDE.md 864>500 lines, E1 +307/30d), S (E7 pending 34/49; CATALOG index-orphans 10), R (2 true orphans, 1 lint hit, 4 INACTIVE_30D). Prescriptions APPLIED same-session: salience-split 3 sections → 75,643 chars (<80k), CATALOG backfill 12, lint fix, E7 -2 (mechanical verification of v1.4.60 + fh-gate hardening entries). Axis 2 challenger earned its cost: caught a corp-name leak I introduced into tracked CATALOG.md (git-grep single-hit, fixed pre-commit) + restored the 'domain data never leaves' residency invariant the compression dropped. Sonnet blind sim 3/3 — compressed sections still fire correctly at floor tier (diagnostic HITL / autopilot non-overwrite / gate fail-closed NOT-CONVERGED)."
249
+ - date: 2026-07-17
250
+ skill: "persona-innovator Mode F (gap scan + external frontier absorption) — post-harness-doctor, event-bound Mode D context-entry"
251
+ context: "operator: '이노베이터 완주' — explicit full-run request, Fable 5 autonomous session"
252
+ target: "FH hub — today's doctor findings as seeds (E7 debt, ETCLOVG O-gap, E1 accretion, chamber 8/8 KILL)"
253
+ outcome: accepted
254
+ note: "4 internal candidates + 4 external signals, honest grounding tags (1 SPECULATIVE self-flagged: MCP 7/28 spec via T3 relay, asset changes barred pending primary fetch). Routed: S1 Prediction-Settlement-Sweep (E7 x AHE T1 crossing, extend-only) + S2 Sediment-Shed-Cycle (naming, cost-0) -> fh_signal_2026-07-17_innovator.md; Live-Run-Ledger -> CHAMBER-CANDIDATE (infra-dependent, evidence-threshold unmet); Screen-vs-Birth frame -> carried to next chamber run, no new file; 2 sister-link pointers (Weng 2026-07-04, Dive-into-CC arXiv 2604.14228). Generator-side only — adoption gated on challenger/steel-quench per H3."
255
+ - date: 2026-07-17
256
+ skill: "multi-harness audit wave — 18 agents: 3 structure (pmh/qasp doctor, cluster) + 9 persona (beginner/main-player/expert x fh/pmh/qasp) + 2 fixers + 4 gate verifiers"
257
+ context: "operator: 'fh pmh qasp dev 모두 닥터와 하네스클러스터기능으로 감사돌려주고 온보딩 미들 고수 등 여러페르소나로 사용성과 의도기반으로 풀오케스트레이션 잘 돌리는지... 프런티어급으로 개선해줘'"
258
+ target: "3-harness cluster structure + usability (intent-based orchestration, friendliness)"
259
+ outcome: accepted
260
+ note: "All 18 completed. Cross-cutting chorus: routing tables narrower than real daily utterances in ALL three harnesses (FH product-verify / pmh close-chain ambiguity / qasp act1.5+3). Cluster = two opposite halves (qasp discoverable-ungated, pmh gated-undiscoverable). Fixes applied same-session: FH c25aeb9 (pushed) + pmh b866c94 + qasp 2b3499a (local branches). Fixer honesty highlights: qasp fixer verified-then-skipped a false typo claim (케크=jargon); pmh fixer passed pmh's own pre-commit gate properly instead of bypassing. Canonical report: companion store, tracks/fh/multi_harness_usability_audit_2026-07-17.md. Deferred M3/S8/R4 backlog ranked there."
261
+
262
+ - date: 2026-07-21
263
+ agent: fh-meta:beginner
264
+ model: opus
265
+ purpose: "Cold-read peer review of forge-wiki README + examples/org-instance before a public-repo merge (PR #3, round 1)"
266
+ prompt_summary: "Zero-context org evaluator arriving at forge-wiki to consider adoption. Attempt the documented path rather than skim; report where comprehension or execution breaks, file:line. Explicit anti-sycophancy: the report decides the merge."
267
+ outcome: accepted
268
+ finding: "HARD 4 / SOFT 10, 'first success reached: NO — stopped at Quick start line 2'. (1) install step absent entirely — `cd your-knowledge-repo && python3 bin/fw.py init` cannot run, fw.py is not there; (2) Quick-start vs org-instance-copy path indistinguishable, and cp silently overwrites where fw init refuses; (3) the example files I authored violate the project's own SPEC.md:24-26 ('unnormalized wikilink fails CI') — a model given to be imitated that must not be imitated; (4) `notes/` in quick start vs the new section table = two vocabularies 20 lines apart. Also caught that `fw init` creates only signals/ while the prose says start with memory/."
269
+ note: "Merge was blocked on this. All 4 source-verified before acting per [[feedback_challenger_verify_before_act]] — all 4 held. Side-finding from the verification: SPEC declares a CI that does not exist (.github absent), i.e. a declared gate with no machine — logged out of scope for that PR. The lens earned its cost on defect (3): the author cannot see that his own example contradicts a spec he wrote."
270
+
271
+ - date: 2026-07-21
272
+ agent: fh-meta:beginner
273
+ model: opus
274
+ purpose: "Re-verify the same artifact after fixes (PR #3, round 2) — convergence check, not a fresh review"
275
+ prompt_summary: "Resumed the same agent with context intact via SendMessage. Instructed to re-walk from line 27 rather than trust the claimed fixes, to check for newly introduced problems (quick start got longer), and to state explicitly whether remaining items are blocking — over-blocking named as a defect too."
276
+ outcome: accepted
277
+ finding: "HARD 1 / SOFT 7, 'first success: YES'. Verdict 'GO — after one cp-path fix'. All 4 round-1 HARDs confirmed closed by re-execution, translation propagation verified line-by-line across ko/ja/zh. New HARD found that the fix itself introduced: the cp source stayed relative, so following the doc in order leaves cwd inside the knowledge repo and the copy fails. Refused to over-block — explicitly ruled the Status n=1 framing and undefined 'harness' non-blocking, and marked the clone URL UNCALIBRATED rather than guessing PASS."
278
+ note: "Two rounds to converge: HARD 4 → 1 → 0. The round-2 HARD was self-inflicted by the round-1 fix, which is the argument for re-verify over single-pass ([[fh-commons:convergence-loop]]). The UNCALIBRATED flag was correct discipline and I closed it by actually running `git clone` — an agent declining to assert what it cannot measure is the behavior [[feedback_judge_robustness_mechanical_anchor]] asks for. Report shape (typed verdict + file:line anchor + counted severities) is why one read was enough to act; recorded as the compression contract candidate in fh_signal_2026-07-21_session.md."
279
+
280
+ - date: 2026-07-22
281
+ agent: claude (isolated blind sim ×2)
282
+ model: sonnet
283
+ purpose: "Target-tier known-pair sim for the new Intent-Marshaling doctrine (CLAUDE.md §Intent Marshaling + intent_marshaling_general_work.md) — salience-dependent change, Mode D near-mandatory"
284
+ prompt_summary: "Blind fresh-session sims: positive = '팀 공유용 qasp 소개 위키 초안 만들어줘' (must marshal), negative = 'CATALOG.md 오타 하나 고쳐줘' (must NOT add ceremony). No expected-answer leakage."
285
+ outcome: accepted
286
+ finding: "Pair separated → instrument valid. Positive: marshaled (mechanical grounding scan found existing teamlead deck = found→extend, tone-rule self-applied, run-first, zero deflection). Negative: direct check-and-answer, no marshaling ceremony. Residual: first-response scope means skill-composition naming + Step-5 exposure gate unobserved."
287
+ note: "Known-pair discipline per CLAUDE.md §Instrument Calibration. Recorded before publishing the PASS claim anywhere else."
288
+
289
+ - date: 2026-07-22
290
+ agent: codex-sidecar (headless x2 rounds)
291
+ model: gpt-5.5 (xhigh)
292
+ purpose: "Cross-family adversarial review of load-bearing Intent-Marshaling doctrine (auto-decorrelation standing path)"
293
+ prompt_summary: "R1: 4 attack angles (degrade direction / gate routing / overclaim / row collision). R2: stdin-inlined convergence check on the 4 fixes."
294
+ outcome: accepted
295
+ finding: "R1: 4/4 findings source-verified TRUE (2 HIGH, 2 MED) — trust-tier auto-run hole, per-action reversibility fail-open, subjective gap predicate, trigger collision. R2: CONVERGED, no new findings."
296
+ note: "Same-family review would likely have shared the optimistic 'installed = runnable' reading — the two HIGHs are exactly the correlated-blind-spot class. Transcript preserved for marker."
297
+
298
+ - date: 2026-07-22
299
+ agent: fh-meta:hub-persona-auditor
300
+ model: session-inherit
301
+ purpose: "Pre-publication persona audit of a leader-briefing draft (private companion store, restricted-env publication pending)"
302
+ prompt_summary: "3 personas (바쁜 비기술 파트장 · 회의적 기술 실장 · QA 리드) + 수치 소스 대조 + 측정경계/와이어프레임/행동가능성 검증"
303
+ outcome: accepted
304
+ finding: "수치 불일치 0/8. SHIP_AFTER_M: M3(비용 부재·바통터치 1인→다인 과대·용어 무정의) S7 R4 — 문서가 자기 원칙(낙관 차단)을 2곳에서 스스로 위반한 것 적발(1.5막 라벨·제작방식 시제). 전건 반영."
305
+ note: "감사가 잡은 낙관 2건을 문서 §제작방식에 명시 — 게이트 작동의 셀프 실증으로 전환."
306
+
307
+ - date: 2026-07-22
308
+ agent: fh-meta:hub-persona-auditor
309
+ model: session-inherit
310
+ purpose: "Pre-publication persona audit of the TF-facing methodology briefing (private companion store, restricted-env publication pending)"
311
+ prompt_summary: "3 TF personas (확산 리드 · 타 도메인 리더 · 회의적 플랫폼 엔지니어) + 도메인-무관 주장별 근거 검증 + 사례 축소 적정성 + 요청 행동가능성"
312
+ outcome: accepted
313
+ finding: "SHIP_AFTER_M 3건(플레이스홀더 잔존 · 자매문서 대비 미배선 단서 누락 · '무관' 단정 vs n=1) + S4 R3. 핵심 캐치: 사례 축소가 '분량'이 아니라 '선택'이 거꾸로 — 도메인 무관 층의 유일한 정량 근거(방법-스택 8/8)를 빼고 QA-특화 수치만 남긴 것. 전건 반영, 단 감사자 인용 60%→100%는 소스 재검증으로 5/8→6/8→8/8 정확값으로 교정."
314
+ note: "감사자 finding도 소스 검증 후 수용 — 근사치 인용 1건을 정확값으로 바로잡음 (challenger-verify-before-act)."
315
+
316
+ - date: 2026-07-23
317
+ agent: fh-commons:quench-challenger
318
+ model: session-inherit
319
+ purpose: "4-axis Axis 2 adversarial review of fh_session_load.sh digest schedule-aware guard (pre-commit full mode)"
320
+ prompt_summary: "diff 공격 — 산술/파싱(10# · set -u 즉사) · 시각 경계(자정·09:00 정각) · stat 폴백 · in-flight 임계 · 다운스트림 파괴"
321
+ outcome: accepted
322
+ finding: "VERDICT PASS(HIGH 0) · MED 2(존재판정이 러너 digest_ready 와 관대함 갈림 → partial 성공-오독 · 락 미확인 → 슬립-복귀 false 실패) · LOW 3. 실패 공격 8건은 bash 3.2 실기 실측으로 기각. MED 2건+LOW 1건 소스검증 후 수리, 8/8 재캘리브레이션."
323
+ note: "MED-1 은 pre-existing 을 챌린저가 잡음 — divergent-leniency 패턴의 실전 재발 사례. 처방 술어를 러너 원문(-size +1k · -mmin +240)과 문면 일치시켜 수리."
324
+
325
+ - date: 2026-07-23
326
+ agent: fh-commons:quench-challenger
327
+ model: session-inherit
328
+ purpose: "4-axis Axis 2 adversarial review of harness-doctor #153 taxonomy check removal"
329
+ prompt_summary: "삭제 diff 공격 — dangling refs · 구조(테이블/Step 흐름) · 삭제 vs 강등 판단 · 제외리스트 loss · 톰스톤 정확성"
330
+ outcome: accepted
331
+ finding: "VERDICT PASS(HIGH 0 MED 0 LOW 3). 소비자 0 을 독립 재검증(log yaml role: 0줄 · tracks/_meta 접촉 스킬 4종 무독자) · 실패 공격 5축 전부 근거 명시 기각. LOW 3건=커밋 메시지 요건."
332
+ note: "삭제 검증에서도 challenger 가 자체 grep 으로 소스 접지 — 거버너 동의가 아닌 기계 앵커로 수용."
333
+
334
+ - date: 2026-07-23
335
+ agent: codex-sidecar (gpt-5.5, cross-family)
336
+ model: gpt-5.5
337
+ purpose: "qasp-dev PR #16 게이트 실행기(exit-code verdict 표면) cross-family 적대 검증 — Field-Harness Load-Bearing Change Gate 이행"
338
+ prompt_summary: "R1 degrade-방향 공격(무음 PASS 경로·argparse 충돌·컨텍스트 제외·test_ 면제 우회) → R2 수리 재검 → R3 수렴 확인"
339
+ outcome: accepted
340
+ finding: "R1 HIGH 2(비-.py 단일 지정 무음 exit0 · test_ 이름만 면제로 page.py core 메서드 통과) MED 2 LOW 2 → 수리. R2 NEW 1(pytestmark 구식 술어가 test_*.py 접두 미검사 = PASS 방향 누락) → 수리. R3 CONVERGED — codex 자체 재실행으로 42 passed·실표면 13건/exit1 재확인."
341
+ note: "codex 제안 술어(_RE_TEST_FILE)가 실FP 파일을 못 덮는 것을 known-pair 로 확인 후 넓혀 적용 — challenger-verify-before-act 양방향(제안도 검증)."
342
+
343
+ - date: 2026-07-24
344
+ agent: fh-commons:quench-challenger
345
+ caller: fh-hub session (Mode D, 4-axis Axis 2)
346
+ task: "sister-links+digest-fixes 브랜치 diff 적대 리뷰 (5파일 +30/-1)"
347
+ dispatch_type: background Agent
348
+ model: claude-fable-5
349
+ outcome: accepted
350
+ note: "HIGH 0 MED 2 LOW 3 — MED 2·LOW 2 즉시 수리, 공격실패 5축 클린. 동시편집 감지(스테이징 전 워크트리 리뷰로 자체 보정)까지 정확"
351
+ - date: 2026-07-24
352
+ agent: claude (generic, model=sonnet pin)
353
+ caller: fh-hub session (Mode D, target-tier sim)
354
+ task: "frontier-digest Angle rule 블라인드 known-pair sim (이중각도 Bun vs 단일각도 Nvidia)"
355
+ dispatch_type: background Agent
356
+ model: claude-sonnet-5
357
+ outcome: accepted
358
+ note: "분리 성공 — 방법론각도 표면화 + 비강요. 경미 일탈(폐기 사유 출력) → 문구 조임 반영"
359
+
360
+ - date: 2026-07-25
361
+ agent: codex (gpt-5.5, cross-family sidecar)
362
+ caller: fh-hub session (Mode D, 최우선-0 탈상관 독트린 자기적용 감사)
363
+ task: "'탈상관=생성 원리' 명제+따름정리 적대 감사 (명제 자체가 탈상관 0 대화 출신 → cross-family 필수 건)"
364
+ dispatch_type: background bash (stdin form, in-repo)
365
+ model: gpt-5.5
366
+ outcome: accepted
367
+ finding: "(a) 핵심명제 NARROWED — '못 미더워서 아니라' 거짓대비 기각, 증분=조기 same-family 합의는 설계탐색의 나쁜 정지조건. (b) 따름정리 NARROWED — divergence-then-selection 구조 한정, 고레버리지·미결정·경로설정 결정에만, no voting. 실패케이스=always-branch 의례화(수렴 공격)."
368
+ note: "codex가 repo 파일 3건 라인 인용 — governor 소스 확인 통과. 독트린화는 보류 유지, 착지 문구 기본판만 확정."
369
+
370
+ - date: 2026-07-25
371
+ agent: claude (generic, model=sonnet pin)
372
+ caller: fh-hub session (Mode D, target-tier sim)
373
+ task: "asset-placement-gate Cookbook Tier-0 등재 + context-doctor built-in-/doctor-first 앵커 — 블라인드 실행 sim"
374
+ dispatch_type: background Agent
375
+ model: claude-sonnet-5
376
+ outcome: accepted
377
+ note: "PASS — 3대 코퍼스(built-ins/plugins-official/Cookbook) 전부 호명 + offline 'unchecked' 폴백 사용 + 더미제안 ③fail→Drop 정상판정. context-doctor는 built-in 먼저+증분 3축 정확."
378
+
379
+ - date: 2026-07-25
380
+ agent: fh-commons:quench-challenger
381
+ caller: fh-hub session (Mode D, 4-axis Axis 2)
382
+ task: "asset-placement-gate Cookbook 등재 + context-doctor sister 앵커 diff 적대 리뷰"
383
+ dispatch_type: background Agent
384
+ model: claude-fable-5
385
+ outcome: accepted
386
+ finding: "HIGH 0 MED 3 LOW 3 — ④섹션 혼입(→Step 0.6 분리)·③ 판정강도 모순(→judged flag)·증분 과소기술(→.claudeignore·/clear 추가)·unchecked 착지면·stale 날짜클레임·URL 누락. 외부 클레임 2건 라이브 재검증까지 수행(섹션명·/doctor 원문)."
387
+ note: "6/6 수리. fail-open/fail-closed 방향은 공격 실패(가역 라우팅 표면=advisory 정방향 확인)."
388
+
389
+ - date: 2026-07-25
390
+ agent: fh-meta:persona-innovator
391
+ caller: fh-hub session (Mode D, event-bound Mode F — 운영자 승인)
392
+ task: "신규 스킬 네이밍 7후보 + divergence-then-selection 외부 프레임 대조 + 갭 스캔"
393
+ dispatch_type: background Agent
394
+ model: claude-fable-5
395
+ outcome: accepted
396
+ finding: "top pick dialogue-harvest 채택(패밀리 그리드 정합). 프레임 대조 4건(BVSR·DoubleDiamond·QD/MAP-Elites·Best-of-N) 전부 FH 2조항 부재 → 코이니지 유지+sister-link 권고. 갭 2건(라이브 provenance·induced 다운스트림) 기록만."
397
+ note: "T1 소스 URL 동반, H3 준수(권고만). 로스터 dedup-grep 자체 수행."
398
+
399
+ - date: 2026-07-25
400
+ agent: claude (generic, model=sonnet pin)
401
+ caller: fh-hub session (Mode D, dialogue-harvest 블라인드 캘리브레이션)
402
+ task: "정답표 미노출 known-pair 실행 — EN 대화 4유저턴 분리"
403
+ dispatch_type: background Agent
404
+ model: claude-sonnet-5
405
+ outcome: accepted
406
+ note: "완전 분리 — 독립/유도(최초출현 추적)/드롭 카운트/회계 항등식 전건 재현 + 유도명제 전파금지 제안 자발 생성. verification-status 컬럼만 granularity 차이 → 정답표에서 pass 기준 제외로 명시"
407
+
408
+ - date: 2026-07-25
409
+ agent: fh-commons:quench-challenger
410
+ caller: fh-hub session (Mode D, 4-axis Axis 2 — 신규 스킬)
411
+ task: "dialogue-harvest SKILL.md + calibration_pair.md 적대 리뷰 (6공격각)"
412
+ dispatch_type: background Agent
413
+ model: claude-fable-5
414
+ outcome: accepted
415
+ finding: "HIGH 1(EN-only 캘리브레이션 vacuous-pass — 자기인용 선례 재현) MED 3(회계 항등식 다중명제 붕괴·judged 위장·harvest-loop 경계) LOW 3 → 7/7 수리"
416
+ note: "캘리브레이션 기대답 자체가 스킬 규칙에서 올바로 도출됨을 별도 확인(계기의 계기 검증)"
417
+
418
+ - date: 2026-07-25
419
+ agent: codex (gpt-5.5, cross-family sidecar)
420
+ caller: fh-hub session (qasp 방향성 리뷰 — governance §8 반영안 적대 검증)
421
+ task: "qasp-dev 정체성 정본 §8(판정 독립) 신설 diff 적대 리뷰 (in-repo, 4공격각)"
422
+ dispatch_type: sync bash (stdin form, in-repo qasp-dev)
423
+ model: gpt-5.5
424
+ outcome: accepted
425
+ finding: "HIGH 3(UNVERIFIED 무이빨·동계열 PR리뷰 탈상관 연극·incumbent-exit 구멍) MED 5(§5 게이트표현 충돌·web_rules 산문라벨·같은주체<탈상관·§7 과광폭·앱트랙 미커버) → 8/8 반영"
426
+ note: "운영자 ⓐ 확정 + '존중 프레임' 정정을 8-1에 명문화. 브랜치 docs/governance-s8-verdict-independence 푸시, PR은 운영자 요청 대기"
427
+
428
+ - date: 2026-07-25
429
+ agent: codex (gpt-5.5, cross-family sidecar)
430
+ caller: fh-hub session (qasp-dev mobile_rules 2층 분리 — Field-Harness Load-Bearing Change Gate)
431
+ task: "mate_rules→mobile_rules 분리 diff 적대 리뷰 (5공격각: 행동드리프트·게이트 exit계약·층결합·-O어설션·문서정확성)"
432
+ dispatch_type: sync bash (stdin form, in-repo qasp-dev)
433
+ model: gpt-5.5
434
+ outcome: accepted
435
+ finding: "HIGH 0 MED 2 LOW 1 — assert가 python -O에서 증발(직접 재현) · 인덱스 합성의 무음 순서드리프트 · ⊃ 방향 오기 → 3/3 수리(-O 회귀테스트 동반). codex가 자체 구/신 비교 하네스 + 풀스위트 실행으로 행동보존 독립 확인"
436
+ note: "게이트 exit 계약(0/1/2/3)·fail-closed 성질은 공격 실패(보존 확인). 브랜치 feat/mobile-rules-split 푸시"
437
+
438
+ - date: 2026-07-25
439
+ agent: claude (generic, model=sonnet pin) ×2
440
+ caller: fh-hub session (qasp Matrix Benchmark v0 — blind/matrix probe pair)
441
+ task: "동일 결함세트(4+함정2) 3자 귀속 — 채널 접근만 차등(관측+스펙 vs +FE소스+BE상태)"
442
+ dispatch_type: background Agent ×2 병렬 (playwright headless, 격리)
443
+ model: claude-sonnet-5
444
+ outcome: accepted
445
+ finding: "검출 4/4 동률 · 귀속 블라인드 2/4 vs 매트릭스 4/4 · 함정 0/0. 오귀속 2건이 정확히 §3-b 칸(B1·C1 '컬럼 없음' 동일증상) + 스펙-낙관 방향 쏠림. 블라인드가 '채널 부족' 자기신고 → 에스컬레이션 훅 후보 발굴"
446
+ note: "n=1/조건 탐색 라벨 · C1 지시-유발 할인 명시. qasp-dev #27 머지. 티어 고정으로 구조 델타만 측정(티어 불변식)"
447
+
448
+ - date: 2026-07-25
449
+ agent: claude (generic, model=sonnet pin)
450
+ caller: fh-hub session (qasp Matrix Bench v1 갈래2 — web-e2e-generator 절차 재현)
451
+ task: "치유된 admin-surrogate + 기획서 v2로 3채널 E2E 생성 (SKILL 정본 준수, BE유도 단언 의무)"
452
+ dispatch_type: background Agent (playwright headless + node @playwright/test 셋업)
453
+ model: claude-sonnet-5
454
+ outcome: accepted
455
+ finding: "12/12 pass(10s)·web_rules 0/6 첫 패스·BE유도 단언 3(승인합 54,980,000 양페이지 불변·max date 상단행·12행 카운트)·뷰포트 조항 테스트·§8 UNVERIFIED 라벨 자기 명시. governor 독립 재실행 12/12(6.3s) 재확인"
456
+ note: "corp-env 실측 패턴(22/22 3채널)의 로컬 재현 성립 — 대리표면만으로 corp-env 실측 구조 반복 가능 입증. qasp-dev #28"
457
+ - date: 2026-07-25
458
+ agent: codex-sidecar (gpt-5.5, exec stdin)
459
+ caller: fh-governor (qasp-dev pull_anchor load-bearing gate)
460
+ task: cross-family adversarial review R1~R3 — 신규 verdict 모듈(PullVerdict) fail-open 감사
461
+ outcome: accepted
462
+ findings: "R1 7건(High 3=false-ABSENT fail-open) 전부 소스 확인 유효 → 수리+회귀앵커 21tests → R3 CONVERGED"
463
+ verdict_holder: governor (source-grounded 후 수용, 거버너 유지 판단 2건 별도)
464
+ tokens_est: ~3 calls
465
+ - date: 2026-07-25
466
+ agent: probe-fleet (9x sonnet, isolated)
467
+ caller: fh-governor (matrix bench 갈래3)
468
+ task: 3조건(지팡이/눈/에스컬레이션)×3reps 검출·귀속 벤치
469
+ outcome: accepted
470
+ findings: "검출 44/45 · 귀속 A64/B100/C80% · C 프로토콜 위반 0 · E4 계기 크라우딩 3/3"
471
+ verdict_holder: governor (answer_key 대조 채점, self-score 금지 준수)
472
+ tokens_est: ~917k subagent total
473
+ - date: 2026-07-26
474
+ agent: probe-fleet (3x general-purpose, isolated)
475
+ caller: fh-governor (matrix bench v2 — 툴링 known-pair baseline)
476
+ task: "계기 하한 없는 조건에서 admin-surrogate 컬럼 헤더 '전부' 관측 (숨은 display:none 컬럼이 기지 정답)"
477
+ outcome: accepted
478
+ findings: "숨은 컬럼 검출 2/3 (1기 미검출 — a11y 스냅샷 단독 신뢰) · 호출 10/13/10 · Bash 권한 차단 0건 · venv playwright 선택 0건(전원 MCP 자발 선택)"
479
+ verdict_holder: governor (기지 정답 대조)
480
+ note: "갈래3 각주2의 'Bash 권한 차단' 귀속이 이 조건에서 미재현 — 기각 아니라 미재현(조건 차이 미상). 실제 분산 축은 관측 계기 깊이로 재귀속"
481
+ - date: 2026-07-26
482
+ agent: probe-fleet (3x general-purpose, isolated)
483
+ caller: fh-governor (matrix bench v2 — 툴링 known-pair 처치군)
484
+ task: "§계기 하한(DOM 기하 교차확인 의무 + 부재 주장 fail-closed) 조항 하에 동일 관측 과제"
485
+ outcome: accepted
486
+ findings: "숨은 컬럼 검출 3/3 · 호출 11/7/10(평균 11.0→9.3, 증가 없음) · 2기는 원인 룰(@media max-width:1280px)까지 확보 · 1기는 CSSOM CORS 차단으로 UNVERIFIED 정직 종결(fail-closed 절 작동)"
487
+ verdict_holder: governor (기지 정답 대조)
488
+ note: "known-pair 성립. 수리를 실행 경로 고정이 아니라 계기 하한으로 배선 → RUNNER_gal3 §계기 하한(v2 이후 적용). qasp-dev 231497e"
489
+ - date: 2026-07-26
490
+ agent: agy sidecar (gemini-3.6-flash-high)
491
+ caller: fh-governor (agentsmith sister-asset cross-audit, auto-decorrelation leg 1)
492
+ task: 적대 감사 — sister 감사문서의 미근거·자기위주·범주오류 공격
493
+ outcome: accepted
494
+ findings: "NOT-CONVERGED, High 4/Med 3. 최대 지적=P-1/P-2 부재증명 오류(3파일 grep 무히트→개념부재 단정)"
495
+ verdict_holder: governor (소스 그라운딩 후 P-2 근거 기각·P-1 축소 — 동의로 수용 안 함)
496
+ note: "recorded 폼 갱신: agy models가 이제 슬러그 출력, 슬러그 핀 정상동작(identity probe 통과). 메모리의 '디스플레이명 필수' 규칙은 이 버전에서 stale"
497
+ - date: 2026-07-26
498
+ agent: 4090 local (qwen3.6:27b, Tailscale ollama)
499
+ caller: fh-governor (동 감사, auto-decorrelation leg 2)
500
+ task: 동일 적대 감사 (3번째 패밀리, 무료)
501
+ outcome: accepted
502
+ findings: "NOT-CONVERGED, High 3/Med 2/Low 1. leg 1과 독립적으로 동일 4지점 지목. 신규=0.8% 갭의 로케일/인코딩 가설(메커니즘은 실재 확인, 단 이 갭은 커밋간 워킹트리 스냅샷이 설명)"
503
+ verdict_holder: governor (기지 데이터 대조)
504
+ note: "두 레그가 같은 4곳을 지목했으나 P-1/P-2 중 어느 쪽이 기각인지는 양쪽 다 못 갈랐다 — 소스 검증만이 갈랐다. 사이드카=어디를 파나, 판정 아님"
505
+ - date: 2026-07-26
506
+ agent: codex sidecar (gpt-5.6-sol, exec stdin)
507
+ caller: fh-governor (동 감사, auto-decorrelation leg 3)
508
+ task: 동일 적대 감사 — 3차에 agentsmith 소스 5파일 stdin 인라인
509
+ outcome: accepted
510
+ findings: "NOT-CONVERGED, 40건. 앞 두 레그 미검출 3건: ①Step 4 산술 기준선 혼용(+3,218 오류→+2,687) ②P-2의 실제 근거=leak-gate.sh:80 `2>/dev/null || true` 에러삼킴(깨진 정규식→PASS, 실험 재현) ③'exit code뿐'은 오독(core/20이 판단기반 평가 요구)"
511
+ verdict_holder: governor (3건 모두 재계산·실험·소스로 독립 확인 후 수용)
512
+ note: "1·2차 실패=MCP auth stall / DNS 없는 샌드박스의 웹페치 반복. 인라인 후 3레그 중 최강 결과 — 품질이 티어가 아니라 증거접근에 지배됨. 단 조건이 달라 모델비교 아님"
513
+ - date: 2026-07-26
514
+ agent: codex sidecar (gpt-5.6-sol, exec stdin)
515
+ caller: fh-governor (4축 Axis 2 — SKILL_detail 게이트 수리 diff 적대 검토, leg 2)
516
+ task: 게이트 diff 5벡터 공격(불완전성·회귀·앵커견고성·fail-open·자기무력화)
517
+ outcome: partial
518
+ findings: "형식 findings 0건(미착지). 다만 탐색 중 dialogue-harvest/calibration_pair.md 를 **독립 발견** — governor 의 열거 스윕이 잡은 동일 파일이며, 수리 방향(이름목록→디렉토리 스코프)의 독립 확증"
519
+ verdict_holder: governor (Axis 2 는 agy 레그로 성립, codex 미착지를 마커에 잔여 명시)
520
+ note: "hang 아님 — mtime 69초 전·내용 진행형(detail 17개 frontmatter 순차 열람) 확인 후 판정. 실제 문제는 **과탐색**: ~7분간 findings 0. 증거접근을 준 것이 이번엔 역효과(레포를 읽을 수 있으니 계속 읽음). 운영자 판단으로 kill. 교훈: 사이드카에 소스 접근을 줄 때는 **탐색 예산**도 같이 줘야 한다 — 접근권만 주면 수렴 압력이 없다"
521
+ - date: 2026-07-26
522
+ agent: local-4090 sidecar (qwen3-coder:30b via ollama, Tailscale)
523
+ caller: fh-governor (qasp-dev mate_rules load-bearing gate — diff 앵커·P0 위양성 수리)
524
+ task: cross-family 적대 검증 R1~R2 — verdict/exit code 변경분 fail-open 감사
525
+ outcome: partial
526
+ findings: "R1 4건 중 #3(malformed hunk header) 수용·수리. #1/#2/#4 는 실체 하나(multi-line 시그니처 미검출)이며 변경 전 코드로 동일 입력 재현 → 선재 갭 확정(3/531=0.6%). R2 CONVERGED"
527
+ verdict_holder: governor (소스 대조 + 변경 전 코드 실행으로 귀속 확정)
528
+ note: "residency 판단으로 codex 대신 로컬 4090 선택(회사 심볼명 포함 diff, 머신 밖 미전송). qasp-dev PR#30"
529
+ - date: 2026-07-26
530
+ agent: local-4090 sidecar (qwen3-coder:30b)
531
+ caller: fh-governor (qasp §8-2 탈상관 판정 레그 — 실운영 1호)
532
+ task: "admin-surrogate e2e 생성물(producer=claude) 터미널 판정 — 생성자와 다른 계열 리뷰어로서 회귀 검출력 감사"
533
+ outcome: accepted
534
+ findings: "FINAL: CHANGES-REQUIRED (4개 blocking). 일부는 벤치 맥락(고정 픽스처·planted defect 앵커) 미인지 지적 — 소스 대조 후 수용/기각 예정"
535
+ verdict_holder: verdict_manifest 게이트 (exit 1 = UNVERIFIED). 항목별 채택은 governor 보류
536
+ note: "§8-2 첫 실측. 이 실행이 verdict_manifest 초판의 설계 결함(리뷰 존재≠통과)을 노출 — 적대 검증 5문항이 놓친 것을 첫 실사용이 잡음"
537
+ - date: 2026-07-26
538
+ agent: local-4090 sidecar (qwen3-coder:30b)
539
+ caller: fh-governor (verdict_manifest load-bearing 게이트)
540
+ task: cross-family 적대 검증 R1~R2 — 판정 게이트 fail-open/우회 감사
541
+ outcome: partial
542
+ findings: "R1 5문항 중 #5(유니코드 표기 변형으로 같은-계열 차단 우회) 수용·수리(NFKC+Cf 제거, 앵커 5종). #1 소스 실행으로 기각(자기모순), #2~#4 사이드카 자인 no-finding. R2 CONVERGED"
543
+ verdict_holder: governor (소스 실행 대조)
544
+ note: "적대 검증이 실사용을 대체 못 함 — 5문항이 못 잡은 '리뷰 존재≠통과' 구멍은 실운영 1호가 잡았다. qasp-dev PR#32"
545
+
546
+ - date: 2026-07-28
547
+ agent: fh-commons:quench-challenger (NOT invoked)
548
+ model: n/a
549
+ purpose: "Axis 2 adversarial pass on the degrade-scan shell-probe change (load-bearing: a verdict pre-screen)"
550
+ prompt_summary: "Would have been: attack the S1~S5 probes + the FP scoping; verify no default-toward-PASS class is hidden by the scoping itself."
551
+ outcome: sustained
552
+ finding: "Ran the adversarial pass INLINE instead. It did find a HIGH (S1 scope-exclusion swallowed `[ -f lib ] || exit 0` dependency guards — the fail-open class), closed with a regression anchor. But inline review is same-context by construction, so the isolation property the gate asks for was NOT obtained."
553
+ note: "Recorded as `sustained` (decided NOT to invoke) because the session carries a standing instruction: no Agent tool unless the user requests it. FIRST `sustained` entry in this log — and directly relevant to fh_signal_2026-07-28_decorrelation-log-uncalibrated, which measured 0 rejected / 0 sustained across 74 entries and argued the log is written selectively toward optimistic outcomes. Operator decision pending on dispatching before merge."
554
+
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@chrono-meta/fh-gate",
3
- "version": "1.4.71",
3
+ "version": "1.4.73",
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": [
@@ -65,6 +65,26 @@
65
65
  "scripts/selfcheck.sh",
66
66
  "scripts/test_fh_gate_regressions.sh",
67
67
  "templates/local_fh_context.md",
68
+ "knowledge/shared/learnings/subagent_invocations_log.yaml",
69
+ "scripts/chamber_candidate_collect.sh",
70
+ "scripts/fh_session_load.sh",
71
+ "templates/.claude/rules/mcp_tool_gating.md",
72
+ ".claude/rules/fh_4axis_gate.md",
73
+ "templates/degrade_direction_scan.sh",
74
+ "templates/.git-hooks",
75
+ "templates/regression_guard.sh",
76
+ "templates/predelete_check.sh",
77
+ "templates/PRE-PUBLISH-CHECKLIST.md",
78
+ "scripts/degrade_direction_scan.sh",
79
+ "scripts/test_degrade_scan_shell_probes.sh",
80
+ "scripts/gate_pathspec_check.sh",
81
+ "scripts/prepush_guard_check.sh",
82
+ "scripts/psa_scan_lib.sh",
83
+ "scripts/session_close_check.sh",
84
+ "scripts/universal_guard_check.sh",
85
+ "scripts/test_prepush_stdin_integrity.sh",
86
+ "scripts/public_surface_scan_files.sh",
87
+ ".claude/rules/.public-surface-patterns.defaults",
68
88
  "plugins/fh-meta/.claude-plugin/plugin.json",
69
89
  "plugins/fh-meta/skills",
70
90
  "plugins/fh-meta/agents",