Expand building Claude skill to cover general ET building from source - #2

Draft
psiddh wants to merge 15 commits into
mainfrom
expand-building-claude-skill
Draft

Expand building Claude skill to cover general ET building from source#2
psiddh wants to merge 15 commits into
mainfrom
expand-building-claude-skill

Conversation

@psiddh

Copy link
Copy Markdown
Owner

Summary

The existing /building Claude skill only covered runners (Makefile targets like make llama-cpu) and a couple of CMake workflow presets. This PR expands it into a comprehensive guide for building ExecuTorch from source.

Changes

Expanded .claude/skills/building/SKILL.md from 23 lines to 353 lines, covering:

New Sections

  1. Prerequisites — toolchain requirements (Python, CMake, C++17 compiler, submodules, ccache, Ninja)
  2. Building the Python Packageinstall_executorch.sh with all flags, backend enablement via CMAKE_ARGS, verification
  3. Building the C++ Runtime — presets table (16 presets), workflow presets, manual CMake, verification
  4. Building Runners — expanded Makefile targets (all current models)
  5. Cross-Compilation — Android (AAR + native), iOS/macOS frameworks, Windows (Clang-CL)
  6. Key Build Options — complete reference table of 27 CMake options with types, defaults, descriptions, and dependency chains
  7. Common Build Patterns — minimal, XNNPACK, profiling, tests, CMake subdirectory usage
  8. Troubleshooting — 12 common build issues with symptoms and fixes
  9. Build Output — reference table of artifacts and their locations
  10. Tips — practical advice for faster and more reliable builds

Motivation

The original skill was too narrow for Claude to help users build ExecuTorch from source. Users asking Claude to 'build ExecuTorch' would only get runner-specific instructions, missing the broader Python package install, standalone C++ runtime build, cross-compilation, and troubleshooting guidance.

Testing

This is a documentation-only change to a Claude skill file. No code changes.

Target: pytorch/executorch (to be submitted as upstream PR)

cc @Mengwei-Liu

psiddhand others added 15 commits March 9, 2026 16:41
The existing building skill only covered runners (Makefile targets) and
CMake workflow presets. This expands it to be a comprehensive guide for
building ExecuTorch from source, including:
- Prerequisites and toolchain requirements
- Building the Python package (install_executorch.sh with all flags)
- Building the C++ runtime standalone (presets, workflows, manual CMake)
- Building model runners (Makefile)
- Cross-compilation (Android, iOS, macOS, Windows)
- Complete build options reference with dependency chains
- Common build patterns (minimal, XNNPACK, profiling, tests, subdirectory)
- Troubleshooting section covering 12 common build issues:
- Submodule issues
- Stale build artifacts
- CMake version conflicts
- Python version mismatch
- Dependency version conflicts
- Missing python-dev headers
- Linking errors with --whole-archive
- XNNPACK build failures
- Windows symlink errors
- MSVC kernel compilation failures
- Intel macOS limitations
- Duplicate kernel registration
- Build output reference table
- Tips for faster and more reliable builds
Reorganize the building skill to be concise and action-driven rather
than encyclopedic. Key changes:
- Add "do not ask questions" directive — detect and fix env issues automatically
- Make conda the mandatory path (no venvs, no system Python)
- Auto-fix for cmake >= 4.0 and PEP 668 errors
- Default action is `./install_executorch.sh --editable`
- Complete runner table from actual Makefile (adds voxtral, voxtral_realtime,
sortformer, silero-vad, llava, debug variants)
- Fix macOS commands: $(sysctl -n hw.ncpu) instead of $(nproc)
- Note that --preset macos uses Xcode generator
- Condense troubleshooting into scannable table
- Trim cmake options to most-used flags (full list in CMakeLists.txt)
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
- Add venv fallback when conda is not installed
- Handle conda PermissionError by checking env directory on disk
- Auto-fix cmake: missing or < 3.24 gets pip-installed, >= 4.0 works fine
- Add troubleshooting entries for conda not found and PEP 668 errors
- Remove heavy-handed directive banner; let skill structure guide behavior
Co-authored-by: Claude <noreply@anthropic.com>
Explicit decision tree at the top of Step 2 so Claude routes to the
right section based on keywords (Android, iOS, model names, cmake)
instead of always defaulting to the Python package build.
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
- Add ANDROID_NDK requirement and verification to Android section
- Fix CMAKE_BUILD_TYPE description: not all presets set it
- Separate build output table by flow (pip vs cmake vs cross-compilation)
Co-authored-by: Claude <noreply@anthropic.com>
Three issues that would break a fresh Mac checkout:
- Add Xcode Command Line Tools prerequisite check
- Add conda shell.bash hook for non-interactive shells (Claude Code / CI)
- Add brew install python@3.12 guidance for venv path when only 3.14+ exists
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Claude <noreply@anthropic.com>
Sign up for freeto 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.

1 participant

@psiddh
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Expand building Claude skill to cover general ET building from source - #2

Draft
psiddh wants to merge 15 commits into
mainfrom
expand-building-claude-skill
Draft

Expand building Claude skill to cover general ET building from source#2
psiddh wants to merge 15 commits into
mainfrom
expand-building-claude-skill

Conversation

@psiddh

Copy link
Copy Markdown
Owner

Summary

The existing /building Claude skill only covered runners (Makefile targets like make llama-cpu) and a couple of CMake workflow presets. This PR expands it into a comprehensive guide for building ExecuTorch from source.

Changes

Expanded .claude/skills/building/SKILL.md from 23 lines to 353 lines, covering:

New Sections

  1. Prerequisites — toolchain requirements (Python, CMake, C++17 compiler, submodules, ccache, Ninja)
  2. Building the Python Packageinstall_executorch.sh with all flags, backend enablement via CMAKE_ARGS, verification
  3. Building the C++ Runtime — presets table (16 presets), workflow presets, manual CMake, verification
  4. Building Runners — expanded Makefile targets (all current models)
  5. Cross-Compilation — Android (AAR + native), iOS/macOS frameworks, Windows (Clang-CL)
  6. Key Build Options — complete reference table of 27 CMake options with types, defaults, descriptions, and dependency chains
  7. Common Build Patterns — minimal, XNNPACK, profiling, tests, CMake subdirectory usage
  8. Troubleshooting — 12 common build issues with symptoms and fixes
  9. Build Output — reference table of artifacts and their locations
  10. Tips — practical advice for faster and more reliable builds

Motivation

The original skill was too narrow for Claude to help users build ExecuTorch from source. Users asking Claude to 'build ExecuTorch' would only get runner-specific instructions, missing the broader Python package install, standalone C++ runtime build, cross-compilation, and troubleshooting guidance.

Testing

This is a documentation-only change to a Claude skill file. No code changes.

Target: pytorch/executorch (to be submitted as upstream PR)

cc @Mengwei-Liu

psiddhand others added 15 commits March 9, 2026 16:41
The existing building skill only covered runners (Makefile targets) and
CMake workflow presets. This expands it to be a comprehensive guide for
building ExecuTorch from source, including:
- Prerequisites and toolchain requirements
- Building the Python package (install_executorch.sh with all flags)
- Building the C++ runtime standalone (presets, workflows, manual CMake)
- Building model runners (Makefile)
- Cross-compilation (Android, iOS, macOS, Windows)
- Complete build options reference with dependency chains
- Common build patterns (minimal, XNNPACK, profiling, tests, subdirectory)
- Troubleshooting section covering 12 common build issues:
- Submodule issues
- Stale build artifacts
- CMake version conflicts
- Python version mismatch
- Dependency version conflicts
- Missing python-dev headers
- Linking errors with --whole-archive
- XNNPACK build failures
- Windows symlink errors
- MSVC kernel compilation failures
- Intel macOS limitations
- Duplicate kernel registration
- Build output reference table
- Tips for faster and more reliable builds
Reorganize the building skill to be concise and action-driven rather
than encyclopedic. Key changes:
- Add "do not ask questions" directive — detect and fix env issues automatically
- Make conda the mandatory path (no venvs, no system Python)
- Auto-fix for cmake >= 4.0 and PEP 668 errors
- Default action is `./install_executorch.sh --editable`
- Complete runner table from actual Makefile (adds voxtral, voxtral_realtime,
sortformer, silero-vad, llava, debug variants)
- Fix macOS commands: $(sysctl -n hw.ncpu) instead of $(nproc)
- Note that --preset macos uses Xcode generator
- Condense troubleshooting into scannable table
- Trim cmake options to most-used flags (full list in CMakeLists.txt)
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
- Add venv fallback when conda is not installed
- Handle conda PermissionError by checking env directory on disk
- Auto-fix cmake: missing or < 3.24 gets pip-installed, >= 4.0 works fine
- Add troubleshooting entries for conda not found and PEP 668 errors
- Remove heavy-handed directive banner; let skill structure guide behavior
Co-authored-by: Claude <noreply@anthropic.com>
Explicit decision tree at the top of Step 2 so Claude routes to the
right section based on keywords (Android, iOS, model names, cmake)
instead of always defaulting to the Python package build.
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
- Add ANDROID_NDK requirement and verification to Android section
- Fix CMAKE_BUILD_TYPE description: not all presets set it
- Separate build output table by flow (pip vs cmake vs cross-compilation)
Co-authored-by: Claude <noreply@anthropic.com>
Three issues that would break a fresh Mac checkout:
- Add Xcode Command Line Tools prerequisite check
- Add conda shell.bash hook for non-interactive shells (Claude Code / CI)
- Add brew install python@3.12 guidance for venv path when only 3.14+ exists
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Claude <noreply@anthropic.com>
Sign up for freeto 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.

1 participant

@psiddh
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Expand building Claude skill to cover general ET building from source - #2

Draft
psiddh wants to merge 15 commits into
mainfrom
expand-building-claude-skill
Draft

Expand building Claude skill to cover general ET building from source#2
psiddh wants to merge 15 commits into
mainfrom
expand-building-claude-skill

Conversation

@psiddh

Copy link
Copy Markdown
Owner

Summary

The existing /building Claude skill only covered runners (Makefile targets like make llama-cpu) and a couple of CMake workflow presets. This PR expands it into a comprehensive guide for building ExecuTorch from source.

Changes

Expanded .claude/skills/building/SKILL.md from 23 lines to 353 lines, covering:

New Sections

  1. Prerequisites — toolchain requirements (Python, CMake, C++17 compiler, submodules, ccache, Ninja)
  2. Building the Python Packageinstall_executorch.sh with all flags, backend enablement via CMAKE_ARGS, verification
  3. Building the C++ Runtime — presets table (16 presets), workflow presets, manual CMake, verification
  4. Building Runners — expanded Makefile targets (all current models)
  5. Cross-Compilation — Android (AAR + native), iOS/macOS frameworks, Windows (Clang-CL)
  6. Key Build Options — complete reference table of 27 CMake options with types, defaults, descriptions, and dependency chains
  7. Common Build Patterns — minimal, XNNPACK, profiling, tests, CMake subdirectory usage
  8. Troubleshooting — 12 common build issues with symptoms and fixes
  9. Build Output — reference table of artifacts and their locations
  10. Tips — practical advice for faster and more reliable builds

Motivation

The original skill was too narrow for Claude to help users build ExecuTorch from source. Users asking Claude to 'build ExecuTorch' would only get runner-specific instructions, missing the broader Python package install, standalone C++ runtime build, cross-compilation, and troubleshooting guidance.

Testing

This is a documentation-only change to a Claude skill file. No code changes.

Target: pytorch/executorch (to be submitted as upstream PR)

cc @Mengwei-Liu

psiddhand others added 15 commits March 9, 2026 16:41
The existing building skill only covered runners (Makefile targets) and
CMake workflow presets. This expands it to be a comprehensive guide for
building ExecuTorch from source, including:
- Prerequisites and toolchain requirements
- Building the Python package (install_executorch.sh with all flags)
- Building the C++ runtime standalone (presets, workflows, manual CMake)
- Building model runners (Makefile)
- Cross-compilation (Android, iOS, macOS, Windows)
- Complete build options reference with dependency chains
- Common build patterns (minimal, XNNPACK, profiling, tests, subdirectory)
- Troubleshooting section covering 12 common build issues:
- Submodule issues
- Stale build artifacts
- CMake version conflicts
- Python version mismatch
- Dependency version conflicts
- Missing python-dev headers
- Linking errors with --whole-archive
- XNNPACK build failures
- Windows symlink errors
- MSVC kernel compilation failures
- Intel macOS limitations
- Duplicate kernel registration
- Build output reference table
- Tips for faster and more reliable builds
Reorganize the building skill to be concise and action-driven rather
than encyclopedic. Key changes:
- Add "do not ask questions" directive — detect and fix env issues automatically
- Make conda the mandatory path (no venvs, no system Python)
- Auto-fix for cmake >= 4.0 and PEP 668 errors
- Default action is `./install_executorch.sh --editable`
- Complete runner table from actual Makefile (adds voxtral, voxtral_realtime,
sortformer, silero-vad, llava, debug variants)
- Fix macOS commands: $(sysctl -n hw.ncpu) instead of $(nproc)
- Note that --preset macos uses Xcode generator
- Condense troubleshooting into scannable table
- Trim cmake options to most-used flags (full list in CMakeLists.txt)
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
- Add venv fallback when conda is not installed
- Handle conda PermissionError by checking env directory on disk
- Auto-fix cmake: missing or < 3.24 gets pip-installed, >= 4.0 works fine
- Add troubleshooting entries for conda not found and PEP 668 errors
- Remove heavy-handed directive banner; let skill structure guide behavior
Co-authored-by: Claude <noreply@anthropic.com>
Explicit decision tree at the top of Step 2 so Claude routes to the
right section based on keywords (Android, iOS, model names, cmake)
instead of always defaulting to the Python package build.
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
- Add ANDROID_NDK requirement and verification to Android section
- Fix CMAKE_BUILD_TYPE description: not all presets set it
- Separate build output table by flow (pip vs cmake vs cross-compilation)
Co-authored-by: Claude <noreply@anthropic.com>
Three issues that would break a fresh Mac checkout:
- Add Xcode Command Line Tools prerequisite check
- Add conda shell.bash hook for non-interactive shells (Claude Code / CI)
- Add brew install python@3.12 guidance for venv path when only 3.14+ exists
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Claude <noreply@anthropic.com>
Sign up for freeto 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.

1 participant

@psiddh
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Expand building Claude skill to cover general ET building from source - #2

Draft
psiddh wants to merge 15 commits into
mainfrom
expand-building-claude-skill
Draft

Expand building Claude skill to cover general ET building from source#2
psiddh wants to merge 15 commits into
mainfrom
expand-building-claude-skill

Conversation

@psiddh

Copy link
Copy Markdown
Owner

Summary

The existing /building Claude skill only covered runners (Makefile targets like make llama-cpu) and a couple of CMake workflow presets. This PR expands it into a comprehensive guide for building ExecuTorch from source.

Changes

Expanded .claude/skills/building/SKILL.md from 23 lines to 353 lines, covering:

New Sections

  1. Prerequisites — toolchain requirements (Python, CMake, C++17 compiler, submodules, ccache, Ninja)
  2. Building the Python Packageinstall_executorch.sh with all flags, backend enablement via CMAKE_ARGS, verification
  3. Building the C++ Runtime — presets table (16 presets), workflow presets, manual CMake, verification
  4. Building Runners — expanded Makefile targets (all current models)
  5. Cross-Compilation — Android (AAR + native), iOS/macOS frameworks, Windows (Clang-CL)
  6. Key Build Options — complete reference table of 27 CMake options with types, defaults, descriptions, and dependency chains
  7. Common Build Patterns — minimal, XNNPACK, profiling, tests, CMake subdirectory usage
  8. Troubleshooting — 12 common build issues with symptoms and fixes
  9. Build Output — reference table of artifacts and their locations
  10. Tips — practical advice for faster and more reliable builds

Motivation

The original skill was too narrow for Claude to help users build ExecuTorch from source. Users asking Claude to 'build ExecuTorch' would only get runner-specific instructions, missing the broader Python package install, standalone C++ runtime build, cross-compilation, and troubleshooting guidance.

Testing

This is a documentation-only change to a Claude skill file. No code changes.

Target: pytorch/executorch (to be submitted as upstream PR)

cc @Mengwei-Liu

psiddhand others added 15 commits March 9, 2026 16:41
The existing building skill only covered runners (Makefile targets) and
CMake workflow presets. This expands it to be a comprehensive guide for
building ExecuTorch from source, including:
- Prerequisites and toolchain requirements
- Building the Python package (install_executorch.sh with all flags)
- Building the C++ runtime standalone (presets, workflows, manual CMake)
- Building model runners (Makefile)
- Cross-compilation (Android, iOS, macOS, Windows)
- Complete build options reference with dependency chains
- Common build patterns (minimal, XNNPACK, profiling, tests, subdirectory)
- Troubleshooting section covering 12 common build issues:
- Submodule issues
- Stale build artifacts
- CMake version conflicts
- Python version mismatch
- Dependency version conflicts
- Missing python-dev headers
- Linking errors with --whole-archive
- XNNPACK build failures
- Windows symlink errors
- MSVC kernel compilation failures
- Intel macOS limitations
- Duplicate kernel registration
- Build output reference table
- Tips for faster and more reliable builds
Reorganize the building skill to be concise and action-driven rather
than encyclopedic. Key changes:
- Add "do not ask questions" directive — detect and fix env issues automatically
- Make conda the mandatory path (no venvs, no system Python)
- Auto-fix for cmake >= 4.0 and PEP 668 errors
- Default action is `./install_executorch.sh --editable`
- Complete runner table from actual Makefile (adds voxtral, voxtral_realtime,
sortformer, silero-vad, llava, debug variants)
- Fix macOS commands: $(sysctl -n hw.ncpu) instead of $(nproc)
- Note that --preset macos uses Xcode generator
- Condense troubleshooting into scannable table
- Trim cmake options to most-used flags (full list in CMakeLists.txt)
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
- Add venv fallback when conda is not installed
- Handle conda PermissionError by checking env directory on disk
- Auto-fix cmake: missing or < 3.24 gets pip-installed, >= 4.0 works fine
- Add troubleshooting entries for conda not found and PEP 668 errors
- Remove heavy-handed directive banner; let skill structure guide behavior
Co-authored-by: Claude <noreply@anthropic.com>
Explicit decision tree at the top of Step 2 so Claude routes to the
right section based on keywords (Android, iOS, model names, cmake)
instead of always defaulting to the Python package build.
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
- Add ANDROID_NDK requirement and verification to Android section
- Fix CMAKE_BUILD_TYPE description: not all presets set it
- Separate build output table by flow (pip vs cmake vs cross-compilation)
Co-authored-by: Claude <noreply@anthropic.com>
Three issues that would break a fresh Mac checkout:
- Add Xcode Command Line Tools prerequisite check
- Add conda shell.bash hook for non-interactive shells (Claude Code / CI)
- Add brew install python@3.12 guidance for venv path when only 3.14+ exists
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Claude <noreply@anthropic.com>
Sign up for freeto 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.

1 participant

@psiddh
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Expand building Claude skill to cover general ET building from source - #2

Draft
psiddh wants to merge 15 commits into
mainfrom
expand-building-claude-skill
Draft

Expand building Claude skill to cover general ET building from source#2
psiddh wants to merge 15 commits into
mainfrom
expand-building-claude-skill

Conversation

@psiddh

Copy link
Copy Markdown
Owner

Summary

The existing /building Claude skill only covered runners (Makefile targets like make llama-cpu) and a couple of CMake workflow presets. This PR expands it into a comprehensive guide for building ExecuTorch from source.

Changes

Expanded .claude/skills/building/SKILL.md from 23 lines to 353 lines, covering:

New Sections

  1. Prerequisites — toolchain requirements (Python, CMake, C++17 compiler, submodules, ccache, Ninja)
  2. Building the Python Packageinstall_executorch.sh with all flags, backend enablement via CMAKE_ARGS, verification
  3. Building the C++ Runtime — presets table (16 presets), workflow presets, manual CMake, verification
  4. Building Runners — expanded Makefile targets (all current models)
  5. Cross-Compilation — Android (AAR + native), iOS/macOS frameworks, Windows (Clang-CL)
  6. Key Build Options — complete reference table of 27 CMake options with types, defaults, descriptions, and dependency chains
  7. Common Build Patterns — minimal, XNNPACK, profiling, tests, CMake subdirectory usage
  8. Troubleshooting — 12 common build issues with symptoms and fixes
  9. Build Output — reference table of artifacts and their locations
  10. Tips — practical advice for faster and more reliable builds

Motivation

The original skill was too narrow for Claude to help users build ExecuTorch from source. Users asking Claude to 'build ExecuTorch' would only get runner-specific instructions, missing the broader Python package install, standalone C++ runtime build, cross-compilation, and troubleshooting guidance.

Testing

This is a documentation-only change to a Claude skill file. No code changes.

Target: pytorch/executorch (to be submitted as upstream PR)

cc @Mengwei-Liu

psiddhand others added 15 commits March 9, 2026 16:41
The existing building skill only covered runners (Makefile targets) and
CMake workflow presets. This expands it to be a comprehensive guide for
building ExecuTorch from source, including:
- Prerequisites and toolchain requirements
- Building the Python package (install_executorch.sh with all flags)
- Building the C++ runtime standalone (presets, workflows, manual CMake)
- Building model runners (Makefile)
- Cross-compilation (Android, iOS, macOS, Windows)
- Complete build options reference with dependency chains
- Common build patterns (minimal, XNNPACK, profiling, tests, subdirectory)
- Troubleshooting section covering 12 common build issues:
- Submodule issues
- Stale build artifacts
- CMake version conflicts
- Python version mismatch
- Dependency version conflicts
- Missing python-dev headers
- Linking errors with --whole-archive
- XNNPACK build failures
- Windows symlink errors
- MSVC kernel compilation failures
- Intel macOS limitations
- Duplicate kernel registration
- Build output reference table
- Tips for faster and more reliable builds
Reorganize the building skill to be concise and action-driven rather
than encyclopedic. Key changes:
- Add "do not ask questions" directive — detect and fix env issues automatically
- Make conda the mandatory path (no venvs, no system Python)
- Auto-fix for cmake >= 4.0 and PEP 668 errors
- Default action is `./install_executorch.sh --editable`
- Complete runner table from actual Makefile (adds voxtral, voxtral_realtime,
sortformer, silero-vad, llava, debug variants)
- Fix macOS commands: $(sysctl -n hw.ncpu) instead of $(nproc)
- Note that --preset macos uses Xcode generator
- Condense troubleshooting into scannable table
- Trim cmake options to most-used flags (full list in CMakeLists.txt)
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
- Add venv fallback when conda is not installed
- Handle conda PermissionError by checking env directory on disk
- Auto-fix cmake: missing or < 3.24 gets pip-installed, >= 4.0 works fine
- Add troubleshooting entries for conda not found and PEP 668 errors
- Remove heavy-handed directive banner; let skill structure guide behavior
Co-authored-by: Claude <noreply@anthropic.com>
Explicit decision tree at the top of Step 2 so Claude routes to the
right section based on keywords (Android, iOS, model names, cmake)
instead of always defaulting to the Python package build.
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
- Add ANDROID_NDK requirement and verification to Android section
- Fix CMAKE_BUILD_TYPE description: not all presets set it
- Separate build output table by flow (pip vs cmake vs cross-compilation)
Co-authored-by: Claude <noreply@anthropic.com>
Three issues that would break a fresh Mac checkout:
- Add Xcode Command Line Tools prerequisite check
- Add conda shell.bash hook for non-interactive shells (Claude Code / CI)
- Add brew install python@3.12 guidance for venv path when only 3.14+ exists
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Claude <noreply@anthropic.com>
Sign up for freeto 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.

1 participant

@psiddh
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Expand building Claude skill to cover general ET building from source - #2

Draft
psiddh wants to merge 15 commits into
mainfrom
expand-building-claude-skill
Draft

Expand building Claude skill to cover general ET building from source#2
psiddh wants to merge 15 commits into
mainfrom
expand-building-claude-skill

Conversation

@psiddh

Copy link
Copy Markdown
Owner

Summary

The existing /building Claude skill only covered runners (Makefile targets like make llama-cpu) and a couple of CMake workflow presets. This PR expands it into a comprehensive guide for building ExecuTorch from source.

Changes

Expanded .claude/skills/building/SKILL.md from 23 lines to 353 lines, covering:

New Sections

  1. Prerequisites — toolchain requirements (Python, CMake, C++17 compiler, submodules, ccache, Ninja)
  2. Building the Python Packageinstall_executorch.sh with all flags, backend enablement via CMAKE_ARGS, verification
  3. Building the C++ Runtime — presets table (16 presets), workflow presets, manual CMake, verification
  4. Building Runners — expanded Makefile targets (all current models)
  5. Cross-Compilation — Android (AAR + native), iOS/macOS frameworks, Windows (Clang-CL)
  6. Key Build Options — complete reference table of 27 CMake options with types, defaults, descriptions, and dependency chains
  7. Common Build Patterns — minimal, XNNPACK, profiling, tests, CMake subdirectory usage
  8. Troubleshooting — 12 common build issues with symptoms and fixes
  9. Build Output — reference table of artifacts and their locations
  10. Tips — practical advice for faster and more reliable builds

Motivation

The original skill was too narrow for Claude to help users build ExecuTorch from source. Users asking Claude to 'build ExecuTorch' would only get runner-specific instructions, missing the broader Python package install, standalone C++ runtime build, cross-compilation, and troubleshooting guidance.

Testing

This is a documentation-only change to a Claude skill file. No code changes.

Target: pytorch/executorch (to be submitted as upstream PR)

cc @Mengwei-Liu

psiddhand others added 15 commits March 9, 2026 16:41
The existing building skill only covered runners (Makefile targets) and
CMake workflow presets. This expands it to be a comprehensive guide for
building ExecuTorch from source, including:
- Prerequisites and toolchain requirements
- Building the Python package (install_executorch.sh with all flags)
- Building the C++ runtime standalone (presets, workflows, manual CMake)
- Building model runners (Makefile)
- Cross-compilation (Android, iOS, macOS, Windows)
- Complete build options reference with dependency chains
- Common build patterns (minimal, XNNPACK, profiling, tests, subdirectory)
- Troubleshooting section covering 12 common build issues:
- Submodule issues
- Stale build artifacts
- CMake version conflicts
- Python version mismatch
- Dependency version conflicts
- Missing python-dev headers
- Linking errors with --whole-archive
- XNNPACK build failures
- Windows symlink errors
- MSVC kernel compilation failures
- Intel macOS limitations
- Duplicate kernel registration
- Build output reference table
- Tips for faster and more reliable builds
Reorganize the building skill to be concise and action-driven rather
than encyclopedic. Key changes:
- Add "do not ask questions" directive — detect and fix env issues automatically
- Make conda the mandatory path (no venvs, no system Python)
- Auto-fix for cmake >= 4.0 and PEP 668 errors
- Default action is `./install_executorch.sh --editable`
- Complete runner table from actual Makefile (adds voxtral, voxtral_realtime,
sortformer, silero-vad, llava, debug variants)
- Fix macOS commands: $(sysctl -n hw.ncpu) instead of $(nproc)
- Note that --preset macos uses Xcode generator
- Condense troubleshooting into scannable table
- Trim cmake options to most-used flags (full list in CMakeLists.txt)
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
- Add venv fallback when conda is not installed
- Handle conda PermissionError by checking env directory on disk
- Auto-fix cmake: missing or < 3.24 gets pip-installed, >= 4.0 works fine
- Add troubleshooting entries for conda not found and PEP 668 errors
- Remove heavy-handed directive banner; let skill structure guide behavior
Co-authored-by: Claude <noreply@anthropic.com>
Explicit decision tree at the top of Step 2 so Claude routes to the
right section based on keywords (Android, iOS, model names, cmake)
instead of always defaulting to the Python package build.
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
- Add ANDROID_NDK requirement and verification to Android section
- Fix CMAKE_BUILD_TYPE description: not all presets set it
- Separate build output table by flow (pip vs cmake vs cross-compilation)
Co-authored-by: Claude <noreply@anthropic.com>
Three issues that would break a fresh Mac checkout:
- Add Xcode Command Line Tools prerequisite check
- Add conda shell.bash hook for non-interactive shells (Claude Code / CI)
- Add brew install python@3.12 guidance for venv path when only 3.14+ exists
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Claude <noreply@anthropic.com>
Sign up for freeto 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.

1 participant

@psiddh
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Expand building Claude skill to cover general ET building from source - #2

Draft
psiddh wants to merge 15 commits into
mainfrom
expand-building-claude-skill
Draft

Expand building Claude skill to cover general ET building from source#2
psiddh wants to merge 15 commits into
mainfrom
expand-building-claude-skill

Conversation

@psiddh

Copy link
Copy Markdown
Owner

Summary

The existing /building Claude skill only covered runners (Makefile targets like make llama-cpu) and a couple of CMake workflow presets. This PR expands it into a comprehensive guide for building ExecuTorch from source.

Changes

Expanded .claude/skills/building/SKILL.md from 23 lines to 353 lines, covering:

New Sections

  1. Prerequisites — toolchain requirements (Python, CMake, C++17 compiler, submodules, ccache, Ninja)
  2. Building the Python Packageinstall_executorch.sh with all flags, backend enablement via CMAKE_ARGS, verification
  3. Building the C++ Runtime — presets table (16 presets), workflow presets, manual CMake, verification
  4. Building Runners — expanded Makefile targets (all current models)
  5. Cross-Compilation — Android (AAR + native), iOS/macOS frameworks, Windows (Clang-CL)
  6. Key Build Options — complete reference table of 27 CMake options with types, defaults, descriptions, and dependency chains
  7. Common Build Patterns — minimal, XNNPACK, profiling, tests, CMake subdirectory usage
  8. Troubleshooting — 12 common build issues with symptoms and fixes
  9. Build Output — reference table of artifacts and their locations
  10. Tips — practical advice for faster and more reliable builds

Motivation

The original skill was too narrow for Claude to help users build ExecuTorch from source. Users asking Claude to 'build ExecuTorch' would only get runner-specific instructions, missing the broader Python package install, standalone C++ runtime build, cross-compilation, and troubleshooting guidance.

Testing

This is a documentation-only change to a Claude skill file. No code changes.

Target: pytorch/executorch (to be submitted as upstream PR)

cc @Mengwei-Liu

psiddhand others added 15 commits March 9, 2026 16:41
The existing building skill only covered runners (Makefile targets) and
CMake workflow presets. This expands it to be a comprehensive guide for
building ExecuTorch from source, including:
- Prerequisites and toolchain requirements
- Building the Python package (install_executorch.sh with all flags)
- Building the C++ runtime standalone (presets, workflows, manual CMake)
- Building model runners (Makefile)
- Cross-compilation (Android, iOS, macOS, Windows)
- Complete build options reference with dependency chains
- Common build patterns (minimal, XNNPACK, profiling, tests, subdirectory)
- Troubleshooting section covering 12 common build issues:
- Submodule issues
- Stale build artifacts
- CMake version conflicts
- Python version mismatch
- Dependency version conflicts
- Missing python-dev headers
- Linking errors with --whole-archive
- XNNPACK build failures
- Windows symlink errors
- MSVC kernel compilation failures
- Intel macOS limitations
- Duplicate kernel registration
- Build output reference table
- Tips for faster and more reliable builds
Reorganize the building skill to be concise and action-driven rather
than encyclopedic. Key changes:
- Add "do not ask questions" directive — detect and fix env issues automatically
- Make conda the mandatory path (no venvs, no system Python)
- Auto-fix for cmake >= 4.0 and PEP 668 errors
- Default action is `./install_executorch.sh --editable`
- Complete runner table from actual Makefile (adds voxtral, voxtral_realtime,
sortformer, silero-vad, llava, debug variants)
- Fix macOS commands: $(sysctl -n hw.ncpu) instead of $(nproc)
- Note that --preset macos uses Xcode generator
- Condense troubleshooting into scannable table
- Trim cmake options to most-used flags (full list in CMakeLists.txt)
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
- Add venv fallback when conda is not installed
- Handle conda PermissionError by checking env directory on disk
- Auto-fix cmake: missing or < 3.24 gets pip-installed, >= 4.0 works fine
- Add troubleshooting entries for conda not found and PEP 668 errors
- Remove heavy-handed directive banner; let skill structure guide behavior
Co-authored-by: Claude <noreply@anthropic.com>
Explicit decision tree at the top of Step 2 so Claude routes to the
right section based on keywords (Android, iOS, model names, cmake)
instead of always defaulting to the Python package build.
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
- Add ANDROID_NDK requirement and verification to Android section
- Fix CMAKE_BUILD_TYPE description: not all presets set it
- Separate build output table by flow (pip vs cmake vs cross-compilation)
Co-authored-by: Claude <noreply@anthropic.com>
Three issues that would break a fresh Mac checkout:
- Add Xcode Command Line Tools prerequisite check
- Add conda shell.bash hook for non-interactive shells (Claude Code / CI)
- Add brew install python@3.12 guidance for venv path when only 3.14+ exists
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Claude <noreply@anthropic.com>
Sign up for freeto 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.

1 participant

@psiddh
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Expand building Claude skill to cover general ET building from source - #2

Draft
psiddh wants to merge 15 commits into
mainfrom
expand-building-claude-skill
Draft

Expand building Claude skill to cover general ET building from source#2
psiddh wants to merge 15 commits into
mainfrom
expand-building-claude-skill

Conversation

@psiddh

Copy link
Copy Markdown
Owner

Summary

The existing /building Claude skill only covered runners (Makefile targets like make llama-cpu) and a couple of CMake workflow presets. This PR expands it into a comprehensive guide for building ExecuTorch from source.

Changes

Expanded .claude/skills/building/SKILL.md from 23 lines to 353 lines, covering:

New Sections

  1. Prerequisites — toolchain requirements (Python, CMake, C++17 compiler, submodules, ccache, Ninja)
  2. Building the Python Packageinstall_executorch.sh with all flags, backend enablement via CMAKE_ARGS, verification
  3. Building the C++ Runtime — presets table (16 presets), workflow presets, manual CMake, verification
  4. Building Runners — expanded Makefile targets (all current models)
  5. Cross-Compilation — Android (AAR + native), iOS/macOS frameworks, Windows (Clang-CL)
  6. Key Build Options — complete reference table of 27 CMake options with types, defaults, descriptions, and dependency chains
  7. Common Build Patterns — minimal, XNNPACK, profiling, tests, CMake subdirectory usage
  8. Troubleshooting — 12 common build issues with symptoms and fixes
  9. Build Output — reference table of artifacts and their locations
  10. Tips — practical advice for faster and more reliable builds

Motivation

The original skill was too narrow for Claude to help users build ExecuTorch from source. Users asking Claude to 'build ExecuTorch' would only get runner-specific instructions, missing the broader Python package install, standalone C++ runtime build, cross-compilation, and troubleshooting guidance.

Testing

This is a documentation-only change to a Claude skill file. No code changes.

Target: pytorch/executorch (to be submitted as upstream PR)

cc @Mengwei-Liu

psiddhand others added 15 commits March 9, 2026 16:41
The existing building skill only covered runners (Makefile targets) and
CMake workflow presets. This expands it to be a comprehensive guide for
building ExecuTorch from source, including:
- Prerequisites and toolchain requirements
- Building the Python package (install_executorch.sh with all flags)
- Building the C++ runtime standalone (presets, workflows, manual CMake)
- Building model runners (Makefile)
- Cross-compilation (Android, iOS, macOS, Windows)
- Complete build options reference with dependency chains
- Common build patterns (minimal, XNNPACK, profiling, tests, subdirectory)
- Troubleshooting section covering 12 common build issues:
- Submodule issues
- Stale build artifacts
- CMake version conflicts
- Python version mismatch
- Dependency version conflicts
- Missing python-dev headers
- Linking errors with --whole-archive
- XNNPACK build failures
- Windows symlink errors
- MSVC kernel compilation failures
- Intel macOS limitations
- Duplicate kernel registration
- Build output reference table
- Tips for faster and more reliable builds
Reorganize the building skill to be concise and action-driven rather
than encyclopedic. Key changes:
- Add "do not ask questions" directive — detect and fix env issues automatically
- Make conda the mandatory path (no venvs, no system Python)
- Auto-fix for cmake >= 4.0 and PEP 668 errors
- Default action is `./install_executorch.sh --editable`
- Complete runner table from actual Makefile (adds voxtral, voxtral_realtime,
sortformer, silero-vad, llava, debug variants)
- Fix macOS commands: $(sysctl -n hw.ncpu) instead of $(nproc)
- Note that --preset macos uses Xcode generator
- Condense troubleshooting into scannable table
- Trim cmake options to most-used flags (full list in CMakeLists.txt)
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
- Add venv fallback when conda is not installed
- Handle conda PermissionError by checking env directory on disk
- Auto-fix cmake: missing or < 3.24 gets pip-installed, >= 4.0 works fine
- Add troubleshooting entries for conda not found and PEP 668 errors
- Remove heavy-handed directive banner; let skill structure guide behavior
Co-authored-by: Claude <noreply@anthropic.com>
Explicit decision tree at the top of Step 2 so Claude routes to the
right section based on keywords (Android, iOS, model names, cmake)
instead of always defaulting to the Python package build.
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
- Add ANDROID_NDK requirement and verification to Android section
- Fix CMAKE_BUILD_TYPE description: not all presets set it
- Separate build output table by flow (pip vs cmake vs cross-compilation)
Co-authored-by: Claude <noreply@anthropic.com>
Three issues that would break a fresh Mac checkout:
- Add Xcode Command Line Tools prerequisite check
- Add conda shell.bash hook for non-interactive shells (Claude Code / CI)
- Add brew install python@3.12 guidance for venv path when only 3.14+ exists
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Claude <noreply@anthropic.com>
Sign up for freeto 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.

1 participant

@psiddh