Skip to content

feat: improve screenshot skill score (67% → 99%)#1

Open
rohan-tessl wants to merge 2 commits into
kxzk:mainfrom
rohan-tessl:improve/skill-review-optimization
Open

feat: improve screenshot skill score (67% → 99%)#1
rohan-tessl wants to merge 2 commits into
kxzk:mainfrom
rohan-tessl:improve/skill-review-optimization

Conversation

@rohan-tessl

@rohan-tessl rohan-tessl commented Apr 29, 2026

Copy link
Copy Markdown

Hey @kxzk 👋

I ran your skills through tessl skill review at work and found some targeted improvements. Here's the full before/after:

Skill Before After Change
screenshot 67% 99% +32%

This PR covers your 1 skill in the repo.

What changed in screenshot
  • Description rewritten with concrete action verbs, an explicit "Use when..." clause, and natural trigger terms (screenshot, screen capture, window snapshot, screengrab, grab screen, etc.)
  • Added triggers array for frontmatter compliance and better skill discoverability
  • Added error handling to workflow — explicit steps for "app not found" (retry with list-apps) and permission errors (Screen Recording settings guidance)
  • Consolidated examples into a single compact code block with inline comments
  • Preserved all CLI reference accuracy — commands, flags, and notes unchanged

Tessl Skill Review GitHub Action ✅

I've also included a GitHub Action (.github/workflows/skill-review.yml) that automatically reviews any SKILL.md changed in future PRs and posts scores as a PR comment.

What this gives you:

  • 🔍 Automatic tessl skill review runs on every PR touching SKILL.md
  • 💬 One updated PR comment with scores and improvement feedback
  • 🔓 Zero extra accounts — contributors don't need a Tessl login; only GITHUB_TOKEN is used
  • Non-blocking by default — feedback-only, no surprise red CI (add fail-threshold: 70 later if you want a hard gate)
  • 📈 Covers future skills incrementally as contributors edit them

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:

  • Run AI-powered optimization suggestions on every SKILL.md PR (requires adding TESSL_API_TOKEN as a repo secret)
  • Let contributors accept suggested improvements by commenting /apply-optimize
  • Still works in review-only mode with zero secrets

Interested? Tick the box and I'll raise a follow-up PR:

  • Yes please! Add the tesslio/skill-review-and-optimize action so every SKILL.md PR gets AI optimization suggestions + the /apply-optimize flow
  • No thanks — the review scores action is enough for now

Honest 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

    • Updated screenshot capability documentation with enhanced user guidance, clarified command syntax requirements, added usage examples including JSON listing, and improved troubleshooting instructions for permission errors.
  • Chores

    • Added automated CI workflow that reviews documentation changes and posts assessment scores as pull request comments.

- 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
@coderabbitai

coderabbitai Bot commented Apr 29, 2026

Copy link
Copy Markdown
📝 Walkthrough

Walkthrough

A 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 shotty CLI workflow, expand trigger matching, revise command invocations, and enhance the workflow section with improved error handling and app discovery logic.

Changes

Cohort / File(s) Summary
CI Workflow Configuration
.github/workflows/skill-review.yml
New GitHub Actions workflow that triggers on SKILL.md modifications in pull requests to main, runs skill review checks, and posts results as PR comments using the tesslio/skill-review action.
Skill Documentation
SKILL.md
Documentation updates to define screenshot capability as a shotty CLI workflow, expand user triggers, update command table with shotty-prefixed invocations, add shotty list-apps for app discovery, include explicit retry and permission-error handling instructions, and consolidate examples with JSON output.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Poem

🐰 Hops through workflows with glee,
SKILL.md now flows so free!
Shotty screenshots, triggers bright,
CI reviews keep code just right!
🎬✨ A skill-ful delight!

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title directly reflects the main objective: improving the screenshot skill score from 67% to 99%. It accurately summarizes the primary achievement of the changeset.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Review rate limit: 2/3 reviews remaining, refill in 20 minutes.

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

Warning

⚠️ This pull request might be slop. It has been flagged by CodeRabbit slop detection and should be reviewed carefully.

@rohan-tessl rohan-tessl marked this pull request as ready for review April 29, 2026 06:43

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 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

📥 Commits

Reviewing files that changed from the base of the PR and between 8bd8e28 and 9fe699c.

📒 Files selected for processing (2)
  • .github/workflows/skill-review.yml
  • SKILL.md

contents: read
steps:
- uses: actions/checkout@v4
- uses: tesslio/skill-review@main

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major

🧩 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/workflows

Repository: 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.

Comment thread SKILL.md
Comment on lines +3 to +12
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

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

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).

Comment thread SKILL.md
Comment on lines +52 to +53
5. Use the `Read` tool to view the resulting PNG and verify the capture
6. Report the file path to the user

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

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.

Suggested change
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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant