Official Sinch API skills for AI coding agents — SMS, Voice, Verification, Numbers, Mailgun email, and more.
69
87%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Low
Low-risk findings worth noting
// Parses every skills/*/SKILL.md frontmatter with the same strict YAML parser
// Tessl uses, so a bad description fails here instead of in `tessl tile publish`.
import { readdirSync, readFileSync } from "node:fs";
import { parse } from "yaml";
const LIMITS = { name: 64, description: 1024 };
let failed = false;
for (const dir of readdirSync("skills")) {
const file = `skills/${dir}/SKILL.md`;
const fail = (msg) => { failed = true; console.error(`✘ ${file}: ${msg}`); };
let text;
try { text = readFileSync(file, "utf8"); } catch { fail("missing SKILL.md"); continue; }
const match = text.match(/^---\r?\n([\s\S]*?)\r?\n---/);
if (!match) { fail("no YAML frontmatter"); continue; }
let fm;
try { fm = parse(match[1]); } catch (e) { fail(e.message); continue; }
for (const [key, max] of Object.entries(LIMITS)) {
if (typeof fm[key] !== "string" || !fm[key].trim()) fail(`frontmatter.${key} missing`);
else if (fm[key].length > max) fail(`frontmatter.${key} is ${fm[key].length} chars (max ${max})`);
}
if (typeof fm.name === "string" && fm.name !== dir) fail(`frontmatter.name "${fm.name}" != folder "${dir}"`);
}
if (failed) process.exit(1);
console.log("✔ all SKILL.md frontmatter valid");scripts
skills
sinch-10dlc
references
sinch-authentication
sinch-cli
sinch-conversation-api
sinch-elastic-sip-trunking
references
sinch-fax-api
sinch-functions
sinch-functions-dotnet
sinch-functions-node
sinch-imported-numbers-hosting-orders
references
sinch-in-app-calling
sinch-mailgun
references
sinch-mailgun-inspect
references
sinch-mailgun-optimize
references
sinch-mailgun-validate
sinch-mms
sinch-number-lookup-api
sinch-number-order-api
sinch-numbers-api
sinch-porting-api
sinch-provisioning-api
sinch-rcs
sinch-sdks
sinch-sms
scripts
sinch-verification-api
sinch-voice-api
sinch-whatsapp