From 5f4fdef23adaf6f0bc0ea724163e282cf9f33d81 Mon Sep 17 00:00:00 2001 From: Mark Jubenville Date: Thu, 21 May 2026 00:45:15 -0400 Subject: [PATCH 1/5] fix(dev): rename .claude/skills to .claude/commands Claude Code reads custom slash commands from .claude/commands/, not .claude/skills/. Update maintenance skill docs and README to match. Co-Authored-By: Claude Sonnet 4.6 --- .ai/README.md | 6 +++--- .ai/skills/ai-add-prompt.md | 4 ++-- .ai/skills/ai-add-skill.md | 4 ++-- .claude/{skills => commands}/ai-add-instruction.md | 0 .claude/{skills => commands}/ai-add-prompt.md | 0 .claude/{skills => commands}/ai-add-skill.md | 0 .claude/{skills => commands}/plan-writing.md | 0 .../{skills => commands}/verify-unresolved-pr-comments.md | 0 8 files changed, 7 insertions(+), 7 deletions(-) rename .claude/{skills => commands}/ai-add-instruction.md (100%) rename .claude/{skills => commands}/ai-add-prompt.md (100%) rename .claude/{skills => commands}/ai-add-skill.md (100%) rename .claude/{skills => commands}/plan-writing.md (100%) rename .claude/{skills => commands}/verify-unresolved-pr-comments.md (100%) diff --git a/.ai/README.md b/.ai/README.md index a5631a0..c9a85cb 100644 --- a/.ai/README.md +++ b/.ai/README.md @@ -9,9 +9,9 @@ back here. - `instructions/` — Auto-loaded coding standards and guidelines. Maps to Copilot's `.github/instructions/` and Claude Code's `CLAUDE.md @imports`. - `skills/` — Reusable workflows invokable by name. Maps to Copilot's - `.github/skills/` and Claude Code's `.claude/skills/`. + `.github/skills/` and Claude Code's `.claude/commands/`. - `prompts/` — User-invokable chat prompts (created on demand). Maps to - Copilot's `.github/prompts/` and Claude Code's `.claude/skills/`. + Copilot's `.github/prompts/` and Claude Code's `.claude/commands/`. ## Adding new content @@ -27,4 +27,4 @@ systems are active and create the appropriate thin wrappers: The `ai-add-*` maintenance skills in `skills/` are candidates for extraction into a Claude plugin and Copilot user-level skills (`~/.copilot/skills/`) once they stabilize. When extracted, remove them from here and from the thin wrappers -in `.github/skills/` and `.claude/skills/`. +in `.github/skills/` and `.claude/commands/`. diff --git a/.ai/skills/ai-add-prompt.md b/.ai/skills/ai-add-prompt.md index 0629cf0..9574997 100644 --- a/.ai/skills/ai-add-prompt.md +++ b/.ai/skills/ai-add-prompt.md @@ -13,7 +13,7 @@ available in both Copilot and Claude Code. Before creating any files, check: - **Copilot prompts active**: `.github/prompts/` directory exists -- **Claude active**: `CLAUDE.md` file exists (create in `.claude/skills/`) +- **Claude active**: `CLAUDE.md` file exists (create in `.claude/commands/`) ## Steps @@ -44,7 +44,7 @@ Before creating any files, check: #file:../../.ai/prompts/.md ``` -4. **If Claude active** — Create `.claude/skills/.md`: +4. **If Claude active** — Create `.claude/commands/.md`: ```text @.ai/prompts/.md diff --git a/.ai/skills/ai-add-skill.md b/.ai/skills/ai-add-skill.md index 8e87186..5f9f640 100644 --- a/.ai/skills/ai-add-skill.md +++ b/.ai/skills/ai-add-skill.md @@ -13,7 +13,7 @@ Copilot and Claude Code. Before creating any files, check: - **Copilot skills active**: `.github/skills/` directory exists -- **Claude active**: `CLAUDE.md` file exists (create in `.claude/skills/`) +- **Claude active**: `CLAUDE.md` file exists (create in `.claude/commands/`) ## Steps @@ -47,7 +47,7 @@ Before creating any files, check: #file:../../../.ai/skills/.md ``` -4. **If Claude active** — Create `.claude/skills/.md`: +4. **If Claude active** — Create `.claude/commands/.md`: ```text @.ai/skills/.md diff --git a/.claude/skills/ai-add-instruction.md b/.claude/commands/ai-add-instruction.md similarity index 100% rename from .claude/skills/ai-add-instruction.md rename to .claude/commands/ai-add-instruction.md diff --git a/.claude/skills/ai-add-prompt.md b/.claude/commands/ai-add-prompt.md similarity index 100% rename from .claude/skills/ai-add-prompt.md rename to .claude/commands/ai-add-prompt.md diff --git a/.claude/skills/ai-add-skill.md b/.claude/commands/ai-add-skill.md similarity index 100% rename from .claude/skills/ai-add-skill.md rename to .claude/commands/ai-add-skill.md diff --git a/.claude/skills/plan-writing.md b/.claude/commands/plan-writing.md similarity index 100% rename from .claude/skills/plan-writing.md rename to .claude/commands/plan-writing.md diff --git a/.claude/skills/verify-unresolved-pr-comments.md b/.claude/commands/verify-unresolved-pr-comments.md similarity index 100% rename from .claude/skills/verify-unresolved-pr-comments.md rename to .claude/commands/verify-unresolved-pr-comments.md From 8c50aab05db94d0a2a53f394ba951bc0e972a2c0 Mon Sep 17 00:00:00 2001 From: Mark Jubenville Date: Thu, 21 May 2026 00:48:39 -0400 Subject: [PATCH 2/5] Revert "fix(dev): rename .claude/skills to .claude/commands" This reverts commit 5f4fdef23adaf6f0bc0ea724163e282cf9f33d81. --- .ai/README.md | 6 +++--- .ai/skills/ai-add-prompt.md | 4 ++-- .ai/skills/ai-add-skill.md | 4 ++-- .claude/{commands => skills}/ai-add-instruction.md | 0 .claude/{commands => skills}/ai-add-prompt.md | 0 .claude/{commands => skills}/ai-add-skill.md | 0 .claude/{commands => skills}/plan-writing.md | 0 .../{commands => skills}/verify-unresolved-pr-comments.md | 0 8 files changed, 7 insertions(+), 7 deletions(-) rename .claude/{commands => skills}/ai-add-instruction.md (100%) rename .claude/{commands => skills}/ai-add-prompt.md (100%) rename .claude/{commands => skills}/ai-add-skill.md (100%) rename .claude/{commands => skills}/plan-writing.md (100%) rename .claude/{commands => skills}/verify-unresolved-pr-comments.md (100%) diff --git a/.ai/README.md b/.ai/README.md index c9a85cb..a5631a0 100644 --- a/.ai/README.md +++ b/.ai/README.md @@ -9,9 +9,9 @@ back here. - `instructions/` — Auto-loaded coding standards and guidelines. Maps to Copilot's `.github/instructions/` and Claude Code's `CLAUDE.md @imports`. - `skills/` — Reusable workflows invokable by name. Maps to Copilot's - `.github/skills/` and Claude Code's `.claude/commands/`. + `.github/skills/` and Claude Code's `.claude/skills/`. - `prompts/` — User-invokable chat prompts (created on demand). Maps to - Copilot's `.github/prompts/` and Claude Code's `.claude/commands/`. + Copilot's `.github/prompts/` and Claude Code's `.claude/skills/`. ## Adding new content @@ -27,4 +27,4 @@ systems are active and create the appropriate thin wrappers: The `ai-add-*` maintenance skills in `skills/` are candidates for extraction into a Claude plugin and Copilot user-level skills (`~/.copilot/skills/`) once they stabilize. When extracted, remove them from here and from the thin wrappers -in `.github/skills/` and `.claude/commands/`. +in `.github/skills/` and `.claude/skills/`. diff --git a/.ai/skills/ai-add-prompt.md b/.ai/skills/ai-add-prompt.md index 9574997..0629cf0 100644 --- a/.ai/skills/ai-add-prompt.md +++ b/.ai/skills/ai-add-prompt.md @@ -13,7 +13,7 @@ available in both Copilot and Claude Code. Before creating any files, check: - **Copilot prompts active**: `.github/prompts/` directory exists -- **Claude active**: `CLAUDE.md` file exists (create in `.claude/commands/`) +- **Claude active**: `CLAUDE.md` file exists (create in `.claude/skills/`) ## Steps @@ -44,7 +44,7 @@ Before creating any files, check: #file:../../.ai/prompts/.md ``` -4. **If Claude active** — Create `.claude/commands/.md`: +4. **If Claude active** — Create `.claude/skills/.md`: ```text @.ai/prompts/.md diff --git a/.ai/skills/ai-add-skill.md b/.ai/skills/ai-add-skill.md index 5f9f640..8e87186 100644 --- a/.ai/skills/ai-add-skill.md +++ b/.ai/skills/ai-add-skill.md @@ -13,7 +13,7 @@ Copilot and Claude Code. Before creating any files, check: - **Copilot skills active**: `.github/skills/` directory exists -- **Claude active**: `CLAUDE.md` file exists (create in `.claude/commands/`) +- **Claude active**: `CLAUDE.md` file exists (create in `.claude/skills/`) ## Steps @@ -47,7 +47,7 @@ Before creating any files, check: #file:../../../.ai/skills/.md ``` -4. **If Claude active** — Create `.claude/commands/.md`: +4. **If Claude active** — Create `.claude/skills/.md`: ```text @.ai/skills/.md diff --git a/.claude/commands/ai-add-instruction.md b/.claude/skills/ai-add-instruction.md similarity index 100% rename from .claude/commands/ai-add-instruction.md rename to .claude/skills/ai-add-instruction.md diff --git a/.claude/commands/ai-add-prompt.md b/.claude/skills/ai-add-prompt.md similarity index 100% rename from .claude/commands/ai-add-prompt.md rename to .claude/skills/ai-add-prompt.md diff --git a/.claude/commands/ai-add-skill.md b/.claude/skills/ai-add-skill.md similarity index 100% rename from .claude/commands/ai-add-skill.md rename to .claude/skills/ai-add-skill.md diff --git a/.claude/commands/plan-writing.md b/.claude/skills/plan-writing.md similarity index 100% rename from .claude/commands/plan-writing.md rename to .claude/skills/plan-writing.md diff --git a/.claude/commands/verify-unresolved-pr-comments.md b/.claude/skills/verify-unresolved-pr-comments.md similarity index 100% rename from .claude/commands/verify-unresolved-pr-comments.md rename to .claude/skills/verify-unresolved-pr-comments.md From 8192414199ced396f233f72d965f3c44d336b795 Mon Sep 17 00:00:00 2001 From: Mark Jubenville Date: Thu, 21 May 2026 01:17:29 -0400 Subject: [PATCH 3/5] chore(dev): restructure .claude/skills to subdirectory format with correct paths Migrates flat `.claude/skills/.md` files to the required `.claude/skills//SKILL.md` subdirectory format for Claude Code. Adds `$ARGUMENTS` passthrough and fixes `@` import paths to use file-relative paths (`../../../.ai/...`) instead of project-root paths. Updates the `ai-add-prompt` and `ai-add-skill` maintenance skills to generate SKILL.md files in the correct format. Co-Authored-By: Claude Sonnet 4.6 --- .ai/skills/ai-add-prompt.md | 15 +++++++++++---- .ai/skills/ai-add-skill.md | 15 +++++++++++---- .claude/skills/ai-add-instruction.md | 1 - .claude/skills/ai-add-instruction/SKILL.md | 8 ++++++++ .claude/skills/ai-add-prompt.md | 1 - .claude/skills/ai-add-prompt/SKILL.md | 8 ++++++++ .claude/skills/ai-add-skill.md | 1 - .claude/skills/ai-add-skill/SKILL.md | 8 ++++++++ .claude/skills/plan-writing.md | 1 - .claude/skills/plan-writing/SKILL.md | 8 ++++++++ .claude/skills/verify-unresolved-pr-comments.md | 1 - .../skills/verify-unresolved-pr-comments/SKILL.md | 7 +++++++ 12 files changed, 61 insertions(+), 13 deletions(-) delete mode 100644 .claude/skills/ai-add-instruction.md create mode 100644 .claude/skills/ai-add-instruction/SKILL.md delete mode 100644 .claude/skills/ai-add-prompt.md create mode 100644 .claude/skills/ai-add-prompt/SKILL.md delete mode 100644 .claude/skills/ai-add-skill.md create mode 100644 .claude/skills/ai-add-skill/SKILL.md delete mode 100644 .claude/skills/plan-writing.md create mode 100644 .claude/skills/plan-writing/SKILL.md delete mode 100644 .claude/skills/verify-unresolved-pr-comments.md create mode 100644 .claude/skills/verify-unresolved-pr-comments/SKILL.md diff --git a/.ai/skills/ai-add-prompt.md b/.ai/skills/ai-add-prompt.md index 0629cf0..20b1e12 100644 --- a/.ai/skills/ai-add-prompt.md +++ b/.ai/skills/ai-add-prompt.md @@ -13,7 +13,7 @@ available in both Copilot and Claude Code. Before creating any files, check: - **Copilot prompts active**: `.github/prompts/` directory exists -- **Claude active**: `CLAUDE.md` file exists (create in `.claude/skills/`) +- **Claude active**: `CLAUDE.md` file exists (create in `.claude/skills//`) ## Steps @@ -44,10 +44,17 @@ Before creating any files, check: #file:../../.ai/prompts/.md ``` -4. **If Claude active** — Create `.claude/skills/.md`: +4. **If Claude active** — Create `.claude/skills//SKILL.md`: - ```text - @.ai/prompts/.md + ```markdown + --- + description: '' + disable-model-invocation: true + --- + + $ARGUMENTS + + @../../../.ai/prompts/.md ``` 5. **Confirm** — Report which files were created. diff --git a/.ai/skills/ai-add-skill.md b/.ai/skills/ai-add-skill.md index 8e87186..5a683df 100644 --- a/.ai/skills/ai-add-skill.md +++ b/.ai/skills/ai-add-skill.md @@ -13,7 +13,7 @@ Copilot and Claude Code. Before creating any files, check: - **Copilot skills active**: `.github/skills/` directory exists -- **Claude active**: `CLAUDE.md` file exists (create in `.claude/skills/`) +- **Claude active**: `CLAUDE.md` file exists (create in `.claude/skills//`) ## Steps @@ -47,10 +47,17 @@ Before creating any files, check: #file:../../../.ai/skills/.md ``` -4. **If Claude active** — Create `.claude/skills/.md`: +4. **If Claude active** — Create `.claude/skills//SKILL.md`: - ```text - @.ai/skills/.md + ```markdown + --- + description: '' + disable-model-invocation: true + --- + + $ARGUMENTS + + @../../../.ai/skills/.md ``` 5. **Confirm** — Report which files were created. diff --git a/.claude/skills/ai-add-instruction.md b/.claude/skills/ai-add-instruction.md deleted file mode 100644 index 0f99d90..0000000 --- a/.claude/skills/ai-add-instruction.md +++ /dev/null @@ -1 +0,0 @@ -@.ai/skills/ai-add-instruction.md diff --git a/.claude/skills/ai-add-instruction/SKILL.md b/.claude/skills/ai-add-instruction/SKILL.md new file mode 100644 index 0000000..c87d0e9 --- /dev/null +++ b/.claude/skills/ai-add-instruction/SKILL.md @@ -0,0 +1,8 @@ +--- +description: Create a new shared coding instruction in .ai/instructions/ and register thin wrappers for each AI system detected in the repo. +disable-model-invocation: true +--- + +$ARGUMENTS + +@../../../.ai/skills/ai-add-instruction.md diff --git a/.claude/skills/ai-add-prompt.md b/.claude/skills/ai-add-prompt.md deleted file mode 100644 index 0948ecb..0000000 --- a/.claude/skills/ai-add-prompt.md +++ /dev/null @@ -1 +0,0 @@ -@.ai/skills/ai-add-prompt.md diff --git a/.claude/skills/ai-add-prompt/SKILL.md b/.claude/skills/ai-add-prompt/SKILL.md new file mode 100644 index 0000000..eed26c2 --- /dev/null +++ b/.claude/skills/ai-add-prompt/SKILL.md @@ -0,0 +1,8 @@ +--- +description: Create a new shared user-invokable prompt in .ai/prompts/ and register thin wrappers for each AI system detected in the repo. +disable-model-invocation: true +--- + +$ARGUMENTS + +@../../../.ai/skills/ai-add-prompt.md diff --git a/.claude/skills/ai-add-skill.md b/.claude/skills/ai-add-skill.md deleted file mode 100644 index cc28354..0000000 --- a/.claude/skills/ai-add-skill.md +++ /dev/null @@ -1 +0,0 @@ -@.ai/skills/ai-add-skill.md diff --git a/.claude/skills/ai-add-skill/SKILL.md b/.claude/skills/ai-add-skill/SKILL.md new file mode 100644 index 0000000..f316e0e --- /dev/null +++ b/.claude/skills/ai-add-skill/SKILL.md @@ -0,0 +1,8 @@ +--- +description: Create a new shared reusable workflow skill in .ai/skills/ and register thin wrappers for each AI system detected in the repo. +disable-model-invocation: true +--- + +$ARGUMENTS + +@../../../.ai/skills/ai-add-skill.md diff --git a/.claude/skills/plan-writing.md b/.claude/skills/plan-writing.md deleted file mode 100644 index 01fe6e8..0000000 --- a/.claude/skills/plan-writing.md +++ /dev/null @@ -1 +0,0 @@ -@.ai/skills/plan-writing.md diff --git a/.claude/skills/plan-writing/SKILL.md b/.claude/skills/plan-writing/SKILL.md new file mode 100644 index 0000000..5cdb725 --- /dev/null +++ b/.claude/skills/plan-writing/SKILL.md @@ -0,0 +1,8 @@ +--- +description: Write an implementation plan for a non-trivial change. Use when asked to plan a feature, workflow, or architectural change before creating a branch. +disable-model-invocation: true +--- + +$ARGUMENTS + +@../../../.ai/skills/plan-writing.md diff --git a/.claude/skills/verify-unresolved-pr-comments.md b/.claude/skills/verify-unresolved-pr-comments.md deleted file mode 100644 index 3a6a110..0000000 --- a/.claude/skills/verify-unresolved-pr-comments.md +++ /dev/null @@ -1 +0,0 @@ -@.ai/prompts/verify-unresolved-pr-comments.md diff --git a/.claude/skills/verify-unresolved-pr-comments/SKILL.md b/.claude/skills/verify-unresolved-pr-comments/SKILL.md new file mode 100644 index 0000000..44ee91e --- /dev/null +++ b/.claude/skills/verify-unresolved-pr-comments/SKILL.md @@ -0,0 +1,7 @@ +--- +description: Analyze all unresolved review comments on the active PR and return a triage chart with severity, fix recommendation, suggestion validity, and required action. +--- + +$ARGUMENTS + +@../../../.ai/prompts/verify-unresolved-pr-comments.md From 1f32953e2be5d5456ec39cc8af3fcc289534cfbd Mon Sep 17 00:00:00 2001 From: Mark Jubenville Date: Thu, 21 May 2026 07:10:16 -0400 Subject: [PATCH 4/5] fix: lack of names in claude skills --- .ai/skills/ai-add-prompt.md | 1 + .ai/skills/ai-add-skill.md | 1 + .claude/skills/ai-add-instruction/SKILL.md | 1 + .claude/skills/ai-add-prompt/SKILL.md | 1 + .claude/skills/ai-add-skill/SKILL.md | 1 + .claude/skills/plan-writing/SKILL.md | 1 + .claude/skills/verify-unresolved-pr-comments/SKILL.md | 1 + 7 files changed, 7 insertions(+) diff --git a/.ai/skills/ai-add-prompt.md b/.ai/skills/ai-add-prompt.md index 20b1e12..4d03d9b 100644 --- a/.ai/skills/ai-add-prompt.md +++ b/.ai/skills/ai-add-prompt.md @@ -48,6 +48,7 @@ Before creating any files, check: ```markdown --- + name: description: '' disable-model-invocation: true --- diff --git a/.ai/skills/ai-add-skill.md b/.ai/skills/ai-add-skill.md index 5a683df..633c98b 100644 --- a/.ai/skills/ai-add-skill.md +++ b/.ai/skills/ai-add-skill.md @@ -51,6 +51,7 @@ Before creating any files, check: ```markdown --- + name: description: '' disable-model-invocation: true --- diff --git a/.claude/skills/ai-add-instruction/SKILL.md b/.claude/skills/ai-add-instruction/SKILL.md index c87d0e9..3d57545 100644 --- a/.claude/skills/ai-add-instruction/SKILL.md +++ b/.claude/skills/ai-add-instruction/SKILL.md @@ -1,4 +1,5 @@ --- +name: ai-add-instruction description: Create a new shared coding instruction in .ai/instructions/ and register thin wrappers for each AI system detected in the repo. disable-model-invocation: true --- diff --git a/.claude/skills/ai-add-prompt/SKILL.md b/.claude/skills/ai-add-prompt/SKILL.md index eed26c2..e8537cc 100644 --- a/.claude/skills/ai-add-prompt/SKILL.md +++ b/.claude/skills/ai-add-prompt/SKILL.md @@ -1,4 +1,5 @@ --- +name: ai-add-prompt description: Create a new shared user-invokable prompt in .ai/prompts/ and register thin wrappers for each AI system detected in the repo. disable-model-invocation: true --- diff --git a/.claude/skills/ai-add-skill/SKILL.md b/.claude/skills/ai-add-skill/SKILL.md index f316e0e..59e6198 100644 --- a/.claude/skills/ai-add-skill/SKILL.md +++ b/.claude/skills/ai-add-skill/SKILL.md @@ -1,4 +1,5 @@ --- +name: ai-add-skill description: Create a new shared reusable workflow skill in .ai/skills/ and register thin wrappers for each AI system detected in the repo. disable-model-invocation: true --- diff --git a/.claude/skills/plan-writing/SKILL.md b/.claude/skills/plan-writing/SKILL.md index 5cdb725..4a3e4fd 100644 --- a/.claude/skills/plan-writing/SKILL.md +++ b/.claude/skills/plan-writing/SKILL.md @@ -1,4 +1,5 @@ --- +name: plan-writing description: Write an implementation plan for a non-trivial change. Use when asked to plan a feature, workflow, or architectural change before creating a branch. disable-model-invocation: true --- diff --git a/.claude/skills/verify-unresolved-pr-comments/SKILL.md b/.claude/skills/verify-unresolved-pr-comments/SKILL.md index 44ee91e..2aa249a 100644 --- a/.claude/skills/verify-unresolved-pr-comments/SKILL.md +++ b/.claude/skills/verify-unresolved-pr-comments/SKILL.md @@ -1,4 +1,5 @@ --- +name: verify-unresolved-pr-comments description: Analyze all unresolved review comments on the active PR and return a triage chart with severity, fix recommendation, suggestion validity, and required action. --- From 28ff606a411f6ed33be55e8102e935553e2e9a05 Mon Sep 17 00:00:00 2001 From: Mark Jubenville Date: Thu, 21 May 2026 07:23:12 -0400 Subject: [PATCH 5/5] chore: claude wrapper consistency --- .claude/skills/verify-unresolved-pr-comments/SKILL.md | 1 + 1 file changed, 1 insertion(+) diff --git a/.claude/skills/verify-unresolved-pr-comments/SKILL.md b/.claude/skills/verify-unresolved-pr-comments/SKILL.md index 2aa249a..9f66c6e 100644 --- a/.claude/skills/verify-unresolved-pr-comments/SKILL.md +++ b/.claude/skills/verify-unresolved-pr-comments/SKILL.md @@ -1,6 +1,7 @@ --- name: verify-unresolved-pr-comments description: Analyze all unresolved review comments on the active PR and return a triage chart with severity, fix recommendation, suggestion validity, and required action. +disable-model-invocation: true --- $ARGUMENTS