Conversation
Created detailed plan addressing all three requirements: 1. CLI installation commands: - unityctl install package (UPM/local) - unityctl install skill (Claude Code integration) - unityctl init/config (project path setup) - unityctl setup (combined one-command setup) 2. Update functionality: - unityctl update (self-update CLI and bridge) - Auto-restart bridge after updates - Update Unity package references 3. Consolidated package distribution: - Analysis of 4 different approaches - Recommendation: Installation script + update command - Maintains good architecture while improving UX Plan includes: - Detailed implementation approach for each feature - Technical specifications and code examples - User experience mockups - Phased implementation sequence (6 PRs) - Cross-platform considerations - Testing strategy - Success criteria Ready for review and implementation.
Researched 13+ popular dev tools (git, npm, docker, cargo, dotnet, kubectl, gh, rustup, terraform, etc.) to identify best practices for CLI command structure. Key findings: - Modern CLIs use noun-verb grouping (docker, kubectl, gh) - 'init' is universal for directory initialization - 'config set/get/list' is standard pattern - 'package add' matches dotnet pattern better than 'install package' Recommended changes to original plan: - unityctl install package → unityctl package add - unityctl install skill → unityctl skill add - unityctl config set-project → unityctl config set project-path - Add config get/list commands - Add --yes flags for non-interactive mode - Add granular update flags (--tools-only, --package-only) Benefits: - More discoverable (grouped commands) - Better alignment with dotnet CLI - Natural extensibility (package remove, skill status, etc.) - Familiar to users of modern dev tools
New commands: - setup: One-command setup (config + package + skill) - Auto-detects Unity project or prompts for path - Creates config only when running from outside project - config set/get/list: Configuration management - package add/remove/update/status: Unity package management - skill add/remove/status: Claude Code skill management - update: Self-update CLI, bridge, and Unity package Other changes: - Embed SKILL.md as resource in CLI assembly - Add install.sh and install.ps1 scripts for one-liner install - Removed init command (merged into setup) - Setup no longer starts bridge (install vs runtime separation)
bee07b0 to
3dd9a05
Compare
- SetupCommand: Use case-sensitive path comparison on Unix, case-insensitive on Windows - PackageCommands: Validate --method parameter and provide clear error for invalid values
- Align skill add description with package add ("Add" instead of "Install")
- Rename UpdateStepResult.Component to Step for consistency with SetupStepResult
- Remove unnecessary async pattern from RemoveSkill and ShowSkillStatus
- Make StatusPackageAsync private (not called externally)
Strip build metadata (everything after '+') from AssemblyInformationalVersion. .NET SDK appends git commit hashes to this attribute, causing invalid URLs like: #v0.3.1+826b410a0bbd4027888ff31edc464ac26d110d09 Now correctly generates: #v0.3.1
Skills must be in a folder named after the skill with a SKILL.md file inside. Changed from: .claude/skills/unity-editor.md Changed to: .claude/skills/unity-editor/SKILL.md
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.
Summary
Implements issue #8: Improve onboarding and setup.
unityctl setup- One-command setup (config + package + skill)unityctl config set/get/list- Configuration managementunityctl package add/remove/update/status- Unity package management (UPM or local)unityctl skill add/remove/status- Claude Code skill management (local or global)unityctl update- Self-update CLI, bridge, and Unity package from NuGetAlso includes:
scripts/install.shandscripts/install.ps1for one-liner installationCloses #8
Test plan
unityctl setupfrom Unity project directoryunityctl setup --project <path>from parent directoryunityctl package statusto verify package detectionunityctl skill add --globaland verify file createdunityctl update --checkto verify NuGet queryunityctl config set project-path <path>and verify config created