Install Skills Configuration Tool
Configure skills by asking the user for their preferences and updating the skill files accordingly.
Arguments
- •
$0(optional): Skill name to configure. If not provided, configure all available skills that need setup.
Supported Skills
Build Skill
The build skill can be configured with:
- •
Build directory pattern: Where builds are stored relative to workspace
- •Always prompt with at least these options:
- •
build/${buildType}(e.g.,build/Debug,build/Release) - Recommended - •
build(single build directory)
- •
- •Additional optional patterns:
- •
cmake-build-${buildType}(CLion style) - •Custom pattern
- •
- •Always prompt with at least these options:
- •
Default build type: What build type to use when not specified
- •Options:
Release,Debug,RelWithDebInfo,ASAN,TSAN,MSAN,UBSAN
- •Options:
- •
Default target: What to build by default
- •Common targets:
clickhouse,clickhouse-server,clickhouse-client, or build all
- •Common targets:
Test Skill
The test skill can be configured with:
- •
Build directory pattern: Where to find the clickhouse binary for testing
- •Should match the build skill configuration
- •Used to set PATH for test runner
- •Always prompt with at least:
build/${buildType}andbuild
- •
Default build type for testing: Which build to use when running tests
- •Options:
Release,Debug,RelWithDebInfo,ASAN,TSAN, etc. - •Typically the same as the build skill default
- •Options:
Configuration Process
- •
Identify the skill to configure:
- •If
$ARGUMENTSis provided, configure that specific skill - •Otherwise, configure all available skills that need setup (build and test together)
- •If
- •
When configuring both build and test skills together:
- •Ask all questions upfront (build directory, default build type, default target)
- •Use the same answers to configure both skills
- •The test skill will use the same build directory and default build type as the build skill
- •After configuration, update CLAUDE.md to load both skills
- •
For the build skill:
a. Ask about build directory structure:
- •Use
AskUserQuestionto ask: "What is your build directory structure?" - •MANDATORY: Always include at least these two options:
- •
build/${buildType}- Separate directory per build type (e.g., build/Debug, build/Release) - •
build- Single build directory for all build types
- •
- •Additional optional options:
- •
cmake-build-${buildType}- CLion/JetBrains style - •Custom - Let user specify their own pattern
- •
b. Ask about default build type:
- •Use
AskUserQuestionto ask: "What should be the default build type?" - •Options (with descriptions):
- •
RelWithDebInfo- Optimized with debug info (recommended for development) - •
Debug- Full debug symbols, no optimization - •
Release- Fully optimized, no debug info - •
ASAN- AddressSanitizer build - •
TSAN- ThreadSanitizer build - •Other sanitizers as options
- •
c. Ask about default target:
- •Use
AskUserQuestionto ask: "What should be the default build target?" - •Options:
- •
clickhouse- Main binary (recommended) - •
clickhouse-server- Server only - •
clickhouse-client- Client only - •
all- Build everything - •Custom - Let user specify
- •
d. Update the build skill file:
- •Read
.claude/skills/build/SKILL.md - •Use
Edittool to update:- •Build directory path pattern
- •Default build type in the arguments section
- •Default target in the arguments section
- •Update examples to reflect new defaults
- •Update the "Build Process" section with the actual paths
- •Use
- •
For the test skill:
a. Ask about build directory structure:
- •Use the same build directory structure selected for the build skill
- •Or ask separately if configuring test skill independently
- •MANDATORY: When asking, always include at least these two options:
- •
build/${buildType}- Separate directory per build type - •
build- Single build directory
- •
b. Ask about default build type for testing:
- •Use
AskUserQuestionto ask: "Which build should be used for running tests?" - •Options (with descriptions):
- •
RelWithDebInfo- Optimized with debug info (recommended, same as build default) - •
Debug- Full debug build - •
Release- Optimized build - •
ASAN- AddressSanitizer build (for memory testing) - •
TSAN- ThreadSanitizer build (for concurrency testing)
- •
c. Update the test skill file:
- •Read
.claude/skills/test/SKILL.md - •Use
Edittool to update:- •Binary path in step 3 (verify server) to match build directory pattern
- •Binary path in step 4 (PATH export) to match build directory pattern
- •Update examples and notes with correct paths
- •
Confirm configuration:
- •Show summary of changes made
- •Confirm the skill is now configured for their workspace
- •Provide example commands they can use
- •
Update CLAUDE.md to load configured skills:
After configuring skills, update
.claude/CLAUDE.mdto include them in the "Always load and apply" section:a. Read the current CLAUDE.md:
- •Use
Readtool to read.claude/CLAUDE.md
b. Update the skills list:
- •Find the section that starts with "Always load and apply the following skills:"
- •The section currently lists only
.claude/skills/install-skills - •Add entries for all configured skills:
- •
.claude/skills/build- if build skill was configured - •
.claude/skills/test- if test skill was configured
- •
c. Use Edit to update CLAUDE.md:
- •Replace the skills list to include all configured skills
- •Maintain the format with one skill per line prefixed with "- "
- •Example result:
code
Always load and apply the following skills: - .claude/skills/install-skills - .claude/skills/build - .claude/skills/test
d. Confirm the update:
- •Inform user that CLAUDE.md has been updated to load the configured skills
- •Explain that the skills will be automatically available in future sessions
- •Use
Implementation Details
- •Always use
AskUserQuestionto gather preferences before making changes - •Use
Readto read the current skill files and CLAUDE.md - •Use
Editto make precise updates to skill files and CLAUDE.md - •Present clear options with descriptions to help users choose
- •IMPORTANT: When prompting for build directory, ALWAYS include at minimum:
build/${buildType}andbuildas options - •Validate user inputs before applying changes
- •Show before/after summary of what changed
- •After configuring skills, always update CLAUDE.md to include them in the load list
Example Usage
- •
/install-skills- Configure all skills (build and test together) - •
/install-skills build- Configure only the build skill - •
/install-skills test- Configure only the test skill
Notes
- •Configuration is workspace-specific and stored in
.claude/skills/ - •Changes are made to the local skill files
- •Users can manually edit skill files later if needed
- •The tool preserves other skill content while updating only the specified sections