diff --git a/README.md b/README.md index e7e1b493f..08faaa072 100644 --- a/README.md +++ b/README.md @@ -241,7 +241,8 @@ are picked up automatically. When several AI sessions have the **same local checkout** open at once (two Claude Code tabs, a CLI + the IDE extension, two terminals) they can clobber each other — branch switches under uncommitted edits, racing pushes, duplicate -builds. The **`session-lock`** skill (alias `deconflict-sessions`) is the +builds. +The **`session-lock`** skill is the local-filesystem counterpart to `claim-pr`: a small registry CLI (`skills/session-lock/scripts/ai-session.sh`) keeps a machine-local list of active sessions under `.git/ai-sessions/`, so sessions can see each other, diff --git a/codex-skills/address-rebut-defer-iterate-all-edit-instructions/SKILL.md b/codex-skills/address-rebut-defer-iterate-all-edit-instructions/SKILL.md deleted file mode 100644 index daacee573..000000000 --- a/codex-skills/address-rebut-defer-iterate-all-edit-instructions/SKILL.md +++ /dev/null @@ -1,26 +0,0 @@ ---- -name: "address-rebut-defer-iterate-all-edit-instructions" -description: "\u2192 ardiaei." ---- - -# address-rebut-defer-iterate-all-edit-instructions (Codex wrapper) - -This is a generated Codex wrapper around the canonical ai-config Claude skill. - -Source: [skills/address-rebut-defer-iterate-all-edit-instructions/SKILL.md](../../skills/address-rebut-defer-iterate-all-edit-instructions/SKILL.md) - -Before acting, read the source skill completely and follow its workflow, adapting it to Codex. - -The source lives at `skills/address-rebut-defer-iterate-all-edit-instructions/SKILL.md` in the same ai-config checkout as this wrapper. -If this wrapper was loaded through `${CODEX_HOME:-$HOME/.codex}/skills/address-rebut-defer-iterate-all-edit-instructions`, resolve the symlink target for this wrapper directory first, then read `../../skills/address-rebut-defer-iterate-all-edit-instructions/SKILL.md` relative to that real directory. -Do not resolve that relative path from inside `${CODEX_HOME:-$HOME/.codex}/skills`, because it points back at the wrapper tree. - -- Treat `user-invocable` and `allowed-tools` as Claude metadata, not Codex permissions. -- Use the tools available in this Codex session for equivalent operations. -- If the source mentions a Claude-only path such as `~/.claude/skills`, use this repository's `skills/` path while editing. -- Keep procedural changes in the canonical source skill unless the user specifically asks to change this wrapper. - -## Tool mappings - -The canonical skill names `gh`/`git` commands (and sometimes `mcp__github__*` tools). -Resolve those operations using the full per-model reference at [tool-mappings.md](../../tool-mappings.md), preferring the GitHub MCP tool when this Codex session has it and otherwise using the CLI. diff --git a/codex-skills/address-rebut-defer-iterate-all/SKILL.md b/codex-skills/address-rebut-defer-iterate-all/SKILL.md deleted file mode 100644 index f3488d59c..000000000 --- a/codex-skills/address-rebut-defer-iterate-all/SKILL.md +++ /dev/null @@ -1,26 +0,0 @@ ---- -name: "address-rebut-defer-iterate-all" -description: "\u2192 ardia." ---- - -# address-rebut-defer-iterate-all (Codex wrapper) - -This is a generated Codex wrapper around the canonical ai-config Claude skill. - -Source: [skills/address-rebut-defer-iterate-all/SKILL.md](../../skills/address-rebut-defer-iterate-all/SKILL.md) - -Before acting, read the source skill completely and follow its workflow, adapting it to Codex. - -The source lives at `skills/address-rebut-defer-iterate-all/SKILL.md` in the same ai-config checkout as this wrapper. -If this wrapper was loaded through `${CODEX_HOME:-$HOME/.codex}/skills/address-rebut-defer-iterate-all`, resolve the symlink target for this wrapper directory first, then read `../../skills/address-rebut-defer-iterate-all/SKILL.md` relative to that real directory. -Do not resolve that relative path from inside `${CODEX_HOME:-$HOME/.codex}/skills`, because it points back at the wrapper tree. - -- Treat `user-invocable` and `allowed-tools` as Claude metadata, not Codex permissions. -- Use the tools available in this Codex session for equivalent operations. -- If the source mentions a Claude-only path such as `~/.claude/skills`, use this repository's `skills/` path while editing. -- Keep procedural changes in the canonical source skill unless the user specifically asks to change this wrapper. - -## Tool mappings - -The canonical skill names `gh`/`git` commands (and sometimes `mcp__github__*` tools). -Resolve those operations using the full per-model reference at [tool-mappings.md](../../tool-mappings.md), preferring the GitHub MCP tool when this Codex session has it and otherwise using the CLI. diff --git a/codex-skills/address-rebut-defer-iterate/SKILL.md b/codex-skills/address-rebut-defer-iterate/SKILL.md deleted file mode 100644 index 7f055d09c..000000000 --- a/codex-skills/address-rebut-defer-iterate/SKILL.md +++ /dev/null @@ -1,26 +0,0 @@ ---- -name: "address-rebut-defer-iterate" -description: "\u2192 ardi." ---- - -# address-rebut-defer-iterate (Codex wrapper) - -This is a generated Codex wrapper around the canonical ai-config Claude skill. - -Source: [skills/address-rebut-defer-iterate/SKILL.md](../../skills/address-rebut-defer-iterate/SKILL.md) - -Before acting, read the source skill completely and follow its workflow, adapting it to Codex. - -The source lives at `skills/address-rebut-defer-iterate/SKILL.md` in the same ai-config checkout as this wrapper. -If this wrapper was loaded through `${CODEX_HOME:-$HOME/.codex}/skills/address-rebut-defer-iterate`, resolve the symlink target for this wrapper directory first, then read `../../skills/address-rebut-defer-iterate/SKILL.md` relative to that real directory. -Do not resolve that relative path from inside `${CODEX_HOME:-$HOME/.codex}/skills`, because it points back at the wrapper tree. - -- Treat `user-invocable` and `allowed-tools` as Claude metadata, not Codex permissions. -- Use the tools available in this Codex session for equivalent operations. -- If the source mentions a Claude-only path such as `~/.claude/skills`, use this repository's `skills/` path while editing. -- Keep procedural changes in the canonical source skill unless the user specifically asks to change this wrapper. - -## Tool mappings - -The canonical skill names `gh`/`git` commands (and sometimes `mcp__github__*` tools). -Resolve those operations using the full per-model reference at [tool-mappings.md](../../tool-mappings.md), preferring the GitHub MCP tool when this Codex session has it and otherwise using the CLI. diff --git a/codex-skills/address-rebut-defer/SKILL.md b/codex-skills/address-rebut-defer/SKILL.md deleted file mode 100644 index 9ec8f12dd..000000000 --- a/codex-skills/address-rebut-defer/SKILL.md +++ /dev/null @@ -1,26 +0,0 @@ ---- -name: "address-rebut-defer" -description: "\u2192 ard." ---- - -# address-rebut-defer (Codex wrapper) - -This is a generated Codex wrapper around the canonical ai-config Claude skill. - -Source: [skills/address-rebut-defer/SKILL.md](../../skills/address-rebut-defer/SKILL.md) - -Before acting, read the source skill completely and follow its workflow, adapting it to Codex. - -The source lives at `skills/address-rebut-defer/SKILL.md` in the same ai-config checkout as this wrapper. -If this wrapper was loaded through `${CODEX_HOME:-$HOME/.codex}/skills/address-rebut-defer`, resolve the symlink target for this wrapper directory first, then read `../../skills/address-rebut-defer/SKILL.md` relative to that real directory. -Do not resolve that relative path from inside `${CODEX_HOME:-$HOME/.codex}/skills`, because it points back at the wrapper tree. - -- Treat `user-invocable` and `allowed-tools` as Claude metadata, not Codex permissions. -- Use the tools available in this Codex session for equivalent operations. -- If the source mentions a Claude-only path such as `~/.claude/skills`, use this repository's `skills/` path while editing. -- Keep procedural changes in the canonical source skill unless the user specifically asks to change this wrapper. - -## Tool mappings - -The canonical skill names `gh`/`git` commands (and sometimes `mcp__github__*` tools). -Resolve those operations using the full per-model reference at [tool-mappings.md](../../tool-mappings.md), preferring the GitHub MCP tool when this Codex session has it and otherwise using the CLI. diff --git a/codex-skills/antigravity-review-workflow/SKILL.md b/codex-skills/antigravity-review-workflow/SKILL.md deleted file mode 100644 index 71cbd6ef9..000000000 --- a/codex-skills/antigravity-review-workflow/SKILL.md +++ /dev/null @@ -1,26 +0,0 @@ ---- -name: "antigravity-review-workflow" -description: "\u2192 agy-review-workflow." ---- - -# antigravity-review-workflow (Codex wrapper) - -This is a generated Codex wrapper around the canonical ai-config Claude skill. - -Source: [skills/antigravity-review-workflow/SKILL.md](../../skills/antigravity-review-workflow/SKILL.md) - -Before acting, read the source skill completely and follow its workflow, adapting it to Codex. - -The source lives at `skills/antigravity-review-workflow/SKILL.md` in the same ai-config checkout as this wrapper. -If this wrapper was loaded through `${CODEX_HOME:-$HOME/.codex}/skills/antigravity-review-workflow`, resolve the symlink target for this wrapper directory first, then read `../../skills/antigravity-review-workflow/SKILL.md` relative to that real directory. -Do not resolve that relative path from inside `${CODEX_HOME:-$HOME/.codex}/skills`, because it points back at the wrapper tree. - -- Treat `user-invocable` and `allowed-tools` as Claude metadata, not Codex permissions. -- Use the tools available in this Codex session for equivalent operations. -- If the source mentions a Claude-only path such as `~/.claude/skills`, use this repository's `skills/` path while editing. -- Keep procedural changes in the canonical source skill unless the user specifically asks to change this wrapper. - -## Tool mappings - -The canonical skill names `gh`/`git` commands (and sometimes `mcp__github__*` tools). -Resolve those operations using the full per-model reference at [tool-mappings.md](../../tool-mappings.md), preferring the GitHub MCP tool when this Codex session has it and otherwise using the CLI. diff --git a/codex-skills/deconflict-sessions/SKILL.md b/codex-skills/deconflict-sessions/SKILL.md deleted file mode 100644 index aa1541978..000000000 --- a/codex-skills/deconflict-sessions/SKILL.md +++ /dev/null @@ -1,26 +0,0 @@ ---- -name: "deconflict-sessions" -description: "\u2192 session-lock." ---- - -# deconflict-sessions (Codex wrapper) - -This is a generated Codex wrapper around the canonical ai-config Claude skill. - -Source: [skills/deconflict-sessions/SKILL.md](../../skills/deconflict-sessions/SKILL.md) - -Before acting, read the source skill completely and follow its workflow, adapting it to Codex. - -The source lives at `skills/deconflict-sessions/SKILL.md` in the same ai-config checkout as this wrapper. -If this wrapper was loaded through `${CODEX_HOME:-$HOME/.codex}/skills/deconflict-sessions`, resolve the symlink target for this wrapper directory first, then read `../../skills/deconflict-sessions/SKILL.md` relative to that real directory. -Do not resolve that relative path from inside `${CODEX_HOME:-$HOME/.codex}/skills`, because it points back at the wrapper tree. - -- Treat `user-invocable` and `allowed-tools` as Claude metadata, not Codex permissions. -- Use the tools available in this Codex session for equivalent operations. -- If the source mentions a Claude-only path such as `~/.claude/skills`, use this repository's `skills/` path while editing. -- Keep procedural changes in the canonical source skill unless the user specifically asks to change this wrapper. - -## Tool mappings - -The canonical skill names `gh`/`git` commands (and sometimes `mcp__github__*` tools). -Resolve those operations using the full per-model reference at [tool-mappings.md](../../tool-mappings.md), preferring the GitHub MCP tool when this Codex session has it and otherwise using the CLI. diff --git a/codex-skills/grab-issues-and-iterate-all/SKILL.md b/codex-skills/grab-issues-and-iterate-all/SKILL.md deleted file mode 100644 index 56ccbfa7f..000000000 --- a/codex-skills/grab-issues-and-iterate-all/SKILL.md +++ /dev/null @@ -1,26 +0,0 @@ ---- -name: "grab-issues-and-iterate-all" -description: "\u2192 gia." ---- - -# grab-issues-and-iterate-all (Codex wrapper) - -This is a generated Codex wrapper around the canonical ai-config Claude skill. - -Source: [skills/grab-issues-and-iterate-all/SKILL.md](../../skills/grab-issues-and-iterate-all/SKILL.md) - -Before acting, read the source skill completely and follow its workflow, adapting it to Codex. - -The source lives at `skills/grab-issues-and-iterate-all/SKILL.md` in the same ai-config checkout as this wrapper. -If this wrapper was loaded through `${CODEX_HOME:-$HOME/.codex}/skills/grab-issues-and-iterate-all`, resolve the symlink target for this wrapper directory first, then read `../../skills/grab-issues-and-iterate-all/SKILL.md` relative to that real directory. -Do not resolve that relative path from inside `${CODEX_HOME:-$HOME/.codex}/skills`, because it points back at the wrapper tree. - -- Treat `user-invocable` and `allowed-tools` as Claude metadata, not Codex permissions. -- Use the tools available in this Codex session for equivalent operations. -- If the source mentions a Claude-only path such as `~/.claude/skills`, use this repository's `skills/` path while editing. -- Keep procedural changes in the canonical source skill unless the user specifically asks to change this wrapper. - -## Tool mappings - -The canonical skill names `gh`/`git` commands (and sometimes `mcp__github__*` tools). -Resolve those operations using the full per-model reference at [tool-mappings.md](../../tool-mappings.md), preferring the GitHub MCP tool when this Codex session has it and otherwise using the CLI. diff --git a/codex-skills/merge-skills/SKILL.md b/codex-skills/merge-skills/SKILL.md deleted file mode 100644 index ec964a0c1..000000000 --- a/codex-skills/merge-skills/SKILL.md +++ /dev/null @@ -1,26 +0,0 @@ ---- -name: "merge-skills" -description: "\u2192 consolidate-skills." ---- - -# merge-skills (Codex wrapper) - -This is a generated Codex wrapper around the canonical ai-config Claude skill. - -Source: [skills/merge-skills/SKILL.md](../../skills/merge-skills/SKILL.md) - -Before acting, read the source skill completely and follow its workflow, adapting it to Codex. - -The source lives at `skills/merge-skills/SKILL.md` in the same ai-config checkout as this wrapper. -If this wrapper was loaded through `${CODEX_HOME:-$HOME/.codex}/skills/merge-skills`, resolve the symlink target for this wrapper directory first, then read `../../skills/merge-skills/SKILL.md` relative to that real directory. -Do not resolve that relative path from inside `${CODEX_HOME:-$HOME/.codex}/skills`, because it points back at the wrapper tree. - -- Treat `user-invocable` and `allowed-tools` as Claude metadata, not Codex permissions. -- Use the tools available in this Codex session for equivalent operations. -- If the source mentions a Claude-only path such as `~/.claude/skills`, use this repository's `skills/` path while editing. -- Keep procedural changes in the canonical source skill unless the user specifically asks to change this wrapper. - -## Tool mappings - -The canonical skill names `gh`/`git` commands (and sometimes `mcp__github__*` tools). -Resolve those operations using the full per-model reference at [tool-mappings.md](../../tool-mappings.md), preferring the GitHub MCP tool when this Codex session has it and otherwise using the CLI. diff --git a/codex-skills/prune-worktrees/SKILL.md b/codex-skills/prune-worktrees/SKILL.md deleted file mode 100644 index b2ec281b0..000000000 --- a/codex-skills/prune-worktrees/SKILL.md +++ /dev/null @@ -1,26 +0,0 @@ ---- -name: "prune-worktrees" -description: "\u2192 clean-worktrees." ---- - -# prune-worktrees (Codex wrapper) - -This is a generated Codex wrapper around the canonical ai-config Claude skill. - -Source: [skills/prune-worktrees/SKILL.md](../../skills/prune-worktrees/SKILL.md) - -Before acting, read the source skill completely and follow its workflow, adapting it to Codex. - -The source lives at `skills/prune-worktrees/SKILL.md` in the same ai-config checkout as this wrapper. -If this wrapper was loaded through `${CODEX_HOME:-$HOME/.codex}/skills/prune-worktrees`, resolve the symlink target for this wrapper directory first, then read `../../skills/prune-worktrees/SKILL.md` relative to that real directory. -Do not resolve that relative path from inside `${CODEX_HOME:-$HOME/.codex}/skills`, because it points back at the wrapper tree. - -- Treat `user-invocable` and `allowed-tools` as Claude metadata, not Codex permissions. -- Use the tools available in this Codex session for equivalent operations. -- If the source mentions a Claude-only path such as `~/.claude/skills`, use this repository's `skills/` path while editing. -- Keep procedural changes in the canonical source skill unless the user specifically asks to change this wrapper. - -## Tool mappings - -The canonical skill names `gh`/`git` commands (and sometimes `mcp__github__*` tools). -Resolve those operations using the full per-model reference at [tool-mappings.md](../../tool-mappings.md), preferring the GitHub MCP tool when this Codex session has it and otherwise using the CLI. diff --git a/docs/local-session-deconfliction.md b/docs/local-session-deconfliction.md index 2914f94c0..d6e04afb3 100644 --- a/docs/local-session-deconfliction.md +++ b/docs/local-session-deconfliction.md @@ -20,7 +20,7 @@ GitHub/GitLab PR or issue) via comment claims. | Piece | Path | Role | |-------|------|------| | Registry CLI | `skills/session-lock/scripts/ai-session.sh` | the system: register / check / list / worktree / release / prune | -| Skill | `skills/session-lock/SKILL.md` | how an agent should use it (with `deconflict-sessions` as an alias) | +| Skill | `skills/session-lock/SKILL.md` | how an agent should use it | | Optional hook | `skills/session-lock/hooks/session-start-register.sh` | auto-register on `SessionStart` and surface conflicts | Once `bootstrap.sh` has run, the script lives at diff --git a/memories/preferences.md b/memories/preferences.md index 2863120f6..981eeb13d 100644 --- a/memories/preferences.md +++ b/memories/preferences.md @@ -358,7 +358,8 @@ - When resolving a git merge/rebase/cherry-pick conflict, consolidate the best of BOTH branches --- read why each side changed the hunk and preserve both intents; never blind-pick `--ours`/`--theirs`, which silently discards the other side's work. Remove every marker (verify with `git diff --check`), run the repo's pre-commit checks (a merge clean on each side separately can break combined), then stage and finish the operation --- don't `--abort`/`--skip` a conflict you were asked to resolve. Note: "ours"/"theirs" are reversed in a rebase vs a merge. - The `resolve-conflicts` skill (alias `rc`) operationalizes this; `sync-pr-branch`/`clean-branches`/`gii` delegate to it. (Distinct from `session-lock`/`deconflict-sessions`, which deconflicts AI *sessions*, not git content.) + The `resolve-conflicts` skill (alias `rc`) operationalizes this. + `sync-pr-branch`/`clean-branches`/`gii` delegate to it. (Distinct from `session-lock`, which deconflicts AI *sessions*, not git content.) - When deferring items to follow-up issues during a PR/MR review loop, always update the PR/MR description with a "Known Deferred Items" section listing each deferred issue (with link), description, and rationale. This gives automated reviewers context so they stop re-flagging the same items. Include a "Notes for Automated Reviewers" section for any recurring false positives. @@ -483,7 +484,7 @@ Untracked or uncommitted files there can be silently wiped by another session (branch switch / `git clean`). Create it off `origin/main` (`git worktree add -b ../ai-config-worktrees/ origin/main`), not the shared wd. Clean it up after merge with `git worktree remove`. (Learned when a concurrent session deleted a freshly-written, still-untracked skill file from the wd.) - The `session-lock` skill (alias `deconflict-sessions`) tooling automates this: `ai-session.sh worktree [--base origin/main]` creates the isolated worktree, `register`/`check` surface collisions, and the registry under `.git/ai-sessions/` lets parallel sessions see each other before they clobber the shared checkout. + The `session-lock` skill tooling automates this: `ai-session.sh worktree [--base origin/main]` creates the isolated worktree, `register`/`check` surface collisions, and the registry under `.git/ai-sessions/` lets parallel sessions see each other before they clobber the shared checkout. This applies to EVERY repo, not just ai-config --- bcs and the other work repos are checked out as worktrees too, and a concurrent agent may rely on a given checkout staying on its current branch. Use ONE worktree per branch/PR: don't `git checkout` a *different* branch inside an existing worktree (or the shared checkout) to move between several in-flight PRs --- that silently changes the branch out from under any other session or task pointed at that path. Spin up a separate worktree per PR instead (`git worktree add`), even when you're already inside a worktree. (Learned on bcs, 2026-07-08: hopped a single worktree's branch across three open PRs and switched the ai-config checkout's branch mid-task --- both risk clobbering a concurrent agent.) (Reinforced as a correction, 2026-08-19: the user issued `\cai always use a worktree; never the primary checkout` after observing the primary checkout being used instead of a worktree.) @@ -763,7 +764,7 @@ Prefer extending (a new alias/section/trigger) over a near-duplicate skill; if another branch is already building it, continue that work rather than opening a colliding branch. (see the `skill-builder` skill.) - "slide " means force-move a floating Git tag to current main HEAD (delete + recreate + push). Common for repos with floating major-version tags that consumers reference. -- Use the `session-lock` skill (alias `deconflict-sessions`) as the detection/recovery layer on top of the worktree-by-default policy (see above): register at start, `check` before editing, so parallel sessions can see each other. +- Use the `session-lock` skill as the detection/recovery layer on top of the worktree-by-default policy (see above): register at start, `check` before editing, so parallel sessions can see each other. Worktrees are already the default, so most sessions start isolated; session-lock surfaces the rare SAME-WORKING-TREE collision before files get clobbered. This is the LOCAL counterpart to `claim-pr` (remote) and `sync-pr-branch` (reconcile with origin) --- use all three together on shared PR work. Registry lives under `.git/ai-sessions/` (never committed). diff --git a/setup.qmd b/setup.qmd index 046cae848..a6285bd7c 100644 --- a/setup.qmd +++ b/setup.qmd @@ -115,7 +115,7 @@ Comment `@claude ardi` (or any skill name) on a PR and the bot can run it. ## Deconflicting parallel local sessions When several AI sessions share one local checkout, they can clobber each other. -The `session-lock` skill (alias `deconflict-sessions`) keeps a machine-local +The `session-lock` skill keeps a machine-local registry of active sessions under `.git/ai-sessions/`. Sessions can refuse to share a working tree and isolate into a `git worktree`. See [`docs/local-session-deconfliction.md`](https://github.com/Morrison-Lab/ai-config/blob/main/docs/local-session-deconfliction.md). diff --git a/skills.qmd b/skills.qmd index 68fd5c239..83da929dc 100644 --- a/skills.qmd +++ b/skills.qmd @@ -60,7 +60,7 @@ field (e.g. "grab an issue", "drive to clean", "update memories and skills"). | [`mwc`](skills/mwc/SKILL.md) | `merge-when-confident`, `maw`, `merge-at-will` | Grant session-scoped permission to merge fully-clean PRs without asking per PR | | [`post-merge`](skills/post-merge/SKILL.md) | | After a merge: checkout main, pull, delete branch, run UMS | | [`clean-branches`](skills/clean-branches/SKILL.md) | `cb`, `prune` | Delete local branches already merged or closed | -| [`clean-worktrees`](skills/clean-worktrees/SKILL.md) | `cw`, `prune-worktrees` | Remove dead git worktrees left behind by merged PRs and ended sessions | +| [`clean-worktrees`](skills/clean-worktrees/SKILL.md) | `cw` | Remove dead git worktrees left behind by merged PRs and ended sessions | | [`clean-git`](skills/clean-git/SKILL.md) | | Sweep dead worktrees then dead branches in one pass, in the order that works | | [`resolve-conflicts`](skills/resolve-conflicts/SKILL.md) | `rmc` | Resolve merge/rebase/cherry-pick conflicts by consolidating the best of both branches | @@ -122,7 +122,7 @@ field (e.g. "grab an issue", "drive to clean", "update memories and skills"). | Skill | Aliases | What it does | |-------|---------|--------------| -| [`session-lock`](skills/session-lock/SKILL.md) | `deconflict-sessions` | Register/deregister this session to prevent parallel clobbering | +| [`session-lock`](skills/session-lock/SKILL.md) | | Register/deregister this session to prevent parallel clobbering | | [`handoff`](skills/handoff/SKILL.md) | | Snapshot work state (branch, jobs, open decisions) so the next session can resume cleanly | | [`wrap-up`](skills/wrap-up/SKILL.md) | `done`, `merged` | Verify true PR/issue/branch state, report a linked summary, then run UMS | | [`select-model`](skills/select-model/SKILL.md) | `model-fit`, `assess-model-fit` | Choose the right Claude model for the task at hand | diff --git a/skills/address-rebut-defer-iterate-all-edit-instructions/SKILL.md b/skills/address-rebut-defer-iterate-all-edit-instructions/SKILL.md deleted file mode 100644 index e44508875..000000000 --- a/skills/address-rebut-defer-iterate-all-edit-instructions/SKILL.md +++ /dev/null @@ -1,17 +0,0 @@ ---- -name: address-rebut-defer-iterate-all-edit-instructions -description: "→ ardiaei." -user-invocable: true -allowed-tools: - - Bash - - Read - - Edit - - Write ---- - -# address-rebut-defer-iterate-all-edit-instructions (alias for `ardiaei`) - -This is the spelled-out alias for the **ardiaei** skill. Read and follow the -canonical skill: - -→ **[ardiaei](../ardiaei/SKILL.md)** diff --git a/skills/address-rebut-defer-iterate-all/SKILL.md b/skills/address-rebut-defer-iterate-all/SKILL.md deleted file mode 100644 index b96de8913..000000000 --- a/skills/address-rebut-defer-iterate-all/SKILL.md +++ /dev/null @@ -1,16 +0,0 @@ ---- -name: address-rebut-defer-iterate-all -description: "→ ardia." -user-invocable: true -allowed-tools: - - Bash - - Read - - Edit - - Write ---- - -# address-rebut-defer-iterate-all (alias for `ardia`) - -This is a spelled-out alias. Read and follow the canonical skill: - -→ **[ardia](../ardia/SKILL.md)** diff --git a/skills/address-rebut-defer-iterate/SKILL.md b/skills/address-rebut-defer-iterate/SKILL.md deleted file mode 100644 index 4fa4a9f05..000000000 --- a/skills/address-rebut-defer-iterate/SKILL.md +++ /dev/null @@ -1,16 +0,0 @@ ---- -name: address-rebut-defer-iterate -description: "→ ardi." -user-invocable: true -allowed-tools: - - Bash - - Read - - Edit - - Write ---- - -# address-rebut-defer-iterate (alias for `ardi`) - -This is a spelled-out alias. Read and follow the canonical skill: - -→ **[ardi](../ardi/SKILL.md)** diff --git a/skills/address-rebut-defer/SKILL.md b/skills/address-rebut-defer/SKILL.md deleted file mode 100644 index bbd063c93..000000000 --- a/skills/address-rebut-defer/SKILL.md +++ /dev/null @@ -1,16 +0,0 @@ ---- -name: address-rebut-defer -description: "→ ard." -user-invocable: true -allowed-tools: - - Bash - - Read - - Edit - - Write ---- - -# address-rebut-defer (alias for `ard`) - -This is a spelled-out alias. Read and follow the canonical skill: - -→ **[ard](../ard/SKILL.md)** diff --git a/skills/antigravity-review-workflow/SKILL.md b/skills/antigravity-review-workflow/SKILL.md deleted file mode 100644 index 89e881d27..000000000 --- a/skills/antigravity-review-workflow/SKILL.md +++ /dev/null @@ -1,30 +0,0 @@ ---- -name: antigravity-review-workflow -description: "→ agy-review-workflow." -user-invocable: true -allowed-tools: - - Bash - - Read - - Edit - - Write ---- - -> [!IMPORTANT] -> **Antigravity is permanently out of service** (user directive, 2026-08-20), -> confirmed on a dispatched run that ended `request failed (code 429): Your -> prepayment credits are depleted` / `Execution failed: model unreachable`. -> This skill is kept as history, not as an option. -> **Do not dispatch the workflow** --- a dispatch burns a run and leaves a red -> check for a reviewer that cannot answer. -> For a cross-vendor second opinion use -> [`delegate-to-codex`](../delegate-to-codex/SKILL.md), the billed -> ChatGPT-plan CLI this corpus dispatches. -> Copilot stays requestable on the PR where the org's licensing reaches it. -> Tracked as ai-config#1776. - -# antigravity-review-workflow (alias for `agy-review-workflow`) - -This is an alias for the **agy-review-workflow** skill. Read and follow the -canonical skill: - --> **[agy-review-workflow](../agy-review-workflow/SKILL.md)** diff --git a/skills/clean-worktrees/SKILL.md b/skills/clean-worktrees/SKILL.md index d4aa320cc..c5312b485 100644 --- a/skills/clean-worktrees/SKILL.md +++ b/skills/clean-worktrees/SKILL.md @@ -9,7 +9,7 @@ allowed-tools: - Write --- -# Clean Worktrees (aka CW / prune-worktrees) +# Clean Worktrees (aka CW) Sweep **dead git worktrees** out of the current repo. Agent isolation and the `session-lock` skill spin up worktrees under `.claude/worktrees//` (or @@ -24,7 +24,7 @@ deletes the now-free branch (or this skill deletes it inline). ## When this fires -- "clean worktrees", "cw", "prune worktrees", "prune-worktrees" +- "clean worktrees", "cw", "prune worktrees" - "clean dead worktrees", "remove stale worktrees", "tidy up worktrees" - "which worktrees can I delete?" - After a batch of PRs merge and the `.claude/worktrees/` dir has grown. @@ -387,7 +387,7 @@ git worktree prune -v # clears any record left by the removals ## Relationship to other skills -- **`session-lock` / `deconflict-sessions`** — *creates* the worktrees this +- **`session-lock`** — *creates* the worktrees this skill cleans up; consult its registry (step 3d) so you never remove one a live session holds. Its own teardown is `git worktree remove` at session end; this skill is the bulk sweep for the ones that slipped through. diff --git a/skills/consolidate-skills/SKILL.md b/skills/consolidate-skills/SKILL.md index e8a6a7ccf..ea3591390 100644 --- a/skills/consolidate-skills/SKILL.md +++ b/skills/consolidate-skills/SKILL.md @@ -41,7 +41,7 @@ cluster into exactly one of three buckets: 1. **Intentional alias family — LEAVE ALONE.** One canonical SKILL.md with real content; the rest are thin stubs that only redirect to it (e.g. - `ard`/`adr`/`address-rebut-defer`, `cb`/`prune`/`clean-branches`, + `ard`/`adr`, `cb`/`prune`/`clean-branches`, `sync-pr-branch`/`merge-main`/`resync-branch`). This is the *target* state, not a problem. Tell: the others' bodies are ~5 lines ending in `→ **[](..//SKILL.md)**`. diff --git a/skills/deconflict-sessions/SKILL.md b/skills/deconflict-sessions/SKILL.md deleted file mode 100644 index e920a68ff..000000000 --- a/skills/deconflict-sessions/SKILL.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -name: deconflict-sessions -description: "→ session-lock." -user-invocable: true -allowed-tools: - - Bash ---- - -# deconflict-sessions (alias for `session-lock`) - -This is a descriptive alias for the **session-lock** skill — deconflicting -multiple AI sessions operating locally on the same repo. -Read and follow the canonical skill: - -→ **[session-lock](../session-lock/SKILL.md)** diff --git a/skills/grab-issues-and-iterate-all/SKILL.md b/skills/grab-issues-and-iterate-all/SKILL.md deleted file mode 100644 index 387794a16..000000000 --- a/skills/grab-issues-and-iterate-all/SKILL.md +++ /dev/null @@ -1,17 +0,0 @@ ---- -name: grab-issues-and-iterate-all -description: "→ gia." -user-invocable: true -allowed-tools: - - Bash - - Read - - Edit - - Write ---- - -# grab-issues-and-iterate-all (alias for `gia`) - -This is the spelled-out alias for the **gia** skill. Read and follow the -canonical skill: - -→ **[gia](../gia/SKILL.md)** diff --git a/skills/merge-skills/SKILL.md b/skills/merge-skills/SKILL.md deleted file mode 100644 index 1fb2833aa..000000000 --- a/skills/merge-skills/SKILL.md +++ /dev/null @@ -1,12 +0,0 @@ ---- -name: merge-skills -description: "→ consolidate-skills." -user-invocable: true ---- - -# merge-skills (alias for `consolidate-skills`) - -This is a synonym alias for the **consolidate-skills** skill. Read and follow -the canonical skill: - -→ **[consolidate-skills](../consolidate-skills/SKILL.md)** diff --git a/skills/prune-worktrees/SKILL.md b/skills/prune-worktrees/SKILL.md deleted file mode 100644 index dd5a1bceb..000000000 --- a/skills/prune-worktrees/SKILL.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -name: prune-worktrees -description: "→ clean-worktrees." -user-invocable: true -allowed-tools: - - Bash - - Read - - Edit - - Write ---- - -# prune-worktrees (alias for `clean-worktrees`) - -This is a spelled-out alias for the **clean-worktrees** skill. The name echoes -the familiar `git worktree prune`, but the skill does **more** than that -stub-only command: it removes whole dead worktrees and their branches (a `git -worktree prune` is just step 2 of the sweep). Read and follow the canonical -skill: - -→ **[clean-worktrees](../clean-worktrees/SKILL.md)** diff --git a/skills/push/SKILL.md b/skills/push/SKILL.md index 473ba2af5..f591495d3 100644 --- a/skills/push/SKILL.md +++ b/skills/push/SKILL.md @@ -254,7 +254,7 @@ review, not a draft). - **`claim-pr`** — posts/removes the claim comment this skill reads in check #3. `push` is the read side; `claim-pr` is the write side. -- **`session-lock` / `deconflict-sessions`** — the local-checkout counterpart: it keeps parallel sessions on one machine from sharing a working tree. +- **`session-lock`** — the local-checkout counterpart: it keeps parallel sessions on one machine from sharing a working tree. `push` guards the *remote* branch; `session-lock` guards the *local* tree. - **`sync-pr-branch` / `merge-main`** — when check #2 fires because `main` (not the branch) moved ahead, sync the branch first, then push. `sync-pr-branch` ends in a push and should itself honor these checks. diff --git a/skills/resolve-conflicts/SKILL.md b/skills/resolve-conflicts/SKILL.md index 404bc966f..326cf6550 100644 --- a/skills/resolve-conflicts/SKILL.md +++ b/skills/resolve-conflicts/SKILL.md @@ -203,7 +203,8 @@ Confirm which physical branch is "ours" before you reach for `--ours` / - **`check-history`** — run *before* implementing to avoid creating avoidable conflicts/regressions in the first place; this skill cleans up the ones that still happen. -- **`deconflict-sessions` / `session-lock`** — **not** this skill. Those are +- **`session-lock`** — **not** this skill. + It is about two AI *sessions* clobbering one local checkout (a locking concern), not git *content* conflicts. Different sense of "conflict."