SKILL.md
Evidence Draft
Triggers & routing
- Trigger: evidence draft, evidence pack, claim candidates, concrete comparisons, evidence snippets, provenance, 证据草稿, 证据包, 可引用事实.
Build deterministic outline/evidence_drafts.jsonl packs from briefs + notes + optional evidence bindings.
Compatibility mode is active: this migration preserves the existing JSONL contract while moving evidence-quality policy, sparse-evidence routing, and evaluation-anchor rules into references/ and assets/.
Load Order
Always read:
references/overview.mdreferences/evidencequalitypolicy.md
Read by task:
references/blockvsdowngrade.mdwhen deciding whether thin evidence should block drafting or only downgrade claim strengthreferences/evaluationanchorrules.mdwhen evaluation tokens, protocol context, or numeric claims are weakreferences/examplessparseevidence.mdfor evidence-thin pack calibrationreferences/sourcetexthygiene.mdwhen paper self-narration or generic result wrappers are leaking into pack snippets / claim candidates
Machine-readable assets:
assets/evidencepackschema.jsonassets/evidence_policy.jsonassets/sourcetexthygiene.json- repo-wide
assets/limitation-signals.json— shared polarity rules that keep
resolved failures and positive improvements out of limitation slots
Inputs
Required:
outline/subsection_briefs.jsonlpapers/paper_notes.jsonlcitations/ref.bib
Optional but recommended:
papers/evidence_bank.jsonloutline/evidence_bindings.jsonl
Outputs
Keep the current output contract:
outline/evidence_drafts.jsonl- optional human-readable mirrors under
outline/evidence_drafts/
Script Boundary
Use scripts/run.py only for:
- deterministic joins across briefs / notes / evidence bank / bindings
- snippet extraction and provenance assembly
- policy-driven
blockingmissing/downgradesignals/verify_fieldsmaterialization - pack validation and Markdown mirror generation
Do not treat run.py as the place for:
- filler bullets that make thin evidence look complete
- hidden sparse-evidence judgment that is not inspectable from
references//assets/ - reader-facing narrative prose
Output Shape Rules
Keep these stable:
- preserve the existing top-level pack fields already used by downstream survey pipelines
claim_candidatesmust remain snippet-derivedconcrete_comparisonsmust remain genuinely two-sided; if one cluster has no usable highlight, drop the card and surface thin evidence upstream instead of fabricating an A-vs-B contrast- snippet sampling should stay cluster-aware: when a subsection has explicit clusters, evidence selection should avoid collapsing onto one route just because its abstracts contain louder result sentences
- sparse evidence should surface as explicit blockers / downgrade signals / verify fields, not filler bullets
- citation keys must remain constrained to
citations/ref.bib
Compatibility Notes
Current mode is reference-first with deterministic compatibility:
assets/evidence_policy.jsondefines pack thresholds and sparse-evidence routingassets/evidencepackschema.jsondocuments/validates the stable pack shapeassets/sourcetexthygiene.jsonowns this Skill's wrapper cleanup, while the
repo-wide assets/limitation-signals.json owns limitation polarity across paper-notes, evidence-draft, and writer-context-pack
scripts/run.pystill materializes the existing JSONL + Markdown outputs, but no longer pads sparse sections with generic caution prose
Quick Start
uv run python .codex/skills/evidence-draft/scripts/run.py --workspace <workspace>
Execution Notes
When running in compatibility mode, scripts/run.py currently reads:
outline/subsection_briefs.jsonlpapers/paper_notes.jsonlcitations/ref.bib- optionally
papers/evidencebank.jsonlandoutline/evidencebindings.jsonl assets/evidencepolicy.jsonandassets/evidencepack_schema.json
Script
Quick Start
uv run python .codex/skills/evidence-draft/scripts/run.py --workspace <workspace>
All Options
--workspace <dir>--unit-id <id>--inputs <path1;path2>--outputs <path1;path2>--checkpoint <C*>
Examples
uv run python .codex/skills/evidence-draft/scripts/run.py --workspace <workspace>
Troubleshooting
- If packs look complete despite thin evidence, inspect
assets/evidencepolicy.jsonandreferences/blockvs_downgrade.mdbefore changing Python. - If evaluation bullets are generic, inspect
references/evaluationanchorrules.mdand the policy asset. - If claims are strong but evidence is abstract/title-only, downgrade via
downgradesignalsandverifyfieldsrather than adding narrative caveats.