Standards and tools for creating, maintaining, and refactoring NIDM-integrated BIDSapps that run through BABS. Use when working with sensein BIDSapp repositories (freesurfer_bidsapp, mriqc-nidm_bidsapp, ants_bidsapp) or creating new BIDSapps. Helps with repository structure consistency, NIDM integration patterns, CLI argument standardization, BIDS-compliant output structures, and BABS configuration.
/plugin marketplace add yibeichan/claude-skills/plugin install yibeichan-claude-skills@yibeichan/claude-skillsThis skill inherits all available tools. When active, it can use any tool Claude has access to.
references/babs_config.mdreferences/cli_arguments.mdreferences/container_patterns.mdreferences/nidm_integration.mdreferences/repo_structure.mdreferences/testing_patterns.mdStandardize BIDSapp repositories with NIDM integration for consistent structure, output formats, and BABS compatibility.
This skill defines standards for BIDSapp repositories that:
All BIDSapp repos follow this structure:
<bidsapp_name>/
├── src/
│ ├── <analysis_name>/ # Main analysis code
│ │ ├── __init__.py
│ │ ├── run.py # Entry point
│ │ └── <analysis>_runner.py
│ └── nidm/ # NIDM conversion (analysis-specific)
│ ├── __init__.py
│ ├── nidm_converter.py
│ └── data/
├── tests/
│ ├── test_<analysis>.py
│ └── test_nidm.py
├── examples/
├── Dockerfile
├── Singularity
├── setup.py
├── requirements.txt
├── VERSION
└── README.md
Standard BIDS arguments (required):
bids_dir - Input BIDS dataset pathoutput_dir - Output directory pathanalysis_level - Must be "participant"--participant-label - Subject ID(s) without "sub-" prefix--session-label - Session ID(s) without "ses-" prefix (optional)Standard NIDM arguments (required):
--nidm-input-dir - Path to existing NIDM files directory--skip-nidm - Skip NIDM conversion--skip-<analysis> - Skip analysis if already run (e.g., --skip-freesurfer, --skip-mriqc, --skip-ants)Analysis-specific arguments (optional):
--fs-license for FreeSurfer, --nprocs for MRIQC)See references/cli_arguments.md for complete specifications.
BIDS-compliant derivatives structure:
<output_dir>/
└── <bidsapp_name>/ # e.g., freesurfer_nidm, mriqc_nidm, ants_nidm
├── dataset_description.json
├── <analysis>/ # e.g., freesurfer, mriqc, ants
│ ├── dataset_description.json
│ └── sub-{id}/
│ └── ses-{session}/ # Optional
│ └── [analysis outputs]
└── nidm/
├── dataset_description.json
└── sub-{id}/
└── ses-{session}/ # Optional
└── sub-{id}_ses-{session}.ttl
The standard NIDM workflow:
--nidm-input-dir to output NIDM folder--skip-<analysis>)The NIDM input directory should contain:
nidm.ttl file at root, ORsub-{id}/ses-{session}/sub-{id}_ses-{session}.ttlFor complete NIDM integration specifications, see references/nidm_integration.md.
Verify a repo follows standards:
references/repo_structure.mdsrc/<analysis>/run.py for standard args<bidsapp_name>/{<analysis>, nidm}/ patternreferences/container_patterns.mdTo update a repo to match standards:
references/repo_structure.md--participant-label, --session-label--nidm-input-dir, --skip-nidm, --skip-<analysis>To create a new NIDM-integrated BIDSapp from scratch:
assets/template/ directory<analysis> placeholders throughoutsrc/<analysis>/<analysis>_runner.pysrc/nidm/nidm_converter.py for this analysisreferences/container_patterns.mdreferences/babs_config.md templateWhen changing standards that affect all BIDSapps:
src/nidm/nidm_converter.pysrc/<analysis>/run.pyAll reference files provide detailed specifications:
references/repo_structure.md - Complete repository structure template with explanationsreferences/nidm_integration.md - Full NIDM workflow, file formats, integration patternsreferences/babs_config.md - BABS YAML configuration template with examplesreferences/cli_arguments.md - Complete CLI argument specifications and validationreferences/container_patterns.md - Docker and Singularity build patternsreferences/testing_patterns.md - Test structure and coverage requirementsBoth Dockerfile and Singularity should:
vnmd/freesurfer_8.0.0)See references/container_patterns.md for complete specifications.
Standard test coverage:
Use pytest with fixtures for test data. See references/testing_patterns.md.
All BIDSapps must work with BABS for HPC deployment. Key requirements:
Generate BABS YAML configs using references/babs_config.md template.
This skill should be used when the user asks to "create a hookify rule", "write a hook rule", "configure hookify", "add a hookify rule", or needs guidance on hookify rule syntax and patterns.
Create distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.