agentleFS
fmschulzfmschulz/omics-skills/skills/bio-workflow-methods-docwriter/SKILL.md

bio-workflow-methods-docwriter

Skill9 starsChanged 4 months agoMITView on GitHub

Generate reproducible Methods from Nextflow, Snakemake, or CWL run artifacts. Use when documenting exact commands, versions, parameters, QC gates, provenance, and outputs.

The file

We split this skill into the rules it gives an agent

2 rules. About 0 are common, 1 is distinctive, and 1 is very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈1

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 1

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Write Methods text and run documentation from real workflow artifacts.

    line 8
  2. Very specific:

    Solution: Use NOT CAPTURED only while assembling a draft.

    line 84

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

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

  1. 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.
  2. Build a draft run_manifest.yaml with the extractor for the engine:
    • Nextflow: extract_nextflow_run.py reads trace.txt and the work/ task folders. --tool-versions is a JSON mapping of process name to {"tool": ..., "version": ...}; --outputs-manifest lists one final output path per line.
    • Snakemake: extract_snakemake_run.py reads a JSONL file with one record per job (rule, status, tool, version, command, inputs, outputs). Assemble it from --printshellcmds logs and the version records; see fixtures/snakemake/jobs.jsonl.
    • CWL: extract_cwl_run.py reads one normalized JSON record (run metadata plus steps and outputs), not a raw CWLProv folder; see fixtures/cwl/provenance.json.
  3. 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 under limitations and do not call the manifest reproducible.
  4. Validate the manifest against schemas/run-manifest.schema.json with validate_run_manifest.py.
  5. Draft METHODS.md from templates/methods_report.md: workflow summary at the top, then inputs, exact rerun command, environment, steps as executed, QC, outputs, and limitations.
  6. 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

TaskAction
Evidence checklistreference/evidence-checklist.md
Standards to align withreference/standards.md
Manifest schemaschemas/run-manifest.schema.json (LinkML source: schemas/workflow-run-schema.yaml)
Drafting templatesMETHODS.md template, paper-summary YAML
Extract a Nextflow draftuv run --script "$METHODS_SKILL/scripts/extract_nextflow_run.py" --help
Extract a Snakemake draftuv run --script "$METHODS_SKILL/scripts/extract_snakemake_run.py" --help
Extract a CWL draftuv run --script "$METHODS_SKILL/scripts/extract_cwl_run.py" --help
Validate manifestuv run --script "$METHODS_SKILL/scripts/validate_run_manifest.py" run_manifest.yaml
Complete example manifestexamples/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, or TBD placeholder 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.txt
uv 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.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.