quaere-evidence — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited quaere-evidence (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
No patch, review comment, or root-cause conclusion without a falsifiable claim and at least one serious attempt to disconfirm it.
This is not ceremony. Review and debugging drift toward confirmation: once an agent sees a plausible cause, it collects facts that fit and edits before testing whether another explanation fits better. The gate is simple: before acting, state what would make the hypothesis or review claim wrong, run or name the smallest probe that could reveal that, then decide. If a claim cannot be falsified at the current scope, label it inconclusive or hand it off; do not promote it by sounding confident.
Emit these labeled sections exactly, in this order, even in lightweight mode: Scope / safety constraints → Findings → Claims / Hypotheses → Defense and probes → Decision → Patch (omit if no fix is needed) → Verification → Handoff. If a section is not applicable, write: skipped because: <reason>
When scope is small (one claim, low blast radius), collapse to this minimum — but never omit the falsifier or disconfirming probe:
Findings:
- F1: <observed fact + source>
Claim:
- C1: <falsifiable claim>
- Backing: F1
- Falsifier: <what would prove it wrong>
- Disconfirming probe: <probe / result, or "not yet run">
Decision: confirmed | rejected | inconclusive | deferred
Verification:
- <fresh command / result, or "unavailable because ...">confirmed is legal here only when Disconfirming probe: shows an executed result — or, when the probe is unsafe or unavailable within scope, a defended rebuttal recorded per the Guardrails carve-out (confirmed (rebuttal-substituted)). With a bare "not yet run", the only legal decisions are rejected, inconclusive, or deferred.
The full 10-field Review Claim format (in the Workflow section) applies to Standard and Deep investigations. The lightweight pass is the same gate run with fewer words — not a bypass.
quaere-semantic instead.quaere-grounding, then resume here.Hand control to a companion skill when the blocking question shifts. Name the handoff and the reason — do not silently switch.
quaere-grounding. Resume only after the fact carries a Decision label from quaere-grounding's claim result matrix; treat anything other than confirmed as not-safe-to-use.quaere-semantic.quaere-execution.quaere-audit extension is installed, defer to it as coordinator; otherwise flag the task as needing a security audit and escalate to the user.The standard handoff payload (Blocking question / Confirmed inputs / Inconclusive inputs / Required next skill / Stop condition) and the per-skill payload details (e.g., the exact fields to include when handing to quaere-grounding) are documented at the end of this file under "Handoff to other skills".
Finding observed fact: code, diff, log, test, runtime behavior, user report
Hypothesis falsifiable explanation of an observed failure or behavior
Review Claim actionable risk or defect candidate, argued with evidence and limits
Defense attempt to reject, narrow, or qualify the hypothesis/claim
Probe small verification action; includes supporting and disconfirming checks
Decision confirmed / rejected / inconclusive / deferred
Patch smallest change tied to a confirmed claim or hypothesis
Verification targeted check that the patch addresses the confirmed cause/risk
Handoff remaining open items, confidence, limits, and next probesPrefer discriminating evidence over volume: one probe that separates two competing hypotheses outworks ten observations that fit one story. Confidence is an update from evidence, not a writing style.
Choose the lightest process that still preserves falsifiability. Time hints are illustrative; the binding signal is scope and risk — how many independent claims, how reachable the impact, how unsafe the probe. Pad output to fill an imagined hour budget and you have already drifted.
F-001, H-001, C-001, P-001) and keep a concise ledger.Do not let bookkeeping become the work. Collapse repeated facts, group related probes, and keep moving — but do not collapse away the falsifier, defense, decision, or safety stop.
For durable / multi-session investigations, persist a per-target ledger under .agent-state/targets/<slug>/ (findings.md, probes.md, handoff.md are often enough). Templates are in templates/; layout and git-handling rules (local by default, never commit without explicit ask) are in references/state-files.md. If the user does not want files written, keep the same structure in the response.
confirmed (rebuttal-substituted) with the rebuttal recorded under Defense. This substitution does not lower the bar; it trades execution evidence for documented-counter-argument evidence.Stop now — hard stops (full list under "Stop condition" at the end): halt and hand back rather than push past a gate when the investigation budget is spent, when two probes for the same hypothesis come back inconclusive, before any destructive or production-like action, or once a confirmed fix is in hand — do not keep investigating or gold-plate past the confirmed cause.
A full bad-vs-good worked example is in references/worked-example.md; confirmation-bias rationalizations to defeat are in references/anti-patterns.md.
Before forming explanations, record the boundary: the task or review claim being evaluated; files/commits/CI job/endpoint in scope; observed vs expected behavior; environment and recent changes when relevant; safety constraints and actions that need approval. Precise symptoms before guesses.
Read the request, relevant diffs, failing logs, tests, source context, and runtime paths. Record observations as Findings with evidence and limits; an observation is provisional and can be superseded.
F-003: `POST /reservations` accepts `deposit` from the client payload (src/api/reservations.ts:42).
Evidence: line 42 reads `deposit` from `body`. Limit: does not yet prove the value is trusted downstream.("Validation is broken" is not a Finding — no evidence, no limit, nothing falsifiable.)
Use Hypotheses for possible root causes: why a test fails, why a regression appears, why a race occurs. RCA tools (5 Whys, fishbone, fault trees) only generate hypotheses; nothing is confirmed until probes validate the leaves. Every Hypothesis MUST contain these 6 fields, each on its own labeled line, in this exact order — a hypothesis missing Falsifier: or Disconfirming probe: is a guess:
H-001: <short title>
Based on: <Finding IDs>
Prediction: <result if the hypothesis is true>
Falsifier: <observation that would defeat the hypothesis>
Disconfirming probe: <command or check whose unexpected result would falsify>
Alternative: <competing hypothesis, or "none" when no plausible alternative exists>Use Review Claims for PR comments, security risks, API contract mismatches, data-loss risks, concurrency hazards, or design review issues. Every Review Claim MUST contain these 10 fields, each on its own labeled line, in this exact order. The analytical phase (Claim → Backing) builds the positive argument; the falsifiability phase (Qualifier → Disconfirming probe) records how it could fail — the first without the second is advocacy, not review. Drop or reorder a field and the claim is incomplete.
C-001: <short title>
# Analytical phase — the claim and its evidential support
Claim: <the actionable concern>
Data/Evidence: <file:line, diff, log, repro, spec, or trace>
Warrant: <why the evidence implies the risk>
Backing: <source-type> — <reference>
# Falsifiability phase — how the claim could be defeated
Qualifier: high | medium | low confidence, with why
Rebuttal / false-positive reason: <what could defeat the claim>
Suggested probe: <supporting check whose expected result would corroborate the claim>
Falsifier: <observation that would defeat the claim>
Disconfirming probe: <check whose unexpected result would defeat the claim><source-type> MUST be one of spec | invariant | test | policy | contract | RFC | ADR, followed by the concrete reference (e.g., Backing: contract — src/reservations/contract.md:17 requires HTTP 400 for startTime >= endTime); Backing: docs say so does not satisfy the contract. Suggested probe: (a supporting check) and Disconfirming probe: (a defeating check) are NOT the same line — collapsing them removes the falsifiability gate. Most missed in practice: Backing, Falsifier, Disconfirming probe.
For each plausible hypothesis or review claim, attempt to defeat it before acting: check source context, tests, runtime paths, contracts, caller/callee invariants, history, and counter-evidence. Weak, style-only, or unsupported claims should be defeated here rather than patched around. Defense results (a separate vocabulary from Decision labels, so a defended-but-deferred claim keeps its Defense audit trail):
rejected; renamed to disambiguate from Decision-level rejected)Create small verification actions: targeted tests, minimal reproductions, pass/fail deltas, grep/code search, typecheck/lint, or logs over broad rewrites. For unclear failures, minimize the reproduction or delta before asserting cause. Name which probe distinguishes between competing hypotheses — a probe that fits every hypothesis is weak evidence. Each important hypothesis or risky review claim should have:
Supporting probe: result expected if the hypothesis/claim is true
Disconfirming probe: result expected if it is false or scoped differently
Scope probe: optional check for whether this is local or systemicFor unclear failures, minimize the reproduction or delta before asserting cause: reduce input, configuration, commit range, environment, or code path until the cause-effect chain is visible. For complex failures, name which probe distinguishes between competing hypotheses; a probe that fits every hypothesis is weak evidence.
confirmed: evidence supports action now; a disconfirming probe was run and did not defeat it
confirmed (rebuttal-substituted): the probe was unsafe or unavailable within scope; the strongest counter-explanation was named, defended against source context, and rejected. Mark this label exactly so reviewers can audit the substitution.
rejected: counter-evidence or source context defeats the claim
inconclusive: evidence is insufficient, or the probe is unsafe to run and no defended rebuttal closes the gap
deferred: real concern, but outside current request or budgetIf no claim or hypothesis survives defense, say so and do not invent a patch. If the concern is real but external/version-sensitive, hand off to quaere-grounding. If code intent is the blocker, hand off to quaere-semantic.
Patch only when the claim/hypothesis is confirmed and implementation is explicitly authorized; review-only requests stop at Decision with the actionable comment or handoff — do not edit. Make the smallest change tied to the confirmed cause or risk; no adjacent refactoring. Before editing or handing off to quaere-execution, record:
Patch target: <file/symbol>
Confirmed cause/risk: H-001 / C-001
Must preserve: <invariant, API, behavior, or safety guard>
Verification: <targeted check that should fail before and pass after, when practical>Run targeted verification first: the check that proves the confirmed item was addressed; broader checks only when justified by risk and project convention. Record command, result, and conclusion. A passing broad suite does not erase the need for the targeted check; if a check cannot be run, say why and name the best substitute or next command.
Summarize: confirmed and fixed items; rejected claims/hypotheses and why; inconclusive probes and what blocked them; remaining open hypotheses or necessary contributing factors; confidence shifts and limits; next 1–3 recommended probes.
A bad-output (confirmation-first patch) vs good-output (Findings → Claims/Hypotheses → Defense → Probes → Decision → Patch → Verification) example, applied to an intermittent reservation-spec failure where the "validation is broken" review claim turns out to be wrong, is at references/worked-example.md. Read it when the full 10-field Review Claim format feels abstract.
Confirmation bias rationalizations that slip back in even with the gate loaded ("plausible — I can act", "I found three supporting clues", "test passed after my patch", "Confidence: high" without qualifier/rebuttal, patch-first debugging, review-comment laundering, etc.) and how each one skips the falsifier or defense are at references/anti-patterns.md. Read it before promoting a claim to confirmed.
When handing off, emit this standard block so the receiving skill knows exactly what it is being given:
Handoff
- From skill: quaere-evidence
- Blocking question: <what cannot be decided within this skill's scope>
- Confirmed inputs: <findings, claims, and decisions safe to carry forward>
- Inconclusive inputs: <claims or facts not safe to treat as true>
- Required next skill: <quaere-grounding | quaere-semantic | quaere-execution | (quaere-audit, if the extension is installed)>
- Stop condition: <what the next skill must return before this investigation can resume>The four handoff triggers (grounding / semantic / execution / audit-extension) are listed under "Handoff triggers" near the top. Emit the payload block above when switching, and carry the relevant Findings/Claims/probes already run. When handing to quaere-grounding, include the unconfirmed external claim, the local version anchor (or "missing"), and the decision blocked by it.
This skill is complete when:
confirmed / rejected / inconclusive / deferred)confirmed decision names the evidence that supported it and the disconfirming probe that was run and did not defeat it; confirmed (rebuttal-substituted) decisions name the unsafe-probe reason and the defended rebuttal that closed the gap insteadquaere-execution; confirmed but unauthorized items stop at an actionable comment/handoff without editingDo not loop on the same hypothesis past the budget. If two probes for the same hypothesis are inconclusive, stop and hand off instead of running a third.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.