Improve/skill review optimization#1
Conversation
Hey @Eskapeum 👋 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 | |-------|--------|-------|--------| | native-ios-app | 68% | 99% | +31% | <details> <summary>Changes summary</summary> **native-ios-app (+31%)**: *Description improvements (67% → 100%):* - Added specific concrete actions: "scaffold project structures", "configure Xcode MCP tools", "apply visual design styles", "run autonomous build-test-commit loops", "capture SwiftUI previews" - Added natural trigger terms users would actually say: "iPhone app", ".swift files", "Xcode project", "app UI", "iOS simulators" - Replaced jargon ("Ralph OG autonomous development", "Xcode 26.3 MCP integration") with plain language explaining what they enable - Formatted description as a quoted string (standard frontmatter format) *Content improvements (57% → 100%):* - Reduced from 390 → 210 lines by removing content Claude already knows (MVVM pattern explanation, SwiftUI materials reference, accessibility basics, custom blur effect code) - Added validation checkpoints and error recovery to all workflows ("If build fails → fix → rebuild. Do not proceed until green") - Referenced actual template/script files (PROMPT.ios.template.md, loop.ios.sh, etc.) instead of just describing what commands do - Consolidated troubleshooting into a compact table - Added `tabIdentifier` note to MCP tools table (call `XcodeListWindows` first) - Removed `version` frontmatter key (was flagged as unknown) </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 🙏
📝 WalkthroughWalkthroughAdded a new GitHub Actions workflow for automated skill review on pull requests affecting SKILL.md files. Updated SKILL.md documentation to refocus iOS app development guidance toward SwiftUI and Xcode MCP integration, removing Ralph OG as a requirement, simplifying design patterns and prerequisites, and restructuring command documentation with consolidated troubleshooting guidance. Changes
Estimated code review effort🎯 2 (Simple) | ⏱️ ~10 minutes Poem
🚥 Pre-merge checks | ✅ 2 | ❌ 1❌ Failed checks (1 inconclusive)
✅ Passed checks (2 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 |
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 `@SKILL.md`:
- Line 105: The docs mention executing .ralph-og/loop.sh but never show how it
is created; update the instructions around the `loop.sh` reference (and the
similar section at lines ~125-129) to explicitly create the file from the
provided script before running it by adding a step that copies or symlinks
`scripts/loop.ios.sh` to `.ralph-og/loop.sh` and makes it executable (e.g., copy
or ln -s then chmod +x) so the referenced `.ralph-og/loop.sh` exists and is
runnable.
- Line 74: The fenced code block in SKILL.md is missing a language identifier
(triggering MD040); update the opening fence to include a language specifier
(e.g., change ``` to ```text) so the snippet is properly labeled and markdown
linting passes — locate the standalone triple-backtick block around the project
tree sample and add "text" (or another appropriate language) after the opening
fence.
🪄 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: 4072bb8b-ec10-4721-b385-3d3144c27a1c
📒 Files selected for processing (2)
.github/workflows/skill-preview.ymlSKILL.md
| ### Project Structure | ||
| ### Standard Project Structure | ||
|
|
||
| ``` |
There was a problem hiding this comment.
Specify a language for the fenced code block.
This block triggers MD040 and breaks markdown linting consistency.
Suggested fix
-```
+```text
MyApp/
├── MyApp.xcodeproj/
...
└── .design-system/ # Design tokens and styles</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] 74-74: 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` at line 74, The fenced code block in SKILL.md is missing a language
identifier (triggering MD040); update the opening fence to include a language
specifier (e.g., change ``` to ```text) so the snippet is properly labeled and
markdown linting passes — locate the standalone triple-backtick block around the
project tree sample and add "text" (or another appropriate language) after the
opening fence.
| | `PROMPT.md` | Loop prompt with startup ritual and rules — see [templates/PROMPT.ios.template.md](templates/PROMPT.ios.template.md) | | ||
| | `feature-list.json` | Atomic features with acceptance criteria — see [templates/feature-list.ios.template.json](templates/feature-list.ios.template.json) | | ||
| | `init.sh` | Environment verification — see [templates/init.ios.template.sh](templates/init.ios.template.sh) | | ||
| | `loop.sh` | Autonomous loop runner — see [scripts/loop.ios.sh](scripts/loop.ios.sh) | |
There was a problem hiding this comment.
Clarify how .ralph-og/loop.sh is created before run instructions.
The doc references scripts/loop.ios.sh but tells users to execute .ralph-og/loop.sh directly. Add an explicit copy/symlink step (or run path) to avoid a broken first run.
Suggested fix
### Setup
Creates `.ralph-og/` with iOS-specific configuration:
@@
| `loop.sh` | Autonomous loop runner — see [scripts/loop.ios.sh](scripts/loop.ios.sh) |
| `progress.txt` | Work log tracking completed features |
+
+After scaffold:
+```bash
+cp scripts/loop.ios.sh .ralph-og/loop.sh
+chmod +x .ralph-og/loop.sh
+```Also applies to: 125-129
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@SKILL.md` at line 105, The docs mention executing .ralph-og/loop.sh but never
show how it is created; update the instructions around the `loop.sh` reference
(and the similar section at lines ~125-129) to explicitly create the file from
the provided script before running it by adding a step that copies or symlinks
`scripts/loop.ios.sh` to `.ralph-og/loop.sh` and makes it executable (e.g., copy
or ln -s then chmod +x) so the referenced `.ralph-og/loop.sh` exists and is
runnable.
| Running `/native-ios-app style <name>` generates: | ||
| 1. `.design-system/tokens.swift` — colors, typography, spacing, shadows, corner radii, animation curves | ||
| 2. `.design-system/extensions.swift` — SwiftUI view extensions for the chosen style | ||
| 3. Updates existing components if present |
There was a problem hiding this comment.
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
# Read-only verification: confirm where `/native-ios-app style` is implemented
# and whether it writes `.design-system/tokens.swift` and `.design-system/extensions.swift`.
set -euo pipefail
echo "== Locate style command implementation candidates =="
rg -n -C2 '/native-ios-app style|style <name>|tokens.swift|extensions.swift'
echo
echo "== Locate template/script logic that writes design-system outputs =="
rg -n -C3 'design-system|tokens\.swift|extensions\.swift|mkdir .*design-system|cat > .*tokens\.swift|cat > .*extensions\.swift' templates scripts styles GUIDE.md SKILL.md 2>/dev/null || true
echo
echo "== Locate shell/template files that may define style generation =="
fd -i 'style|design|ios' templates scripts stylesRepository: Eskapeum/native-ios-app-skill
Length of output: 6852
🏁 Script executed:
# Find the main script that handles the style command
fd -type f -name "*.sh" -o -name "*.py" scripts/ | head -20Repository: Eskapeum/native-ios-app-skill
Length of output: 243
🏁 Script executed:
# Search for where the style subcommand is handled
rg -n "style" scripts/ -A 5 -B 2Repository: Eskapeum/native-ios-app-skill
Length of output: 55
🏁 Script executed:
# Check if there's a main entry point script
cat scripts/loop.ios.sh | head -100Repository: Eskapeum/native-ios-app-skill
Length of output: 3114
🏁 Script executed:
# Find all shell scripts in the repo root and scripts/
find . -maxdepth 2 -name "*.sh" -type f | head -20Repository: Eskapeum/native-ios-app-skill
Length of output: 127
🏁 Script executed:
# Look for the main entry point or style implementation
rg -n "style.*name|subcommand.*style" --max-count=20Repository: Eskapeum/native-ios-app-skill
Length of output: 245
🏁 Script executed:
# Check styles directory structure
ls -la styles/Repository: Eskapeum/native-ios-app-skill
Length of output: 246
🏁 Script executed:
# Look for main entry point scripts
ls -la | grep -E "\.sh|\.py|native-ios-app"Repository: Eskapeum/native-ios-app-skill
Length of output: 55
🏁 Script executed:
# Search for any Python files in the repo
find . -name "*.py" -type fRepository: Eskapeum/native-ios-app-skill
Length of output: 55
🏁 Script executed:
# Check if there's a main command handler or CLI
rg -n "def.*style|case.*style" --max-count=20Repository: Eskapeum/native-ios-app-skill
Length of output: 55
🏁 Script executed:
# Look at the repository root structure
tree -L 2 -aRepository: Eskapeum/native-ios-app-skill
Length of output: 614
🏁 Script executed:
# Check SKILL.md and README to understand how native-ios-app is invoked
head -50 README.mdRepository: Eskapeum/native-ios-app-skill
Length of output: 1357
🏁 Script executed:
# Check if there's any documentation about how these commands work
rg -n "native-ios-app|MCP|skill|claude" README.md GUIDE.md --max-count=10Repository: Eskapeum/native-ios-app-skill
Length of output: 1355
The /native-ios-app style command lacks implementation—no code generates the promised .design-system/tokens.swift or .design-system/extensions.swift files.
SKILL.md lines 150–153 promise that running /native-ios-app style <name> will generate both .design-system/tokens.swift and .design-system/extensions.swift, but no implementation exists for this command in the repository. The styles/ directory contains only README.md documentation (no generation code), and there are no shell scripts, Python handlers, or template logic that actually create these files. Users following the skill documentation will encounter failures during init/style flows.
Hey @Eskapeum 👋
25+ design styles from Liquid Glass to Cyberpunk, plus a full Ralph OG autonomous loop with Xcode MCP integratio. This is a seriously thorough iOS skill for a v1.0 release. The structured approach to visual verification via SwiftUI preview capture during the dev loop is a nice touch.
I ran your skills through
tessl skill reviewat work and found some targeted improvements. Here's the full before/after:Changes summary
native-ios-app (+31%):
Description improvements (67% → 100%):
Content improvements (57% → 100%):
tabIdentifiernote to MCP tools table (callXcodeListWindowsfirst)versionfrontmatter key (was flagged as unknown)Honest 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
Chores
Documentation