claude-skills/research/dossier/README.md
Claude 7405298b4b
fix: resolve the actionable reported issues (#954, #949, #933, #931, #969, #968, #924, #885)
- #954: strip non-spec source/attribution keys from all 39 plugin.json
  manifests so Claude Code's validator accepts them; metadata preserved in
  new .claude-plugin/authoring-notes.json sidecars; check_plugin_json.py now
  hard-fails manifests carrying those keys and sanity-checks the sidecar;
  CLAUDE.md ClawHub schema section updated to the new rule.
- #949: move the c-level-agents plugin out of c-level-advisor/ to a
  top-level directory so the two marketplace sources no longer overlap;
  updated marketplace.json source, homepage, descriptions, all
  cross-references, docs, harness manifest, mirror-tree symlinks/indexes,
  and rebased the moved files' relative links; domain counters trued up
  (18 -> 19 domains).
- #933: replace dead links to the gitignored maintainer-local megaprompts/
  tree with annotated plain-text references (44 files: SKILL.md, READMEs,
  agents, commands).
- #931: DynamoDB on-demand pricing updated to post-Nov-2024 rates
  ($0.625/M writes, $0.125/M strongly consistent reads).
- #969: skill_security_auditor.py and the three dossier scripts reconfigure
  stdout/stderr to UTF-8 (errors=replace) so legacy Windows codepages no
  longer crash at print time; PYTHONUTF8=1 documented.
- #968: Windows Notes section in INSTALLATION.md + README pointer for the
  core.symlinks mirror-tree checkout caveat.
- #924/#885 residuals: hook commands quote "${CLAUDE_PLUGIN_ROOT}" paths in
  all plugin hooks.json/settings.json (space-safe roots); removed the stale
  pre-rename status/review mirror symlinks and index entries left over from
  the memory-status/memory-review rename.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Qgc6RYXWJPr5oW9DHU7zR4
2026-08-21 05:47:37 +00:00

2.9 KiB

dossier

Decision-grade entity research. Produces a hypothesis-tested dossier on a specific company, person, nonprofit, or government org — built around hypothesis-testing rather than encyclopedic summary.

Non-generic by design

The skill refuses to be "tell me about Microsoft". Every invocation forces the user to expose their hypothesis upfront (Q4 — mandatory), so the dossier tests it rather than confirms it.

Generic ask Decision-grade ask
"Tell me about Microsoft." "I'm pitching Microsoft Tuesday. My hypothesis is they're consolidating AI spend on Foundry. Validate or disprove, and give me 3 conversation hooks tied to what you find."

The forcing Q4 is the non-generic anchor. Without it, the skill produces a Wikipedia summary.

Sibling skill relationship

Part of the research pack (sibling of pulse, litreview, grants). Shares Agent Integrity Rules (1 q/sec, source discipline, three-count tracking, retry-once-after-3s, stop-after-3-consecutive-failures).

Different from siblings:

  • Hypothesis-testing discipline — ≥30% of search budget allocated to disconfirming evidence
  • Source-tier discipline — every flag tagged primary / secondary / tertiary
  • Subject-type routing — different source matrix for person / company / nonprofit / gov
  • Verdict in Executive Summary: SUPPORTED / PARTIALLY SUPPORTED / DISPROVEN / INCONCLUSIVE
  • Uses WebSearch + WebFetch + free APIs (not Consensus)

Source spec

megaprompts/12-dossier-megaprompt.md (maintainer-local draft spec — gitignored, not in the public repo) (PR #657).

Plugin layout

research/dossier/
├── .claude-plugin/plugin.json
├── README.md
├── agents/cs-dossier.md             ← hypothesis-testing persona; Q4 enforcer
├── commands/cs-dossier.md           ← /cs:dossier <entity>
└── skills/dossier/
    ├── SKILL.md
    ├── references/
    │   ├── hypothesis_testing_discipline.md   ← why disconfirming; ≥30% rule (7+ sources)
    │   ├── subject_type_source_matrix.md      ← person/company/nonprofit/gov sources (7+ sources)
    │   └── conversation_hook_quality.md       ← finding-tied vs generic (7+ sources)
    └── scripts/
        ├── citation_tracker.py                ← supporting/disconfirming + source-tier counts
        ├── disconfirming_evidence_balance.py  ← enforces ≥30% disconfirming queries
        └── source_tier_classifier.py          ← URL → primary/secondary/tertiary

Dependencies

  • WebSearch + WebFetch — required (news, public web)
  • bash_tool + curl — required for free APIs (SEC EDGAR, GitHub, ProPublica)
  • Node.js docx library — required for DOCX generation
  • Optional BYOK MCPs — LinkedIn, Crunchbase, Apollo, Pitchbook, SimilarWeb (surfaced in audit log when used)

License

MIT.