sunrain520/spec-first/spec-pov
Claude Code and agent skill by sunrain520/spec-first
- community
Checking that the SKILL.md file is still in the repository.
Give a decisive, project-grounded verdict on an external input — judged against the current project, not in the abstract. Use to decide whether to adopt, switch to, or revisit a technology, library, pattern, platform, or architecture; to compare a candidate against what the project already uses; to judge whether an external change (a CVE, a deprecation, an ecosystem shift) actually affects this project; or for a mid-session second opinion. Always returns a project-specific verdict, so it is not for neutral explainers or generating options.
Install
npx vskill@latest install sunrain520/spec-first/spec-povSKILL.md
Form a Point of View
Return a decisive, graded verdict on something from the outside world — judged against this project, not in the abstract.
Use the user's current request from the conversation as the POV input.
Note: Use the current date from the active host context. Use this when weighting external sources and dating artifacts.
The one rule that is the whole moat
Do not issue a verdict you did not earn against the project's own context. Generic web research already covers "tell me about X"; the differentiator is never "research the web" — it is the refusal to answer in the abstract. The verdict must clear two absolute floors (see references/method.md): a project floor (a concrete verified project fact — a named incumbent + a touchpoint, or for a net-new adoption the verified absence of one plus where it would fit, or a prior decision) and an external floor (at least one verified external source). The floors are absolute and independent — strong external evidence never compensates for a thin project leg, and vice versa. Neither the conversation nor the user's own assertions substitute for grounding.
Interaction Method
When you must ask the user a question, use the platform's blocking question tool: AskUserQuestion in Claude Code (call ToolSearch with select:AskUserQuestion first if its schema isn't loaded), request_user_input in Codex. Fall back to numbered options in chat only when no blocking tool exists in the harness or the call errors (e.g., Codex edit modes) — not because a schema load is required. Never silently skip the question. Ask one question at a time.
Model Tiers
Dispatch is tiered by task shape, never hardcoded to a model name:
- Extraction tier — the project-grounding scout and the precedent-&-activity scout: search-and-quote work. Request the cheapest capable tier only when
worker_model_override: supported; otherwise inherit. - Generation tier — the external-evidence researcher: web/docs retrieval and entailment checking. Request the balanced mid-tier only when
worker_model_override: supported; otherwise inherit. - Ceiling tier — the verdict reasoning itself (the two-floor gate, the skeptic synthesis, the verdict contract). This runs in the main conversation on the orchestrator's model; nothing is dispatched for it.
Dispatch Authorization Boundary
在派发 repo profiler、project/precedent scout 或 external researcher 前,记录:
workflow invocation does not authorize dispatch。POV tier、外部链接、tool availability、权限设置或需要满足 two floors 都不构成派发授权。只有当前用户或可见 upstream handoff 明确请求 subagent、delegated work、persona 或 parallel work 时才可派发。缺授权时不得探测 tool schema,固定为 capability_probe: not_applicable + worker_dispatch_capability: unknown,采用 bounded inline 或 serial grounding 并记录 dispatch_authorization_missing。只有授权后才把 current-session registry/schema 作为 provider_untrusted evidence 检查:确认缺失时记录 subagent_capability_missing;surface 不可用、schema 不完整或候选不唯一时记录 worker_capability_unproven,均使用同一 fallback。隔离、模型覆盖和有界并发只取 live facts;required isolation 未满足时保持依赖 gate 打开,model unknown 时继承,parallelism unknown 时串行。记录 worker_dispatch_outcome。The inline path must not claim independent scout coverage、fresh-context skepticism 或 multi-agent evidence;它只能声明 orchestrator 自身完成了有界的多 lens 核验。
Degradation rule. When authorized dispatch exists but worker_model_override is unsupported or unknown, dispatch scouts on the inherited model and keep their read budgets. When dispatch capability is missing or unknown, use the bounded inline fallback with the same evidence budgets and the claim limitation above.
Execution Flow
Phase 0: Frame and Classify
Output mode: by default spec-pov writes no document — the verdict is a compact chat block. An optional full write-up and a durable spec-compound capture are available on request at Phase 4. Do not resolve an OUTPUT_FORMAT or load a rendering reference up front.
- Detect the invocation context — cold or warm. Warm means
spec-povwas invoked mid-session for a second opinion, with the question sitting in the surrounding conversation or absent. For the warm contract beyond the frame — taking only the question and claims-to-verify (never grounding), the guest output, the provenance buckets — readreferences/invocation.md.
- Establish the frame before grounding — orient, then infer or propose; never guess. The same input supports very different verdicts: a bare link to a new sign-in method could mean adopt it, migrate to it, compare it to what we have, or just answer a question about it. Guessing sends the scouts after the wrong question. So orient cheaply on what was provided — fetch a bare link lightly to learn what it is, recognize a bare topic, read a paste (orientation, not grounding) — then settle the subject and the POV intent (adopt / migrate / compare / is-this-our-problem / explainer):
- Both clear → state the frame in one line and proceed.
- Intent ambiguous (a bare link or topic with no stated intent, or a warm invocation with no clear question) → read `references/intake.md` and follow it: propose the concrete candidate framings this input suggests and confirm before grounding. Do not guess and fan out.
- Apply the selection escape hatch. If the input is a selection over a field ("what should we use for auth?"), it belongs here only when the realistic field is bounded (roughly five or fewer real candidates) and the criteria are knowable. If the field can't be bounded without inventing options, or the criteria are unclear, stop: return a Hold and route to
spec-ideate(to enumerate) orspec-brainstorm(to surface criteria), then offer to re-run. A product-design question the user owns is not a verdict. "How should I design this feature?" (form placement, page structure, UX shape) has no named external candidate to judge — deciding it inside spec-pov makes the product decision for the user in the wrong workflow. Route tospec-brainstorm(WHAT unsettled) orspec-plan(HOW planning), and do not return a verdict on it. Readreferences/boundaries.mdonly when the input's fit forspec-povis genuinely in doubt or the field can't be bounded; skip it for a clearly in-scope verdict.
Freeze an explicit approach set before grounding: every user-supplied candidate, the status quo when relevant, and the option to reject the framing or all candidates. Preserve this set through grounding, any peer cross-check, and the final verdict. Every approach must finish as recommended, rejected with a reason, deferred for missing evidence, or framing-rejected; narrative omission is not a disposition.
- Classify the reversibility tier — three levels. Infer it from project signals:
- Tier 1 — two-way door: a dependency, lint rule, or config; trivially reversible.
- Tier 2 — one-way but bounded: a data store, an internal API/contract, or a migration whose blast radius stays inside this codebase.
- Tier 3 — one-way and high-stakes: a security, legal, or privacy surface; a public API/contract; or an irreversible data migration.
State the tier in the verdict and let the user override. The tier sizes the rest of the run (Phase 1 scout count, Phase 2 depth, Phase 3 reversal trigger): Tier 1 stays a one-screen verdict off a single combined grounding pass; Tier 2 adds the full scout fleet and an alternatives pass; Tier 3 adds deep external research, a precedent search, and a durable-record offer. Do not run a Tier-3 workup on a trivially reversible npm i, or hand a security-surface decision the moderate Tier-2 treatment.
Phase 1: Ground with authorized scouts or bounded inline fallback
Grounding searches code, git, the issue tracker, PRs, and docs. When the package-local boundary permits dispatch, use scout sub-agents that return only a dossier path plus a short gist. Otherwise apply the same persona budgets serially in the orchestrator, keep raw search notes in the scratch directory, and carry only compact evidence into verdict reasoning.
Resolve current project orientation first. Derive stack, dependency/license surface, conventions, and structure from the current target repo/worktree for this run. Record current git identity and dirty state when available, carry direct source refs, and never persist or reuse the orientation across runs, branches, or worktrees. If git or a required source cannot be read, record the concrete degraded fact and narrow the project-floor claim; do not substitute conversation claims or stale orientation.
Create the scratch dir once, and reuse the echoed path for every scout this run:
This directory is owner-only, ephemeral scratch. Recheck that it remains a non-symlink directory before atomic publication; durable POV evidence must use its canonical artifact owner rather than this path.
Every scout payload carries the same context. A fresh subagent does not inherit this conversation, so fill the persona files' {subject} / {scratch-dir} placeholders at dispatch: pass each scout the framed question (subject + intent), the named incumbent and the reversibility tier, and the resolved <scratch-dir> path — plus any user-supplied links for the external researcher. A scout seeded with only its generic persona grounds "some external thing" and can produce an empty or unfocused dossier.
Tier-sensitive execution. For Tier 1 (reversible), run a combined project-grounding and external-evidence pass at tight budgets; use subagents only when authorized, otherwise run the two lenses serially inline. Skip the standalone precedent lens because the project-grounding pass includes the prior-decision scan. For Tier 2/3, use the full fleet when authorized or the same three lenses serially inline:
This is the start of the file. Read the full SKILL.md on GitHub.
Security
- Security scanPassed, 90 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingskills/spec-pov/SKILL.md
Popularity
- Repository stars
- 97
- Repository forks
- 12
- 7-day trend score
- 23
Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/sunrain520/spec-first/spec-pov)