feat(okf): install plugin directly from repo, not chezmoi - #891
Conversation
Move okf-wiki plugin files from chezmoi/private_dot_agents/plugins/ to top-level plugins/ so they are managed directly from the repo checkout instead of being deployed via chezmoi to ~/.agents/plugins/. Register the marketplace via the chezmoi sourceDir path so chezmoi apply wires it up without needing a separate copy step. Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
|
Warning Review limit reached
Next review available in: 16 minutes Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (3)
📝 WalkthroughWalkthroughAdds a local ChangesOKF wiki automation
Estimated code review effort: 3 (Moderate) | ~20 minutes Sequence Diagram(s)sequenceDiagram
participant SessionEnd
participant MaintenanceScript
participant StateFile
participant ClaudeCLI
SessionEnd->>MaintenanceScript: Run okf-wiki maintenance
MaintenanceScript->>StateFile: Check today's run date
MaintenanceScript->>ClaudeCLI: Submit wiki prompt with journal context
ClaudeCLI-->>MaintenanceScript: Return completion status
MaintenanceScript->>StateFile: Save today's date
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 |
✅MegaLinter analysis: Success
Notices📣 MegaLinter 9.5.0 is out! Discover the new features and security recommendations in the release announcement. (Skip this info by defining 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
|
✅MegaLinter analysis: Success
Notices📣 MegaLinter 9.5.0 is out! Discover the new features and security recommendations in the release announcement. (Skip this info by defining 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
|
✅
|
| Descriptor | Linter | Files | Fixed | Errors | Warnings | Elapsed time |
|---|---|---|---|---|---|---|
| ✅ ACTION | actionlint | 5 | 0 | 0 | 0.29s | |
| ✅ ACTION | zizmor | 5 | 0 | 0 | 0 | 0.82s |
| ✅ BASH | bash-exec | 4 | 0 | 0 | 0.02s | |
| ✅ BASH | shellcheck | 4 | 0 | 0 | 0.11s | |
| ✅ BASH | shfmt | 4 | 0 | 0 | 0 | 0.02s |
| ✅ COPYPASTE | jscpd | yes | no | no | 0.12s | |
| ✅ EDITORCONFIG | editorconfig-checker | 84 | 0 | 0 | 0.09s | |
| ✅ JSON | prettier | 8 | 0 | 0 | 0 | 0.52s |
| ✅ JSON | v8r | 12 | 0 | 0 | 4.35s | |
| ✅ MARKDOWN | markdownlint | 9 | 0 | 0 | 0 | 0.83s |
| ✅ MARKDOWN | markdown-table-formatter | 11 | 0 | 0 | 0 | 0.21s |
| ✅ REPOSITORY | betterleaks | yes | no | no | 2.38s | |
| ✅ REPOSITORY | checkov | yes | no | no | 24.05s | |
| ✅ REPOSITORY | gitleaks | yes | no | no | 1.46s | |
| ✅ REPOSITORY | git_diff | yes | no | no | 0.01s | |
| ✅ REPOSITORY | grype | yes | no | no | 51.06s | |
| ✅ REPOSITORY | osv-scanner | yes | no | no | 0.12s | |
| ✅ REPOSITORY | secretlint | yes | no | no | 1.46s | |
| ✅ REPOSITORY | syft | yes | no | no | 3.64s | |
| ✅ REPOSITORY | trivy | yes | no | no | 11.91s | |
| ✅ REPOSITORY | trivy-sbom | yes | no | no | 0.27s | |
| ✅ REPOSITORY | trufflehog | yes | no | no | 4.3s | |
| lychee | 35 | 10 | 0 | 1.05s | ||
| ✅ YAML | prettier | 11 | 0 | 0 | 0 | 0.65s |
| ✅ YAML | v8r | 11 | 0 | 0 | 8.33s | |
| ✅ YAML | yamllint | 11 | 0 | 0 | 0.53s |
Detailed Issues
⚠️ SPELL / lychee - 10 errors
📝 Summary
---------------------
🔍 Total...........33
🔗 Unique..........25
✅ Successful......23
⏳ Timeouts.........0
🔀 Redirected.......4
👻 Excluded.........0
❓ Unknown..........0
🚫 Errors..........10
⛔ Unsupported.....10
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 32:15) | Rejected status code: 406 Not Acceptable
Errors in chezmoi/private_dot_agents/skills/okf/templates/concept.md
[ERROR] file://chezmoi/private_dot_agents/skills/okf/templates/url (at 24:5) | File not found. Check if file exists and path is correct
Errors in chezmoi/private_dot_agents/skills/okf/templates/index.md
[ERROR] file://chezmoi/private_dot_agents/skills/okf/templates/relative-url (at 3:3) | File not found. Check if file exists and path is correct
[ERROR] file://chezmoi/private_dot_agents/skills/okf/templates/relative-url (at 4:3) | File not found. Check if file exists and path is correct
[ERROR] file://chezmoi/private_dot_agents/skills/okf/templates/subdir (at 8:3) | File not found. Check if file exists and path is correct
Errors in chezmoi/private_dot_agents/skills/okf/templates/log.md
[ERROR] file://chezmoi/private_dot_agents/skills/okf/templates/bundle-relative-path (at 5:36) | File not found. Check if file exists and path is correct
[ERROR] file://chezmoi/private_dot_agents/skills/okf/templates/bundle-relative-path (at 6:30) | File not found. Check if file exists and path is correct
[ERROR] file://chezmoi/private_dot_agents/skills/okf/templates/bundle-relative-path (at 7:39) | File not found. Check if file exists and path is correct
Errors in plugins/.claude-plugin/marketplace.json
[404] https://anthropic.com/claude-code/marketplace.schema.json (at 2:15) | Rejected status code: 404 Not Found | Followed 1 redirect. Redirects: https://anthropic.com/claude-code/marketplace.schema.json --[301]--> https://www.anthropic.com/claude-code/marketplace.schema.json
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`
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.6.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_BETTERLEAKS,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: 2
🤖 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 `@plugins/okf-wiki/hooks/hooks.json`:
- Around line 8-11: Quote the CLAUDE_PLUGIN_ROOT expansion in the hook command
within hooks.json so paths containing spaces remain a single shell argument when
invoking okf-wiki-maintenance.sh; preserve the existing asynchronous execution
and timeout settings.
In `@plugins/okf-wiki/hooks/okf-wiki-maintenance.sh`:
- Around line 47-49: Update the extra_context assignments in the maintenance
script to use ANSI-C quoting with $'\n' so each appended Project summary and
User profile entry begins on an actual new line rather than containing literal
\n characters.
🪄 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: b885a38e-c178-4884-8233-e5b072fa924c
📒 Files selected for processing (8)
chezmoi/.chezmoiscripts/run_onchange_after_agent_plugins.sh.tmplchezmoi/.chezmoiscripts/run_onchange_after_setup_claude.sh.tmplchezmoi/.chezmoitemplates/claude-settings.jsonplugins/.claude-plugin/marketplace.jsonplugins/okf-wiki/.claude-plugin/plugin.jsonplugins/okf-wiki/hooks/hooks.jsonplugins/okf-wiki/hooks/okf-wiki-maintenance.shplugins/okf-wiki/okf-wiki-review.txt
💤 Files with no reviewable changes (1)
- plugins/okf-wiki/okf-wiki-review.txt
There was a problem hiding this comment.
Caution
Inline review comments failed to post. This is likely due to GitHub's internal server error or limits when posting large numbers of comments. If you are seeing this consistently it is likely a permissions issue. Please check "Moderation" -> "Code review limits" under your organization settings.
Actionable comments posted: 2
🤖 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 `@plugins/okf-wiki/hooks/hooks.json`:
- Around line 8-11: Quote the CLAUDE_PLUGIN_ROOT expansion in the hook command
within hooks.json so paths containing spaces remain a single shell argument when
invoking okf-wiki-maintenance.sh; preserve the existing asynchronous execution
and timeout settings.
In `@plugins/okf-wiki/hooks/okf-wiki-maintenance.sh`:
- Around line 47-49: Update the extra_context assignments in the maintenance
script to use ANSI-C quoting with $'\n' so each appended Project summary and
User profile entry begins on an actual new line rather than containing literal
\n characters.
🪄 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: b885a38e-c178-4884-8233-e5b072fa924c
📒 Files selected for processing (8)
chezmoi/.chezmoiscripts/run_onchange_after_agent_plugins.sh.tmplchezmoi/.chezmoiscripts/run_onchange_after_setup_claude.sh.tmplchezmoi/.chezmoitemplates/claude-settings.jsonplugins/.claude-plugin/marketplace.jsonplugins/okf-wiki/.claude-plugin/plugin.jsonplugins/okf-wiki/hooks/hooks.jsonplugins/okf-wiki/hooks/okf-wiki-maintenance.shplugins/okf-wiki/okf-wiki-review.txt
💤 Files with no reviewable changes (1)
- plugins/okf-wiki/okf-wiki-review.txt
🛑 Comments failed to post (2)
plugins/okf-wiki/hooks/hooks.json (1)
8-11: 🩺 Stability & Availability | 🟠 Major | ⚡ Quick win
Quote
CLAUDE_PLUGIN_ROOTin the hook command.The unquoted expansion is split by the shell when the plugin path contains spaces, so the SessionEnd maintenance script will fail to start.
Proposed fix
- "command": "bash ${CLAUDE_PLUGIN_ROOT}/hooks/okf-wiki-maintenance.sh", + "command": "bash \"${CLAUDE_PLUGIN_ROOT}/hooks/okf-wiki-maintenance.sh\"",📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements."type": "command", "command": "bash \"${CLAUDE_PLUGIN_ROOT}/hooks/okf-wiki-maintenance.sh\"", "async": true, "timeout": 300🤖 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 `@plugins/okf-wiki/hooks/hooks.json` around lines 8 - 11, Quote the CLAUDE_PLUGIN_ROOT expansion in the hook command within hooks.json so paths containing spaces remain a single shell argument when invoking okf-wiki-maintenance.sh; preserve the existing asynchronous execution and timeout settings.plugins/okf-wiki/hooks/okf-wiki-maintenance.sh (1)
47-49: 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win
Fix literal
\nin string assignments.In Bash,
\ninside double quotes is treated as the literal characters\andn, not a newline. This means the literal string\nProject summary...will be passed to Claude. Use the ANSI-C quoting syntax$'\n'to insert actual line breaks into the string.💡 Proposed fix
extra_context="" -[ -f "${MEMSEARCH_DIR}/PROJECT.md" ] && extra_context="${extra_context}\nProject summary: ${MEMSEARCH_DIR}/PROJECT.md" -[ -f "${MEMSEARCH_DIR}/USER.md" ] && extra_context="${extra_context}\nUser profile: ${MEMSEARCH_DIR}/USER.md" +[ -f "${MEMSEARCH_DIR}/PROJECT.md" ] && extra_context="${extra_context}"$'\n'"Project summary: ${MEMSEARCH_DIR}/PROJECT.md" +[ -f "${MEMSEARCH_DIR}/USER.md" ] && extra_context="${extra_context}"$'\n'"User profile: ${MEMSEARCH_DIR}/USER.md"📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.extra_context="" [ -f "${MEMSEARCH_DIR}/PROJECT.md" ] && extra_context="${extra_context}"$'\n'"Project summary: ${MEMSEARCH_DIR}/PROJECT.md" [ -f "${MEMSEARCH_DIR}/USER.md" ] && extra_context="${extra_context}"$'\n'"User profile: ${MEMSEARCH_DIR}/USER.md"🤖 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 `@plugins/okf-wiki/hooks/okf-wiki-maintenance.sh` around lines 47 - 49, Update the extra_context assignments in the maintenance script to use ANSI-C quoting with $'\n' so each appended Project summary and User profile entry begins on an actual new line rather than containing literal \n characters.
There was a problem hiding this comment.
Code Review
This pull request updates the Claude settings and the OKF Wiki maintenance plugin. Key changes include updating the local marketplace plugin installation path, adjusting directory permissions, switching the maintenance run interval from hours-based to daily calendar date-based, and optimizing the claude command invocation with the Haiku model and low effort. Feedback on the changes points out that using literal \n inside double quotes in Bash does not create an actual newline character, and suggests using actual newlines instead, which would also allow simplifying the subsequent parameter expansion for extra_context.
Important
The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.
Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
- Add Skill back to allowed-tools (prompt invokes okf skill) - Guard PROMPT_FILE existence before proceeding - Fix \n literal in extra_context (use $'\n' for real newlines) - Use unset CLAUDECODE instead of export CLAUDECODE= Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
- Use literal newlines in extra_context instead of $'\n' - Simplify extra_context interpolation (already starts with newline) - Add execute bit to maintenance script (fix bash-exec lint warning) Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
Summary
okf-wikiplugin fromchezmoi/private_dot_agents/plugins/to top-levelplugins/with plain filenames (no chezmoi naming conventions){{ .chezmoi.sourceDir }}/../pluginsso it points directly at the repo checkoutokf-wiki-maintenance.sh— use--model haiku --effort low, dropSkillfrom allowed-tools, use--append-system-prompt-file, switch interval gate to calendar-date check,${VAR}style throughoutTest plan
chezmoi applyregisters theyxtaymarketplace from the repoplugins/pathclaude plugin install okf-wiki@yxtaysucceeds🤖 Generated with Claude Code
Summary by CodeRabbit
New Features
Improvements
Security