Skip to content

fix: update skills - #873

Merged
yxtay merged 2 commits into
mainfrom
fix/update-skills
Jul 9, 2026
Merged

fix: update skills#873
yxtay merged 2 commits into
mainfrom
fix/update-skills

Conversation

@yxtay

@yxtay yxtay commented Jul 9, 2026

Copy link
Copy Markdown
Owner

Summary by CodeRabbit

  • New Features

    • Added a broader set of Git shortcuts and command helpers for everyday repository workflows.
    • Added OS-aware global ignore rules to improve default Git hygiene across macOS, Windows, and other systems.
    • Expanded available Claude-related plugins on supported setups.
  • Chores

    • Updated template whitespace handling and cleaned up configuration rendering for more consistent generated files.

@coderabbitai

coderabbitai Bot commented Jul 9, 2026

Copy link
Copy Markdown

Review Change Stack

📝 Walkthrough

Walkthrough

Adds new chezmoi templates gitalias and gitignore containing large sets of Git aliases and OS-specific ignore patterns, wires them into git/alias.tmpl and git/ignore.tmpl, removes the old external gitalias download, adjusts whitespace-trimming delimiters in several script templates, expands the Claude plugins list, and updates mattpocock skill configuration.

Changes

Git alias and ignore templating

Layer / File(s) Summary
Shared gitalias template and wiring
chezmoi/.chezmoitemplates/gitalias, chezmoi/private_dot_config/git/alias.tmpl, chezmoi/.chezmoiexternal.toml.tmpl
Adds a large new gitalias template with hundreds of Git aliases, invokes it from alias.tmpl, and removes the prior external download of gitalias.txt.
Shared gitignore template and wiring
chezmoi/.chezmoitemplates/gitignore, chezmoi/private_dot_config/git/ignore.tmpl
Adds a new OS-conditional gitignore template (macOS/Windows/fallback patterns) and replaces inline OS-specific ignore rules in ignore.tmpl with a single template call.

Estimated code review effort: 3 (Moderate) | ~25 minutes

Script template whitespace and config updates

Layer / File(s) Summary
Whitespace-trimming conditional updates
chezmoi/.chezmoiscripts/run_after_update_agent_skills.sh.tmpl, chezmoi/.chezmoiscripts/run_before_brew_install.sh.tmpl, chezmoi/.chezmoiscripts/run_onchange_macos_defaults.sh.tmpl, chezmoi/private_dot_agents/AGENTS.md.tmpl
Updates opening template conditionals to use {{- ... -}} whitespace-trimming delimiters without changing logic.
Claude plugins and skills config
chezmoi/.chezmoiscripts/run_onchange_setup_claude.sh.tmpl, chezmoi/.chezmoiscripts/run_onchange_after_agent_plugins.sh.tmpl
Expands the Claude plugins array with additional claude-plugins-official entries and reconfigures mattpocock/skills grouping.

Estimated code review effort: 2 (Simple) | ~10 minutes

Possibly related PRs

  • yxtay/dotfiles#817: Both extend the Claude plugins/marketplaces list in run_onchange_setup_claude.sh.tmpl.
  • yxtay/dotfiles#832: Both refactor git/ignore.tmpl to centralize OS-specific gitignore rules via templating.
  • yxtay/dotfiles#851: Both modify the same plugins array in run_onchange_setup_claude.sh.tmpl.

Suggested labels: chore

Poem

A rabbit hops through dotfiles deep,
Gathering aliases while others sleep,
Gitignore tucked in one tidy den,
Whitespace trimmed, again and again,
Plugins bloom like clover fresh —
Hop hop hooray for a cleaner mesh! 🐇🌿

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title is related to one real part of the PR, but it only captures the skills-related template change and not the broader git template updates.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/update-skills

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actions

github-actions Bot commented Jul 9, 2026

Copy link
Copy Markdown
Contributor

⚠️MegaLinter analysis: Success with warnings

Descriptor Linter Files Fixed Errors Warnings Elapsed time
✅ BASH shfmt 3 0 0 0 0.02s
⚠️ JSON prettier 9 0 1 0 0.48s
⚠️ MARKDOWN markdownlint 6 0 2 0 0.64s
✅ MARKDOWN markdown-table-formatter 6 0 0 0 0.17s
✅ YAML prettier 10 0 0 0 0.58s

Detailed Issues

⚠️ MARKDOWN / markdownlint - 2 errors
chezmoi/private_dot_claude/modify_CLAUDE.md:1 error MD041/first-line-heading/first-line-h1 First line in a file should be a top-level heading [Context: "{{- /*chezmoi:modify-template*..."]
chezmoi/private_dot_config/opencode/modify_AGENTS.md:1 error MD041/first-line-heading/first-line-h1 First line in a file should be a top-level heading [Context: "{{- /*chezmoi:modify-template*..."]
⚠️ JSON / prettier - 1 error
chezmoi/.chezmoitemplates/claude-settings.json 78ms (unchanged)
chezmoi/.chezmoitemplates/mcp_servers.json 5ms (unchanged)
chezmoi/.chezmoitemplates/opencode-tui.json 2ms (unchanged)
chezmoi/.chezmoitemplates/opencode.json 4ms (unchanged)
[error] chezmoi/private_dot_claude/modify_settings.json: SyntaxError: Unexpected token (1:2)
[error] > 1 | {{- /* chezmoi:modify-template */ -}}
[error]     |  ^
[error]   2 | {{- $current := dict -}}
[error]   3 | {{- if .chezmoi.stdin | trim -}}
[error]   4 | {{-   $current = fromJson .chezmoi.stdin -}}
[error] chezmoi/private_dot_config/mcp/modify_mcp_servers.json: SyntaxError: Unexpected token (1:2)
[error] > 1 | {{- /* chezmoi:modify-template */ -}}
[error]     |  ^
[error]   2 | {{- $current := dict -}}
[error]   3 | {{- if .chezmoi.stdin | trim -}}
[error]   4 | {{-   $current = fromJson .chezmoi.stdin -}}
[error] chezmoi/private_dot_config/opencode/modify_opencode.json: SyntaxError: Unexpected token (1:2)
[error] > 1 | {{- /* chezmoi:modify-template */ -}}
[error]     |  ^
[error]   2 | {{- $current := dict -}}
[error]   3 | {{- if .chezmoi.stdin | trim -}}
[error]   4 | {{-   $current = fromJson .chezmoi.stdin -}}
[error] chezmoi/private_dot_config/opencode/modify_tui.json: SyntaxError: Unexpected token (1:2)
[error] > 1 | {{- /* chezmoi:modify-template */ -}}
[error]     |  ^
[error]   2 | {{- $current := dict -}}
[error]   3 | {{- if .chezmoi.stdin | trim -}}
[error]   4 | {{-   $current = fromJson .chezmoi.stdin -}}
renovate.json 13ms (unchanged)

Notices

📣 MegaLinter 9.5.0 is out! Discover the new features and security recommendations in the release announcement. (Skip this info by defining SECURITY_SUGGESTIONS: false)

See detailed reports in MegaLinter artifacts

Your project could benefit from a custom flavor, which would allow you to run only the linters you need, and thus improve runtime performances. (Skip this info by defining FLAVOR_SUGGESTIONS: false)

  • Documentation: Custom Flavors
  • Command: npx mega-linter-runner@9.5.0 --custom-flavor-setup --custom-flavor-linters BASH_SHFMT,JSON_PRETTIER,MARKDOWN_MARKDOWNLINT,MARKDOWN_MARKDOWN_TABLE_FORMATTER,YAML_PRETTIER

MegaLinter is graciously provided by OX Security
Show us your support by starring ⭐ the repository

@github-actions

github-actions Bot commented Jul 9, 2026

Copy link
Copy Markdown
Contributor

⚠️MegaLinter analysis: Success with warnings

Descriptor Linter Files Fixed Errors Warnings Elapsed time
✅ BASH bash-exec 3 0 0 0.01s
✅ BASH shellcheck 3 0 0 0.1s
✅ REPOSITORY checkov yes no no 21.24s
✅ REPOSITORY devskim yes no no 2.62s
✅ REPOSITORY dustilock yes no no 0.01s
✅ REPOSITORY gitleaks yes no no 1.1s
✅ REPOSITORY grype yes no no 46.94s
✅ REPOSITORY kingfisher yes no no 8.03s
⚠️ REPOSITORY osv-scanner yes 1 no 0.17s
✅ REPOSITORY secretlint yes no no 2.5s
✅ REPOSITORY syft yes no no 1.8s
✅ REPOSITORY trivy yes no no 10.75s
✅ REPOSITORY trivy-sbom yes no no 0.13s
✅ REPOSITORY trufflehog yes no no 3.62s

Detailed Issues

⚠️ REPOSITORY / osv-scanner - 1 error
Scanning dir .
Starting filesystem walk for root: /
End status: 40 dirs visited, 141 inodes visited, 0 Extract calls, 4.022727ms elapsed, 4.022948ms wall time
No package sources found, --help for usage information.

Notices

📣 MegaLinter 9.5.0 is out! Discover the new features and security recommendations in the release announcement. (Skip this info by defining SECURITY_SUGGESTIONS: false)

See detailed reports in MegaLinter artifacts

Your project could benefit from a custom flavor, which would allow you to run only the linters you need, and thus improve runtime performances. (Skip this info by defining FLAVOR_SUGGESTIONS: false)

  • Documentation: Custom Flavors
  • Command: npx mega-linter-runner@9.5.0 --custom-flavor-setup --custom-flavor-linters BASH_EXEC,BASH_SHELLCHECK,REPOSITORY_CHECKOV,REPOSITORY_DEVSKIM,REPOSITORY_DUSTILOCK,REPOSITORY_GITLEAKS,REPOSITORY_GRYPE,REPOSITORY_OSV_SCANNER,REPOSITORY_SECRETLINT,REPOSITORY_SYFT,REPOSITORY_TRIVY,REPOSITORY_TRIVY_SBOM,REPOSITORY_TRUFFLEHOG,REPOSITORY_KINGFISHER

MegaLinter is graciously provided by OX Security
Show us your support by starring ⭐ the repository

@github-actions

github-actions Bot commented Jul 9, 2026

Copy link
Copy Markdown
Contributor

⚠️MegaLinter analysis: Success with warnings

Descriptor Linter Files Fixed Errors Warnings Elapsed time
✅ ACTION actionlint 5 0 0 0.37s
✅ ACTION zizmor 5 0 0 0 0.78s
✅ BASH bash-exec 3 0 0 0.0s
✅ BASH shellcheck 3 0 0 0.07s
✅ BASH shfmt 3 0 0 0 0.01s
✅ COPYPASTE jscpd yes no no 0.56s
✅ EDITORCONFIG editorconfig-checker 70 0 0 0.04s
⚠️ JSON prettier 9 0 1 0 0.38s
✅ JSON v8r 9 0 0 2.87s
⚠️ MARKDOWN markdownlint 6 0 2 0 0.51s
✅ MARKDOWN markdown-table-formatter 6 0 0 0 0.16s
✅ REPOSITORY checkov yes no no 23.42s
✅ REPOSITORY gitleaks yes no no 0.95s
✅ REPOSITORY git_diff yes no no 0.0s
✅ REPOSITORY grype yes no no 40.79s
⚠️ REPOSITORY osv-scanner yes 1 no 0.11s
✅ REPOSITORY secretlint yes no no 1.0s
✅ REPOSITORY syft yes no no 1.31s
✅ REPOSITORY trivy yes no no 11.22s
✅ REPOSITORY trivy-sbom yes no no 0.15s
✅ REPOSITORY trufflehog yes no no 2.55s
⚠️ SPELL lychee 25 2 0 1.02s
✅ YAML prettier 10 0 0 0 0.38s
✅ YAML v8r 10 0 0 4.5s
✅ YAML yamllint 10 0 0 0.42s

Detailed Issues

⚠️ SPELL / lychee - 2 errors
📝 Summary
---------------------
🔍 Total...........21
🔗 Unique..........16
✅ Successful......19
⏳ Timeouts.........0
🔀 Redirected.......4
👻 Excluded.........0
❓ Unknown..........0
🚫 Errors...........2
⛔ Unsupported......2

Errors in chezmoi/.chezmoitemplates/mcp_servers.json
[406] https://mcp.deepwiki.com/mcp (at 11:15) | Rejected status code: 406 Not Acceptable

Errors in chezmoi/.chezmoitemplates/opencode.json
[406] https://mcp.deepwiki.com/mcp (at 24:15) | Rejected status code: 406 Not Acceptable

Hint: Followed 4 redirects. You might want to consider replacing redirecting URLs with the resolved URLs. Use verbose mode (`-v`/`-vv`) to see redirection details.
Hint: You can configure accepted/rejected response codes with `-a` or `--accept`
⚠️ MARKDOWN / markdownlint - 2 errors
chezmoi/private_dot_claude/modify_CLAUDE.md:1 error MD041/first-line-heading/first-line-h1 First line in a file should be a top-level heading [Context: "{{- /*chezmoi:modify-template*..."]
chezmoi/private_dot_config/opencode/modify_AGENTS.md:1 error MD041/first-line-heading/first-line-h1 First line in a file should be a top-level heading [Context: "{{- /*chezmoi:modify-template*..."]
⚠️ REPOSITORY / osv-scanner - 1 error
Scanning dir .
Starting filesystem walk for root: /
End status: 40 dirs visited, 141 inodes visited, 0 Extract calls, 1.506791ms elapsed, 1.506989ms wall time
No package sources found, --help for usage information.
⚠️ JSON / prettier - 1 error
chezmoi/.chezmoitemplates/claude-settings.json 73ms (unchanged)
chezmoi/.chezmoitemplates/mcp_servers.json 3ms (unchanged)
chezmoi/.chezmoitemplates/opencode-tui.json 2ms (unchanged)
chezmoi/.chezmoitemplates/opencode.json 3ms (unchanged)
[error] chezmoi/private_dot_claude/modify_settings.json: SyntaxError: Unexpected token (1:2)
[error] > 1 | {{- /* chezmoi:modify-template */ -}}
[error]     |  ^
[error]   2 | {{- $current := dict -}}
[error]   3 | {{- if .chezmoi.stdin | trim -}}
[error]   4 | {{-   $current = fromJson .chezmoi.stdin -}}
[error] chezmoi/private_dot_config/mcp/modify_mcp_servers.json: SyntaxError: Unexpected token (1:2)
[error] > 1 | {{- /* chezmoi:modify-template */ -}}
[error]     |  ^
[error]   2 | {{- $current := dict -}}
[error]   3 | {{- if .chezmoi.stdin | trim -}}
[error]   4 | {{-   $current = fromJson .chezmoi.stdin -}}
[error] chezmoi/private_dot_config/opencode/modify_opencode.json: SyntaxError: Unexpected token (1:2)
[error] > 1 | {{- /* chezmoi:modify-template */ -}}
[error]     |  ^
[error]   2 | {{- $current := dict -}}
[error]   3 | {{- if .chezmoi.stdin | trim -}}
[error]   4 | {{-   $current = fromJson .chezmoi.stdin -}}
[error] chezmoi/private_dot_config/opencode/modify_tui.json: SyntaxError: Unexpected token (1:2)
[error] > 1 | {{- /* chezmoi:modify-template */ -}}
[error]     |  ^
[error]   2 | {{- $current := dict -}}
[error]   3 | {{- if .chezmoi.stdin | trim -}}
[error]   4 | {{-   $current = fromJson .chezmoi.stdin -}}
renovate.json 8ms (unchanged)

Notices

📣 MegaLinter 9.5.0 is out! Discover the new features and security recommendations in the release announcement. (Skip this info by defining SECURITY_SUGGESTIONS: false)

See detailed reports in MegaLinter artifacts

Your project could benefit from a custom flavor, which would allow you to run only the linters you need, and thus improve runtime performances. (Skip this info by defining FLAVOR_SUGGESTIONS: false)

  • Documentation: Custom Flavors
  • Command: npx mega-linter-runner@9.5.0 --custom-flavor-setup --custom-flavor-linters ACTION_ACTIONLINT,ACTION_ZIZMOR,BASH_EXEC,BASH_SHELLCHECK,BASH_SHFMT,COPYPASTE_JSCPD,EDITORCONFIG_EDITORCONFIG_CHECKER,JSON_V8R,JSON_PRETTIER,MARKDOWN_MARKDOWNLINT,MARKDOWN_MARKDOWN_TABLE_FORMATTER,REPOSITORY_CHECKOV,REPOSITORY_GIT_DIFF,REPOSITORY_GITLEAKS,REPOSITORY_GRYPE,REPOSITORY_OSV_SCANNER,REPOSITORY_SECRETLINT,REPOSITORY_SYFT,REPOSITORY_TRIVY,REPOSITORY_TRIVY_SBOM,REPOSITORY_TRUFFLEHOG,SPELL_LYCHEE,YAML_PRETTIER,YAML_YAMLLINT,YAML_V8R

MegaLinter is graciously provided by OX Security
Show us your support by starring ⭐ the repository

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🧹 Nitpick comments (1)
chezmoi/.chezmoiscripts/run_onchange_setup_claude.sh.tmpl (1)

1-1: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low value

Consider adding {{- for consistency with other templates in this PR.

Line 1 still uses {{ if ... while the other script templates updated in this PR (run_after_update_agent_skills.sh.tmpl, run_before_brew_install.sh.tmpl, run_onchange_macos_defaults.sh.tmpl) now use {{- if .... Since this is at line 1, there's no behavioral difference, but aligning the style would improve consistency.

♻️ Optional consistency tweak
-{{ if and (eq .chezmoi.os "darwin") (not .is_ephemeral) -}}
+{{- if and (eq .chezmoi.os "darwin") (not .is_ephemeral) -}}
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@chezmoi/.chezmoiscripts/run_onchange_setup_claude.sh.tmpl` at line 1, Update
the template header in run_onchange_setup_claude.sh.tmpl for consistency by
changing the opening conditional to use the trimmed delimiter style used in the
other script templates. This is a formatting-only cleanup in the top-level
template condition (the `if and (eq .chezmoi.os "darwin") (not .is_ephemeral)`
block); keep the same logic, just align the leading `{{ if ...` syntax with the
other updated templates such as run_after_update_agent_skills.sh.tmpl,
run_before_brew_install.sh.tmpl, and run_onchange_macos_defaults.sh.tmpl.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@chezmoi/.chezmoitemplates/gitalias`:
- Around line 1581-1587: The remote-ref alias is using a literal branch name in
the branch.remote lookup, so it does not read the current branch’s configured
remote. Update the remote-ref shell snippet to use $local_name consistently when
querying git config in the alias definition, and keep the rest of the logic in
remote-ref unchanged so it still derives remote_name from the merge ref.

---

Nitpick comments:
In `@chezmoi/.chezmoiscripts/run_onchange_setup_claude.sh.tmpl`:
- Line 1: Update the template header in run_onchange_setup_claude.sh.tmpl for
consistency by changing the opening conditional to use the trimmed delimiter
style used in the other script templates. This is a formatting-only cleanup in
the top-level template condition (the `if and (eq .chezmoi.os "darwin") (not
.is_ephemeral)` block); keep the same logic, just align the leading `{{ if ...`
syntax with the other updated templates such as
run_after_update_agent_skills.sh.tmpl, run_before_brew_install.sh.tmpl, and
run_onchange_macos_defaults.sh.tmpl.
🪄 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: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: fc55f904-1157-4a15-9af4-03f5e31793c9

📥 Commits

Reviewing files that changed from the base of the PR and between a17fbc6 and 3469420.

📒 Files selected for processing (11)
  • chezmoi/.chezmoiexternal.toml.tmpl
  • chezmoi/.chezmoiscripts/run_after_update_agent_skills.sh.tmpl
  • chezmoi/.chezmoiscripts/run_before_brew_install.sh.tmpl
  • chezmoi/.chezmoiscripts/run_onchange_after_agent_plugins.sh.tmpl
  • chezmoi/.chezmoiscripts/run_onchange_macos_defaults.sh.tmpl
  • chezmoi/.chezmoiscripts/run_onchange_setup_claude.sh.tmpl
  • chezmoi/.chezmoitemplates/gitalias
  • chezmoi/.chezmoitemplates/gitignore
  • chezmoi/private_dot_agents/AGENTS.md.tmpl
  • chezmoi/private_dot_config/git/alias.tmpl
  • chezmoi/private_dot_config/git/ignore.tmpl
💤 Files with no reviewable changes (1)
  • chezmoi/.chezmoiexternal.toml.tmpl

Comment on lines +1581 to +1587
remote-ref = "!\
local_ref=\"$(git symbolic-ref HEAD)\"; \
local_name=\"${local_ref##refs/heads/}\"; \
remote=\"$(git config branch.\"#local_name\".remote || echo origin)\"; \
remote_ref=\"$(git config branch.\"$local_name\".merge)\"; \
remote_name=\"${remote_ref##refs/heads/}\"; \
echo \"remotes/$remote/$remote_name\" #"

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

# Inspect the relevant section and nearby context.
FILE='chezmoi/.chezmoitemplates/gitalias'
wc -l "$FILE"
sed -n '1574,1590p' "$FILE" | cat -n

# Search for other uses of the same alias or pattern.
rg -n 'remote-ref|`#local_name`|branch\."\$local_name"\.merge|branch\."`#local_name`"\.remote' "$FILE"

Repository: yxtay/dotfiles

Length of output: 1186


Fix remote-ref to use $local_name branch."#local_name".remote looks up a literal branch name, so the alias falls back to origin instead of using the current branch’s configured remote.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@chezmoi/.chezmoitemplates/gitalias` around lines 1581 - 1587, The remote-ref
alias is using a literal branch name in the branch.remote lookup, so it does not
read the current branch’s configured remote. Update the remote-ref shell snippet
to use $local_name consistently when querying git config in the alias
definition, and keep the rest of the logic in remote-ref unchanged so it still
derives remote_name from the merge ref.

@yxtay
yxtay merged commit 85d9996 into main Jul 9, 2026
35 of 37 checks passed
@yxtay
yxtay deleted the fix/update-skills branch July 9, 2026 02:00
@gemini-code-assist

Copy link
Copy Markdown
Contributor

Warning

Gemini encountered an error creating the review. You can try again by commenting /gemini review.

@coderabbitai coderabbitai Bot mentioned this pull request Jul 23, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant