ground-claim

SkillFiles & storage

Grounds capability claims with file-read evidence. Default mode answers meta-capability questions ('what does X enable') with path:line citations. Pass mode: runtime-wiring with a claims list to trace actual runtime execution paths, call sites, DI registration, middleware, and get CONFIRMED/UNVERIFIED/REFUTED verdicts per claim. Blocks sign-off on any non-CONFIRMED claim.

Use ground-claim in Claude, ChatGPT or Ahel Desktop

Free. Sign in, add ground-claim and connect your AI. About a minute.

Also: Claude Code · Cursor · Codex

Then ask your AI: use the ground-claim skill

Details

Instructions available. Your AI can read the instructions. Execution depends on the setup they require.

Add Ahel to your AI once: Claude, ChatGPT, Cursor, Claude Code or Codex. Then ask it to use this.

ground-claimStart free

What this skill tells your AI

The instructions your AI receives, as published by griffinwork40/agent-framework in skills/ground-claim/SKILL.md and read by Ahel’s review.

Trigger

Mode: capability (default) — Self-referential meta-capability questions about the current repository, framework, or system:

  • "What does this repo enable?"
  • "What are the orchestration patterns available?"
  • "List the available skills."
  • "What capabilities does the plugin provide?"

Mode: runtime-wiring — Claims that require tracing actual execution paths, not static structure:

  • "Verify that middleware Y intercepts all requests."
  • "Confirm plugin Z is loaded on startup."
  • "Validate that feature X is active in production."

Skip both modes for: usage questions ("how do I use X?"), bug reports, feature requests.


Mode: capability (default)

Procedure

  1. Extract capability nouns. From the user's question, identify 2–5 concrete capability categories (e.g., skills, hooks, agents, orchestration patterns, CLI commands, verification methods). Write them down.

  2. Locate and read evidence. For each capability noun:

    • Use Glob or Grep to locate source files (e.g., skills/*/SKILL.md for skills, hooks/ for hooks, agents/ for agents).
    • Read at least one concrete source file per capability. Record the file path and specific line numbers.
    • Do not rely on training data, model recall, or session-listing attachments. Evidence must come from Read tool output.
  3. Build the answer inline. Embed citations within claims, not in a separate appendix. Format: path/to/file.md:line—<claim context>.

  4. Tag ungrounded claims. If a capability claim cannot be traced to a file read, prefix it with [UNVERIFIED: what would be needed to verify this]. Never present an unverified claim without the tag.

  5. Declare sources read. Explicitly name which files you read in the response.

Hard rules

  • Do not answer from model recall alone.
  • Do not answer from session-listing attachments without reading the underlying SKILL.md or manifest files.
  • Every capability claim must point to a source. Do not summarize without citation.
  • Do not bury unverified claims. Use the [UNVERIFIED] prefix and state the evidence gap.
  • At least one path:line citation per named capability.

Exit criteria

  • Response contains ≥1 path:line citation per capability mentioned.
  • Every unverified claim is explicitly tagged with [UNVERIFIED: …].
  • Response explicitly lists which files were read.
  • No claims rest on model recall or default knowledge.

Mode: runtime-wiring

Activated when the caller provides a claims: list and mode: runtime-wiring. Validates capability claims by tracing actual runtime wiring — call sites, DI registration, middleware registration, config manifests — not type signatures or import presence.

Inputs

mode:        runtime-wiring
claims:      string[]   # natural-language claims to verify (≤20 per batch; see batching)
entrypoints: string[]   # known runtime entry files (e.g. main.ts, server.ts)
max_depth:   number     # max call-graph hops per chain (default: 8)

Pre-flight gate: If entrypoints is empty, abort immediately with entrypoints_required — do not dispatch any sub-agents. If claims exceeds 20 items, split into batches of 10 and run sequentially; the Qualifier aggregates across batches.

WireTracer sub-agent (one per claim, run in parallel)

For each claim:

  1. Identify the claimed behavior's implementation symbol (function, class, middleware, plugin).
  2. Search for registration or injection sites — not import statements. Targets: DI container bindings, app.use(...), router.register(...), config manifests, plugin loaders, factory calls.
  3. Trace forward from the entrypoint, documenting each hop: { file, line, symbol, role }.
  4. If a hop is missing or conditional on an env var / feature flag, record the condition and stop the chain.
  5. Return:
    • chain: ordered { file, line, symbol, role } list
    • last_confirmed: deepest confirmed hop
    • gap: missing-link description, or null if complete
    • verdict: CONFIRMED | UNVERIFIED | REFUTED

Prohibited reasoning — these are NOT evidence of runtime wiring:

  • "The type implements the interface, therefore it is active."
  • "The import exists, therefore it is called."
  • "The function is exported, therefore it is used."

If no chain can be constructed, return UNVERIFIED with gap: "no_entry_found". Max 3 retries per claim (narrowing search scope each time) before final escalation to UNVERIFIED.

Qualifier sub-agent

Reviews all WireTracer reports. Applies:

  • CONFIRMED — unbroken chain from entrypoint to invocation site; no conditional gaps left unresolved.
  • UNVERIFIED — chain breaks at an identifiable gap; return gap location and a resolution hint.
  • REFUTED — positive evidence the symbol is excluded, overridden, or dead-code eliminated at runtime.

If Qualifier verdict disagrees with WireTracer verdict, Qualifier wins; discrepancy is logged.

Emits a machine-readable verdict table:

| Claim | Verdict | Last Confirmed Hop | Gap / Evidence |
|-------|---------|-------------------|----------------|
| ...   | ...     | ...               | ...            |

Sign-off gate

Any UNVERIFIED or REFUTED verdict blocks downstream review sign-off and is returned to the caller with the gap location. Only an all-CONFIRMED table clears sign-off.

Orchestration flow

entrypoints_required check → abort if empty
        │
claims (batched ≤10 if >20)
        │
        ▼
 [WireTracer × N]  ── parallel, one per claim
   (≤3 retries per claim, narrowing scope)
        │
        ▼
   [Qualifier]     ── reviews all reports, assigns verdicts
        │
   ┌────┴────────┐
CONFIRMED    UNVERIFIED / REFUTED
   │                │
sign-off OK    return gaps, block sign-off

Out of scope

  • Usage questions ("how do I use library X?") → normal research.
  • Bug reports → /diagnose.
  • Building new capability → /mint.
  • Verification of sub-agent findings → /shadow-verify.

Signals

GitHub stars
23
Last commit
Oct 2026
Advanced
Item type
skill
Key
ground-claim
Source
github.com/griffinwork40/agent-framework