Our review
Instantiates a project from a Bootstrapp template bundle by reading its spec, resolving parameters with defaults, and running a generation script.
Strengths
- Automates project scaffolding with parameterized templates.
- Handles parameter resolution with default values and dependency conditions.
- Explicitly aborts if required parameters are missing, preventing silent failures.
- Supports various parameter types (string, bool, option) with proper quoting for values with spaces.
Limitations
- Only works with Bootstrapp-specific templates (requires a Bootstrapp.json file).
- No interactive parameter prompting—aborts if defaults are missing.
- Depends on Python 3 and the bootstrapp.py script being present in the skill's directory.
When you need to quickly scaffold a project from a Bootstrapp template with all parameters having defaults.
If the template requires interactive parameter input or if you need to customize parameters beyond the default values.
Security analysis
CautionThe skill uses Bash to execute a Python script with arguments derived from user-provided template path and parameters. While the script is fixed, the lack of input validation could allow unexpected behavior if the script itself has vulnerabilities.
- •Runs a Python script with user-supplied arguments, which could lead to unintended behavior if the script is not properly sanitized
- •No validation on user-provided template path
Examples
Use the bootstrapp skill to instantiate a project from /path/to/templateI want to create a new project using the Bootstrapp template at ~/templates/ios-appbootstrapp /home/user/templates/my-templatename: bootstrapp description: Instantiate a project from a Bootstrapp template bundle user-invocable: true allowed-tools: Bash, Read argument-hint: [template-path]
Bootstrapp Template Instantiation
The user wants to instantiate a template. The template path is: $ARGUMENTS
Instructions
Step 1: Read the template spec
Read Bootstrapp.json inside the template path. Also read Bootstrapp.md if it exists and show its contents to the user.
Step 2: Resolve parameters using defaults
Read the parameters array from the spec. For each parameter, use its default value. Skip parameters whose dependsOn references a parameter that evaluates to false.
If ANY parameter does NOT have a default value, ABORT. Do not run the script. Instead, list ALL parameters in a table showing:
- Parameter ID
- Type (String, Bool, Option)
- Default value or MISSING
Tell the user which parameters are missing defaults and ask them to provide values.
Step 3: Run the script
Only run this if ALL parameters have values (from defaults or user-provided).
The script is at scripts/bootstrapp.py relative to this skill's directory.
python3 scripts/bootstrapp.py "<template-path>" \
--param KEY1=VALUE1 --param KEY2=VALUE2 \
--exclude-package NAME \
--verbose
- Include ALL resolved parameters.
- Quote values with spaces:
--param "COPYRIGHT_HOLDER=Apparata AB" - For Option params, pass the option string:
--param LICENSE_TYPE=MIT - For Bool params, pass
trueorfalse:--param GIT_INIT=false - Include all packages by default (no
--exclude-packageunless the user says otherwise).
Step 4: Report result
The script prints the output path as its last line to stdout. Tell the user the full path. For Xcode projects, mention they can open the .xcodeproj.
Then ask if they want to open the output directory in Finder (open "<path>").
Next.js App Router Expert
Development
A skill that turns Claude into a Next.js App Router expert.
README Generator
Development
Creates professional and comprehensive README.md files for your projects.
API Documentation Writer
Development
Generates comprehensive API documentation in OpenAPI/Swagger format.