@chrono-meta/fh-gate 1.4.59 → 1.4.61

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 (32) hide show
  1. package/.claude-plugin/marketplace.json +3 -3
  2. package/CATALOG.md +83 -0
  3. package/CHEATSHEET.md +15 -2
  4. package/CLAUDE.md +143 -224
  5. package/README.ja.md +8 -7
  6. package/README.ko.md +7 -6
  7. package/README.md +36 -17
  8. package/README.zh.md +5 -5
  9. package/bin/fh-codex-doctor.js +34 -3
  10. package/bin/fh-gate.js +17 -5
  11. package/bin/fh-goal.js +13 -5
  12. package/bin/fh-run.js +13 -5
  13. package/knowledge/shared/harness-core/claude_md_gate_details.md +88 -1
  14. package/knowledge/shared/harness-core/fh_detail_protocols.md +2 -2
  15. package/knowledge/shared/harness-core/field_harness_diagnostic.md +48 -0
  16. package/knowledge/shared/harness-core/measurement-integrity-checklist.md +9 -2
  17. package/knowledge/shared/harness-core/multi_harness_evolution_loop.md +66 -0
  18. package/knowledge/shared/harness-core/onboarding_acceleration_autopilot.md +82 -0
  19. package/package.json +2 -1
  20. package/plugins/fh-commons/.claude-plugin/plugin.json +1 -1
  21. package/plugins/fh-meta/.claude-plugin/plugin.json +2 -2
  22. package/plugins/fh-meta/skills/fh/SKILL.md +71 -0
  23. package/plugins/fh-meta/skills/harness-doctor/SKILL.md +109 -10
  24. package/plugins/fh-meta/skills/salience-splitter/SKILL.md +1 -1
  25. package/plugins/fh-meta/skills/verify-bidirectional/SKILL.md +3 -3
  26. package/scripts/count_check.sh +8 -1
  27. package/scripts/fh-gate.sh +150 -13
  28. package/scripts/fh-goal.sh +46 -5
  29. package/scripts/fh-run.sh +11 -0
  30. package/scripts/selfcheck.sh +40 -10
  31. package/scripts/test_fh_gate_regressions.sh +208 -0
  32. package/templates/local_fh_context.md +1 -1
@@ -11,13 +11,13 @@
11
11
  "plugins": [
12
12
  {
13
13
  "name": "fh-meta",
14
- "version": "1.4.59",
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.",
14
+ "version": "1.4.61",
15
+ "description": "Hub meta-operations toolkit — 34 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.59",
20
+ "version": "1.4.61",
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/CATALOG.md CHANGED
@@ -8,6 +8,33 @@ AI reads this file first when searching past work. Open individual files for det
8
8
 
9
9
  <!-- Add entries in reverse date order (newest at top) -->
10
10
 
11
+ > **Backfill note (2026-07-15):** the 07-12 / 07-13 / 07-14 entries below were reconstructed from git
12
+ > history + the session card's completion log during the 2026-07-15 harness-doctor run, which found that
13
+ > CATALOG had stopped at 07-10 while 30 FH-asset commits landed — i.e. 5 days of work were invisible to
14
+ > the CATALOG-first search protocol (CLAUDE.md §Searching Past Work). They are commit-grounded, but they
15
+ > are *reconstructions*, not first-hand session records: the "Decision/Open" lines carry only what the
16
+ > commits and card state, so a judgment made in-session but never written down is not recoverable here.
17
+ > The gap itself is the lesson — Comprehension Debt accrues silently when the close chain's CATALOG step
18
+ > is skipped.
19
+
20
+ ### 2026-07-14 | forge-harness | #incubator, #chamber-run, #emit-criterion, #kill-as-success, #envelope-boundary, #ship-gate, #dominance-benchmark, #degrade-lint, #reconstructed
21
+ **File:** knowledge/shared/harness-core/harness_incubator_doctrine.md · knowledge/shared/harness-core/ship_readiness_gate.md · CLAUDE.md §Envelope-Boundary Discipline · scripts/chamber_run.sh · scripts/chamber_candidate_collect.sh · scripts/degrade_direction_scan.sh · tracks/_chamber/
22
+ The incubator's heaviest day (16 commits, PRs #134–#144). **Chamber runs #5–#8 all KILL** — the ledger's honest record stays 8/8 KILL, 0 EMIT: the chamber *screens*, it has not yet *birthed*. Run #5 (degrade-lint EMIT attempt) produced the **measured EMIT criterion** (net-new ∧ artifact-shaped ∧ precision-adequate — scored 0/5 on real code, 5/5 FP); run #6 (harness-orchestrator) added a **4th EMIT axis** (hub-state-independence) + the graduation-order principle; run #7 (cluster-wizard) forced a chamber-scope clarification and exposed that the company-residency guard was prose-only with no machine field → **#144 promoted `residency`+`generality` to registry-scan schema fields**. Discovery pipeline wired end-to-end: `chamber_candidate_collect.sh` (6 sources → dedup → rank → reinvention screen → G4-KILL seen-filter) + `chamber_run.sh` (7-step resumable runner, budget cap, ≥3-blind-persona gate, Emission Gate, ledger auto-append) — honestly scoped: step-4 persona dispatch stays human/Claude-driven (bash cannot spawn isolated Agents), EMIT terminus is HITL. **Ship-readiness gate** formalized (all-green → formal tag) with **v0.1.0 = honest baseline** (0.x semver carries incomplete status; all-green → v1.0.0; npm 1.4.x is a separate plugin-cache number). **Governance dominance benchmark** rounds 1–2: the decorrelated *stack* (lens ∪ cross-family) scored 8/8 on a hard fail-open set vs 5/8 bare and 6/8 single-lens — the finding being that dominance comes from the architecture, not any single reviewer; two blind-spot classes materialized into `degrade_direction_scan.sh` Probes E (falsy-sentinel→PASS) and F (split-positional-verdict). **CLAUDE.md §Envelope-Boundary Discipline** (#138) shipped always-loaded as the reinvention-reflex counterweight — hold the unfamiliar unfamiliar at the boundary instead of normalizing it onto a known asset (blind Sonnet sim 2/2). Identity ①② corrected 🔴→🟡 (#137) after a collapse-to-hardest-mechanism error.
23
+ - Decision: KILL is a first-class success (it blocks reinvention); v0.1.0 ships honestly rather than claiming all-green; EMIT-worthiness is screened cheaply against the 4 axes before dispatch.
24
+ - Open: first EMIT still 0/8 — the incubator has never birthed; persona convergence on one author remains the top blocker; reps ≥ 3 owed on the single-draw dominance numbers.
25
+
26
+ ### 2026-07-13 | forge-harness | #chamber-namespace, #honest-correction, #overclaim, #cross-family, #simulate-first, #reconstructed
27
+ **File:** tracks/_chamber/ · CLAUDE.md (simulate-first branch · §Session-Close ④-b) · knowledge/shared/harness-core/harness_incubator_doctrine.md
28
+ Chamber-run namespace + measured routing baseline established (`tracks/_chamber/`, PR #132-ish range), then **two honest-correction passes on the same day**: the simulate-first branch had been written as though a one-command autonomous simulate→EMIT existed, and ④-b's drift-check prose overclaimed its own scope. Both were downgraded to what actually ships (runner exists; EMIT does not; the ④-b grep flags file co-occurrence, it does not determine topical parity — the parity call is judged). The second pass was a **codex cross-family follow-up** that caught residual overclaim the same-family fix had left behind — the sibling-overclaim catch pattern.
29
+ - Decision: prose describing a capability must match the shipped muscle boundary; "runner exists" ≠ "autonomous emit".
30
+ - Open: (rolled into 07-14's chamber work).
31
+
32
+ ### 2026-07-12 | forge-harness | #identity, #intent-machinization, #incubator-doctrine, #rules-diet, #salience, #register-consistency, #readme, #reconstructed
33
+ **File:** knowledge/shared/harness-core/harness_incubator_doctrine.md · knowledge/shared/rules/ (6 relocated) · CLAUDE.md §Voice/Tone · README.md + ko/zh/ja
34
+ Identity day. The operator-forged doctrine — **a harness machinizes intent** (`intent → forge → agreement (HITL) → machinery`), its payoff being that trial-and-error relocates off the human into the harness — was mechanized into `harness_incubator_doctrine.md` + the CLAUDE.md §Identity paragraph: FH is the **meta-harness and nursery** that incubates field harnesses in its own sandbox and emits them, operating over other harnesses as **compose ∪ disrupt** (core invariants never melt). **Rules diet** (the day's biggest measured win): 6 always-loaded protocol rules relocated `.claude/rules/` → `knowledge/shared/rules/` with pointers staying in CLAUDE.md — always-loaded footprint 106.5k → 81k chars (operator-measured −18.2k resident on a fresh top-level session; the measurement is only valid from a project-cwd top-level `/context`, not an Agent-View window). **Register-consistency** promoted into public CLAUDE.md §Voice/Tone after an Opus session drifted into 존댓말 — the rule had lived only in memory, and memory-only placement is what let it miss. Onboarding translation-guard fixed (the welcome line must be a plain native translation, not an invented coinage). READMEs reframed (solar-system framing + 4-pillar section) across 4 languages. Releases v1.4.53–v1.4.56.
35
+ - Decision: rules relocation over compression — governance-semantic split, pointers stay; salience rules that miss when memory-only get promoted to always-loaded.
36
+ - Open: the rules diet landed at 81k, barely over the 80k M-tier footprint threshold, and regrew to 85k within 3 days (see 2026-07-15).
37
+
11
38
  ### 2026-07-10 | forge-harness | #sonnet-floor, #doctrine, #loop-engineering, #tier-census, #cross-family, #pre-commit-gate, #dispatch-first
12
39
  **File:** knowledge/shared/harness-core/sonnet_floor_doctrine.md · knowledge/shared/harness-core/loop_engineering.md
13
40
  Encoded the operator-declared **Sonnet-Floor Doctrine** (base ops 100% Sonnet-runnable; tier-gated capability = defect; escalation = dispatch, never substrate; depth ladder = effort→dispatch→anchored-Sonnet) as a canonical axiom node, plus **loop_engineering.md** (5-question design-time discipline + FH loop inventory MECH/PROSE census + evidence-threshold hardening backlog). Cross-family evolution pass: codex gpt-5.5 xhigh repo census (T1 tier refs / T2 loop legs / T3 contradictions) + agy Gemini 3.1 Pro breadth (pattern-level only, zero citations imported — phantom-risk URLs). All 6 identified availability-gates fixed: pre-commit Axis-2 gains a **sonnet-floor lane** (anchor-required, R-tier auto-queue, 8/8 regression fixtures in scripts/test_marker_floor_lanes.sh), self_evolution weekly dead-end recast dispatch-first, Mode D notice re-directed (keep Sonnet + dispatch primary), canary opus-judge → Sonnet-governor+anchor, verify-bidirectional "never stay at sonnet" fixed, 9 SKILL.md `model: opus` hard pins retired (session-inherit). Trust-floors tightened to run-first/ask-last (full Sonnet autonomy; gates stay). Sonnet blind sims: 2 dispatched, 1 salience miss caught (loop-stub enumeration) → hardened → re-sim PASS.
@@ -413,6 +440,62 @@ v1.2 release complete (PR #1–#5): harvest-loop Step 0, agent-composer worktree
413
440
 
414
441
  <!-- Time-independent reference documents -->
415
442
 
443
+ ### 2026-07-17 | fh-meta | fh, hub-map, slash-command, discoverability, router-demotion-phase-a
444
+ **File:** `plugins/fh-meta/skills/fh/SKILL.md`
445
+ New skill: /fh renders the hub map (door menu + starter set + top phrases) on demand without a greeting — discoverability for task-first sessions. Renders from canonical sources (CLAUDE.md skeleton, starter_profile, CHEATSHEET), never forks a copy. Router-demotion Phase A alongside the trigger-table row diet (Step 0.5 probe 13/18 → 13 frontmatter-covered rows removed).
446
+
447
+ ### 2026-07-17 | pattern | multi-harness-evolution-loop, usability-axis, devolution-check, operator-forged
448
+ **File:** `knowledge/shared/harness-core/multi_harness_evolution_loop.md`
449
+ Operator-forged 5-phase loop (structure audit → persona usability → fix → devolution check until CONVERGED → settle) composing existing FH checks across a harness cluster. Doctrine: usability ("does speech reach") is a first-class diagnostic axis; improvement without a devolution check is half a loop. n=1 evidence 2026-07-17; skill-ification gated on n≥2.
450
+
451
+ ### 2026-07-17 | detail-layer | claude-md-gates, on-demand-detail, salience-split (backfill)
452
+ **File:** `knowledge/shared/harness-core/claude_md_gate_details.md`
453
+ On-demand detail home for CLAUDE.md gate sections (4-axis marker irreducibility, sim-dispatch fallback, floor-tier canary, cross-family complement, Mode D notice, pre-publish/destructive-op hook coverage, session-close steps) — read when executing or auditing the pointed gate.
454
+
455
+ ### 2026-07-17 | gate | field-verdict, cross-family, degrade-direction, load-bearing (backfill)
456
+ **File:** `knowledge/shared/harness-core/field_verdict_crossfamily_gate.md`
457
+ Canonical detail of the Field-Harness Load-Bearing Change Gate — discretion principle, four-faces failure signature, gate mechanics, n=7 qasp evidence (9 default-toward-PASS holes across 3 harnesses), under-trigger residuals, autonomous-loop baking.
458
+
459
+ ### 2026-07-17 | detail-layer | field-diagnostic, compose-rank-hitl, six-lenses
460
+ **File:** `knowledge/shared/harness-core/field_harness_diagnostic.md`
461
+ Detail home for the Field-Harness Diagnostic (CLAUDE.md summary section) — full six-lens composition table incl. loop-readiness mechanics + adversarial pairing, 2026-07-08 dogfood examples, guard rationale.
462
+
463
+ ### 2026-07-17 | detail-layer | onboarding-autopilot, phase0-audit, simulate-first, install-hitl
464
+ **File:** `knowledge/shared/harness-core/onboarding_acceleration_autopilot.md`
465
+ Detail home for the Onboarding / Acceleration Autopilot (CLAUDE.md summary section) — full Phase-0 branch logic incl. chamber/simulate-first honesty boundary, revfactory provenance, guard evidence (chamber run #7).
466
+
467
+ ### 2026-06-20 | principle | gate-locality, multi-runtime, judge-robustness (backfill 2026-07-17)
468
+ **File:** `knowledge/shared/harness-core/gate_locality_principle.md`
469
+ Gate-locality principle — a safety gate must live where the enforcing actor actually reads it; a gate defined where the actor never loads is decorative, not enforced. Origin of the AGENTS.md vs CLAUDE.md inheritance-gap fix (PR#111).
470
+
471
+ ### 2026-07-17 | rule | operational-adaptation, uap, user-tuning, generalization-gate (backfill)
472
+ **File:** `knowledge/shared/rules/operational_adaptation.md`
473
+ Standing per-user operational loop — User Adaptation Profile (UAP) mechanics, proposal outcome tracking, suppression/muting rules, and the generalization gate routing idiosyncratic vs generalizable learnings.
474
+
475
+ ### 2026-07-17 | dialogue | memory-recall, intent-based, associative, wiki-links (backfill)
476
+ **File:** `knowledge/shared/dialogue/memory_intent_recall.md`
477
+ Intent-based + associative memory recall — keyword → intent + 1-hop [[link]] graph traversal over memory files, index-first to avoid graph-walk explosion.
478
+
479
+ ### 2026-07-17 | schema | persona-container, sim-conductor, dispatch-binding (backfill)
480
+ **File:** `knowledge/shared/harness-core/persona_container_schema.md`
481
+ Canonical schema for synthesizing a simulation persona from a reusable container — slots, crowd-scale stop rule, multi-LLM tier distribution, situation→group→skill dispatch binding, and the synthesize→validate→graduate lifecycle. sim-conductor and any persona-dispatch skill fill these slots.
482
+
483
+ ### 2026-07-17 | consent | capability-escalation, dispatch-not-substrate, hitl (backfill)
484
+ **File:** `knowledge/shared/harness-core/capability_escalation_consent.md`
485
+ Consent protocol governing when a session may escalate capability — escalation = dispatch (consent-gated), never substrate switch; pairs with sonnet_floor_doctrine.
486
+
487
+ ### 2026-06-11 | cross-audit | companion-store, pluggable, gbrain, obsidian (backfill 2026-07-17)
488
+ **File:** `knowledge/shared/harness-core/companion_store_pluggable_cross_audit_2026-06-11.md`
489
+ Sister-asset cross-audit treating FH's companion store, gbrain, and Obsidian as interchangeable backends for one role — durable private knowledge persistence — and the rationale for making the companion store pluggable.
490
+
491
+ ### 2026-06-14 | pattern | live-surface, observe-act-verify, appium-less, hybrid-webview (backfill 2026-07-17)
492
+ **File:** `knowledge/shared/harness-core/live_surface_automation_pattern.md`
493
+ Live-surface automation pattern — the capability pattern FH routes to when a mapping project needs an agent to drive a live UI surface: the cross-platform observe-act-verify contract, the Appium-less principle, and the hybrid-WebView vision-synthesis rule. FH routes drivers (no-reinvention).
494
+
495
+ ### 2026-07-17 | pattern | ensemble-union, detection-task, voting-vs-union (backfill)
496
+ **File:** `knowledge/patterns/ensemble_union_detection_task_pattern.md`
497
+ Ensemble union pattern for detection tasks — detection ensembles combine by UNION (recall gain), generation ensembles by VOTING; field-measured on a fixed open-weight 3-model panel.
498
+
416
499
  ### 2026-06-06 | pattern | parallax, multi-persona-review, synthesizer, standpoint-coverage
417
500
  **File:** `knowledge/shared/patterns/multi-persona-review.md`
418
501
  Generalized architecture for multi-persona parallel artifact review ("parallax") — parallel isolated personas + shared output protocol + neutral synthesizer. Domain-agnostic, IP-stripped; embodied as sim-conductor Step 1.5.
package/CHEATSHEET.md CHANGED
@@ -60,6 +60,15 @@ cp <harness-root>/templates/CLAUDE.md <project>/CLAUDE.md
60
60
  | Save session | "save the current session" |
61
61
  | Evaluate structure | "how do you evaluate this structure from an AI perspective" |
62
62
  | Check duplicates | "check for duplicate or meaningless data" |
63
+ | Diagnose a mapped project's harness | "진단해줘" / "improve this harness" (inside the project) → ranked fix list, you approve per item |
64
+ | Recall past work | "what did we do last week?" → CATALOG-first search |
65
+
66
+ ### Full autonomy — the whole contract in one line
67
+
68
+ > **"끝까지 해줘" / "run it to the end" removes the per-item *prompts*, never the *gates*.**
69
+ > A token budget is agreed up front (goal-quench), install/acceleration plans never overwrite your
70
+ > existing harness/config files (merges are proposed instead), and irreversible actions
71
+ > (publish · delete · history-rewrite) still stop for you.
63
72
 
64
73
  ---
65
74
 
@@ -90,7 +99,11 @@ cd ~/projects/forge-harness
90
99
  git add -A && git commit -m "message"
91
100
  ```
92
101
 
93
- ### 4-Axis Gate (one-time setup per clone)
102
+ ### 4-Axis Gate (hub contributors only — one-time setup)
103
+
104
+ > **Only needed if you will modify FH's own assets** (skills, rules, templates, CLAUDE.md — i.e. hub
105
+ > contributions). If you just use FH with your projects, **skip this section**: the gate never fires
106
+ > on your own project's commits.
94
107
 
95
108
  ```bash
96
109
  # Activate the pre-commit hook — run once after cloning
@@ -144,7 +157,7 @@ ls <project>/.claude/agents/
144
157
  echo '.claude/agents/' >> <project>/.git/info/exclude
145
158
  ```
146
159
 
147
- ### Mode DCopy only agent files (minimal entry without plugin install)
160
+ ### Agent-copy pathcopy only agent files (minimal entry without plugin install)
148
161
 
149
162
  ```bash
150
163
  # Copy only the agents you need to your project