feat: improve screenshot skill score (67% → 99%)#1
Conversation
- Rewrote description with concrete action verbs, explicit "Use when..." clause, and natural trigger terms (screenshot, screen capture, window snapshot, etc.) - Added triggers array for frontmatter compliance and better discoverability - Added error handling guidance to workflow (app not found, permission errors) - Consolidated examples into a single compact block - Preserved all domain-specific content and CLI reference accuracy
📝 WalkthroughWalkthroughA new CI workflow is added to review SKILL.md changes on pull requests to the main branch. Simultaneously, SKILL.md documentation is updated to clarify the screenshot capability as a Changes
Estimated code review effort🎯 2 (Simple) | ⏱️ ~10 minutes Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Review rate limit: 2/3 reviews remaining, refill in 20 minutes. Comment Warning |
There was a problem hiding this comment.
Actionable comments posted: 3
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In @.github/workflows/skill-review.yml:
- Line 19: The workflow currently references the third-party action with a
mutable ref "uses: tesslio/skill-review@main"; replace that with a specific
commit SHA (e.g. "uses: tesslio/skill-review@<full-commit-sha>") to pin the
action immutably. Locate the uses line for tesslio/skill-review in the workflow
and update it to the full commit SHA (obtain the desired commit from the
action's repo) so CI behavior cannot change unexpectedly.
In `@SKILL.md`:
- Around line 52-53: Update the guidance after the Read tool step to handle
multi-file captures: when using "shotty capture ... --all" the command may
produce multiple PNGs, so instruct the user to open each generated file with the
Read tool and report all resulting file paths (or list of paths) back to the
user rather than a single path; reference the Read tool and the "shotty capture
... --all" invocation in the updated wording.
- Around line 3-12: Update the skill metadata to explicitly limit it to
application-window captures: change the description to state "captures
application windows only (not full-desktop/full-screen screenshots)" and narrow
the triggers list by removing or replacing generic/full-screen phrases such as
"screen capture", "grab screen", "screengrab", and ambiguous "take a
screenshot"; instead use window-specific triggers like "capture window",
"capture app window", "app window screenshot", "window snapshot", and "capture
application window" so the skill only matches requests for application window
screenshots (refer to the triggers list and description fields in SKILL.md).
🪄 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: defaults
Review profile: CHILL
Plan: Pro Plus
Run ID: 82b9264c-3032-4a9d-9316-7cfc05788591
📒 Files selected for processing (2)
.github/workflows/skill-review.ymlSKILL.md
| contents: read | ||
| steps: | ||
| - uses: actions/checkout@v4 | ||
| - uses: tesslio/skill-review@main |
There was a problem hiding this comment.
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
set -euo pipefail
echo "Finding mutable third-party action refs..."
rg -nP '^\s*-\s*uses:\s*(?!actions/)[^@\s]+@(main|master)$' .github/workflows -C2
echo
echo "All action refs in workflows:"
rg -nP '^\s*-\s*uses:\s*[^@\s]+@[^ \t]+' .github/workflowsRepository: kxzk/shotty
Length of output: 650
Pin third-party GitHub Action to an immutable commit SHA.
The tesslio/skill-review@main reference allows upstream branch changes to alter your CI behavior unexpectedly. Pin to a full commit SHA instead for safer builds.
Suggested hardening
- - uses: tesslio/skill-review@main
+ - uses: tesslio/skill-review@<full_commit_sha>🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In @.github/workflows/skill-review.yml at line 19, The workflow currently
references the third-party action with a mutable ref "uses:
tesslio/skill-review@main"; replace that with a specific commit SHA (e.g. "uses:
tesslio/skill-review@<full-commit-sha>") to pin the action immutably. Locate the
uses line for tesslio/skill-review in the workflow and update it to the full
commit SHA (obtain the desired commit from the action's repo) so CI behavior
cannot change unexpectedly.
| description: "Capture, list, and manage macOS application window screenshots using the shotty CLI. Use when the user asks to take a screenshot, capture a window, grab the screen, snapshot an app, or document what an application looks like." | ||
| user-invocable: true | ||
| triggers: | ||
| - screenshot | ||
| - screen capture | ||
| - capture window | ||
| - take a screenshot | ||
| - window snapshot | ||
| - screengrab | ||
| - grab screen |
There was a problem hiding this comment.
Narrow trigger phrases to avoid over-matching unsupported full-screen asks.
The skill captures application windows, but phrases like grab screen / generic screen capture can route requests for full-desktop screenshots that this workflow doesn’t support.
Suggested wording tweak
description: "Capture, list, and manage macOS application window screenshots using the shotty CLI. Use when the user asks to take a screenshot, capture a window, grab the screen, snapshot an app, or document what an application looks like."
+description: "Capture and list macOS application window screenshots using the shotty CLI. Use when the user asks to screenshot an app window, capture a specific app, snapshot an application, or document what an app looks like."
triggers:
- screenshot
- - screen capture
+ - app window screenshot
- capture window
- take a screenshot
- window snapshot
- screengrab
- - grab screen
+ - grab app window🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@SKILL.md` around lines 3 - 12, Update the skill metadata to explicitly limit
it to application-window captures: change the description to state "captures
application windows only (not full-desktop/full-screen screenshots)" and narrow
the triggers list by removing or replacing generic/full-screen phrases such as
"screen capture", "grab screen", "screengrab", and ambiguous "take a
screenshot"; instead use window-specific triggers like "capture window",
"capture app window", "app window screenshot", "window snapshot", and "capture
application window" so the skill only matches requests for application window
screenshots (refer to the triggers list and description fields in SKILL.md).
| 5. Use the `Read` tool to view the resulting PNG and verify the capture | ||
| 6. Report the file path to the user |
There was a problem hiding this comment.
Account for multi-file capture outputs in reporting guidance.
Line 53 says “Report the file path,” but shotty capture ... --all can return multiple files. Recommend instructing to report all generated paths when applicable.
Suggested workflow tweak
-5. Use the `Read` tool to view the resulting PNG and verify the capture
-6. Report the file path to the user
+5. Use the `Read` tool to view the resulting PNG file(s) and verify the capture
+6. Report the output path(s) to the user📝 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.
| 5. Use the `Read` tool to view the resulting PNG and verify the capture | |
| 6. Report the file path to the user | |
| 5. Use the `Read` tool to view the resulting PNG file(s) and verify the capture | |
| 6. Report the output path(s) to the user |
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@SKILL.md` around lines 52 - 53, Update the guidance after the Read tool step
to handle multi-file captures: when using "shotty capture ... --all" the command
may produce multiple PNGs, so instruct the user to open each generated file with
the Read tool and report all resulting file paths (or list of paths) back to the
user rather than a single path; reference the Read tool and the "shotty capture
... --all" invocation in the updated wording.
Hey @kxzk 👋
I ran your skills through
tessl skill reviewat work and found some targeted improvements. Here's the full before/after:This PR covers your 1 skill in the repo.
What changed in screenshot
triggersarray for frontmatter compliance and better skill discoverabilitylist-apps) and permission errors (Screen Recording settings guidance)Tessl Skill Review GitHub Action ✅
I've also included a GitHub Action (
.github/workflows/skill-review.yml) that automatically reviews anySKILL.mdchanged in future PRs and posts scores as a PR comment.What this gives you:
tessl skill reviewruns on every PR touchingSKILL.mdGITHUB_TOKENis usedfail-threshold: 70later if you want a hard gate)Want automatic AI optimization on every SKILL.md change? 🚀
The action I've added gives you review scores on PRs. We also have a more powerful variant —
tesslio/skill-review-and-optimize— that can:SKILL.mdPR (requires addingTESSL_API_TOKENas a repo secret)/apply-optimizeInterested? Tick the box and I'll raise a follow-up PR:
tesslio/skill-review-and-optimizeaction so every SKILL.md PR gets AI optimization suggestions + the/apply-optimizeflowHonest disclosure — I work at @tesslio where we build tooling around skills like these. Not a pitch — just saw room for improvement and wanted to contribute.
Want to self-improve your skills? Just point your agent (Claude Code, Codex, etc.) at this Tessl guide and ask it to optimize your skill. Ping me — @rohan-tessl — if you hit any snags.
Thanks in advance 🙏
Summary by CodeRabbit
Documentation
Chores