Agent skill
submit-to-extension-index
Complete workflow for submitting an extension to the 3D Slicer Extension Index
Install this agent skill to your Project
npx add-skill https://github.com/majiayu000/claude-skill-registry/tree/main/skills/data/submit-to-extension-index
SKILL.md
Submit to Extension Index Skill
Submit an extension to the 3D Slicer Extension Index.
When to Use
- Ready to submit extension to the Slicer Extension Index
- All validation checks pass (
./scripts/validate_extension.sh)
Prerequisites
Before submitting:
- Run validation:
./scripts/validate_extension.sh - All checks must pass (0 failures)
- Extension JSON file exists in repository root
Submission Steps
Step 1: Validate
./scripts/validate_extension.sh
Must show "Ready for submission!" before proceeding.
Step 2: Fork ExtensionsIndex
gh repo fork Slicer/ExtensionsIndex --clone=false
Step 3: Clone Fork and Create Branch
Get the GitHub username and extension name, then clone:
# Get values from current repo
GITHUB_USER=$(gh api user -q .login)
EXT_NAME=$(grep -oP 'project\(\K[^)]+' CMakeLists.txt)
cd /tmp
rm -rf ExtensionsIndex
gh repo clone $GITHUB_USER/ExtensionsIndex
cd ExtensionsIndex
git remote add upstream https://github.com/Slicer/ExtensionsIndex.git 2>/dev/null || true
git fetch upstream
git checkout -b add-$EXT_NAME upstream/main
Step 4: Copy JSON and Commit
# Copy from the extension repository (adjust path as needed)
cp /path/to/extension/$EXT_NAME.json .
git add $EXT_NAME.json
git commit -m "Add $EXT_NAME extension"
git push -u origin add-$EXT_NAME
Step 5: Fetch Current PR Template
CRITICAL: Always fetch the latest PR template - it may have changed!
# Fetch and save the current PR template
curl -s "https://raw.githubusercontent.com/Slicer/ExtensionsIndex/main/.github/PULL_REQUEST_TEMPLATE.md" > /tmp/pr_template.md
# Review the template
cat /tmp/pr_template.md
Step 6: Create PR Body
Read the fetched template and:
- Keep the "# New extension" section
- Mark completed items with
[x] - Leave incomplete items as
[ ] - Delete sections that don't apply
DO NOT hardcode the template - always use the fetched version as the authoritative source.
Step 7: Create PR
Option A: GitHub Web Interface (Recommended)
- Go to https://github.com/Slicer/ExtensionsIndex/compare
- Select your fork and branch
- The PR template will auto-populate
- Review each checklist item and mark
[x]for completed items - Submit the PR
Option B: CLI
# Edit /tmp/pr_template.md to mark completed items with [x]
# Then create PR:
gh pr create --repo Slicer/ExtensionsIndex \
--title "Add $EXT_NAME extension" \
--body-file /tmp/pr_template.md
Post-Submission
- Wait for automated build tests
- Respond to reviewer feedback
- Extension appears in Extensions Manager after merge
Monitor PR: https://github.com/Slicer/ExtensionsIndex/pulls
Troubleshooting
Build Fails
Check CDash logs. Common issues:
- Missing dependencies in
build_dependencies - Wrong
build_subdirectory - CMakeLists.txt errors
Extension Not Appearing
- Verify PR was merged
- Use Slicer Preview Release (not Stable)
- Clear Extensions Manager cache
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
agent-ops-spec
Manage specification documents in .agent/specs/. Use when user provides requirements, acceptance criteria, or feature descriptions that need to be tracked and validated against implementation.
agent-ops-state
Maintain .agent state files. Use at session start, after meaningful steps, and before concluding: read/update constitution/memory/focus/issues/baseline consistently.
agent-ops-spec
Manage specification documents in .agent/specs/. Use when user provides requirements, acceptance criteria, or feature descriptions that need to be tracked and validated against implementation.
agent-ops-testing
Test strategy, execution, and coverage analysis. Use when designing tests, running test suites, or analyzing test results beyond baseline checks.
agent-ops-testing
Test strategy, execution, and coverage analysis. Use when designing tests, running test suites, or analyzing test results beyond baseline checks.
agent-ops-state
Maintain .agent state files. Use at session start, after meaningful steps, and before concluding: read/update constitution/memory/focus/issues/baseline consistently.
Didn't find tool you were looking for?