[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6DQDRD9NET60K5038C9D2KB":3,"skill-same:01M6DQDRD9NET60K5038C9D2KB":122},{"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":38,"linkOnly":39,"markdownContent":40,"markdownBody":41,"frontMatter":42,"refName":43,"commitSha":44,"skillDirectory":45,"forksCount":46,"repositoryHtmlUrl":47,"repositoryHomepageUrl":6,"ownerHtmlUrl":48,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":49,"install":50,"resources":63},"01M6DQDRD9NET60K5038C9D2KB","andrew-kane-gem-writer",null,"This skill should be used when writing Ruby gems following Andrew Kane's proven patterns and philosophy. It applies when creating new Ruby gems, refactoring existing gems, designing gem APIs, or when clean, minimal, production-ready Ruby library code is needed. Triggers on requests like \"create a gem\", \"write a Ruby library\", \"design a gem API\", or mentions of Andrew Kane's style.","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\u002Fdev\u002Fandrew-kane-gem-writer\u002FSKILL.md",[],[18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37],"gem","writer","andrew kane gem writer","write","style","triggers","philosophy","patterns","clean","minimal","ready","design","refactoring","ruby","api","Production","library","code","create","writing","2026-11-10 10:12:30",false,"---\nname: andrew-kane-gem-writer\ndescription: This skill should be used when writing Ruby gems following Andrew Kane's proven patterns and philosophy. It applies when creating new Ruby gems, refactoring existing gems, designing gem APIs, or when clean, minimal, production-ready Ruby library code is needed. Triggers on requests like \"create a gem\", \"write a Ruby library\", \"design a gem API\", or mentions of Andrew Kane's style.\n---\n\n# Andrew Kane Gem Writer\n\nWrite Ruby gems following Andrew Kane's battle-tested patterns from 100+ gems with 374M+ downloads (Searchkick, PgHero, Chartkick, Strong Migrations, Lockbox, Ahoy, Blazer, Groupdate, Neighbor, Blind Index).\n\n## Core Philosophy\n\n**Simplicity over cleverness.** Zero or minimal dependencies. Explicit code over metaprogramming. Rails integration without Rails coupling. Every pattern serves production use cases.\n\n## Entry Point Structure\n\nEvery gem follows this exact pattern in `lib\u002Fgemname.rb`:\n\n```ruby\n# 1. Dependencies (stdlib preferred)\nrequire \"forwardable\"\n\n# 2. Internal modules\nrequire_relative \"gemname\u002Fmodel\"\nrequire_relative \"gemname\u002Fversion\"\n\n# 3. Conditional Rails (CRITICAL - never require Rails directly)\nrequire_relative \"gemname\u002Frailtie\" if defined?(Rails)\n\n# 4. Module with config and errors\nmodule GemName\n  class Error \u003C StandardError; end\n  class InvalidConfigError \u003C Error; end\n\n  class \u003C\u003C self\n    attr_accessor :timeout, :logger\n    attr_writer :client\n  end\n\n  self.timeout = 10  # Defaults set immediately\nend\n```\n\n## Class Macro DSL Pattern\n\nThe signature Kane pattern—single method call configures everything:\n\n```ruby\n# Usage\nclass Product \u003C ApplicationRecord\n  searchkick word_start: [:name]\nend\n\n# Implementation\nmodule GemName\n  module Model\n    def gemname(**options)\n      unknown = options.keys - KNOWN_KEYWORDS\n      raise ArgumentError, \"unknown keywords: #{unknown.join(\", \")}\" if unknown.any?\n\n      mod = Module.new\n      mod.module_eval do\n        define_method :some_method do\n          # implementation\n        end unless method_defined?(:some_method)\n      end\n      include mod\n\n      class_eval do\n        cattr_reader :gemname_options, instance_reader: false\n        class_variable_set :@@gemname_options, options.dup\n      end\n    end\n  end\nend\n```\n\n## Rails Integration\n\n**Always use `ActiveSupport.on_load`—never require Rails gems directly:**\n\n```ruby\n# WRONG\nrequire \"active_record\"\nActiveRecord::Base.include(MyGem::Model)\n\n# CORRECT\nActiveSupport.on_load(:active_record) do\n  extend GemName::Model\nend\n\n# Use prepend for behavior modification\nActiveSupport.on_load(:active_record) do\n  ActiveRecord::Migration.prepend(GemName::Migration)\nend\n```\n\n## Configuration Pattern\n\nUse `class \u003C\u003C self` with `attr_accessor`, not Configuration objects:\n\n```ruby\nmodule GemName\n  class \u003C\u003C self\n    attr_accessor :timeout, :logger\n    attr_writer :master_key\n  end\n\n  def self.master_key\n    @master_key ||= ENV[\"GEMNAME_MASTER_KEY\"]\n  end\n\n  self.timeout = 10\n  self.logger = nil\nend\n```\n\n## Error Handling\n\nSimple hierarchy with informative messages:\n\n```ruby\nmodule GemName\n  class Error \u003C StandardError; end\n  class ConfigError \u003C Error; end\n  class ValidationError \u003C Error; end\nend\n\n# Validate early with ArgumentError\ndef initialize(key:)\n  raise ArgumentError, \"Key must be 32 bytes\" unless key&.bytesize == 32\nend\n```\n\n## Testing (Minitest Only)\n\n```ruby\n# test\u002Ftest_helper.rb\nrequire \"bundler\u002Fsetup\"\nBundler.require(:default)\nrequire \"minitest\u002Fautorun\"\nrequire \"minitest\u002Fpride\"\n\n# test\u002Fmodel_test.rb\nclass ModelTest \u003C Minitest::Test\n  def test_basic_functionality\n    assert_equal expected, actual\n  end\nend\n```\n\n## Gemspec Pattern\n\nZero runtime dependencies when possible:\n\n```ruby\nGem::Specification.new do |spec|\n  spec.name = \"gemname\"\n  spec.version = GemName::VERSION\n  spec.required_ruby_version = \">= 3.1\"\n  spec.files = Dir[\"*.{md,txt}\", \"{lib}\u002F**\u002F*\"]\n  spec.require_path = \"lib\"\n  # NO add_dependency lines - dev deps go in Gemfile\nend\n```\n\n## Anti-Patterns to Avoid\n\n- `method_missing` (use `define_method` instead)\n- Configuration objects (use class accessors)\n- `@@class_variables` (use `class \u003C\u003C self`)\n- Requiring Rails gems directly\n- Many runtime dependencies\n- Committing Gemfile.lock in gems\n- RSpec (use Minitest)\n- Heavy DSLs (prefer explicit Ruby)\n\n## Reference Files\n\nFor deeper patterns, see:\n- **[references\u002Fmodule-organization.md](references\u002Fmodule-organization.md)** - Directory layouts, method decomposition\n- **[references\u002Frails-integration.md](references\u002Frails-integration.md)** - Railtie, Engine, on_load patterns\n- **[references\u002Fdatabase-adapters.md](references\u002Fdatabase-adapters.md)** - Multi-database support patterns\n- **[references\u002Ftesting-patterns.md](references\u002Ftesting-patterns.md)** - Multi-version testing, CI setup\n- **[references\u002Fresources.md](references\u002Fresources.md)** - Links to Kane's repos and articles\n","# Andrew Kane Gem Writer\n\nWrite Ruby gems following Andrew Kane's battle-tested patterns from 100+ gems with 374M+ downloads (Searchkick, PgHero, Chartkick, Strong Migrations, Lockbox, Ahoy, Blazer, Groupdate, Neighbor, Blind Index).\n\n## Core Philosophy\n\n**Simplicity over cleverness.** Zero or minimal dependencies. Explicit code over metaprogramming. Rails integration without Rails coupling. Every pattern serves production use cases.\n\n## Entry Point Structure\n\nEvery gem follows this exact pattern in `lib\u002Fgemname.rb`:\n\n```ruby\n# 1. Dependencies (stdlib preferred)\nrequire \"forwardable\"\n\n# 2. Internal modules\nrequire_relative \"gemname\u002Fmodel\"\nrequire_relative \"gemname\u002Fversion\"\n\n# 3. Conditional Rails (CRITICAL - never require Rails directly)\nrequire_relative \"gemname\u002Frailtie\" if defined?(Rails)\n\n# 4. Module with config and errors\nmodule GemName\n  class Error \u003C StandardError; end\n  class InvalidConfigError \u003C Error; end\n\n  class \u003C\u003C self\n    attr_accessor :timeout, :logger\n    attr_writer :client\n  end\n\n  self.timeout = 10  # Defaults set immediately\nend\n```\n\n## Class Macro DSL Pattern\n\nThe signature Kane pattern—single method call configures everything:\n\n```ruby\n# Usage\nclass Product \u003C ApplicationRecord\n  searchkick word_start: [:name]\nend\n\n# Implementation\nmodule GemName\n  module Model\n    def gemname(**options)\n      unknown = options.keys - KNOWN_KEYWORDS\n      raise ArgumentError, \"unknown keywords: #{unknown.join(\", \")}\" if unknown.any?\n\n      mod = Module.new\n      mod.module_eval do\n        define_method :some_method do\n          # implementation\n        end unless method_defined?(:some_method)\n      end\n      include mod\n\n      class_eval do\n        cattr_reader :gemname_options, instance_reader: false\n        class_variable_set :@@gemname_options, options.dup\n      end\n    end\n  end\nend\n```\n\n## Rails Integration\n\n**Always use `ActiveSupport.on_load`—never require Rails gems directly:**\n\n```ruby\n# WRONG\nrequire \"active_record\"\nActiveRecord::Base.include(MyGem::Model)\n\n# CORRECT\nActiveSupport.on_load(:active_record) do\n  extend GemName::Model\nend\n\n# Use prepend for behavior modification\nActiveSupport.on_load(:active_record) do\n  ActiveRecord::Migration.prepend(GemName::Migration)\nend\n```\n\n## Configuration Pattern\n\nUse `class \u003C\u003C self` with `attr_accessor`, not Configuration objects:\n\n```ruby\nmodule GemName\n  class \u003C\u003C self\n    attr_accessor :timeout, :logger\n    attr_writer :master_key\n  end\n\n  def self.master_key\n    @master_key ||= ENV[\"GEMNAME_MASTER_KEY\"]\n  end\n\n  self.timeout = 10\n  self.logger = nil\nend\n```\n\n## Error Handling\n\nSimple hierarchy with informative messages:\n\n```ruby\nmodule GemName\n  class Error \u003C StandardError; end\n  class ConfigError \u003C Error; end\n  class ValidationError \u003C Error; end\nend\n\n# Validate early with ArgumentError\ndef initialize(key:)\n  raise ArgumentError, \"Key must be 32 bytes\" unless key&.bytesize == 32\nend\n```\n\n## Testing (Minitest Only)\n\n```ruby\n# test\u002Ftest_helper.rb\nrequire \"bundler\u002Fsetup\"\nBundler.require(:default)\nrequire \"minitest\u002Fautorun\"\nrequire \"minitest\u002Fpride\"\n\n# test\u002Fmodel_test.rb\nclass ModelTest \u003C Minitest::Test\n  def test_basic_functionality\n    assert_equal expected, actual\n  end\nend\n```\n\n## Gemspec Pattern\n\nZero runtime dependencies when possible:\n\n```ruby\nGem::Specification.new do |spec|\n  spec.name = \"gemname\"\n  spec.version = GemName::VERSION\n  spec.required_ruby_version = \">= 3.1\"\n  spec.files = Dir[\"*.{md,txt}\", \"{lib}\u002F**\u002F*\"]\n  spec.require_path = \"lib\"\n  # NO add_dependency lines - dev deps go in Gemfile\nend\n```\n\n## Anti-Patterns to Avoid\n\n- `method_missing` (use `define_method` instead)\n- Configuration objects (use class accessors)\n- `@@class_variables` (use `class \u003C\u003C self`)\n- Requiring Rails gems directly\n- Many runtime dependencies\n- Committing Gemfile.lock in gems\n- RSpec (use Minitest)\n- Heavy DSLs (prefer explicit Ruby)\n\n## Reference Files\n\nFor deeper patterns, see:\n- **[references\u002Fmodule-organization.md](references\u002Fmodule-organization.md)** - Directory layouts, method decomposition\n- **[references\u002Frails-integration.md](references\u002Frails-integration.md)** - Railtie, Engine, on_load patterns\n- **[references\u002Fdatabase-adapters.md](references\u002Fdatabase-adapters.md)** - Multi-database support patterns\n- **[references\u002Ftesting-patterns.md](references\u002Ftesting-patterns.md)** - Multi-version testing, CI setup\n- **[references\u002Fresources.md](references\u002Fresources.md)** - Links to Kane's repos and articles\n",{"name":5,"description":7},"master","c73386b305dec167db7654e0e6feacb462d4f9dc","assets\u002Fskills\u002Fdev\u002Fandrew-kane-gem-writer",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":51,"prompt":61,"zipAvailable":62},[52,55,58],{"tool":53,"command":54},"npx","npx skills add AntifragileTech\u002Fantifragile-claude-code --skill andrew-kane-gem-writer",{"tool":56,"command":57},"bunx","bunx skills add AntifragileTech\u002Fantifragile-claude-code --skill andrew-kane-gem-writer",{"tool":59,"command":60},"pnpm","pnpm dlx skills add AntifragileTech\u002Fantifragile-claude-code --skill andrew-kane-gem-writer","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FAntifragileTech\u002Fantifragile-claude-code\u002Fblob\u002Fmaster\u002Fassets\u002Fskills\u002Fdev\u002Fandrew-kane-gem-writer\u002FSKILL.md",true,[64,70,74,78,82,86,90,96,102,106,110,114,118],{"path":65,"resourceType":66,"resourceTypeDesc":67,"sizeBytes":68,"sourceHtmlUrl":69},"commands\u002Fbare.mjs","SCRIPT","脚本",77,"https:\u002F\u002Fgithub.com\u002Fmirror-mind-ai\u002Fmirror\u002Fblob\u002Fmain\u002Fts\u002Ftest\u002Ffixtures\u002Fext-dispatch\u002Ftools\u002Fcommands\u002Fbare.mjs",{"path":71,"resourceType":66,"resourceTypeDesc":67,"sizeBytes":72,"sourceHtmlUrl":73},"commands\u002Fecho.mjs",247,"https:\u002F\u002Fgithub.com\u002Fmirror-mind-ai\u002Fmirror\u002Fblob\u002Fmain\u002Fts\u002Ftest\u002Ffixtures\u002Fext-dispatch\u002Ftools\u002Fcommands\u002Fecho.mjs",{"path":75,"resourceType":66,"resourceTypeDesc":67,"sizeBytes":76,"sourceHtmlUrl":77},"commands\u002Ffail.mjs",126,"https:\u002F\u002Fgithub.com\u002Fmirror-mind-ai\u002Fmirror\u002Fblob\u002Fmain\u002Fts\u002Ftest\u002Ffixtures\u002Fext-dispatch\u002Ftools\u002Fcommands\u002Ffail.mjs",{"path":79,"resourceType":66,"resourceTypeDesc":67,"sizeBytes":80,"sourceHtmlUrl":81},"commands\u002Fshell.sh",251,"https:\u002F\u002Fgithub.com\u002Fmirror-mind-ai\u002Fmirror\u002Fblob\u002Fmain\u002Fts\u002Ftest\u002Ffixtures\u002Fext-dispatch\u002Ftools\u002Fcommands\u002Fshell.sh",{"path":83,"resourceType":66,"resourceTypeDesc":67,"sizeBytes":84,"sourceHtmlUrl":85},"commands\u002Fstreams.mjs",151,"https:\u002F\u002Fgithub.com\u002Fmirror-mind-ai\u002Fmirror\u002Fblob\u002Fmain\u002Fts\u002Ftest\u002Ffixtures\u002Fext-dispatch\u002Ftools\u002Fcommands\u002Fstreams.mjs",{"path":87,"resourceType":66,"resourceTypeDesc":67,"sizeBytes":88,"sourceHtmlUrl":89},"commands\u002Fwrite.mjs",539,"https:\u002F\u002Fgithub.com\u002Fmirror-mind-ai\u002Fmirror\u002Fblob\u002Fmain\u002Fts\u002Ftest\u002Ffixtures\u002Fext-dispatch\u002Ftools\u002Fcommands\u002Fwrite.mjs",{"path":91,"resourceType":92,"resourceTypeDesc":93,"sizeBytes":94,"sourceHtmlUrl":95},"migrations\u002F001_init.sql","OTHER","其他",320,"https:\u002F\u002Fgithub.com\u002Fmirror-mind-ai\u002Fmirror\u002Fblob\u002Fmain\u002Fts\u002Ftest\u002Ffixtures\u002Fext-dispatch\u002Ftools\u002Fmigrations\u002F001_init.sql",{"path":97,"resourceType":98,"resourceTypeDesc":99,"sizeBytes":100,"sourceHtmlUrl":101},"references\u002Fdatabase-adapters.md","REFERENCE","参考文档",4348,"https:\u002F\u002Fgithub.com\u002FAntifragileTech\u002Fantifragile-claude-code\u002Fblob\u002Fmaster\u002Fassets\u002Fskills\u002Fdev\u002Fandrew-kane-gem-writer\u002Freferences\u002Fdatabase-adapters.md",{"path":103,"resourceType":98,"resourceTypeDesc":99,"sizeBytes":104,"sourceHtmlUrl":105},"references\u002Fmodule-organization.md",2250,"https:\u002F\u002Fgithub.com\u002FAntifragileTech\u002Fantifragile-claude-code\u002Fblob\u002Fmaster\u002Fassets\u002Fskills\u002Fdev\u002Fandrew-kane-gem-writer\u002Freferences\u002Fmodule-organization.md",{"path":107,"resourceType":98,"resourceTypeDesc":99,"sizeBytes":108,"sourceHtmlUrl":109},"references\u002Frails-integration.md",3792,"https:\u002F\u002Fgithub.com\u002FAntifragileTech\u002Fantifragile-claude-code\u002Fblob\u002Fmaster\u002Fassets\u002Fskills\u002Fdev\u002Fandrew-kane-gem-writer\u002Freferences\u002Frails-integration.md",{"path":111,"resourceType":98,"resourceTypeDesc":99,"sizeBytes":112,"sourceHtmlUrl":113},"references\u002Fresources.md",5382,"https:\u002F\u002Fgithub.com\u002FAntifragileTech\u002Fantifragile-claude-code\u002Fblob\u002Fmaster\u002Fassets\u002Fskills\u002Fdev\u002Fandrew-kane-gem-writer\u002Freferences\u002Fresources.md",{"path":115,"resourceType":98,"resourceTypeDesc":99,"sizeBytes":116,"sourceHtmlUrl":117},"references\u002Ftesting-patterns.md",4766,"https:\u002F\u002Fgithub.com\u002FAntifragileTech\u002Fantifragile-claude-code\u002Fblob\u002Fmaster\u002Fassets\u002Fskills\u002Fdev\u002Fandrew-kane-gem-writer\u002Freferences\u002Ftesting-patterns.md",{"path":119,"resourceType":98,"resourceTypeDesc":99,"sizeBytes":120,"sourceHtmlUrl":121},"skill.yaml",1951,"https:\u002F\u002Fgithub.com\u002Fmirror-mind-ai\u002Fmirror\u002Fblob\u002Fmain\u002Fts\u002Ftest\u002Ffixtures\u002Fext-dispatch\u002Ftools\u002Fskill.yaml",[123,148,162,176,189,202],{"skillNo":124,"name":125,"nameZh":6,"description":126,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":127,"categories":128,"keywords":142,"publishedAt":38},"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",[129,134,137],{"categoryNo":130,"categoryName":131,"taxonomyType":132,"taxonomyTypeDesc":133},"01JBSEEDCAT000000000000008","测试与质量","SCENARIO","使用场景",{"categoryNo":135,"categoryName":136,"taxonomyType":132,"taxonomyTypeDesc":133},"01JBSEEDCAT000000000000018","写作与文案",{"categoryNo":138,"categoryName":139,"taxonomyType":140,"taxonomyTypeDesc":141},"01JBSEEDCAT000000000000036","内容创作者","PROFESSION","适用职业",[143,37,144,145,146,147],"writing skills","use","editing","work","deployment",{"skillNo":149,"name":150,"nameZh":6,"description":151,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":152,"categories":153,"keywords":156,"publishedAt":38},"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",[154,155],{"categoryNo":135,"categoryName":136,"taxonomyType":132,"taxonomyTypeDesc":133},{"categoryNo":138,"categoryName":139,"taxonomyType":140,"taxonomyTypeDesc":141},[157,158,37,159,160,144,35,161],"plans","writing plans","requirements","task","spec",{"skillNo":163,"name":164,"nameZh":6,"description":165,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":166,"categories":167,"keywords":170,"publishedAt":38},"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",[168,169],{"categoryNo":135,"categoryName":136,"taxonomyType":132,"taxonomyTypeDesc":133},{"categoryNo":138,"categoryName":139,"taxonomyType":140,"taxonomyTypeDesc":141},[171,21,172,173,174,175,37],"docs:write concisely","docs","read","Rules","documentation",{"skillNo":177,"name":178,"nameZh":6,"description":179,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":180,"categories":181,"keywords":182,"publishedAt":38},"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",[],[178,183,184,185,186,187,188],"why","kaizen","issue","five whys","analysis","root cause analysis",{"skillNo":190,"name":191,"nameZh":6,"description":192,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":193,"categories":194,"keywords":195,"publishedAt":38},"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",[],[196,197,198,199,35,200,201],"verification loop","verification","loop","sessions","claude code sessions","system",{"skillNo":203,"name":204,"nameZh":6,"description":205,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":206,"categories":207,"keywords":208,"publishedAt":38},"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",[],[209,197,210,146,144,211,212,213],"verification before completion","commands","evidence","claim","complete"]