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
2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,2 +1,4 @@
# deepevents.ai
deepevents.ai main codebase

- `ethics-data-availability-checker/` adds ethics, consent, data availability, and reproducibility readiness checks for research review packets.
39 changes: 39 additions & 0 deletions ethics-data-availability-checker/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
# Ethics Data Availability Checker

This module adds a focused research assistant review slice for ethics and data availability readiness.

It covers:

- human-subjects approval, consent scope, vulnerable group, and cross-border data checks
- data availability statements, repository access, embargo, license, and controlled-access handling
- code availability, pinned commit, environment, and reproduction command checks
- claim-to-artifact coverage for manuscript claims that need data or approval evidence
- reviewer actions, release readiness status, signed audit events, and deterministic digests

The implementation is dependency-free and uses synthetic sample data only.

## Run

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

## Demo Assets

- `docs/demo.svg`
- short demo video: `docs/demo.webm`
- `docs/demo.gif`

## API

```js
import {
evaluateEthicsDataAvailability,
renderEthicsDataAvailabilityReport
} from "./src/ethics-data-availability-checker.js";

const result = evaluateEthicsDataAvailability(input);
console.log(renderEthicsDataAvailabilityReport(result));
```
84 changes: 84 additions & 0 deletions ethics-data-availability-checker/data/sample-ethics-input.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
{
"project": {
"id": "proj-neuro-immune-042",
"title": "Neuroimmune Marker Study",
"stage": "pre_submission"
},
"generatedAt": "2026-05-16T16:00:00.000Z",
"signingKey": "sample-review-key",
"ethics": {
"humanSubjects": true,
"approval": {
"status": "approved",
"protocolId": "IRB-2026-1442",
"expiresAt": "2026-05-30"
},
"consent": {
"status": "complete",
"scope": "internal_only"
},
"vulnerablePopulation": true,
"safeguards": [
"deidentified_exports",
"guardian_consent"
],
"crossBorderTransfer": true,
"transferBasis": "institutional_dpa"
},
"dataAvailability": {
"statement": "Participant-level data is available through controlled access after review by the study data access committee.",
"repository": {
"url": "https://data.example.org/studies/neuroimmune-042",
"visibility": "controlled"
},
"accession": "SCIBASE-NEURO-042",
"sensitiveData": true,
"accessCommittee": "Northbridge Data Access Board",
"license": "CC-BY-NC-4.0",
"embargoUntil": "2026-08-01",
"embargoReason": "journal review embargo"
},
"codeAvailability": {
"repository": {
"url": "https://git.example.org/neuroimmune/analysis",
"commit": "2f1c8a9d7b11"
},
"environment": "Dockerfile.sha256:64c983",
"reproductionCommand": "npm run reproduce"
},
"artifacts": [
{
"id": "artifact-cytokine-table",
"type": "dataset",
"checksum": "sha256:af31",
"linkedInManuscript": true
},
{
"id": "artifact-figure-2",
"type": "figure",
"checksum": "sha256:ba84",
"linkedInManuscript": true
}
],
"claims": [
{
"id": "claim-primary-marker",
"text": "Marker CX-17 is associated with relapse risk.",
"requiresData": true,
"requiresEthics": true,
"evidenceArtifactIds": [
"artifact-cytokine-table",
"artifact-figure-2"
]
},
{
"id": "claim-secondary-model",
"text": "The secondary model is ready for external validation.",
"requiresData": true,
"requiresEthics": false,
"evidenceArtifactIds": [
"artifact-missing-model"
]
}
]
}
Binary file added ethics-data-availability-checker/docs/demo.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
27 changes: 27 additions & 0 deletions ethics-data-availability-checker/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.
Binary file added ethics-data-availability-checker/docs/demo.webm
Binary file not shown.
17 changes: 17 additions & 0 deletions ethics-data-availability-checker/docs/requirement-map.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# Requirement Map

Issue #16 asks for research assistant support around pre-release review, reproducibility checks, and useful reviewer guidance.

This slice covers a focused readiness gate:

- **Auto peer review reports:** emits ethics, consent, data, code, and claim-evidence findings with owner/action fields.
- **Reproducibility checker:** validates data repository, pinned code commit, runtime environment, and reproduction command coverage.
- **Research gap finder support:** prevents opportunity and review packets from using claims without linked data or approval evidence.
- **Reviewer workflow:** creates sorted reviewer actions, a deterministic manifest digest, and signed audit events for follow-up.

Out of scope:

- live model calls
- real participant records
- external repository access
- payment or credential handling
17 changes: 17 additions & 0 deletions ethics-data-availability-checker/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
{
"name": "ethics-data-availability-checker",
"version": "1.0.0",
"description": "Ethics and data availability readiness checks for research assistant review packets.",
"type": "module",
"scripts": {
"check": "node --check src/ethics-data-availability-checker.js && node --check scripts/demo.js && node --check test/ethics-data-availability-checker.test.js",
"test": "node --test test/*.test.js",
"demo": "node scripts/demo.js"
},
"keywords": [
"research-review",
"ethics-readiness",
"data-availability"
],
"license": "MIT"
}
11 changes: 11 additions & 0 deletions ethics-data-availability-checker/scripts/demo.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
import { readFile } from "node:fs/promises";
import {
evaluateEthicsDataAvailability,
renderEthicsDataAvailabilityReport
} from "../src/ethics-data-availability-checker.js";

const samplePath = new URL("../data/sample-ethics-input.json", import.meta.url);
const input = JSON.parse(await readFile(samplePath, "utf8"));
const result = evaluateEthicsDataAvailability(input);

console.log(renderEthicsDataAvailabilityReport(result));
Loading