fix: update skills - #873
Conversation
📝 WalkthroughWalkthroughAdds new chezmoi templates ChangesGit alias and ignore templating
Estimated code review effort: 3 (Moderate) | ~25 minutes Script template whitespace and config updates
Estimated code review effort: 2 (Simple) | ~10 minutes Possibly related PRs
Suggested labels: Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
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. Comment |
✅
|
| Descriptor | Linter | Files | Fixed | Errors | Warnings | Elapsed time |
|---|---|---|---|---|---|---|
| ✅ BASH | shfmt | 3 | 0 | 0 | 0 | 0.02s |
| prettier | 9 | 0 | 1 | 0 | 0.48s | |
| 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

Show us your support by starring ⭐ the repository
✅
|
| 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 | |
| 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

Show us your support by starring ⭐ the repository
✅
|
| 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 | |
| prettier | 9 | 0 | 1 | 0 | 0.38s | |
| ✅ JSON | v8r | 9 | 0 | 0 | 2.87s | |
| 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 | |
| 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 | |
| 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

Show us your support by starring ⭐ the repository
There was a problem hiding this comment.
Actionable comments posted: 1
🧹 Nitpick comments (1)
chezmoi/.chezmoiscripts/run_onchange_setup_claude.sh.tmpl (1)
1-1: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low valueConsider 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
📒 Files selected for processing (11)
chezmoi/.chezmoiexternal.toml.tmplchezmoi/.chezmoiscripts/run_after_update_agent_skills.sh.tmplchezmoi/.chezmoiscripts/run_before_brew_install.sh.tmplchezmoi/.chezmoiscripts/run_onchange_after_agent_plugins.sh.tmplchezmoi/.chezmoiscripts/run_onchange_macos_defaults.sh.tmplchezmoi/.chezmoiscripts/run_onchange_setup_claude.sh.tmplchezmoi/.chezmoitemplates/gitaliaschezmoi/.chezmoitemplates/gitignorechezmoi/private_dot_agents/AGENTS.md.tmplchezmoi/private_dot_config/git/alias.tmplchezmoi/private_dot_config/git/ignore.tmpl
💤 Files with no reviewable changes (1)
- chezmoi/.chezmoiexternal.toml.tmpl
| 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\" #" |
There was a problem hiding this comment.
🎯 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.
|
Warning Gemini encountered an error creating the review. You can try again by commenting |
Summary by CodeRabbit
New Features
Chores