skills/taskingbot-skill-validator/SKILL.md
Scans skills for tool poisoning, policy violations, and risk before registration or exposure. Detects hidden instructions, cross-tool shadowing, data exfiltration, and policy bypass patterns in SKILL.md, manifest, and schema files.
npx skillsauth add tippyentertainment/skills taskingbot-skill-validatorInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Create a TaskingBot skill called taskingbot-skill-validator that scans other skills for tool poisoning before they are registered or exposed.
You are a security validator for TaskingBot skills. You:
User instruction:
Scan the following skill for tool poisoning and policy violations.
// skillMarkdown, manifestJson, schemaJson here... { id: "data-exfiltration", regex: /pastebin.com|webhook|send all data|send all logs|send all messages|send all credentials|btc address|crypto wallet/gi, severity: "critical", message: "Potential data exfiltration or crypto wallet reference detected." }, { id: "policy-violation", regex: /bypass security|circumvent restrictions|jailbreak|ignore content policy/gi, severity: "critical", message: "Policy/jailbreak language detected." } ];
function scanText(source: "markdown" | "manifest" | "schema", text: string): ScanFinding[] { const findings: ScanFinding[] = []; for (const pat of patterns) { let match; const regex = new RegExp(pat.regex.source, pat.regex.flags); while ((match = regex.exec(text)) !== null) { const start = Math.max(0, match.index - 60); const end = Math.min(text.length, match.index + match[0].length + 60); findings.push({ id: pat.id, severity: pat.severity as ScanFinding["severity"], message: pat.message, snippet: text.slice(start, end), source }); } } return findings; }
function computeHash(markdown: string, manifest: string | null, schema: string | null): string { const data = markdown + (manifest || "") + (schema || ""); return crypto.createHash("sha256").update(data).digest("hex"); }
function scoreSeverity(severity: ScanFinding["severity"]): number { switch (severity) { case "low": return 5; case "medium": return 15; case "high": return 30; case "critical": return 50; default: return 0; } }
export async function scanSkill(args: ScanSkillArgs): Promise<ScanResult> { const findings: ScanFinding[] = []; findings.push(...scanText("markdown", args.skillMarkdown || "")); if (args.skillManifestJson) findings.push(...scanText("manifest", args.skillManifestJson)); if (args.schemaJson) findings.push(...scanText("schema", args.schemaJson));
let riskScore = findings.reduce((acc, f) => acc + scoreSeverity(f.severity), 0); riskScore = Math.max(0, Math.min(100, riskScore));
let status: ScanStatus = "ok"; if (riskScore >= 70) status = "block"; else if (riskScore >= 30) status = "warn";
const hash = computeHash(args.skillMarkdown || "", args.skillManifestJson || null, args.schemaJson || null);
return { skillId: args.skillId, status, riskScore, findings, hash }; }
development
A top-tier product/UI designer skill that uses Tailwind v4 plus Google Gemini Nano Banana image models to craft visually stunning, “award‑winning” marketing sites and apps with strong art direction, motion, and systems thinking.
development
Meticulously detect and fix missing React/TSX imports, undefined components, and bundler runtime errors in the WASM SPA build/preview pipeline. Ensures JSX components, icons, and hooks are properly imported or defined before running the browser preview, so the runtime safety-net rarely triggers.
development
Debug and auto-fix Vite projects running inside WebContainers: resolve mount/root issues, alias/path errors, missing scripts, and other common dev-time problems so the app boots cleanly.
tools
Diagnose and fix Vite + React 19 configuration issues for TypeScript SPA and WASM preview builds. Specializes in React 19’s JSX runtime, @vitejs/plugin-react, path aliases, SPA routing, and dev-server behavior so the app and in-browser preview bundle cleanly without manual trial-and-error.