Skip to content

feat: improve sinch-fax-api skill score (82% → 93%)#5

Open
yogesh-tessl wants to merge 10 commits into
sinch:mainfrom
yogesh-tessl:improve/skill-review-optimization
Open

feat: improve sinch-fax-api skill score (82% → 93%)#5
yogesh-tessl wants to merge 10 commits into
sinch:mainfrom
yogesh-tessl:improve/skill-review-optimization

Conversation

@yogesh-tessl

Copy link
Copy Markdown

Hey @dtan157 👋

this is a solid piece of work. Supporting Claude, Cursor, and Gemini in a single repo, with a clean separation under the plugins directory makes the whole setup feel well-organized and easy to extend. The CONTRIBUTING.md and Apache license are great signals too; it’s clear you’re inviting others to build on top of this. Overall, it feels like a strong, practical foundation for Sinch messaging integration.

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

Skill Before After Change
sinch-fax-api 82% 93% +11%

I focused on sinch-fax-api because it had the most room for improvement across your skill set.

Changes made to sinch-fax-api
  • Added a Fax Lifecycle Workflow section - explicit 5-step send → verify → callback → error-handling → cleanup sequence with validation checkpoints at each step and error-type-specific recovery paths
  • Added an inline Node.js webhook handler example - complete Express.js receiver for both inbound and outbound fax callbacks, making the skill copy-paste actionable beyond just the curl example
  • Trimmed Key Concepts - removed explanations of concepts Claude already knows (what webhooks are, what fax numbers are) and focused on Sinch-specific details like callback content types, retry limits, and retention policy
  • Consolidated Troubleshooting into a table - replaced verbose subsections with a scannable symptom/check table
  • Tightened Gotchas - removed info duplicated from Key Concepts (retention), merged the SSL certificate note from Common Patterns, and condensed the security warning
  • Streamlined Common Patterns - removed redundant descriptions and duplicate links

All changes synced across the sinch-claude-plugin, sinch-cursor-plugin, and sinch-gemini-extension folders.


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.

Hieu Nguyen Duc and others added 10 commits April 23, 2026 04:10
- Change `owner` from string to object form (`{name, email}`) so it passes
  `OwnerSchema` validation. The prior string value caused the entire
  marketplace manifest to fail parsing, which is why no components were
  surfaced by the Cursor marketplace.
- Drop the leading `plugins/` segment from the plugin `source`. With
  `metadata.pluginRoot: "plugins"` the parser prepends that prefix, so the
  previous `source: "./plugins/sinch-cursor-plugin"` resolved to
  `plugins/plugins/sinch-cursor-plugin` (a nonexistent directory).
  The plugin now correctly resolves to `plugins/sinch-cursor-plugin`.
- Move display-only metadata (`displayName`, `homepage`, `repository`,
  `license`, `keywords`) onto the plugin entry, which is where the
  marketplace schema accepts and surfaces those fields. The
  `MarketplaceMetadataSchema` only supports `description`, `version`,
  and `pluginRoot`, so keeping them at the root was a no-op.
Made plugin description a bit more descriptive
Fix/description fixed in plugin.json as well
Hey @dtan157 👋

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 |
|-------|--------|-------|--------|
| sinch-fax-api | 82% | 93% | **+11%** |
| sinch-10dlc | 87% | 87% | — |
| sinch-conversation-api | 87% | 87% | — |
| sinch-mailgun | 87% | 87% | — |
| sinch-provisioning-api | 87% | 87% | — |
| sinch-voice-api | 87% | 87% | — |
| sinch-elastic-sip-trunking | 92% | 92% | — |
| sinch-in-app-calling | 92% | 92% | — |
| sinch-mailgun-inspect | 92% | 92% | — |
| sinch-numbers-api | 92% | 92% | — |
| sinch-mailgun-validate | 93% | 93% | — |
| sinch-verification-api | 93% | 93% | — |
| sinch-authentication | 94% | 94% | — |
| sinch-mailgun-optimize | 98% | 98% | — |
| sinch-number-lookup-api | 99% | 99% | — |

I focused on `sinch-fax-api` because it had the most room for improvement across your skill set.

<details>
<summary>Changes made to sinch-fax-api</summary>

- Added a Fax Lifecycle Workflow section — explicit 5-step send → verify → callback → error-handling → cleanup sequence with validation checkpoints at each step and error-type-specific recovery paths
- Added an inline Node.js webhook handler example — complete Express.js receiver for both inbound and outbound fax callbacks, making the skill copy-paste actionable beyond just the curl example
- Trimmed Key Concepts — removed explanations of concepts Claude already knows (what webhooks are, what fax numbers are) and focused on Sinch-specific details like callback content types, retry limits, and retention policy
- Consolidated Troubleshooting into a table — replaced verbose subsections with a scannable symptom/check table
- Tightened Gotchas — removed info duplicated from Key Concepts (retention), merged the SSL certificate note from Common Patterns, and condensed the security warning
- Streamlined Common Patterns — removed redundant descriptions and duplicate links

All changes synced across the sinch-claude-plugin, sinch-cursor-plugin, and sinch-gemini-extension folders.

</details>

I also stress-tested your `sinch-fax-api` skill against a few real-world task evals and it held up really well on multi-document PDF faxing with callback status tracking. 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 🙏
@mrhieunguyen85 mrhieunguyen85 force-pushed the main branch 2 times, most recently from ed6dd2a to e88ce60 Compare June 4, 2026 07:31
@yogesh-tessl

Copy link
Copy Markdown
Author

hey @dtan157 👋, just a friendly follow-up in case this got buried, happy to help move it forward!
Totally fine if there's a process, just wanted to keep it visible.

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.

2 participants