Resources
5Install
npx skillscat add deftai/directive/docs-reference-forensic-research Install via the SkillsCat registry.
Forensic Research — MODE
Forensic mode is a sustained investigation posture, not a one-shot reply. Enter on first causal question; stay in mode until the operator exits. Follow-ups drill the active ledger (.tmp/investigations/.active).
Mode docs: references/forensic-mode.md, references/follow-ups.md
Multi-agent investigation discipline: decompose the question into a logic tree, verify every claim with evidence, falsify popular wrong theories, and conclude only when surviving theories have verified causal chains.
Core references: references/forensic-mode.md, references/follow-ups.md, references/question-framing.md, references/investigation-profile.md, references/orchestrator-protocol.md, references/subagent-prompts.md, references/outcome-template.md, references/failures.md
Domain packs: references/domains/<domain>.md — you must add one per project (start from references/domains/TEMPLATE.md).
Examples: examples/slizard/ — full SLizard production pack (reference only).
Template: templates/investigation.vbrief.json
Iron laws
- Mode gate — On enter: read
references/forensic-mode.md. If.tmp/investigations/.activeexists, resume that id (follow-up). Else scaffold new id + write.active. First chat line:Forensic mode active — .tmp/investigations/<id>/. Stay in mode every turn until operator exits.
0b. Artifact gate — Before ANY causal statement in chat, active investigation must haveinvestigation.vbrief.json. Follow-ups extend it; do not answer from chat memory alone. - Answer embargo (chat gate) — While
plan.statusisrunningOR validator has not passed: chat may only say forensic mode is active, current wave, and path to ledger/outcome.mdif it exists from a prior completed pass. ⊗ Root cause, ⊗ mechanism names, ⊗ counts, ⊗ config recommendations. After Wave 5: chat may summarize only whatoutcome.mdalready states.
1b. Operator challenge = re-verify — When the operator disputes a claim, treat as mandatory re-verification: new or updatedEV-OPERATORor disproof evidence before repeating the claim. ⊗ Debate from memory. - Evidence before narrative — every factual claim cites a
plan.referencesid (EV-…). Assertions without citations are[HYPOTHESIS]only. - Config is not code — production flags require runtime proof (secrets manager, deploy env, or log line showing actual value). ⊗ Infer from source code or docs alone.
3b. No tautologies — "failed because timed out" and "slow because X took N minutes" are not answers to why it was slow. Name a mechanism or close with "mechanism not verified" after exhaustingbranch.mechanism.*. - Falsification before fixation — a branch is ruled out (
status: failed) when disproof evidence exists; "less likely" is not allowed. - Proof-required disproval — "no evidence found" →
unknown, notfailed.failedrequires a specific counter-evidence ref. - Sub-agents own branches — orchestrator prefetches evidence bundles (domain adapters) into
evidence/before dispatch; branch/trap agents interpret and citeEV-*. Sub-agent returnsblocked: needs_shellif required adapter output is missing — orchestrator fetches, then re-dispatches. - Scratch only — all artifacts under
.tmp/investigations/<id>/. ⊗git addanything under that path.
Artifact layout
.tmp/investigations/<investigation-id>/
investigation.vbrief.json
evidence/
outcome.mdInvestigation id: YYYY-MM-DD-<slug> (slug from anchor).
Orchestrator workflow (summary)
| Wave | Agent(s) | Output |
|---|---|---|
| 0 — Init | Orchestrator | Dir + template + traps |
| 1 — Traps | trap-runner | Popular theories falsified |
| 2 — Branches | branch investigators | Claims verified/failed/unknown |
| 2b — Mechanism | branch investigator | Why dominant phase was slow |
| 3 — Falsify | falsifier | Disproof attempts — mandatory |
| 4 — Red-team | red-team | Counter-evidence — mandatory |
| 5 — Synthesize | synthesizer | outcome.md after validator pass |
Domain selection: infer from question; if ambiguous, ask one question. Load references/domains/<your-pack>.md.
Read references/orchestrator-protocol.md for full detail.
Quick start (orchestrator checklist)
- Domain pack exists for this project (
references/domains/<name>.md) - Anchor recorded in
narratives.Problem -
.tmp/investigations/<id>/created from template - Wave 1 traps dispatched
- Wave 2 + 2b branch agents dispatched
- Wave 3–4 falsifier + red-team dispatched
- Validator pass (
references/investigation-profile.md§ Validator) - Wave 5
outcome.mdwritten - Chat: brief summary + path to
outcome.mdonly