Idempotently bootstrap any repository with standard development tools, hooks, and workflows. Use when starting work on a new repo, onboarding to an existing project, or ensuring a repo has proper CI/CD setup. Configures: git hooks (lefthook), commit message templates, PR templates, and GitHub Actions for lint/format/type-check/build. Prompts for user confirmation before changes. Triggers: "bootstrap repo", "setup hooks", "configure CI", "rig", "standardize repo".
Resources
3Install
npx skillscat add slamb2k/mad-skills/rig Install via the SkillsCat registry.
Rig - Repository Bootstrap
When this skill is invoked, IMMEDIATELY output the banner below before doing anything else.
Pick ONE tagline at random — vary your choice each time.
CRITICAL: Reproduce the banner EXACTLY character-for-character. The first line of the art has 4 leading spaces — you MUST preserve them.
{tagline}
⠀ ██╗██████╗ ██╗ ██████╗
██╔╝██╔══██╗██║██╔════╝
██╔╝ ██████╔╝██║██║ ███╗
██╔╝ ██╔══██╗██║██║ ██║
██╔╝ ██║ ██║██║╚██████╔╝
╚═╝ ╚═╝ ╚═╝╚═╝ ╚═════╝Taglines:
- Rigging up the production line...
- Bolting down the framework!
- Assembling the scaffolding!
- Hoisting the infrastructure!
- Locking in the safety harness!
- Wiring up the control panel!
- Setting up the drill floor!
- From blueprint to build-ready!
Idempotently bootstrap repositories with standard development infrastructure.
Prompts and report schemas are in references/. Configuration procedures are
in references/configuration-steps.md.
Key principle: Prompt user before making changes. Report findings first,
get approval, then act.
Pre-flight
Before starting, check all dependencies in this table:
| Dependency | Type | Check | Required | Resolution | Detail |
|---|---|---|---|---|---|
| git | cli | git --version |
yes | stop | Install from https://git-scm.com |
| lefthook | npm | npx lefthook --help |
yes | install | npm install -g lefthook |
| gh | cli | gh --version |
yes | url | https://cli.github.com |
For each row, in order:
- Run the Check command (for cli/npm) or test file existence (for agent/skill)
- If found: continue silently
- If missing: apply Resolution strategy
- stop: notify user with Detail, halt execution
- url: notify user with Detail (install link), halt execution
- install: notify user, run the command in Detail, continue if successful
- ask: notify user, offer to run command in Detail, continue either way (or halt if required)
- fallback: notify user with Detail, continue with degraded behavior
- After all checks: summarize what's available and what's degraded
Phase 1: System Requirements Check
Launch Bash subagent (haiku — simple checks):
Task(
subagent_type: "Bash",
model: "haiku",
description: "Check system requirements",
prompt: <read from references/phase-prompts.md#phase-1>
)Parse SYSTEM_REPORT. If any requirement fails, use AskUserQuestion:
Options for missing git config:
- "I'll configure it manually"
- "Configure for me with: [email] / [name]"
Stop if user chooses manual. Configure if values provided.
Phase 2: Repository Analysis
Launch Bash subagent (haiku):
Task(
subagent_type: "Bash",
model: "haiku",
description: "Analyze repository",
prompt: <read from references/phase-prompts.md#phase-2>
)Parse REPO_REPORT.
Phase 3: Present Findings & Get Approval
Present analysis to user with AskUserQuestion:
Repository Analysis Complete
Current State:
Git initialized: {status}
Branch: {branch}
Lefthook: {status}
Commit template: {status}
PR template: {status}
CI workflow: {status}
{if azdo and unregistered_pipelines:}
Azure Pipelines: {N} YAML file(s) found, {M} not yet registered
Detected Stack:
Type: {project_type}
Components: {detected_components}
Available scripts: {available_scripts}
Proposed Changes:
{numbered list of what will be added/configured}
{if azdo and unregistered_pipelines: "Register Azure Pipelines: {list of YAML paths}"}Options:
- "Yes, configure everything"
- "Let me choose what to configure"
- "Cancel"
If "Let me choose", present individual options as multi-select.
Phase 4: Execute Configuration
For each approved item, follow the procedures inreferences/configuration-steps.md.
Phase 5: Verification
Launch Bash subagent (haiku):
Task(
subagent_type: "Bash",
model: "haiku",
description: "Verify configuration",
prompt: <read from references/phase-prompts.md#phase-5>
)Parse VERIFY_REPORT.
Phase 6: Final Report
Present summary using the template in references/report-template.md.
Idempotency Rules
- Skip items already correctly configured
- Update items that exist but are outdated (prompt user first)
- Add items that are missing
- Never delete user's existing configuration without explicit approval
- Merge rather than replace when possible (e.g., add missing hooks)
Error Handling
If any step fails:
- Report the specific failure
- Offer to skip and continue, or abort
- Include troubleshooting suggestions
Common issues:
- No package manager -> suggest installing npm/bun
- Permission denied -> check file permissions
- Lefthook install fails -> try global install
- Git not initialized -> offer to initialize