APPLY8 · nf-spectio enabled with NXF_PLUGINS_DEFAULT¶
Running 2026-10-29 · branch autopilot/apply-inbox-69 · Thomas decided inbox #69: the bridge is added by an environment variable set per run, never by -plugins or a config file · fact-check FC-318 to FC-321 · spec review SR-421 to SR-428

Before: autopilot/integration at 925ddb0, where the specs launched Nextflow with -plugins nf-spectio@<ver> and told terminal users to add a plugins block to ~/.nextflow/config (inbox #69 open).
This step is outside pipeline.yaml. Thomas, 2026-10-29, asked for "la solution la plus simple pour la communauté Nextflow de manière générale, sans que cela affecte leur système, si possible, et sans que cela les empêche d'utiliser Seqera Platform" (the simplest solution for the Nextflow community, without affecting their setup if possible, and without stopping them from using Seqera Platform). After the attach verification, he answered: "Ok pour ta recommandation pour la question 2".
What changed¶
Each item: before, then after, then where it now lives.
- The #69 decision. Before:
-plugins nf-spectio@<ver>for launched runs,-pluginsor~/.nextflow/configfor terminal runs. After:NXF_PLUGINS_DEFAULT=nf-spectio@<ver>set per run, never-pluginsor apluginsblock. Architecture §13.8 (Enabling it), §7.3 (0.0.1 prerequisites); inbox #69; decision log. - FC-318 (the list drops less than #69 said). Before: the head script would append
nf-amazon,nf-googleornf-azurefor object-store work directories. After: onlynf-k8s, on 25.10.x withk8s;nf-tower,nf-waveandnf-cloudcacheare kept, so Seqera Platform is unaffected. Architecture §13.8; P1 Task 9. - FC-319 (the code's merge contradicts the Nextflow docs). Before: "an undocumented interface". After: a named Risk item; dev-env §11
nextflow-edge.ymlasserts each week that a declared plugin and the default one both resolve; an upstream issue drafted in the verification, not filed. - FC-320 (a config profile cannot enable the bridge). Before: ui-spec §6 offered a
spectioconfig profile, cli §2 hadengine nextflow config --install. After: ui-spec §6 names the one-shot prefix; cli §2 hasengine nextflow env [--install|--uninstall]. - FC-321 (weblog dates). Before: "deprecated in 26.10". After: deprecated in 25.04, removed in 26.10, not used by Spectio. Synthesis §2 and §10.
- No registry for 0.0.1. Before: the first release waited for the registry name. After: a pinned copy in
$NXF_PLUGINS_DIRstarts with no registry contact; architecture §13.8 (Published), dev-env §15.3.
Spec review (SR-421 to SR-428)¶
- SR-421. Schedulers §4: on 25.10 the head script adds
nf-k8s@<version>toNXF_PLUGINS_DEFAULTinstead of aplugins { id 'nf-k8s@…' }block; the offline pre-install sentence stays. - SR-422. Architecture §13.8 (The plugin copy) and cli §2:
spectio initandspectio engine nextflow envunpack the wheel's jar into$NXF_PLUGINS_DIR/nf-spectio-<ver>/, idempotent, before printing or installing the line; dev-env §15.3 namesspectio initfor the guide; P1 Task 9test_init_unpacks_nf_spectio. What a run does when the directory is missing is [to be validated]. - SR-423. The profile export is opt-in:
spectio loginprints the one-shot line and offers the export, default no;engine nextflow env --installwrites one marked block to~/.bashrc(bash) or~/.zshrc(zsh),--uninstallremoves it. ui-spec §6 links §13.8 instead of restating it. - SR-424. Dev-env §15.3 (Runs started from a terminal): the note is now "Revised 2026-10-29", and the registry and PyPI are needed only once the guide installs the published bridges.
- SR-425. The 0.0.1 cluster figure
mvp001_cluster: the head's tmux pane showsNXF_PLUGINS_DEFAULT=nf-spectio@<ver>thennextflow run ...; re-rendered, both PNGs opened. - SR-426. The
spectio doctorcheck is defined once, in §13.8: warn onfalse, a list withoutnf-spectio, another version, apluginsblock namingnf-spectioin$NXF_HOME/config, ork8son 25.10.x; fail when the plugin directory is missing. Architecture §7.3 Operator commands lists it; P1 Task 8's test matches. - SR-427. §13.8: never a
pluginsblock in any config file, including Spectio's own-c .spectio/spectio.config; P1test_head_script_nextflow_argsasserts that file has none. - SR-428. The decision-log entry has a Reverses: line: the
-pluginspart of inbox #35 (architecture §7.3) and the Enabling-it mechanism of the 2026-10-28 terminal-runs entry. - The three open questions (opt-in export, Spectio deposits the jar, doctor fails loudly) are recorded in inbox #69 as assumed from the decision — pending Thomas.
- Spec review, round 2: approve on
6883057with three minors, applied: SR-429 (schedulers §4: the dev cluster passesnf-k8swith-plugins, and 26.10 bundles it,modules/nf-cli-v1/build.gradle:18), SR-430 (P1 Task 9 namescli/init.pyandtest_init.py::test_init_unpacks_nf_spectio, also in Step 2), SR-431 (a Corrected line under the verification record's Status).
Why¶
Most nf-core pipelines pin their own plugins, and Nextflow keeps one plugin list per run. Every route that names the bridge in Nextflow's configuration either replaces the pipeline's pins or is silently replaced by them. The environment variable is the only route that adds the bridge, it touches nothing on the user's system beyond one run, and Seqera Platform's nf-tower is still added after it.
Evidence¶
- Sources: Nextflow
v26.10.4(691b821) andv25.10.9(64d39b0), read and run on 2026-10-29 on a toy pipeline pinningnf-schema@2.7.2; every claim carries file:line in the verification record. - Docs gate:
python3 tools/docs/check.py --base origin/autopilot/integrationreports 0 failures. - Strict build:
uvx --with mkdocs-material mkdocs build --strictexits 0; the decision-log anchor2026-10-29-nf-spectio-is-enabled-with-nxf_plugins_default-set-per-runexists in the built site. - Mermaid: no diagram added or changed.
- Before:
git show 925ddb0:docs/specs/architecture-plugins-and-packaging.md(§13.8 Enabling it). After:git diff 925ddb0 -- docs/specs docs/plans docs/decisions docs/reviews/inbox.md tools/diagrams.
Figures and media¶
nextflow-attach(above), new:tools/diagrams/nextflow_attach.py, entrynextflow-attachindocs/assets/media.yaml; light and dark PNGs opened.mvp001_cluster, changed (SR-425): the head's tmux pane, re-rendered withpython3 tools/diagrams/mvp001_cluster.py; light and dark PNGs opened.- The figures of the historical step pages T2 and APPLY5 still show
-plugins, as records of those steps.
Findings and open questions¶
- Assumed from the decision (inbox #69): the opt-in export and its profile rule; Spectio deposits the jar; doctor fails when the directory is missing.
- [to be validated]:
- how a real Seqera Platform launch treats the variable;
awsbatchwith a list;- what a run does when the variable names a version with no local copy and no registry release;
- whether an upstream Nextflow issue already exists;
NXF_PLUGINS_DEFAULTon the EMBL cluster's Nextflow;- whether Platform cloud compute environments need the registry release.