Skip to content

Comments

Add developer guidelines and CLAUDE.md#2144

Open
FriederikeHanssen wants to merge 6 commits intodevfrom
feat/developer-guidelines
Open

Add developer guidelines and CLAUDE.md#2144
FriederikeHanssen wants to merge 6 commits intodevfrom
feat/developer-guidelines

Conversation

@FriederikeHanssen
Copy link
Contributor

Summary

  • Add docs/DEVELOPER_GUIDELINES.md — comprehensive reference for contributing to sarek, covering code style (Harshil alignment, strict syntax, topic channels), channel operations, meta map handling, module/subworkflow patterns, configuration, testing, documentation requirements, and PR checklist
  • Add CLAUDE.md at repo root pointing to the guidelines, plus agent-specific rules
  • Designed for both human developers and AI agents

Details

The guidelines document covers:

  • Contributing principles — read before edit, minimal focused changes
  • Git workflow — branch off origin/dev, naming conventions, PR targets
  • Code style — Harshil alignment, strict Nextflow syntax, underscore prefix for unused vars
  • Channel operations — join flags, branch/filter over if statements, topic channel migration, scatter-gather pattern
  • Changelog conventions — PR number (not issue number), ascending order, XXX placeholder
  • Configuration — no more if (params.tools...) guards in config files
  • Testing — nf-test patterns, scenario-based structure
  • Documentation — output.md, metro map, citations requirements
  • PR checklist — comprehensive checklist for different change types

Test plan

  • Review document for accuracy against current codebase conventions
  • Verify all code examples are correct and follow stated conventions

🤖 Generated with Claude Code

FriederikeHanssen and others added 3 commits February 20, 2026 11:53
Comprehensive reference covering code style (Harshil alignment, strict
syntax, channel naming), channel operations and gotchas, meta map
handling, module/subworkflow patterns, configuration, testing with
nf-test, documentation requirements, and PR checklist.

Intended for both human developers and AI agents working on sarek.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Move DEVELOPER_GUIDELINES.md to docs/DEVELOPER_GUIDELINES.md
- Add topic channels section (migrating versions collection etc.)
- Remove deprecated if(params.tools) guards from config examples

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add contributing principles, git workflow, and changelog conventions
  to DEVELOPER_GUIDELINES.md so it serves both humans and agents
- Slim CLAUDE.md to a pointer to the guidelines plus agent-only rules

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@nf-core-bot
Copy link
Member

Warning

Newer version of the nf-core template is available.

Your pipeline is using an old version of the nf-core template: 3.5.1.
Please update your pipeline to the latest version.

For more documentation on how to update your pipeline, please see the nf-core documentation and Synchronisation documentation.

@github-actions
Copy link

github-actions bot commented Feb 20, 2026

nf-core pipelines lint overall result: Passed ✅ ⚠️

Posted for pipeline commit eb4f977

+| ✅ 224 tests passed       |+
#| ❔  13 tests were ignored |#
!| ❗   7 tests had warnings |!
Details

❗ Test warnings:

  • pipeline_todos - TODO string in base.config: Check the defaults for all processes
  • pipeline_todos - TODO string in main.nf: Optionally add in-text citation tools to this list.
  • pipeline_todos - TODO string in main.nf: Optionally add bibliographic entries to this list.
  • pipeline_todos - TODO string in main.nf: Only uncomment below if logic in toolCitationText/toolBibliographyText has been filled!
  • schema_lint - Input mimetype is missing or empty
  • schema_description - No description provided in schema for parameter: markduplicates_pixel_distance
  • schema_description - No description provided in schema for parameter: gatk_pcr_indel_model

❔ Tests ignored:

✅ Tests passed:

Run details

  • nf-core/tools version 3.5.1
  • Run at 2026-02-20 11:38:04

FriederikeHanssen and others added 3 commits February 20, 2026 12:16
Document the 6 locations that must be updated when adding a new
variant caller (schema, dispatcher subworkflows, post_variantcalling
lists, individual subworkflow metadata). Missing any of these causes
silent bugs — especially the small_variantcallers list in
post_variantcalling which silently excludes callers from
normalization/filtering/consensus.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Replace vague topic channel guidance with actionable instruction:
  check if installed/updated modules use topics for versions/multiqc,
  and remove explicit .mix() wiring if so
- Add one-PR-one-feature to contributing principles

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add pre-commit requirement to PR checklist in developer guidelines
- Add nf-core conda env and don't-ask-for-confirmation rules to CLAUDE.md

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
│ ├── local/ # Pipeline-specific modules
│ └── nf-core/ # Imported nf-core modules (120+)
├── subworkflows/
│ ├── local/ # Pipeline-specific subworkflows (66)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Probably not worth using actual numbers here, will easily get out of sync

// CORRECT
channel.map({ meta, file -> [meta, file] })

// ALSO CORRECT (trailing closure)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggest dropping this example, even if also correct, since it breaks rule 2 above.

Alternatively, since most .map {, .branch {, .filter {, .set { etc. calls in examples below do not use parentheses, consider dropping this rule

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.

3 participants