Improve/skill review optimization - #2
Conversation
Hey @levineam 👋 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 | |-------|--------|-------|--------| | last-x-days | 64%* | 90% | +26% | *\*The original SKILL.md had a YAML frontmatter parsing error (`argument-hint` value with unescaped special characters) and a non-kebab-case name (`lastXdays`), which caused the review to fail outright (10%). I fixed the YAML syntax and renamed to `last-x-days` to get a valid baseline of 64%, which is the "before" score used above.* <details> <summary>What changed</summary> - **Fixed YAML frontmatter**: Properly quoted the `argument-hint` value and `description` to resolve parsing errors - **Renamed skill to kebab-case**: `lastXdays` → `last-x-days` to follow naming conventions - **Expanded description**: Added explicit "Use when..." clause, natural trigger terms (trending, recent news, community sentiment), and specific output actions - **Removed redundant section**: Dropped "How It Works" — the usage examples and execution commands already convey this - **Concrete output docs**: Replaced vague "Same format as last30days" with actual output file paths and descriptions from the SPEC - **Added dependency guidance**: Documented required API keys and what to check if the script fails </details> 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](https://docs.tessl.io/evaluate/optimize-a-skill-using-best-practices) and ask it to optimize your skill. Ping me - [@yogesh-tessl](https://github.com/yogesh-tessl) - if you hit any snags. Thanks in advance 🙏
📝 WalkthroughWalkthroughThis PR introduces a GitHub Actions workflow to automatically review skill definition files on pull requests, and updates the SKILL.md documentation with a skill name rename, clarified dependencies, and revised output file specifications. Changes
Estimated code review effort🎯 2 (Simple) | ⏱️ ~12 minutes Poem
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 inconclusive)
✅ Passed checks (4 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ 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 Warning |
There was a problem hiding this comment.
Actionable comments posted: 2
🧹 Nitpick comments (1)
.github/workflows/skill-review.yml (1)
12-13: Pinactions/checkoutto a commit SHA for stronger supply-chain safety.Line 12 uses
actions/checkout@v4(mutable tag), while Line 13 is already SHA-pinned. Pinning all actions to full commit SHAs is the official GitHub best practice—mutable tags like@v4can be force-pushed or retagged, creating supply-chain risks. Include the version as a comment (e.g.,actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2) for readability and to enable automated updates via Dependabot.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In @.github/workflows/skill-review.yml around lines 12 - 13, Update the workflow step that currently uses the mutable tag "actions/checkout@v4" to a full commit SHA (the same way "tesslio/skill-review" is SHA-pinned); replace the tag with the repository commit SHA for actions/checkout and add the human-readable tag as a trailing comment (e.g., " # v4.x.y") so the action is immutably pinned while keeping version context for Dependabot/reading. Target the step that references actions/checkout@v4 and perform the replacement accordingly.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@SKILL.md`:
- Around line 17-22: The fenced usage block containing the example commands
starting with lines like `last-x-days 7 "AI tools"` is missing a language tag;
update that code fence opener from ``` to ```bash so the block is marked as bash
(i.e., replace the fence that begins the block of `last-x-days` examples with
```bash and keep the closing fence).
- Around line 2-4: The SKILL.md execution examples reference the old camelCase
identifiers (lastXdays and lastXdays.py) while the skill metadata uses
kebab-case (last-x-days); update the execution section so all occurrences of the
execution path, directory name, and script name use the kebab-case form
(last-x-days and last-x-days.py) to match the skill name last-x-days and remove
any remaining lastXdays references.
---
Nitpick comments:
In @.github/workflows/skill-review.yml:
- Around line 12-13: Update the workflow step that currently uses the mutable
tag "actions/checkout@v4" to a full commit SHA (the same way
"tesslio/skill-review" is SHA-pinned); replace the tag with the repository
commit SHA for actions/checkout and add the human-readable tag as a trailing
comment (e.g., " # v4.x.y") so the action is immutably pinned while keeping
version context for Dependabot/reading. Target the step that references
actions/checkout@v4 and perform the replacement accordingly.
🪄 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
Run ID: 8fc47213-4561-4164-b76d-ef1f03626c4d
📒 Files selected for processing (2)
.github/workflows/skill-review.ymlSKILL.md
| name: last-x-days | ||
| description: "Research trending discussions, recent news, and social media activity on any topic across Reddit, X, and the web within a configurable time window (1–365 days). Use when the user wants to find what people are saying about a topic, track recent trends, or gather community sentiment from a specific time range." | ||
| argument-hint: '"<days> [topic]" or "[topic]" (defaults to 30 days)' |
There was a problem hiding this comment.
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
# Verify whether the repository still uses old/new skill path naming in docs and scripts.
set -euo pipefail
echo "== References in SKILL.md =="
rg -n -C2 'last-x-days|lastXdays|~/.claude/skills/' SKILL.md
echo
echo "== Candidate script files =="
fd -a 'lastXdays\.py|last-x-days\.py|SKILL\.md'
echo
echo "== Any folder naming evidence =="
fd -a 'lastXdays|last-x-days'Repository: levineam/lastXdays-skill
Length of output: 1631
Fix inconsistent naming between skill definition and execution path.
The skill is renamed to last-x-days (lines 2–4, 18–21), but the execution section (lines 34–41) still references the old camelCase path ~/.claude/skills/lastXdays/scripts/lastXdays.py. Update the execution examples to use the consistent naming convention with the skill metadata.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@SKILL.md` around lines 2 - 4, The SKILL.md execution examples reference the
old camelCase identifiers (lastXdays and lastXdays.py) while the skill metadata
uses kebab-case (last-x-days); update the execution section so all occurrences
of the execution path, directory name, and script name use the kebab-case form
(last-x-days and last-x-days.py) to match the skill name last-x-days and remove
any remaining lastXdays references.
| ``` | ||
| lastXdays 7 "AI tools" # Last 7 days | ||
| lastXdays 14 "Claude Code" # Last 2 weeks | ||
| lastXdays 3 "breaking news" # Last 3 days | ||
| lastXdays "best prompts" # Defaults to 30 days | ||
| last-x-days 7 "AI tools" # Last 7 days | ||
| last-x-days 14 "Claude Code" # Last 2 weeks | ||
| last-x-days 3 "breaking news" # Last 3 days | ||
| last-x-days "best prompts" # Defaults to 30 days | ||
| ``` |
There was a problem hiding this comment.
Add a language tag to the fenced usage block.
The code fence starting at Line 17 has no language identifier (markdownlint MD040). Please mark it as bash for consistency with the other command examples.
Proposed doc fix
-```
+```bash
last-x-days 7 "AI tools" # Last 7 days
last-x-days 14 "Claude Code" # Last 2 weeks
last-x-days 3 "breaking news" # Last 3 days
last-x-days "best prompts" # Defaults to 30 days</details>
<!-- suggestion_start -->
<details>
<summary>📝 Committable suggestion</summary>
> ‼️ **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.
```suggestion
🧰 Tools
🪛 markdownlint-cli2 (0.22.0)
[warning] 17-17: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@SKILL.md` around lines 17 - 22, The fenced usage block containing the example
commands starting with lines like `last-x-days 7 "AI tools"` is missing a
language tag; update that code fence opener from ``` to ```bash so the block is
marked as bash (i.e., replace the fence that begins the block of `last-x-days`
examples with ```bash and keep the closing fence).
Hey @levineam 👋
Configurable time windows from 1 to 365 days on top of the last30days foundation. That's a practical improvement that sounds obvious in hindsight but nobody else built. The test fixtures and SPEC.md alongside the skill show you're treating this as engineered software, not just a prompt file. Wanted to suggest a few improvements to the SKILL.md.
I ran your skills through
tessl skill reviewat work and found some targeted improvements. Here's the full before/after:What changed
argument-hintvalue anddescriptionto resolve parsing errorslastXdays→last-x-daysto follow naming conventionsHonest disclosure. I work at https://github.com/tesslio where we build tooling around skills like these. Not a pitch - just saw room for improvement and wanted to contribute.
I also added a lightweight GitHub Action that auto-reviews any skill.md changed in a PR (includes min permissions, uses a pinned action version, only posts a review comment).
This means that it gives you and your contributors an instant quality signal before you have to review yourself (no signup, no tokens needed).
Want to self-improve your skills? Just point your agent (Claude Code, Codex, etc.) at this Tessl guide (https://docs.tessl.io/evaluate/optimize-a-skill-using-best-practices) and ask it to optimize your skill. Ping me - @yogesh-tessl (https://github.com/yogesh-tessl) - if you hit any snags.
Thanks in advance 🙏
Summary by CodeRabbit
Documentation
Chores