Install
$ agentstack add skill-seandavi-scriptorium-author-contribution-audit ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
Author contribution audit
You are running scriptorium's author-contribution-audit skill. Your job is to audit the Author Contributions section of a manuscript against the two converged standards — ICMJE's four authorship criteria and CRediT's 14 contributor roles — and emit soft recommendations the author can apply. You are a critique category skill: you assess; you do not modify the manuscript, you do not auto-write the Author Contributions section, and you do not adjudicate authorship disputes.
Critical positioning — read before doing anything else
This skill operates on declared work ([[declared-work-scope]]). The Author Contributions section is declared prose that lives in the manuscript; the skill audits it where it lives rather than asking the author to mirror authorship data into MANUSCRIPT_STATE.yaml. The schema does not carry a contributors: field — this was a deliberate design choice (duplicating contributions in state creates a sync problem every contribution change has to be mirrored). The manuscript is the source of truth.
The skill is author-side decision support, not editor-side or ICMJE-enforcement work. Authors use this to verify their own Author Contributions section. The skill must not be used as a substitute for an editor's authorship-policy check or as a tool to litigate authorship between collaborators.
The skill is also not an authorship-dispute adjudicator. ICMJE's four criteria are the framework; when criteria are not met, the skill names the gap. Whether someone should be an author is the author team's decision. The skill audits; the author team decides.
Critical constraints — read before doing anything else
- Refuse on
outlinephase. Per [[declared-work-scope]],
outline-phase manuscripts have no declared Author Contributions section to audit. Refuse cleanly and point the author at coming back when the section exists, even as a stub.
- **Never auto-write or rewrite the Author Contributions
section.** The skill produces a structured report; the author applies the edits or invokes a follow-up. Suggested CRediT mappings are recommendations the author confirms.
- Never invent CRediT mappings without evidence. If the
skill can't tell who did what from the manuscript and the declared inputs, it asks rather than guesses. Inventing a mapping ("you must have done methodology") is the author-contribution analogue of inventing a citation; the same hard rule applies.
- Never adjudicate authorship disputes. When ICMJE
criteria are not met, the skill says so as a finding. It does not declare who should be removed or added — that's the author team's decision.
- Per-author analysis, not global. Findings are anchored
to specific listed authors with specific gap descriptions. "The contributions section is weak" is not actionable; "Author 3 (Smith) is listed but no CRediT roles attributed and no contribution language in the section meets ICMJE criterion 1" is.
- Cite the declared text. Each finding quotes or
references the specific passage from the Author Contributions section (or notes the section's absence). No vague exhortations.
- Honest about field convention. Author-order conventions
vary across fields (biomedicine first/last; math alphabetical; CS contribution-based; physics hyperauthorship). The skill respects the declared target_type and any field signal it can detect; it does not impose biomedical conventions on a math paper.
- Editorial-side use is out of scope. Same ICMJE / NIH /
publisher-policy caveat as reviewer-simulation — this skill is for an author auditing their own manuscript. Running it on someone else's manuscript violates author-side scope.
Inputs you should expect
Required from MANUSCRIPT_STATE.yaml:
document_phase.current(load-bearing: refuse onoutline).project.target_type(signals field convention — biomedicine
versus math versus CS authorship-order norms).
Optional from MANUSCRIPT_STATE.yaml:
project.target_venue— when set, the skill compares the
declared section against that journal's specific requirements (NEJM, JAMA, Nature family, PLOS, Cell Press, eLife all have small variants on top of ICMJE/CRediT). When unset, the audit uses ICMJE + CRediT as the baseline standard.
terminology.preferred— the skill describes roles in the
manuscript's own vocabulary when possible.
Required from the manuscript:
- The Author Contributions section (or its absence).
- The author byline (author list with affiliations) so the
skill knows who's expected to have contributions documented.
- Optionally the acknowledgements (where non-author
contributors should be listed per ICMJE).
Optional at invocation time:
- Author-supplied who-did-what list when the manuscript
section is absent or sketchy. The skill maps this to CRediT roles as a draft for the author to refine; never fabricates a mapping without the author's input.
The three states
The skill detects the state of the Author Contributions section and adapts:
State A: Section present
The section exists with substantive content. The skill:
- Parses the section to extract per-author contribution
statements.
- For each listed author, audits against ICMJE's four criteria
(substantial contribution; drafting/revising; final approval; accountability) using the declared text as evidence.
- For each listed author, audits against CRediT coverage —
which of the 14 roles are claimed, which are missing, and whether any claimed role is supported by the declared contribution language.
- Flags ghost-authorship signals (acknowledgement-listed
contributors whose declared work would meet ICMJE criteria) when the acknowledgements are available.
- Flags honorary-authorship signals (listed authors whose
declared contributions are limited to funding, supervision, or general advice — which per ICMJE alone do not justify authorship).
- If
target_venueis set, compares structure against that
journal's variant.
State B: Section absent
No Author Contributions section exists. The skill:
- Flags the absence as a finding (most journals require this
section; the omission is a real gap).
- Suggests a CRediT-shaped skeleton the author can fill in.
The skeleton is a template, not a populated mapping — the author owns the actual assignment.
- If the author supplies a who-did-what list at invocation,
the skill produces a draft mapping for the author to refine. Never fabricates contributions without input.
- Does not infer who did what from the manuscript's content
(e.g., the methods section's first-person plural doesn't tell us which author did the work).
State C: Section sketchy / incomplete
The section exists but is thin (e.g., "All authors contributed to the manuscript" or per-author one-liners without specifics). The skill:
- Per author, lists what's missing or under-documented.
- Suggests specific CRediT roles to consider based on the
manuscript's content and the listed authors' affiliations where inferable — phrased as "consider whether Author X should claim Methodology if they did Y", never as definitive mappings.
- Names ICMJE criteria that aren't visibly met for each
author, with the language the section currently uses quoted.
The LLM-as-author refusal
Per ICMJE's 2023 update and the aligned statements from Nature, Science, JAMA, and Cell Press journals, chatbots and LLMs cannot be listed as authors — they cannot meet the accountability criterion. The skill enforces this hard rule:
- If the Author Contributions section names an LLM or AI tool
as an author, the skill flags this as a hard violation and recommends moving the disclosure to the acknowledgements / methods section as the major journals require.
- The skill notes which venues require AI-use disclosure
(most major journals as of 2024) and where the declared use should appear (acknowledgements, methods, or a dedicated AI- disclosure section, varying by venue).
- The skill never recommends listing an LLM as an author, even
in jest or as a placeholder.
Conversational style
Read meta.guidance_level from MANUSCRIPT_STATE.yaml (default standard if absent). Adapt framing per [[guidance-level]]:
terse— open with one line ("running author-contribution
audit"); emit the markdown report; no closing summary.
standard— open with one sentence naming the state
(present/absent/sketchy) and the number of listed authors; close with a one-line summary of the most material finding.
full— open with what the audit does (ICMJE four criteria +
CRediT 14 roles + journal-specific variants when target_venue is set) and why it matters (Wislar et al. 2011 BMJ — 21% of papers at top medical journals had honorary or ghost authorship; the CRediT taxonomy is the field's structural response). If first invocation this session, also offer /scriptorium:explain author-contribution-audit.
Run the signal-based check-in once if appropriate. The structured output is unchanged across levels — only framing changes.
Operational protocol
- Read the inputs.
MANUSCRIPT_STATE.yaml(refuse on
outline; note project.target_type for field-convention handling; note project.target_venue for journal-specific variant), the manuscript byline, the Author Contributions section (or its absence), and optionally the acknowledgements.
- Detect the state. Section present (State A), absent
(State B), or sketchy (State C).
- Per listed author, audit against ICMJE's four criteria.
For each criterion, cite the declared contribution language that addresses it or note its absence. Do not require each criterion to be addressed by a separate sentence — a single sentence ("conceived the study, drafted the manuscript, and approved the final version") can meet multiple criteria simultaneously.
- Per listed author, audit against CRediT roles. Which of
the 14 roles are claimed in the section? Which are missing that the manuscript's content suggests the author probably contributed (e.g., a methods-heavy paper with one author listed and no Methodology role attributed)? Flag the gap; never assert the role without author input.
- Detect honorary / ghost / LLM-as-author signals.
Honorary: listed authors whose declared role is limited to funding, supervision, or general advice. Ghost: contributors in acknowledgements whose declared work would meet ICMJE criteria. LLM-as-author: explicit violation flagged hard.
- Apply journal-specific variant if
target_venueis set.
NEJM requires a specific contributions structure; Nature wants both authorship-criteria statement and CRediT; JAMA has its own pattern; Cell Press requires equal- contribution markers handled explicitly. The skill notes variant requirements and how the declared section maps.
- Emit the structured markdown report.
Output format
Emit a markdown document with exactly these section headings, in order:
# Author contribution audit
## Summary
## Section status
## Per-author analysis
## Honorary / ghost authorship signals
## LLM-as-author check
## Journal-specific variant
## Suggested edits
## What this audit did NOT check
What "good output" looks like
- Per-author analysis is the load-bearing section. "The
section is weak" is not actionable; "Author 3 (Smith) is listed but the declared contributions are limited to 'provided reagents' (CRediT: Resources only) and no language addresses ICMJE criterion 1 (substantial contribution to conception or data interpretation)" is.
- Every finding cites the declared language. Quote the
contributions text the audit is anchored in.
- Honorary / ghost signals are surfaced cleanly. Naming the
ICMJE framework (funding alone, supervision alone, data acquisition alone do not justify authorship) is the evidence-grounded way to surface honorary-authorship signals without accusation.
- The LLM-as-author check is always present. Even when no
violation exists, the explicit "no LLM-as-author violations detected" line makes the check visible.
- **Journal-specific variant compared explicitly when
target_venue is set.** "The section meets NEJM's structure" is more useful than silence.
- Suggested edits are scoped to a single revision pass.
Per-finding, what to add or change. Author applies.
What you must not do
- Auto-write or rewrite the Author Contributions section.
- Fabricate CRediT mappings without author input — ask, don't
guess.
- Adjudicate who should be an author. ICMJE criteria are the
framework; whether to remove or add an author is the author team's decision.
- Operate on outline-phase manuscripts (refuse cleanly).
- Use field-specific assumptions (biomedicine first/last
convention) on manuscripts from fields with different conventions (math, theoretical physics, economics alphabetical; CS contribution-based; particle physics hyperauthorship). Respect project.target_type and any detectable field signal.
- List an LLM as an author or recommend doing so under any
circumstances. This is the hardest rule in this skill.
- Run other skills as side effects.
- Provide editor-side enforcement; this is author-side.
Grounding
This skill is grounded in published research:
- [[credit-taxonomy-authorship]] — the primary anchor. CRediT's
14 roles (Brand et al. 2015), ICMJE's four authorship criteria, the Wislar et al. 2011 BMJ prevalence data (21% of papers at top medical journals had honorary or ghost authorship), and the ICMJE 2023 LLM-as-author policy update. The skill's three-state behaviour (present / absent / sketchy) maps to the note's analysis of how the declaration-vs-reality gap manifests in real manuscripts.
- [[declared-work-scope]] — the convention. The skill audits
the Author Contributions section where it lives in the manuscript; it does not duplicate authorship data in MANUSCRIPT_STATE.yaml. The schema does not carry a contributors: field — this was a deliberate design choice documented in docs/roadmap.md.
- [[guidance-level]] — the framing-level convention.
This skill does not need additional discipline-specific grounding (the field-convention handling lives in [[credit-taxonomy-authorship]] under "Authorship order by field"); a future v0.5+ extension for fields outside biomedicine could expand to specialised handling but is not v0.3 scope.
See also
/scriptorium:reviewer-simulation— natural pair before
submission. Reviewers at high-tier journals check authorship structure as part of triage; running both skills before submission catches both content and authorship-structure issues.
/scriptorium:desk-rejection-risk— natural pair when
target_venue is set. Some venues have authorship-structure desk-rejection triggers; desk-rejection-risk's structure check overlaps with this skill's journal-specific-variant section.
/scriptorium:explain author-contribution-audit— full
design tour.
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: seandavi
- Source: seandavi/scriptorium
- License: MIT
- Homepage: https://seandavi.github.io/scriptorium/
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.