Portable AI assistant configs and shared skills for Claude Code, Codex, Gemini CLI, and OpenCode.
The current operating model is skills-first, not agents/-first. Shared workflows live in skills/ and are mirrored into each tool's native skills directory. For day-to-day execution, the primary path is the Beads workflow under skills/personal/, especially beads-coordinator, beads-worker, and beads-pr-reviewer-worker.
- One shared skill library that can be consumed by multiple CLI agents.
- Tool-native configs under
.claude/,.codex/, and.gemini/. - Beads-backed work management with explicit workflows instead of ad hoc TODOs.
- Isolated implementation via worktrees and PR-review follow-up via dedicated review workers.
.claude/ # Claude Code config and linked skill entrypoints
.codex/ # Codex config, prompts, rules, and linked skill entrypoints
.gemini/ # Gemini CLI config plus linked skills/antigravity skills
opencode/ # OpenCode config
skills/ # Canonical shared skill library
skills/personal/ # Primary home of Beads and project workflow skills
agents/ # Older agent prompts kept for reference / selective reuse
scripts/ # Helper scripts used by the genai setup
agents/ still exists, but it is no longer the center of the system. Treat it as legacy/reference material unless you have a specific reason to use one of those prompts.
The skills/ tree is intentionally split by ownership:
skills/personal/is the layer built and maintained by me.- These are the primary place for custom workflow logic, project-shaping methods, and Beads execution patterns.
- Some personal skills are original; some are maintained forks adapted to my workflow.
skills/personal/excalidraw-diagram/is an example of that pattern.
Everything else under top-level skills/ should be treated as upstream-derived material:
- Some directories are checked out as git submodules from open source upstreams.
- The current submodules are
skills/superpowers,skills/Skill_Seekers,skills/anthropic-skills, andskills/notebooklm-skill. - Every other non-
personal/skill directory is a vendored copy of an open source skill or skill bundle.
In practice, that means:
- If the workflow is specific to my operating model, it belongs in
skills/personal/. - If a top-level skill came from upstream, prefer updating from upstream or forking intentionally instead of casually rewriting the vendored copy.
- Tool-specific skill directories under
.claude/skills,.codex/skills, and.gemini/skillsare mirrors of this source tree, not the source of truth.
Each skill lives in skills/<name>/SKILL.md or skills/personal/<name>/SKILL.md. Those source directories are symlinked into:
~/.claude/skills/~/.codex/skills/~/.gemini/skills/~/.gemini/antigravity/skills/
The linked name is flattened, so skills/personal/beads-worker/ becomes beads-worker in the tool-specific skills directory.
Because the linked namespace is flattened by basename, the canonical source remains the skills/ tree. Provenance and ownership should always be reasoned about from the source directory, not from the mirrored tool-specific link.
The main personal workflow is:
- Use
beads-writeror normalbdcommands to create and shape issues. - Start
beads-coordinatorto pull ready work frombd ready. beads-coordinatorrunsbeads-cleanup, claims work, creates isolated worktrees, and dispatches workers.beads-workerexecutes one implementation issue in its own worktree.beads-pr-reviewer-workerhandles PR review follow-up, review threads, and merge-or-retry decisions, then reports the outcome back to the coordinator for Beads closure.
This is the preferred model for sustained throughput. The coordinator coordinates; workers implement or review.
Related personal workflow skills include:
project-shapefor doctrine/spec/topology setupproject-reviewfor repo auditsproject-directionfor spec-driven prioritizationreconcile-spec-to-projectfor spec/code reconciliation
Clone this repo and symlink its tool configs into the standard locations in your home directory:
git clone --recursive https://github.com/Tzeusy/ai-bootstrap.git
cd ai-bootstrap
ln -sfn "$(pwd)/.claude" ~/.claude
ln -sfn "$(pwd)/.codex" ~/.codex
ln -sfn "$(pwd)/.gemini" ~/.geminiMirror the shared skills into each tool:
mkdir -p ~/.claude/skills ~/.codex/skills ~/.gemini/skills ~/.gemini/antigravity/skills
declare -A skill_map
while IFS= read -r -d '' skill; do
dir="$(dirname "$skill")"
name="$(basename "$dir")"
skill_map["$name"]="$(realpath "$dir")"
done < <(find "$(pwd)/skills" -maxdepth 3 -type f -name SKILL.md -print0)
for name in "${!skill_map[@]}"; do
dir="${skill_map[$name]}"
ln -sfn "$dir" ~/.claude/skills/"$name"
ln -sfn "$dir" ~/.codex/skills/"$name"
ln -sfn "$dir" ~/.gemini/skills/"$name"
ln -sfn "$dir" ~/.gemini/antigravity/skills/"$name"
doneIf you prefer an explicit standalone mapping, the relevant targets are:
ln -sfn "$(pwd)/.claude" "$HOME/.claude"
ln -sfn "$(pwd)/.codex" "$HOME/.codex"
ln -sfn "$(pwd)/.gemini" "$HOME/.gemini"
mkdir -p "$HOME/.config"
ln -sfn "$(pwd)/opencode" "$HOME/.config/opencode"This repo is intended to work standalone. Do not assume an enclosing parent repo or nested prefixes for local paths; the source of truth is this repository root, and the destination is the corresponding path under $HOME.
- Want continuous issue execution: start with
beads-coordinator - Want to implement one already-assigned issue in a worktree: use
beads-worker - Want PR review follow-up and merge handling: use
beads-pr-reviewer-worker - Want to create or decompose backlog work: use
beads-writer
Machine-specific settings that should stay local:
.codex/config.tomlproject entries and private absolute-path skill config.gemini/settings.jsonlocal telemetry or runtime settings.gemini/installation_id- Any private skills you do not want in version control