Move project skills into shared agent layout#27204
Conversation
This makes .agents/skills the canonical source so agent tooling can reuse one checked-in layout instead of creating divergent local copies under .claude.
WalkthroughAdded a new commit skill at 🚥 Pre-merge checks | ✅ 3✅ Passed checks (3 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
There was a problem hiding this comment.
Actionable comments posted: 2
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In @.agents/skills/commit/SKILL.md:
- Around line 43-53: Remove the extra spaces in the ATX heading "### Main
emojis we are using:" (make it "### Main emojis we are using:") and add a
language identifier to the untyped fenced code block (change the opening fence
to ```text) so the example block is typed; update the closing fence accordingly
and ensure the inner example content remains unchanged to satisfy markdownlint
warnings.
In `@skills-lock.json`:
- Around line 3-24: Add the missing "commit" skill entry to skills-lock.json
under the top-level "skills" object so the lockfile reflects the new skill
introduced and consumed by this PR; locate the "skills" object (e.g., alongside
entries like "Add Admin API Endpoint" and "Format numbers") and add a "commit"
key with the appropriate source, sourceType, and computedHash (compute the hash
using the same tooling/process used for the other entries) so the registry is
complete and reproducible.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
Run ID: 744e11a1-4689-4d20-b373-a6729ee2e5f6
📒 Files selected for processing (18)
.agents/skills/add-admin-api-endpoint/SKILL.md.agents/skills/add-admin-api-endpoint/permissions.md.agents/skills/add-admin-api-endpoint/reference.md.agents/skills/add-admin-api-endpoint/validation.md.agents/skills/add-private-feature-flag/SKILL.md.agents/skills/commit/SKILL.md.agents/skills/create-database-migration/SKILL.md.agents/skills/create-database-migration/examples.md.agents/skills/create-database-migration/rules.md.agents/skills/format-number/SKILL.md.claude/commands/commit.md.claude/skills/add-admin-api-endpoint.claude/skills/add-private-feature-flag.claude/skills/commit.claude/skills/create-database-migration.claude/skills/format-numberAGENTS.mdskills-lock.json
💤 Files with no reviewable changes (1)
- .claude/commands/commit.md
| ### Main emojis we are using: | ||
|
|
||
| - ✨ Feature | ||
| - 🎨 Improvement / change | ||
| - 🐛 Bug Fix | ||
| - 🌐 i18n (translation) submissions | ||
| - 💡 Anything else flagged to users or whoever is writing release notes | ||
|
|
||
| ### Example | ||
|
|
||
| ``` |
There was a problem hiding this comment.
Fix markdownlint warnings in heading and code fence.
Line 43 has extra spaces in the ATX heading, and Line 53 uses an untyped fenced code block.
Proposed markdown fix
-### Main emojis we are using:
+### Main emojis we are using:
@@
-```
+```text
✨ Added config flag for disabling page analytics
ref https://linear.app/tryghost/issue/ENG-1234/
@@
- using the term `pageAnalytics` as this was discussed as best reflecting what this does</details>
<details>
<summary>🧰 Tools</summary>
<details>
<summary>🪛 markdownlint-cli2 (0.22.0)</summary>
[warning] 43-43: Multiple spaces after hash on atx style heading
(MD019, no-multiple-space-atx)
---
[warning] 53-53: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
</details>
</details>
<details>
<summary>🤖 Prompt for AI Agents</summary>
Verify each finding against the current code and only fix it if needed.
In @.agents/skills/commit/SKILL.md around lines 43 - 53, Remove the extra spaces
in the ATX heading "### Main emojis we are using:" (make it "### Main emojis we
are using:") and add a language identifier to the untyped fenced code block
(change the opening fence to ```text) so the example block is typed; update the
closing fence accordingly and ensure the inner example content remains unchanged
to satisfy markdownlint warnings.
</details>
<!-- fingerprinting:phantom:triton:hawk:fffb20dd-13fc-4172-b26e-3fb474458f9d -->
<!-- This is an auto-generated comment by CodeRabbit -->
This replaces the Claude-only /commit command with a shared skill so commit instructions live in one place and can be reused across agent setups.
a105671 to
ed01aaa
Compare
|
There was a problem hiding this comment.
♻️ Duplicate comments (1)
.agents/skills/commit/SKILL.md (1)
43-53:⚠️ Potential issue | 🟡 MinorFix remaining markdownlint issues in heading and fenced block.
Line 43 still has double spacing after the ATX marker, and Line 53 still uses an untyped fenced block.
Proposed markdown fix
-### Main emojis we are using: +### Main emojis we are using: @@ -``` +```text ✨ Added config flag for disabling page analytics ref https://linear.app/tryghost/issue/ENG-1234/ @@ - using the term `pageAnalytics` as this was discussed as best reflecting what this does</details> <details> <summary>🤖 Prompt for AI Agents</summary>Verify each finding against the current code and only fix it if needed.
In @.agents/skills/commit/SKILL.md around lines 43 - 53, The heading "Main
emojis we are using:" currently has two spaces after the ATX marker—remove the
extra space so it reads a single space after the "#" in that heading;
additionally change the untyped fenced code block in the Example section to a
typed fence (e.g., use ```text) as shown in the proposed fix so markdownlint no
longer flags an untyped block; locate the heading and the fenced block within
.agents/skills/commit/SKILL.md (the "Main emojis we are using:" heading and the
following Example fenced block) and apply these two edits.</details> </blockquote></details> </blockquote></details> <details> <summary>🤖 Prompt for all review comments with AI agents</summary>Verify each finding against the current code and only fix it if needed.
Duplicate comments:
In @.agents/skills/commit/SKILL.md:
- Around line 43-53: The heading "Main emojis we are using:" currently has two
spaces after the ATX marker—remove the extra space so it reads a single space
after the "#" in that heading; additionally change the untyped fenced code block
in the Example section to a typed fence (e.g., use ```text) as shown in the
proposed fix so markdownlint no longer flags an untyped block; locate the
heading and the fenced block within .agents/skills/commit/SKILL.md (the "Main
emojis we are using:" heading and the following Example fenced block) and apply
these two edits.</details> --- <details> <summary>ℹ️ Review info</summary> <details> <summary>⚙️ Run configuration</summary> **Configuration used**: Path: .coderabbit.yaml **Review profile**: CHILL **Plan**: Pro **Run ID**: `52b656dd-e0c1-4102-872b-a93e9d1d9c91` </details> <details> <summary>📥 Commits</summary> Reviewing files that changed from the base of the PR and between a1056713b0b07075fb776d22ab8e72ec8ba758b6 and ed01aaa2c94ff9cc4a6af2db2dd68c6b2da959cc. </details> <details> <summary>📒 Files selected for processing (5)</summary> * `.agents/skills/commit/SKILL.md` * `.claude/commands/commit.md` * `.claude/skills/commit` * `AGENTS.md` * `skills-lock.json` </details> <details> <summary>💤 Files with no reviewable changes (1)</summary> * .claude/commands/commit.md </details> <details> <summary>✅ Files skipped from review due to trivial changes (2)</summary> * .claude/skills/commit * AGENTS.md </details> <details> <summary>🚧 Files skipped from review as they are similar to previous changes (1)</summary> * skills-lock.json </details> </details> <!-- This is an auto-generated comment by CodeRabbit for review status -->
Agent skills are starting to settle as a pattern used by many agents. The approach set out in this commit uses the `npx skills` CLI from Vercel to init custom skills in the repo, using the more standard `.agent/skills` folder as the default. Symlinks are added for `.claude/skills` to keep compatibility with the main outlier. Using `npx skills` gives us a skills-lock.json file with some metadata about skills, so we can determine custom vs installed skills, and supports keeping them up to date. This approach will also allow us to install custom skills from this repo on other repos. The last thing this PR achieves is a commit skill, which will hopefully help agents to follow existing commit conventions more readily. This is an example of the pattern being set out.



Summary
.agents/skillsand replace.claude/skills/*with symlinks to the shared copiesskills-lock.jsonso the shared skills layout is explicit and reproducible/commitcommand with a sharedcommitskill and updateAGENTS.mdto load that skill