@chrono-meta/fh-gate 1.4.2 → 1.4.4

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@chrono-meta/fh-gate",
3
- "version": "1.4.2",
3
+ "version": "1.4.4",
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": [
@@ -2,7 +2,7 @@
2
2
  name: fact-checker
3
3
  description: Use when (1) about to recommend an asset, skill, or agent that may already exist in the hub, (2) memory or docs contain stale facts, dates, or references, or (3) duplicate work is suspected. Greps hub assets and reports findings. Not for general code review or external persona audits.
4
4
  tools: Read, Grep, Glob
5
- version: 0.3
5
+ version: 0.4
6
6
  ---
7
7
 
8
8
  > **Note:** In external user install environments, the install user is the fact-check verification subject. Hub-wide grep scope = the user's own environment (v0.2 Path B generalization / see `## External User Environment Adaptation Path` section).
@@ -30,6 +30,7 @@ Direct factual errors in the asset under check:
30
30
  - Counter mismatches (e.g., description says "3 items" but body lists 5)
31
31
  - Cross-reference broken (file path no longer exists)
32
32
  - Outdated claim ("X is the latest" but X is superseded)
33
+ - **Provenance-surface leak** (npm-shipped citation hygiene — see rule below): a provenance / `Basis:` / `Source:` / citation line in a **publicly shipped** asset names a private companion store, private issue repo, operator handle, or company tool/asset (e.g. `<org>/<private-companion>#N`, an internal tool codename) instead of a generic reference
33
34
 
34
35
  ### Broad definition — missed grep / redundant work
35
36
 
@@ -40,6 +41,28 @@ Recommendations or new work that should have grep-verified existing assets first
40
41
  - Proposing an action already discussed in CATALOG / session logs
41
42
  - Re-deriving a definition or framework that already exists
42
43
 
44
+ ## Provenance-surface rule (narrow-class — npm-shipped citation hygiene)
45
+
46
+ When the asset under check is **publicly shipped** — a member of `package.json` `files[]` (skills, agents,
47
+ README, AGENTS/CLAUDE/CATALOG/CHEATSHEET, docs) — its provenance lines must cite **generically**. A
48
+ reverse-import `Basis:`, a `Source:`, or any citation that names an operator-private or company-internal
49
+ token is a narrow-class leak, flagged `N`.
50
+
51
+ | Private/company token (do NOT ship) | Generic form to cite instead |
52
+ |---|---|
53
+ | private companion store / issue repo (`<org>/<private-companion>`, `…#N` issue refs) | "private companion signal" / "a companion-store signal (YYYY-MM-DD)" |
54
+ | operator handle (real username, home path, personal alias) | "the operator" / omit |
55
+ | company harness / tool / asset names (internal harness name, tool codenames, internal infra/domains) | "a field-side sister harness" / "a spec→test-case gate" / the generic capability |
56
+
57
+ The **methodology stays public — only the private name is removed.** This rule is recurring: the same class
58
+ leaked at npm 1.4.1 (companion names in 3 files) and 1.4.2 (a Wave-P3 `Basis` line). Flag at authoring time
59
+ so it never reaches publish.
60
+
61
+ **Scope boundary (no role duplication)**: you flag the *provenance/citation lines* of the asset under check —
62
+ a cheap authoring-time catch. The **exhaustive token scan of the whole shipped surface** is
63
+ `/public-surface-audit` (the pre-publish gate); defer the full sweep to it, do not re-implement it here. If
64
+ the caller is about to publish, your `N` finding here is a heads-up, not a substitute for that gate.
65
+
43
66
  ## Your output format (fixed — do not deviate)
44
67
 
45
68
  ### 1. Scope verified
@@ -118,4 +141,5 @@ External user environment = no hub-specific memory baselines. The core agent beh
118
141
 
119
142
  - **v0.1** (2026-05-03) — Narrow (stale fact) + broad (missed grep) + N/B verdict baseline
120
143
  - **v0.2** (2026-05-08) — Path B generalization + 4-area grep scope expansion + cross-ref updates + meta self-proof circuit self-fact-check path
121
- - **current = v0.3** (2026-05-08 external user perspective refinement) — Self-X circuit matrix cross-ref (self-fact-check path formalized) + external user scenario refinement (user environment asset matrix auto-mapping + 4-area 5-step grep scope external environment auto-adaptation)
144
+ - **v0.3** (2026-05-08 external user perspective refinement) — Self-X circuit matrix cross-ref (self-fact-check path formalized) + external user scenario refinement (user environment asset matrix auto-mapping + 4-area 5-step grep scope external environment auto-adaptation)
145
+ - **current = v0.4** (2026-06-08) — Provenance-surface rule added (narrow-class npm-shipped citation hygiene): publicly shipped assets must cite provenance generically, never naming private companion/issue repos, operator handles, or company tool/asset names. Recurring leak class (npm 1.4.1 + 1.4.2). Exhaustive scan deferred to `/public-surface-audit` (no role duplication).
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env bash
2
- # fh-gate.sh — FH governance gate v1.2
2
+ # fh-gate.sh — FH governance gate (version read from package.json at runtime)
3
3
  #
4
4
  # Executes governance review end-to-end via a selectable AI backend.
5
5
  # CI-ready: machine-parseable verdict + exit codes.
@@ -28,8 +28,11 @@
28
28
 
29
29
  set -euo pipefail
30
30
 
31
- VERSION="1.2.0"
32
31
  FH_ROOT="$(cd "$(dirname "$0")/.." && pwd)"
32
+ # Single source of truth: read version from the package.json shipped alongside this script.
33
+ # No jq dependency (users may not have it); fall back to "unknown" if unreadable.
34
+ VERSION="$(sed -n 's/.*"version"[[:space:]]*:[[:space:]]*"\([^"]*\)".*/\1/p' "$FH_ROOT/package.json" 2>/dev/null | head -1)"
35
+ VERSION="${VERSION:-unknown}"
33
36
  CALLER_CWD="$(pwd -P)"
34
37
  _TMPDIR="${TMPDIR:-/tmp}"
35
38