Assistant Builder
Build production-ready Claude Code plugin projects that wrap CLIs or APIs.
Quick Reference
| I want to... | Script | Type |
|---|---|---|
| Create new project | scaffold_project.py |
Interactive |
| Add skill to project | add_skill.py |
Interactive |
| Generate CLI library | scaffold_library.py |
Interactive |
| Validate structure | validate_project.py |
Check |
| Migrate old project | migrate_project.py |
Transform |
| Show reference patterns | show_reference.py |
Info |
| List templates | list_templates.py |
Info |
| Show template | show_template.py |
Info |
Project Types
1. CLI Wrapper Projects
Wrap an existing CLI tool (like glab, gh, aws, kubectl):
python scaffold_project.py \
--type cli-wrapper \
--name "GitLab-Assistant-Skills" \
--topic "gitlab" \
--cli-tool "glab" \
--cli-install "brew install glab"
Generated structure:
.claude-plugin/with plugin.jsonskills/gitlab-assistant/(hub router)skills/gitlab-{resource}/per skillskills/shared/docs/(SAFEGUARDS, QUICK_REFERENCE)- No library package (uses existing CLI)
2. Custom Library Projects
Build new CLI for an API (like Jira, Confluence, Splunk):
python scaffold_project.py \
--type custom-library \
--name "MyAPI-Assistant-Skills" \
--topic "myapi" \
--api "My API" \
--api-url "https://api.example.com" \
--auth api_key
Generated structure:
myapi-assistant-skills-lib/with:pyproject.tomlwith CLI entry point- HTTP client, error handler, validators
- Click CLI commands structure
.claude-plugin/with plugin.jsonskills/(pure documentation)requirements.txtreferencing library
3. Hybrid Projects
Wrap CLI and extend with custom functionality:
python scaffold_project.py \
--type hybrid \
--name "GitHub-Assistant-Skills" \
--topic "github" \
--cli-tool "gh" \
--api-url "https://api.github.com"
Adding Skills
cd /path/to/project
python add_skill.py \
--name "merge-request" \
--description "Merge request operations" \
--operations "list,get,create,update,delete"
Generated:
skills/{topic}-{name}/SKILL.mdwith CLI command referencesskills/{topic}-{name}/docs/subdirectory- Updates to plugin.json
Generating CLI Libraries
For custom library projects, scaffold a complete Python package:
python scaffold_library.py \
--name "myapi-assistant-skills-lib" \
--topic "myapi" \
--api "My API" \
--api-url "https://api.example.com"
Generated:
- Complete Click CLI with commands
- HTTP client with retry/pagination
- Configuration management
- Error handling hierarchy
- Output formatters
- Input validators
- Test infrastructure
Validating Projects
python validate_project.py /path/to/project
Checks:
.claude-plugin/plugin.jsonexists- VERSION file present
- Root conftest.py exists
- No scripts in skills/ directories
- Hub/router skill present
- Risk levels documented
- Shared documentation complete
Migrating Existing Projects
Transform old .claude/skills/ structure to new .claude-plugin/ pattern:
# Analyze and preview
python migrate_project.py /path/to/old/project --dry-run
# Migrate in place (creates backup)
python migrate_project.py /path/to/old/project
# Migrate to new location
python migrate_project.py /path/to/old/project --output /path/to/new/project
Transforms:
- Moves skills from
.claude/skills/toskills/ - Creates
.claude-plugin/with plugin.json - Generates VERSION, conftest.py, pytest.ini
- Creates shared documentation
Reference Projects
Learn from production implementations:
| Project | Skills | Type | Strength |
|---|---|---|---|
| Jira-Assistant-Skills | 14 | Custom Library | Mock architecture |
| Confluence-Assistant-Skills | 17 | Custom Library | Risk documentation |
| Splunk-Assistant-Skills | 14 | Custom Library | Test infrastructure |
# Show patterns from specific project
python show_reference.py --project jira --topic client-pattern
# Compare patterns across projects
python show_reference.py --topic testing-patterns --compare-all
# List available topics
python show_reference.py --list-topics
Production Architecture
The production pattern is thin documentation wrappers around a publishable CLI library:
my-project/
├── .claude-plugin/ # Plugin manifest
│ ├── plugin.json
│ ├── marketplace.json
│ └── commands/ # Slash commands
├── skills/ # Pure documentation
│ ├── {topic}-assistant/ # Hub/router skill
│ ├── {topic}-{skill}/ # Feature skills (SKILL.md only)
│ └── shared/docs/ # SAFEGUARDS, QUICK_REFERENCE
├── {topic}-assistant-skills-lib/ # Optional: CLI library
├── conftest.py # Root test fixtures
├── pytest.ini # Test configuration
├── VERSION # Single version source
└── CLAUDE.md # Project guidance
Key principles:
- Skills are documentation, not code
- Scripts live in separate library packages
- Hub/router skill routes requests
- Risk levels documented everywhere
- VERSION is single source of truth
Risk Level System
All operations marked with risk indicators:
| Risk | Symbol | Description |
|---|---|---|
| Safe | - |
Read-only operations |
| Caution | ⚠️ |
Single-item modifications |
| Warning | ⚠️⚠️ |
Bulk/destructive operations |
| Danger | ⚠️⚠️⚠️ |
Irreversible operations |