[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6DSR7WSXM2FJ3WJNAY2MSHP":3,"skill-same:01M6DSR7WSXM2FJ3WJNAY2MSHP":99},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":17,"publishedAt":32,"linkOnly":33,"markdownContent":34,"markdownBody":35,"frontMatter":36,"refName":44,"commitSha":45,"skillDirectory":46,"forksCount":47,"repositoryHtmlUrl":48,"repositoryHomepageUrl":6,"ownerHtmlUrl":49,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":50,"install":51,"resources":64},"01M6DSR7WSXM2FJ3WJNAY2MSHP","semgrep-rule-variant-creator",null,"Creates language variants of existing Semgrep rules. Use when porting a Semgrep rule to specified target languages. Takes an existing rule and target languages as input, produces independent rule+test directories for each language.","AntifragileTech\u002Fantifragile-claude-code","AntifragileTech","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F174357194?v=4","01M6DQCYMK4CDSQQAN0ZC72NTV","01M6DQCYS9YPW1WKMQ5TJMPQ43",9,"MIT","https:\u002F\u002Fgithub.com\u002FAntifragileTech\u002Fantifragile-claude-code\u002Fblob\u002Fmaster\u002Fassets\u002Fskills\u002Fsecurity\u002Fsemgrep-rule-variant-creator\u002FSKILL.md",[],[18,19,20,21,22,23,24,25,26,27,28,29,30,31],"semgrep","semgrep rule variant creator","test","Bash","Rules","grep","read","write","edit","webfetch","use","language","as","input","2026-11-10 10:12:30",false,"---\nname: semgrep-rule-variant-creator\ndescription: Creates language variants of existing Semgrep rules. Use when porting a Semgrep rule to specified target languages. Takes an existing rule and target languages as input, produces independent rule+test directories for each language.\nallowed-tools:\n  - Bash\n  - Read\n  - Write\n  - Edit\n  - Glob\n  - Grep\n  - WebFetch\n---\n\n# Semgrep Rule Variant Creator\n\nPort existing Semgrep rules to new target languages with proper applicability analysis and test-driven validation.\n\n## When to Use\n\n**Ideal scenarios:**\n- Porting an existing Semgrep rule to one or more target languages\n- Creating language-specific variants of a universal vulnerability pattern\n- Expanding rule coverage across a polyglot codebase\n- Translating rules between languages with equivalent constructs\n\n## When NOT to Use\n\nDo NOT use this skill for:\n- Creating a new Semgrep rule from scratch (use `semgrep-rule-creator` instead)\n- Running existing rules against code\n- Languages where the vulnerability pattern fundamentally doesn't apply\n- Minor syntax variations within the same language\n\n## Input Specification\n\nThis skill requires:\n1. **Existing Semgrep rule** - YAML file path or YAML rule content\n2. **Target languages** - One or more languages to port to (e.g., \"Golang and Java\")\n\n## Output Specification\n\nFor each applicable target language, produces:\n```\n\u003Coriginal-rule-id>-\u003Clanguage>\u002F\n├── \u003Coriginal-rule-id>-\u003Clanguage>.yaml     # Ported Semgrep rule\n└── \u003Coriginal-rule-id>-\u003Clanguage>.\u003Cext>    # Test file with annotations\n```\n\nExample output for porting `sql-injection` to Go and Java:\n```\nsql-injection-golang\u002F\n├── sql-injection-golang.yaml\n└── sql-injection-golang.go\n\nsql-injection-java\u002F\n├── sql-injection-java.yaml\n└── sql-injection-java.java\n```\n\n## Rationalizations to Reject\n\nWhen porting Semgrep rules, reject these common shortcuts:\n\n| Rationalization | Why It Fails | Correct Approach |\n|-----------------|--------------|------------------|\n| \"Pattern structure is identical\" | Different ASTs across languages | Always dump AST for target language |\n| \"Same vulnerability, same detection\" | Data flow differs between languages | Analyze target language idioms |\n| \"Rule doesn't need tests since original worked\" | Language edge cases differ | Write NEW test cases for target |\n| \"Skip applicability - it obviously applies\" | Some patterns are language-specific | Complete applicability analysis first |\n| \"I'll create all variants then test\" | Errors compound, hard to debug | Complete full cycle per language |\n| \"Library equivalent is close enough\" | Surface similarity hides differences | Verify API semantics match |\n| \"Just translate the syntax 1:1\" | Languages have different idioms | Research target language patterns |\n\n## Strictness Level\n\nThis workflow is **strict** - do not skip steps:\n- **Applicability analysis is mandatory**: Don't assume patterns translate\n- **Each language is independent**: Complete full cycle before moving to next\n- **Test-first for each variant**: Never write a rule without test cases\n- **100% test pass required**: \"Most tests pass\" is not acceptable\n\n## Overview\n\nThis skill guides the creation of language-specific variants of existing Semgrep rules. Each target language goes through an independent 4-phase cycle:\n\n```\nFOR EACH target language:\n  Phase 1: Applicability Analysis → Verdict\n  Phase 2: Test Creation (Test-First)\n  Phase 3: Rule Creation\n  Phase 4: Validation\n  (Complete full cycle before moving to next language)\n```\n\n## Foundational Knowledge\n\n**The `semgrep-rule-creator` skill is the authoritative reference for Semgrep rule creation fundamentals.** While this skill focuses on porting existing rules to new languages, the core principles of writing quality rules remain the same.\n\nConsult `semgrep-rule-creator` for guidance on:\n- **When to use taint mode vs pattern matching** - Choosing the right approach for the vulnerability type\n- **Test-first methodology** - Why tests come before rules and how to write effective test cases\n- **Anti-patterns to avoid** - Common mistakes like overly broad or overly specific patterns\n- **Iterating until tests pass** - The validation loop and debugging techniques\n- **Rule optimization** - Removing redundant patterns after tests pass\n\nWhen porting a rule, you're applying these same principles in a new language context. If uncertain about rule structure or approach, refer to `semgrep-rule-creator` first.\n\n## Four-Phase Workflow\n\n### Phase 1: Applicability Analysis\n\nBefore porting, determine if the pattern applies to the target language.\n\n**Analysis criteria:**\n1. Does the vulnerability class exist in the target language?\n2. Does an equivalent construct exist (function, pattern, library)?\n3. Are the semantics similar enough for meaningful detection?\n\n**Verdict options:**\n- `APPLICABLE` → Proceed with variant creation\n- `APPLICABLE_WITH_ADAPTATION` → Proceed but significant changes needed\n- `NOT_APPLICABLE` → Skip this language, document why\n\nSee [applicability-analysis.md]({baseDir}\u002Freferences\u002Fapplicability-analysis.md) for detailed guidance.\n\n### Phase 2: Test Creation (Test-First)\n\n**Always write tests before the rule.**\n\nCreate test file with target language idioms:\n- Minimum 2 vulnerable cases (`ruleid:`)\n- Minimum 2 safe cases (`ok:`)\n- Include language-specific edge cases\n\n```go\n\u002F\u002F ruleid: sql-injection-golang\ndb.Query(\"SELECT * FROM users WHERE id = \" + userInput)\n\n\u002F\u002F ok: sql-injection-golang\ndb.Query(\"SELECT * FROM users WHERE id = ?\", userInput)\n```\n\n### Phase 3: Rule Creation\n\n1. **Analyze AST**: `semgrep --dump-ast -l \u003Clang> test-file`\n2. **Translate patterns** to target language syntax\n3. **Update metadata**: language key, message, rule ID\n4. **Adapt for idioms**: Handle language-specific constructs\n\nSee [language-syntax-guide.md]({baseDir}\u002Freferences\u002Flanguage-syntax-guide.md) for translation guidance.\n\n### Phase 4: Validation\n\n```bash\n# Validate YAML\nsemgrep --validate --config rule.yaml\n\n# Run tests\nsemgrep --test --config rule.yaml test-file\n```\n\n**Checkpoint**: Output MUST show `All tests passed`.\n\nFor taint rule debugging:\n```bash\nsemgrep --dataflow-traces -f rule.yaml test-file\n```\n\nSee [workflow.md]({baseDir}\u002Freferences\u002Fworkflow.md) for detailed workflow and troubleshooting.\n\n## Quick Reference\n\n| Task | Command |\n|------|---------|\n| Run tests | `semgrep --test --config rule.yaml test-file` |\n| Validate YAML | `semgrep --validate --config rule.yaml` |\n| Dump AST | `semgrep --dump-ast -l \u003Clang> \u003Cfile>` |\n| Debug taint flow | `semgrep --dataflow-traces -f rule.yaml file` |\n\n\n## Key Differences from Rule Creation\n\n| Aspect | semgrep-rule-creator | This skill |\n|--------|---------------------|------------|\n| Input | Bug pattern description | Existing rule + target languages |\n| Output | Single rule+test | Multiple rule+test directories |\n| Workflow | Single creation cycle | Independent cycle per language |\n| Phase 1 | Problem analysis | Applicability analysis per language |\n| Library research | Always relevant | Optional (when original uses libraries) |\n\n## Documentation\n\n**REQUIRED**: Before porting rules, read relevant Semgrep documentation:\n\n- [Rule Syntax](https:\u002F\u002Fsemgrep.dev\u002Fdocs\u002Fwriting-rules\u002Frule-syntax) - YAML structure and operators\n- [Pattern Syntax](https:\u002F\u002Fsemgrep.dev\u002Fdocs\u002Fwriting-rules\u002Fpattern-syntax) - Pattern matching and metavariables\n- [Pattern Examples](https:\u002F\u002Fsemgrep.dev\u002Fdocs\u002Fwriting-rules\u002Fpattern-examples) - Per-language pattern references\n- [Testing Rules](https:\u002F\u002Fsemgrep.dev\u002Fdocs\u002Fwriting-rules\u002Ftesting-rules) - Testing annotations\n- [Trail of Bits Testing Handbook](https:\u002F\u002Fappsec.guide\u002Fdocs\u002Fstatic-analysis\u002Fsemgrep\u002Fadvanced\u002F) - Advanced patterns\n\n## Next Steps\n\n- For applicability analysis guidance, see [applicability-analysis.md]({baseDir}\u002Freferences\u002Fapplicability-analysis.md)\n- For language translation guidance, see [language-syntax-guide.md]({baseDir}\u002Freferences\u002Flanguage-syntax-guide.md)\n- For detailed workflow and examples, see [workflow.md]({baseDir}\u002Freferences\u002Fworkflow.md)\n","# Semgrep Rule Variant Creator\n\nPort existing Semgrep rules to new target languages with proper applicability analysis and test-driven validation.\n\n## When to Use\n\n**Ideal scenarios:**\n- Porting an existing Semgrep rule to one or more target languages\n- Creating language-specific variants of a universal vulnerability pattern\n- Expanding rule coverage across a polyglot codebase\n- Translating rules between languages with equivalent constructs\n\n## When NOT to Use\n\nDo NOT use this skill for:\n- Creating a new Semgrep rule from scratch (use `semgrep-rule-creator` instead)\n- Running existing rules against code\n- Languages where the vulnerability pattern fundamentally doesn't apply\n- Minor syntax variations within the same language\n\n## Input Specification\n\nThis skill requires:\n1. **Existing Semgrep rule** - YAML file path or YAML rule content\n2. **Target languages** - One or more languages to port to (e.g., \"Golang and Java\")\n\n## Output Specification\n\nFor each applicable target language, produces:\n```\n\u003Coriginal-rule-id>-\u003Clanguage>\u002F\n├── \u003Coriginal-rule-id>-\u003Clanguage>.yaml     # Ported Semgrep rule\n└── \u003Coriginal-rule-id>-\u003Clanguage>.\u003Cext>    # Test file with annotations\n```\n\nExample output for porting `sql-injection` to Go and Java:\n```\nsql-injection-golang\u002F\n├── sql-injection-golang.yaml\n└── sql-injection-golang.go\n\nsql-injection-java\u002F\n├── sql-injection-java.yaml\n└── sql-injection-java.java\n```\n\n## Rationalizations to Reject\n\nWhen porting Semgrep rules, reject these common shortcuts:\n\n| Rationalization | Why It Fails | Correct Approach |\n|-----------------|--------------|------------------|\n| \"Pattern structure is identical\" | Different ASTs across languages | Always dump AST for target language |\n| \"Same vulnerability, same detection\" | Data flow differs between languages | Analyze target language idioms |\n| \"Rule doesn't need tests since original worked\" | Language edge cases differ | Write NEW test cases for target |\n| \"Skip applicability - it obviously applies\" | Some patterns are language-specific | Complete applicability analysis first |\n| \"I'll create all variants then test\" | Errors compound, hard to debug | Complete full cycle per language |\n| \"Library equivalent is close enough\" | Surface similarity hides differences | Verify API semantics match |\n| \"Just translate the syntax 1:1\" | Languages have different idioms | Research target language patterns |\n\n## Strictness Level\n\nThis workflow is **strict** - do not skip steps:\n- **Applicability analysis is mandatory**: Don't assume patterns translate\n- **Each language is independent**: Complete full cycle before moving to next\n- **Test-first for each variant**: Never write a rule without test cases\n- **100% test pass required**: \"Most tests pass\" is not acceptable\n\n## Overview\n\nThis skill guides the creation of language-specific variants of existing Semgrep rules. Each target language goes through an independent 4-phase cycle:\n\n```\nFOR EACH target language:\n  Phase 1: Applicability Analysis → Verdict\n  Phase 2: Test Creation (Test-First)\n  Phase 3: Rule Creation\n  Phase 4: Validation\n  (Complete full cycle before moving to next language)\n```\n\n## Foundational Knowledge\n\n**The `semgrep-rule-creator` skill is the authoritative reference for Semgrep rule creation fundamentals.** While this skill focuses on porting existing rules to new languages, the core principles of writing quality rules remain the same.\n\nConsult `semgrep-rule-creator` for guidance on:\n- **When to use taint mode vs pattern matching** - Choosing the right approach for the vulnerability type\n- **Test-first methodology** - Why tests come before rules and how to write effective test cases\n- **Anti-patterns to avoid** - Common mistakes like overly broad or overly specific patterns\n- **Iterating until tests pass** - The validation loop and debugging techniques\n- **Rule optimization** - Removing redundant patterns after tests pass\n\nWhen porting a rule, you're applying these same principles in a new language context. If uncertain about rule structure or approach, refer to `semgrep-rule-creator` first.\n\n## Four-Phase Workflow\n\n### Phase 1: Applicability Analysis\n\nBefore porting, determine if the pattern applies to the target language.\n\n**Analysis criteria:**\n1. Does the vulnerability class exist in the target language?\n2. Does an equivalent construct exist (function, pattern, library)?\n3. Are the semantics similar enough for meaningful detection?\n\n**Verdict options:**\n- `APPLICABLE` → Proceed with variant creation\n- `APPLICABLE_WITH_ADAPTATION` → Proceed but significant changes needed\n- `NOT_APPLICABLE` → Skip this language, document why\n\nSee [applicability-analysis.md]({baseDir}\u002Freferences\u002Fapplicability-analysis.md) for detailed guidance.\n\n### Phase 2: Test Creation (Test-First)\n\n**Always write tests before the rule.**\n\nCreate test file with target language idioms:\n- Minimum 2 vulnerable cases (`ruleid:`)\n- Minimum 2 safe cases (`ok:`)\n- Include language-specific edge cases\n\n```go\n\u002F\u002F ruleid: sql-injection-golang\ndb.Query(\"SELECT * FROM users WHERE id = \" + userInput)\n\n\u002F\u002F ok: sql-injection-golang\ndb.Query(\"SELECT * FROM users WHERE id = ?\", userInput)\n```\n\n### Phase 3: Rule Creation\n\n1. **Analyze AST**: `semgrep --dump-ast -l \u003Clang> test-file`\n2. **Translate patterns** to target language syntax\n3. **Update metadata**: language key, message, rule ID\n4. **Adapt for idioms**: Handle language-specific constructs\n\nSee [language-syntax-guide.md]({baseDir}\u002Freferences\u002Flanguage-syntax-guide.md) for translation guidance.\n\n### Phase 4: Validation\n\n```bash\n# Validate YAML\nsemgrep --validate --config rule.yaml\n\n# Run tests\nsemgrep --test --config rule.yaml test-file\n```\n\n**Checkpoint**: Output MUST show `All tests passed`.\n\nFor taint rule debugging:\n```bash\nsemgrep --dataflow-traces -f rule.yaml test-file\n```\n\nSee [workflow.md]({baseDir}\u002Freferences\u002Fworkflow.md) for detailed workflow and troubleshooting.\n\n## Quick Reference\n\n| Task | Command |\n|------|---------|\n| Run tests | `semgrep --test --config rule.yaml test-file` |\n| Validate YAML | `semgrep --validate --config rule.yaml` |\n| Dump AST | `semgrep --dump-ast -l \u003Clang> \u003Cfile>` |\n| Debug taint flow | `semgrep --dataflow-traces -f rule.yaml file` |\n\n\n## Key Differences from Rule Creation\n\n| Aspect | semgrep-rule-creator | This skill |\n|--------|---------------------|------------|\n| Input | Bug pattern description | Existing rule + target languages |\n| Output | Single rule+test | Multiple rule+test directories |\n| Workflow | Single creation cycle | Independent cycle per language |\n| Phase 1 | Problem analysis | Applicability analysis per language |\n| Library research | Always relevant | Optional (when original uses libraries) |\n\n## Documentation\n\n**REQUIRED**: Before porting rules, read relevant Semgrep documentation:\n\n- [Rule Syntax](https:\u002F\u002Fsemgrep.dev\u002Fdocs\u002Fwriting-rules\u002Frule-syntax) - YAML structure and operators\n- [Pattern Syntax](https:\u002F\u002Fsemgrep.dev\u002Fdocs\u002Fwriting-rules\u002Fpattern-syntax) - Pattern matching and metavariables\n- [Pattern Examples](https:\u002F\u002Fsemgrep.dev\u002Fdocs\u002Fwriting-rules\u002Fpattern-examples) - Per-language pattern references\n- [Testing Rules](https:\u002F\u002Fsemgrep.dev\u002Fdocs\u002Fwriting-rules\u002Ftesting-rules) - Testing annotations\n- [Trail of Bits Testing Handbook](https:\u002F\u002Fappsec.guide\u002Fdocs\u002Fstatic-analysis\u002Fsemgrep\u002Fadvanced\u002F) - Advanced patterns\n\n## Next Steps\n\n- For applicability analysis guidance, see [applicability-analysis.md]({baseDir}\u002Freferences\u002Fapplicability-analysis.md)\n- For language translation guidance, see [language-syntax-guide.md]({baseDir}\u002Freferences\u002Flanguage-syntax-guide.md)\n- For detailed workflow and examples, see [workflow.md]({baseDir}\u002Freferences\u002Fworkflow.md)\n",{"name":5,"description":7,"allowed-tools":37},[21,38,39,40,41,42,43],"Read","Write","Edit","Glob","Grep","WebFetch","master","c73386b305dec167db7654e0e6feacb462d4f9dc","assets\u002Fskills\u002Fsecurity\u002Fsemgrep-rule-variant-creator",1,"https:\u002F\u002Fgithub.com\u002FAntifragileTech\u002Fantifragile-claude-code","https:\u002F\u002Fgithub.com\u002FAntifragileTech","2026-10-02 14:22:14",{"source":8,"skillName":5,"commands":52,"prompt":62,"zipAvailable":63},[53,56,59],{"tool":54,"command":55},"npx","npx skills add AntifragileTech\u002Fantifragile-claude-code --skill semgrep-rule-variant-creator",{"tool":57,"command":58},"bunx","bunx skills add AntifragileTech\u002Fantifragile-claude-code --skill semgrep-rule-variant-creator",{"tool":60,"command":61},"pnpm","pnpm dlx skills add AntifragileTech\u002Fantifragile-claude-code --skill semgrep-rule-variant-creator","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FAntifragileTech\u002Fantifragile-claude-code\u002Fblob\u002Fmaster\u002Fassets\u002Fskills\u002Fsecurity\u002Fsemgrep-rule-variant-creator\u002FSKILL.md",true,[65,71,77,81,87,91,95],{"path":66,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":69,"sourceHtmlUrl":70},"assets\u002Ftemplate-data.json","ASSET","资产文件",4196,"https:\u002F\u002Fgithub.com\u002FHuuBar\u002Fskill-routing-experiment\u002Fblob\u002Fmain\u002Funified_skills\u002Fvishal\u002Finfographic-generator-p5\u002Fassets\u002Ftemplate-data.json",{"path":72,"resourceType":73,"resourceTypeDesc":74,"sizeBytes":75,"sourceHtmlUrl":76},"assets\u002Ftemplate-infographic.js","SCRIPT","脚本",8598,"https:\u002F\u002Fgithub.com\u002FHuuBar\u002Fskill-routing-experiment\u002Fblob\u002Fmain\u002Funified_skills\u002Fvishal\u002Finfographic-generator-p5\u002Fassets\u002Ftemplate-infographic.js",{"path":78,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":79,"sourceHtmlUrl":80},"assets\u002Ftemplate-main.html",572,"https:\u002F\u002Fgithub.com\u002FHuuBar\u002Fskill-routing-experiment\u002Fblob\u002Fmain\u002Funified_skills\u002Fvishal\u002Finfographic-generator-p5\u002Fassets\u002Ftemplate-main.html",{"path":82,"resourceType":83,"resourceTypeDesc":84,"sizeBytes":85,"sourceHtmlUrl":86},"references\u002Fapplicability-analysis.md","REFERENCE","参考文档",7520,"https:\u002F\u002Fgithub.com\u002FAntifragileTech\u002Fantifragile-claude-code\u002Fblob\u002Fmaster\u002Fassets\u002Fskills\u002Fsecurity\u002Fsemgrep-rule-variant-creator\u002Freferences\u002Fapplicability-analysis.md",{"path":88,"resourceType":83,"resourceTypeDesc":84,"sizeBytes":89,"sourceHtmlUrl":90},"references\u002Flanguage-syntax-guide.md",7509,"https:\u002F\u002Fgithub.com\u002FAntifragileTech\u002Fantifragile-claude-code\u002Fblob\u002Fmaster\u002Fassets\u002Fskills\u002Fsecurity\u002Fsemgrep-rule-variant-creator\u002Freferences\u002Flanguage-syntax-guide.md",{"path":92,"resourceType":83,"resourceTypeDesc":84,"sizeBytes":93,"sourceHtmlUrl":94},"references\u002Fvis-network-parameters.md",12384,"https:\u002F\u002Fgithub.com\u002FHuuBar\u002Fskill-routing-experiment\u002Fblob\u002Fmain\u002Funified_skills\u002Fvishal\u002Finfographic-generator-p5\u002Freferences\u002Fvis-network-parameters.md",{"path":96,"resourceType":83,"resourceTypeDesc":84,"sizeBytes":97,"sourceHtmlUrl":98},"references\u002Fworkflow.md",13870,"https:\u002F\u002Fgithub.com\u002FAntifragileTech\u002Fantifragile-claude-code\u002Fblob\u002Fmaster\u002Fassets\u002Fskills\u002Fsecurity\u002Fsemgrep-rule-variant-creator\u002Freferences\u002Fworkflow.md",[100,125,140,152,165,178],{"skillNo":101,"name":102,"nameZh":6,"description":103,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":104,"categories":105,"keywords":119,"publishedAt":32},"01M6DT9Q6VYA615SCXR757TZZ7","writing-skills","Use when creating new skills, editing existing skills, or verifying skills work before deployment","https:\u002F\u002Fgithub.com\u002FAntifragileTech\u002Fantifragile-claude-code\u002Fblob\u002Fmaster\u002Fassets\u002Fskills\u002Fthinking\u002Fwriting-skills\u002FSKILL.md",[106,111,114],{"categoryNo":107,"categoryName":108,"taxonomyType":109,"taxonomyTypeDesc":110},"01JBSEEDCAT000000000000008","测试与质量","SCENARIO","使用场景",{"categoryNo":112,"categoryName":113,"taxonomyType":109,"taxonomyTypeDesc":110},"01JBSEEDCAT000000000000018","写作与文案",{"categoryNo":115,"categoryName":116,"taxonomyType":117,"taxonomyTypeDesc":118},"01JBSEEDCAT000000000000036","内容创作者","PROFESSION","适用职业",[120,121,28,122,123,124],"writing skills","writing","editing","work","deployment",{"skillNo":126,"name":127,"nameZh":6,"description":128,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":129,"categories":130,"keywords":133,"publishedAt":32},"01M6DT9GFHDNY90P41WGAE1TV0","writing-plans","Use when you have a spec or requirements for a multi-step task, before touching code","https:\u002F\u002Fgithub.com\u002FAntifragileTech\u002Fantifragile-claude-code\u002Fblob\u002Fmaster\u002Fassets\u002Fskills\u002Fthinking\u002Fwriting-plans\u002FSKILL.md",[131,132],{"categoryNo":112,"categoryName":113,"taxonomyType":109,"taxonomyTypeDesc":110},{"categoryNo":115,"categoryName":116,"taxonomyType":117,"taxonomyTypeDesc":118},[134,135,121,136,137,28,138,139],"plans","writing plans","requirements","task","code","spec",{"skillNo":141,"name":142,"nameZh":6,"description":143,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":144,"categories":145,"keywords":148,"publishedAt":32},"01M6DT9C6PFGD86WS3HY7YE3XG","docs:write-concisely","Apply writing rules to any documentation that humans will read. Makes your writing clearer, stronger, and more professional.","https:\u002F\u002Fgithub.com\u002FAntifragileTech\u002Fantifragile-claude-code\u002Fblob\u002Fmaster\u002Fassets\u002Fskills\u002Fthinking\u002Fwrite-concisely\u002FSKILL.md",[146,147],{"categoryNo":112,"categoryName":113,"taxonomyType":109,"taxonomyTypeDesc":110},{"categoryNo":115,"categoryName":116,"taxonomyType":117,"taxonomyTypeDesc":118},[149,25,150,24,22,151,121],"docs:write concisely","docs","documentation",{"skillNo":153,"name":154,"nameZh":6,"description":155,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":156,"categories":157,"keywords":158,"publishedAt":32},"01M6DT98AWQ27P0N1CG97WAG66","kaizen:why","Iterative Five Whys root cause analysis drilling from symptoms to fundamentals","https:\u002F\u002Fgithub.com\u002FAntifragileTech\u002Fantifragile-claude-code\u002Fblob\u002Fmaster\u002Fassets\u002Fskills\u002Fthinking\u002Fwhy\u002FSKILL.md",[],[154,159,160,161,162,163,164],"why","kaizen","issue","five whys","analysis","root cause analysis",{"skillNo":166,"name":167,"nameZh":6,"description":168,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":169,"categories":170,"keywords":171,"publishedAt":32},"01M6DT93EH25NAX19R3WGE1P53","verification-loop","A comprehensive verification system for Claude Code sessions.","https:\u002F\u002Fgithub.com\u002FAntifragileTech\u002Fantifragile-claude-code\u002Fblob\u002Fmaster\u002Fassets\u002Fskills\u002Fthinking\u002Fverification-loop\u002FSKILL.md",[],[172,173,174,175,138,176,177],"verification loop","verification","loop","sessions","claude code sessions","system",{"skillNo":179,"name":180,"nameZh":6,"description":181,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":182,"categories":183,"keywords":184,"publishedAt":32},"01M6DT90GW7Z7VCN98P9DVYSNC","verification-before-completion","Use when about to claim work is complete, fixed, or passing, before committing or creating PRs - requires running verification commands and confirming output before making any success claims; evidence before assertions always","https:\u002F\u002Fgithub.com\u002FAntifragileTech\u002Fantifragile-claude-code\u002Fblob\u002Fmaster\u002Fassets\u002Fskills\u002Fthinking\u002Fverification-before-completion\u002FSKILL.md",[],[185,173,186,123,28,187,188,189],"verification before completion","commands","evidence","claim","complete"]