Draft, revise, and audit scientific manuscripts or reports with explicit evidence provenance, reporting-guideline coverage, authorship accountability, confidentiality controls, and local consistency checks. Use for manuscript sections, references, declarations, tables, figures, or submission preparation when scientific accuracy and traceability matter.
npx skills add https://github.com/K-Dense-AI/scientific-agent-skills --skill scientific-writing
Produce clear scientific prose without inventing evidence or concealing uncertainty.
Keep drafting, evidence verification, and submission approval as separate stages.
The accountable human authors control scientific decisions and final approval. AI is
not an author, and generated fluency is never evidence [SW-S01, SW-S03].
Do not send unpublished manuscripts, peer-review or editorial material, sensitive or
restricted data, PHI or other personal data, proprietary content, or source documents
to an external service without:
legal, and data-use policy.
When authorization or policy is unclear, keep processing local and use only the minimum
metadata needed. De-identification requires expert review; removing obvious names is
not sufficient. See references/authorship_ai_confidentiality.md.
Never invent or complete:
uncertainty, statistical tests, or significance claims;
deviations;
Use an explicit missing, unverified, or not-applicable state. Do not substitute plausible
boilerplate.
Every factual or numeric manuscript claim must map to verified evidence IDs. A human
verifier must open the source, confirm the proposition and locator, verify bibliographic
metadata, and record who verified it and when.
Search snippets, generated summaries, memory, and another work's bibliography may aid
discovery but do not verify a claim. See references/evidence_workflow.md.
they belong to the study record.
Before drafting, obtain or mark unresolved:
Do not ask for restricted source material if metadata or a local user-run audit is
sufficient.
For a new draft, optionally generate fail-closed Markdown, JSON, and CSV scaffolds:
python3 scripts/scaffold_manuscript.py \
--output-dir ./draft-workspace \
--document-id local-draft \
--study-design randomized_trial \
--guideline consort-2025
The generator never overwrites files. Its output is explicitly not submission-ready and
contains placeholders that the linter rejects.
Choose by actual design and article type, then open the current official statement,
checklist, explanation document, extensions, and target-journal instructions.
python3 scripts/select_reporting_guidelines.py select \
--study-design randomized_trial
Current major routes researched on 2026-07-24 include CONSORT 2025, SPIRIT 2025,
PRISMA 2020, STROBE, STARD and STARD-AI, TRIPOD+AI, CARE, ARRIVE 2.0, SQUIRE 2.0,
and CHEERS 2022 [SW-S06–SW-S18].
The selector is non-scoring. It does not certify quality, compliance, completeness, or
acceptance. See references/reporting_guidelines.md.
Assign:
E IDs to sources in source_manifest.json;C IDs to claims in claims.csv;N, M, O, and R IDs to numeric facts, methods, outcomes, and results inconsistency_manifest.json.
Store a hash of claim text in CSV rather than raw claim text. During drafting, append:
[claim:C001] [evidence:E001,E002]
Do not mark a source verified until an accountable human has opened it and confirmed
the exact support.
Outline only from recorded evidence:
Keep unsupported content in an unresolved-issues list, not manuscript prose.
Transform the verified outline into venue-appropriate prose. Preserve all IDs during
drafting.
Use IMRAD only when appropriate. Structured abstracts, lists, combined sections, and
alternative structures depend on study design and venue. See
references/imrad_structure.md and references/writing_principles.md.
Record repeated numeric facts and method-result mappings, then run:
python3 scripts/check_consistency.py consistency_manifest.json
Resolve every mismatch manually. A changed value may be a legitimate analysis-set
difference, but that difference must be named rather than silently normalized.
python3 scripts/validate_manifest.py source_manifest.json \
--kind source --require-verified
python3 scripts/audit_claims.py manuscript.md claims.csv source_manifest.json
python3 scripts/check_references.py source_manifest.json
The reference checker validates syntax and duplicate identifiers without network
resolution. A human must still compare every identifier and quotation with the opened
source. Follow NLM *Citing Medicine* or the current official style required by the
venue [SW-S20, SW-S21].
Use journal criteria for authorship. Record the standardized CRediT roles as
contribution metadata; CRediT does not itself define authorship [SW-S19].
If AI was used, humans must verify all affected content and disclose the tool and
purpose according to current journal and publisher policy. ICMJE's January 2026
Recommendations require transparency and retain human accountability [SW-S01, SW-S02].
python3 scripts/validate_authorship.py authorship.json
Do not generate a disclosure from assumptions. See
references/authorship_ai_confidentiality.md.
Verify each statement independently:
Be as open as rights and responsibilities permit, but do not expose confidential,
personal, proprietary, licensed, or protected information. Record actual access
conditions. See references/research_integrity_open_science.md.
Figures and tables are optional and provenance-bound. This skill does not generate
images or schematics.
For every retained display:
See references/figures_tables.md.
Record each bundled high-level topic as addressed, not applicable with rationale, or
missing:
python3 scripts/select_reporting_guidelines.py check reporting_coverage.json
Then complete the official checklist using actual manuscript locations. Never claim
adherence merely because the local coverage file passes.
python3 scripts/validate_manifest.py manuscript_manifest.json --kind manuscript
python3 scripts/lint_manuscript.py manuscript.md \
--manifest manuscript_manifest.json
The linter reports issue codes and line numbers without echoing manuscript text.
Sensitive-content warnings require manual review and are not a de-identification
certificate.
Only accountable humans may:
submission_ready to true;Treat reviewer material as confidential. Do not upload it to an external service without
the required authorization and policy review [SW-S01, SW-S24].
For each requested change:
Do not comply with a request that would fabricate, hide, overstate, or breach policy.
COPE's 2017 Core Practices were retired in 2024. As of 2026-07-24, COPE announced that
a replacement Code of Conduct would be published in 2026; do not describe the archived
Core Practices as current membership standards [SW-S04, SW-S05]. Distinguish formal
COPE positions from discussion documents, webinars, comments, and case advice.
The former LaTeX assets were removed because a generic polished template could allow
plausible placeholders to ship. Use the Markdown scaffold and structured records.
Apply the target venue's current controlled template only after verification.
See:
assets/REPORT_FORMATTING_GUIDE.mdreferences/professional_report_formatting.mdreferences/journal_policies.mdFormatting cannot convert an incomplete evidence record into a submission-ready paper.
assets/manuscript_scaffold.mdassets/manuscript_manifest_template.jsonassets/source_manifest_template.jsonassets/claim_evidence_template.csvassets/consistency_manifest_template.jsonassets/authorship_template.jsonassets/reporting_coverage_template.jsonassets/reporting_guidelines.jsonscripts/scaffold_manuscript.pyscripts/validate_manifest.pyscripts/select_reporting_guidelines.pyscripts/audit_claims.pyscripts/check_consistency.pyscripts/check_references.pyscripts/validate_authorship.pyscripts/lint_manuscript.pyAll scripts are local, deterministic, bounded, dependency-free, and network-free. See
references/cli_reference.md.
references/evidence_workflow.mdreferences/writing_principles.mdreferences/imrad_structure.mdreferences/citation_styles.mdreferences/reporting_guidelines.mdreferences/figures_tables.mdreferences/authorship_ai_confidentiality.mdreferences/research_integrity_open_science.mdreferences/journal_policies.mdreferences/professional_report_formatting.mdreferences/cli_reference.mdreferences/source_ledger.mdGuide users through a structured workflow for co-authoring documentation. Use when user wants to write documentation, proposals, technical specs, decision docs, or similar structured content. This workflow helps users efficiently transfer context, refine content through iteration, and verify the doc works for readers. Trigger when user mentions writing docs, creating proposals, drafting specs, or similar documentation tasks.
Use when implementing any feature or bugfix, before writing implementation code
Automatically creates user-facing changelogs from git commits by analyzing commit history, categorizing changes, and transforming technical commits into clear, customer-friendly release notes. Turns hours of manual changelog writing into minutes of automated generation.
Use when you have a spec or requirements for a multi-step task, before touching code
Use when creating new skills, editing existing skills, or verifying skills work before deployment
Use when writing or improving README files. Not all READMEs are the same — provides templates and guidance matched to your audience and project type.
This skill should be used when the user asks to "create a hookify rule", "write a hook rule", "configure hookify", "add a hookify rule", or needs guidance on hookify rule syntax and patterns.
| Remove signs of AI-generated writing from text. Use when editing or reviewing text to make it sound more natural and human-written. Based on Wikipedia's inflated symbolism, promotional language, superficial -ing analyses, vague attributions, em dash overuse, rule of three, AI vocabulary words, negative parallelisms, and excessive conjunctive phrases.
Take k-dense-ai/scientific-writing from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.