{"id":"cmvip0ay01j8cad07z50twxt3","slug":"writing-skills-2","publicId":"c8d15091-4db4-4c8a-9454-b8aee44dd7f9","name":"writing-skills","description":"Use when creating new skills, editing existing skills, or verifying skills work before deployment","version":"","author":"obra","license":"MIT","compatibility":"","status":"completed","overallGrade":"F","scannerVersion":11,"fileCount":10,"hasSkillMd":true,"hasScripts":false,"hasReferences":true,"hasEvals":false,"hasAssets":false,"sourceType":"github","sourceUrl":"https://github.com/obra/superpowers/tree/main/skills/writing-skills","createdAt":"2026-10-21T22:37:38.280Z","completedAt":"2026-10-21T22:37:38.277Z","visibility":"public","publishedAt":"2026-06-30T14:36:03.789Z","category":"","frameworks":[],"badgeStatus":"flagged","downloadCount":0,"verdictRationale":{"summary":"Skill failed: 1 hard fail in security or structure checks.","verdict":"fail","scanners":[{"source":"vettd","weight":1,"verdict":"fail"},{"source":"cisco","weight":0.8,"verdict":"fail"}],"consensus":"fail","warnTriggers":["References external URL — review for indirect prompt injection risk"],"policyVersion":"consensus-v1","hardFailTriggers":["Shell execution without sandboxing"]},"verdictPolicyVersion":"consensus-v1","skillId":"cmr0r1qej05tdad07zowucfhk","findings":[{"id":"cmvip0ay01j8gad074eswitmw","source":"cisco","category":"security","label":"Node.js child_process module usage for shell command execution","detail":"render-graphs.js:18 — Pattern detected: from 'child_process'","severity":"critical","ruleId":"COMMAND_INJECTION_JS_CHILD_PROCESS","owaspLlmCategory":null,"intent":null,"chainId":null,"fingerprint":"ea1aaa33eea9c6ec007169d1a7a163a4","filepath":"render-graphs.js"},{"id":"cmvip0ay01j8dad079cnoz60w","source":"vettd","category":"security","label":"Shell execution without sandboxing","detail":"Detected in render-graphs.js:18 — `import { execFileSync } from 'child_process';`","severity":"critical","ruleId":"VTD-0018","owaspLlmCategory":null,"intent":"negligent","chainId":null,"fingerprint":"b893e96e915f612d730dfcf5596959b5","filepath":"render-graphs.js"},{"id":"cmvip0ay01j8ead07a66ci164","source":"vettd","category":"security","label":"References external URL — review for indirect prompt injection risk","detail":"External URL(s) detected in SKILL.md — referenced content can change after audit","severity":"medium","ruleId":"VTD-0088","owaspLlmCategory":null,"intent":null,"chainId":null,"fingerprint":"42638a8b7e9fc5df27449992eaebc724","filepath":"SKILL.md"},{"id":"cmvip0ay01j8had07cc7hgxve","source":"cisco","category":"security","label":"Node.js filesystem access candidate for sensitive-flow correlation","detail":"render-graphs.js:121 — Pattern detected: fs.readFileSync(","severity":"low","ruleId":"DATA_EXFIL_JS_FS_ACCESS","owaspLlmCategory":null,"intent":null,"chainId":null,"fingerprint":"9bb35d6c88335fff6f1ba65e277390b2","filepath":"render-graphs.js"},{"id":"cmvip0ay11j8iad07fp0f2qgr","source":"cisco","category":"security","label":"Node.js filesystem access candidate for sensitive-flow correlation","detail":"render-graphs.js:142 — Pattern detected: fs.writeFileSync(","severity":"low","ruleId":"DATA_EXFIL_JS_FS_ACCESS","owaspLlmCategory":null,"intent":null,"chainId":null,"fingerprint":"9bb35d6c88335fff6f1ba65e277390b2","filepath":"render-graphs.js"},{"id":"cmvip0ay11j8jad076xluh5t5","source":"cisco","category":"security","label":"Node.js filesystem access candidate for sensitive-flow correlation","detail":"render-graphs.js:147 — Pattern detected: fs.writeFileSync(","severity":"low","ruleId":"DATA_EXFIL_JS_FS_ACCESS","owaspLlmCategory":null,"intent":null,"chainId":null,"fingerprint":"9bb35d6c88335fff6f1ba65e277390b2","filepath":"render-graphs.js"},{"id":"cmvip0ay11j8kad07dfa01ie1","source":"cisco","category":"security","label":"Node.js filesystem access candidate for sensitive-flow correlation","detail":"render-graphs.js:158 — Pattern detected: fs.writeFileSync(","severity":"low","ruleId":"DATA_EXFIL_JS_FS_ACCESS","owaspLlmCategory":null,"intent":null,"chainId":null,"fingerprint":"9bb35d6c88335fff6f1ba65e277390b2","filepath":"render-graphs.js"},{"id":"cmvip0ay01j8fad074o9qns0i","source":"cisco","category":"security","label":"Skill does not specify a license","detail":"SKILL.md — Skill manifest does not include a 'license' field. Specifying a license helps users understand usage terms.","severity":"info","ruleId":"MANIFEST_MISSING_LICENSE","owaspLlmCategory":null,"intent":null,"chainId":null,"fingerprint":"592f7ac7731768f0fd0bba83f30850f9","filepath":"SKILL.md"}],"scannerRuns":[{"source":"cisco","status":"success","verdict":null,"grade":"F","findingCount":6,"criticalCount":1,"highCount":1},{"source":"vettd","status":"success","verdict":null,"grade":"F","findingCount":2,"criticalCount":1,"highCount":1}],"user":{"name":"Omkumar Solanki","image":"https://avatars.githubusercontent.com/u/144753825?v=4"},"repository":{"owner":"obra","name":"superpowers"},"freshness":{"status":"verified_unchanged","reason":null,"retryable":false,"renamedTo":null,"lastCheckedAt":"2026-10-22T03:06:37.227Z","lastVerifiedAt":"2026-10-22T03:06:37.227Z","lastChangeDetectedAt":"2026-10-22T03:01:39.534Z","scannedHash":"660ede63b84ce5d07ef28cccc2973165e2ca06e2","latestUpstreamHash":"660ede63b84ce5d07ef28cccc2973165e2ca06e2","nextCheckDueAt":"2026-10-23T04:15:04.227Z"},"signalCategories":[{"category":"safety","label":"Safety","form":"graded","verdict":null,"rows":[]},{"category":"reliability","label":"Reliability & Quality","form":"graded","verdict":null,"rows":[]},{"category":"performance","label":"Performance","form":"measured","verdict":{"form":"measured","magnitudes":[{"ruleId":"performance/static-context-tokens","label":"Static context tokens","value":3654,"unit":null,"method":"tiktoken/cl100k_base/skill-md-body"}]},"rows":[{"origin":"signal","id":"cmvip0b1j1j8rad079ps3jhe9","subjectType":"skill_audit","subjectId":"cmvip0ay01j8cad07z50twxt3","relatedType":"","relatedId":"","dataCategory":"performance","sourceClass":"scan","source":"vettd","ruleId":"performance/static-context-tokens","severity":null,"label":"Static context tokens","detail":null,"valueNum":3654,"valueText":null,"unit":null,"method":"tiktoken/cl100k_base/skill-md-body","derivation":null,"confidence":null,"sampleSize":null,"synthetic":false,"firstParty":true,"observedAt":"2026-10-21T22:37:37.000Z","payload":null},{"origin":"signal","id":"cmvip0b4g1j9lad0754t0bxbj","subjectType":"skill_audit","subjectId":"cmvip0ay01j8cad07z50twxt3","relatedType":"","relatedId":"","dataCategory":"performance","sourceClass":"scan","source":"vettd","ruleId":"performance/progressive-disclosure","severity":null,"label":"Progressive disclosure","detail":null,"valueNum":null,"valueText":"present","unit":null,"method":null,"derivation":"read","confidence":null,"sampleSize":null,"synthetic":false,"firstParty":true,"observedAt":"2026-10-21T22:37:37.000Z","payload":null}]},{"category":"cost","label":"Cost","form":"measured","verdict":null,"rows":[]},{"category":"compatibility","label":"Compatibility","form":"unjudged","verdict":{"form":"unjudged"},"rows":[{"origin":"signal","id":"cmvip0b1q1j8tad07q863ve6s","subjectType":"skill_audit","subjectId":"cmvip0ay01j8cad07z50twxt3","relatedType":"","relatedId":"","dataCategory":"compatibility","sourceClass":"scan","source":"vettd","ruleId":"compatibility/declared-environment-assumptions","severity":null,"label":"Declared environment assumptions","detail":null,"valueNum":null,"valueText":"","unit":null,"method":null,"derivation":"read","confidence":null,"sampleSize":null,"synthetic":false,"firstParty":true,"observedAt":"2026-10-21T22:37:37.000Z","payload":null},{"origin":"signal","id":"cmvip0b2t1j95ad07u0r155h3","subjectType":"skill_audit","subjectId":"cmvip0ay01j8cad07z50twxt3","relatedType":"","relatedId":"","dataCategory":"compatibility","sourceClass":"scan","source":"vettd","ruleId":"compatibility/declared-name","severity":null,"label":"Declared skill name","detail":null,"valueNum":null,"valueText":"writing-skills","unit":null,"method":null,"derivation":"read","confidence":null,"sampleSize":null,"synthetic":false,"firstParty":true,"observedAt":"2026-10-21T22:37:37.000Z","payload":null}]},{"category":"sentiment","label":"Popularity","form":"unjudged","verdict":null,"rows":[]},{"category":"characteristics","label":"Characteristics","form":"unjudged","verdict":null,"rows":[]}],"signalCount":30,"publisherSupplied":["name","description","author","version","license"]}