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.
$ARGUMENTS above appears as a literal token rather than the user's words — it was not substituted on this host — use the user's actual request from the conversation as the input.)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.AskUserQuestion in Claude Code (call ToolSearch with select:AskUserQuestion first if its schema isn't loaded), request_user_input in Codex, ask_question in Antigravity CLI (agy), ask_user in Pi (requires the pi-ask-user extension). 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.ce-pov writes no document — the verdict is a compact chat block. An optional full write-up and a durable ce-compound capture are available on request at Phase 4. Do not resolve an OUTPUT_FORMAT or load a rendering reference up front.ce-pov was 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 — read references/invocation.md.references/intake.md and follow it: propose the concrete candidate framings this input suggests and confirm before grounding. Do not guess and fan out.ce-ideate (to enumerate) or ce-brainstorm (to surface criteria), then offer to re-run. Read references/boundaries.md only when the input's fit for ce-pov is genuinely in doubt or the field can't be bounded; skip it for a clearly in-scope verdict.npm i, or hand a security-surface decision the moderate Tier-2 treatment.SKILL_DIR to this skill's directory and run the helper (full protocol in references/repo-profile-cache.md):SKILL_DIR="<absolute path of the directory containing the SKILL.md you just read>"
python3 "$SKILL_DIR/scripts/repo-profile-cache.py" get
HIT, load the profile JSON — that is your agnostic project orientation; do not re-derive it. On MISS, dispatch a generic subagent with references/agents/repo-profiler.md to derive the profile, write its JSON to a file, then persist with python3 "$SKILL_DIR/scripts/repo-profile-cache.py" put <file> (re-set SKILL_DIR in that call — shell vars don't persist between Bash invocations). On NO-CACHE — or if the call errors or returns nothing — derive it inline via that persona and skip the put; never block on the cache. The profile supplies the agnostic facts; the scouts below only run the candidate-specific slice on top of it.SCRATCH_DIR="/tmp/compound-engineering/ce-pov/$(openssl rand -hex 4)"
mkdir -p "$SCRATCH_DIR"
echo "$SCRATCH_DIR"
{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.references/agents/project-grounding-scout.md covering the candidate-specific project facts (incumbent, call-sites) on top of the cached profile at a tight read budget, and one with references/agents/external-evidence-researcher.md; skip the standalone precedent scout — on this tier the project-grounding scout's prior-decision scan (docs/solutions/, ADRs, design docs) is the precedent check, so it must run. For Tier 2/3, dispatch the full fleet in parallel:references/agents/project-grounding-scout.md and seed a generic subagent with it. With the agnostic profile already loaded from the cache, this scout runs only the candidate-specific slice: the named incumbent for this candidate, its call-sites/footprint, incumbent-pain, and the license/compat check against the profile's dependency-license set. Do not re-derive stack, conventions, or structure — those are in the profile. But note the profile may name an incumbent dependency, and a named dep is only a lead — it does not satisfy the project floor (see references/method.md), which still requires a freshly verified call-site the cache never holds. Do not let a cache-named incumbent short-circuit the fresh touchpoint check.references/agents/precedent-activity-scout.md and seed a generic subagent with it. Always run its local-doc precedent pass (docs/solutions/, ADRs, design docs — file reads, no tools needed); only its tracker/PR portion is capability-gated and degrades gracefully when those interfaces aren't reachable. Do not skip the whole scout for missing tracker access — that would drop the only path that surfaces a prior local adopt/reject decision.references/agents/external-evidence-researcher.md and seed a generic subagent with it; capability-gated on web tools. Scale the remit to the tier so Tier 3's deeper-workup promise is real, not nominal: at Tier 3, seed it with a deeper brief — a wider source net, a larger read budget, and mandatory two-source corroboration on every load-bearing claim (at Tier 3 a single-source claim cannot anchor the verdict); Tier 2 uses the persona's standard budget and its prefer-two-sources default.references/method.md now, before reasoning about the verdict — it defines the Verify and Verdict steps, the skeptic stance and reversibility tiering as cross-cutting properties, and the two-floor Invalid-Verdict gate. Apply that gate as a pass/fail checklist over the dossiers: a failed floor forbids Adopt/Reject and returns the matching Hold subtype. Do this reasoning on the clean context — read a dossier on demand, never pull its bulk in.references/method.md — grade vocabulary, schema fields, tier sizing, and output economy are all specified there. The verdict is a compact chat block, not a research report: lead with the grade, keep each schema field terse, and never reprint scout dossiers or raw search output. Size it to the tier — a Tier 1 verdict fits one screen; Tier 2/3 carries the full workup but still leads with the verdict and cites evidence rather than pasting it.ce-plan.ce-brainstorm to pin down what "adopt" means before planning.ce-work).<computed next step>? Otherwise we're done." No blocking menu; silence means done.<computed next step> (e.g. "Plan the adoption with ce-plan") — seeded with the verdict substance, not a file pointer.ce-compound as a one-line prose nudge under the menu, not a slot: "Want it in our decision history? say 'compound it.'" It is the least-frequent path and is never the first thing offered.references/report.md and follow it (HTML by default; opened locally or published via Proof / an available HTML tool). Opt-in; the default stays chat-only.ce-compound with mode:headless, seeding it with the structured verdict for tooling_decision / architecture_pattern storage (no schema change; headless avoids its interactive prompts). Never mandatory.