Skip to content

feat: improve upgrade-stripe skill score (55% → 94%)#421

Open
yogesh-tessl wants to merge 1 commit into
stripe:mainfrom
yogesh-tessl:improve/skill-review-optimization
Open

feat: improve upgrade-stripe skill score (55% → 94%)#421
yogesh-tessl wants to merge 1 commit into
stripe:mainfrom
yogesh-tessl:improve/skill-review-optimization

Conversation

@yogesh-tessl
Copy link
Copy Markdown

Hey @stevekaliski-stripe 👋

the way you've wired up the sync-skills workflow to pull directly from docs.stripe.com is really smart. Keeps the skills always fresh without manual updates. Spotted a few places in the SKILL.md files where we can tighten things up.

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

Skill Before After Change
upgrade-stripe 55% 94% +39%

your stripe-best-practices skill already scores a perfect 100%. Really well structured with the routing table and progressive disclosure into reference files. The upgrade-stripe skill had the most improvement headroom, so I focused there.

Changes made to upgrade-stripe
  • Expanded frontmatter description - added specific SDK names (stripe-node, stripe-python, stripe-ruby, etc.), concrete actions (resolving breaking changes, migrating deprecated parameters), and a Use when... clause with six trigger scenarios. This lifted the description score from 22% → 100%.
  • Trimmed explanatory content - removed "Types of Changes" section (backward-compatible vs breaking definitions), removed redundant "Best Practice" code example, removed "Important Notes" section. These are concepts the LLM already understands - trimming them improves token efficiency without losing actionability.
  • Added validation checkpoints - step 5 in the upgrade checklist now includes explicit "fix before proceeding" guidance when API calls fail, and step 10 adds a rollback plan.
  • Condensed mobile SDK section - replaced verbose semver explanation with concise one-liners.
  • Synced provider directories - updated both providers/claude/ and providers/cursor/ copies to match.

also stress-tested your stripe-best-practices skill against a few real-world task evals and it held up really well on PaymentIntent-to-Checkout-Session migration routing with dynamic payment methods. Kudos for that.

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

if you want to self-improve your skills, or define your own scenarios to pressure test, just ask your agent (Claude Code, Codex, etc.) to evaluate and optimize your skill with Tessl. Ping me @yogesh-tessl, if you hit any snags.

Hey @stevekaliski-stripe 👋

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 |
|-------|--------|-------|--------|
| upgrade-stripe | 55% | 94% | +39% |
| stripe-best-practices | 100% | 100% | — |
| stripe-projects | 18% | 18% | — |

Your `stripe-best-practices` skill already scores a perfect 100% — really well structured with the routing table and progressive disclosure into reference files. The `upgrade-stripe` skill had the most improvement headroom, so I focused there.

**Note:** These skills are auto-generated from `docs.stripe.com` via `skills/sync.js`, so the next sync will overwrite these changes. I'd suggest applying similar improvements to the generation source on your docs side — particularly the description expansion and content trimming patterns described below.

<details>
<summary>Changes made to upgrade-stripe</summary>

- **Expanded frontmatter description** — added specific SDK names (stripe-node, stripe-python, stripe-ruby, etc.), concrete actions (resolving breaking changes, migrating deprecated parameters), and a `Use when...` clause with six trigger scenarios. This lifted the description score from 22% → 100%.
- **Trimmed explanatory content** — removed "Types of Changes" section (backward-compatible vs breaking definitions), removed redundant "Best Practice" code example, removed "Important Notes" section. These are concepts the LLM already understands — trimming them improves token efficiency without losing actionability.
- **Added validation checkpoints** — step 5 in the upgrade checklist now includes explicit "fix before proceeding" guidance when API calls fail, and step 10 adds a rollback plan.
- **Condensed mobile SDK section** — replaced verbose semver explanation with concise one-liners.
- **Synced provider directories** — updated both providers/claude/ and providers/cursor/ copies to match.

</details>

I also stress-tested your `stripe-best-practices` skill against a few real-world task evals and it held up really well on PaymentIntent-to-Checkout-Session migration routing with dynamic payment methods. Kudos for that.

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 🙏
@cla-assistant
Copy link
Copy Markdown

cla-assistant Bot commented May 14, 2026

CLA assistant check
All committers have signed the CLA.

@cla-assistant
Copy link
Copy Markdown

cla-assistant Bot commented May 14, 2026

CLA assistant check
Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.
You have signed the CLA already but the status is still pending? Let us recheck it.

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