independent-verifier — one strong model, read-only, on purpose
Launches a READ-ONLY sub-agent on the strongest model available, in one of two modes.
| Mode |
Invoked by |
Input |
Output |
| verifier |
"verify this" |
deliverable + acceptance criteria |
verdict (pass / warn / fail) + findings |
| advisor |
"ask it", "get a second opinion" |
a question + reference material |
opinion + grounds + risks + one recommended action |
The advisor mode is a light second opinion before you build or decide. When the answer is
genuinely contested and high-stakes, escalate to a multi-model deliberation instead.
How it reaches the model
- A top-tier model is often not available through a credential-brokered API. Design on the
assumption that you cannot reach it that way.
- The route that works is launching a sub-agent with an explicit
model: on the host agent
platform.
- Therefore this skill only runs inside such a session. If the target model is unavailable in
the receiving environment, stop loudly and say so — do not silently substitute another
model and report "verified."
Absolute rules
- READ-ONLY — do not give the sub-agent Write or Edit. Use a read-only sub-agent type.
This structurally kills the "while I was in there, I fixed it" accident.
- No silent downgrade — if the requested model is unavailable, do not quietly fall back
to a weaker one. Show the error and stop. (Same principle as never falling back to another
value when a configured one cannot be resolved.)
- Never ship a fail — if the verdict is
fail, do not report "complete." Present the
findings and let the requester decide.
- Not a substitute for machine checks — run the deterministic checks first (output
contract verification, a live-site health check) and feed their results in as input.
This model looks at meaning, quality and fit to the acceptance criteria.
- Never fires automatically — explicit request only, or delegation from a final gate.
The calling contract
Input (assembled by the caller)
goal: one line on what was meant to be achieved
acceptance_criteria: a bullet list (if absent, derive 3–7 from the goal and state them)
deliverables: an allowlist of absolute paths to verify. "Look at everything" is forbidden
machine_check_results (optional): verdicts and manifests from the deterministic checks
live_url (optional)
context (optional): design constraints, brand rules, reference paths
Output (one JSON object from the sub-agent)
{
"summary": "one or two lines",
"verdict": "pass | warn | fail",
"findings": [
{
"id": "F001",
"severity": "blocker | major | minor",
"target": "file or location",
"issue": "what is wrong",
"why": "why it is wrong (reference to an AC or a constraint)",
"suggested_fix": "how to fix it (1-3 lines)"
}
],
"strengths": ["1-3 genuine strengths, for the completion report"]
}
Verdict rule: any blocker → fail; majors only → warn; otherwise pass.
Advisor mode
- Input:
question (1–3 lines on what is undecided) + materials (paths, URLs, context)
- Execution: the same read-only sub-agent launch. The prompt is "As an independent
top-tier advisor, actually read the material and return an opinion, its grounds, the risks
you think are being missed, and one recommended action. Separate inference from fact, and
state what is uncertain."
- Output: four parts — ① the opinion (conclusion first) ② grounds ③ risks and blind spots
④ one recommended action. Where you cannot be decisive, say that it should be escalated to
a multi-model deliberation.
- The absolute rules above apply identically.
Verifier flow
- Collect input. If there are no acceptance criteria, derive 3–7 from the goal and say
"I will verify against these criteria" before proceeding.
- Run the machine checks first and include their results (including any DEGRADED) in the
input. Skip only if none apply.
- Launch the sub-agent — read-only type, explicit
model:, prompt from the template below.
On a launch error or unknown-model error, stop immediately and report (rule 2).
- Normalise the verdict. Validate the JSON (re-request once if it is not JSON). Sort
findings by severity, descending.
- Report in this shape: the finished deliverable, then the verdict, summary and strengths,
then the findings. If the verdict is
fail, do not present it as complete — present it as
"verification found a blocker" and ask for a decision.
Sub-agent prompt template
You are an independent reviewer acting as a final verification gate. You are a separate
instance from the implementer; do not be deferential.
## Role and constraints
- READ-ONLY. Never modify or create files (put suggestions in suggested_fix)
- Verify only the allowlist below. Do not comment on anything outside it
- No subjective "make it prettier". Restrict yourself to deviations from the AC and constraints
- Return exactly one JSON object in the specified shape. No prose
## Goal
{goal}
## Acceptance criteria
{acceptance_criteria}
## Scope (allowlist)
{deliverables}
## Machine check results (if any)
{machine_check_results}
## Additional context (if any)
{context / live_url}
Actually Read each file, verify, and return only this JSON:
{the output schema}
Boundaries
| Situation |
Where it goes |
| "verify this with the strongest model" |
here (verifier) |
| "ask it", "second opinion" |
here (advisor) |
| end of an autonomous loop |
here, as a final gate |
| "review this", "check the acceptance criteria" |
an in-cycle parallel reviewer |
| "check the deployed site" |
a post-deploy health check |
| output acceptance criteria for a media artefact |
the deterministic output contract |
| "deliberate", "check across models", a genuinely contested high-stakes call |
a multi-model deliberation |
Ask one question right after delivery
Once you hand the deliverable over, ask exactly one question. Do not end without it.
Is this deliverable
1. usable as is
2. usable after edits
3. not usable
- On 2 or 3, ask in one line what was missing. Fix it on the spot if you can
- Record the answer where usage is logged, if such a place exists. Never send the deliverable
body or the raw input. If there is no such place, skipping the record is fine — but
do not go quiet about skipping it. Say, in one line, "no destination for the record, so
nothing was stored"
- A "3. not usable" is the next candidate case for your output-quality measurements.
This is the entrance that stops you measuring quality only on cases you wrote yourself
Skip this one question and nothing that went wrong ever reaches anyone.
1---2name: independent-verifier3description: Run a single top-tier model as an independent, read-only reviewer and get findings back — no heavy ceremony. Works as a verifier (deliverable + acceptance criteria → verdict) and as an advisor (a question → an opinion with its grounds). Use when: someone asks for the sharpest single read, explicitly without a committee. Do NOT use when: the answer is genuinely contested and you need several models to argue it out. Never fires automatically.4license: Apache-2.05---67# independent-verifier — one strong model, read-only, on purpose89Launches a **READ-ONLY sub-agent on the strongest model available**, in one of two modes.1011| Mode | Invoked by | Input | Output |12|---|---|---|---|13| **verifier** | "verify this" | deliverable + acceptance criteria | verdict (pass / warn / fail) + findings |14| **advisor** | "ask it", "get a second opinion" | a question + reference material | opinion + grounds + risks + one recommended action |1516The advisor mode is a light second opinion **before** you build or decide. When the answer is17genuinely contested and high-stakes, escalate to a multi-model deliberation instead.1819## How it reaches the model2021- A top-tier model is often **not available through a credential-brokered API**. Design on the22 assumption that you cannot reach it that way.23- The route that works is **launching a sub-agent with an explicit `model:` on the host agent24 platform.**25- Therefore this skill only runs inside such a session. If the target model is unavailable in26 the receiving environment, **stop loudly** and say so — do not silently substitute another27 model and report "verified."2829## Absolute rules30311. **READ-ONLY** — do not give the sub-agent Write or Edit. Use a read-only sub-agent type.32 This structurally kills the "while I was in there, I fixed it" accident.332. **No silent downgrade** — if the requested model is unavailable, **do not quietly fall back**34 to a weaker one. Show the error and stop. (Same principle as never falling back to another35 value when a configured one cannot be resolved.)363. **Never ship a fail** — if the verdict is `fail`, do not report "complete." Present the37 findings and let the requester decide.384. **Not a substitute for machine checks** — run the deterministic checks first (output39 contract verification, a live-site health check) and **feed their results in as input.**40 This model looks at meaning, quality and fit to the acceptance criteria.415. **Never fires automatically** — explicit request only, or delegation from a final gate.4243## The calling contract4445### Input (assembled by the caller)4647- `goal`: one line on what was meant to be achieved48- `acceptance_criteria`: a bullet list (if absent, derive 3–7 from the goal and **state them**)49- `deliverables`: an allowlist of absolute paths to verify. **"Look at everything" is forbidden**50- `machine_check_results` (optional): verdicts and manifests from the deterministic checks51- `live_url` (optional)52- `context` (optional): design constraints, brand rules, reference paths5354### Output (one JSON object from the sub-agent)5556```json57{58 "summary": "one or two lines",59 "verdict": "pass | warn | fail",60 "findings": [61 {62 "id": "F001",63 "severity": "blocker | major | minor",64 "target": "file or location",65 "issue": "what is wrong",66 "why": "why it is wrong (reference to an AC or a constraint)",67 "suggested_fix": "how to fix it (1-3 lines)"68 }69 ],70 "strengths": ["1-3 genuine strengths, for the completion report"]71}72```7374Verdict rule: any blocker → `fail`; majors only → `warn`; otherwise `pass`.7576## Advisor mode7778- **Input**: `question` (1–3 lines on what is undecided) + `materials` (paths, URLs, context)79 + `options` (optional)80- **Execution**: the same read-only sub-agent launch. The prompt is *"As an independent81 top-tier advisor, actually read the material and return an opinion, its grounds, the risks82 you think are being missed, and one recommended action. Separate inference from fact, and83 state what is uncertain."*84- **Output**: four parts — ① the opinion (conclusion first) ② grounds ③ risks and blind spots85 ④ one recommended action. Where you cannot be decisive, **say that it should be escalated to86 a multi-model deliberation.**87- The absolute rules above apply identically.8889## Verifier flow90911. **Collect input.** If there are no acceptance criteria, derive 3–7 from the goal and say92 "I will verify against these criteria" before proceeding.932. **Run the machine checks first** and include their results (including any DEGRADED) in the94 input. Skip only if none apply.953. **Launch the sub-agent** — read-only type, explicit `model:`, prompt from the template below.96 On a launch error or unknown-model error, **stop immediately and report** (rule 2).974. **Normalise the verdict.** Validate the JSON (re-request once if it is not JSON). Sort98 findings by severity, descending.995. **Report** in this shape: the finished deliverable, then the verdict, summary and strengths,100 then the findings. If the verdict is `fail`, do not present it as complete — present it as101 "verification found a blocker" and ask for a decision.102103## Sub-agent prompt template104105```106You are an independent reviewer acting as a final verification gate. You are a separate107instance from the implementer; do not be deferential.108109## Role and constraints110- READ-ONLY. Never modify or create files (put suggestions in suggested_fix)111- Verify only the allowlist below. Do not comment on anything outside it112- No subjective "make it prettier". Restrict yourself to deviations from the AC and constraints113- Return exactly one JSON object in the specified shape. No prose114115## Goal116{goal}117118## Acceptance criteria119{acceptance_criteria}120121## Scope (allowlist)122{deliverables}123124## Machine check results (if any)125{machine_check_results}126127## Additional context (if any)128{context / live_url}129130Actually Read each file, verify, and return only this JSON:131{the output schema}132```133134## Boundaries135136| Situation | Where it goes |137|---|---|138| "verify this with the strongest model" | **here (verifier)** |139| "ask it", "second opinion" | **here (advisor)** |140| end of an autonomous loop | **here**, as a final gate |141| "review this", "check the acceptance criteria" | an in-cycle parallel reviewer |142| "check the deployed site" | a post-deploy health check |143| output acceptance criteria for a media artefact | the deterministic output contract |144| "deliberate", "check across models", a genuinely contested high-stakes call | a multi-model deliberation |145146## Ask one question right after delivery147148Once you hand the deliverable over, **ask exactly one question.** Do not end without it.149150```151Is this deliverable152 1. usable as is153 2. usable after edits154 3. not usable155```156157- On 2 or 3, ask **in one line what was missing.** Fix it on the spot if you can158- Record the answer where usage is logged, if such a place exists. **Never send the deliverable159 body or the raw input.** If there is no such place, skipping the record is fine — but160 **do not go quiet about skipping it.** Say, in one line, "no destination for the record, so161 nothing was stored"162- A "3. not usable" is the next candidate case for your output-quality measurements.163 **This is the entrance that stops you measuring quality only on cases you wrote yourself**164165Skip this one question and nothing that went wrong ever reaches anyone.