Claude-skill-registry eld-ground-check
install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/eld-ground-check" ~/.claude/skills/majiayu000-claude-skill-registry-eld-ground-check && rm -rf "$T"
manifest:
skills/data/eld-ground-check/SKILL.mdsource content
LDE Grounding Check
LawとTermの接地(検証手段・観測手段の設定)を検証する。
接地要件
Law接地
| 重要度 | 検証手段 | 観測手段 |
|---|---|---|
| S0 | 必須 (Test + Runtime) | 必須 (Telemetry全量) |
| S1 | 必須 (Test or Runtime) | 必須 (Telemetry) |
| S2 | 推奨 | 推奨 |
| S3 | 任意 | 任意 |
Term接地
| 重要度 | 境界検証 | 観測フィールド |
|---|---|---|
| S0 | 必須 (Validation + Normalization) | 必須 (Observable Fields) |
| S1 | 必須 (Validation or Normalization) | 必須 (Observable Fields) |
| S2 | 推奨 | 推奨 |
| S3 | 任意 | 任意 |
検証プロセス
Step 1: Catalog読み込み
docs/lde/law-catalog.md から全Lawを取得 docs/lde/vocabulary-catalog.md から全Termを取得
Step 2: Law接地チェック
各Law IDについて以下を確認:
law_grounding_check: law_id: LAW-xxx severity: S0 | S1 | S2 | S3 terms: [TERM-a, TERM-b] # 参照Term verification: test: exists: true | false path: <テストファイルパス> coverage: <カバレッジ%> runtime_check: exists: true | false type: assert | guard | validation location: <実装箇所> observability: telemetry: exists: true | false metric: <メトリクス名> log_event: exists: true | false event_name: <イベント名> status: PASS | FAIL | WARN missing: [<欠落項目>]
Step 3: Term接地チェック
各Term IDについて以下を確認:
term_grounding_check: term_id: TERM-xxx importance: S0 | S1 | S2 | S3 related_laws: [LAW-a, LAW-b] # 関連Law boundary_verification: validation: exists: true | false method: <検証方法(Zod/手動等)> location: <実装箇所> normalization: exists: true | false method: <正規化方法> location: <実装箇所> observability: observable_fields: exists: true | false fields: [<フィールド名>] telemetry: exists: true | false metric: <メトリクス名> status: PASS | FAIL | WARN missing: [<欠落項目>]
Step 4: 相互拘束チェック
mutual_constraint_check: orphan_laws: [<Terms欄が空のLaw>] orphan_terms: [<Related Lawsが空のS0/S1 Term>] status: PASS | FAIL
チェック項目
Law検証手段(Verification)
| チェック | 内容 |
|---|---|
| テスト存在 | Law IDに対応するテストがあるか |
| テスト品質 | 例示テストだけでなくPBTも含むか(S0/S1) |
| 実行時チェック | assert/guard/validationが実装されているか |
| カバレッジ | Law関連コードが80%以上カバーされているか |
Law観測手段(Observability)
| チェック | 内容 |
|---|---|
| Telemetry | law.<domain>.<name>.* メトリクスが定義されているか |
| Log/Event | 違反時のログイベントが設定されているか |
| アラート | S0/S1違反時のアラートが設定されているか |
Term境界検証(Boundary Verification)
| チェック | 内容 |
|---|---|
| Validation | IO境界で検証が実装されているか |
| Normalization | 正規化処理が実装されているか |
| Type Safety | Brand/Newtypeで型安全性が確保されているか |
Term観測手段(Observability)
| チェック | 内容 |
|---|---|
| Observable Fields | ログ/テレメトリで観測するフィールドが設定されているか |
| Telemetry | term.<domain>.<name>.* メトリクスが定義されているか |
出力形式
Grounding Report
# Grounding Check Report ## Summary - Total Laws: 25 (S0: 3, S1: 5, S2: 10, S3: 7) - Total Terms: 18 (S0: 2, S1: 4, S2: 8, S3: 4) - Law Grounding: 7/8 S0/S1 (87.5%) - Term Grounding: 5/6 S0/S1 (83.3%) - Mutual Constraint: PASS ## Status: ⚠️ WARN (2 issues) --- ## Law Grounding Status ### S0/S1 Laws | Law ID | Severity | Terms | Test | Runtime | Telemetry | Status | |--------|----------|-------|------|---------|-----------|--------| | LAW-inv-balance | S0 | 3 | ✅ | ✅ | ✅ | PASS | | LAW-pre-order | S1 | 2 | ✅ | ✅ | ✅ | PASS | | LAW-inv-stock | S1 | 3 | ✅ | ❌ | ✅ | WARN | | LAW-post-payment | S0 | 2 | ❌ | ❌ | ❌ | FAIL | --- ## Term Grounding Status ### S0/S1 Terms | Term ID | Importance | Laws | Validation | Normalization | Observable | Status | |---------|------------|------|------------|---------------|------------|--------| | TERM-inventory-available | S1 | 2 | ✅ | ✅ | ✅ | PASS | | TERM-order-quantity | S1 | 2 | ✅ | ✅ | ✅ | PASS | | TERM-user-balance | S1 | 1 | ✅ | ❌ | ❌ | WARN | --- ## Action Required ### FAIL: LAW-post-payment (S0) - ❌ Test missing: 決済完了後の状態検証テストがない - ❌ Runtime check missing: 事後条件のアサーションがない - ❌ Telemetry missing: law.payment.completed.* メトリクスがない - Terms: TERM-payment-amount, TERM-payment-status **推奨アクション**: 1. tests/payment.test.ts に事後条件テストを追加 2. src/payment/service.ts に事後アサーション追加 3. src/payment/telemetry.ts にメトリクス追加 ### WARN: TERM-user-balance (S1) - ✅ Validation exists: Zod schema - ❌ Normalization missing: 小数点処理なし - ❌ Observable fields missing: ログ出力なし - Related Laws: LAW-inv-user-balance **推奨アクション**: 1. src/users/schema.ts に正規化処理を追加 2. src/users/telemetry.ts にobservable fieldsを追加
相互拘束チェック結果
## Mutual Constraint Check ### 孤立Law - LAW-policy-discount: ❌ Terms欄が空 - Action: 参照するTermを追加 ### 孤立Term - TERM-customer-tier (S1): ❌ Related Lawsが空 - Action: 関連Lawを追加するか重要度を見直し ### パターン検出 - 名辞インフレ: ❌ 検出なし - 関係スープ: ❌ 検出なし
CI/CD統合
pre-commit hook
#!/bin/bash # .husky/pre-commit # Law/Term関連ファイルのチェック changed_files=$(git diff --cached --name-only) lde_files=$(echo "$changed_files" | grep -E "(law|term|invariant|assert)") if [ -n "$lde_files" ]; then echo "⚠️ LDE関連ファイルが変更されています" echo "$lde_files" echo "Grounding Map/Link Mapの更新を確認してください" fi
CI workflow
# .github/workflows/lde-grounding.yml name: eld-ground-check on: [pull_request] jobs: grounding-check: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Check Law Grounding run: | # S0/S1 Lawの接地状態を検証 python scripts/check_law_grounding.py - name: Check Term Grounding run: | # S0/S1 Termの接地状態を検証 python scripts/check_term_grounding.py - name: Check Mutual Constraint run: | # 相互拘束(孤立チェック) python scripts/check_link_map.py - name: Run Law Tests run: | # Law関連テストのみ実行 npm test -- --grep "LAW-"
使用例
User: PRを出す前にGrounding Checkして Claude: ## Grounding Check実行中... ### Catalog読み込み - Law Catalog: 25件 (S0: 3, S1: 5, S2: 10, S3: 7) - Vocabulary Catalog: 18件 (S0: 2, S1: 4, S2: 8, S3: 4) ### Law接地チェック中... ### Term接地チェック中... ### 相互拘束チェック中... --- ## Grounding Check Report ### Status: ✅ PASS | 項目 | 結果 | |------|------| | S0/S1 Law接地 | 8/8 (100%) | | S0/S1 Term接地 | 6/6 (100%) | | 孤立Law | 0件 | | 孤立Term | 0件 | すべてのS0/S1 Law/Termが正しく接地されています。 PRを作成できます。
品質優先原則(Superpowers統合)
核心原則
- Epistemic Humility: 推測を事実として扱わない。
と言う勇気を持つunknown - Evidence First: 結論ではなく因果と証拠を中心にする
- Minimal Change: 最小単位で変更し、即時検証する
- Grounded Laws: Lawは検証可能・観測可能でなければならない
- Source of Truth: 真実は常に現在のコード。要約はインデックス
「速さより質」の実践
- 要件の曖昧さによる手戻りを根本から排除
- テストなし実装を許さない
- 観測不能な変更を防ぐ
完了の定義
- Evidence Ladder目標レベル達成
- Issue Contractの物差し満足
- Law/Termが接地している(Grounding Map確認)
- Link Mapに孤立がない
- ロールバック可能な状態
停止条件
以下が発生したら即座に停止し、追加計測またはスコープ縮小:
- 予測と現実の継続的乖離(想定外テスト失敗3回以上)
- 観測不能な変更の増加(物差しで検証できない変更)
- ロールバック線の崩壊(戻せない変更の発生)