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
69 changes: 69 additions & 0 deletions ai-research-redline-packet/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
# AI Research Redline Packet

This module adds a focused AI-assisted research-tool slice for SCIBASE. It does
not try to be another broad paper summarizer or generic citation formatter.
Instead, it produces an evidence-backed pre-submission redline packet that tells
researchers what must be fixed before sharing a manuscript.

The workflow is deterministic and dependency-free, making it suitable for local
review checks, future API handlers, or reviewer-facing demo artifacts.

## What It Covers

- Generates abstract, executive, and layperson summary deltas from a structured
manuscript sample.
- Maps manuscript claims to evidence spans and flags unsupported claims.
- Detects statistical redlines such as missing confidence intervals and
inconsistent p-value language.
- Checks compliance items such as ethics statements and data availability.
- Ranks citation gap recommendations with transparent reasons.
- Routes issues to reviewer templates and creates insertion-ready revision
tasks.
- Includes tests, synthetic sample data, a CLI demo, requirement mapping, and a
short demo video.

## Quick Start

```bash
npm run check
npm test
npm run demo
```

Expected demo summary:

```text
Packet decision: revise-before-submit
Redlines: 5
Revision tasks: 5
Citation recommendations: 3
```

## Repository Layout

```text
ai-research-redline-packet/
data/sample-manuscript.json
docs/demo.svg
docs/demo.mp4
docs/requirement-map.md
scripts/demo.js
src/redline-packet.js
test/redline-packet.test.js
```

## Design Notes

The redline packet sits between AI summarization, AI peer review, and AI
citation assistance:

1. A manuscript is parsed into claims, evidence spans, results, compliance
statements, and citations.
2. Summary modes are generated from the same evidence inventory.
3. Unsupported claims, statistical issues, compliance gaps, and citation gaps
become reviewer-facing redlines.
4. Redlines are converted into concrete revision tasks with insertion targets.
5. The final packet has an audit digest so reviewers can reproduce the decision.

This gives researchers an actionable pre-review artifact rather than a loose AI
chat transcript.
168 changes: 168 additions & 0 deletions ai-research-redline-packet/data/sample-manuscript.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,168 @@
{
"schemaVersion": "ai-redline-packet.v1",
"manuscript": {
"id": "ms-neuro-organoid-response",
"title": "Transcriptomic Response of Neural Organoids to Microfluidic Oxygen Gradients",
"domain": "biology",
"targetJournal": "Nature Biomedical Engineering",
"stage": "pre-submission",
"sections": [
{
"id": "abstract",
"heading": "Abstract",
"text": "We report a microfluidic oxygen-gradient platform for neural organoids. Treated organoids showed increased maturation markers and improved viability after seven days."
},
{
"id": "results",
"heading": "Results",
"text": "Marker GFAP increased by 22 percent after treatment. Organoids had significantly better viability with p = 0.08. The platform eliminates batch effects across all donor lines."
},
{
"id": "methods",
"heading": "Methods",
"text": "Organoids from three donor lines were cultured in a controlled oxygen gradient. Analysis code and raw count tables were deposited with the project repository."
},
{
"id": "ethics",
"heading": "Ethics",
"text": "Human induced pluripotent stem cell lines were obtained from a certified biobank."
}
],
"claims": [
{
"id": "claim-marker-maturation",
"text": "GFAP expression increased by 22 percent after seven days of treatment.",
"sectionId": "results",
"evidenceSpanIds": ["span-gfap-table"],
"citationIds": ["smith-2024-organoid-maturation"],
"importance": "key-finding"
},
{
"id": "claim-viability-significance",
"text": "Treated organoids had significantly better viability.",
"sectionId": "results",
"evidenceSpanIds": ["span-viability-pvalue"],
"citationIds": [],
"importance": "key-finding"
},
{
"id": "claim-eliminates-batch-effects",
"text": "The platform eliminates batch effects across all donor lines.",
"sectionId": "results",
"evidenceSpanIds": [],
"citationIds": [],
"importance": "broad-claim"
},
{
"id": "claim-data-deposited",
"text": "Analysis code and raw count tables were deposited with the project repository.",
"sectionId": "methods",
"evidenceSpanIds": ["span-repository-link"],
"citationIds": ["project-repository-v2"],
"importance": "reproducibility"
}
],
"evidenceSpans": [
{
"id": "span-gfap-table",
"sectionId": "results",
"quote": "Marker GFAP increased by 22 percent after treatment.",
"artifact": "results/gfap-differential-expression.csv",
"confidence": 0.91
},
{
"id": "span-viability-pvalue",
"sectionId": "results",
"quote": "Organoids had significantly better viability with p = 0.08.",
"artifact": "results/viability-analysis.json",
"confidence": 0.72
},
{
"id": "span-repository-link",
"sectionId": "methods",
"quote": "Analysis code and raw count tables were deposited with the project repository.",
"artifact": "metadata/repository-export.json",
"confidence": 0.86
}
],
"statisticalChecks": [
{
"id": "stat-viability-pvalue",
"claimId": "claim-viability-significance",
"metric": "viability",
"pValue": 0.08,
"claimsSignificant": true,
"confidenceInterval": null,
"sampleSize": 3
},
{
"id": "stat-gfap-effect",
"claimId": "claim-marker-maturation",
"metric": "GFAP expression",
"pValue": 0.012,
"claimsSignificant": true,
"confidenceInterval": [0.14, 0.31],
"sampleSize": 3
}
],
"compliance": {
"ethicsStatementPresent": true,
"irbProtocolId": null,
"dataAvailabilityStatementPresent": true,
"codeAvailabilityStatementPresent": true,
"conflictOfInterestPresent": false,
"fundingStatementPresent": true
},
"citations": [
{
"id": "smith-2024-organoid-maturation",
"title": "Organoid maturation markers under controlled oxygen gradients",
"year": 2024,
"style": "Nature",
"supportsClaimIds": ["claim-marker-maturation"]
},
{
"id": "project-repository-v2",
"title": "SCIBASE project repository export preprint-v2",
"year": 2026,
"style": "DataCite",
"supportsClaimIds": ["claim-data-deposited"]
}
],
"candidateCitations": [
{
"id": "lee-2025-donor-batch-effects",
"title": "Donor-line batch effects in neural organoid transcriptomics",
"year": 2025,
"reason": "Needed before making a broad batch-effect claim.",
"claimIds": ["claim-eliminates-batch-effects"]
},
{
"id": "nguyen-2024-viability-statistics",
"title": "Statistical reporting standards for organoid viability assays",
"year": 2024,
"reason": "Supports corrected viability reporting and confidence intervals.",
"claimIds": ["claim-viability-significance"]
},
{
"id": "icmje-2025-ethics-reporting",
"title": "Research ethics and disclosure reporting guidance",
"year": 2025,
"reason": "Helps complete ethics protocol and disclosure statements.",
"claimIds": []
}
]
},
"reviewTemplates": [
{
"id": "biology-pre-submission",
"name": "Biology pre-submission review",
"requiredTopics": ["evidence", "statistics", "ethics", "data-availability", "citations"]
},
{
"id": "statistical-methods",
"name": "Statistical methods review",
"requiredTopics": ["statistics", "sample-size", "effect-size"]
}
]
}
Binary file added ai-research-redline-packet/docs/demo.mp4
Binary file not shown.
55 changes: 55 additions & 0 deletions ai-research-redline-packet/docs/demo.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
40 changes: 40 additions & 0 deletions ai-research-redline-packet/docs/requirement-map.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
# Requirement Map

Issue: SCIBASE-AI/SCIBASE.AI#13, AI-Assisted Research Tools (MVP Level).

## AI Paper Summarizer

The packet emits abstract, executive, and layperson summary modes from the same
structured manuscript evidence. It also reports summary deltas such as how many
key findings, reproducibility claims, and broad claims require review.

## AI Peer Review Aid

The redline engine flags unsupported claims, statistical reporting issues,
missing confidence intervals, ethics protocol gaps, and missing disclosure
statements. Each redline carries severity, insertion target, and evidence digest
so reviewers can audit why it was raised.

## AI Citation Tool

Citation recommendations are ranked against the redlines they would help fix.
The output includes transparent reasons and claim ids, making citations
insertion-ready rather than opaque suggestions.

## Review Templates

The packet routes redlines to domain-specific reviewer templates such as biology
pre-submission review and statistical methods review. This maps AI findings into
review workflows that institutions can standardize.

## Actionable Output

Every redline becomes a revision task with an insertion target and action text.
This supports one-click manuscript editing or PR-like review queues in a future
SCIBASE interface.

## Scope Boundary

This is not another generic summarizer or chatbot transcript. It is a
deterministic pre-submission redline packet that ties summaries, peer-review
diagnostics, citation recommendations, and revision tasks together.
15 changes: 15 additions & 0 deletions ai-research-redline-packet/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
{
"name": "ai-research-redline-packet",
"version": "0.1.0",
"description": "Dependency-free evidence redline packet for AI-assisted research review workflows.",
"private": true,
"scripts": {
"check": "node scripts/demo.js --json > /dev/null",
"demo": "node scripts/demo.js",
"test": "node --test test/*.test.js"
},
"engines": {
"node": ">=18"
},
"license": "MIT"
}
17 changes: 17 additions & 0 deletions ai-research-redline-packet/scripts/demo.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
const fs = require("node:fs");
const path = require("node:path");
const { createRedlinePacket, formatPacketReport } = require("../src/redline-packet");

const manifestPath = path.join(__dirname, "..", "data", "sample-manuscript.json");
const manifest = JSON.parse(fs.readFileSync(manifestPath, "utf8"));
const packet = createRedlinePacket(manifest);

if (process.argv.includes("--json")) {
process.stdout.write(`${JSON.stringify(packet, null, 2)}\n`);
} else {
process.stdout.write(`${formatPacketReport(packet)}\n`);
}

if (packet.decision === "invalid-manifest") {
process.exitCode = 1;
}
Loading