Use when asked to judge whether this project should adopt, switch to, reject, or revisit a technology, library, pattern, or architecture, or give a mid-session second opinion. Graded verdict clears two evidence floors. Not for scoping, use brainstorm; not for forks, use decide.
Scanned 9/2/2026
Install to Claude Code
npx -y skills add OutlineDriven/odin-claude-plugin --skill pov --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Pov?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/outlinedriven-pov)More formats (shields.io, HTML) on the badges page.
---
name: pov
description: 'Use when asked to judge whether this project should adopt, switch to, reject, or revisit a technology, library, pattern, or architecture, or give a mid-session second opinion. Graded verdict clears two evidence floors. Not for scoping, use brainstorm; not for forks, use decide.'
---
# Pov
## Contract
| Field | Bound contract |
|---|---|
| Trigger | Explicit invocation to judge a technology, library, pattern, platform, or architecture against the current project, or to give a mid-session second opinion. |
| Authority | Read project and external evidence; write only a run-specific scratch directory, the deterministic project-profile cache under `/tmp/odin/repo-profile/`, and an optional local report at a user-supplied path. Do not mutate project files, VCS state, credentials, paid services, deployments, publications, or remote state. |
| Side effect | Cache a question-agnostic repository profile and scout dossiers locally; return the verdict in chat by default. Delete the run scratch directory, any cache entry created by this run, and any optional report to roll back local writes. |
| Done | A compact graded verdict passes both evidence floors, states its reversibility tier and confidence, cites the decisive evidence, records conditions and a tier-sized reversal trigger (Tier 2/3 only), and gives the computed next action; or an exact Hold result identifies the failed floor. |
## Inputs
Required: the subject to judge and the intended decision (adopt, migrate, compare, determine fit, reject, or revisit). For a mid-session invocation, take the question and claims to verify from the surrounding conversation, but do not treat them as evidence. If the intent is ambiguous, obtain one answer before research.
Optional: user-supplied links, constraints, decision criteria, a named incumbent, and a local output path for a full report. Treat supplied claims and links as unverified input until corroborated.
## Procedure
1. Frame the question and size the research tier. State the subject and decision frame in one line. If the request asks to choose from an unbounded field or lacks usable criteria, return `Hold — unbounded selection` with the missing boundary or criterion; do not invent candidates. Classify the decision as Tier 1 (readily reversible), Tier 2 (moderate), or Tier 3 (one-way, security, legal). Resolve the repository root and invoke `scripts/repo-profile-cache.py get`; on `MISS`, dispatch a repo-profile scout and persist via `put`; on `NO-CACHE` or failure, derive the profile in-scout and continue without caching. Create one unique `/tmp/odin/pov/<random-id>/` scratch directory. Give every scout the same framed question, tier, named incumbent, supplied links, profile, and scratch path. Done when: the subject and frame are stated with a tier classification, the repository profile is obtained, and the scratch directory is created, or `Hold — unbounded selection` is returned.
2. Run the precedent and activity scouts. For Tier 1, dispatch in parallel a project-grounding scout and an external-evidence scout. For Tier 2/3, also dispatch an independent precedent-and-activity scout. The project scout freshly verifies an incumbent and concrete call site, or verifies absence and the exact integration point, and scans local decision records for precedent. The precedent-and-activity scout searches local decision records and, when reachable, issue and change history. The external scout verifies current primary documentation and independent evidence, checks dates and source entailment, and records unavailable surfaces. Keep four provenance buckets separate: observed project facts, verified external facts, conversation claims, and unconfirmed assumptions. Missing tracker or web access lowers confidence; continue with reachable surfaces. Never promote conversation claims or assumptions into either evidence floor. Done when: all scouts have written dossiers to the scratch directory and all evidence is sorted into the four provenance buckets.
3. Apply the absolute project and external evidence floors. The project floor requires a freshly verified named incumbent plus a concrete touchpoint, verified absence plus a concrete fit point for net-new adoption, or a verified prior decision. The external floor requires at least one current, relevant external source whose content entails the claim used. Strong evidence on one side cannot compensate for failure on the other. If the project floor fails, return `Hold — insufficient project grounding` with a numbered list of exactly what to inspect to make the floor passable. If the external floor fails, return `Hold — external evidence unavailable`. Name the attempted surfaces and the exact evidence needed to resume. Preserve any valid partial dossiers as explicitly partial results. Done when: both floors are evaluated with pass/fail determined for each, or the exact Hold subtype is returned.
4. Compute the verdict from passing dossiers. Reason from project constraints, incumbent cost, compatibility and licensing, external maturity and activity, reversibility, and credible alternatives. Adopt a skeptic stance: state the strongest counterargument, conditions that would change the result, and a tier-sized reversal trigger (Tier 2/3 only; Tier 1 omits it). Grade the result `Adopt`, `Trial`, `Hold`, `Reject`, or `Not-our-problem`; do not overstate confidence beyond the weakest evidence leg. If conflicting evidence cannot be resolved from a primary source within the framed scope, return `Hold — conflicting evidence`. Done when: the graded result is produced with counterargument, conditions, and reversal trigger (or its Tier 1 omission is stated).
5. Output the unified verdict contract. Emit a compact chat block with these fields: Grade (the label plus its one-line plain-language meaning), Incumbent, Project evidence (verified, cited), External evidence (verified, cited), Conversation hypotheses (unverified, warm mode only), Tier, Confidence, Conditions, Reversal trigger (Tier 2/3 only), Next action. Keep Tier 1 to one screen; for Tier 2/3 cite dossiers and sources rather than reproducing them. Compute one next action from the grade: implementation planning for a clear Adopt, requirements clarification for a fuzzy Adopt, a timeboxed experiment for Trial, and no handoff for Hold, Reject, or Not-our-problem. For a mid-session second opinion, return the verdict and hand control back without prompting a follow-up. Otherwise, write an expanded local report only when requested and only to the supplied path; the chat verdict remains the required result. Done when: the verdict block is emitted with a computed next action and control is handed back, or the expanded report is written to the supplied path.
## Failure and recovery
- Ambiguous frame: ask one blocking question; if no answer is available, return `Hold — frame unresolved` and make no research writes.
- Scout or surface unavailable: retain successful dossiers, mark unavailable evidence explicitly, and apply the floors without substitution. If a required floor fails, return its exact Hold subtype.
- Cache failure: continue from a fresh repository profile without caching. Never treat cache availability as a correctness condition or serve a profile whose freshness is unproved.
- Conflicting evidence: report the conflict and return `Hold — conflicting evidence` unless the conflict can be resolved from a primary source within the framed scope.
- Partial local write: remove only the run-specific scratch directory, cache entry created by this run, or optional report created by this run. Leave pre-existing cache entries and unrelated files untouched.
- Non-convergence or scope widening: stop and return `Hold — non-converged`, listing the repeated conflict or newly required decision boundary. Never widen the subject, invent evidence, or claim the done predicate.
## Output
Either the unified verdict block (Grade, Incumbent, Project evidence, External evidence, Conversation hypotheses, Tier, Confidence, Conditions, Reversal trigger, Next action) or an exact Hold classification with attempted evidence surfaces, retained partial results, and the evidence required to resume. The Hold subtypes are: insufficient project grounding, external evidence unavailable, unbounded selection, frame unresolved, conflicting evidence, and non-converged. Plus, when explicitly requested, one expanded report written to the supplied local path.
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!