Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
41 changes: 41 additions & 0 deletions citation-retraction-evidence-guard/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
# Citation Retraction Evidence Guard

Self-contained guard for SCIBASE issue #16, focused on AI-powered research assistant output safety.

The module evaluates synthetic manuscript-assistant packets before auto peer review or research-gap suggestions are released. It prevents AI-generated review text from relying on retracted, contradicted, stale, unsupported, or superseded citations.

## Scope

- citation retraction and expression-of-concern status
- claim-to-citation support direction
- stale evidence windows
- preprint-to-published-version drift
- citation-context evidence presence
- assistant recommendation leakage from unsafe citations
- deterministic reviewer release decisions

## Decisions

- `RELEASE_ASSISTANT_OUTPUT`
- `HOLD_FOR_EDITOR`
- `BLOCK_ASSISTANT_OUTPUT`

## Local Validation

```bash
npm test
npm run demo
node --check src/index.js
node --check scripts/demo.js
node --check test/citationRetractionEvidenceGuard.test.js
git diff --check
```

## Boundaries

- synthetic citation packets only
- no live publisher, Crossref, PubMed, OpenAlex, or Retraction Watch calls
- no private manuscripts
- no credentials
- no external AI APIs
- no production medical or legal review claims
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
# Citation Retraction Evidence Guard Report

Summary: blocks=4, reviews=3, passes=1

## packet:oncology-review-ready

- Manuscript: ms:oncology-review-42
- Decision: RELEASE_ASSISTANT_OUTPUT

| Severity | Code | Message | Remediation |
| --- | --- | --- | --- |
| pass | citation_evidence_ready | Citation evidence is current, unretracted, and aligned with assistant output. | No remediation required. |

## packet:neuro-preprint-review

- Manuscript: ms:neuro-preprint-18
- Decision: HOLD_FOR_EDITOR

| Severity | Code | Message | Remediation |
| --- | --- | --- | --- |
| review | citation_superseded | cite:preprint-2020 appears superseded by cite:journal-2022. | Prefer the current published version or explain why the older version remains relevant. |
| review | background_citation_used_as_support | cite:preprint-2020 is only background evidence for claim:biomarker-generalizes. | Attach direct support or lower the assistant confidence. |

## packet:materials-block

- Manuscript: ms:materials-battery-07
- Decision: BLOCK_ASSISTANT_OUTPUT

| Severity | Code | Message | Remediation |
| --- | --- | --- | --- |
| block | citation_retracted | cite:retracted-2017 is marked retracted. | Remove the citation from supporting evidence or rewrite the assistant note as a retraction warning. |
| review | citation_stale_without_replication | cite:retracted-2017 is older than the configured evidence window and has no recent replication marker. | Attach a recent replication, meta-analysis, or recency caveat. |
| block | retracted_citation_supports_claim | claim:electrolyte-stability is supported by retracted citation cite:retracted-2017. | Remove this evidence path and regenerate the assistant output. |
| block | citation_contradicts_claim | cite:contradiction-2025 is marked as contradicting claim:electrolyte-stability. | Rewrite the assistant note to present the contradiction rather than support the claim. |
| block | assistant_recommends_retracted_citation | Assistant recommends retracted citation cite:retracted-2017. | Regenerate the assistant note with retraction-safe evidence. |
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
{
"generatedAt": "2026-06-13T15:54:40.327Z",
"summary": {
"blocks": 4,
"reviews": 3,
"passes": 1
},
"results": [
{
"packetId": "packet:oncology-review-ready",
"manuscriptId": "ms:oncology-review-42",
"decision": "RELEASE_ASSISTANT_OUTPUT",
"findings": [
{
"severity": "pass",
"code": "citation_evidence_ready",
"message": "Citation evidence is current, unretracted, and aligned with assistant output.",
"remediation": "No remediation required.",
"ref": "packet:oncology-review-ready"
}
]
},
{
"packetId": "packet:neuro-preprint-review",
"manuscriptId": "ms:neuro-preprint-18",
"decision": "HOLD_FOR_EDITOR",
"findings": [
{
"severity": "review",
"code": "citation_superseded",
"message": "cite:preprint-2020 appears superseded by cite:journal-2022.",
"remediation": "Prefer the current published version or explain why the older version remains relevant.",
"ref": "cite:preprint-2020"
},
{
"severity": "review",
"code": "background_citation_used_as_support",
"message": "cite:preprint-2020 is only background evidence for claim:biomarker-generalizes.",
"remediation": "Attach direct support or lower the assistant confidence.",
"ref": "cite:preprint-2020"
}
]
},
{
"packetId": "packet:materials-block",
"manuscriptId": "ms:materials-battery-07",
"decision": "BLOCK_ASSISTANT_OUTPUT",
"findings": [
{
"severity": "block",
"code": "citation_retracted",
"message": "cite:retracted-2017 is marked retracted.",
"remediation": "Remove the citation from supporting evidence or rewrite the assistant note as a retraction warning.",
"ref": "cite:retracted-2017"
},
{
"severity": "review",
"code": "citation_stale_without_replication",
"message": "cite:retracted-2017 is older than the configured evidence window and has no recent replication marker.",
"remediation": "Attach a recent replication, meta-analysis, or recency caveat.",
"ref": "cite:retracted-2017"
},
{
"severity": "block",
"code": "retracted_citation_supports_claim",
"message": "claim:electrolyte-stability is supported by retracted citation cite:retracted-2017.",
"remediation": "Remove this evidence path and regenerate the assistant output.",
"ref": "cite:retracted-2017"
},
{
"severity": "block",
"code": "citation_contradicts_claim",
"message": "cite:contradiction-2025 is marked as contradicting claim:electrolyte-stability.",
"remediation": "Rewrite the assistant note to present the contradiction rather than support the claim.",
"ref": "cite:contradiction-2025"
},
{
"severity": "block",
"code": "assistant_recommends_retracted_citation",
"message": "Assistant recommends retracted citation cite:retracted-2017.",
"remediation": "Regenerate the assistant note with retraction-safe evidence.",
"ref": "cite:retracted-2017"
}
]
}
]
}
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
@@ -0,0 +1,120 @@
[
{
"packetId": "packet:oncology-review-ready",
"manuscriptId": "ms:oncology-review-42",
"generatedAt": "2026-06-14",
"claims": [
{
"id": "claim:survival-signal",
"text": "The intervention improves progression-free survival in the target subgroup.",
"evidence": [
{
"citationId": "cite:phase2-2024",
"supportRelation": "supports"
}
]
}
],
"citations": [
{
"id": "cite:phase2-2024",
"title": "Phase 2 subgroup survival analysis",
"doi": "10.1000/safe.2024.11",
"status": "active",
"sourceType": "journal",
"usedAs": "primary_support",
"publishedAt": "2024-04-12",
"hasRecentReplication": true,
"contextQuote": "The subgroup analysis showed improved progression-free survival under the prespecified endpoint."
}
],
"assistantNote": {
"text": "Evidence appears aligned, recent, and unretracted for the target subgroup.",
"recommendedCitationIds": ["cite:phase2-2024"]
}
},
{
"packetId": "packet:neuro-preprint-review",
"manuscriptId": "ms:neuro-preprint-18",
"generatedAt": "2026-06-14",
"claims": [
{
"id": "claim:biomarker-generalizes",
"text": "The biomarker generalizes across independent neurodegeneration cohorts.",
"evidence": [
{
"citationId": "cite:preprint-2020",
"supportRelation": "background"
}
]
}
],
"citations": [
{
"id": "cite:preprint-2020",
"title": "Early biomarker cohort preprint",
"doi": "10.1101/2020.01.02.abc",
"status": "superseded",
"sourceType": "preprint",
"usedAs": "primary_support",
"publishedVersionId": "cite:journal-2022",
"publishedAt": "2020-01-02",
"hasRecentReplication": false,
"contextQuote": "The preliminary cohort suggested possible transfer, but the authors called for external validation."
}
],
"assistantNote": {
"text": "The assistant should hold this claim for an editor because the cited preprint was superseded.",
"recommendedCitationIds": ["cite:preprint-2020"]
}
},
{
"packetId": "packet:materials-block",
"manuscriptId": "ms:materials-battery-07",
"generatedAt": "2026-06-14",
"claims": [
{
"id": "claim:electrolyte-stability",
"text": "The electrolyte is stable for 1,000 cycles under high temperature.",
"evidence": [
{
"citationId": "cite:retracted-2017",
"supportRelation": "supports"
},
{
"citationId": "cite:contradiction-2025",
"supportRelation": "contradicts"
}
]
}
],
"citations": [
{
"id": "cite:retracted-2017",
"title": "High-temperature electrolyte cycling",
"doi": "10.1000/retracted.2017.9",
"status": "retracted",
"sourceType": "journal",
"usedAs": "primary_support",
"publishedAt": "2017-09-01",
"hasRecentReplication": false,
"contextQuote": "The original article claimed stability at high temperature but was later retracted."
},
{
"id": "cite:contradiction-2025",
"title": "Independent electrolyte degradation study",
"doi": "10.1000/active.2025.4",
"status": "active",
"sourceType": "journal",
"usedAs": "primary_support",
"publishedAt": "2025-04-18",
"hasRecentReplication": true,
"contextQuote": "The independent study found rapid degradation under the same temperature and cycling protocol."
}
],
"assistantNote": {
"text": "Unsafe draft: cite the older article as positive support for high-temperature stability.",
"recommendedCitationIds": ["cite:retracted-2017"]
}
}
]
11 changes: 11 additions & 0 deletions citation-retraction-evidence-guard/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
{
"name": "citation-retraction-evidence-guard",
"version": "1.0.0",
"private": true,
"description": "Synthetic citation retraction and evidence recency guard for AI research assistant outputs.",
"type": "commonjs",
"scripts": {
"test": "node test/citationRetractionEvidenceGuard.test.js",
"demo": "node scripts/demo.js"
}
}
Loading