nextflow-authoring

Write, structure, and debug Nextflow DSL2 workflows and modules following nf-core conventions.

Updated Apr 18, 2026
One-click install
npx skills add https://github.com/ppavlidis/skillz --skill nextflow-authoring-ppavlidis
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: nextflow-authoring
Source: https://github.com/ppavlidis/skillz/tree/main/skills/nextflow-authoring
Command: npx skills add https://github.com/ppavlidis/skillz --skill nextflow-authoring-ppavlidis

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Writing correct, reproducible Nextflow DSL2 pipelines requires deep knowledge of channel semantics, process directives, config hierarchies, and nf-core conventions; this Skill provides that expertise so you avoid common traps like hanging groupTuple calls, silently dropped join items, and broken HPC configs. ## Core Features & Use Cases - Process and Module Authoring: Canonical nf-core module templates with containers, conda, labels, publishDir, errorStrategy, stub blocks, and versions.yml emission. - Channel Operator Guidance: Correct usage of groupTuple, join, branch, splitCsv, multiMap, and scatter-gather patterns, including the pitfalls that cause hangs or silent data loss. - Config, Testing, and Parallelization: Profile setup for SLURM/AWS/local, nf-test module tests with snapshots, nf-schema v2 samplesheets, and resource limits for Nextflow 24.x/25.x. - Use Case: You need to port a DSL1 pipeline to DSL2 with reusable modules, a validated samplesheet, and nf-test coverage; invoke this Skill to get the correct project layout, module templates, and config profiles. ## Quick Start Ask the AI to write a Nextflow DSL2 module for your bioinformatics tool with a stub block, version emission, and an nf-test test file.

Frequently Asked Questions about nextflow-authoring

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I write a Nextflow DSL2 module following nf-core conventions?

Create one process per file with a tag, label, pinned conda and container directives, tuple val(meta), path(files) inputs, emit-named outputs, a versions.yml emission, and a mandatory stub block. Use task.ext.args and task.ext.prefix instead of hardcoded arguments so the module stays configurable and portable.

Why does my Nextflow groupTuple hang and how do I fix it?

groupTuple hangs when it waits for a group that never completes, typically because a sample was dropped upstream and no size was specified. Fix it by passing size: N when group sizes are known, for example groupTuple(by: [0], size: params.n_replicates).

What is the difference between join, combine, and mix in Nextflow channels?

join performs an inner join on a key and drops unmatched items unless remainder: true is set. combine produces a cartesian product of two channels. mix merges channels with non-deterministic ordering, so it must never be used for order-dependent logic.

How do I configure Nextflow profiles for SLURM or AWS Batch?

Define named profiles in nextflow.config setting process.executor to slurm or awsbatch, plus queue, singularity.enabled with autoMounts on HPC, and wave with fusion on AWS. Set executor.queueSize and submitRateLimit to avoid flooding the scheduler.

How do I test Nextflow modules with nf-test?

Create a main.nf.test file next to the module declaring the process, inputs in a when block, and assertions in a then block such as process.success, output channel sizes, and snapshot matching. Run it with nf-test test and include a stub test using the -stub option.

When should I not use this Nextflow authoring skill?

Do not use it for running existing nf-core pipelines on data; that execution-focused work belongs to the nextflow-development skill. This skill covers writing, structuring, and debugging DSL2 code, not pipeline operation.