feat: improve skill scores for 5 lowest-scoring skills#1
Conversation
Hey @runkids 👋 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 | |-------|--------|-------|--------| | slack | 70% | 99% | +29% | | docker-expert | 72% | 93% | +21% | | react-best-practices | 76% | 100% | +24% | | electron | 86% | 88% | +2% | | vercel-sandbox | 86% | 89% | +3% | This PR is intentionally scoped to the 5 lowest-scoring skills to keep it reviewable. More skills can be improved in follow-ups or via automated review on future PRs. Changes: - slack: Condensed to ~81 lines, added Snapshot→Act→Validate→Recover workflow, moved tasks to references - docker-expert: Reduced ~55%, action-verb description, split checklist/diagnostics to references - react-best-practices: Added before/after code examples, verification workflow, narrowed triggers - electron: Condensed platform examples, moved to references, specific action verbs in description - vercel-sandbox: Deduplicated deps, added error handling, concrete snapshot parsing code 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.
There was a problem hiding this comment.
Code Review
This pull request refactors and modularizes documentation across several modules, including Electron, Slack, Vercel Sandbox, Docker, and React. It introduces dedicated reference files for detailed tasks and configurations, keeping the primary SKILL.md files concise and focused on core patterns. Key improvements include enhanced error handling in Vercel Sandbox code snippets, more robust environment detection in Docker scripts, and the addition of practical code examples for React performance optimization. Feedback suggests improving command result validation and regex robustness in the Vercel Sandbox documentation.
| const ssResult = await sandbox.runCommand("agent-browser", [ | ||
| "screenshot", "--json", | ||
| ]); | ||
| const ssPath = JSON.parse(await ssResult.stdout())?.data?.path; | ||
| const b64Result = await sandbox.runCommand("base64", ["-w", "0", ssPath]); | ||
| const ssData = JSON.parse(await ssResult.stdout()); |
There was a problem hiding this comment.
The runCommand result is parsed as JSON without checking the exit code. If the command fails, JSON.parse will throw an unhelpful error. Please verify the exit code before parsing, consistent with the check on line 133.
| const ssResult = await sandbox.runCommand("agent-browser", [ | |
| "screenshot", "--json", | |
| ]); | |
| const ssPath = JSON.parse(await ssResult.stdout())?.data?.path; | |
| const b64Result = await sandbox.runCommand("base64", ["-w", "0", ssPath]); | |
| const ssData = JSON.parse(await ssResult.stdout()); | |
| const ssResult = await sandbox.runCommand("agent-browser", [ | |
| "screenshot", "--json", | |
| ]); | |
| if ((await ssResult.exitCode()) !== 0) { | |
| throw new Error(`Screenshot failed: ${await ssResult.stderr()}`); | |
| } | |
| const ssData = JSON.parse(await ssResult.stdout()); |
| // Build a map of label → element ref for targeted filling | ||
| const refMap = new Map<string, string>(); | ||
| for (const line of snapshot.split("\n")) { | ||
| const match = line.match(/^(@e\d+)\s+\w+\s+"(.+)"/); |
There was a problem hiding this comment.
6003d18 to
da0f7fe
Compare
Hey @doodledood 👋
I ran your skills through
tessl skill reviewat work and found some targeted improvements.Here's the full before/after:
*
update-claude-mdcontains the reserved word "claude" in its name, which causes the tessl validator to fail deterministically and skip the LLM judge entirely. The content improvements are genuine (expanded description with "Use when..." clause, structured best-practices sections, verification checklist) but the score can't reflect them. You may want to consider renaming (e.g.update-project-instructions) or accept the validation trade-off — totally your call.This PR is intentionally scoped to the 5 lowest-scoring skills. More skills can be improved in follow-ups or via automated review on future PRs.
Changes summary
All 5 skills received:
context: forkfrontmatter keys (caused validation warnings on 3 skills)investigate-bug: Added structured workflow (gather symptoms → identify scope → invoke consultant → relay findings), expected output format with root cause, execution flow, blast radius, and regression test plan sections.
review-prompt: Added 10-Layer Architecture reference table, structured output description (assessment, score, strengths, issues table with AUTO_FIXABLE/NEEDS_USER_INPUT tags), clarified read-only constraint.
clean-slop: Added four concrete slop categories with examples (useless comments, verbose docs, filler phrases, unnecessary patterns), scope rules (file paths vs git diff), decision rule for remove/keep, and output format description.
audit-ux: Added 4-step workflow (gather references → identify changes → systematic review → report findings), five issue categories with specific examples, and structured output format description.
update-claude-md: Restructured best practices into scannable sections (structure, length budget table, progressive disclosure, do/don't lists, examples), added verification checklist.
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 🙏