Skip to content

[ DO NOT MERGE ] Side quest/co scientist#963

Draft
FriederikeHanssen wants to merge 35 commits into
masterfrom
side-quest/co-scientist
Draft

[ DO NOT MERGE ] Side quest/co scientist#963
FriederikeHanssen wants to merge 35 commits into
masterfrom
side-quest/co-scientist

Conversation

@FriederikeHanssen

@FriederikeHanssen FriederikeHanssen commented Jun 15, 2026

Copy link
Copy Markdown
Collaborator

PR currently purely to make commenting easier. Do not merge to master!

FriederikeHanssen and others added 28 commits June 10, 2026 16:46
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Remove em-dash elaborations and backtick process names in the overview.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Normalize run-status casing to lowercase, add a dataset prompt and
checkpoint to the explore-platform page, and flag the chat URL and
status casing for verification.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Renumber pages to make room for an agent-literacy page and rename the
testing page to cover skills. Update nav, cross-links, objectives, and
time estimate (~3h).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Add verify-the-change and verify-the-diff/PR steps to development and
fix pages, and remove em-dash elaborations from the agent-literacy page.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Distinguish grounding from intent, flag the MCP log-reading claim, fix
checkpoint tense, clarify the skill-file copy step, and trim a redundant
verify sentence.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The CoScientist docs do not describe MCP as CoScientist's internal
transport. Scope MCP to the Seqera MCP Server (the interface for
external AI assistants) in the concept page, neutralize MCP-as-mechanism
claims elsewhere to 'directly / on your behalf', and reframe the skills
section as 'Enhance CoScientist with your own skills'.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Resolve flags from authoritative sources: exact seqera ai CLI (install,
login, goal mode), documented SKILL.md format under .agents/skills/,
sourced MCP explanation, and the AWS/Bedrock enterprise model. Fix the
non-existent "test profile" (use -profile docker), make the QUANT break
exact (withName memory = 10.MB, OOM exit 137), specify real rnaseq-nf
output files in the snapshot table, and ship a SKILL.md plus an
illustrative QUANT nf-test under solutions/. Ground the capabilities
tour in documented modes, commands, approval, and sessions.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Merge orientation + meet-coscientist + explore-platform into a single
"Meet CoScientist" lesson (7 sections: connect, confirm, capabilities,
MCP, survey, add pipeline, inspect CE), preserving all content except
the enterprise/foundational-model note, which moves to the wrap-up. Drop
the not-yet-true "connected GitHub account" claim and the /seqera-mcp
CLI reference from the web-first lesson. Renumber remaining pages to
six lessons and fix nav, cross-links, and the get-started button.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Replace AI-style section headers and aphorisms (binary contrasts, the
"search box" simile, "drifts"/"grounded"/"course-correct" metaphors,
the tricolon takeaway) with the plainer imperative voice used across the
other side quests.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Rebuild lesson 2 around a concrete user-level exercise: launch rnaseq-nf
with a bad transcriptome parameter, then practise prompting for intent,
verifying the diagnosis against the real error, and redirecting the agent
to fix the launch parameter without touching pipeline code. Every section
now has an action and a checkpoint instead of pure prose.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Make explicit that rnaseq-nf ships its default transcriptome, so the fix
is dropping the bad override rather than sourcing data. Avoids implying
CoScientist needs separate data access.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@netlify

netlify Bot commented Jun 15, 2026

Copy link
Copy Markdown

Deploy Preview for nextflow-training ready!

Name Link
🔨 Latest commit f62dd94
🔍 Latest deploy log https://app.netlify.com/projects/nextflow-training/deploys/6a32dc705e77f90008b8cf86
😎 Deploy Preview https://deploy-preview-963--nextflow-training.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@FriederikeHanssen FriederikeHanssen marked this pull request as draft June 15, 2026 10:14
@FriederikeHanssen FriederikeHanssen changed the title Side quest/co scientist [ DO NOT MERGE ] Side quest/co scientist Jun 15, 2026
@github-actions

github-actions Bot commented Jun 15, 2026

Copy link
Copy Markdown
Contributor

Nextflow linting complete!

⚠️ 35 files had 70 warnings
✅ 189 files had no errors
🔧 136 files would be changed by auto-formatting

💡 Tip: Click filename locations to go directly to that code.

View all 70 issues
Type Location Message
Warning hello-nf-core/solutions/composable-hello/hello.nf:36:5 Emit name should be omitted when there is only one emit
Warning hello-nf-core/solutions/core-hello-part2/subworkflows/local/utils_nfcore_hello_pipeline/main.nf:30:5 Parameter was not used -- prefix with _ to suppress warning
Warning hello-nf-core/solutions/core-hello-part2/subworkflows/local/utils_nfcore_hello_pipeline/main.nf:33:5 Parameter was not used -- prefix with _ to suppress warning
Warning hello-nf-core/solutions/core-hello-part2/subworkflows/local/utils_nfcore_hello_pipeline/main.nf:98:5 Parameter was not used -- prefix with _ to suppress warning
Warning hello-nf-core/solutions/core-hello-part2/subworkflows/local/utils_nfcore_hello_pipeline/main.nf:102:5 Variable was declared but not used
Warning hello-nf-core/solutions/core-hello-part2/subworkflows/nf-core/utils_nextflow_pipeline/main.nf:43:5 Emit name should be omitted when there is only one emit
Warning hello-nf-core/solutions/core-hello-part2/subworkflows/nf-core/utils_nfcore_pipeline/main.nf:16:5 Variable was declared but not used
Warning hello-nf-core/solutions/core-hello-part2/subworkflows/nf-core/utils_nfcore_pipeline/main.nf:20:5 Emit name should be omitted when there is only one emit
Warning hello-nf-core/solutions/core-hello-part2/subworkflows/nf-core/utils_nfschema_plugin/main.nf:72:5 Emit name should be omitted when there is only one emit
Warning hello-nf-core/solutions/core-hello-part2/workflows/hello.nf:43:26 The use of Channel to access channel factories is deprecated -- use channel instead
Warning hello-nf-core/solutions/core-hello-part2/workflows/hello.nf:67:17 Variable was declared but not used
Warning hello-nf-core/solutions/core-hello-part3/subworkflows/local/utils_nfcore_hello_pipeline/main.nf:30:5 Parameter was not used -- prefix with _ to suppress warning
Warning hello-nf-core/solutions/core-hello-part3/subworkflows/local/utils_nfcore_hello_pipeline/main.nf:33:5 Parameter was not used -- prefix with _ to suppress warning
Warning hello-nf-core/solutions/core-hello-part3/subworkflows/local/utils_nfcore_hello_pipeline/main.nf:98:5 Parameter was not used -- prefix with _ to suppress warning
Warning hello-nf-core/solutions/core-hello-part3/subworkflows/local/utils_nfcore_hello_pipeline/main.nf:102:5 Variable was declared but not used
Warning hello-nf-core/solutions/core-hello-part3/subworkflows/nf-core/utils_nextflow_pipeline/main.nf:43:5 Emit name should be omitted when there is only one emit
Warning hello-nf-core/solutions/core-hello-part3/subworkflows/nf-core/utils_nfcore_pipeline/main.nf:16:5 Variable was declared but not used
Warning hello-nf-core/solutions/core-hello-part3/subworkflows/nf-core/utils_nfcore_pipeline/main.nf:20:5 Emit name should be omitted when there is only one emit
Warning hello-nf-core/solutions/core-hello-part3/subworkflows/nf-core/utils_nfschema_plugin/main.nf:72:5 Emit name should be omitted when there is only one emit
Warning hello-nf-core/solutions/core-hello-part3/workflows/hello.nf:44:55 Parameter was not used -- prefix with _ to suppress warning
Warning hello-nf-core/solutions/core-hello-part3/workflows/hello.nf:52:26 The use of Channel to access channel factories is deprecated -- use channel instead
Warning hello-nf-core/solutions/core-hello-part3/workflows/hello.nf:76:17 Variable was declared but not used
Warning hello-nf-core/solutions/core-hello-part4/modules/local/cowpy/main.nf:30:9 Variable was declared but not used
Warning hello-nf-core/solutions/core-hello-part4/subworkflows/local/utils_nfcore_hello_pipeline/main.nf:30:5 Parameter was not used -- prefix with _ to suppress warning
Warning hello-nf-core/solutions/core-hello-part4/subworkflows/local/utils_nfcore_hello_pipeline/main.nf:33:5 Parameter was not used -- prefix with _ to suppress warning
Warning hello-nf-core/solutions/core-hello-part4/subworkflows/local/utils_nfcore_hello_pipeline/main.nf:98:5 Parameter was not used -- prefix with _ to suppress warning
Warning hello-nf-core/solutions/core-hello-part4/subworkflows/local/utils_nfcore_hello_pipeline/main.nf:102:5 Variable was declared but not used
Warning hello-nf-core/solutions/core-hello-part4/subworkflows/nf-core/utils_nextflow_pipeline/main.nf:43:5 Emit name should be omitted when there is only one emit
Warning hello-nf-core/solutions/core-hello-part4/subworkflows/nf-core/utils_nfcore_pipeline/main.nf:16:5 Variable was declared but not used
Warning hello-nf-core/solutions/core-hello-part4/subworkflows/nf-core/utils_nfcore_pipeline/main.nf:20:5 Emit name should be omitted when there is only one emit
Warning hello-nf-core/solutions/core-hello-part4/subworkflows/nf-core/utils_nfschema_plugin/main.nf:72:5 Emit name should be omitted when there is only one emit
Warning hello-nf-core/solutions/core-hello-part4/workflows/hello.nf:49:26 The use of Channel to access channel factories is deprecated -- use channel instead
Warning hello-nf-core/solutions/core-hello-part4/workflows/hello.nf:73:17 Variable was declared but not used
Warning hello-nf-core/solutions/core-hello-part5/modules/local/cowpy/main.nf:30:9 Variable was declared but not used
Warning hello-nf-core/solutions/core-hello-part5/subworkflows/local/utils_nfcore_hello_pipeline/main.nf:30:5 Parameter was not used -- prefix with _ to suppress warning
Warning hello-nf-core/solutions/core-hello-part5/subworkflows/local/utils_nfcore_hello_pipeline/main.nf:33:5 Parameter was not used -- prefix with _ to suppress warning
Warning hello-nf-core/solutions/core-hello-part5/subworkflows/local/utils_nfcore_hello_pipeline/main.nf:97:5 Parameter was not used -- prefix with _ to suppress warning
Warning hello-nf-core/solutions/core-hello-part5/subworkflows/local/utils_nfcore_hello_pipeline/main.nf:101:5 Variable was declared but not used
Warning hello-nf-core/solutions/core-hello-part5/subworkflows/nf-core/utils_nextflow_pipeline/main.nf:43:5 Emit name should be omitted when there is only one emit
Warning hello-nf-core/solutions/core-hello-part5/subworkflows/nf-core/utils_nfcore_pipeline/main.nf:16:5 Variable was declared but not used
Warning hello-nf-core/solutions/core-hello-part5/subworkflows/nf-core/utils_nfcore_pipeline/main.nf:20:5 Emit name should be omitted when there is only one emit
Warning hello-nf-core/solutions/core-hello-part5/subworkflows/nf-core/utils_nfschema_plugin/main.nf:72:5 Emit name should be omitted when there is only one emit
Warning hello-nf-core/solutions/core-hello-part5/workflows/hello.nf:49:26 The use of Channel to access channel factories is deprecated -- use channel instead
Warning hello-nf-core/solutions/core-hello-part5/workflows/hello.nf:73:17 Variable was declared but not used
Warning hello-nf-core/solutions/core-hello-start/subworkflows/local/utils_nfcore_hello_pipeline/main.nf:29:5 Parameter was not used -- prefix with _ to suppress warning
Warning hello-nf-core/solutions/core-hello-start/subworkflows/local/utils_nfcore_hello_pipeline/main.nf:32:5 Parameter was not used -- prefix with _ to suppress warning
Warning hello-nf-core/solutions/core-hello-start/subworkflows/local/utils_nfcore_hello_pipeline/main.nf:68:5 The use of Channel to access channel factories is deprecated -- use channel instead
Warning hello-nf-core/solutions/core-hello-start/subworkflows/local/utils_nfcore_hello_pipeline/main.nf:102:5 Parameter was not used -- prefix with _ to suppress warning
Warning hello-nf-core/solutions/core-hello-start/subworkflows/local/utils_nfcore_hello_pipeline/main.nf:106:5 Variable was declared but not used
Warning hello-nf-core/solutions/core-hello-start/subworkflows/nf-core/utils_nextflow_pipeline/main.nf:43:5 Emit name should be omitted when there is only one emit
Warning hello-nf-core/solutions/core-hello-start/subworkflows/nf-core/utils_nfcore_pipeline/main.nf:16:5 Variable was declared but not used
Warning hello-nf-core/solutions/core-hello-start/subworkflows/nf-core/utils_nfcore_pipeline/main.nf:20:5 Emit name should be omitted when there is only one emit
Warning hello-nf-core/solutions/core-hello-start/subworkflows/nf-core/utils_nfschema_plugin/main.nf:44:5 Emit name should be omitted when there is only one emit
Warning hello-nf-core/solutions/core-hello-start/workflows/hello.nf:18:5 Parameter was not used -- prefix with _ to suppress warning
Warning hello-nf-core/solutions/core-hello-start/workflows/hello.nf:26:26 The use of Channel to access channel factories is deprecated -- use channel instead
Warning hello-nf-core/solutions/core-hello-start/workflows/hello.nf:50:17 Variable was declared but not used
Warning hello-nf-core/solutions/core-hello-start/workflows/hello.nf:54:5 Emit name should be omitted when there is only one emit
Warning side-quests/solutions/debugging/buggy_workflow.nf:91:44 Implicit closure parameter is deprecated, declare an explicit parameter instead
Warning side-quests/solutions/essential_scripting_patterns/main.nf:59:25 Parameter was not used -- prefix with _ to suppress warning
Warning side-quests/solutions/essential_scripting_patterns/main.nf:63:53 Parameter was not used -- prefix with _ to suppress warning
Warning side-quests/solutions/essential_scripting_patterns/main.nf:68:5 Variable was declared but not used
Warning side-quests/solutions/essential_scripting_patterns/main.nf:69:5 Variable was declared but not used
Warning side-quests/solutions/metadata/1.2/main.nf:5:5 Variable was declared but not used
Warning side-quests/solutions/metadata/2.4/main.nf:42:22 Parameter was not used -- prefix with _ to suppress warning
Warning side-quests/solutions/metadata/3.2/main.nf:42:22 Parameter was not used -- prefix with _ to suppress warning
Warning side-quests/solutions/splitting_and_grouping/main.nf:11:25 Parameter was not used -- prefix with _ to suppress warning
Warning side-quests/solutions/splitting_and_grouping/main.nf:14:25 Parameter was not used -- prefix with _ to suppress warning
Warning side-quests/solutions/splitting_and_grouping/main.nf:29:5 Variable was declared but not used
Warning side-quests/solutions/working_with_files/6/main.nf:10:43 Variable was declared but not used
Warning side-quests/solutions/working_with_files/6/main.nf:30:22 Parameter was not used -- prefix with _ to suppress warning
View formatting changes
FileDiff
hello-nextflow/solutions/1-hello-world/hello-world-2.nf
View
@@ -4,7 +4,6 @@
  * Use echo to print 'Hello World!' to a file
  */
 process sayHello {
-
     output:
     path 'output.txt'
 
hello-nextflow/solutions/1-hello-world/hello-world-3.nf
View
@@ -4,7 +4,6 @@
  * Use echo to print 'Hello World!' to a file
  */
 process sayHello {
-
     input:
     val greeting
 
hello-nextflow/solutions/2-hello-channels/hello-channels-1.nf
View
@@ -4,7 +4,6 @@
  * Use echo to print 'Hello World!' to a file
  */
 process sayHello {
-
     input:
     val greeting
 
@@ -29,7 +28,7 @@ workflow {
     main:
     // create a channel for inputs
     greeting_ch = channel.of('Hello Channels!')
-                        .view()
+        .view()
     // emit a greeting
... (truncated)
hello-nextflow/solutions/2-hello-channels/hello-channels-2.nf
View
@@ -4,7 +4,6 @@
  * Use echo to print 'Hello World!' to a file
  */
 process sayHello {
-
     input:
     val greeting
 
@@ -29,7 +28,7 @@ workflow {
     main:
     // create a channel for inputs
     greeting_ch = channel.of('Hello', 'Bonjour', 'Hola')
-                        .view()
+        .view()
     // emit a greeting
... (truncated)
hello-nextflow/solutions/2-hello-channels/hello-channels-3.nf
View
@@ -4,7 +4,6 @@
  * Use echo to print 'Hello World!' to a file
  */
 process sayHello {
-
     input:
     val greeting
 
@@ -28,12 +27,12 @@ workflow {
 
     main:
     // declare an array of input greetings
-    greetings_array = ['Hello','Bonjour','Hola']
+    greetings_array = ['Hello', 'Bonjour', 'Hola']
     // create a channel for inputs
... (truncated)
hello-nextflow/solutions/2-hello-channels/hello-channels-4.nf
View
@@ -4,7 +4,6 @@
  * Use echo to print 'Hello World!' to a file
  */
 process sayHello {
-
     input:
     val greeting
 
@@ -29,11 +28,11 @@ workflow {
     main:
     // create a channel for inputs from a CSV file
     greeting_ch = channel.fromPath(params.input)
-                        .view { csv -> "Before splitCsv: $csv" }
-                        .splitCsv()
-                        .view { csv -> "After splitCsv: $csv" }
... (truncated)
hello-nextflow/solutions/3-hello-workflow/hello-workflow-1.nf
View
@@ -4,7 +4,6 @@
  * Use echo to print 'Hello World!' to a file
  */
 process sayHello {
-
     input:
     val greeting
 
@@ -21,7 +20,6 @@ process sayHello {
  * Use a text replacement tool to convert the greeting to uppercase
  */
 process convertToUpper {
-
     input:
     path input_file
... (truncated)
hello-nextflow/solutions/3-hello-workflow/hello-workflow-2.nf
View
@@ -4,7 +4,6 @@
  * Use echo to print 'Hello World!' to a file
  */
 process sayHello {
-
     input:
     val greeting
 
@@ -21,7 +20,6 @@ process sayHello {
  * Use a text replacement tool to convert the greeting to uppercase
  */
 process convertToUpper {
-
     input:
     path input_file
... (truncated)
hello-nextflow/solutions/3-hello-workflow/hello-workflow-3.nf
View
@@ -4,7 +4,6 @@
  * Use echo to print 'Hello World!' to a file
  */
 process sayHello {
-
     input:
     val greeting
 
@@ -21,7 +20,6 @@ process sayHello {
  * Use a text replacement tool to convert the greeting to uppercase
  */
 process convertToUpper {
-
     input:
     path input_file
... (truncated)
hello-nextflow/solutions/3-hello-workflow/hello-workflow-4.nf
View
@@ -4,7 +4,6 @@
  * Use echo to print 'Hello World!' to a file
  */
 process sayHello {
-
     input:
     val greeting
 
@@ -21,7 +20,6 @@ process sayHello {
  * Use a text replacement tool to convert the greeting to uppercase
  */
 process convertToUpper {
-
     input:
     path input_file
... (truncated)
hello-nextflow/solutions/4-hello-modules/hello-modules-2.nf
View
@@ -7,7 +7,6 @@ include { sayHello } from './modules/sayHello.nf'
  * Use a text replacement tool to convert the greeting to uppercase
  */
 process convertToUpper {
-
     input:
     path input_file
 
@@ -24,7 +23,6 @@ process convertToUpper {
  * Collect uppercase greetings into a single output file
  */
 process collectGreetings {
-
     input:
     path input_files
... (truncated)
hello-nextflow/solutions/4-hello-modules/hello-modules-3.nf
View
@@ -8,7 +8,6 @@ include { convertToUpper } from './modules/convertToUpper.nf'
  * Collect uppercase greetings into a single output file
  */
 process collectGreetings {
-
     input:
     path input_files
     val batch_name
@@ -38,8 +37,8 @@ workflow {
     main:
     // create a channel for inputs from a CSV file
     greeting_ch = channel.fromPath(params.input)
-                        .splitCsv()
-                        .map { line -> line[0] }
+        .splitCsv()
... (truncated)
hello-nextflow/solutions/4-hello-modules/hello-modules-4.nf
View
@@ -18,8 +18,8 @@ workflow {
     main:
     // create a channel for inputs from a CSV file
     greeting_ch = channel.fromPath(params.input)
-                        .splitCsv()
-                        .map { line -> line[0] }
+        .splitCsv()
+        .map { line -> line[0] }
     // emit a greeting
     sayHello(greeting_ch)
     // convert the greeting to uppercase
hello-nextflow/solutions/4-hello-modules/modules/collectGreetings.nf
View
@@ -2,7 +2,6 @@
  * Collect uppercase greetings into a single output file
  */
 process collectGreetings {
-
     input:
     path input_files
     val batch_name
hello-nextflow/solutions/4-hello-modules/modules/convertToUpper.nf
View
@@ -2,7 +2,6 @@
  * Use a text replacement tool to convert the greeting to uppercase
  */
 process convertToUpper {
-
     input:
     path input_file
 
hello-nextflow/solutions/4-hello-modules/modules/sayHello.nf
View
@@ -2,7 +2,6 @@
  * Use echo to print 'Hello World!' to a file
  */
 process sayHello {
-
     input:
     val greeting
 
hello-nextflow/solutions/5-hello-containers/hello-containers-2.nf
View
@@ -20,8 +20,8 @@ workflow {
     main:
     // create a channel for inputs from a CSV file
     greeting_ch = channel.fromPath(params.input)
-                        .splitCsv()
-                        .map { line -> line[0] }
+        .splitCsv()
+        .map { line -> line[0] }
     // emit a greeting
     sayHello(greeting_ch)
     // convert the greeting to uppercase
hello-nextflow/solutions/5-hello-containers/modules/collectGreetings.nf
View
@@ -2,7 +2,6 @@
  * Collect uppercase greetings into a single output file
  */
 process collectGreetings {
-
     input:
     path input_files
     val batch_name
hello-nextflow/solutions/5-hello-containers/modules/convertToUpper.nf
View
@@ -2,7 +2,6 @@
  * Use a text replacement tool to convert the greeting to uppercase
  */
 process convertToUpper {
-
     input:
     path input_file
 
hello-nextflow/solutions/5-hello-containers/modules/sayHello.nf
View
@@ -2,7 +2,6 @@
  * Use echo to print 'Hello World!' to a file
  */
 process sayHello {
-
     input:
     val greeting
 
hello-nextflow/solutions/6-hello-config/hello-config.nf
View
@@ -20,8 +20,8 @@ workflow {
     main:
     // create a channel for inputs from a CSV file
     greeting_ch = channel.fromPath(params.input)
-                        .splitCsv()
-                        .map { line -> line[0] }
+        .splitCsv()
+        .map { line -> line[0] }
     // emit a greeting
     sayHello(greeting_ch)
     // convert the greeting to uppercase
hello-nextflow/solutions/6-hello-config/modules/collectGreetings.nf
View
@@ -2,7 +2,6 @@
  * Collect uppercase greetings into a single output file
  */
 process collectGreetings {
-
     input:
     path input_files
     val batch_name
hello-nextflow/solutions/6-hello-config/modules/convertToUpper.nf
View
@@ -2,7 +2,6 @@
  * Use a text replacement tool to convert the greeting to uppercase
  */
 process convertToUpper {
-
     input:
     path input_file
 
hello-nextflow/solutions/6-hello-config/modules/sayHello.nf
View
@@ -2,7 +2,6 @@
  * Use echo to print 'Hello World!' to a file
  */
 process sayHello {
-
     input:
     val greeting
 
hello-nextflow/solutions/6-hello-config/nextflow.config
View
@@ -6,7 +6,7 @@ conda.enabled = true
 */
 process {
     memory = 1.GB
-    withName: 'cowpy' {
+    withName: cowpy {
         memory = 2.GB
         cpus = 2
     }
@@ -32,11 +32,7 @@ profiles {
     univ_hpc {
         process.executor = 'slurm'
         conda.enabled = true
-        process.resourceLimits = [
-            memory: 750.GB,
... (truncated)
hello-nf-core/solutions/composable-hello/hello.nf
View
@@ -14,9 +14,7 @@ include { collectGreetings } from './modules/collectGreetings.nf'
 include { cowpy } from './modules/cowpy.nf'
 
 workflow HELLO {
-
     take:
-    // channel of greetings
     greeting_ch
 
     main:
hello-nf-core/solutions/composable-hello/main.nf
View
@@ -9,12 +9,12 @@ params.greeting = 'greetings.csv'
 workflow {
     // create a channel for inputs from a CSV file
     greeting_ch = channel.fromPath(params.greeting)
-                        .splitCsv()
-                        .map { line -> line[0] }
+        .splitCsv()
+        .map { line -> line[0] }
 
     // call the imported workflow on the channel of greetings
     HELLO(greeting_ch)
 
     // view the outputs emitted by the workflow
-    HELLO.out.view { output -> "Output: $output" }
+    HELLO.out.view { output -> "Output: ${output}" }
... (truncated)
hello-nf-core/solutions/composable-hello/modules/collectGreetings.nf
View
@@ -10,8 +10,8 @@ process collectGreetings {
     val batch_name
 
     output:
-    path "COLLECTED-${batch_name}-output.txt" , emit: outfile
-    val count_greetings , emit: count
+    path "COLLECTED-${batch_name}-output.txt", emit: outfile
+    val count_greetings, emit: count
 
     script:
     count_greetings = input_files.size()
hello-nf-core/solutions/composable-hello/modules/convertToUpper.nf
View
@@ -13,6 +13,6 @@ process convertToUpper {
 
     script:
     """
-    cat '$input_file' | tr '[a-z]' '[A-Z]' > 'UPPER-${input_file}'
+    cat '${input_file}' | tr '[a-z]' '[A-Z]' > 'UPPER-${input_file}'
     """
 }
hello-nf-core/solutions/composable-hello/modules/cowpy.nf
View
@@ -15,6 +15,6 @@ process cowpy {
 
     script:
     """
-    cat $input_file | cowpy -c "$character" > cowpy-${input_file}
+    cat ${input_file} | cowpy -c "${character}" > cowpy-${input_file}
     """
 }
hello-nf-core/solutions/composable-hello/modules/sayHello.nf
View
@@ -13,6 +13,6 @@ process sayHello {
 
     script:
     """
-    echo '$greeting' > '$greeting-output.txt'
+    echo '${greeting}' > '${greeting}-output.txt'
     """
 }
hello-nf-core/solutions/core-hello-part2/conf/base.config
View
@@ -11,13 +11,13 @@
 process {
 
     // TODO nf-core: Check the defaults for all processes
-    cpus   = { 1      * task.attempt }
-    memory = { 6.GB   * task.attempt }
-    time   = { 4.h    * task.attempt }
+    cpus = { 1 * task.attempt }
+    memory = { 6.GB * task.attempt }
+    time = { 4.h * task.attempt }
 
     errorStrategy = { task.exitStatus in ((130..145) + 104 + 175) ? 'retry' : 'finish' }
-    maxRetries    = 1
-    maxErrors     = '-1'
+    maxRetries = 1
... (truncated)
hello-nf-core/solutions/core-hello-part2/conf/modules.config
View
@@ -12,10 +12,5 @@
 
 process {
 
-    publishDir = [
-        path: { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" },
-        mode: params.publish_dir_mode,
-        saveAs: { filename -> filename.equals('versions.yml') ? null : filename }
-    ]
-
+    publishDir = [path: { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" }, mode: params.publish_dir_mode, saveAs: { filename -> filename.equals('versions.yml') ? null : filename }]
 }
hello-nf-core/solutions/core-hello-part2/conf/test.config
View
@@ -11,21 +11,17 @@
 */
 
 process {
-    resourceLimits = [
-        cpus: 2,
-        memory: '4.GB',
-        time: '1.h'
-    ]
+    resourceLimits = [cpus: 2, memory: '4.GB', time: '1.h']
 }
 
 params {
-    config_profile_name        = 'Test profile'
+    config_profile_name = 'Test profile'
... (truncated)
hello-nf-core/solutions/core-hello-part2/conf/test_full.config
View
@@ -11,7 +11,7 @@
 */
 
 params {
-    config_profile_name        = 'Full test profile'
+    config_profile_name = 'Full test profile'
     config_profile_description = 'Full test dataset to check pipeline function'
 
     // Input data for full size test
hello-nf-core/solutions/core-hello-part2/main.nf
View
@@ -13,9 +13,9 @@
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 */
 
-include { HELLO  } from './workflows/hello'
+include { HELLO } from './workflows/hello'
 include { PIPELINE_INITIALISATION } from './subworkflows/local/utils_nfcore_hello_pipeline'
-include { PIPELINE_COMPLETION     } from './subworkflows/local/utils_nfcore_hello_pipeline'
+include { PIPELINE_COMPLETION } from './subworkflows/local/utils_nfcore_hello_pipeline'
 /*
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     NAMED WORKFLOWS FOR PIPELINE
@@ -26,7 +26,6 @@ include { PIPELINE_COMPLETION     } from './subworkflows/local/utils_nfcore_hell
 // WORKFLOW: Run main analysis pipeline depending on type of input
 //
... (truncated)
hello-nf-core/solutions/core-hello-part2/modules/local/collectGreetings.nf
View
@@ -10,8 +10,8 @@ process collectGreetings {
     val batch_name
 
     output:
-    path "COLLECTED-${batch_name}-output.txt" , emit: outfile
-    val count_greetings , emit: count
+    path "COLLECTED-${batch_name}-output.txt", emit: outfile
+    val count_greetings, emit: count
 
     script:
     count_greetings = input_files.size()
hello-nf-core/solutions/core-hello-part2/modules/local/convertToUpper.nf
View
@@ -13,6 +13,6 @@ process convertToUpper {
 
     script:
     """
-    cat '$input_file' | tr '[a-z]' '[A-Z]' > 'UPPER-${input_file}'
+    cat '${input_file}' | tr '[a-z]' '[A-Z]' > 'UPPER-${input_file}'
     """
 }
hello-nf-core/solutions/core-hello-part2/modules/local/cowpy.nf
View
@@ -7,14 +7,14 @@ process cowpy {
     conda 'conda-forge::cowpy==1.1.5'
 
     input:
-        path input_file
-        val character
+    path input_file
+    val character
 
     output:
-        path "cowpy-${input_file}"
+    path "cowpy-${input_file}"
 
     script:
     """
... (truncated)
hello-nf-core/solutions/core-hello-part2/modules/local/sayHello.nf
View
@@ -13,6 +13,6 @@ process sayHello {
 
     script:
     """
-    echo '$greeting' > '$greeting-output.txt'
+    echo '${greeting}' > '${greeting}-output.txt'
     """
 }
hello-nf-core/solutions/core-hello-part2/nextflow.config
View
@@ -11,30 +11,30 @@ params {
 
     // TODO nf-core: Specify your pipeline's command line flags
     // Input options
-    input                      = null
+    input = null
 
     // Boilerplate options
-    outdir                       = null
-    publish_dir_mode             = 'copy'
-    monochrome_logs              = false
-    help                         = false
-    help_full                    = false
-    show_hidden                  = false
-    version                      = false
... (truncated)
hello-nf-core/solutions/core-hello-part2/subworkflows/local/utils_nfcore_hello_pipeline/main.nf
View
@@ -8,13 +8,13 @@
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 */
 
-include { UTILS_NFSCHEMA_PLUGIN     } from '../../nf-core/utils_nfschema_plugin'
-include { paramsSummaryMap          } from 'plugin/nf-schema'
-include { samplesheetToList         } from 'plugin/nf-schema'
-include { paramsHelp                } from 'plugin/nf-schema'
-include { completionSummary         } from '../../nf-core/utils_nfcore_pipeline'
-include { UTILS_NFCORE_PIPELINE     } from '../../nf-core/utils_nfcore_pipeline'
-include { UTILS_NEXTFLOW_PIPELINE   } from '../../nf-core/utils_nextflow_pipeline'
+include { UTILS_NFSCHEMA_PLUGIN } from '../../nf-core/utils_nfschema_plugin'
+include { paramsSummaryMap } from 'plugin/nf-schema'
+include { samplesheetToList } from 'plugin/nf-schema'
+include { paramsHelp } from 'plugin/nf-schema'
... (truncated)
hello-nf-core/solutions/core-hello-part2/subworkflows/nf-core/utils_nextflow_pipeline/main.nf
View
@@ -10,9 +10,9 @@
 
 workflow UTILS_NEXTFLOW_PIPELINE {
     take:
-    print_version        // boolean: print version
-    dump_parameters      // boolean: dump parameters
-    outdir               //    path: base directory used to publish pipeline results
+    print_version // boolean: print version
+    dump_parameters // boolean: dump parameters
+    outdir //    path: base directory used to publish pipeline results
     check_conda_channels // boolean: check conda channels
 
     main:
@@ -72,10 +72,10 @@ def getWorkflowVersion() {
 //
... (truncated)
hello-nf-core/solutions/core-hello-part2/subworkflows/nf-core/utils_nextflow_pipeline/tests/nextflow.config
View
@@ -1,9 +1,9 @@
 manifest {
-    name            = 'nextflow_workflow'
-    author          = """nf-core"""
-    homePage        = 'https://127.0.0.1'
-    description     = """Dummy pipeline"""
+    name = 'nextflow_workflow'
+    author = """nf-core"""
+    homePage = 'https://127.0.0.1'
+    description = """Dummy pipeline"""
     nextflowVersion = '!>=23.04.0'
-    version         = '9.9.9'
-    doi             = 'https://doi.org/10.5281/zenodo.5070524'
+    version = '9.9.9'
+    doi = 'https://doi.org/10.5281/zenodo.5070524'
... (truncated)
hello-nf-core/solutions/core-hello-part2/subworkflows/nf-core/utils_nfcore_pipeline/main.nf
View
@@ -125,12 +125,12 @@ def paramsSummaryMultiqc(summary_params) {
         }
 
     def yaml_file_text = "id: '${workflow.manifest.name.replace('/', '-')}-summary'\n" as String
-    yaml_file_text     += "description: ' - this information is collected when the pipeline is started.'\n"
-    yaml_file_text     += "section_name: '${workflow.manifest.name} Workflow Summary'\n"
-    yaml_file_text     += "section_href: 'https://github.com/${workflow.manifest.name}'\n"
-    yaml_file_text     += "plot_type: 'html'\n"
-    yaml_file_text     += "data: |\n"
-    yaml_file_text     += "${summary_section}"
+    yaml_file_text += "description: ' - this information is collected when the pipeline is started.'\n"
+    yaml_file_text += "section_name: '${workflow.manifest.name} Workflow Summary'\n"
+    yaml_file_text += "section_href: 'https://github.com/${workflow.manifest.name}'\n"
+    yaml_file_text += "plot_type: 'html'\n"
+    yaml_file_text += "data: |\n"
... (truncated)
hello-nf-core/solutions/core-hello-part2/subworkflows/nf-core/utils_nfcore_pipeline/tests/nextflow.config(truncated)
hello-nf-core/solutions/core-hello-part2/subworkflows/nf-core/utils_nfschema_plugin/main.nf(truncated)
hello-nf-core/solutions/core-hello-part2/workflows/hello.nf(truncated)
hello-nf-core/solutions/core-hello-part3/conf/base.config(truncated)
hello-nf-core/solutions/core-hello-part3/conf/modules.config(truncated)
hello-nf-core/solutions/core-hello-part3/conf/test.config(truncated)
hello-nf-core/solutions/core-hello-part3/conf/test_full.config(truncated)
hello-nf-core/solutions/core-hello-part3/main.nf(truncated)
hello-nf-core/solutions/core-hello-part3/modules/local/collectGreetings.nf(truncated)
hello-nf-core/solutions/core-hello-part3/modules/local/convertToUpper.nf(truncated)
hello-nf-core/solutions/core-hello-part3/modules/local/cowpy.nf(truncated)
hello-nf-core/solutions/core-hello-part3/modules/local/sayHello.nf(truncated)
hello-nf-core/solutions/core-hello-part3/modules/nf-core/find/concatenate/main.nf(truncated)
hello-nf-core/solutions/core-hello-part3/nextflow.config(truncated)
hello-nf-core/solutions/core-hello-part3/subworkflows/local/utils_nfcore_hello_pipeline/main.nf(truncated)
hello-nf-core/solutions/core-hello-part3/subworkflows/nf-core/utils_nextflow_pipeline/main.nf(truncated)
hello-nf-core/solutions/core-hello-part3/subworkflows/nf-core/utils_nextflow_pipeline/tests/nextflow.config(truncated)
hello-nf-core/solutions/core-hello-part3/subworkflows/nf-core/utils_nfcore_pipeline/main.nf(truncated)
hello-nf-core/solutions/core-hello-part3/subworkflows/nf-core/utils_nfcore_pipeline/tests/nextflow.config(truncated)
hello-nf-core/solutions/core-hello-part3/subworkflows/nf-core/utils_nfschema_plugin/main.nf(truncated)
hello-nf-core/solutions/core-hello-part3/workflows/hello.nf(truncated)
hello-nf-core/solutions/core-hello-part4/conf/base.config(truncated)
hello-nf-core/solutions/core-hello-part4/conf/modules.config(truncated)
hello-nf-core/solutions/core-hello-part4/conf/test.config(truncated)
hello-nf-core/solutions/core-hello-part4/conf/test_full.config(truncated)
hello-nf-core/solutions/core-hello-part4/main.nf(truncated)
hello-nf-core/solutions/core-hello-part4/modules/local/collectGreetings.nf(truncated)
hello-nf-core/solutions/core-hello-part4/modules/local/convertToUpper.nf(truncated)
hello-nf-core/solutions/core-hello-part4/modules/local/cowpy.nf(truncated)
hello-nf-core/solutions/core-hello-part4/modules/local/cowpy/main.nf(truncated)
hello-nf-core/solutions/core-hello-part4/modules/local/sayHello.nf(truncated)
hello-nf-core/solutions/core-hello-part4/modules/nf-core/find/concatenate/main.nf(truncated)
hello-nf-core/solutions/core-hello-part4/nextflow.config(truncated)
hello-nf-core/solutions/core-hello-part4/subworkflows/local/utils_nfcore_hello_pipeline/main.nf(truncated)
hello-nf-core/solutions/core-hello-part4/subworkflows/nf-core/utils_nextflow_pipeline/main.nf(truncated)
hello-nf-core/solutions/core-hello-part4/subworkflows/nf-core/utils_nextflow_pipeline/tests/nextflow.config(truncated)
hello-nf-core/solutions/core-hello-part4/subworkflows/nf-core/utils_nfcore_pipeline/main.nf(truncated)
hello-nf-core/solutions/core-hello-part4/subworkflows/nf-core/utils_nfcore_pipeline/tests/nextflow.config(truncated)
hello-nf-core/solutions/core-hello-part4/subworkflows/nf-core/utils_nfschema_plugin/main.nf(truncated)
hello-nf-core/solutions/core-hello-part4/workflows/hello.nf(truncated)
hello-nf-core/solutions/core-hello-part5/conf/base.config(truncated)
hello-nf-core/solutions/core-hello-part5/conf/modules.config(truncated)
hello-nf-core/solutions/core-hello-part5/conf/test.config(truncated)

FriederikeHanssen and others added 4 commits June 15, 2026 12:36
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Replace the contrived QUANT out-of-memory break/debug/fix arc with a
constructive developer journey, removing the redundant second failure
(the user-level debugging journey in lesson 2 is the only staged
failure). New CLI-based arc:

- 03 Develop on the CLI: switch to the CLI (why-CLI + install), fork
  rnaseq-nf, add a fastp step via an nf-core module, run it.
- 04 Test, add CI, and open a PR: nf-tests (goal mode, snapshot
  stability), an nf-test GitHub Actions workflow, open the PR.
- 05 Build a reusable skill: package the nf-test workflow as a skill.

Delete the old development/debugging/fix-and-pr/testing-and-skills
lessons; update nav, cross-links, and objectives.

Also from review: remove the unsupportable MCP-as-transport claim from
lesson 1, deduplicate the lesson 2 intro, and add the bi-directional
"Explain with AI" round-trip (Platform to CoScientist) to lesson 2.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Web-first developer journey then an explicit CLI switch, plus content
fixes from Slack review, a structure/content review, and validation
against the real seqera CLI:

- Lessons: 01 Meet CoScientist (web; adds a pipeline overview + mermaid
  DAG, drops the redundant "how it reaches assets" section), 02 Working
  with the agent (web; user-level failure fix, bidirectional "Explain
  with AI"), 03 Develop with CoScientist (web; GitHub key, fork, add a
  fastp step via an nf-core module, open a PR), 04 Move to the CLI
  (why-CLI, install, pipeline-level nf-test, snapshot stability, goal
  mode, GHA workflow, update the PR), 05 Build a reusable skill.
- Rename/replace old development/debugging/fix/testing lessons; update
  nav, cross-links, and objectives.
- Remove the unsupportable MCP-as-transport claim; move the enterprise
  foundational-model note to the wrap-up; motivate each lesson intro.
- Make the skill scope-agnostic (process or pipeline) to match the
  pipeline-level test; ship solutions/pipeline.nf.test and an updated
  SKILL.md.

CLI facts validated against seqera 1.10.0 (seqera ai/-c, approval modes,
/goal, Plan/Goal modes, SKILL.md, /nextflow-config).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- Confirm the chat URL and embed the landing screenshot (img/chat-landing.png)
- Name the Workspace selector in the top nav; drop its flags (visible in landing shot)
- Embed the Explain with AI screenshot (img/explain-with-ai.png)
- Narrow the lesson-2 failure flag (fast INDEX failure confirmed; overridden-param launch still to verify)
- Lesson 3 step 2: the user forks rnaseq-nf manually rather than via CoScientist

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
FriederikeHanssen and others added 3 commits June 17, 2026 17:53
- Skills (lesson 5): SKILL.md files are loaded as SESSION CONTEXT, not
  exposed as slash commands (only backend skills are). Rewrite "Use the
  skill" so you don't /-invoke it; you ask for a test and it follows your
  rules. Add the mkdir+touch step. (Confirmed against the actual docs.)
- Lesson 4: restructure into "Fork the repository" (clone + checkout the
  fastp branch) and "Install the CLI"; restore admonition formatting a
  formatter had mangled; ground the branch-name pattern.
- Resolve TODOs: Launchpad screenshot (#5), overridden-param launch (#6),
  GitHub token mechanism (#8/#9), fastp/PR flow (#10), PR screenshot (#13).

Remaining: web goal mode (#11), generated GHA workflow (#12), Typeform (#14).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants