Skip to content
extension-submission-checklist logo

Extension Submission Checklist Skill

extension-submission-checklist

Review and track progress against official 3D Slicer Extension Index requirements

SKILL.md

Full skill instructions

Extension Submission Checklist Skill

Review and track progress against the official 3D Slicer Extension Index submission requirements.

When to Use

Use this skill when:

  • Preparing to submit an extension to the Slicer Extension Index
  • Reviewing submission readiness
  • Creating a pull request for extension submission

CRITICAL: Verify Latest Requirements First

Before using this checklist, ALWAYS fetch the latest official requirements:

# Fetch the current PR template (authoritative checklist)
curl -s "https://raw.githubusercontent.com/​Slicer/​ExtensionsIndex/​main/​.github/​PULL_REQUEST_TEMPLATE.md"

# Fetch the current JSON schema
curl -s "https://raw.githubusercontent.com/​Slicer/​Slicer/​main/​Schemas/​slicer-extension-catalog-entry-schema-v1.0.1.json"

Compare fetched content against this skill. If discrepancies exist, the fetched content is authoritative.

Official Sources (Verified 2025-01-26)

Extension Tiers

Extensions are classified by quality/​maturity level:

TierDescription
1Experimental extensions (minimum for listing)
3Community-supported extensions
5Critical extensions, supported by Slicer core developers

Tiers 2 and 4 are reserved for future use.


Tier 1 Requirements (Minimum for Listing)

Naming and Repository

  • Extension name is reasonable - Not too general, not too narrow, suggests what it's for
  • Extension name does NOT start with "Slicer" - Unless it bridges Slicer to external tool/​library
  • Repository name follows convention - Slicer + ExtensionName (e.g., SlicerMouseMaster)
  • Repository has 3d-slicer-extension GitHub topic - For discoverability at https://github.com/topics/3d-slicer-extension

Description and Documentation

  • Extension description summarizes functionality - 1-2 sentences understandable by non-experts
  • Any related patents disclosed - Must be mentioned in extension description if applicable

Licensing

  • LICENSE.txt present in repository root
  • License name mentioned on extension homepage
  • Permissive license used - MIT or Apache recommended
  • If restrictive license used - Reason explained and license name in description

URLs and References

  • scm_url correct - Repository checkout URL (e.g., https://github.com/​user/​repo.git)
  • scm_revision appropriate - Branch name (main, master) preferred over specific git hash
  • Icon URL correct - Raw data URL, not webpage (e.g., https://raw.githubusercontent.com/​...)
  • Screenshot URLs correct - At least one screenshot, raw data URLs

Metadata Consistency

  • JSON file consistent with CMakeLists.txt - Dependencies, category, etc. must match

Homepage Requirements

Homepage URL must point to valid webpage containing:

  • Extension name
  • Short description (1-2 sentences)
  • At least one informative image/​screenshot
  • Description of each contained module (at least one sentence each)
  • Publication link (if available) - Link to paper or PubMed reference

GitHub Repository Settings

Hide unused features to reduce noise:

  • Settings > Features - Uncheck Wiki, Projects, Discussions (if not used)
  • About section - Uncheck Releases, Packages (if not used)

Safety Requirements

  • No unreliable binaries - Does not include/​download binaries from untrusted sources
  • No data transmission without consent - Explicit opt-in required for any data sending

Tier 3 Requirements (Community-Supported)

All Tier 1 requirements PLUS:

Documentation and Testing

  • Documentation provided for most modules
  • Tutorial with step-by-step instructions - At least for most typical use case
  • Tutorial includes screenshots
  • Sample data registered with Sample Data module - For easy user access

Code Quality

  • Follows Slicer programming conventions - GUI/​logic separation, etc.
  • Follows Slicer UI conventions - Minimal popups, no unnecessary custom styling

Build and Platform Support

  • Builds successfully on Windows
  • Builds successfully on macOS
  • Builds successfully on Linux

Maintainer Responsiveness

  • Responds to issues on extension repository
  • Responds to pull requests on extension repository
  • Responds to @mentions on Slicer Forum (discourse.slicer.org)

Licensing (Additional)

  • Permissive license for main functions - Apache or MIT recommended
  • Non-permissive optional components require user approval - Pop-up explaining terms

Tier 5 Requirements (Core Extensions)

All Tier 1 and Tier 3 requirements PLUS:

  • Slicer core developer has commit access - For Slicer-related fixes
  • Automated tests for all critical features
  • Maintainers respond to Forum questions - About the extension

Submission Process Steps

  1. Verify latest requirements (see CRITICAL section above)
  2. Complete all Tier 1 requirements (minimum)
  3. Run /​validate-extension-submission skill to check readiness
  4. Run /​prepare-extension-metadata skill to generate JSON file
  5. Fork https://github.com/Slicer/ExtensionsIndex
  6. Add your JSON file to the forked repository's main branch
  7. Create pull request using the template
  8. Check all applicable boxes in the PR template
  9. Respond to reviewer feedback

Files to Prepare

FileLocationPurpose
ExtensionName.jsonExtensionsIndex repoCatalog entry for Extension Index
CMakeLists.txtExtension repo rootExtension metadata for Slicer build system
LICENSE.txtExtension repo rootLicense file
README.mdExtension repo rootHomepage/​documentation
Icon PNGExtension repo128x128 recommended, raw URL needed
ScreenshotsExtension repoAt least one, raw URLs needed

Example JSON File (Catalog Entry)

{
  "$schema": "https://raw.githubusercontent.com/​Slicer/​Slicer/​main/​Schemas/​slicer-extension-catalog-entry-schema-v1.0.1.json#",
  "build_dependencies": [],
  "build_subdirectory": ".",
  "category": "Utilities",
  "scm_revision": "main",
  "scm_url": "https://github.com/​user/​SlicerExtensionName.git",
  "tier": 1
}

Validation Commands

# Validate JSON syntax
python -c "import json; json.load(open('ExtensionName.json'))"

# Check CMakeLists.txt metadata
grep -E "^set\(EXTENSION_" CMakeLists.txt

# Verify icon URL is accessible
curl -sI "https://raw.githubusercontent.com/​..." | head -1

# Verify screenshot URLs are accessible
curl -sI "https://raw.githubusercontent.com/​..." | head -1

More Other skills

Delegate independent tasks to specialized agents working concurrently with isolated context.

295.4K 206.3K
View

Applies Anthropic's official brand colors and typography to any sort of artifact that may benefit from having Anthropic's look-and-feel. Use it when brand colors or style guidelines, visual formatting, or company design standards apply.

179.7K 100.1K
View

Toolkit for styling artifacts with a theme. These artifacts can be slides, docs, reportings, HTML landing pages, etc. There are 10 pre-set themes with colors/fonts that you can apply to any artifact that has been creating, or can generate a new theme on-the-fly.

179.7K 89.5K
View

A set of resources to help me write all kinds of internal communications, using the formats that my company likes to use. Claude should use this skill whenever asked to write some sort of internal communications (status reports, leadership updates, 3P updates, company newsletters, FAQs, incident reports, project updates, etc.).

179.7K 76.1K
View

Fundamental design principles for writing maintainable, testable Python code.

40.2K 21.9K
View

Modern responsive layouts using container queries, fluid typography, CSS Grid, and mobile-first strategies.

40.2K 20K
View

Generate Playwright tests from scenarios using interactive browser exploration and validation.

39.7K 18.2K
View

Modern React state management with Redux Toolkit, Zustand, Jotai, and React Query for every state category.

40.2K 14.7K
View

GDPR-compliant data handling with consent management, data subject rights, and privacy controls.

40.2K 14.3K
View

Python error handling patterns including input validation, exception hierarchies, and partial failure handling. Use when implementing validation logic, designing exception strategies, handling batch processing failures, or building robust APIs.

40.2K 13.5K
View

Detailed multi-file refactor planning with safety checks and rollback guidance.

39.7K 13K
View