Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
116 commits
Select commit Hold shift + click to select a range
9ca9463
Add multilingual documentation infrastructure
ewels Jan 30, 2026
3420d08
Improve translation infrastructure: model alias, API key check, block…
ewels Jan 30, 2026
b8307cf
Update prettierignore paths for new docs structure
ewels Jan 30, 2026
aa83dfc
Update Netlify config for new docs/en/ structure
ewels Jan 30, 2026
0db7bdd
Update file paths for new docs/en/ structure
ewels Jan 30, 2026
4791ecc
Add build outputs and venv to gitignore
ewels Jan 30, 2026
6aa999c
Simplify dependency management: use uv with inline script deps
ewels Jan 30, 2026
22fa1a5
Fix Docker and Netlify builds for new docs structure
ewels Jan 30, 2026
e89cec3
Clean up unused deps and legacy CARDS env var references
ewels Jan 30, 2026
9f739ae
Add .gitkeep files to ensure translation docs directories exist
ewels Jan 30, 2026
e1536db
Bump mkdocs-quiz minimum version to 1.5.4 for language detection fix
ewels Jan 30, 2026
1f61835
Fix translate.py: resolve paths flexibly and add --include filter
ewels Jan 30, 2026
371a4b5
Update general-llm-prompt.md: clarify context-dependent translation r…
ewels Jan 30, 2026
cbb7089
Add context-dependent translation rules to all language llm-prompt.md…
ewels Jan 30, 2026
d3745b5
Add comprehensive translation documentation and auto-update workflow
ewels Jan 30, 2026
53f89b2
Use Mermaid diagram for translation workflow flow
ewels Jan 30, 2026
1f719ab
Improve translation documentation and LLM prompts
ewels Jan 30, 2026
fc977cb
Improve translation docs: GitHub admonitions, clarify workflow
ewels Jan 30, 2026
6a5f1d5
Add prettier-ignore to preserve GitHub admonition formatting
ewels Jan 30, 2026
73b228e
Render glossary example as table instead of code block
ewels Jan 30, 2026
1fce5be
Add TRANSLATING.md references to CLAUDE.md and .claude/README.md
ewels Jan 30, 2026
21f3660
Add translation reminder to new-lesson and new-module commands
ewels Jan 30, 2026
ef4ca5b
Add German (de) language support
ewels Jan 30, 2026
25759b0
Add Hindi (hi) language support
ewels Jan 30, 2026
feaa0c7
Add Portuguese translation for hello_nextflow course
ewels Jan 30, 2026
196f8c6
Add Portuguese translation for nextflow_run course
ewels Jan 30, 2026
54c0697
Add Italian translation for Hello Nextflow course
ewels Jan 30, 2026
fea35c1
Add Italian translation for nextflow_run course
ewels Jan 30, 2026
b856153
Add Korean translation for Hello Nextflow course
ewels Jan 30, 2026
c2110e6
Add French translation for Hello Nextflow course
ewels Jan 30, 2026
0f3d395
Add Korean translation for nextflow_run course
ewels Jan 30, 2026
3b69c8d
Add French translation for nextflow_run course
ewels Jan 30, 2026
f7843a9
Add Spanish translation for Hello Nextflow course
ewels Jan 30, 2026
9ff7d4f
Add Spanish translation for nextflow_run course
ewels Jan 30, 2026
d0837e1
Add Polish translation for Hello Nextflow course
ewels Jan 30, 2026
7227df7
Add Polish translation for nextflow_run course
ewels Jan 30, 2026
4be2023
Add Turkish translation for Hello Nextflow course
ewels Jan 30, 2026
f597f03
Add Turkish translation for nextflow_run course
ewels Jan 30, 2026
56750e8
Add German translation for hello_nextflow, envsetup, and nextflow_run…
ewels Jan 30, 2026
0449324
Add Hindi translation for hello_nextflow, envsetup, and nextflow_run …
ewels Jan 30, 2026
f28297c
Merge Italian translations
ewels Jan 31, 2026
339b243
Merge Korean translations
ewels Jan 31, 2026
63bab6a
Merge French translations
ewels Jan 31, 2026
0f5f3cd
Merge Spanish translations
ewels Jan 31, 2026
55c0435
Merge Polish translations
ewels Jan 31, 2026
8aabac7
Merge Turkish translations
ewels Jan 31, 2026
d0cd646
Merge German translations
ewels Jan 31, 2026
2b1f4e4
Merge Hindi translations
ewels Jan 31, 2026
f544a11
Fix nextflow_run directory paths and update gitignore
ewels Jan 31, 2026
da975f5
Remove unnecessary .gitkeep files
ewels Jan 31, 2026
db97d0a
Fix check_headings.py to skip code blocks
ewels Jan 31, 2026
d41e872
Fix German index.md formatting to match English
ewels Jan 31, 2026
d4614fa
Fix index.md formatting for all translations
ewels Jan 31, 2026
453dd72
Fix language-picker.js to dynamically detect languages from DOM
ewels Jan 31, 2026
7e28ed2
Remove fallback language list, log error instead
ewels Jan 31, 2026
a0d3082
Add consent-sync.js to share cookie consent across languages
ewels Jan 31, 2026
ee4280d
Sync palette (light/dark mode) across languages too
ewels Jan 31, 2026
73686bb
Sync all MkDocs Material settings across languages
ewels Jan 31, 2026
6c84cfa
Sync settings by intercepting localStorage.setItem
ewels Jan 31, 2026
9d5e6f8
Fix language picker to preserve current page when switching languages
ewels Jan 31, 2026
b87b468
Fix language picker path parsing - don't treat page paths as versions
ewels Jan 31, 2026
58ee171
Fix help.md formatting and add info page translations
ewels Jan 31, 2026
501e566
Use page title for Home nav item
ewels Jan 31, 2026
f79ab18
Set nav titles to 'Home' equivalents in each language
ewels Jan 31, 2026
173a45d
Fix English index.md and improve prettierignore patterns
ewels Jan 31, 2026
5fad725
Improve translation prompts based on human translation analysis
ewels Jan 31, 2026
f75c4f6
Add translations for remaining training content
ewels Jan 31, 2026
8b60fa3
Add AI translation notices to translated pages
ewels Jan 31, 2026
2efa7ed
Add translate icon to page actions on translated pages
ewels Jan 31, 2026
d57aaf5
Move AI translation notice instructions to LLM prompt
ewels Jan 31, 2026
202560a
Fix admonition placement on homepage index.md files
ewels Jan 31, 2026
d951192
Remove duplicate AI translation admonitions from homepage
ewels Jan 31, 2026
a0823df
Reorganize TRANSLATING.md for better navigation
ewels Jan 31, 2026
2e7abb6
Update TRANSLATING.md: remove language table, add flowchart
ewels Jan 31, 2026
caecf5c
Move 'How to Improve' section above 'How Automatic Updates Work'
ewels Jan 31, 2026
de37aad
Fix formatting: remove doubled horizontal rule
ewels Jan 31, 2026
fb59fe0
Update mermaid diagram and add note about fork limitations
ewels Jan 31, 2026
c8c4418
Fix translation issues across all 9 languages
ewels Jan 31, 2026
d238669
Merge branch 'lang' of github.com:nextflow-io/training into lang
ewels Jan 31, 2026
92ea7a2
Fix Portuguese chapter titles to be consistent with other languages
ewels Jan 31, 2026
2497c9b
Fix chapter titles: keep 'Hello X' in English across all languages
ewels Jan 31, 2026
ea11733
Fix Korean Part 1 title consistency (Part → 파트)
ewels Jan 31, 2026
8bc7af9
Consolidate translation guidance in prompts
ewels Jan 31, 2026
c3f5d54
Fix translation inconsistencies across all languages
ewels Jan 31, 2026
961af7e
Final translation review fixes
ewels Jan 31, 2026
c502062
Fix remaining Italian and Turkish code comments
ewels Feb 1, 2026
9057523
language dropdown: lower-case german
ewels Feb 1, 2026
83528f9
Apply reviewer feedback for German and Polish LLM prompts
ewels Feb 1, 2026
140fd1b
Apply Korean reviewer feedback for LLM translation glossary
ewels Feb 1, 2026
e250501
Add translated UI strings for course landing pages and cookie consent
ewels Feb 1, 2026
8da8c7c
Add Hindi UI strings and cookie consent translations
ewels Feb 1, 2026
d732ca9
Simplify German sentence per reviewer feedback
ewels Feb 1, 2026
bc294f7
Fix German translations and language name capitalization
ewels Feb 1, 2026
7d68c8b
Add translated 'View playlist on YouTube' link text for all languages
ewels Feb 1, 2026
281f89c
Apply LLM prompt updates to translated content
ewels Feb 1, 2026
0d80659
Fix language selector dropdown height to show all languages
ewels Feb 2, 2026
edfd102
Fix untranslated 'Part X' text in Korean and Hindi course index tables
ewels Feb 2, 2026
a77d49a
Move commands to skills directory structure
ewels Feb 2, 2026
6ec4d95
Add name field to skill frontmatter
ewels Feb 2, 2026
cbb671e
Dynamically discover languages in GitHub Actions workflows
ewels Feb 2, 2026
366ada1
Add dynamic language discovery for build script and mkdocs language p…
ewels Feb 2, 2026
74b6a7d
Fix sync-language-picker to keep English first
ewels Feb 2, 2026
5aa2659
Improve skill descriptions and reduce verbosity
ewels Feb 2, 2026
735698a
Standardize and deduplicate LLM translation prompts
ewels Feb 2, 2026
c5b4771
Add multi-language support to preview_release.py
ewels Feb 2, 2026
16ebf9d
Add Seqera Studios configuration for training environment
ewels Feb 2, 2026
62767b6
Fix environment.yaml path to be relative to .seqera directory
ewels Feb 2, 2026
3f0a6d4
Remove Python version pin to fix conda dependency resolution
ewels Feb 2, 2026
61ccee6
Remove openjdk dependency (provided by base image)
ewels Feb 2, 2026
9292b40
Bump VS Code studio image to 0.10
FriederikeHanssen Feb 24, 2026
a6b27cb
update registry
FriederikeHanssen Feb 24, 2026
9bacd17
fix template
FriederikeHanssen Feb 24, 2026
ccb3e1d
change to release candidate
FriederikeHanssen Feb 25, 2026
6903e94
Add tree to conda dependencies
FriederikeHanssen Feb 26, 2026
28af321
Remove computeRequirements to allow CE selection at launch
FriederikeHanssen Feb 27, 2026
025bf4b
Add conda to dependencies
FriederikeHanssen Feb 28, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
3 changes: 2 additions & 1 deletion .claude/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -208,7 +208,7 @@ Automatically runs heading validation when you submit a prompt:

4. **Update Navigation**

- Manually edit mkdocs.yml to add new content
- Manually edit `docs/en/mkdocs.yml` to add new content
- Or just ask Claude to update it

5. **Preview Locally**
Expand All @@ -233,5 +233,6 @@ Consider also using:
## Additional Resources

- **CONTRIBUTING.md** - Full contribution guidelines
- **TRANSLATING.md** - Translation guide (all translations are AI-generated)
- **Training Site** - https://training.nextflow.io
- **Nextflow Docs** - https://www.nextflow.io/docs/latest/
Original file line number Diff line number Diff line change
@@ -1,8 +1,13 @@
---
description: Add an exercise with solution to an existing lesson
name: add-exercise
description: Add an interactive exercise with solution to an existing lesson. Creates properly formatted exercise and solution admonition blocks. Use when a lesson needs hands-on practice.
---

Add an exercise with solution to an existing training lesson. Follow these steps:
Add an exercise with solution to an existing training lesson.

See [../shared/repo-conventions.md](../shared/repo-conventions.md) for directory structure and file conventions.

Follow these steps:

1. Ask the user:

Expand Down
9 changes: 2 additions & 7 deletions .claude/skills/check-highlights/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@ description: Verify that hl_lines attributes in markdown code blocks correctly h

Verify that `hl_lines` attributes in markdown code blocks are correctly set to highlight the intended lines.

See [../shared/repo-conventions.md](../shared/repo-conventions.md) for file conventions.

## Critical Understanding

**`hl_lines` is snippet-relative, NOT related to `linenums`**:
Expand All @@ -26,13 +28,6 @@ process FOO { <- displayed as line 21 (snippet line 1)
`
```

## When to Use

- After writing or editing code blocks with highlights
- When reviewing Before/After comparison blocks
- When a user reports highlights look wrong
- As part of lesson review/validation

## How to Check

For each code block with `hl_lines`:
Expand Down
2 changes: 2 additions & 0 deletions .claude/skills/check-inline-code/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@ description: Review inline code in markdown files for proper formatting and synt

Review inline code in markdown files for proper formatting and appropriate use of syntax highlighting.

See [../shared/repo-conventions.md](../shared/repo-conventions.md) for file conventions.

## What to Check

### 1. Missing Backticks
Expand Down
2 changes: 1 addition & 1 deletion .claude/skills/docker-setup/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -200,7 +200,7 @@ docker stop nf-training && docker rm nf-training

## Notes

- Always verify you're in the repository root before starting (check for `mkdocs.yml`)
- Always verify you're in the repository root before starting (check for `docs/en/mkdocs.yml`)
- The container uses `sleep infinity` so it persists across multiple command executions
- Symlink must be recreated each time the container restarts
- For long sessions, periodically check container is still running: `docker ps | grep nf-training`
76 changes: 11 additions & 65 deletions .claude/skills/find-todos/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,25 +12,21 @@ Execute from repository root. See [../shared/repo-conventions.md](../shared/repo
## Tasks to Perform

1. **Search Markdown Files**

- Use Grep to find TODO and FIXME in `docs/**/*.md`
- Capture file path, line number, and full comment
- Note context (which module/lesson)

2. **Search Nextflow Scripts**

- Find TODO/FIXME in `**/*.nf` files
- Distinguish between training examples and solution code
- Note if in core examples or side-quests

3. **Search Configuration Files**

- Check `mkdocs.yml`
- Check `docs/en/mkdocs.yml`
- Check `.github/**/*.yml` and `.github/**/*.py`
- Check `CONTRIBUTING.md`

4. **Categorize Results**

- **High Priority**: Marked as FIXME, TODO(urgent), or blocking
- **Documentation**: TODOs in markdown files
- **Code**: TODOs in .nf or .py files
Expand All @@ -42,82 +38,32 @@ Execute from repository root. See [../shared/repo-conventions.md](../shared/repo

## Output Format

Provide an organized report:

````
```
# TODO/FIXME Report

## Summary
- Total items: 23
- High priority: 3
- Documentation: 15
- Code: 4
- Configuration: 1
Total items, High priority count, by category (Documentation/Code/Configuration)

## High Priority Items

### docs/hello_nextflow/03_hello_workflow.md:156
```markdown
<!-- FIXME: Update this example for DSL2 syntax -->
````
[List FIXME and urgent items with file:line and context]

## Documentation TODOs

### By File

**docs/side_quests/debugging.md** (5 items)

- Line 45: TODO: Add example of common error message
- Line 89: TODO: Include screenshot of trace report
- ...

**docs/nf4_science/genomics/01_per_sample_variant_calling.md** (3 items)

- Line 234: TODO: Verify this command works with latest GATK
- ...
[Group by file with line numbers]

## Code TODOs

### hello-nextflow/hello-world.nf:23

```groovy
// TODO: Add error handling for missing files
```

## Configuration TODOs

### CONTRIBUTING.md:204

Known limitation documented - needs upstream fix in mkdocs plugin
[Group by file with line numbers]

## Recommendations

1. **Immediate attention** (3 items):

- Fix blocking issues in hello_nextflow
- Update genomics examples for latest tools

2. **Next sprint** (8 items):

- Complete debugging module exercises
- Add missing screenshots

3. **Low priority** (12 items):
- Style improvements
- Nice-to-have features
1. Immediate attention: [blocking items]
2. Next sprint: [significant items]
3. Low priority: [nice-to-haves]

## Files with Most TODOs

1. docs/side_quests/debugging.md (5)
2. docs/nf4_science/genomics/01_per_sample_variant_calling.md (3)
3. hello-nextflow/hello-world.nf (2)

[Top 3-5 files]
```

## Notes

- Use Grep tool with pattern `TODO|FIXME` (case insensitive)
- Show enough context to understand what needs doing
- Use Grep with pattern `TODO|FIXME` (case insensitive)
- Distinguish between legitimate TODOs and example comments in training materials
- Provide actionable priorities, not just a list
```
Original file line number Diff line number Diff line change
@@ -1,9 +1,12 @@
---
description: Create a new lesson page within an existing training module
name: new-lesson
description: Create a new numbered lesson page within an existing training module. Use when adding a new topic like '05_error_handling.md' to an existing course.
---

Create a new lesson page within an existing training module.

See [../shared/repo-conventions.md](../shared/repo-conventions.md) for directory structure and file conventions.

**Note**: A "module" is a complete training course (like "Hello Nextflow" or "Side Quests"), while a "lesson" is a single numbered page within that module (like "01_hello_world.md").

Follow these steps:
Expand Down Expand Up @@ -99,10 +102,11 @@ process EXAMPLE {
- Clear explanations for beginners

5. Remind the user to:
- Add the lesson to `mkdocs.yml` nav section in the correct module
- Add the lesson to `docs/en/mkdocs.yml` nav section in the correct module
- Create corresponding Nextflow example scripts if needed
- Add solution files for any exercises in `[module]/solutions/`
- Test any Nextflow examples before committing
- Run heading validation: `uv run .github/check_headings.py --fix docs/**/*.md`
- Preview locally with `mkdocs serve` or Docker to verify formatting
- Translations are handled automatically - when merged to master, the translation workflow will create PRs for each language
````
Original file line number Diff line number Diff line change
@@ -1,8 +1,13 @@
---
description: Scaffold a new complete training module with all standard files
name: new-module
description: Scaffold a complete new training module with standard directory structure, index, orientation, lessons, survey, and next-steps files. Use when creating a new course like 'Advanced Pipelines' or a new domain module.
---

Create a new training module in this repository. Follow these steps:
Create a new training module in this repository.

See [../shared/repo-conventions.md](../shared/repo-conventions.md) for directory structure and file conventions.

Follow these steps:

1. Ask the user for:

Expand Down Expand Up @@ -30,11 +35,12 @@ Create a new training module in this repository. Follow these steps:
- Appropriate use of admonitions
- Code examples with proper formatting

4. Add the module to mkdocs.yml navigation structure
4. Add the module to `docs/en/mkdocs.yml` navigation structure

5. Remind the user to:
- Create any associated Nextflow example scripts in the root-level directory
- Add Excalidraw diagrams if needed
- Test all examples thoroughly
- Run validation tools before committing
- Preview the site locally
- Translations are handled automatically - when merged to master, the translation workflow will create PRs for each language
28 changes: 7 additions & 21 deletions .claude/commands/preview.md → .claude/skills/preview/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,12 @@
---
description: Start local preview server to view training materials
name: preview
description: Start local MkDocs preview server to view training material changes. Use when editing documentation, checking formatting, or testing how content renders before committing.
---

Start the local MkDocs preview server to view changes to training materials.

See [../shared/repo-conventions.md](../shared/repo-conventions.md) for directory structure.

**First, check if a server is already running:**

```bash
Expand All @@ -16,27 +19,13 @@ docker ps --filter "ancestor=ghcr.io/nextflow-io/training-mkdocs:latest" --forma
**Start the server using Docker (recommended):**

```bash
docker run --rm -d -p 8000:8000 -v ${PWD}:/docs ghcr.io/nextflow-io/training-mkdocs:latest
```

**Alternative options:**

If you encounter issues with social cards:

```bash
docker run --rm -p 8000:8000 -e 'CARDS=false' -v ${PWD}:/docs ghcr.io/nextflow-io/training-mkdocs:latest
docker run --rm -d -p 8000:8000 -v ${PWD}:/docs -w /docs/docs/en ghcr.io/nextflow-io/training-mkdocs:latest
```

If you have Python environment set up:
**Alternative - using uv:**

```bash
mkdocs serve
```

Or without social cards:

```bash
CARDS=false mkdocs serve
uv run _scripts/docs.py serve
```

**After starting the server:**
Expand All @@ -46,10 +35,7 @@ CARDS=false mkdocs serve
- Check console for any build errors
- Use `/stop-preview` command or Ctrl+C to stop the server

**Note:** The initial build may take a few minutes as it builds documentation in multiple languages (en, pt, es, fr, it, ko). Wait for the "Serving on" message before accessing the site.

**Common issues:**

- If social cards fail, use CARDS=false option
- If port 8000 is busy, use `/stop-preview` to stop other servers
- If changes don't appear, check for markdown syntax errors in the console
23 changes: 8 additions & 15 deletions .claude/skills/run-tutorial/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -85,11 +85,11 @@ Use `TodoWrite` to track progress through phases and sections.
Record any issues found. Do not proceed to Phase 2 until validation completes.
```

### Phase 2: Progressive Execution (Core Unique Value)
### Phase 2: Progressive Execution

**CRITICAL**: Complete ALL steps (2.1-2.6) for EACH section before moving to the next section. Do NOT batch multiple sections together. The entire point of this skill is to catch issues that only appear when following the tutorial step-by-step.
Complete steps 2.1-2.6 for each section before moving to the next. Do not batch sections together.

For each numbered section in the lesson (0, 1, 2, 3...):
For each numbered section in the lesson:

#### 2.1 Read and Understand

Expand All @@ -99,13 +99,11 @@ For each numbered section in the lesson (0, 1, 2, 3...):

#### 2.2 Verify Current State Matches "Before"

**This is the key unique check**: Before applying any code change:
Before applying any code change:

1. Read the current file content using the `Read` tool
1. Read the current file content
2. Compare with the "Before" block in the documentation
3. If they don't match, **STOP and report the discrepancy**
- This catches issues where earlier steps didn't work correctly
- This catches documentation that skipped steps
3. If they don't match, stop and report the discrepancy

#### 2.3 Apply Code Changes Progressively

Expand All @@ -125,16 +123,13 @@ For each numbered section in the lesson (0, 1, 2, 3...):
- Compare console output with documented "Output" blocks
- See [references/acceptable-differences.md](references/acceptable-differences.md) for what to flag vs. ignore

#### 2.6 Confirm Section Complete Before Proceeding
#### 2.6 Confirm Section Complete

**MANDATORY**: Before moving to the next section:
Before moving to the next section:

1. Verify the workflow/script ran successfully (exit code 0)
2. Confirm output matches documentation (within acceptable differences)
3. Update `TodoWrite` to mark section complete
4. Only then proceed to section N+1

**Why this matters**: Skipping incremental testing defeats the purpose of this skill. A tutorial might work when you jump to the final solution but fail at intermediate steps - exactly the bugs learners encounter.

### Phase 3: Final Verification

Expand Down Expand Up @@ -207,8 +202,6 @@ Categorize as Critical / Warning / Minor
Table with file, line, current, proposed, reason
```

**IMPORTANT**: Always read actual section headings from the document. Do not guess.

---

## Special Cases
Expand Down
Loading
Loading