[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6BXMRYNSPED1DVWRN9EABP3":3,"skill-same:01M6BXMRYNSPED1DVWRN9EABP3":59},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":18,"publishedAt":25,"linkOnly":26,"markdownContent":27,"markdownBody":28,"frontMatter":29,"refName":30,"commitSha":31,"skillDirectory":32,"forksCount":33,"repositoryHtmlUrl":34,"repositoryHomepageUrl":6,"ownerHtmlUrl":35,"ownerBlogUrl":36,"ownerDescription":37,"updatedAt":38,"install":39,"resources":52},"01M6BXMRYNSPED1DVWRN9EABP3","V3 Security Overhaul",null,"Complete security architecture overhaul for claude-flow v3. Addresses critical CVEs (CVE-1, CVE-2, CVE-3) and implements secure-by-default patterns. Use for security-first v3 implementation.","diegopacheco\u002Fai-playground","diegopacheco","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F121278?v=4","01M6BXCP8P7GGSJ8M1W2MFDTGT","Diego Pacheco","01M6BXCPD3WM51H465XW9YM4BV",21,"Unlicense","https:\u002F\u002Fgithub.com\u002Fdiegopacheco\u002Fai-playground\u002Fblob\u002Fmain\u002Fpocs\u002Fclaude-flow-fun\u002F.claude\u002Fskills\u002Fv3-security-overhaul\u002FSKILL.md",[],[19,5,20,21,22,23,24],"security","architecture","secure","cve","flow","first","2026-11-10 10:12:30",false,"---\nname: \"V3 Security Overhaul\"\ndescription: \"Complete security architecture overhaul for claude-flow v3. Addresses critical CVEs (CVE-1, CVE-2, CVE-3) and implements secure-by-default patterns. Use for security-first v3 implementation.\"\n---\n\n# V3 Security Overhaul\n\n## What This Skill Does\n\nOrchestrates comprehensive security overhaul for claude-flow v3, addressing critical vulnerabilities and establishing security-first development practices using specialized v3 security agents.\n\n## Quick Start\n\n```bash\n# Initialize V3 security domain (parallel)\nTask(\"Security architecture\", \"Design v3 threat model and security boundaries\", \"v3-security-architect\")\nTask(\"CVE remediation\", \"Fix CVE-1, CVE-2, CVE-3 critical vulnerabilities\", \"security-auditor\")\nTask(\"Security testing\", \"Implement TDD London School security framework\", \"test-architect\")\n```\n\n## Critical Security Fixes\n\n### CVE-1: Vulnerable Dependencies\n```bash\nnpm update @anthropic-ai\u002Fclaude-code@^2.0.31\nnpm audit --audit-level high\n```\n\n### CVE-2: Weak Password Hashing\n```typescript\n\u002F\u002F ❌ Old: SHA-256 with hardcoded salt\nconst hash = crypto.createHash('sha256').update(password + salt).digest('hex');\n\n\u002F\u002F ✅ New: bcrypt with 12 rounds\nimport bcrypt from 'bcrypt';\nconst hash = await bcrypt.hash(password, 12);\n```\n\n### CVE-3: Hardcoded Credentials\n```typescript\n\u002F\u002F ✅ Generate secure random credentials\nconst apiKey = crypto.randomBytes(32).toString('hex');\n```\n\n## Security Patterns\n\n### Input Validation (Zod)\n```typescript\nimport { z } from 'zod';\n\nconst TaskSchema = z.object({\n  taskId: z.string().uuid(),\n  content: z.string().max(10000),\n  agentType: z.enum(['security', 'core', 'integration'])\n});\n```\n\n### Path Sanitization\n```typescript\nfunction securePath(userPath: string, allowedPrefix: string): string {\n  const resolved = path.resolve(allowedPrefix, userPath);\n  if (!resolved.startsWith(path.resolve(allowedPrefix))) {\n    throw new SecurityError('Path traversal detected');\n  }\n  return resolved;\n}\n```\n\n### Safe Command Execution\n```typescript\nimport { execFile } from 'child_process';\n\n\u002F\u002F ✅ Safe: No shell interpretation\nconst { stdout } = await execFile('git', [userInput], { shell: false });\n```\n\n## Success Metrics\n\n- **Security Score**: 90\u002F100 (npm audit + custom scans)\n- **CVE Resolution**: 100% of critical vulnerabilities fixed\n- **Test Coverage**: >95% security-critical code\n- **Implementation**: All secure patterns documented and tested","# V3 Security Overhaul\n\n## What This Skill Does\n\nOrchestrates comprehensive security overhaul for claude-flow v3, addressing critical vulnerabilities and establishing security-first development practices using specialized v3 security agents.\n\n## Quick Start\n\n```bash\n# Initialize V3 security domain (parallel)\nTask(\"Security architecture\", \"Design v3 threat model and security boundaries\", \"v3-security-architect\")\nTask(\"CVE remediation\", \"Fix CVE-1, CVE-2, CVE-3 critical vulnerabilities\", \"security-auditor\")\nTask(\"Security testing\", \"Implement TDD London School security framework\", \"test-architect\")\n```\n\n## Critical Security Fixes\n\n### CVE-1: Vulnerable Dependencies\n```bash\nnpm update @anthropic-ai\u002Fclaude-code@^2.0.31\nnpm audit --audit-level high\n```\n\n### CVE-2: Weak Password Hashing\n```typescript\n\u002F\u002F ❌ Old: SHA-256 with hardcoded salt\nconst hash = crypto.createHash('sha256').update(password + salt).digest('hex');\n\n\u002F\u002F ✅ New: bcrypt with 12 rounds\nimport bcrypt from 'bcrypt';\nconst hash = await bcrypt.hash(password, 12);\n```\n\n### CVE-3: Hardcoded Credentials\n```typescript\n\u002F\u002F ✅ Generate secure random credentials\nconst apiKey = crypto.randomBytes(32).toString('hex');\n```\n\n## Security Patterns\n\n### Input Validation (Zod)\n```typescript\nimport { z } from 'zod';\n\nconst TaskSchema = z.object({\n  taskId: z.string().uuid(),\n  content: z.string().max(10000),\n  agentType: z.enum(['security', 'core', 'integration'])\n});\n```\n\n### Path Sanitization\n```typescript\nfunction securePath(userPath: string, allowedPrefix: string): string {\n  const resolved = path.resolve(allowedPrefix, userPath);\n  if (!resolved.startsWith(path.resolve(allowedPrefix))) {\n    throw new SecurityError('Path traversal detected');\n  }\n  return resolved;\n}\n```\n\n### Safe Command Execution\n```typescript\nimport { execFile } from 'child_process';\n\n\u002F\u002F ✅ Safe: No shell interpretation\nconst { stdout } = await execFile('git', [userInput], { shell: false });\n```\n\n## Success Metrics\n\n- **Security Score**: 90\u002F100 (npm audit + custom scans)\n- **CVE Resolution**: 100% of critical vulnerabilities fixed\n- **Test Coverage**: >95% security-critical code\n- **Implementation**: All secure patterns documented and tested",{"name":5,"description":7},"main","90d379e95fcc23dd9759654c345424e1752b0f3a","pocs\u002Fclaude-flow-fun\u002F.claude\u002Fskills\u002Fv3-security-overhaul",9,"https:\u002F\u002Fgithub.com\u002Fdiegopacheco\u002Fai-playground","https:\u002F\u002Fgithub.com\u002Fdiegopacheco","http:\u002F\u002Fdiego-pacheco.blogspot.com","Brazilian Hands-on Software Architect | 20+ years in Tech | Author | Father. Opinions are my own!","2026-11-15 01:01:48",{"source":8,"skillName":5,"commands":40,"prompt":50,"zipAvailable":51},[41,44,47],{"tool":42,"command":43},"npx","npx skills add diegopacheco\u002Fai-playground --skill \"V3 Security Overhaul\"",{"tool":45,"command":46},"bunx","bunx skills add diegopacheco\u002Fai-playground --skill \"V3 Security Overhaul\"",{"tool":48,"command":49},"pnpm","pnpm dlx skills add diegopacheco\u002Fai-playground --skill \"V3 Security Overhaul\"","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fdiegopacheco\u002Fai-playground\u002Fblob\u002Fmain\u002Fpocs\u002Fclaude-flow-fun\u002F.claude\u002Fskills\u002Fv3-security-overhaul\u002FSKILL.md",true,[53],{"path":54,"resourceType":55,"resourceTypeDesc":56,"sizeBytes":57,"sourceHtmlUrl":58},"LICENSE.upstream","LICENSE","许可证",1070,"https:\u002F\u002Fgithub.com\u002Fvox-foundation\u002Fvox\u002Fblob\u002Fmain\u002Fassets\u002Fskills\u002Fwriting-plans\u002FLICENSE.upstream",[60,78,88,101,117,136],{"skillNo":61,"name":62,"nameZh":6,"description":63,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":64,"categories":65,"keywords":71,"publishedAt":25},"01M6WJ537DN520XY8MSW9ZV0RP","word-count","Counts the words, lines and characters of a text or a file.","https:\u002F\u002Fgithub.com\u002Fdiegopacheco\u002Fai-playground\u002Fblob\u002Fmain\u002Fpocs\u002Fskills-gateway-router\u002Fupstream-skills\u002Ftext-skills\u002Fword-count\u002FSKILL.md",[66],{"categoryNo":67,"categoryName":68,"taxonomyType":69,"taxonomyTypeDesc":70},"01JBSEEDCAT000000000000002","文档处理","SCENARIO","使用场景",[72,73,74,75,76,77],"count","word count","Word","characters","text","file",{"skillNo":79,"name":80,"nameZh":6,"description":81,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":82,"categories":83,"keywords":84,"publishedAt":25},"01M6WJ4Y2GT5SECWAKKYHGES4F","slugify","Turns a title or a sentence into a URL slug, lowercase words joined by hyphens with accents removed.","https:\u002F\u002Fgithub.com\u002Fdiegopacheco\u002Fai-playground\u002Fblob\u002Fmain\u002Fpocs\u002Fskills-gateway-router\u002Fupstream-skills\u002Ftext-skills\u002Fslugify\u002FSKILL.md",[],[80,85,86,87],"title","with","URL",{"skillNo":89,"name":90,"nameZh":6,"description":91,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":92,"categories":93,"keywords":94,"publishedAt":25},"01M6WJ4V9CWHT9NVCD441VK5MH","json-format","Validates a JSON file and pretty prints it with two space indentation, or reports where the JSON is invalid.","https:\u002F\u002Fgithub.com\u002Fdiegopacheco\u002Fai-playground\u002Fblob\u002Fmain\u002Fpocs\u002Fskills-gateway-router\u002Fupstream-skills\u002Fdev-skills\u002Fjson-format\u002FSKILL.md",[],[95,96,97,77,98,99,100,86],"json","format","json format","reports","invalid","it",{"skillNo":102,"name":103,"nameZh":6,"description":104,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":105,"categories":106,"keywords":107,"publishedAt":25},"01M6WJ4QMRKW8EFP71F4KS2DHE","commit-message","Writes a conventional commit message for the staged git changes.","https:\u002F\u002Fgithub.com\u002Fdiegopacheco\u002Fai-playground\u002Fblob\u002Fmain\u002Fpocs\u002Fskills-gateway-router\u002Fupstream-skills\u002Fdev-skills\u002Fcommit-message\u002FSKILL.md",[],[108,109,110,111,112,113,114,115,116],"commit","commit message","message","git","conventional commit","for","changes","staged","conventional commit message",{"skillNo":118,"name":119,"nameZh":6,"description":120,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":121,"categories":122,"keywords":123,"publishedAt":25},"01M6WJ4MAM2CJH0GWYXFBB9GQC","skills-gateway","Gateway and router to a catalog of skills that are not registered directly. Use it before any task a specialized skill could handle, such as text, JSON or git chores. It finds the right skill and loads its instructions.","https:\u002F\u002Fgithub.com\u002Fdiegopacheco\u002Fai-playground\u002Fblob\u002Fmain\u002Fpocs\u002Fskills-gateway-router\u002F.claude\u002Fskills\u002Fskills-gateway\u002FSKILL.md",[],[124,125,100,126,127,111,128,95,76,129,130,131,132,133,134,135],"skills gateway","gateway","task","loads","Bash","node","specialized","instructions","catalog","use","router","as",{"skillNo":137,"name":138,"nameZh":6,"description":139,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":140,"categories":141,"keywords":142,"publishedAt":25},"01M6M2PYJJQKMWGX7XT7ZJK0H3","decision-log","Record, list, show and supersede architecture decisions that persist across sessions in the shared agent infra state store. Use when the user says \"record this decision\", \"log an ADR\", \"what did we decide about\", \"list decisions\", or \"supersede decision\".","https:\u002F\u002Fgithub.com\u002Fdiegopacheco\u002Fai-playground\u002Fblob\u002Fmain\u002Fpocs\u002Fagent-skills-infra-poc\u002Fskills\u002Fdecision-log\u002FSKILL.md",[],[143,144,145,146,20,147,148,149,150,151,133,152,153,154,155,156,157,158,159,160],"decision log","log","decision","persist","state","adr","decide","decisions","list","show","infra","record","across","shared","store","about","supersede","sessions"]