Repository navigation
Offer to install Node.js in setup; hyphenate package names - #12
Merged
Merged
Conversation
The setup skill used to stop when Node.js was missing and point to nodejs.org. It now asks, then installs the current LTS with Homebrew or the official installer on macOS, or winget on Windows, and tells the author to restart their AI tool. Linux and failed installs still get pointed to nodejs.org. Package zip names now hyphenate the course title, like project folders, and keep underscores between title, version, and format so patterns such as *_cmi5.zip still match. Letters in any script are kept. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
svincent240
changed the base branch from
fix/plugin-skip-claude-mcp-json
to
main
October 29, 2026 21:35
# Conflicts: # CHANGELOG.md
Merged
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Stacked on #11, because both change the
setupskill and the changelog. Merge #11 first, then change this PR's base tomain(the Edit button next to the title). This repo doesn't auto-delete merged branches, so GitHub won't retarget it by itself.Node.js setup
The
setupskill used to stop when Node.js was missing and say "install it from nodejs.org." Now it asks first, then installs the current LTS:brew install node, or, without Homebrew, it downloads the official.pkg(the newest LTS fromhttps://nodejs.org/dist/index.json) and opens it so the author clicks through.winget install --id OpenJS.NodeJS.LTS --exact --source winget, or the official.msiifwingetis missing.sudounless asked.It never asks for passwords in chat, falls back to nodejs.org when an install fails or is blocked, and tells the author to quit and reopen their AI tool afterwards.
new-coursepoints tosetupfor missing Node, and the launcher's "Node too old" message now suggests asking the AI tool to set up CourseCode.Checked today: v26.13.0 is the newest LTS in
index.json, and itsnode-v26.13.0.pkg,-x64.msi, and-arm64.msiall return 200. TheOpenJS.NodeJS.LTSmanifest exists inmicrosoft/winget-pkgs.Package file names
The title part is hyphenated, so
Client Manager Coursebuildsclient-manager-course_v1.0.0_cmi5.zip(wasclient_manager_course_v1.0.0_cmi5.zip). Underscores still separate the title, version, and format, so*_cmi5.zippatterns keep matching. Apostrophes and punctuation are dropped, letters in any script are kept (安全研修_v1.0.0_cmi5.zip), and an empty title givescourse_…. Nothing in Cloud or Desktop parses these names: Cloud names its own exports (<course>-<client>-<format>.zip), and Desktop lists*.zip.Codex duplicate tools: no change needed
In Codex's MCP catalog (
codex-rs/codex-mcp/src/catalog.rs), servers are keyed by name and project config (precedence tier 2) wins over plugin servers (tier 0). A project's.codex/config.tomlcoursecodeentry replaces the plugin's, so Codex never lists the tools twice. The duplicate is specific to Claude Code, which #11 handles.Testing
npm test: 122 files, 1676 tests pass, including new package-name tests for English, accented, Japanese, and empty titlesnpm run lintpassesnpm run smoke:packed-createpasses and producesclient-manager-course_v1.0.0_cmi5.zipThe Node install steps haven't been run on a machine without Node.
🤖 Generated with Claude Code