evidence-driven-claim-validator
Reject LLM-generated root-cause claims that aren't supported by the actual evidence dict — claim mentions "memory" but no host_metrics?
Skill by kjuhwa
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/kjuhwa-evidence-driven-claim-validator
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: ml, agent-building
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/evidence-driven-claim-validator
What's inside
- Skill name
evidence-driven-claim-validator- Description
- Reject LLM-generated root-cause claims that aren't supported by the actual evidence dict — claim mentions "memory" but no host_metrics? mark not-validated. Uses a per-keyword evidence requirement table and outputs a confidence score.
- License
- MIT
- Instructions
- 59 lines in SKILL.md · view on GitHub
Files (1)
- SKILL.md
SKILL.md (first lines)
# Evidence-Driven Claim Validator
## When to use
Your LLM returns a list of "validated claims" (with `extract_evidence_sources` references) but you don't trust them. You want a deterministic post-filter: each claim is checked against the real evidence dict, and a weighted confidence score is computed so downstream nodes can decide whether to loop or publish.
## How it works
- Per-claim keyword detection: if claim mentions "memory" or "cpu", evidence must include `host_metrics.data` or RDS metrics; "log/error/fail" requires logs; "rds/postgres/database" requires RDS metrics or events; etc.
- `validate_claim(claim, evidence)` returns a bool; `validate_and_categorize_claims` reshuffles claims between `validated` and `non_validated` lists based on the actual check.
- `extract_evidence_sources(claim, evidence)` attaches a list of "real" sources (cloudwatch_logs, datadog_monitors, ...) to each validated claim — falls back to the generic `evidence_analysis` sentinel.
- `calculate_validity_score` weighs validated-with-real-sources at 1.0, validated-but-failed-our-check at 0.5, non-validated at 0.0, plus a +0.1 bonus when at least one claim has non-generic evidence sources.
## Example
```python
def validate_claim(claim, evidence):
cl = claim.lower()
has_dd = bool(evidence.get("datadog_logs") or evidence.get("datadog_error_logs"))
if any(k in cl for k in ("log","error","fail")) and not _has_any_logs(evidence):
return False
if any(k in cl for k in ("memory","cpu")) and not (
evidence.get("host_metrics", {}).get("data")
or _has_rds_metrics(evidence) or _has_performance_insights(evidence)
or (any(kw in cl for kw in ("monitor","datadog")) and has_dd)
):
return False
if any(k in cl for k in ("rds","postgres","database","replication","connection",
"storage","disk","failover","reboot")) and not (
_has_rds_metrics(evidence) or _has_rds_events(evidence)
or _has_performance_insights(evidence)
):
return False
# ... lambda, s3, schema, vendor, k8s checks ...
return True
def calculate_validity_score(validated, non_validated):
if not validated and not non_validated: return 0.0
score = total = 0.0
for c in validated:
srcs = c.get("evidence_sources", [])
has_real = any(s != "evidence_analysis" for s in srcs)
if c.get("validation_status") == "validated":
score += 1.0 if has_real else 0.8
else:
score += 0.5
total += 1.0
total += len(non_validated)
base = score / total if total else 0.0
has_real_evidence = any(
s != "evidence_analysis" for c in validated for s in c.get("evidence_sources", [])
)
return min(1.0, round(base + (0.1 if has_real_evidence and validated else 0), 2))
```
## Gotchas
- Keep the keyword tables close to the evidence shape; if you add a new evidence key, add the corresponding claim-keyword check. Otherwise the validator silently rubber-stamps new categories.
- The 0.8 vs 1.0 split between "validated with generic sources" vs "validated with real sources" is what makes the score meaningful — without it, a model that always answers "evidence_analysis" gets perfect scores.
- Apply this AFTER masking is reversed; otherwise placeholder strings won't match keyword checks.From kjuhwa/skills-hub, MIT.
More from kjuhwa/skills-hub
- 0.409score
skills-hub
kjuhwa
Central skill/knowledge registry that syncs with kjuhwa/skills.git.
SkillDFreshness: DClaude Code +9 - 0.406score
langsmith-traceable-node-decorator-pattern
kjuhwa
Wrap each LangGraph node function with @traceable(name=...) so every step appears as a discrete child run in LangSmith, plus emit semantic LLM run_names via…
SkillDFreshness: DClaude Code +9 - 0.406score
llm-empty-plan-controller-fallback
kjuhwa
When a planning LLM returns an empty action list, force a deterministic verification action from a priority-ordered fallback list so the agent never spins on…
SkillDFreshness: DClaude Code +9 - 0.406score
alert-time-window-with-buffer
kjuhwa
Compute a query time window that covers the alert plus a 30-min buffer by parsing startsAt from various schemas (Alertmanager nested, top-level…
SkillDFreshness: DClaude Code +9 - 0.406score
anthropic-compatible-endpoint-swap
kjuhwa
Point the Claude Agent SDK at any Anthropic-compatible endpoint (OpenRouter, Vercel AI Gateway, Ollama, custom) by setting ANTHROPIC_BASE_URL +…
SkillDFreshness: DClaude Code +9 - 0.406score
bash-ast-permission-validator
kjuhwa
Validate agent bash commands by parsing them into an AST (bash-parser) and evaluating each subcommand of a pipeline/&&/|| chain against an allowlist, instead…
SkillDFreshness: DClaude Code +9 - 0.406score
claude-agent-sdk-multi-provider-bridge
kjuhwa
Drive non-Anthropic providers (OpenRouter, Ollama, Vercel AI Gateway, any Anthropic-compatible endpoint) through the Claude Agent SDK by swapping base URL +…
SkillDFreshness: DClaude Code +9 - 0.406score
fetch-interceptor-via-require-preload
kjuhwa
Patch globalThis.fetch in SDK subprocesses BEFORE the SDK captures it, by shipping a CJS interceptor bundle and loading it with node --require / bun --preload…
SkillDFreshness: DClaude Code +9 - 0.406score
healthy-short-circuit-skip-llm
kjuhwa
Bypass an expensive LLM diagnosis when an alert is provably healthy (resolved/info severity, no error annotations, evidence-investigated-and-empty), guarded…
SkillDFreshness: DClaude Code +9 - 0.406score
json-schema-from-python-signature
kjuhwa
Generate a JSON Schema for an LLM tool's input from a Python function signature using inspect + get_type_hints, mapping str→string, int→integer, list→array…
SkillDFreshness: DClaude Code +9 - 0.406score
langgraph-auth-inject-from-runnable-config
kjuhwa
Hydrate auth/user/org/thread/run identifiers into LangGraph state from the RunnableConfig at the very first node, so every downstream node sees a uniform…
SkillDFreshness: DClaude Code +9 - 0.406score
langgraph-compat-shim-import-path-preserved
kjuhwa
Keep a one-line import-shim module at an old path (e.g.
SkillDFreshness: DClaude Code +9
Signals
- Stars
- 0
- Forks
- 0
- Open issues
- 17
- Last commit (this folder)
- Apr 25, 2026 (6 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/kjuhwa/skills-hub
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from kjuhwa
- 0.409score
skills-hub
kjuhwa
Central skill/knowledge registry that syncs with kjuhwa/skills.git.
SkillDFreshness: DClaude Code +9 - 0.406score
llm-empty-plan-controller-fallback
kjuhwa
When a planning LLM returns an empty action list, force a deterministic verification action from a priority-ordered fallback list so the agent never spins on…
SkillDFreshness: DClaude Code +9 - 0.406score
langsmith-traceable-node-decorator-pattern
kjuhwa
Wrap each LangGraph node function with @traceable(name=...) so every step appears as a discrete child run in LangSmith, plus emit semantic LLM run_names via…
SkillDFreshness: DClaude Code +9 - 0.406score
alert-time-window-with-buffer
kjuhwa
Compute a query time window that covers the alert plus a 30-min buffer by parsing startsAt from various schemas (Alertmanager nested, top-level…
SkillDFreshness: DClaude Code +9 - 0.406score
anthropic-compatible-endpoint-swap
kjuhwa
Point the Claude Agent SDK at any Anthropic-compatible endpoint (OpenRouter, Vercel AI Gateway, Ollama, custom) by setting ANTHROPIC_BASE_URL +…
SkillDFreshness: DClaude Code +9 - 0.406score
credential-cache-file-for-mcp-subprocess
kjuhwa
Write decrypted per-source credentials to a session-scoped .credential-cache.json on disk so MCP stdio subprocesses can read them without the parent passing…
SkillDFreshness: DClaude Code +9
Cite this page
evidence-driven-claim-validator skill. Agent Mart. https://agentmart.dev/skills/kjuhwa-evidence-driven-claim-validator (last updated 2026-10-24)