/claim #16
Summary
Adds a distinct structured-abstract-consistency-assistant/ slice for Scientific Bounty System issue #16.
The assistant evaluates structured manuscript abstracts before AI peer-review packets or editor summaries are shown. It checks required abstract sections, affirmed methods design, negated design wording, source methods/results endpoint availability and reconciliation, negated primary endpoint wording, target-specific sample-size counts, primary endpoint naming, bidirectional result direction, certainty overclaims under exploratory or null-crossing evidence, limitation language, safety/adverse-outcome wording, and deterministic audit evidence.
Hardening Updates
- Holds abstracts when source methods/results evidence packets are missing, so polished abstract text cannot release without authoritative comparison data.
- Holds otherwise complete abstracts with invalid or missing
assessedAt timestamps, so AI peer-review packets cannot release with unauditable structured-abstract timing evidence.
- Holds ISO-looking but calendar-impossible
assessedAt timestamps such as 2026-02-30T10:00:00Z, so JavaScript date normalization cannot release AI peer-review packets with shifted timing evidence.
- Holds present source methods evidence packets that omit
primaryEndpoint, so abstract/results alignment cannot release without a named methods endpoint anchor.
- Holds present source results evidence packets that omit
primaryEndpoint, so generic primary-endpoint claims cannot release without a named results evidence anchor.
- Holds methods/results source endpoint disagreements, so an abstract cannot release by following only one source evidence packet.
- Holds abstracts that mention the expected methods design only to deny it, such as
not a retrospective cohort, so substring matches cannot release contradictory method summaries.
- Holds ordinal measurement wording such as
96th percentile when it appears where manuscript/participant counts are required.
- Holds hyphenated measurement wording such as
96-hour or 96-point when it appears where sample-size counts are required.
- Holds duration/effect measurements such as
96 hours or 96 minutes when they masquerade as count evidence.
- Holds abbreviated scientific/time units such as
96 h, 96 mg, and 96 mmHg when they masquerade as count evidence.
- Holds decimal values such as
0.96 and percentage wording such as 96% unless the actual count is also stated.
- Accepts normal comma-formatted counts such as
1,200 as valid count evidence.
- Blocks generic primary-endpoint wording unless the named endpoint from the result packet is present.
- Holds abstracts that mention the expected primary endpoint only to deny it, such as
not comment triage time, so substring matches cannot release contradictory result summaries.
- Blocks result and conclusion direction drift in both directions, including improvement claims over no-effect/worse evidence and worse/no-effect wording over improved evidence.
- Blocks no-difference and equivalence outcome wording such as
no meaningful difference, no superiority, or outcomes were comparable when the result packet records improvement.
- Blocks result-section or conclusion-section certainty overclaims such as statistically significant, clinically meaningful, robust, proven, or definitive when evidence is exploratory or confidence intervals cross null.
- Treats mixed phrasing such as
not statistically significant but clinically meaningful as an overclaim instead of clearing it through the negated significant phrase.
- Requires specific limitation language beyond weak hedges such as
may when evidence is exploratory or null-crossing.
- Allows accurate adverse-outcome wording when the result packet also records a worse direction, while blocking safety-benefit or negated-safety-concern conclusions over worsened adverse outcomes.
Non-overlap
This is scoped to structured abstract consistency before AI review release. It does not duplicate broad assistant suites, evidence/protocol trace modules, statistics review, research-gap planning, rebuttal packs, ethics/data review, citation context, reporting guidelines, benchmark leakage, figure/table consistency, analysis-variable provenance, domain templates, grant fit, limitations disclosure, uncertainty calibration, supplement readiness, prompt safety, study power, COI/funding, retraction, preregistration, external validity, image integrity, assay-control/calibration, literature freshness, randomization/blinding, Bayesian prior sensitivity, systematic screening drift, sample chain-of-custody, or model-assumption diagnostics slices.
Validation
- Latest impossible-calendar timestamp regression failed before implementation with
release_peer_review_packet instead of hold_peer_review_packet when assessedAt was 2026-02-30T10:00:00Z.
- Latest invalid-assessment-timestamp regression failed before implementation with
release_peer_review_packet instead of hold_peer_review_packet when an otherwise complete abstract used assessedAt: not-a-date.
- Latest missing-methods-endpoint regression failed before implementation with
release_peer_review_packet instead of hold_peer_review_packet when source methods evidence omitted primaryEndpoint but the abstract/results evidence named comment triage time.
- Latest source-endpoint regression failed before implementation with
release_peer_review_packet instead of hold_peer_review_packet when methods evidence named reviewer workload score and results evidence named comment triage time.
- Latest missing-results-endpoint regression failed before implementation with
release_peer_review_packet instead of hold_peer_review_packet when source results evidence omitted primaryEndpoint but the abstract claimed the primary endpoint improved.
- Latest no-difference/equivalence outcome regression failed before implementation with
release_peer_review_packet instead of hold_peer_review_packet when improved result evidence was summarized as no meaningful difference / comparable outcomes.
- Prior abbreviated-unit regression failed before implementation with
release_peer_review_packet instead of hold_peer_review_packet when abstract methods/results used 96 h duration wording where count evidence was required.
- Prior missing-source-evidence regression failed before implementation with
release_peer_review_packet instead of hold_peer_review_packet when a complete abstract lacked source methods/results evidence packets.
- Prior negated-endpoint regression failed before implementation with
release_peer_review_packet instead of hold_peer_review_packet when an abstract stated not comment triage time while the result packet required comment triage time.
- Prior negated-design regression failed before implementation with
release_peer_review_packet instead of hold_peer_review_packet when an abstract stated not a retrospective cohort while the method packet required retrospective cohort.
npm test from structured-abstract-consistency-assistant -> structured-abstract-consistency-assistant tests passed (34).
npm run check -> syntax checks passed for index, sample data, test, and demo files.
npm run demo -> regenerated 23 JSON packets plus Markdown/SVG evidence, including invalid-assessed-at-packet.json and malformed-manuscript-packet.json.
npm run video -> regenerated reports/demo.mp4.
- All 23 generated JSON packets parsed successfully.
ffprobe verified reports/demo.mp4 as H.264, 1280x720, 24 fps, 7.5s, 115,991 bytes.
git diff --check and git diff --cached --check passed; only Windows line-ending normalization warnings appeared before staging.
- Focused restricted-string scan returned no credential, payout, or token strings.
- GitHub PR merge state after push:
CLEAN; no checks are reported for this branch.
Demo Artifacts
structured-abstract-consistency-assistant/reports/blocked-packet.json
structured-abstract-consistency-assistant/reports/revision-packet.json
structured-abstract-consistency-assistant/reports/negated-design-packet.json
structured-abstract-consistency-assistant/reports/negated-primary-endpoint-packet.json
structured-abstract-consistency-assistant/reports/missing-source-evidence-packet.json
structured-abstract-consistency-assistant/reports/result-certainty-packet.json
structured-abstract-consistency-assistant/reports/mixed-certainty-packet.json
structured-abstract-consistency-assistant/reports/conclusion-certainty-packet.json
structured-abstract-consistency-assistant/reports/weak-limitation-packet.json
structured-abstract-consistency-assistant/reports/percentage-sample-size-packet.json
structured-abstract-consistency-assistant/reports/decimal-sample-size-packet.json
structured-abstract-consistency-assistant/reports/duration-sample-size-packet.json
structured-abstract-consistency-assistant/reports/abbreviated-unit-sample-size-packet.json
structured-abstract-consistency-assistant/reports/hyphenated-measurement-sample-size-packet.json
structured-abstract-consistency-assistant/reports/ordinal-sample-size-packet.json
structured-abstract-consistency-assistant/reports/no-difference-outcome-packet.json
structured-abstract-consistency-assistant/reports/missing-results-endpoint-packet.json
structured-abstract-consistency-assistant/reports/missing-methods-endpoint-packet.json
structured-abstract-consistency-assistant/reports/source-endpoint-mismatch-packet.json
structured-abstract-consistency-assistant/reports/invalid-assessed-at-packet.json
structured-abstract-consistency-assistant/reports/impossible-assessed-at-packet.json
structured-abstract-consistency-assistant/reports/clean-packet.json
structured-abstract-consistency-assistant/reports/abstract-consistency-report.md
structured-abstract-consistency-assistant/reports/summary.svg
structured-abstract-consistency-assistant/reports/demo.mp4
Synthetic data only. No external services, credentials, live databases, private manuscripts, or payment data are used.
AI-assisted with OpenAI Codex; I reviewed and locally verified the diff before submitting.