name: development-maintenance
description: "Make safe Nilearn checkout code, test, documentation, changelog,
and maintenance changes without violating repository architecture or
conventions."
disable-model-invocation: true
metadata:
disco-role: operating
license: BSD 3-Clause
Nilearn Development Maintenance Skill
Use this sub-skill when working inside the Nilearn source checkout on code,
tests, documentation, changelog entries, maintenance scripts, or repository
configuration. It is for coding-agent maintenance tasks, not user-facing
neuroimaging analysis workflows.
Route Tasks
- Code changes: Follow style, public API, backcompat, deprecation, and
estimator conventions in development guide.
- Import architecture: Check the import-linter layer rules before adding
cross-package imports. See development guide
and troubleshooting.
- Tests and docs: Pick narrow no-network tests first, mark generated or
modified tests with
@pytest.mark.ai_generated, and use doc/gallery guidance
in testing and docs.
- Validation planning: Use the bundled helper to suggest targeted commands
without running them:
python scripts/select_safe_tests.py <changed-paths> from this sub-skill directory.
- Failures: Diagnose import-linter, optional plotting, baseline image,
network/data skip, estimator-check, and pre-commit failures with
troubleshooting.
Quick Checklist
- Keep changes focused; do not add dependencies or unrelated refactors.
- Respect
pyproject.toml ruff settings: double quotes, 4-space indents, and
79-character Python lines.
- Use absolute internal imports and obey Nilearn's layered import contracts.
- Preserve scikit-learn-style estimator APIs:
fit returns self, learned
attributes end with _, and fit overwrites fitted state.
- Add or update small synthetic tests near the changed module and mark any
generated or modified tests with
@pytest.mark.ai_generated.
- Add an entry to
doc/changes/latest.rst for PR-worthy user, API, code,
test, doc, plotting, maintenance, or deprecation changes.
Boundaries
- Route analysis usage, Niimg operations, GLM, maskers, decoding,
connectivity, plotting, or surface workflows to their domain sub-skills unless
the task is specifically about changing Nilearn source/tests/docs.
- Do not run broad test suites, slow examples, visual baseline generation,
network dataset downloads, or native data fetchers unless the user explicitly
asks and the environment is appropriate.
- Do not create Codex-, Claude-, or export-specific files from this sub-skill.
References