From ff52027f51e24ea4112a6f119c3e6baca9dd2f98 Mon Sep 17 00:00:00 2001 From: Yogesh Rao Date: Tue, 28 Apr 2026 18:11:45 +0530 Subject: [PATCH] feat: improve skill scores for GcRustVsJvm MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Hey @tnfink 👋 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 | |-------|--------|-------|--------| | run-benchmarks | 10% | 95% | +85% | The main issue was the missing YAML frontmatter — without it, the skill fails validation entirely and agents can't properly discover or match it.
Changes made - **Added YAML frontmatter** with `name` and `description` fields so agents can discover and select the skill - **Added a structured "Use when..." clause** in the description with specific trigger terms (performance benchmarks, comparing language execution times, profiling Haskell memory, dataset sizes) - **Replaced hardcoded JAVA_HOME path** (`/Users/tnfink/Library/Java/...`) with a portable `java_home` lookup that falls back gracefully - **Restructured content** from flat instructions/notes into a clear Workflow + Environment Requirements layout - **Improved formatting** with bold step labels and consistent inline code styling
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 🙏 --- SKILL.md | 41 +++++++++++++++++++++-------------------- 1 file changed, 21 insertions(+), 20 deletions(-) diff --git a/SKILL.md b/SKILL.md index 3d0f077..512dc45 100644 --- a/SKILL.md +++ b/SKILL.md @@ -1,32 +1,33 @@ -# run-benchmarks +--- +name: run-benchmarks +description: "Run GC and memory allocation benchmarks comparing Kotlin/JVM, Rust, GraalVM, and Haskell compute-average-income implementations via Gradle. Use when running performance benchmarks, comparing language execution times, profiling Haskell memory usage, or testing compute-average-income implementations across dataset sizes (1K to 1M employees)." +--- -Use this skill when the user wants to run performance benchmarks, compare languages, or test the compute-average-income implementations. +# run-benchmarks -## Instructions +## Workflow -1. Set JAVA_HOME to Java 23 for Gradle compatibility: +1. **Set JAVA_HOME** to a Java 23+ installation for Gradle compatibility: ```bash - export JAVA_HOME=/Users/tnfink/Library/Java/JavaVirtualMachines/openjdk-23.0.1/Contents/Home + export JAVA_HOME=$(/usr/libexec/java_home -v 23 2>/dev/null || echo "$JAVA_HOME") ``` -2. Run all benchmarks with: - ```bash - ./gradlew computeAverageIncome - ``` +2. **Run benchmarks** using Gradle as the orchestrator: - Or run individual language benchmarks: - - Kotlin: `./gradlew computeAverageIncomeKotlin` - - GraalVM: `./gradlew computeAverageIncomeGraalVM` (requires GRAALVM_HOME) - - Rust: `./gradlew computeAverageIncomeRust` - - Haskell: `./gradlew computeAverageIncomeHaskell` + - All languages: `./gradlew computeAverageIncome` + - Kotlin/JVM only: `./gradlew computeAverageIncomeKotlin` + - Rust only: `./gradlew computeAverageIncomeRust` + - Haskell only: `./gradlew computeAverageIncomeHaskell` + - GraalVM only: `./gradlew computeAverageIncomeGraalVM` (requires `GRAALVM_HOME`) -3. For Haskell profiling: +3. **Profile Haskell** memory and GC behavior: ```bash ./gradlew profileAverageIncomeHaskell ``` -## Notes -- Gradle 9.2.1 uses JDK 21 toolchain (auto-provisioned via foojay) -- GraalVM benchmark requires GRAALVM_HOME environment variable set -- Haskell uses GHC 9.10.3 (LTS-24.25) -- Rust uses cargo with --release flag +## Environment Requirements + +- **Gradle 9.2.1**: Uses JDK 21 toolchain, auto-provisioned via foojay +- **GraalVM**: Set `GRAALVM_HOME` environment variable before running GraalVM benchmarks +- **Haskell**: GHC 9.10.3 (LTS-24.25) via Stack +- **Rust**: Compiled with `cargo --release`