About gh-bootstrap
gh-bootstrap is a skill for maintainers that creates GitHub repository configuration files. It detects the project stack, fetches and renders templates, then validates the output while requiring approval before overwriting existing files.
Key features
- 01Detect languages, frameworks, and GitHub files
- 02Choose templates by operating mode
- 03Fetch and render template files
- 04Validate output and placeholders
- 05Resolve conflicts with existing files
Use cases
- 01Set up GitHub files for a new repository
- 02Add community files to an existing project
- 03Select workflow templates for a project stack
Install
Copy the command and run it in a terminal.
$
npx skills add https:/ / github.com/ bahayonghang/ my-ai-cli-toolkit --skill gh-bootstrapAfter installing, type/gh-bootstrapin Claude Code to confirm it loaded.
Bundled files
References and scripts installed along with SKILL.md.
agents/interface.yamlevals/evals.jsonscripts/gh_bootstrap_runtime.pyspecs/template-catalog.mdDetails
From the project READMEIn the commands below,
<skill-dir>is this skill's base directory, announced when the skill loads. Substitute the literal path; it is not an environment variable. The runtime scriptgh_bootstrap_runtime.pyis the only execution engine — never hand-roll the detect / fetch / render / validate steps.
- Ask the user for communication language and template language preference, plus the desired mode: quick (sensible defaults, minimal interaction), custom (choose specific templates), or full (all available templates).
- Detect languages, frameworks, and existing GitHub files with
python "<skill-dir>/scripts/gh_bootstrap_runtime.py" detect "$ARGUMENTS"before planning. If detection returns no languages (empty project or unrecognized stack), ask the user to specify the primary language manually instead of guessing. - Call
AskUserQuestionto collect necessary configuration variables (project name, GitHub owner/repo, author, license, and any component-specific values). - Scan for existing config files and plan conflict resolution. Never overwrite existing files without explicit user approval.
- Read
specs/template-catalog.mdto map required files to repository URLs, then usepython "<skill-dir>/scripts/gh_bootstrap_runtime.py" fetch-template ...to download the chosen template sources. If a template download fails (network error, 404, timeout), report which template failed and offer to skip it or retry. - Render files with
python "<skill-dir>/scripts/gh_bootstrap_runtime.py" render-template ...so placeholder replacement is deterministic. - Validate the generated tree with
python "<skill-dir>/scripts/gh_bootstrap_runtime.py" validate-tree <target-root>and refuse completion if unreplaced{{placeholders}}remain.
Mandatory Rules
- NEVER write config files from memory; MUST render from downloaded templates.
- ALWAYS replace
{{variable}}placeholders (e.g.{{projectName}}); NEVER alter GitHub Actions expressions (${{ github.* }},${{ secrets.* }}) or action version pins (e.g.@v4). The renderer only substitutes{{...}}. - Output targets
.github/workflows/, issue templates, PR templates, and baseline community files.
Comments
Markdown supported