Security: see references/scanner-notes.md and upstream SECURITY.md for expected scanner signals and trust model.
Source of truth
| File | Role |
|---|---|
references/research-protocol.md |
Full protocol — read first |
references/helper.md |
Help text for bare /verasic-deep-research or help |
references/citation-protocol.md |
Verify pipeline, SourceRecord, two-key rule |
references/confidence-rubric.md |
5-axis scoring |
references/drill-protocol.md |
Drill triggers and futile conditions |
references/source-tiers.md |
T0–T3 source classification |
references/fusion-handoff.md |
Optional manual chain to verasic-fusion |
templates/deep-research-brief.md |
Deliver template sections |
workflows/<depth>.md |
Tier checklist (quick-scan, standard-research, …) |
Never duplicate the protocol in chat — follow it.
Workflow
- Help path — if the user invokes deep research with no question or asks for help, relay
references/helper.md(adjust path prefix for install root). - Pre-flight gate — require all pre-flight fields before any fetch or spawn:
question,
depth,output,source-boundary,languages. No defaults onoutputorsource-boundary(recommendpublic-standardonly after asking). Collect output path whenoutputincludes files. Apply honesty notices per protocol (seereferences/helper.md## honesty). - Read protocol — read
references/research-protocol.md, activeworkflows/<depth>.md, and supporting references before any fetch or spawn. - Dispatch T2/T3 per tier — T1 main orchestrates; spawn T2 workers per depth preset via
Task. T3 leaf jobs (
fetch-url,extract-excerpt,single-query-search,verify-one-claim) are spawned by T2 (grandchild, no Task). T1 batches WebFetch when T2 unavailable.standard-research: Hunter + Practitioner parallel → Skeptic sequential (mandatory). T2 direct fallback when T3 fails — not a blocker. - Verify ledger — every citation must pass verify-before-cite; no cite without a ledger row
(see
references/citation-protocol.md). - Score — apply 5-axis confidence per
references/confidence-rubric.md; sensitive domains enforce floor 60. - Drill — per
references/drill-protocol.mdwhen thresholds hit; max 2 rounds (auto-at-thresholdauto-executes round 1; offers round 2). - Deliver — chat per output format; write files to
./docs/research/<slug>/when chosen. Usetemplates/deep-research-brief.mdsections. Ask mode = no file writes.
Orchestration (Cursor)
Read .cursor/skills/verasic-deep-research/references/research-protocol.md first and follow it exactly.
Help
If the user sent no question, only help, or an empty invocation — relay
.cursor/skills/verasic-deep-research/references/helper.md verbatim (adjust the path prefix if
this skill is installed elsewhere).
Required from the user's message
Parse or ask for:
depth:one ofquick-scan,standard-research,adversarial-deep,customoutput:one ofchat-only,chat+files,files-only,custom— no defaultsource-boundary:one ofpublic-standard,public-extended,aggressive-scrape(+ optional free text)languages:cite / search / report languages- The question body
Optional: models:, domain:, drill: (auto-at-threshold | off | always-offer), claims: list, output path, custom-roles: when depth: custom
No default output format. No default source boundary. Recommend public-standard.
If required fields missing, ask before any fetch or spawn. Include honesty notices from helper ## honesty at each pre-flight step.
Ask mode
If the user is in Ask (read-only) mode — no file writes. Deliver chat only even if they chose
chat+files or files-only. Say so and offer Agent mode or chat-only.
Steps
- Pre-flight per protocol — all required fields; path
./docs/research/<slug>/when files requested. - Read supporting refs: citation-protocol, confidence-rubric, source-tiers, drill-protocol,
workflows/<depth>.md, deliver template. - Dispatch T2 workers via Task per depth tier:
quick-scan: Hunter only (no Skeptic)standard-research: Hunter + Practitioner parallel → Skeptic sequential (mandatory 7a)adversarial-deep: Hunter + Practitioner + Skeptic + Arbiter (4 parallel)
- T3 leaf jobs spawned by T2 (grandchild, no Task):
fetch-url,extract-excerpt,single-query-search,verify-one-claim. T1 batches WebFetch when T2 unavailable. T2 direct fallback on failure. - Verify ledger — verify-before-cite; no
[Sn]without ledger row; IEEE citations; snippet-only headline hard cap 40. - Score — 5-axis per claim (SQ, EC, CG, CO, VR); sensitive domain floor 60; chat shows headline + full axes.
- Drill when thresholds hit —
auto-at-thresholdauto-executes round 1; offer round 2; max 2 rounds (drill-protocol.md). - Deliver per
output— usetemplates/deep-research-brief.mdsections. ## unverified→ suggest manual fusion only ifverasic-fusioninstalled (fusion-handoff.md).- If Task unavailable — ask before degraded sequential single-context research.
T2 subagent task prompt (one per role)
Replace <skill-root> with the absolute skill directory (contains references/research-protocol.md).
Readonly deep-research T2 (<role>). Follow <skill-root>/references/research-protocol.md.
Supporting refs (readonly):
- <skill-root>/references/citation-protocol.md
- <skill-root>/references/source-tiers.md
Role: <Hunter|Practitioner|Skeptic|Arbiter>
Source boundary: <boundary>
Languages: <languages>
Domain pack: <inferred or user domain>
## Packaged prompt
<question + pre-flight context>
Return candidate sources for main-agent verify. Do not mutate the repo.
T3 leaf jobs (spawned by T2, no Task)
| Job | Returns |
|---|---|
fetch-url |
HTTP status + raw body/metadata |
extract-excerpt |
≤40-word supporting excerpt |
single-query-search |
Candidate URLs/snippets (no synthesis) |
verify-one-claim |
Two-key pass/fail + excerpt |
T3 must not synthesize, merge ledger, spawn subagents, or score confidence.
Deliver
- chat-only — full brief sections in chat; headline + per-claim 5-axis in
## confidence. - chat+files — chat summary + write
./docs/research/<slug>/deep-research-brief.mdand ledger files in the same turn (Agent mode). Do not end with chat-only and write files later unless the user explicitly asks for staged delivery. - files-only — write files; chat gets short pointer only.
Hard rules: verify-before-cite; no cite without ledger row; refuse insider/illegal sources.
Recommend composer-2.5-fast in optional model rosters when suggesting models.
Without subagents
Read references/research-protocol.md and execute the full pipeline yourself, including
degraded confirmation when Task is unavailable.
Hard rules
- Verify-before-cite — no citation without a verified ledger row.
- No default output format — user must pick
chat-only,chat+files,files-only, orcustom. - No default source boundary — user must pick; agent recommends
public-standard. - Ask mode = no file writes — deliver in chat only.
- composer-2.5-fast should appear in suggested model rosters when optional roster is offered.
- Fusion handoff — suggest manually on
## unverifiedonly ifverasic-fusionis installed; never assume it is present.
Refuse
Insider or non-public proprietary data, illegal collection without an explicit user-stated boundary, and research that requires violating the chosen source boundary.