Worked .claude/git.json configs for the three project shapes this plugin is built around.
Copy the closest one into your repo's .claude/git.json and adjust — or run /git:init, which
interviews the repo and writes one for you.
Every key here is optional. With no config file at all, the plugin infers a working chain from the branches the repo actually has, so these show what overriding looks like, not what is required.
| File | Shape | What it demonstrates |
|---|---|---|
configs/solo-single-branch.json |
main only |
The minimum. No promotion chain, so /git:promote correctly reports it does not apply. Changelog machinery switched off with "changelog": null. |
configs/two-tier-app.json |
dev → main |
A project vocabulary that is not the default — bugfix/ instead of fix/, a defect label — plus one test layer and a lint gate. |
configs/three-tier-monorepo.json |
develop → staging → main |
Everything at once: multiple layers with per-layer suites, forcesFullSuite, a service probe, deploy notes, ship reminders, release codenames, and promotion steps either side of the PR. |
CI resolves every file here through the real resolver and asserts the result is coherent —
a usable tier chain, roles that match the chain's length, layers that would actually gate
something, a tagFormat that interpolates:
node scripts/check-config-examples.mjsSo an example that drifts out of date fails the build rather than quietly misleading someone. Run it yourself after editing any config here.
Tiers are ordered integration → production. The last entry is always production; the first
is integration; a middle entry (3+ tiers only) is pre-production, which is the tier
/git:promote targets. A two-tier chain has no pre-production, and the commands say so rather
than inventing a hop.
Layers are never inferred. Guessing a monorepo's test commands would silently run the wrong
thing, so a project with no layers gets lint only — honest, if thin. The monorepo example is
the one to copy if you want per-path suites.
requiresService reads a .env file only to find a host:port to probe. It reports
reachability, never a value, and nothing it reads is printed.