@olegkoval/agent-skills 1.37.0 → 1.38.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.github/copilot-instructions.md +1 -0
- package/.github/prompts/ai-tools-setup.prompt.md +7 -7
- package/.github/prompts/apple-store-submit.prompt.md +7 -7
- package/.github/prompts/branch-cleanup.prompt.md +13 -13
- package/.github/prompts/ci-fix-loop.prompt.md +7 -7
- package/.github/prompts/cloudflare-block-countries.prompt.md +1 -1
- package/.github/prompts/coderabbitloop.prompt.md +15 -15
- package/.github/prompts/codexloop.prompt.md +20 -20
- package/.github/prompts/context-repo.prompt.md +169 -0
- package/.github/prompts/crash-course.prompt.md +11 -11
- package/.github/prompts/dependabot-triage.prompt.md +9 -9
- package/.github/prompts/fill-music-player.prompt.md +1 -1
- package/.github/prompts/gallery.prompt.md +16 -16
- package/.github/prompts/garmin-watchface.prompt.md +13 -13
- package/.github/prompts/geminiloop.prompt.md +15 -15
- package/.github/prompts/macos-menubar-app.prompt.md +4 -4
- package/.github/prompts/morning-routine.prompt.md +11 -11
- package/.github/prompts/music-to-plex.prompt.md +14 -14
- package/.github/prompts/mvp-oneshot.prompt.md +17 -17
- package/.github/prompts/obsidian-pr-sync.prompt.md +15 -15
- package/.github/prompts/obsidian-task-rollover.prompt.md +16 -16
- package/.github/prompts/pr-description-writer.prompt.md +4 -4
- package/.github/prompts/pr-finalize.prompt.md +20 -20
- package/.github/prompts/pr-to-green.prompt.md +10 -10
- package/.github/prompts/product-builder.prompt.md +5 -5
- package/.github/prompts/promptctl.prompt.md +6 -6
- package/.github/prompts/qodoloop.prompt.md +18 -18
- package/.github/prompts/release-day.prompt.md +21 -21
- package/.github/prompts/retro-analysis.prompt.md +23 -20
- package/.github/prompts/review-past-performance.prompt.md +25 -25
- package/.github/prompts/starter-rules.prompt.md +6 -6
- package/.github/prompts/store-listing-copy.prompt.md +13 -13
- package/.github/prompts/wikipedia-uk-editor.prompt.md +20 -20
- package/.kiro/steering/ai-tools-setup.md +7 -7
- package/.kiro/steering/apple-store-submit.md +7 -7
- package/.kiro/steering/cloudflare-block-countries.md +1 -1
- package/.kiro/steering/coderabbitloop.md +15 -15
- package/.kiro/steering/codexloop.md +20 -20
- package/.kiro/steering/context-repo.md +168 -0
- package/.kiro/steering/crash-course.md +11 -11
- package/.kiro/steering/fill-music-player.md +1 -1
- package/.kiro/steering/gallery.md +16 -16
- package/.kiro/steering/garmin-watchface.md +13 -13
- package/.kiro/steering/geminiloop.md +15 -15
- package/.kiro/steering/macos-menubar-app.md +4 -4
- package/.kiro/steering/music-to-plex.md +14 -14
- package/.kiro/steering/mvp-oneshot.md +17 -17
- package/.kiro/steering/obsidian-pr-sync.md +15 -15
- package/.kiro/steering/obsidian-task-rollover.md +16 -16
- package/.kiro/steering/pr-finalize.md +20 -20
- package/.kiro/steering/product-builder.md +5 -5
- package/.kiro/steering/promptctl.md +6 -6
- package/.kiro/steering/qodoloop.md +18 -18
- package/.kiro/steering/retro-analysis.md +23 -20
- package/.kiro/steering/review-past-performance.md +25 -25
- package/.kiro/steering/starter-rules.md +6 -6
- package/.kiro/steering/wikipedia-uk-editor.md +20 -20
- package/.windsurf/rules/ai-tools-setup.md +7 -7
- package/.windsurf/rules/apple-store-submit.md +7 -7
- package/.windsurf/rules/cloudflare-block-countries.md +1 -1
- package/.windsurf/rules/coderabbitloop.md +15 -15
- package/.windsurf/rules/codexloop.md +20 -20
- package/.windsurf/rules/context-repo.md +167 -0
- package/.windsurf/rules/crash-course.md +11 -11
- package/.windsurf/rules/fill-music-player.md +1 -1
- package/.windsurf/rules/gallery.md +16 -16
- package/.windsurf/rules/garmin-watchface.md +13 -13
- package/.windsurf/rules/geminiloop.md +15 -15
- package/.windsurf/rules/macos-menubar-app.md +4 -4
- package/.windsurf/rules/music-to-plex.md +14 -14
- package/.windsurf/rules/mvp-oneshot.md +17 -17
- package/.windsurf/rules/obsidian-pr-sync.md +15 -15
- package/.windsurf/rules/obsidian-task-rollover.md +16 -16
- package/.windsurf/rules/pr-finalize.md +20 -20
- package/.windsurf/rules/product-builder.md +5 -5
- package/.windsurf/rules/promptctl.md +6 -6
- package/.windsurf/rules/qodoloop.md +18 -18
- package/.windsurf/rules/retro-analysis.md +23 -20
- package/.windsurf/rules/review-past-performance.md +25 -25
- package/.windsurf/rules/starter-rules.md +6 -6
- package/.windsurf/rules/wikipedia-uk-editor.md +20 -20
- package/README.md +20 -5
- package/adapters/claude/olko-apple-kit/skills/apple-store-submit/SKILL.md +8 -8
- package/adapters/claude/olko-apple-kit/skills/macos-menubar-app/SKILL.md +4 -4
- package/adapters/claude/olko-creative/skills/fill-music-player/SKILL.md +1 -1
- package/adapters/claude/olko-creative/skills/gallery/SKILL.md +16 -16
- package/adapters/claude/olko-creative/skills/music-to-plex/SKILL.md +15 -15
- package/adapters/claude/olko-creative/skills/music-to-plex/references/fallback-audio-validation-and-nas-preflight.md +1 -1
- package/adapters/claude/olko-creative/skills/music-to-plex/references/music-note-blurb-order.md +1 -1
- package/adapters/claude/olko-creative/skills/music-to-plex/references/no-result-album-fallback.md +1 -1
- package/adapters/claude/olko-creative/skills/music-to-plex/references/plex-token-source.md +1 -1
- package/adapters/claude/olko-creative/skills/music-to-plex/references/torrent-stall-fallback.md +6 -6
- package/adapters/claude/olko-creative/skills/wikipedia-uk-editor/SKILL.md +20 -20
- package/adapters/claude/olko-creative/skills/wikipedia-uk-editor/references/newcomer-tasks.md +11 -11
- package/adapters/claude/olko-creative/skills/wikipedia-uk-editor/references/strategy.md +21 -21
- package/adapters/claude/olko-creative/skills/wikipedia-uk-editor/references/wikitext-uk.md +5 -5
- package/adapters/claude/olko-creative/skills/wikipedia-uk-editor/scripts/wiki.sh +1 -1
- package/adapters/claude/olko-garmin-kit/skills/garmin-watchface/SKILL.md +13 -13
- package/adapters/claude/olko-garmin-kit/skills/garmin-watchface/references/devices.md +7 -7
- package/adapters/claude/olko-garmin-kit/skills/garmin-watchface/references/display.md +10 -10
- package/adapters/claude/olko-garmin-kit/skills/garmin-watchface/references/layout.md +5 -5
- package/adapters/claude/olko-garmin-kit/skills/garmin-watchface/references/publishing.md +16 -16
- package/adapters/claude/olko-garmin-kit/skills/garmin-watchface/references/simulator.md +11 -11
- package/adapters/claude/olko-garmin-kit/skills/garmin-watchface/references/store.md +4 -4
- package/adapters/claude/olko-garmin-kit/skills/garmin-watchface/references/testing.md +5 -5
- package/adapters/claude/olko-garmin-kit/skills/garmin-watchface/scripts/ciq-mock +1 -1
- package/adapters/claude/olko-git-tools/skills/branch-cleanup/SKILL.md +13 -13
- package/adapters/claude/olko-github-pr/skills/ci-fix-loop/SKILL.md +8 -8
- package/adapters/claude/olko-github-pr/skills/coderabbitloop/SKILL.md +14 -14
- package/adapters/claude/olko-github-pr/skills/coderabbitloop/references/graphql-queries.md +8 -8
- package/adapters/claude/olko-github-pr/skills/codexloop/SKILL.md +19 -19
- package/adapters/claude/olko-github-pr/skills/dependabot-triage/SKILL.md +10 -10
- package/adapters/claude/olko-github-pr/skills/geminiloop/SKILL.md +14 -14
- package/adapters/claude/olko-github-pr/skills/lekker-review/SKILL.md +39 -17
- package/adapters/claude/olko-github-pr/skills/lekker-review/references/agents/completeness-critic.md +3 -3
- package/adapters/claude/olko-github-pr/skills/lekker-review/references/agents/conventions.md +16 -16
- package/adapters/claude/olko-github-pr/skills/lekker-review/references/agents/implementation.md +9 -9
- package/adapters/claude/olko-github-pr/skills/lekker-review/references/agents/quality.md +8 -8
- package/adapters/claude/olko-github-pr/skills/lekker-review/references/agents/simplification.md +10 -10
- package/adapters/claude/olko-github-pr/skills/lekker-review/references/agents/test-quality.md +17 -17
- package/adapters/claude/olko-github-pr/skills/lekker-review/references/agents/triage-logic.md +6 -6
- package/adapters/claude/olko-github-pr/skills/lekker-review/references/agents/triage-quality.md +10 -10
- package/adapters/claude/olko-github-pr/skills/lekker-review/references/context-gathering.md +18 -18
- package/adapters/claude/olko-github-pr/skills/lekker-review/references/fix-mode.md +1 -1
- package/adapters/claude/olko-github-pr/skills/lekker-review/references/github-post.md +10 -10
- package/adapters/claude/olko-github-pr/skills/lekker-review/references/house-rules.md +11 -11
- package/adapters/claude/olko-github-pr/skills/lekker-review/references/output-format.md +45 -45
- package/adapters/claude/olko-github-pr/skills/pr-description-writer/SKILL.md +5 -5
- package/adapters/claude/olko-github-pr/skills/pr-finalize/SKILL.md +20 -20
- package/adapters/claude/olko-github-pr/skills/pr-to-green/SKILL.md +11 -11
- package/adapters/claude/olko-github-pr/skills/qodoloop/SKILL.md +17 -17
- package/adapters/claude/olko-github-pr/skills/qodoloop/references/graphql-queries.md +13 -13
- package/adapters/claude/olko-obsidian/skills/morning-routine/SKILL.md +11 -11
- package/adapters/claude/olko-obsidian/skills/obsidian-pr-sync/SKILL.md +15 -15
- package/adapters/claude/olko-obsidian/skills/obsidian-task-rollover/SKILL.md +17 -17
- package/adapters/claude/olko-product/skills/mvp-oneshot/SKILL.md +17 -17
- package/adapters/claude/olko-product/skills/product-builder/SKILL.md +5 -5
- package/adapters/claude/olko-product/skills/starter-rules/SKILL.md +6 -6
- package/adapters/claude/olko-reflection/skills/crash-course/SKILL.md +11 -11
- package/adapters/claude/olko-reflection/skills/retro-analysis/SKILL.md +23 -20
- package/adapters/claude/olko-reflection/skills/review-past-performance/SKILL.md +25 -25
- package/adapters/claude/olko-release/skills/release-day/SKILL.md +21 -21
- package/adapters/claude/olko-release/skills/store-listing-copy/SKILL.md +14 -14
- package/adapters/claude/olko-skill-meta/skills/ai-tools-setup/SKILL.md +8 -8
- package/adapters/claude/olko-skill-meta/skills/context-repo/SKILL.md +180 -0
- package/adapters/claude/olko-skill-meta/skills/promptctl/SKILL.md +6 -6
- package/adapters/claude/olko-skill-meta/skills/relay/SKILL.md +11 -11
- package/adapters/claude/olko-skill-meta/skills/shared-knowledge-artifact/SKILL.md +19 -10
- package/adapters/claude/olko-skill-meta/skills/shared-knowledge-artifact/references/prompt.txt +31 -5
- package/adapters/claude/olko-skill-meta/skills/skill-budget-audit/SKILL.md +2 -2
- package/adapters/claude/olko-web-ops/skills/cloudflare-block-countries/SKILL.md +1 -1
- package/adapters/codex/olko-skill-meta/README.md +1 -0
- package/adapters/cursor/olko-apple-kit/skills/apple-store-submit/SKILL.md +8 -8
- package/adapters/cursor/olko-apple-kit/skills/macos-menubar-app/SKILL.md +4 -4
- package/adapters/cursor/olko-creative/skills/fill-music-player/SKILL.md +1 -1
- package/adapters/cursor/olko-creative/skills/gallery/SKILL.md +16 -16
- package/adapters/cursor/olko-creative/skills/music-to-plex/SKILL.md +15 -15
- package/adapters/cursor/olko-creative/skills/music-to-plex/references/fallback-audio-validation-and-nas-preflight.md +1 -1
- package/adapters/cursor/olko-creative/skills/music-to-plex/references/music-note-blurb-order.md +1 -1
- package/adapters/cursor/olko-creative/skills/music-to-plex/references/no-result-album-fallback.md +1 -1
- package/adapters/cursor/olko-creative/skills/music-to-plex/references/plex-token-source.md +1 -1
- package/adapters/cursor/olko-creative/skills/music-to-plex/references/torrent-stall-fallback.md +6 -6
- package/adapters/cursor/olko-creative/skills/wikipedia-uk-editor/SKILL.md +20 -20
- package/adapters/cursor/olko-creative/skills/wikipedia-uk-editor/references/newcomer-tasks.md +11 -11
- package/adapters/cursor/olko-creative/skills/wikipedia-uk-editor/references/strategy.md +21 -21
- package/adapters/cursor/olko-creative/skills/wikipedia-uk-editor/references/wikitext-uk.md +5 -5
- package/adapters/cursor/olko-creative/skills/wikipedia-uk-editor/scripts/wiki.sh +1 -1
- package/adapters/cursor/olko-garmin-kit/skills/garmin-watchface/SKILL.md +13 -13
- package/adapters/cursor/olko-garmin-kit/skills/garmin-watchface/references/devices.md +7 -7
- package/adapters/cursor/olko-garmin-kit/skills/garmin-watchface/references/display.md +10 -10
- package/adapters/cursor/olko-garmin-kit/skills/garmin-watchface/references/layout.md +5 -5
- package/adapters/cursor/olko-garmin-kit/skills/garmin-watchface/references/publishing.md +16 -16
- package/adapters/cursor/olko-garmin-kit/skills/garmin-watchface/references/simulator.md +11 -11
- package/adapters/cursor/olko-garmin-kit/skills/garmin-watchface/references/store.md +4 -4
- package/adapters/cursor/olko-garmin-kit/skills/garmin-watchface/references/testing.md +5 -5
- package/adapters/cursor/olko-garmin-kit/skills/garmin-watchface/scripts/ciq-mock +1 -1
- package/adapters/cursor/olko-git-tools/skills/branch-cleanup/SKILL.md +13 -13
- package/adapters/cursor/olko-github-pr/skills/ci-fix-loop/SKILL.md +8 -8
- package/adapters/cursor/olko-github-pr/skills/coderabbitloop/SKILL.md +14 -14
- package/adapters/cursor/olko-github-pr/skills/coderabbitloop/references/graphql-queries.md +8 -8
- package/adapters/cursor/olko-github-pr/skills/codexloop/SKILL.md +19 -19
- package/adapters/cursor/olko-github-pr/skills/dependabot-triage/SKILL.md +10 -10
- package/adapters/cursor/olko-github-pr/skills/geminiloop/SKILL.md +14 -14
- package/adapters/cursor/olko-github-pr/skills/pr-description-writer/SKILL.md +5 -5
- package/adapters/cursor/olko-github-pr/skills/pr-finalize/SKILL.md +20 -20
- package/adapters/cursor/olko-github-pr/skills/pr-to-green/SKILL.md +11 -11
- package/adapters/cursor/olko-github-pr/skills/qodoloop/SKILL.md +17 -17
- package/adapters/cursor/olko-github-pr/skills/qodoloop/references/graphql-queries.md +13 -13
- package/adapters/cursor/olko-obsidian/skills/morning-routine/SKILL.md +11 -11
- package/adapters/cursor/olko-obsidian/skills/obsidian-pr-sync/SKILL.md +15 -15
- package/adapters/cursor/olko-obsidian/skills/obsidian-task-rollover/SKILL.md +17 -17
- package/adapters/cursor/olko-product/skills/mvp-oneshot/SKILL.md +17 -17
- package/adapters/cursor/olko-product/skills/product-builder/SKILL.md +5 -5
- package/adapters/cursor/olko-product/skills/starter-rules/SKILL.md +6 -6
- package/adapters/cursor/olko-reflection/skills/crash-course/SKILL.md +11 -11
- package/adapters/cursor/olko-reflection/skills/retro-analysis/SKILL.md +23 -20
- package/adapters/cursor/olko-reflection/skills/review-past-performance/SKILL.md +25 -25
- package/adapters/cursor/olko-release/skills/release-day/SKILL.md +21 -21
- package/adapters/cursor/olko-release/skills/store-listing-copy/SKILL.md +14 -14
- package/adapters/cursor/olko-skill-meta/skills/ai-tools-setup/SKILL.md +8 -8
- package/adapters/cursor/olko-skill-meta/skills/context-repo/SKILL.md +180 -0
- package/adapters/cursor/olko-skill-meta/skills/promptctl/SKILL.md +6 -6
- package/adapters/cursor/olko-web-ops/skills/cloudflare-block-countries/SKILL.md +1 -1
- package/adapters/grok/olko-apple-kit/skills/apple-store-submit/SKILL.md +8 -8
- package/adapters/grok/olko-apple-kit/skills/macos-menubar-app/SKILL.md +4 -4
- package/adapters/grok/olko-creative/skills/fill-music-player/SKILL.md +1 -1
- package/adapters/grok/olko-creative/skills/gallery/SKILL.md +16 -16
- package/adapters/grok/olko-creative/skills/music-to-plex/SKILL.md +15 -15
- package/adapters/grok/olko-creative/skills/music-to-plex/references/fallback-audio-validation-and-nas-preflight.md +1 -1
- package/adapters/grok/olko-creative/skills/music-to-plex/references/music-note-blurb-order.md +1 -1
- package/adapters/grok/olko-creative/skills/music-to-plex/references/no-result-album-fallback.md +1 -1
- package/adapters/grok/olko-creative/skills/music-to-plex/references/plex-token-source.md +1 -1
- package/adapters/grok/olko-creative/skills/music-to-plex/references/torrent-stall-fallback.md +6 -6
- package/adapters/grok/olko-creative/skills/wikipedia-uk-editor/SKILL.md +20 -20
- package/adapters/grok/olko-creative/skills/wikipedia-uk-editor/references/newcomer-tasks.md +11 -11
- package/adapters/grok/olko-creative/skills/wikipedia-uk-editor/references/strategy.md +21 -21
- package/adapters/grok/olko-creative/skills/wikipedia-uk-editor/references/wikitext-uk.md +5 -5
- package/adapters/grok/olko-creative/skills/wikipedia-uk-editor/scripts/wiki.sh +1 -1
- package/adapters/grok/olko-garmin-kit/skills/garmin-watchface/SKILL.md +13 -13
- package/adapters/grok/olko-garmin-kit/skills/garmin-watchface/references/devices.md +7 -7
- package/adapters/grok/olko-garmin-kit/skills/garmin-watchface/references/display.md +10 -10
- package/adapters/grok/olko-garmin-kit/skills/garmin-watchface/references/layout.md +5 -5
- package/adapters/grok/olko-garmin-kit/skills/garmin-watchface/references/publishing.md +16 -16
- package/adapters/grok/olko-garmin-kit/skills/garmin-watchface/references/simulator.md +11 -11
- package/adapters/grok/olko-garmin-kit/skills/garmin-watchface/references/store.md +4 -4
- package/adapters/grok/olko-garmin-kit/skills/garmin-watchface/references/testing.md +5 -5
- package/adapters/grok/olko-garmin-kit/skills/garmin-watchface/scripts/ciq-mock +1 -1
- package/adapters/grok/olko-git-tools/skills/branch-cleanup/SKILL.md +13 -13
- package/adapters/grok/olko-github-pr/skills/ci-fix-loop/SKILL.md +8 -8
- package/adapters/grok/olko-github-pr/skills/coderabbitloop/SKILL.md +14 -14
- package/adapters/grok/olko-github-pr/skills/coderabbitloop/references/graphql-queries.md +8 -8
- package/adapters/grok/olko-github-pr/skills/codexloop/SKILL.md +19 -19
- package/adapters/grok/olko-github-pr/skills/dependabot-triage/SKILL.md +10 -10
- package/adapters/grok/olko-github-pr/skills/geminiloop/SKILL.md +14 -14
- package/adapters/grok/olko-github-pr/skills/pr-description-writer/SKILL.md +5 -5
- package/adapters/grok/olko-github-pr/skills/pr-finalize/SKILL.md +20 -20
- package/adapters/grok/olko-github-pr/skills/pr-to-green/SKILL.md +11 -11
- package/adapters/grok/olko-github-pr/skills/qodoloop/SKILL.md +17 -17
- package/adapters/grok/olko-github-pr/skills/qodoloop/references/graphql-queries.md +13 -13
- package/adapters/grok/olko-obsidian/skills/morning-routine/SKILL.md +11 -11
- package/adapters/grok/olko-obsidian/skills/obsidian-pr-sync/SKILL.md +15 -15
- package/adapters/grok/olko-obsidian/skills/obsidian-task-rollover/SKILL.md +17 -17
- package/adapters/grok/olko-product/skills/mvp-oneshot/SKILL.md +17 -17
- package/adapters/grok/olko-product/skills/product-builder/SKILL.md +5 -5
- package/adapters/grok/olko-product/skills/starter-rules/SKILL.md +6 -6
- package/adapters/grok/olko-reflection/skills/crash-course/SKILL.md +11 -11
- package/adapters/grok/olko-reflection/skills/retro-analysis/SKILL.md +23 -20
- package/adapters/grok/olko-reflection/skills/review-past-performance/SKILL.md +25 -25
- package/adapters/grok/olko-release/skills/release-day/SKILL.md +21 -21
- package/adapters/grok/olko-release/skills/store-listing-copy/SKILL.md +14 -14
- package/adapters/grok/olko-skill-meta/skills/ai-tools-setup/SKILL.md +8 -8
- package/adapters/grok/olko-skill-meta/skills/context-repo/SKILL.md +180 -0
- package/adapters/grok/olko-skill-meta/skills/promptctl/SKILL.md +6 -6
- package/adapters/grok/olko-skill-meta/skills/relay/SKILL.md +11 -11
- package/adapters/grok/olko-skill-meta/skills/skill-budget-audit/SKILL.md +2 -2
- package/adapters/grok/olko-web-ops/skills/cloudflare-block-countries/SKILL.md +1 -1
- package/catalog/skills.json +31 -8
- package/docs/agent-context-store.md +122 -0
- package/docs/skill-anatomy.md +7 -7
- package/package.json +1 -1
- package/plugins/olko-apple-kit/.claude-plugin/plugin.json +1 -1
- package/plugins/olko-apple-kit/skills/apple-store-submit/SKILL.md +8 -8
- package/plugins/olko-apple-kit/skills/macos-menubar-app/SKILL.md +4 -4
- package/plugins/olko-creative/.claude-plugin/plugin.json +1 -1
- package/plugins/olko-creative/skills/fill-music-player/SKILL.md +1 -1
- package/plugins/olko-creative/skills/gallery/SKILL.md +16 -16
- package/plugins/olko-creative/skills/music-to-plex/SKILL.md +15 -15
- package/plugins/olko-creative/skills/music-to-plex/references/fallback-audio-validation-and-nas-preflight.md +1 -1
- package/plugins/olko-creative/skills/music-to-plex/references/music-note-blurb-order.md +1 -1
- package/plugins/olko-creative/skills/music-to-plex/references/no-result-album-fallback.md +1 -1
- package/plugins/olko-creative/skills/music-to-plex/references/plex-token-source.md +1 -1
- package/plugins/olko-creative/skills/music-to-plex/references/torrent-stall-fallback.md +6 -6
- package/plugins/olko-creative/skills/wikipedia-uk-editor/SKILL.md +20 -20
- package/plugins/olko-creative/skills/wikipedia-uk-editor/references/newcomer-tasks.md +11 -11
- package/plugins/olko-creative/skills/wikipedia-uk-editor/references/strategy.md +21 -21
- package/plugins/olko-creative/skills/wikipedia-uk-editor/references/wikitext-uk.md +5 -5
- package/plugins/olko-creative/skills/wikipedia-uk-editor/scripts/wiki.sh +1 -1
- package/plugins/olko-garmin-kit/.claude-plugin/plugin.json +1 -1
- package/plugins/olko-garmin-kit/skills/garmin-watchface/SKILL.md +13 -13
- package/plugins/olko-garmin-kit/skills/garmin-watchface/references/devices.md +7 -7
- package/plugins/olko-garmin-kit/skills/garmin-watchface/references/display.md +10 -10
- package/plugins/olko-garmin-kit/skills/garmin-watchface/references/layout.md +5 -5
- package/plugins/olko-garmin-kit/skills/garmin-watchface/references/publishing.md +16 -16
- package/plugins/olko-garmin-kit/skills/garmin-watchface/references/simulator.md +11 -11
- package/plugins/olko-garmin-kit/skills/garmin-watchface/references/store.md +4 -4
- package/plugins/olko-garmin-kit/skills/garmin-watchface/references/testing.md +5 -5
- package/plugins/olko-garmin-kit/skills/garmin-watchface/scripts/ciq-mock +1 -1
- package/plugins/olko-git-tools/.claude-plugin/plugin.json +1 -1
- package/plugins/olko-git-tools/skills/branch-cleanup/SKILL.md +13 -13
- package/plugins/olko-github-pr/.claude-plugin/plugin.json +1 -1
- package/plugins/olko-github-pr/skills/ci-fix-loop/SKILL.md +8 -8
- package/plugins/olko-github-pr/skills/coderabbitloop/SKILL.md +14 -14
- package/plugins/olko-github-pr/skills/coderabbitloop/references/graphql-queries.md +8 -8
- package/plugins/olko-github-pr/skills/codexloop/SKILL.md +19 -19
- package/plugins/olko-github-pr/skills/dependabot-triage/SKILL.md +10 -10
- package/plugins/olko-github-pr/skills/geminiloop/SKILL.md +14 -14
- package/plugins/olko-github-pr/skills/lekker-review/SKILL.md +39 -17
- package/plugins/olko-github-pr/skills/lekker-review/references/agents/completeness-critic.md +3 -3
- package/plugins/olko-github-pr/skills/lekker-review/references/agents/conventions.md +16 -16
- package/plugins/olko-github-pr/skills/lekker-review/references/agents/implementation.md +9 -9
- package/plugins/olko-github-pr/skills/lekker-review/references/agents/quality.md +8 -8
- package/plugins/olko-github-pr/skills/lekker-review/references/agents/simplification.md +10 -10
- package/plugins/olko-github-pr/skills/lekker-review/references/agents/test-quality.md +17 -17
- package/plugins/olko-github-pr/skills/lekker-review/references/agents/triage-logic.md +6 -6
- package/plugins/olko-github-pr/skills/lekker-review/references/agents/triage-quality.md +10 -10
- package/plugins/olko-github-pr/skills/lekker-review/references/context-gathering.md +18 -18
- package/plugins/olko-github-pr/skills/lekker-review/references/fix-mode.md +1 -1
- package/plugins/olko-github-pr/skills/lekker-review/references/github-post.md +10 -10
- package/plugins/olko-github-pr/skills/lekker-review/references/house-rules.md +11 -11
- package/plugins/olko-github-pr/skills/lekker-review/references/output-format.md +45 -45
- package/plugins/olko-github-pr/skills/lekker-review/workflow.js +60 -9
- package/plugins/olko-github-pr/skills/pr-description-writer/SKILL.md +5 -5
- package/plugins/olko-github-pr/skills/pr-finalize/SKILL.md +20 -20
- package/plugins/olko-github-pr/skills/pr-to-green/SKILL.md +11 -11
- package/plugins/olko-github-pr/skills/qodoloop/SKILL.md +17 -17
- package/plugins/olko-github-pr/skills/qodoloop/references/graphql-queries.md +13 -13
- package/plugins/olko-obsidian/.claude-plugin/plugin.json +1 -1
- package/plugins/olko-obsidian/skills/morning-routine/SKILL.md +11 -11
- package/plugins/olko-obsidian/skills/obsidian-pr-sync/SKILL.md +15 -15
- package/plugins/olko-obsidian/skills/obsidian-task-rollover/SKILL.md +17 -17
- package/plugins/olko-product/.claude-plugin/plugin.json +1 -1
- package/plugins/olko-product/skills/mvp-oneshot/SKILL.md +17 -17
- package/plugins/olko-product/skills/product-builder/SKILL.md +5 -5
- package/plugins/olko-product/skills/starter-rules/SKILL.md +6 -6
- package/plugins/olko-reflection/.claude-plugin/plugin.json +1 -1
- package/plugins/olko-reflection/skills/crash-course/SKILL.md +11 -11
- package/plugins/olko-reflection/skills/retro-analysis/SKILL.md +23 -20
- package/plugins/olko-reflection/skills/review-past-performance/SKILL.md +25 -25
- package/plugins/olko-release/.claude-plugin/plugin.json +1 -1
- package/plugins/olko-release/skills/release-day/SKILL.md +21 -21
- package/plugins/olko-release/skills/store-listing-copy/SKILL.md +14 -14
- package/plugins/olko-skill-meta/.claude-plugin/plugin.json +1 -1
- package/plugins/olko-skill-meta/skills/ai-tools-setup/SKILL.md +8 -8
- package/plugins/olko-skill-meta/skills/context-repo/SKILL.md +179 -0
- package/plugins/olko-skill-meta/skills/promptctl/SKILL.md +6 -6
- package/plugins/olko-skill-meta/skills/relay/SKILL.md +11 -11
- package/plugins/olko-skill-meta/skills/shared-knowledge-artifact/SKILL.md +19 -10
- package/plugins/olko-skill-meta/skills/shared-knowledge-artifact/references/prompt.txt +31 -5
- package/plugins/olko-skill-meta/skills/skill-budget-audit/SKILL.md +2 -2
- package/plugins/olko-web-ops/.claude-plugin/plugin.json +1 -1
- package/plugins/olko-web-ops/skills/cloudflare-block-countries/SKILL.md +1 -1
- package/scripts/lib/catalog.mjs +1 -1
- package/site/assets/paperbag.css +1 -1
- package/site/assets/paperbag.js +1 -1
- package/site/build.mjs +5 -5
|
@@ -33,6 +33,7 @@ Available reusable prompt files:
|
|
|
33
33
|
- mvp-oneshot: .github/prompts/mvp-oneshot.prompt.md
|
|
34
34
|
- starter-rules: .github/prompts/starter-rules.prompt.md
|
|
35
35
|
- viral-launch: .github/prompts/viral-launch.prompt.md
|
|
36
|
+
- context-repo: .github/prompts/context-repo.prompt.md
|
|
36
37
|
- add-to-my-skills: .github/prompts/add-to-my-skills.prompt.md
|
|
37
38
|
- promptctl: .github/prompts/promptctl.prompt.md
|
|
38
39
|
- ai-tools-setup: .github/prompts/ai-tools-setup.prompt.md
|
|
@@ -6,7 +6,7 @@ description: "Set up, repair, and report on the RTK+ICM+Vox AI development toolk
|
|
|
6
6
|
|
|
7
7
|
Use the olko:ai-tools-setup skill.
|
|
8
8
|
|
|
9
|
-
# AI Tools Setup
|
|
9
|
+
# AI Tools Setup: RTK + ICM + Vox
|
|
10
10
|
|
|
11
11
|
Install, repair, and measure the RTK+ICM+Vox toolkit for Claude Code.
|
|
12
12
|
|
|
@@ -15,7 +15,7 @@ Install, repair, and measure the RTK+ICM+Vox toolkit for Claude Code.
|
|
|
15
15
|
| Mode | When to use |
|
|
16
16
|
|------|-------------|
|
|
17
17
|
| **Setup** | First install on a new machine |
|
|
18
|
-
| **Repair** | Something broke
|
|
18
|
+
| **Repair** | Something broke: hooks missing, MCP not loading |
|
|
19
19
|
| **Digest** | Weekly check: token savings, memory health, voice stats |
|
|
20
20
|
|
|
21
21
|
## Tools in the Bundle
|
|
@@ -24,7 +24,7 @@ Install, repair, and measure the RTK+ICM+Vox toolkit for Claude Code.
|
|
|
24
24
|
|------|---------|---------|
|
|
25
25
|
| **RTK** | latest | Compresses CLI output by ~89% before it reaches the model |
|
|
26
26
|
| **ICM** | latest | Persistent SQLite memory across sessions (knowledge graph + hybrid search) |
|
|
27
|
-
| **Vox** | latest | Spoken task notifications via local TTS
|
|
27
|
+
| **Vox** | latest | Spoken task notifications via local TTS (zero API calls) |
|
|
28
28
|
|
|
29
29
|
---
|
|
30
30
|
|
|
@@ -179,8 +179,8 @@ echo "=============================="
|
|
|
179
179
|
|
|
180
180
|
### What healthy output looks like
|
|
181
181
|
|
|
182
|
-
- **RTK**: `Tokens saved: 5M+ (85%+)` across `500+ commands
|
|
183
|
-
- **ICM**: Topics like `decisions-*`, `errors-resolved`, `preferences` with recent timestamps
|
|
182
|
+
- **RTK**: `Tokens saved: 5M+ (85%+)` across `500+ commands`. If savings are low, run `rtk discover` to find uncovered commands
|
|
183
|
+
- **ICM**: Topics like `decisions-*`, `errors-resolved`, `preferences` with recent timestamps. If empty, start storing manually with `icm store`
|
|
184
184
|
- **Vox**: Non-zero speak count means the Stop hook fired
|
|
185
185
|
|
|
186
186
|
---
|
|
@@ -193,7 +193,7 @@ To get a weekly automated report without having to remember to run this skill:
|
|
|
193
193
|
# Create a weekly digest script
|
|
194
194
|
cat > ~/ai-tools-digest.sh << 'EOF'
|
|
195
195
|
#!/bin/bash
|
|
196
|
-
echo "=== Weekly AI Tools Digest
|
|
196
|
+
echo "=== Weekly AI Tools Digest: $(date) ===" | tee -a ~/ai-tools-digest.log
|
|
197
197
|
echo "" | tee -a ~/ai-tools-digest.log
|
|
198
198
|
rtk gain 2>/dev/null | tee -a ~/ai-tools-digest.log
|
|
199
199
|
echo "" | tee -a ~/ai-tools-digest.log
|
|
@@ -255,7 +255,7 @@ To unload: `launchctl unload ~/Library/LaunchAgents/com.oleg.ai-tools-digest.pli
|
|
|
255
255
|
| `rtk gain` | Total tokens saved to date |
|
|
256
256
|
| `rtk discover` | Find commands not yet covered by RTK |
|
|
257
257
|
| `icm topics` | List all memory topic buckets |
|
|
258
|
-
| `icm health` | Memory hygiene
|
|
258
|
+
| `icm health` | Memory hygiene: stale, redundant, decay stats |
|
|
259
259
|
| `icm recall "query"` | Search memories semantically |
|
|
260
260
|
| `icm store -t topic -c "content" -i high` | Store a memory manually |
|
|
261
261
|
| `vox "text"` | Speak text immediately |
|
|
@@ -12,7 +12,7 @@ Use the olko:apple-store-submit skill.
|
|
|
12
12
|
|
|
13
13
|
## Overview
|
|
14
14
|
|
|
15
|
-
Parse Apple rejection feedback, implement targeted fixes, update App Store Connect metadata, and resubmit
|
|
15
|
+
Parse Apple rejection feedback, implement targeted fixes, update App Store Connect metadata, and resubmit, covering the complete cycle from rejection email to approved build.
|
|
16
16
|
|
|
17
17
|
## When to Use
|
|
18
18
|
|
|
@@ -28,9 +28,9 @@ Parse Apple rejection feedback, implement targeted fixes, update App Store Conne
|
|
|
28
28
|
Read the full rejection email. Extract and list:
|
|
29
29
|
|
|
30
30
|
- **Guideline numbers** violated (e.g., 2.1, 4.2.0, 5.1.1)
|
|
31
|
-
- **Code-level issues
|
|
32
|
-
- **Metadata issues
|
|
33
|
-
- **UX issues
|
|
31
|
+
- **Code-level issues**: missing entitlements, incorrect privacy strings, sandbox violations
|
|
32
|
+
- **Metadata issues**: wrong screenshot sizes, subtitle policy, keyword stuffing
|
|
33
|
+
- **UX issues**: crashes described by reviewer, broken flows, missing functionality
|
|
34
34
|
|
|
35
35
|
Create a numbered fix plan: one item per rejection point, with the type of fix needed.
|
|
36
36
|
|
|
@@ -68,7 +68,7 @@ Create a numbered fix plan: one item per rejection point, with the type of fix n
|
|
|
68
68
|
<true/>
|
|
69
69
|
```
|
|
70
70
|
|
|
71
|
-
**Sandbox violations
|
|
71
|
+
**Sandbox violations**: remove `NoEscapeBlock` patterns, replace deprecated APIs, use only sandboxed file access via Security-Scoped Bookmarks when needed.
|
|
72
72
|
|
|
73
73
|
### 4. Build and Archive
|
|
74
74
|
|
|
@@ -116,7 +116,7 @@ Common metadata fixes:
|
|
|
116
116
|
In the submission form, fill **Notes for Reviewer**:
|
|
117
117
|
|
|
118
118
|
- Explain each rejection point and what was changed
|
|
119
|
-
- Reference specific guideline numbers: "Addressing 2.1
|
|
119
|
+
- Reference specific guideline numbers: "Addressing 2.1: added NSMicrophoneUsageDescription to Info.plist"
|
|
120
120
|
- If a feature requires special credentials to test, provide test account details
|
|
121
121
|
|
|
122
122
|
### 7. Submit and Track
|
|
@@ -125,7 +125,7 @@ In the submission form, fill **Notes for Reviewer**:
|
|
|
125
125
|
2. In App Store Connect: select the new build, fill notes, **Submit for Review**
|
|
126
126
|
3. Typical re-review: 24–48h
|
|
127
127
|
4. If rejected again: respond in the **Resolution Center** thread (same case number)
|
|
128
|
-
5. Escalate via Resolution Center for policy disagreements
|
|
128
|
+
5. Escalate via Resolution Center for policy disagreements: do not open a new submission
|
|
129
129
|
|
|
130
130
|
## Build Number Protocol
|
|
131
131
|
|
|
@@ -16,12 +16,12 @@ dry-run so you see exactly what will be deleted before anything is removed.
|
|
|
16
16
|
## Inputs
|
|
17
17
|
|
|
18
18
|
- **Remote** (optional, default: `origin`)
|
|
19
|
-
- **Base branch** (optional, default: `main
|
|
19
|
+
- **Base branch** (optional, default: `main`, detect from `gh repo view`)
|
|
20
20
|
- **--dry-run** (optional, default: on): preview deletions without executing them
|
|
21
|
-
- **--execute**: actually delete branches (requires explicit flag
|
|
21
|
+
- **--execute**: actually delete branches (requires explicit flag, safety default)
|
|
22
22
|
- **--include-local**: also clean up merged local branches (off by default)
|
|
23
23
|
|
|
24
|
-
## Step 1
|
|
24
|
+
## Step 1: Fetch and prune remote tracking references
|
|
25
25
|
|
|
26
26
|
Always start here. This removes local tracking refs for remote branches that are
|
|
27
27
|
already gone, without touching anything else:
|
|
@@ -37,7 +37,7 @@ After pruning, print the count of removed tracking refs:
|
|
|
37
37
|
git branch -vv | grep ': gone]' | wc -l
|
|
38
38
|
```
|
|
39
39
|
|
|
40
|
-
## Step 2
|
|
40
|
+
## Step 2: Identify stale remote branches
|
|
41
41
|
|
|
42
42
|
Find remote branches whose associated PR is merged or closed:
|
|
43
43
|
|
|
@@ -53,7 +53,7 @@ git branch -r --merged "$REMOTE/$BASE" \
|
|
|
53
53
|
```
|
|
54
54
|
|
|
55
55
|
Cross-reference with GitHub to confirm each branch's PR state. Only include branches
|
|
56
|
-
with a confirmed merged or closed PR
|
|
56
|
+
with a confirmed merged or closed PR. An empty result means the branch is not eligible:
|
|
57
57
|
|
|
58
58
|
```bash
|
|
59
59
|
STALE_BRANCHES=()
|
|
@@ -84,7 +84,7 @@ dependabot/npm_and_yarn/eslint-8.57.0 ← 43 merged 2026-07-31
|
|
|
84
84
|
feature/login-refresh ← 38 merged 2026-07-28
|
|
85
85
|
```
|
|
86
86
|
|
|
87
|
-
## Step 3
|
|
87
|
+
## Step 3: Safety filter
|
|
88
88
|
|
|
89
89
|
**Never propose deletion of:**
|
|
90
90
|
|
|
@@ -103,14 +103,14 @@ OPEN=$(gh pr list --head "$branch" --state open --json number --jq 'length')
|
|
|
103
103
|
[ "$OPEN" -gt 0 ] && echo "SKIP (open PR): $branch"
|
|
104
104
|
```
|
|
105
105
|
|
|
106
|
-
## Step 4
|
|
106
|
+
## Step 4: Preview or execute
|
|
107
107
|
|
|
108
108
|
### Dry-run (default)
|
|
109
109
|
|
|
110
110
|
Print the deletion plan and stop. Never touch the remote without `--execute`:
|
|
111
111
|
|
|
112
112
|
```
|
|
113
|
-
Branch cleanup preview
|
|
113
|
+
Branch cleanup preview, dry-run (pass --execute to apply)
|
|
114
114
|
|
|
115
115
|
Remote branches to delete (all merged to main):
|
|
116
116
|
origin/dependabot/npm_and_yarn/lodash-4.17.21 (PR #42, merged 2026-07-31)
|
|
@@ -135,7 +135,7 @@ for branch in "${STALE_BRANCHES[@]}"; do
|
|
|
135
135
|
done
|
|
136
136
|
```
|
|
137
137
|
|
|
138
|
-
## Step 5
|
|
138
|
+
## Step 5: Local branch cleanup (optional, --include-local)
|
|
139
139
|
|
|
140
140
|
Only runs when `--include-local` is explicitly passed.
|
|
141
141
|
|
|
@@ -153,10 +153,10 @@ gone before deleting:
|
|
|
153
153
|
|
|
154
154
|
```bash
|
|
155
155
|
git branch -vv "$branch" # should show ': gone]' if remote is deleted
|
|
156
|
-
git branch -d "$branch" # safe delete
|
|
156
|
+
git branch -d "$branch" # safe delete: fails if unmerged work exists
|
|
157
157
|
```
|
|
158
158
|
|
|
159
|
-
Never use `-D` (force delete)
|
|
159
|
+
Never use `-D` (force delete): let `-d` protect you from accidental data loss.
|
|
160
160
|
|
|
161
161
|
## Report
|
|
162
162
|
|
|
@@ -164,7 +164,7 @@ Never use `-D` (force delete) — let `-d` protect you from accidental data loss
|
|
|
164
164
|
Branch cleanup complete
|
|
165
165
|
|
|
166
166
|
Remote:
|
|
167
|
-
Deleted: 12 branches (10 Dependabot, 2 feature branches
|
|
167
|
+
Deleted: 12 branches (10 Dependabot, 2 feature branches, all merged)
|
|
168
168
|
Protected: 2 skipped (beta, open PR)
|
|
169
169
|
|
|
170
170
|
Local tracking refs:
|
|
@@ -183,4 +183,4 @@ Branch cleanup complete
|
|
|
183
183
|
|---|---|
|
|
184
184
|
| `olko:dependabot-triage` (merged patch PRs) | next `olko:morning-routine` starts clean |
|
|
185
185
|
| Sprint wind-down / milestone close | `git fetch` confirms clean state |
|
|
186
|
-
| Any large batch merge | nothing
|
|
186
|
+
| Any large batch merge | nothing: maintenance complete |
|
|
@@ -35,7 +35,7 @@ gh pr checks --json name,state,conclusion 2>/dev/null \
|
|
|
35
35
|
|
|
36
36
|
Classify each check as: `pass`, `fail`, `pending`, or `skipped`.
|
|
37
37
|
|
|
38
|
-
**Exit immediately if all required checks already pass
|
|
38
|
+
**Exit immediately if all required checks already pass**: nothing to do.
|
|
39
39
|
|
|
40
40
|
### 2. Loop (max 5 iterations)
|
|
41
41
|
|
|
@@ -48,7 +48,7 @@ gh pr checks --json name,state,conclusion \
|
|
|
48
48
|
|
|
49
49
|
For each failing check, record: check name, workflow file, job name.
|
|
50
50
|
|
|
51
|
-
Stop if the working set is empty
|
|
51
|
+
Stop if the working set is empty: all required checks are green.
|
|
52
52
|
|
|
53
53
|
#### B. Check for base-branch regression first
|
|
54
54
|
|
|
@@ -59,7 +59,7 @@ gh run list --branch <base-branch> --workflow <workflow-name> --limit 3 \
|
|
|
59
59
|
--json conclusion --jq '.[].conclusion'
|
|
60
60
|
```
|
|
61
61
|
|
|
62
|
-
If the same check is failing on the base branch, **stop and report
|
|
62
|
+
If the same check is failing on the base branch, **stop and report**:
|
|
63
63
|
this is not your PR's fault. Do not attempt a fix that masks a base-branch problem.
|
|
64
64
|
Wait for a `Base branch recovered` notice before re-trying.
|
|
65
65
|
|
|
@@ -76,7 +76,7 @@ gh run list --branch <branch> --workflow <workflow-name> --limit 1 \
|
|
|
76
76
|
gh run view <run-id> --log-failed
|
|
77
77
|
```
|
|
78
78
|
|
|
79
|
-
Cap log reading at ~200 lines per job
|
|
79
|
+
Cap log reading at ~200 lines per job: the error is almost always in the last
|
|
80
80
|
50 lines of a failed step.
|
|
81
81
|
|
|
82
82
|
#### D. Diagnose
|
|
@@ -128,12 +128,12 @@ go mod tidy # Go
|
|
|
128
128
|
```
|
|
129
129
|
|
|
130
130
|
For test failures: read the failing test and the code it exercises. Fix the code
|
|
131
|
-
or the assertion
|
|
131
|
+
or the assertion, but not both in one commit unless the test was clearly wrong
|
|
132
132
|
and the fix is trivial.
|
|
133
133
|
|
|
134
134
|
#### F. Commit and push
|
|
135
135
|
|
|
136
|
-
Stage **only the files touched in step E
|
|
136
|
+
Stage **only the files touched in step E**: never `git add -A`, which can sweep
|
|
137
137
|
in unrelated local changes:
|
|
138
138
|
|
|
139
139
|
```bash
|
|
@@ -171,7 +171,7 @@ Go back to step A.
|
|
|
171
171
|
```
|
|
172
172
|
CI fix loop complete.
|
|
173
173
|
Iterations: 2
|
|
174
|
-
Fixed: lint (gofmt: 3 files), test (TestUserCreate
|
|
174
|
+
Fixed: lint (gofmt: 3 files), test (TestUserCreate: nil pointer in fixture)
|
|
175
175
|
Blocked: none
|
|
176
176
|
Status: all required checks green
|
|
177
177
|
```
|
|
@@ -37,7 +37,7 @@ curl -s -X GET \
|
|
|
37
37
|
jq '.result[] | select(.phase == "http_request_firewall_custom")'
|
|
38
38
|
```
|
|
39
39
|
|
|
40
|
-
If the output is empty
|
|
40
|
+
If the output is empty: no existing ruleset. Go to **3a**. If a ruleset exists, note its `id` and go to **3b**.
|
|
41
41
|
|
|
42
42
|
### 3a. Create NEW Ruleset with Block Rule
|
|
43
43
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
<!-- Generated by scripts/build-adapters.sh. Do not edit directly. -->
|
|
2
2
|
|
|
3
3
|
---
|
|
4
|
-
description: "Iteratively drives a GitHub PR to zero unresolved CodeRabbit findings
|
|
4
|
+
description: "Iteratively drives a GitHub PR to zero unresolved CodeRabbit findings: reads each inline comment's own Prompt for AI Agents block, applies the fix, replies to the thread, resolves it, pushes, and re-triggers CodeRabbit."
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
Use the olko:coderabbitloop skill.
|
|
@@ -14,21 +14,21 @@ Fix every actionable CodeRabbit finding on a PR, answer each thread, resolve it,
|
|
|
14
14
|
|
|
15
15
|
- **PR number** (optional): detect from the current branch if not given.
|
|
16
16
|
|
|
17
|
-
## How CodeRabbit actually posts (verified against docs.coderabbit.ai and a live install
|
|
17
|
+
## How CodeRabbit actually posts (verified against docs.coderabbit.ai and a live install: don't assume otherwise)
|
|
18
18
|
|
|
19
19
|
CodeRabbit runs as `coderabbitai[bot]` and posts **two independent things**, not one:
|
|
20
20
|
|
|
21
|
-
1. An auto-generated **walkthrough/summary issue comment
|
|
21
|
+
1. An auto-generated **walkthrough/summary issue comment**: body starts with the HTML marker `<!-- This is an auto-generated comment: summarize by coderabbit.ai -->`. This is a description, not a review: use it for context only, never as a source of fixable findings.
|
|
22
22
|
2. A **formal PR review** carrying one **inline review comment per finding**, each a real, resolvable GitHub review thread at the finding's file/line. Each one contains a `<details><summary>🤖 Prompt for AI Agents</summary>` block: a ready-made fix spec, CodeRabbit's own words, meant to be handed straight to an agent.
|
|
23
23
|
|
|
24
|
-
**Use the inline threads as the source of truth**, exactly like Greptile/Qodo
|
|
24
|
+
**Use the inline threads as the source of truth**, exactly like Greptile/Qodo: fetch via GraphQL `reviewThreads`, which carries native `isResolved` state (see `references/graphql-queries.md`, shared with `qodoloop`; only the bot login and the prompt-heading text differ).
|
|
25
25
|
|
|
26
|
-
CodeRabbit has slash commands (official, `docs.coderabbit.ai/reference/review-commands`)
|
|
27
|
-
- `@coderabbitai review
|
|
28
|
-
- `@coderabbitai resolve
|
|
29
|
-
- CodeRabbit also has its own built-in `@coderabbitai autofix`, which commits fixes directly without a model in the loop. Mention it to the user as an alternative if they'd rather skip the loop entirely, but this skill's whole point is the Claude-orchestrated version
|
|
26
|
+
CodeRabbit has slash commands (official, `docs.coderabbit.ai/reference/review-commands`), the ones this loop actually uses:
|
|
27
|
+
- `@coderabbitai review`: incremental review of new changes (use this to re-trigger after a push, if automatic review-on-push is off for this repo).
|
|
28
|
+
- `@coderabbitai resolve`: marks **all** CodeRabbit threads resolved in one shot. This is a bulk escape hatch, not the default path: this loop resolves threads one at a time, right after replying to each, so the reply-then-resolve record stays intact per finding.
|
|
29
|
+
- CodeRabbit also has its own built-in `@coderabbitai autofix`, which commits fixes directly without a model in the loop. Mention it to the user as an alternative if they'd rather skip the loop entirely, but this skill's whole point is the Claude-orchestrated version: don't default to autofix instead of doing the work.
|
|
30
30
|
|
|
31
|
-
**Rate limit is a real terminal state, not a bug.** A comment reading "you've reached your PR review limit" (confirmed live wording) means CodeRabbit will not review again this cycle
|
|
31
|
+
**Rate limit is a real terminal state, not a bug.** A comment reading "you've reached your PR review limit" (confirmed live wording) means CodeRabbit will not review again this cycle: stop and report it, don't loop waiting for something that isn't coming.
|
|
32
32
|
|
|
33
33
|
## Instructions
|
|
34
34
|
|
|
@@ -54,11 +54,11 @@ If this repo doesn't auto-review on push, nudge it:
|
|
|
54
54
|
gh pr comment <PR_NUMBER> --body "@coderabbitai review"
|
|
55
55
|
```
|
|
56
56
|
|
|
57
|
-
Poll (every ~10s, timeout ~5min) for CodeRabbit's next formal review to land
|
|
57
|
+
Poll (every ~10s, timeout ~5min) for CodeRabbit's next formal review to land: a new entry in `gh api repos/{owner}/{repo}/pulls/<PR_NUMBER>/reviews` from `coderabbitai[bot]` created after this push. If you instead see a rate-limit comment ("review limit"), **stop the loop now** and go to Report with `blocked: rate-limited`.
|
|
58
58
|
|
|
59
59
|
#### B. Fetch unresolved findings
|
|
60
60
|
|
|
61
|
-
Run the `unresolvedQodoThreads`-shaped query in `references/graphql-queries.md` (filter `author.login == "coderabbitai[bot]"` instead of Qodo's login). For each unresolved thread, parse the finding text and the **Prompt for AI Agents** block (heading text is `🤖 Prompt for AI Agents`, not `Agent Prompt
|
|
61
|
+
Run the `unresolvedQodoThreads`-shaped query in `references/graphql-queries.md` (filter `author.login == "coderabbitai[bot]"` instead of Qodo's login). For each unresolved thread, parse the finding text and the **Prompt for AI Agents** block (heading text is `🤖 Prompt for AI Agents`, not `Agent Prompt`: match case/emoji-insensitively).
|
|
62
62
|
|
|
63
63
|
#### C. Check exit conditions
|
|
64
64
|
|
|
@@ -66,17 +66,17 @@ Stop if there are zero unresolved CodeRabbit threads, or max iterations reached.
|
|
|
66
66
|
|
|
67
67
|
#### D. Fix each finding
|
|
68
68
|
|
|
69
|
-
For each thread, in order: read the Prompt for AI Agents block in full
|
|
69
|
+
For each thread, in order: read the Prompt for AI Agents block in full: it names the issue and the fix. Apply it, staying inside its stated scope. If the suggestion is wrong, unsafe, or needs a product decision, don't force it: note that in step E instead.
|
|
70
70
|
|
|
71
71
|
#### E. Answer and resolve
|
|
72
72
|
|
|
73
|
-
**Reply to the thread first, then resolve it
|
|
73
|
+
**Reply to the thread first, then resolve it**, the "answer to the comments" half of the job:
|
|
74
74
|
|
|
75
75
|
```bash
|
|
76
76
|
gh api graphql -f query='mutation { addPullRequestReviewThreadReply(input: {pullRequestReviewThreadId: "<THREAD_ID>", body: "<REPLY>"}) { comment { id } } }'
|
|
77
77
|
```
|
|
78
78
|
|
|
79
|
-
Reply body: one or two sentences
|
|
79
|
+
Reply body: one or two sentences, what you changed and why, or exactly why you didn't fix it. Then resolve (`resolveReviewThread`). A finding you deliberately skip still gets a reply and gets resolved.
|
|
80
80
|
|
|
81
81
|
#### F. Commit and push
|
|
82
82
|
|
|
@@ -107,4 +107,4 @@ Coderabbitloop complete.
|
|
|
107
107
|
|
|
108
108
|
## References
|
|
109
109
|
|
|
110
|
-
- `references/graphql-queries.md
|
|
110
|
+
- `references/graphql-queries.md`: shared with `qodoloop`: the exact `reviewThreads` query and the `resolveReviewThread` / `addPullRequestReviewThreadReply` mutations. Swap the author-login filter to `coderabbitai[bot]` and the prompt-heading match to `Prompt for AI Agents`.
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
<!-- Generated by scripts/build-adapters.sh. Do not edit directly. -->
|
|
2
2
|
|
|
3
3
|
---
|
|
4
|
-
description: "Iteratively drives a GitHub PR to zero unresolved OpenAI Codex review comments
|
|
4
|
+
description: "Iteratively drives a GitHub PR to zero unresolved OpenAI Codex review comments, verifying every finding against the real code first, fixes only the correct ones, and rebuts false positives without changing correct code."
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
Use the olko:codexloop skill.
|
|
8
8
|
|
|
9
9
|
# Codexloop
|
|
10
10
|
|
|
11
|
-
Drive a GitHub PR until Codex has no unresolved review comments
|
|
11
|
+
Drive a GitHub PR until Codex has no unresolved review comments, **but do not cargo-cult its
|
|
12
12
|
suggestions.** Every comment is a *claim to verify*, not an instruction to obey. A wrong
|
|
13
13
|
suggestion applied is worse than the comment itself.
|
|
14
14
|
|
|
@@ -47,10 +47,10 @@ Pick the login matching `*codex*` (commonly `chatgpt-codex-connector[bot]`, some
|
|
|
47
47
|
`codex[bot]`) and export it as `BOT`.
|
|
48
48
|
|
|
49
49
|
**Finding nothing here is NOT a stop condition.** On a PR Codex has never reviewed there is no bot
|
|
50
|
-
login to find yet
|
|
50
|
+
login to find yet: that is the normal starting state, not a missing app. When the probe comes back
|
|
51
51
|
empty, fall through to step 2A, post `@codex review`, and re-run this probe once a review lands;
|
|
52
52
|
until then match any login containing `codex` when polling. Only conclude the app is absent after
|
|
53
|
-
step 2A's bounded wait has expired with no review and no codex-like login anywhere on the PR
|
|
53
|
+
step 2A's bounded wait has expired with no review and no codex-like login anywhere on the PR, and
|
|
54
54
|
then say so and stop, rather than looping against nothing.
|
|
55
55
|
|
|
56
56
|
## 1. Identify the PR
|
|
@@ -63,7 +63,7 @@ Switch to the PR branch if not already on it. Capture `OWNER`/`REPO` (`gh repo v
|
|
|
63
63
|
|
|
64
64
|
## 2. The loop (max 5 iterations)
|
|
65
65
|
|
|
66
|
-
Keep an explicit iteration counter and stop at 5
|
|
66
|
+
Keep an explicit iteration counter and stop at 5: the cap is a real bound to enforce, not a
|
|
67
67
|
figure of speech. Each pass through A–G is one iteration; on hitting the cap, go straight to the
|
|
68
68
|
report and list what is still unresolved rather than starting a sixth.
|
|
69
69
|
|
|
@@ -77,13 +77,13 @@ HAVE=$(gh api repos/{owner}/{repo}/pulls/<PR>/reviews --paginate \
|
|
|
77
77
|
if [ "$HAVE" = "0" ]; then gh pr comment <PR> --body "@codex review"; fi
|
|
78
78
|
```
|
|
79
79
|
|
|
80
|
-
Poll for the review of THIS head to land. No check-run exists, so poll the reviews endpoint
|
|
80
|
+
Poll for the review of THIS head to land. No check-run exists, so poll the reviews endpoint, and
|
|
81
81
|
poll it on a **deadline**, never `while true`: a review that never arrives must end the skill with
|
|
82
82
|
an honest timeout, not hang it.
|
|
83
83
|
|
|
84
84
|
```bash
|
|
85
85
|
# 10-minute deadline, one retry, then give up. DEADLINE/RETRIES are the
|
|
86
|
-
# enforcement of the bounds this skill claims
|
|
86
|
+
# enforcement of the bounds this skill claims: do not drop them.
|
|
87
87
|
wait_for_review() { # $1 = attempt label
|
|
88
88
|
local deadline=$(( SECONDS + 600 ))
|
|
89
89
|
while [ "$SECONDS" -lt "$deadline" ]; do
|
|
@@ -96,7 +96,7 @@ wait_for_review() { # $1 = attempt label
|
|
|
96
96
|
}
|
|
97
97
|
|
|
98
98
|
if ! wait_for_review "first wait"; then
|
|
99
|
-
echo "no Codex review after 10m
|
|
99
|
+
echo "no Codex review after 10m, retrying once" # say the retry out loud
|
|
100
100
|
gh pr comment <PR> --body "@codex review"
|
|
101
101
|
if ! wait_for_review "after retry"; then
|
|
102
102
|
echo "Codex did not review $HEAD_SHA after a retry; stopping and reporting."
|
|
@@ -110,7 +110,7 @@ retry in the final summary; two silent timeouts are the failure mode this guard
|
|
|
110
110
|
|
|
111
111
|
### B. Fetch the findings
|
|
112
112
|
|
|
113
|
-
- **Summary**: the review `.body` from the object above
|
|
113
|
+
- **Summary**: the review `.body` from the object above: read the overall take and the priority
|
|
114
114
|
spread.
|
|
115
115
|
- **Unresolved inline comments** on the current head:
|
|
116
116
|
|
|
@@ -125,11 +125,11 @@ unresolved ones.
|
|
|
125
125
|
### C. Critically evaluate EACH comment (the core of this skill)
|
|
126
126
|
|
|
127
127
|
For every comment, **verify the claim against the actual code and repo conventions before touching
|
|
128
|
-
anything.** Read the whole file
|
|
128
|
+
anything.** Read the whole file, not just the diff hunk Codex saw, plus the types and the call
|
|
129
129
|
sites. Then classify:
|
|
130
130
|
|
|
131
|
-
1. **CORRECT + actionable
|
|
132
|
-
2. **FALSE POSITIVE / technically wrong
|
|
131
|
+
1. **CORRECT + actionable**: the finding is real and the fix improves the code. → fix it (step D).
|
|
132
|
+
2. **FALSE POSITIVE / technically wrong**: the claim doesn't hold. → do **NOT** change code; write a
|
|
133
133
|
specific, evidence-based reply (cite the exact code/line/behavior that disproves it), then resolve.
|
|
134
134
|
3. **Valid but out-of-scope / stylistic nit** that conflicts with repo convention or the PR's intent
|
|
135
135
|
→ briefly decline with a reason, then resolve. Do not expand the PR's scope to satisfy a nit.
|
|
@@ -152,7 +152,7 @@ sites. Then classify:
|
|
|
152
152
|
- Restating library/framework semantics incorrectly.
|
|
153
153
|
- Style demands that contradict the repo's existing, consistent pattern.
|
|
154
154
|
|
|
155
|
-
### D. Apply fixes
|
|
155
|
+
### D. Apply fixes: category 1 only
|
|
156
156
|
|
|
157
157
|
Make the minimal correct change. Re-run the local gate if the repo has one (typecheck/tests) before
|
|
158
158
|
moving on.
|
|
@@ -160,13 +160,13 @@ moving on.
|
|
|
160
160
|
### E. Commit and push FIRST, before resolving anything
|
|
161
161
|
|
|
162
162
|
Order matters. A resolved thread is a claim that the fix is on the branch, so the push has to
|
|
163
|
-
succeed before the claim is made
|
|
163
|
+
succeed before the claim is made: otherwise a failed commit or push leaves the PR unfixed with the
|
|
164
164
|
finding marked resolved, and nobody looks at it again.
|
|
165
165
|
|
|
166
166
|
If step D changed code:
|
|
167
167
|
|
|
168
168
|
```bash
|
|
169
|
-
# Stage ONLY the files your fixes touched
|
|
169
|
+
# Stage ONLY the files your fixes touched: never `git add -A`, which sweeps up
|
|
170
170
|
# unrelated work and untracked secrets sitting in the worktree.
|
|
171
171
|
git status --short # look before you stage
|
|
172
172
|
git add <path> [<path>...] # the files named in the findings you fixed
|
|
@@ -187,7 +187,7 @@ If they differ, stop: the fix is not on the PR, so nothing may be resolved yet.
|
|
|
187
187
|
### F. Reply to and resolve every addressed thread
|
|
188
188
|
|
|
189
189
|
Only now, with the fixes pushed, reply and resolve. Fetch unresolved threads, **following
|
|
190
|
-
pagination
|
|
190
|
+
pagination**: a PR with more than 100 threads will otherwise look clean while unresolved findings
|
|
191
191
|
sit on page two:
|
|
192
192
|
|
|
193
193
|
```bash
|
|
@@ -219,7 +219,7 @@ then resolve:
|
|
|
219
219
|
gh api graphql -f query='mutation { resolveReviewThread(input: {threadId: "THREAD_ID"}) { thread { isResolved } } }'
|
|
220
220
|
```
|
|
221
221
|
|
|
222
|
-
Resolve a thread only for comments authored by `$BOT` that you have fixed or rebutted
|
|
222
|
+
Resolve a thread only for comments authored by `$BOT` that you have fixed or rebutted: never
|
|
223
223
|
blanket-resolve, and never resolve a human reviewer's thread.
|
|
224
224
|
|
|
225
225
|
Threads you are **rebutting** need no push, so they may be replied to and resolved regardless of
|
|
@@ -235,9 +235,9 @@ ensure all threads are resolved, and exit.
|
|
|
235
235
|
|
|
236
236
|
Stop when **any** is true:
|
|
237
237
|
- Zero unresolved `$BOT` comments remain, and every comment this round was fixed or
|
|
238
|
-
rebutted+resolved. (There is no score to hit
|
|
239
|
-
- Max iterations (5) reached
|
|
240
|
-
- Codex never responded after one retry
|
|
238
|
+
rebutted+resolved. (There is no score to hit: this is "done".)
|
|
239
|
+
- Max iterations (5) reached: report what remains.
|
|
240
|
+
- Codex never responded after one retry: report the timeout honestly; do not claim success.
|
|
241
241
|
|
|
242
242
|
## 4. Report
|
|
243
243
|
|