Skill v1.0.2
currentAutomated scan100/100+22 new, ~1 modified
version: "1.0.2" name: bio-workflow-methods-docwriter description: Generate reproducible Methods from Nextflow, Snakemake, or CWL run artifacts. Use when documenting exact commands, versions, parameters, QC gates, provenance, and outputs.
Bio Workflow Methods Docwriter
Write Methods text and run documentation from real workflow artifacts. Every command, version, and parameter comes from evidence; nothing is inferred.
Instructions
- Collect the evidence package listed in reference/evidence-checklist.md: launch command, configs, engine version, tool versions or container digests, input checksums or accessions, reference and database versions, QC reports, and the final output list.
- Build a draft
run_manifest.yamlwith the extractor for the engine:
- Nextflow:
extract_nextflow_run.pyreadstrace.txtand thework/task folders.--tool-versionsis a JSON mapping of process name to{"tool": ..., "version": ...};--outputs-manifestlists one final output path per line. - Snakemake:
extract_snakemake_run.pyreads a JSONL file with one record per job (rule,status,tool,version,command,inputs,outputs). Assemble it from--printshellcmdslogs and the version records; seefixtures/snakemake/jobs.jsonl. - CWL:
extract_cwl_run.pyreads one normalized JSON record (run metadata plusstepsandoutputs), not a raw CWLProv folder; seefixtures/cwl/provenance.json.
- Fill the remaining fields from evidence only. While drafting, mark a missing value
NOT CAPTURED; the final manifest must not contain it. If the value cannot be recovered, record the gap underlimitationsand do not call the manifest reproducible. - Validate the manifest against schemas/run-manifest.schema.json with
validate_run_manifest.py. - Draft
METHODS.mdfrom templates/methods_report.md: workflow summary at the top, then inputs, exact rerun command, environment, steps as executed, QC, outputs, and limitations. - For manuscript Methods prose, hand the manifest to
/scientific-writing. Keep script names, internal flags, and runtime bookkeeping in Methods or the supplement, not in Results.
Resolve the installed skill once:
METHODS_SKILL="${METHODS_SKILL:-$HOME/.agents/skills/bio-workflow-methods-docwriter}"
Each script declares its dependencies inline (PEP 723), so uv run --script needs no separate environment.
Quick Reference
| Task | Action | |
|---|---|---|
| Evidence checklist | reference/evidence-checklist.md | |
| Standards to align with | reference/standards.md | |
| Manifest schema | schemas/run-manifest.schema.json (LinkML source: schemas/workflow-run-schema.yaml) | |
| Drafting templates | METHODS.md template, paper-summary YAML | |
| Extract a Nextflow draft | uv run --script "$METHODS_SKILL/scripts/extract_nextflow_run.py" --help | |
| Extract a Snakemake draft | uv run --script "$METHODS_SKILL/scripts/extract_snakemake_run.py" --help | |
| Extract a CWL draft | uv run --script "$METHODS_SKILL/scripts/extract_cwl_run.py" --help | |
| Validate manifest | uv run --script "$METHODS_SKILL/scripts/validate_run_manifest.py" run_manifest.yaml | |
| Complete example manifest | examples/run_manifest.example.yaml |
Input Requirements
- Workflow artifacts (Nextflow/Snakemake/CWL logs and configs)
- Tool version records or container digests
- QC reports and output manifests
Output
METHODS.md(agent-authored; workflow summary first, then detailed steps)run_manifest.yaml(machine-readable run manifest)- Artifact contract: schemas/run-manifest.schema.json
- Paper-summary schema: schemas/bio-paper-schema.yaml
Quality Gates
- [ ] No invented commands, versions, or parameters
- [ ] Every step has inputs, outputs, and versions captured
- [ ] Commands were sourced from task scripts, not environment-bearing wrappers, and contain no credentials
- [ ] No
NOT CAPTURED,UNKNOWN, orTBDplaceholder remains in a required field - [ ] Workflow summary appears at top of
METHODS.md - [ ] The final manifest passes
validate_run_manifest.py
Examples
Example 1: Nextflow run to validated manifest
METHODS_SKILL="${METHODS_SKILL:-$HOME/.agents/skills/bio-workflow-methods-docwriter}"uv run --script "$METHODS_SKILL/scripts/extract_nextflow_run.py" \--trace trace.txt --workdir work --out run_manifest.yaml \--run-id rnaseq-2026-02-02 --pipeline-name nf-core/rnaseq --pipeline-version 3.14.0 \--commit-sha <sha> --engine-version <nextflow -version> \--launch-command "<exact launch command>" \--tool-versions tool-versions.json --outputs-manifest outputs.txtuv run --script "$METHODS_SKILL/scripts/validate_run_manifest.py" run_manifest.yaml
Troubleshooting
Issue: Missing tool versions in logs Solution: Use NOT CAPTURED only while assembling a draft. The final validator rejects it; recover the version from provenance or report the missing evidence in limitations without claiming a reproducible manifest.