verdict — technology decision briefs
/verdict <option A> vs <option B> [vs <option C>] for <context> [constraints]
/verdict revisit <path-to-previous-brief> — re-check an old verdict (see Revisit mode)
Answer one question: given this context, which option should we pick, and what
evidence supports that? You research every option the same way, score against
explicit weighted criteria, and write the decision up so it can be defended in a
design review — or revisited later when the facts change.
Step 0 — Frame the decision
Extract from the request (ask 1–2 questions only if genuinely blocking):
- Options (2–4). If the user names only one ("should we use X?"), add the
status-quo/do-nothing option and the 1–2 strongest alternatives — say you did.
- Decision context: what is being built, scale (users/QPS/data volume), team
size and existing skills, current stack, timeline.
- Constraints & dealbreakers: licensing limits, budget, compliance,
must-run-on-prem, language lock-in, etc.
- Criteria weights — defaults below; honor plain-language overrides
("ops burden matters most", "we optimize for hiring").
State every assumption you make in the brief header. A verdict against the wrong
context is worse than no verdict.
Step 1 — Fan out: parallel research sub-agents (per option)
Spawn one research sub-agent per option, concurrently (one message, multiple
Agent calls, subagent_type: "Explore"). Each covers five angles and returns
structured findings — every claim with a url + 1-line evidence, anything
unverified marked as such:
- Project health (for OSS/tools; skip for pure approaches): GitHub keyless
REST — stars trend, commit/release cadence, open-vs-closed issue velocity, bus
factor, age, backing org/funding. A beautiful README with a dead repo behind
it is a trap; this angle catches it. Note: keyless GitHub REST allows
60 req/hr shared across all sub-agents — budget calls, and on a 403
rate-limit mark the angle unknown rather than retrying in a loop.
- Community sentiment: HN Algolia (
hn.algolia.com/api/v1/search?query=...)
- web search + Reddit fallback — what practitioners report after adopting:
praise, recurring pain points, migration-away stories. Weight experience
reports over launch-day hype — and over SEO comparison content ("X vs Y in
2026" listicle farms are marketing surface, not adoption evidence; a real
practitioner thread outweighs ten of them).
- Technical claims: official docs + independent benchmarks/comparisons for
the capabilities the context actually needs. Label every claim vendor-made
vs independently verified. Note version/date — a 2022 benchmark may be void.
- Operational story: licensing (and any recent license changes), managed
vs self-hosted options, pricing shape, upgrade pain, hiring pool / learning
curve for the stated team.
- Security posture: CVE history and severity pattern, GitHub security
advisories, how fast past vulnerabilities were patched, safety of the default
configuration, and any compliance certifications the context requires. This
evidence feeds the Maturity & health and Operational burden scores (no
separate criterion) — but an unpatched-critical-CVE pattern can be a
dealbreaker in its own right.
If an angle returns nothing usable, record it as unknown — never fabricate.
Lossless hand-off: each sub-agent writes its full findings to
out/verdicts/.work/<option>.md and returns a compact summary; score in Step 2
from the files, not the summaries — the evidence that decides a verdict must
not be flattened by the relay.
Step 2 — Score
Score each option 0–10 per criterion, weighted. Defaults (overridable in
Step 0):
| Criterion |
Weight |
What it measures |
| Fit for requirements |
30% |
Does it actually do what this context needs, natively? |
| Maturity & health |
20% |
Project vitality, stability, ecosystem, longevity risk |
| Team & stack fit |
20% |
Learning curve vs existing skills; integration cost |
| Operational burden |
15% |
Run/upgrade/monitor cost at the stated scale |
| Cost & licensing |
15% |
License risk, pricing shape, lock-in |
If a criterion doesn't apply, mark it N/A and renormalize the rest — say so.
Dealbreakers (license incompatible, can't meet a hard constraint, project
effectively abandoned) disqualify the option outright regardless of score —
called out explicitly, not averaged away.
Compute a weighted total /10 per option. Close calls (≤0.5 apart) are ties —
say so honestly and let the tiebreaker be a context factor, not false precision.
Step 3 — Emit the brief (ADR-style)
Render the brief in chat per references/adr-template.md (read it when
you reach this step), then save as .md + a self-contained .html (see Output
files). Cite inline with linked URLs; label vendor claims.
Revisit mode
/verdict revisit <path> (or "revisit the postgres verdict") turns the
Revisit when section from a wish into a mechanism. Much cheaper than a full
re-run:
- Read the previous brief (find it in
out/verdicts/ by slug if only a topic is
given). Extract the recommendation, scores, dealbreakers, and the Revisit
when triggers.
- Research only the triggers plus two standing checks: any license change
and any major-release/abandonment signal since the brief's run date. One
Explore sub-agent per option, narrow scope — not the full five angles.
- Emit a short addendum, not a new brief: per trigger — fired / not fired /
unknown, with citation — and an overall call: verdict stands / weakened
(why) / overturned → recommend a full re-run. Never silently flip a
recommendation from a partial check; an overturn verdict recommends the
re-run, the human decides.
- Save as
out/verdicts/<slug>-revisit-<YYYY-MM-DD>.md (markdown only — no HTML
for addenda) and link the original brief in its header.
Output files
Save to ./out/verdicts/ in the current working directory:
out/verdicts/<slug>-<YYYY-MM-DD>.md — the brief verbatim.
out/verdicts/<slug>-<YYYY-MM-DD>.html — a bespoke, distinctively designed
version. Self-contained: inline <style>, no JavaScript, no external
requests (system fonts), links preserved, the scorecard and recommendation
as first-class visual elements, responsive, print-friendly.
<slug> = options joined by -vs-, lowercased. Compute the date with a shell
command (date +%F) — do not guess. Create out/verdicts/ if needed. Briefs
make good shared history, but they may contain internal project context —
committing them is the user's call, not the skill's.
Design the HTML via the frontend-design skill: subject is an engineering
decision record; the page's one job is to make the recommendation, scorecard,
and dealbreakers scannable in ten seconds, with the full evidence beneath.
Design changes presentation only — never scores, evidence, or citations. Fall
back to a clean self-contained no-JS layout if the skill is unavailable.
Tell the user the two saved paths at the end.
Guardrails
- Advisory, not authoritative. Recommend with evidence; the human decides.
Never present a close call as decisive.
- Symmetric research. Every option gets the same five angles — no
strawmanning the option you suspect will lose.
- Vendor claims labeled. Marketing pages are evidence of intent, not of
performance. Independent verification or it's marked "vendor claim."
- No fabrication. Every score traces to cited findings; unknowns stay
unknown and are listed in the brief.
- Keyless. Never ask for API keys; degrade gracefully.
- Context is king. The same two options can produce opposite verdicts for
different contexts — restate the context prominently so the brief can't be
misapplied later.
1---2name: verdict3description: Architect-grade technology decision briefs — "which option should we pick, and why?" Takes a decision question (X vs Y vs Z for a stated context: library, database, framework, platform, buy-vs-build) plus your constraints, fans out parallel sub-agents to research each option's project health, community sentiment, technical claims, and operational story, then scores options across weighted criteria and emits an ADR-style recommendation with a full scorecard and cited evidence. Keyless; the recommendation is advisory — you decide. Use when the user must choose between technologies or approaches — e.g. "/verdict postgres vs mongodb for <use case>", "should we use Kafka or NATS", "compare X and Y", "buy vs build", "which framework for this". Also supports "/verdict revisit <brief>" to cheaply re-check a past verdict's revisit-when triggers. For community buzz on a single topic use pulse; for exhaustive fact-checked research use deep-research.4---56# verdict — technology decision briefs78`/verdict <option A> vs <option B> [vs <option C>] for <context> [constraints]`9`/verdict revisit <path-to-previous-brief>` — re-check an old verdict (see Revisit mode)1011Answer one question: **given this context, which option should we pick, and what12evidence supports that?** You research every option the same way, score against13explicit weighted criteria, and write the decision up so it can be defended in a14design review — or revisited later when the facts change.1516## Step 0 — Frame the decision1718Extract from the request (ask **1–2 questions only if** genuinely blocking):1920- **Options** (2–4). If the user names only one ("should we use X?"), add the21 status-quo/do-nothing option and the 1–2 strongest alternatives — say you did.22- **Decision context:** what is being built, scale (users/QPS/data volume), team23 size and existing skills, current stack, timeline.24- **Constraints & dealbreakers:** licensing limits, budget, compliance,25 must-run-on-prem, language lock-in, etc.26- **Criteria weights** — defaults below; honor plain-language overrides27 ("ops burden matters most", "we optimize for hiring").2829State every assumption you make in the brief header. A verdict against the wrong30context is worse than no verdict.3132## Step 1 — Fan out: parallel research sub-agents (per option)3334Spawn one research sub-agent **per option**, concurrently (one message, multiple35`Agent` calls, `subagent_type: "Explore"`). Each covers five angles and returns36structured findings — every claim with a `url` + 1-line evidence, anything37unverified marked as such:38391. **Project health** (for OSS/tools; skip for pure approaches): GitHub keyless40 REST — stars trend, commit/release cadence, open-vs-closed issue velocity, bus41 factor, age, backing org/funding. A beautiful README with a dead repo behind42 it is a trap; this angle catches it. **Note:** keyless GitHub REST allows43 60 req/hr shared across all sub-agents — budget calls, and on a 40344 rate-limit mark the angle **unknown** rather than retrying in a loop.452. **Community sentiment:** HN Algolia (`hn.algolia.com/api/v1/search?query=...`)46 + web search + Reddit fallback — what practitioners report *after adopting*:47 praise, recurring pain points, migration-away stories. Weight experience48 reports over launch-day hype — and over SEO comparison content ("X vs Y in49 2026" listicle farms are marketing surface, not adoption evidence; a real50 practitioner thread outweighs ten of them).513. **Technical claims:** official docs + independent benchmarks/comparisons for52 the capabilities the context actually needs. **Label every claim vendor-made53 vs independently verified.** Note version/date — a 2022 benchmark may be void.544. **Operational story:** licensing (and any recent license *changes*), managed55 vs self-hosted options, pricing shape, upgrade pain, hiring pool / learning56 curve for the stated team.575. **Security posture:** CVE history and severity pattern, GitHub security58 advisories, how fast past vulnerabilities were patched, safety of the default59 configuration, and any compliance certifications the context requires. This60 evidence feeds the *Maturity & health* and *Operational burden* scores (no61 separate criterion) — but an unpatched-critical-CVE pattern can be a62 dealbreaker in its own right.6364If an angle returns nothing usable, record it as **unknown** — never fabricate.6566**Lossless hand-off:** each sub-agent writes its full findings to67`out/verdicts/.work/<option>.md` and returns a compact summary; score in Step 268from the files, not the summaries — the evidence that decides a verdict must69not be flattened by the relay.7071## Step 2 — Score7273Score each option **0–10 per criterion**, weighted. Defaults (overridable in74Step 0):7576| Criterion | Weight | What it measures |77| ----------------------- | ------ | ------------------------------------------------------ |78| Fit for requirements | 30% | Does it actually do what this context needs, natively? |79| Maturity & health | 20% | Project vitality, stability, ecosystem, longevity risk |80| Team & stack fit | 20% | Learning curve vs existing skills; integration cost |81| Operational burden | 15% | Run/upgrade/monitor cost at the stated scale |82| Cost & licensing | 15% | License risk, pricing shape, lock-in |8384If a criterion doesn't apply, mark it N/A and renormalize the rest — say so.85**Dealbreakers** (license incompatible, can't meet a hard constraint, project86effectively abandoned) disqualify the option outright regardless of score —87called out explicitly, not averaged away.8889Compute a weighted total /10 per option. **Close calls (≤0.5 apart) are ties** —90say so honestly and let the tiebreaker be a context factor, not false precision.9192## Step 3 — Emit the brief (ADR-style)9394Render the brief **in chat** per `references/adr-template.md` (read it when95you reach this step), then save as `.md` + a self-contained `.html` (see Output96files). Cite inline with linked URLs; label vendor claims.9798## Revisit mode99100`/verdict revisit <path>` (or "revisit the postgres verdict") turns the101**Revisit when** section from a wish into a mechanism. Much cheaper than a full102re-run:1031041. Read the previous brief (find it in `out/verdicts/` by slug if only a topic is105 given). Extract the recommendation, scores, dealbreakers, and the **Revisit106 when** triggers.1072. Research **only the triggers** plus two standing checks: any license change108 and any major-release/abandonment signal since the brief's run date. One109 Explore sub-agent per option, narrow scope — not the full five angles.1103. Emit a short **addendum**, not a new brief: per trigger — fired / not fired /111 unknown, with citation — and an overall call: **verdict stands / weakened112 (why) / overturned → recommend a full re-run**. Never silently flip a113 recommendation from a partial check; an overturn verdict recommends the114 re-run, the human decides.1154. Save as `out/verdicts/<slug>-revisit-<YYYY-MM-DD>.md` (markdown only — no HTML116 for addenda) and link the original brief in its header.117118## Output files119120Save to `./out/verdicts/` in the current working directory:121122- `out/verdicts/<slug>-<YYYY-MM-DD>.md` — the brief verbatim.123- `out/verdicts/<slug>-<YYYY-MM-DD>.html` — a **bespoke, distinctively designed**124 version. Self-contained: inline `<style>`, **no JavaScript, no external125 requests** (system fonts), links preserved, the scorecard and recommendation126 as first-class visual elements, responsive, print-friendly.127128`<slug>` = options joined by `-vs-`, lowercased. Compute the date with a shell129command (`date +%F`) — do not guess. Create `out/verdicts/` if needed. Briefs130make good shared history, but they may contain internal project context —131committing them is the user's call, not the skill's.132133Design the HTML via the **`frontend-design`** skill: subject is *an engineering134decision record*; the page's one job is to make the recommendation, scorecard,135and dealbreakers scannable in ten seconds, with the full evidence beneath.136Design changes presentation only — never scores, evidence, or citations. Fall137back to a clean self-contained no-JS layout if the skill is unavailable.138139Tell the user the two saved paths at the end.140141## Guardrails142143- **Advisory, not authoritative.** Recommend with evidence; the human decides.144 Never present a close call as decisive.145- **Symmetric research.** Every option gets the same five angles — no146 strawmanning the option you suspect will lose.147- **Vendor claims labeled.** Marketing pages are evidence of intent, not of148 performance. Independent verification or it's marked "vendor claim."149- **No fabrication.** Every score traces to cited findings; unknowns stay150 unknown and are listed in the brief.151- **Keyless.** Never ask for API keys; degrade gracefully.152- **Context is king.** The same two options can produce opposite verdicts for153 different contexts — restate the context prominently so the brief can't be154 misapplied later.