My personal AI coding agent configuration, with any quirks, oddities, opinionated rules, and hallucination-inducing prompt fragments I live with on a daily basis.
One repo, one base rule set, rendered into per-agent global instruction files.
Supports Claude Code, Codex, and any tool that reads AGENTS.md.
Warning
This is my personal config. It is not a starter kit, a framework, or a best-practices guide. If you use it as-is, things will probably work — but they'll work my way, which may not be your way. Browse for ideas, steal what's useful, but don't say I didn't warn you.
git clone https://github.com/jimeh/agentic.git ~/.config/agentic
cd ~/.config/agentic
mise run setup # install dependencies and local git hooks
mise run agent-config:install # create symlinks (skips existing)
# mise run agent-config:force # replace existing (backs up to .bak)This creates symlinks from the repo into ~/.claude/, ~/.agents/, and
~/.codex/, and registers configured plugin marketplaces via the Claude CLI.
Use the mise run agent-config:* tasks for installation.
Install only project dependencies with:
mise run deps:installGit hooks are managed by Lefthook and installed by mise run setup. To install
or refresh hooks directly:
mise run hooks:installrules/— Source Markdown for global behavior rules. Each render target declares itself withtype: agentic-rulesfrontmatter and composes its content with<!-- include: path -->directives. Seerules/README.md.generated/— Rendered global rule files (CLAUDE.md,CODEX.md,OPENCODE.md). These are symlinked into agent config directories; editrules/and runmise run rules:buildinstead of editing generated files directly.agent-config.toml— Installer config for fixed symlinks, skill symlink roots, stale-link cleanup paths, Claude plugin marketplaces, and auto-installed Claude plugins. It points editors atschemas/agent-config.schema.json; JSON and YAML config files are also supported.claude/— Claude Code settings and statusline script.codex/— OpenAI Codex config.skills/— Custom skills (auto-discovered by the agent config installer).thirdparty/— Vendored third-party skills plus manifest and lock metadata.plugins/— Source retained for deprecated Claude Code plugins.packages/agent-config/— Config installer, schema generator, and the compatibility CLI used by Mise tasks.packages/agent-rules/— Global rule renderer and drift checker.packages/agent-harness/— Agent metadata checks and executable skill and plugin test runner.packages/agent-headless/— Shared core for the streamed headless CLI runners: artifacts, stream handling, progress, and exit policy.packages/claude-headless/— Streamed Claude CLI runner with private run artifacts and package-owned integration tests.packages/codex-headless/— Streamed Codex CLI runner with the same artifact layout, sandbox and session handling, and integration tests.packages/agent-pr-monitor/— Read-only GitHub PR snapshots and quiet waiting, with persisted change detection and compact results for agents.packages/agent-judge/— Typed TypeSafe evaluations throughmise run judge, with private optional artifacts and a bounded history reranking experiment.packages/vendor-skills/— Reviewed third-party skill intake and update tooling.docs/references/— External articles and guides.
Skills are auto-discovered — drop a directory in the right place, re-run the
agent config installer, done. Vendored third-party skills under
thirdparty/skills/ are installed the same way, but only the explicit update
task fetches from upstream. No plugins are currently published through the local
Claude marketplace; the remaining plugin sources are retained but deprecated.
Bounded codex-* and claude-* analysis, implementation, and review skills are
available to both engines. They start workers through the headless runners, or
as T3 Code child tasks through t3-delegation when the session runs inside T3
Code. implement-feature owns implementation orchestration for both engines.
react-high-performance and the vendored unslop and web-design-guidelines
skills are excluded from installation; shared writing guidance lives in
rules/base.md. See agent instructions for selection and worker
boundaries.
Use mise run setup to bootstrap a delivery worktree, but do not run
agent-config install there. Deliver configuration changes through a PR;
installer tests use synthetic roots and homes.
Update vendored third-party skills with:
mise run thirdparty:add-skills -- vercel-labs/agent-skills
mise run thirdparty:add-skills -- vercel-labs/agent-skills --skill skill-name
mise run thirdparty:update-skills
mise run thirdparty:update-skills:dry-run
mise run thirdparty:update-skills:checkThose tasks call the repo-local vendor-skills CLI through Bun. Its
implementation and colocated tests live under packages/vendor-skills/src/. The
add command accepts full git URLs or GitHub owner/repo shorthand and opens a
multi-select prompt when --skill is not provided, then vendors selected skills
and updates the lockfile. --skill matches a skill's frontmatter name or its
upstream directory name. Individual manifest skill entries can set ref to pin
or test a skill separately from the source default, and
"overrides": { "explicitOnly": true } to vendor a skill that loads only when
the user invokes it: /name in Claude, or an explicit mention in Codex.
Render global instruction files after changing rules/:
mise run rules:build
mise run rules:checkUpdate pinned GitHub Actions with Pinact:
mise run actions:updateNew worktrees can be bootstrapped with Treeboot:
mise run treeboot
mise run treeboot:checkRun local tests with:
mise run test
mise run test:plugins
mise run test:skills
mise run test:claude-headless
mise run test:codex-headless
mise run test:pr-monitorFormat Markdown and TypeScript with:
mise run format
mise run format:checkMise-managed tools are locked in mise.lock. Bun stays on the 1.3 release
line; other tools stay on their current major release lines with Mise's
three-day minimum_release_age. Refresh tool lock metadata after changing
mise.toml with:
mise lock --minimum-release-age 3dNo plugins are currently supported or published by this repository. Sources
under plugins/ are deprecated and retained for reference; they are not
available from the marketplace.
Deprecated: strip-git-cwd
A PreToolUse hook that strips redundant git -C <cwd> flags from Bash
commands when the path matches the current working directory. Claude Code tends
to add these unnecessarily, and the -C flag changes the command string enough
that pre-approved git commands no longer match the allowlist — causing repeated
permission prompts.
Handles all -C syntax variants (space, =, bare, quoted) and compound
commands (&&, ;).
Deprecated: git-commands
Slash commands for common git workflows:
/commit— Stage changes, create a well-formed commit./commit-push-pr— Commit, push, and open a PR./rebase— Rebase onto upstream main/master./clean-gone-branches— Clean up branches deleted on remote.
Derived from the official commit-commands plugin, heavily modified.
Deprecated: agents-md
Slash commands for managing AGENTS.md files:
/claude-md-to-agents-md— Convert CLAUDE.md to AGENTS.md./generate-agents-md— Generate AGENTS.md from codebase analysis./refactor-agents-md— Refactor AGENTS.md for progressive disclosure.
Deprecated: phased-work
A disciplined research-plan-implement workflow. Instead of jumping straight to code, you move through distinct phases so every decision is reviewed before implementation begins.
/research— Deep-read a codebase area, write findings toresearch.md./plan— Create a detailed implementation plan inplan.md./refine— Address inline notes you've added to the plan./todo— Add a granular task breakdown to the plan./implement— Execute the plan mechanically, marking progress./review— Optional post-implementation sanity check.
Also includes agent-agnostic prompt snippets for use with any AI coding assistant.
Deprecated: fd
Initializes a lightweight Feature Design (FD) tracking system in any project. Scaffolds directory structure, templates, index, project-local slash commands, and CLAUDE.md conventions for the full FD lifecycle.
/fd-init— Set up the FD system in the current project.
Based on the Feature Design system by manuelschipper.
agent-pr-monitor reads GitHub through Octokit and waits without model calls.
The installer links it into ~/.local/bin/; from this checkout, use the Mise
task directly:
mise run pr-monitor -- snapshot https://github.com/OWNER/REPO/pull/123
mise run pr-monitor -- wait https://github.com/OWNER/REPO/pull/123The first snapshot establishes a durable baseline. Subsequent waits stay quiet
until the head changes, a check fails, checks complete, another account leaves
or edits feedback, a thread's state changes, the branch starts to conflict, or
the PR closes, merges, or reopens. The authenticated account's own comments and
reviews do not wake a wait. Each poll is a single GraphQL request, once a minute
by default, and --initial-delay postpones the first poll when nothing can
happen yet. Each invocation prints one JSON result and saves private artifacts.
It never writes to GitHub or decides whether a PR is ready to merge. Run
agent-pr-monitor --help for authentication, timeouts, and state paths. The
babysit-pr monitoring reference
describes agent execution and result handling.
Goal-aware probes evaluate selected conditions once or wait for all of them:
mise run pr-monitor -- evaluate "$PR_URL" --until checks-pass --checks required
mise run pr-monitor -- wait "$PR_URL" --until checks-pass \
--until review-approved --reviewer coderabbitai
mise run pr-monitor -- evaluate "$PR_URL" --until review-finished \
--reviewer coderabbitaievaluate returns satisfied: true, false, or null (unknown), with
evidence for each condition. Goal calls leave the change cursor untouched.
Review conditions use submitted GitHub review states and current-head metadata.
See the goal evaluator reference for
condition semantics, exit codes, freshness, and evidence limits.
packages/agent-config exposes the agent-config CLI used by the Mise tasks.
The CLI keeps the existing command contract while delegating rule and harness
commands to their workspace packages. Its install command reads
agent-config.toml to create fixed symlinks, discover configured skill roots,
clean stale managed symlinks, register Claude plugin marketplaces, and install
configured Claude plugins. To add or remove auto-installed plugins, edit
agent-config.toml. The loader checks config files in this order:
agent-config.toml, agent-config.yaml, agent-config.yml, then
agent-config.json.
Config source paths are repo-relative. Home-side target paths must be explicit
and start with ~/, including symlinks[].target,
skillSymlinks[].targetRoots[], and staleSymlinkCleanup[].targetDir.
The JSON schema at schemas/agent-config.schema.json is generated from the
package source. Run mise run agent-config:schema:build after changing the
schema, or mise run agent-config:schema:check to verify it is current.
Requires the claude CLI. Skipped gracefully if it is missing.
- Bun 1.3+
This is a personal configuration repository. Feel free to use it as inspiration for your own setup, but there are no guarantees it won't teach your agents some questionable habits.