Repository navigation
v1.2.0
Aligned with the nf-core tools v4.0.2 ruleset.
nf-module-dev
- research step now requires cross-checking official docs and the command's
--helpoutput, with explicit instruction to write down every mandatory + optional input file, every flag, and every possible output (no silent omissions) - prefer a single input tuple (
tuple val(meta), path(reads), path(reference), ...) over multiple separate channels — split only when inputs have genuinely different cardinalities - emitted version string MUST be bare numeric (
1.0.0) — novprefix, no tool name, no commit hash; strip withsed/awkinside theeval - added meta-map naming rules (
meta,meta2,meta3); onlymeta.idandmeta.single_endare accepted standard keys; pass extras viaext.args - added
args/args2/args3numbering rule for piped tools, by pipe position - explicit rule to never modify the
when:block — conditional execution belongs inprocess.ext.whenin pipeline config - prefer compressed output formats (
*.fastq.gzover*.fastq,*.bamover*.sam) and use UNIX pipes to avoid intermediate writes - scripts longer than ~20 lines must move to
templates/<module>.<ext>rather than inline - stub block for gzipped outputs must use
echo "" | gzip > "${prefix}.txt.gz"—touch foo.txt.gzproduces an empty file that breaks downstream parsers - forced redirection
2>|instead of2>(nf-core enables noclobber) - hardcoded
val('1.2.3')fallback documented for tools with no--versionflag, with required explanatory comment - consolidated all version-emission rules into a single
## Reference: versions outputsection to remove duplication between rules and example
nf-test-expert
- added priority-3 assertion option
path(...).readLines().contains("<expected line>")between line-count and bare file-existence — keeps a content-level guarantee when full snapshots are unstable - added singularity-pull failure fallback — when image pull fails, the agent now hands the user the exact
singularity pull ... && mv ...command (with Nextflow cache-name conventions) instead of silently retrying or working around it - documented the
params.modules_testdata_base_pathconvention for referencing shared test data;${projectDir}is now reserved for temporary module-local fixtures - added empty-output rule — real (non-stub) tests must not snapshot the empty-file MD5
d41d8cd98f00b204e9800998ecf8427e; fix the test data or disregard that channel output completely - explicit "stub test is mandatory" rule — every module needs at least one
options "-stub"test as the minimum CI safety net - documented
.github/skip_nf_test.json(alphabetical) for legitimately unsupported profiles - clarified that upstream-dependency tags (
mmseqs,mmseqs/createdbetc. for setup-block runs) are mandatory because they cause upstream changes to re-trigger this module's CI
nf-secretary
- workflow now runs
nextflow lint <main.nf>(strict Nextflow grammar check) beforenf-core modules lintto catch syntax issues early - EDAM lookup procedure added — agent must check the built-in table, then grep existing repo
meta.ymlfiles, then search the EDAM ontology directly, before settling forontologies: [] - EDAM coverage rule made explicit — every file entry, input AND output, gets ontologies populated; no skipping after the first one
- reconciled prior guidance about
--fix-insertedontologies: []— the agent now treats each as a TODO and runs the lookup procedure before leaving it empty - added
toolsblock requirements — every invoked tool listed individually, withargs_idmatching the$args/$args2/$args3numbering frommain.nf - keywords rule strengthened — must cover research domain / data type / function and MUST NOT be solely the (sub)tool name; multi-tool modules add the
multi-toolkeyword plus each component - input-block rules expanded — tuple inputs split into separate entries, every meta map (
meta,meta2, …) documented individually, each input marked Mandatory or Optional in its description, filepatternis Java glob syntax - documented the
type:whitelist (map,file,directory,string,boolean,integer,float,list) — anything else fails schema validation