ground-truth
BridgeBuilderのトーンで事実に基づいたコードに根ざしたGTMドキュメントを生成し、確定的な検証を行うためのSkill。
📜 元の英語説明(参考)
Generate factual, code-grounded GTM documents with BridgeBuilder voice and deterministic verification
🇯🇵 日本人クリエイター向け解説
BridgeBuilderのトーンで事実に基づいたコードに根ざしたGTMドキュメントを生成し、確定的な検証を行うためのSkill。
※ jpskill.com 編集部が日本のビジネス現場向けに補足した解説です。Skill本体の挙動とは独立した参考情報です。
下記のコマンドをコピーしてターミナル(Mac/Linux)または PowerShell(Windows)に貼り付けてください。 ダウンロード → 解凍 → 配置まで全自動。
mkdir -p ~/.claude/skills && cd ~/.claude/skills && curl -L -o ground-truth.zip https://jpskill.com/download/5956.zip && unzip -o ground-truth.zip && rm ground-truth.zip
$d = "$env:USERPROFILE\.claude\skills"; ni -Force -ItemType Directory $d | Out-Null; iwr https://jpskill.com/download/5956.zip -OutFile "$d\ground-truth.zip"; Expand-Archive "$d\ground-truth.zip" -DestinationPath $d -Force; ri "$d\ground-truth.zip"
完了後、Claude Code を再起動 → 普通に「動画プロンプト作って」のように話しかけるだけで自動発動します。
💾 手動でダウンロードしたい(コマンドが難しい人向け)
- 1. 下の青いボタンを押して
ground-truth.zipをダウンロード - 2. ZIPファイルをダブルクリックで解凍 →
ground-truthフォルダができる - 3. そのフォルダを
C:\Users\あなたの名前\.claude\skills\(Win)または~/.claude/skills/(Mac)へ移動 - 4. Claude Code を再起動
⚠️ ダウンロード・利用は自己責任でお願いします。当サイトは内容・動作・安全性について責任を負いません。
🎯 このSkillでできること
下記の説明文を読むと、このSkillがあなたに何をしてくれるかが分かります。Claudeにこの分野の依頼をすると、自動で発動します。
📦 インストール方法 (3ステップ)
- 1. 上の「ダウンロード」ボタンを押して .skill ファイルを取得
- 2. ファイル名の拡張子を .skill から .zip に変えて展開(macは自動展開可)
- 3. 展開してできたフォルダを、ホームフォルダの
.claude/skills/に置く- · macOS / Linux:
~/.claude/skills/ - · Windows:
%USERPROFILE%\.claude\skills\
- · macOS / Linux:
Claude Code を再起動すれば完了。「このSkillを使って…」と話しかけなくても、関連する依頼で自動的に呼び出されます。
詳しい使い方ガイドを見る →- 最終更新
- 2026-05-17
- 取得日時
- 2026-05-17
- 同梱ファイル
- 1
📖 Skill本文(日本語訳)
※ 原文(英語/中国語)を Gemini で日本語化したものです。Claude 自身は原文を読みます。誤訳がある場合は原文をご確認ください。
[スキル名] ground-truth
Ground Truth — 事実に基づいた GTM ドキュメント生成
あなたは、BridgeBuilder の口調で、事実に基づいた、コードに根ざした GTM ドキュメントを生成しています。 すべての主張は検証可能でなければなりません。すべての引用は実在のものでなければなりません。検証レイヤーは完全に決定論的です。シェルスクリプトがあなたの作業をチェックします。ファイアウォールを越えて幻覚を見ることはできません。
"形容詞よりもメカニズム。主張よりも証拠。販売よりも教育。"
プリフライト
レジストリが存在することを確認する
for f in features.yaml limitations.yaml capability-taxonomy.yaml; do
if [[ ! -f "grimoires/loa/ground-truth/$f" ]]; then
echo "ERROR: Missing registry: grimoires/loa/ground-truth/$f"
echo ""
echo "Run: .claude/scripts/ground-truth/bootstrap-registries.sh"
echo "Then edit the files and commit before running /ground-truth."
exit 1
fi
done
echo "Registries OK"
引数を解析する
サポートされているフラグ:
--type capability-brief(デフォルト)--type architecture-overview--incremental— 古いセクションのみを再生成します (v2.0)
DOC_TYPE="${1:-capability-brief}"
OUTPUT_DIR="grimoires/loa/ground-truth"
INCREMENTAL=false
# Parse --incremental flag from arguments
ステージ 1: GROUND — コードベースの現実をロードする
優先順位に従ってコンテキストをロードします。ティア A は必須です。
ティア A: ハード制約 (常に最初にロード)
-
選択されたドキュメントタイプのテンプレート:
- 読み込み:
.claude/skills/ground-truth/resources/templates/${DOC_TYPE}.md - これにより、必要なセクション、出所の期待、構造が定義されます。
- 読み込み:
-
出所仕様:
- 読み込み:
.claude/skills/ground-truth/resources/provenance-spec.md - これにより、正確なタグ構文、引用ルール、証拠アンカー形式が定義されます。
- 読み込み:
-
品質ゲート要件 (何がチェックされるかを知る):
- 引用検証: すべての
file:lineは、実在する追跡対象ファイルに解決されなければなりません。 - 禁止用語: 最上級表現は一切禁止です。
- 出所タグ: 95%以上のカバレッジ、クラス固有の引用ルールが適用されます。
- 証拠アンカー: すべての CODE-FACTUAL 段落には
<!-- evidence: ... -->が必要です。
- 引用検証: すべての
ティア B: 証拠 (トークン予算内で優先順位に従ってロード)
-
コードの現実 — 最優先の証拠:
- 読み込み:
grimoires/loa/reality/index.md(/rideから利用可能な場合) - または:
inventory-modules.shを実行してモジュールを列挙します。 - 特定の主張のために実際のソースファイルを読み込みます。
- 読み込み:
-
レジストリファイル:
- 読み込み:
grimoires/loa/ground-truth/features.yaml - 読み込み:
grimoires/loa/ground-truth/limitations.yaml - 読み込み:
grimoires/loa/ground-truth/capability-taxonomy.yaml
- 読み込み:
-
グリモワールの状態 (利用可能な場合):
- 読み込み:
grimoires/loa/NOTES.md - 読み込み:
grimoires/loa/decisions.yaml(存在する場合)
- 読み込み:
-
ボイステンプレート:
- 読み込み:
.claude/skills/ground-truth/resources/voice/bridgebuilder-gtm.md
- 読み込み:
-
アナロジーバンク (利用可能な場合):
- 読み込み:
.claude/skills/ground-truth/resources/analogies/analogy-bank.yaml - 各アナロジーには
confidenceフィールド (high/moderate) があります:- high: 直接使用 — "X は Y のように機能する" と完全な構造比較を行います。
- moderate: 修飾語を付けて使用 — "いくつかの点で Y に似ている" または "Y と大まかに並行している"
- high-confidence のアナロジーの陳腐化は、moderate なものよりも緊急性の高いシグナルです。
- 読み込み:
トークン予算
目標: 生成コンテキストに 13,500~28,000 トークン。
- ティア A: 約 3,000 トークン (テンプレート + 出所仕様)
- ティア B の現実: 約 8,000 トークン (コード + レジストリ)
- ティア B の音声: 約 1,500 トークン (ボイステンプレート + アナロジー)
- 残り: 生成プロンプト + 出力スペース
コンテキストが予算を超えた場合、ティア B の項目を優先順位の低いものから順に切り詰めます。
ステージ 2: INVENTORY — シェルスクリプトを実行する
インベントリおよび抽出スクリプトを実行して、構造化データを収集します。
# Module inventory
.claude/scripts/ground-truth/inventory-modules.sh --json
# Limitations extraction
.claude/scripts/ground-truth/extract-limitations.sh --json
Read ツールを使用して、作成する主張の特定のソースファイルを検査してください。 ファイルを読み込むために任意の Bash を使用しないでください。Read ツールを使用してください。
ステージ 3: GENERATE — ドキュメントを生成する
インクリメンタルモード (v2.0)
--incremental が設定されている場合、古いセクションのみを再生成します。
# Check which sections need regeneration
staleness=$(.claude/scripts/ground-truth/check-staleness.sh "${OUTPUT_DIR}/${DOC_TYPE}.md" --json)
stale_count=$(echo "$staleness" | jq -r '.stale_count')
if [[ "$stale_count" -eq 0 ]]; then
echo "No stale sections — document is current"
# Skip to Stage 6 (OUTPUT)
fi
# Get list of stale section headings
stale_headings=$(echo "$staleness" | jq -r '.stale_sections[].heading')
インクリメンタルに再生成する場合:
- 既存のドキュメントを読み込みます。
stale_headingsに含まれる見出しを持つセクションのみを書き換えます。- 古くないセクションはすべてバイト単位で保持します。
- 部分的な再生成後、ドキュメント全体に対して VERIFY を実行します (古いセクションだけでなく)。
--incremental が設定されていない場合、以前と同様にドキュメント全体を生成します。
テンプレート構造に厳密に従ってドキュメントを生成します。
生成ルール
-
すべての CODE-FACTUAL 段落は、次の条件を満たす必要があります:
<!-- provenance: CODE-FACTUAL -->が前に付いていること。- 少なくとも 1 つのバッククォート
file:line引用が含まれていること。 - 引用された範囲からのトークンを含む
<!-- evidence: symbol=X, literal="Y" -->が後に続くこと。 - 引用を記述する前に Read ツールを使用して引用された行を検証すること。
-
すべての HYPOTHESIS 段落は、次の条件を満たす必要があります:
<!-- provenance: HYPOTHESIS -->が前に付いていること。- 認識論的マーカー ("We hypothesize", "We are exploring" など) で始まること。
-
すべての EXTERNAL-REFERENCE は URL または論文参照を引用する必要があります。
-
BridgeBuilder の口調:
- 主要なセクション (## 見出し) ごとに少なくとも 1 つの FAANG/優良企業のアナロジーを含めること。
- 70/30 ルール: 70% がメカニズム、30% がアナロジー。
- アナロジーを無理に適用しないこと — 不正確さよりも省略を優先すること。
-
禁止用語:
banned-terms.txtの用語は絶対に使用しないこと。 -
引用エンコーディング: パスはリポジトリ相対で、
^[a-zA-Z0-9_./-]+$に一致する必要があります。
出力
生成されたドキュメントを以下に書き込みます。
📜 原文 SKILL.md(Claudeが読む英語/中国語)を展開
Ground Truth — Factual GTM Document Generation
You are generating factual, code-grounded GTM documents using the BridgeBuilder voice. Every claim must be verifiable. Every citation must be real. The verification layer is entirely deterministic — shell scripts check your work. You cannot hallucinate past the firewall.
"Mechanism over adjective. Evidence over assertion. Teaching over selling."
Pre-flight
Check registries exist
for f in features.yaml limitations.yaml capability-taxonomy.yaml; do
if [[ ! -f "grimoires/loa/ground-truth/$f" ]]; then
echo "ERROR: Missing registry: grimoires/loa/ground-truth/$f"
echo ""
echo "Run: .claude/scripts/ground-truth/bootstrap-registries.sh"
echo "Then edit the files and commit before running /ground-truth."
exit 1
fi
done
echo "Registries OK"
Parse arguments
Supported flags:
--type capability-brief(default)--type architecture-overview--incremental— Only regenerate stale sections (v2.0)
DOC_TYPE="${1:-capability-brief}"
OUTPUT_DIR="grimoires/loa/ground-truth"
INCREMENTAL=false
# Parse --incremental flag from arguments
Stage 1: GROUND — Load codebase reality
Load context in priority order. Tier A is non-negotiable.
Tier A: Hard Constraints (load first, always)
-
Template for the selected document type:
- Read:
.claude/skills/ground-truth/resources/templates/${DOC_TYPE}.md - This defines required sections, provenance expectations, and structure
- Read:
-
Provenance specification:
- Read:
.claude/skills/ground-truth/resources/provenance-spec.md - This defines the exact tag syntax, citation rules, and evidence anchor format
- Read:
-
Quality gate requirements (know what will be checked):
- Citation verification: every
file:linemust resolve to a real, tracked file - Banned terms: zero tolerance for superlatives
- Provenance tags: ≥95% coverage, class-specific citation rules enforced
- Evidence anchors: every CODE-FACTUAL paragraph needs
<!-- evidence: ... -->
- Citation verification: every
Tier B: Evidence (load in priority order, within token budget)
-
Code reality — highest priority evidence:
- Read:
grimoires/loa/reality/index.md(if available from /ride) - Or: Run inventory-modules.sh to enumerate modules
- Read actual source files for specific claims
- Read:
-
Registry files:
- Read:
grimoires/loa/ground-truth/features.yaml - Read:
grimoires/loa/ground-truth/limitations.yaml - Read:
grimoires/loa/ground-truth/capability-taxonomy.yaml
- Read:
-
Grimoire state (if available):
- Read:
grimoires/loa/NOTES.md - Read:
grimoires/loa/decisions.yaml(if exists)
- Read:
-
Voice template:
- Read:
.claude/skills/ground-truth/resources/voice/bridgebuilder-gtm.md
- Read:
-
Analogy bank (if available):
- Read:
.claude/skills/ground-truth/resources/analogies/analogy-bank.yaml - Each analogy has a
confidencefield (high/moderate):- high: Use directly — "X works like Y" with full structural comparison
- moderate: Use with qualifier — "in some ways similar to Y" or "loosely parallels Y"
- Staleness of high-confidence analogies is a more urgent signal than moderate ones
- Read:
Token budget
Target: 13,500–28,000 tokens for generation context.
- Tier A: ~3,000 tokens (templates + provenance spec)
- Tier B reality: ~8,000 tokens (code + registries)
- Tier B voice: ~1,500 tokens (voice template + analogies)
- Remaining: generation prompt + output space
If context exceeds budget, truncate Tier B items from lowest priority up.
Stage 2: INVENTORY — Run shell scripts
Run inventory and extraction scripts to gather structured data:
# Module inventory
.claude/scripts/ground-truth/inventory-modules.sh --json
# Limitations extraction
.claude/scripts/ground-truth/extract-limitations.sh --json
Use the Read tool to inspect specific source files for claims you'll make. Do NOT use arbitrary Bash to read files — use the Read tool.
Stage 3: GENERATE — Produce the document
Incremental mode (v2.0)
When --incremental is set, only regenerate sections that are stale:
# Check which sections need regeneration
staleness=$(.claude/scripts/ground-truth/check-staleness.sh "${OUTPUT_DIR}/${DOC_TYPE}.md" --json)
stale_count=$(echo "$staleness" | jq -r '.stale_count')
if [[ "$stale_count" -eq 0 ]]; then
echo "No stale sections — document is current"
# Skip to Stage 6 (OUTPUT)
fi
# Get list of stale section headings
stale_headings=$(echo "$staleness" | jq -r '.stale_sections[].heading')
When regenerating incrementally:
- Read the existing document
- Only rewrite sections whose headings appear in
stale_headings - Preserve all non-stale sections byte-for-byte
- Run VERIFY on the full document after partial regeneration (not just stale sections)
If --incremental is NOT set, generate the full document as before:
Generate the document following the template structure exactly.
Generation rules
-
Every CODE-FACTUAL paragraph MUST:
- Be preceded by
<!-- provenance: CODE-FACTUAL --> - Contain at least one backtick
file:linecitation - Be followed by
<!-- evidence: symbol=X, literal="Y" -->with tokens from the cited range - Use the Read tool to verify the cited lines BEFORE writing the citation
- Be preceded by
-
Every HYPOTHESIS paragraph MUST:
- Be preceded by
<!-- provenance: HYPOTHESIS --> - Start with an epistemic marker ("We hypothesize", "We are exploring", etc.)
- Be preceded by
-
Every EXTERNAL-REFERENCE MUST cite a URL or paper reference
-
BridgeBuilder voice:
- At least 1 FAANG/bluechip analogy per major section (## heading)
- 70/30 rule: 70% mechanism, 30% analogy
- Never force an analogy — prefer omission over inaccuracy
-
Banned terms: Never use any term from
banned-terms.txt -
Citation encoding: Paths must be repo-relative, matching
^[a-zA-Z0-9_./-]+$
Output
Write the generated document to:
grimoires/loa/ground-truth/${DOC_TYPE}.md
Stage 4: VERIFY — Deterministic quality gates
Run the full quality gate suite. No LLM in this path.
.claude/scripts/ground-truth/quality-gates.sh "grimoires/loa/ground-truth/${DOC_TYPE}.md" --json
If exit code is 0: proceed to Stage 6 (OUTPUT). If exit code is 1: proceed to Stage 5 (REPAIR).
Stage 5: REPAIR — Fix verification failures (max 3 iterations)
When quality gates fail, you receive a JSON failure report. Fix each failure.
Repair interface contract
- Input: Failure JSON from quality-gates.sh + the generated markdown draft
- Allowed edits: ONLY the generated markdown at
grimoires/loa/ground-truth/${DOC_TYPE}.md - Method: Full rewrite of the generated markdown file
- Guard: Do NOT edit source code, registries, or any file outside
grimoires/loa/ground-truth/
Repair rules
- Fix the citation, not the claim — find the correct
file:linefor the real code - If the claim is wrong — update both the claim and the citation
- If a claim cannot be grounded — convert from CODE-FACTUAL to HYPOTHESIS with epistemic marker
- Never fabricate a citation to make the verifier pass
- Use the Read tool to inspect actual source files during repair
Repair loop
iteration = 0
while iteration < 3:
Fix failures based on JSON report
Rewrite document
Run quality-gates.sh again
If PASS: break
iteration++
If iteration == 3 and still failing:
HALT with detailed failure report
Save last draft for manual review
After each repair, re-run Stage 4 (VERIFY).
Stage 6: OUTPUT — Write and stamp
After verification passes:
Stamp freshness metadata
.claude/scripts/ground-truth/stamp-freshness.sh "grimoires/loa/ground-truth/${DOC_TYPE}.md"
Confirm output
Report to the user:
- Document path
- Citation count (verified)
- Provenance coverage percentage
- Warning count (if any)
- Generation timestamp
Stage 7: MANIFEST — Update generation manifest
.claude/scripts/ground-truth/write-manifest.sh "grimoires/loa/ground-truth/${DOC_TYPE}.md" \
--citations ${CITATION_COUNT} \
--warnings ${WARNING_COUNT} \
--gates pass
This creates/updates grimoires/loa/ground-truth/generation-manifest.json with:
- Document path, generation timestamp, HEAD SHA
- Citation count, quality gate result, warning count
- Registry SHAs (features, limitations, ride)
Beads Integration (Optional)
If br (beads_rust) is available, track generation as a beads task:
if command -v br &>/dev/null; then
# Create task before generation
br create --label "ground-truth:${DOC_TYPE}" --status in_progress
# On success
br close <task-id> --reason "Generated ${DOC_TYPE} with ${CITATION_COUNT} verified citations"
# On repair loop exhaustion
br update <task-id> --status blocked --comment "Repair loop exhausted after 3 iterations"
fi
If br is not available, skip silently — beads integration is optional.
Error Handling
| Failure | Recovery |
|---|---|
| /ride output missing | Prompt user to run /ride first |
| /ride output stale (>7 days) | Warn user; proceed with stale data or prompt re-ride |
| Registry files missing | Fail fast with bootstrap command |
| Quality gate fails | Enter REPAIR loop (max 3 iterations) |
| Repair loop exhausted | HALT with failure report; save last draft |
| yq not installed | Warn; skip registry-consistency gate |
Circuit Breaker
If the same document type fails verification 3 consecutive times across separate invocations,
log a warning to grimoires/loa/NOTES.md:
## Blockers
- [{date}] ground-truth: {doc-type} failed verification 3 consecutive times.
Last failure: {gate} on {citation}.
Likely cause: /ride reality is stale or features.yaml is out of date.
Action: Re-run /ride and review features.yaml.