knowledge-harvest

$npx mdskill add anthropics/healthcare/knowledge-harvest

The knowledge index informs future reformulations. Auto-ratification is a feedback loop (one wrong fact biases every future brief that reads it), so you **propose**; a human **ratifies**.

SKILL.md

.github/skills/knowledge-harvestView on GitHub ↗
---
name: knowledge-harvest
description: After a run completes, propose durable facts learned during the run for the knowledge index. A human ratifies — always. Proposals ride the queue.
---

# Knowledge harvest

The knowledge index informs future reformulations. Auto-ratification is a
feedback loop (one wrong fact biases every future brief that reads it), so
you **propose**; a human **ratifies**.

## When to skip

**Skip harvest entirely** when: (a) single-doc fact-lookup with a
correct answer — there's no cross-doc structure to learn; or (b) the
candidate fact is already verbatim in this run's brief or scope
rationale (it's already recorded).

**Check what's already there** before proposing anything:
```
bun $ANT_CONTRACTS_CLI sql "SELECT fact FROM knowledge WHERE corpus=?"
```
Don't propose a near-duplicate.

## What's worth proposing

Durable facts about the corpus that a future run would want to know during
reformulation: "Ohio NextGen contracts use 'prompt pay' not 'clean claim'
for the §4.2 timing clause"; "Acme amendments are cumulative, not
replacing"; "the CCS framework's £100k cap is a framework-level figure,
not per-call-off". Not findings about the question — those live in the
report.

## Propose

```
bun $ANT_CONTRACTS_CLI write knowledge '{"corpus":"<corpus>","fact":"…","source_run_id":"'$ANT_CONTRACTS_RUN_ID'","source_queue_item_id":<q or null>}'
bun $ANT_CONTRACTS_CLI write knowledge_citations '{"knowledge_id":<k>,"citation_id":<c>}'
```

Then surface it for ratification via the queue (the one human channel).
The queue item's `question` is the fact itself, stated as a plain
declarative — NOT wrapped in "Ratify …?" (that reads as a question
about a question). State facts positively; avoid "does not imply" /
double negatives. The ratification ask goes in `context`:

```
bun $ANT_CONTRACTS_CLI write queue_items '{"run_id":"'$ANT_CONTRACTS_RUN_ID'","brief_id":<b>,"round":<r>,"question":"<the fact, plainly>","context":"Proposed knowledge entry #<k> from this run — ratify or reject. Cites <doc.uri>.","blocking":0}'
```

Ratification happens in the chat front-end or inspector (writes
`ratified_by` then `status`). The trigger refuses status=ratified without
`ratified_by`. You never ratify yourself.

More from anthropics/healthcare

SkillDescription
citationsHow to mint a citation. Every fact FKs to a citations row; citations verify against documents.content (never disk) at insert time and are immutable after.
contractsAnswer a question across a corpus of contract documents with verified citations. Use when the user asks what a contract says, which contracts have a clause, what changed between amendments, or any question that needs reading and citing across a set of contract files. The corpus must be on the local filesystem (see README).
fhir-developer-skill>
icd10-cm-skillExtract billable ICD-10-CM diagnosis codes from a clinical note the way a professional coder builds the claim. Use when users say "code this encounter", "assign ICD-10 codes", "what diagnosis codes apply", "code this chart", or when turning clinical documentation into claim-ready diagnosis codes.
prior-auth-review-skillAutomate payer review of prior authorization (PA) requests. This skill should be used when users say "Review this PA request", "Process prior authorization for [procedure]", "Assess medical necessity", "Generate PA decision", or when processing clinical documentation for coverage policy validation and authorization decisions.
queue-triageAfter a sweep round, dedupe and triage worker unknowns into the human queue. Self-resolve the obvious (visibly); blocking items end the round.
reformulateTurn the user's question into a versioned BRIEF (rubric, stated assumptions, done-criteria, scope intent). Use before any sweep. Consults the knowledge index and may pre-scan a few documents to sharpen terms.
sweepFan out over the scoped document set via the saved sweep workflow. Workers full-read their shard and write findings + citations directly via cli.ts. Recall over precision — never skip a scoped doc.
synthesizeAfter sweep rounds settle, turn findings into a report with cited claims, run a sampled semantic audit, and surface knowledge proposals. Analysis happens via scripts, never mental math.