evidence_workflow.md
110 lines · skills/scientific-writing/references/evidence_workflow.md at 5f2bc03
Most marks come from matching words in the file, so treat them as pointers.
Evidence and Provenance Workflow
Raw lines 1 to 2Core separation
Drafting and evidence verification are different activities.
- Drafting organizes language from already recorded evidence IDs. A draft may remain incomplete and uncertain.
- Verification requires an accountable human to open the source, confirm the exact support and locator, check bibliographic metadata, and record who verified it and when.
- A fluent sentence is not evidence. Search snippets, generated summaries, memory, and another paper's reference list are discovery aids, not verified support.
Registries
The scaffold creates five linked records:
source_manifest.jsonassigns each source anEID and records identifiers, location, confidentiality class, and verification state.claims.csvassigns each claim aCID, stores a hash rather than raw claim text, and maps the claim to one or more verifiedEIDs.consistency_manifest.jsonbinds numeric facts, methods, outcomes, analysis intent, units, denominators, sample sizes, and result locations.authorship.jsonrecords human authorship criteria, CRediT roles, accountability, declarations, and AI use.reporting_coverage.jsonrecords high-level coverage without scoring or certifying the manuscript.
These registries contain metadata, not full source documents. Do not paste unpublished manuscripts, peer-review files, PHI, sensitive datasets, proprietary content, or source documents into them.
Raw lines 15 to 33Claim markers
Append machine-readable markers to every factual or numeric assertion while drafting:
[claim:C001] [evidence:E001,E002]An alternative citation marker is [@E001]. Keep the claim and evidence markers on the same physical line until the audit passes. Use exactly one claim marker per line. Each line can express a composite claim only when its evidence supports every part. A final publisher conversion may replace evidence IDs with rendered citations only after preserving an auditable mapping.
Verification procedure
For each source:
- Open the authoritative source or record.
- Confirm title, author or organization, publication state, year, and identifiers.
- Record the exact supporting location, such as section, page, table, figure, or registry field.
- Confirm that the source supports the claim's direction, population, intervention or exposure, outcome, time point, and uncertainty.
- Record caveats, retractions, corrections, expressions of concern, or version status.
- Mark the source verified only after a named human completes the check.
For each claim:
- Classify it as factual, numeric, method, result, interpretive, or declaration.
- Remove
[claim:C...],[evidence:E...], and[@E...]markers from the entire physical line, collapse whitespace with" ".join(text.split()), then SHA-256 the UTF-8 bytes and store the lowercase hexadecimal digest inclaims.csv. Preserve case, punctuation, and other Markdown syntax. The bundledaudit_claims.claim_text_hashfunction implements this exact normalization. - Map it to verified evidence IDs.
- Record uncertainty and whether the analysis was confirmatory, exploratory, descriptive, or not applicable.
- Keep unsupported or conflicting claims out of submission-ready prose. If useful, retain them in a clearly marked unresolved-issues log.
Drafting gates
Do not infer or complete missing:
- citations, identifiers, quotations, or source locators;
- data values, denominators, units, sample sizes, or statistical results;
- methods, protocol details, analysis decisions, or deviations;
- approvals, consent, registrations, author contributions, conflicts, funding, or availability statements.
Use explicit missing states. Preserve negative, null, adverse, unexpected, and inconclusive findings. Never convert absence of evidence into evidence of no effect.
Raw lines 75 to 87Final audit
Run:
python3 scripts/validate_manifest.py source_manifest.json --kind source --require-verified
python3 scripts/audit_claims.py manuscript.md claims.csv source_manifest.json
python3 scripts/check_consistency.py consistency_manifest.json
python3 scripts/check_references.py source_manifest.jsonTool output contains IDs and line numbers, not manuscript or source text. A passing machine audit supports review; it does not replace human scientific judgment.
The claim audit compares that digest with the current manuscript line and rejects changed text or multiple claim markers on a line. Re-verify the evidence fit before replacing an old digest. A matching hash detects text changes; it proves neither scientific truth nor that a human performed the recorded verification. Hashes are not encryption and do not anonymize predictable sensitive statements.
The lightweight audit skips headings, comment-start lines, and fenced code; numeric text outside these regions must be tagged. It cannot identify every untagged non-numeric assertion or inspect the contents of linked files. Review those manually.
Raw lines 88 to 110