Skip to content

Roadmap: Symmetrize user-global AI agent instructionsΒ #130

@kurone-kito

Description

@kurone-kito

Goal

Bring Codex CLI, Claude Code, and Gemini CLI to parity with GitHub
Copilot CLI on the user-global instructions layer of this
chezmoi-managed dotfiles repository, so every supported AI agent
receives a stable repository-independent baseline (conversation
language policy, Conventional Commits, signing fallback ladder,
coding defaults, guardrails) without depending on a repository-local
entry file being present.

Background

This repository already maintains the project-level AI
instructions in a Copilot-first layout:

  • .github/copilot-instructions.md β€” canonical, fully detailed
    (~380 lines)
  • AGENTS.md, CLAUDE.md, GEMINI.md β€” compatibility shims that
    point at the canonical file
  • docs/ai-strategy.md β€” human-facing strategy note that explains
    the canonical/shim split

The user-global layer is currently asymmetric. Only Copilot CLI
is fully wired:

Agent Project shim User-global instructions
GitHub Copilot CLI .github/copilot-instructions.md home/dot_copilot/copilot-instructions.md (~173 lines, deployed)
Codex CLI AGENTS.md home/dot_codex/config.toml only β€” no AGENTS.md
Claude Code CLAUDE.md none β€” no home/dot_claude/
Gemini CLI GEMINI.md none β€” no home/dot_gemini/

home/dot_copilot/copilot-instructions.md was introduced in commit
9ee65fa feat(copilot): add user-global copilot cli instructions
and refined through three signing-fallback ladder updates
(aff8888, 20fdfbf, 4cafe09). It acts as a
repository-independent baseline that defers to repository-specific
instructions when they exist.

The three remaining agents either ship no user-global instructions
file (Claude, Gemini) or carry only their tool config without
instructions (Codex). Outside this repository, agents reading those
locations fall back to model defaults β€” losing the cross-agent
conversation-language policy, the Conventional Commits convention,
and the bounded signing fallback ladder the maintainer relies on for
every repository.

Why this matters

  • The maintainer drives multiple AI agents in parallel across many
    repositories. The user-global baseline is what keeps their
    behavior coherent before any repository-specific guidance loads.
  • The signing fallback ladder (GPG β†’ classify β†’ optional gpg-agent
    restart β†’ SSH β†’ unsigned) is non-trivial. Without a user-global
    copy for the other agents, that hard-won knowledge is unavailable
    to them in repositories that do not supply project-level
    instructions.
  • docs/ai-strategy.md currently documents only the project-level
    layer, so a future contributor cannot tell whether the user-global
    asymmetry is intentional or an oversight.

Tracks

Parallel notes:

  • Tracks A, B, and C touch disjoint directories
    (home/dot_codex/, home/dot_claude/, home/dot_gemini/) and
    can be claimed in parallel without rebase risk. Track A adds a
    new file to the existing home/dot_codex/ (which currently only
    contains config.toml); B and C create the directory.
  • Track D edits docs/ai-strategy.md only. It is independent of
    A/B/C because the new section describes the layer generically,
    not per-agent file presence. The doc text passes review even if
    A/B/C have not yet landed; once they land, no further doc edit
    is required.
  • No Blocked by edges. The reviewer-preferred merge order is D
    first (so the policy lands with the implementations), then A/B/C
    in any order. The IDD discover loop does not enforce that order.

Success criteria

  • home/dot_codex/AGENTS.md, home/dot_claude/CLAUDE.md, and
    home/dot_gemini/GEMINI.md all exist in the source tree and
    follow the same structural shape as
    home/dot_copilot/copilot-instructions.md (conversation policy,
    Conventional Commits, full signing fallback ladder, coding
    defaults, guardrails; repository-local precedence note in the
    opening paragraph).
  • chezmoi diff against a fresh checkout reports the three new
    files as additions that map to ~/.codex/AGENTS.md,
    ~/.claude/CLAUDE.md, and ~/.gemini/GEMINI.md.
  • docs/ai-strategy.md describes the two-layer (project +
    user-global) AI instructions structure and names the
    home/dot_<agent>/... source paths.
  • tests/bash/helpers/bats-core/bin/bats tests/bash/ still passes
    unchanged.
  • npx markdownlint-cli2 "**/*.md" and the cspell run both pass
    for the new files and the touched documentation.

Out-of-scope

  • Reorganizing the existing project-level AI instructions
    (.github/copilot-instructions.md, AGENTS.md, CLAUDE.md,
    GEMINI.md). The doc-only edit in track D is limited to adding
    a user-global-layer section.
  • Installing Gemini CLI through mise alongside Claude Code /
    Copilot CLI / Codex CLI in README.md. That is a separate
    availability decision; file it as its own issue if needed.
  • Migrating canonical AI guidance away from Copilot-first.
    docs/ai-strategy.md's change policy explicitly defers that
    until benchmarks justify it.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions