Reusable instruction templates and architecture references for bootstrapping new projects.
- This repo is the template source of truth.
- Install
ai-bootstraponce, then run it from inside any target project. generalgives you the cross-project baseline instructions.- Stack profiles (for example
flutterornode) layer additional rules and references on top. - Paths are symlinked by default so template updates stay connected; use
--no-symlinkto copy instead. - Command-prefix allowlists are generated from one core config and bootstrapped across agent tools.
Why this structure:
AGENTS.mdand.gemini/styleguide.mdare entry points for different agents..roo/rules/holds the actual instruction system.docs_flutter/example-files/provides architecture examples for stronger first-pass generation.
Use ai-bootstrap from inside a target project directory.
ai-bootstrap: apply the general instruction setai-bootstrap node: apply general + node profileai-bootstrap flutter node: apply general + both profilesai-bootstrap --dry-run: preview changesai-bootstrap --force: overwrite existing target pathsai-bootstrap --no-symlink(or--no-sim-link): copy files instead of creating symlinksai-bootstrap --list-profiles: print discovered profile names
just install-bootstrap creates a symlink at ~/.local/bin/ai-bootstrap so the command is callable from anywhere.
- Source of truth:
config/command-prefixes/core.json - Generator:
scripts/generate-command-prefixes.py - Regenerate:
just allowlist-generate - Drift check:
just allowlist-check ai-bootstrapautomatically prepares generated allowlist files before applying templates.- In normal mode, it runs generator write mode.
- In
--dry-runmode, it runs generator check mode (--check) to avoid writes.
Generated outputs:
.codex/rules/default.rules.gemini/policies/command-prefixes.toml.claude/settings.json.vscode/settings.json(Roo settings keys)
Profiles are discovered automatically from the template source:
- Any
.roo/rules/<profile>.mdfile (excludinggeneral.mdandAA-CRITICAL-INSTRUCTION.md) - Any
docs_<profile>/directory
This means adding new framework files/folders to those locations immediately creates a new usable profile.
Base files always applied:
AGENTS.md.claude/settings.json.codex/rules/default.rules.gemini/styleguide.md.gemini/policies/command-prefixes.toml.roo/rules/AA-CRITICAL-INSTRUCTION.md.roo/rules/general.md.vscode/settings.json
Each selected profile adds, when present:
.roo/rules/<profile>.mddocs_<profile>/
ai-bootstrap: main executable script for dynamic profile discovery, stacking, and symlink/copy apply modesjustfile: convenience commands for running/installing the scriptconfig/command-prefixes/core.json: source of truth for command-prefix allowlistsscripts/generate-command-prefixes.py: generator for per-agent allowlist files.codex/rules/default.rules: generated Codex command-prefix rules.gemini/policies/command-prefixes.toml: generated Gemini CLI policy rules.claude/settings.json: generated Claude Code command permissions.vscode/settings.json: generated Roo workspace command permissions.roo/rules/: base and stack-specific instruction rules.gemini/styleguide.md: Gemini entry instructionsdocs_flutter/example-files/: flutter architecture reference filesdocs/features/bootstrap-instructions.md: feature notes for bootstrap behaviordocs/features/command-prefix-allowlists.md: feature notes for cross-agent allowlist generation