[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6BX8JYGF3PB9V2VBDBPBFPQ":3,"skill-same:01M6BX8JYGF3PB9V2VBDBPBFPQ":178},{"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":32,"linkOnly":33,"markdownContent":34,"markdownBody":35,"frontMatter":36,"refName":38,"commitSha":39,"skillDirectory":40,"forksCount":41,"repositoryHtmlUrl":42,"repositoryHomepageUrl":6,"ownerHtmlUrl":43,"ownerBlogUrl":44,"ownerDescription":6,"updatedAt":45,"install":46,"resources":59},"01M6BX8JYGF3PB9V2VBDBPBFPQ","laravel-best-practices",null,"Apply this skill whenever writing, reviewing, or refactoring Laravel PHP code. This includes creating or modifying controllers, models, migrations, form requests, policies, jobs, scheduled commands, service classes, and Eloquent queries. Triggers for N+1 and query performance issues, caching strategies, authorization and security patterns, validation, error handling, queue and job configuration, route definitions, and architectural decisions. Also use for Laravel code reviews and refactoring existing Laravel code to follow best practices. Covers any task involving Laravel backend PHP code patterns.","karuhun-developer\u002Ftemplate-laravel-livewire","karuhun-developer","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F169523822?v=4","01M6BX5G1VG24QZX7D5GJBT0NG","Karuhun Developer","01M6BX5G667YMVBX9YKY797ZKA",6,"MIT","https:\u002F\u002Fgithub.com\u002Fkaruhun-developer\u002Ftemplate-laravel-livewire\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Flaravel-best-practices\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30,31],"best practices","laravel","laravel best practices","writing","security","performance","code","error handling","validation","issues","authorization","refactoring","php","2026-11-10 10:12:30",false,"---\nname: laravel-best-practices\ndescription: \"Apply this skill whenever writing, reviewing, or refactoring Laravel PHP code. This includes creating or modifying controllers, models, migrations, form requests, policies, jobs, scheduled commands, service classes, and Eloquent queries. Triggers for N+1 and query performance issues, caching strategies, authorization and security patterns, validation, error handling, queue and job configuration, route definitions, and architectural decisions. Also use for Laravel code reviews and refactoring existing Laravel code to follow best practices. Covers any task involving Laravel backend PHP code patterns.\"\nlicense: MIT\nmetadata:\n  author: laravel\n---\n\n# Laravel Best Practices\n\nBest practices for Laravel, organized as an index of rule files. Each rule file teaches what to do and why. For exact API syntax, verify with `search-docs`.\n\n## Consistency First\n\nBefore applying any rule, check what the application already does. Laravel offers multiple valid approaches, and the best choice is the one the codebase already uses, even if another pattern would be theoretically better. Inconsistency is worse than a suboptimal pattern.\n\nCheck sibling files, related controllers, models, or tests for established patterns. If one exists, follow it. Don't introduce a second way. These rules are defaults for when no pattern exists yet, not overrides.\n\n## How to Apply\n\n1. Check the changed files, nearby code, project configuration, and relevant tests for established patterns. Deviate only for a correctness or security defect, and call the deviation out.\n2. Map every affected concern to the rule index below. Read each mapped rule file before editing. Skip unrelated rule files.\n3. Make the smallest coherent change. Keep the application's architecture and naming instead of introducing a second pattern for the same job.\n4. Verify version-sensitive Laravel APIs for the installed version with `search-docs`, or inspect the installed framework when it is unavailable.\n5. Run the narrowest relevant tests first, then the project's formatting and static-analysis checks when the change warrants them.\n6. Re-read the diff against every mapped rule before finishing.\n\n## Rule Index\n\nCross-cutting changes often need more than one rule file.\n\n| Concern | Read |\n| --- | --- |\n| Query count, eager loading, indexes, large datasets | [`rules\u002Fdb-performance.md`](rules\u002Fdb-performance.md) |\n| Subqueries, aggregates, complex ordering and query plans | [`rules\u002Fadvanced-queries.md`](rules\u002Fadvanced-queries.md) |\n| Models, relationships, scopes, casts | [`rules\u002Feloquent.md`](rules\u002Feloquent.md) |\n| Authentication, authorization, input safety, secrets, uploads | [`rules\u002Fsecurity.md`](rules\u002Fsecurity.md) |\n| Form Requests and validation rules | [`rules\u002Fvalidation.md`](rules\u002Fvalidation.md) |\n| Controllers, route binding, resources, middleware | [`rules\u002Frouting.md`](rules\u002Frouting.md) |\n| Schema changes, columns, foreign keys, indexes | [`rules\u002Fmigrations.md`](rules\u002Fmigrations.md) |\n| Jobs, retries, uniqueness, batches, Horizon | [`rules\u002Fqueue-jobs.md`](rules\u002Fqueue-jobs.md) |\n| Cache lifetime, invalidation, locks, memoization | [`rules\u002Fcaching.md`](rules\u002Fcaching.md) |\n| Outbound requests, retries, timeouts, fakes | [`rules\u002Fhttp-client.md`](rules\u002Fhttp-client.md) |\n| Exceptions, reporting, rendering, log context | [`rules\u002Ferror-handling.md`](rules\u002Ferror-handling.md) |\n| Events and notifications | [`rules\u002Fevents-notifications.md`](rules\u002Fevents-notifications.md) |\n| Mailables and mail assertions | [`rules\u002Fmail.md`](rules\u002Fmail.md) |\n| Scheduled tasks and overlap protection | [`rules\u002Fscheduling.md`](rules\u002Fscheduling.md) |\n| Collections, lazy iteration, bulk operations | [`rules\u002Fcollections.md`](rules\u002Fcollections.md) |\n| Blade components, attributes, composers | [`rules\u002Fblade-views.md`](rules\u002Fblade-views.md) |\n| Environment values and application configuration | [`rules\u002Fconfig.md`](rules\u002Fconfig.md) |\n| Tests: coverage, factories, fakes, and assertions | the `testing-best-practices` skill |\n| Naming, helpers, file boundaries, PHP style | [`rules\u002Fstyle.md`](rules\u002Fstyle.md) |\n| Actions, services, dependencies, application structure | [`rules\u002Farchitecture.md`](rules\u002Farchitecture.md) |\n\n## Decision Rules\n\n- Prefer framework features and existing application abstractions over new helpers or dependencies.\n- Avoid speculative abstractions. Extract code when it creates a clear domain boundary, removes meaningful duplication, or makes behavior independently testable.\n- Keep database access out of Blade views and prevent hidden N+1 queries across controllers, resources, jobs, and serialization.\n","# Laravel Best Practices\n\nBest practices for Laravel, organized as an index of rule files. Each rule file teaches what to do and why. For exact API syntax, verify with `search-docs`.\n\n## Consistency First\n\nBefore applying any rule, check what the application already does. Laravel offers multiple valid approaches, and the best choice is the one the codebase already uses, even if another pattern would be theoretically better. Inconsistency is worse than a suboptimal pattern.\n\nCheck sibling files, related controllers, models, or tests for established patterns. If one exists, follow it. Don't introduce a second way. These rules are defaults for when no pattern exists yet, not overrides.\n\n## How to Apply\n\n1. Check the changed files, nearby code, project configuration, and relevant tests for established patterns. Deviate only for a correctness or security defect, and call the deviation out.\n2. Map every affected concern to the rule index below. Read each mapped rule file before editing. Skip unrelated rule files.\n3. Make the smallest coherent change. Keep the application's architecture and naming instead of introducing a second pattern for the same job.\n4. Verify version-sensitive Laravel APIs for the installed version with `search-docs`, or inspect the installed framework when it is unavailable.\n5. Run the narrowest relevant tests first, then the project's formatting and static-analysis checks when the change warrants them.\n6. Re-read the diff against every mapped rule before finishing.\n\n## Rule Index\n\nCross-cutting changes often need more than one rule file.\n\n| Concern | Read |\n| --- | --- |\n| Query count, eager loading, indexes, large datasets | [`rules\u002Fdb-performance.md`](rules\u002Fdb-performance.md) |\n| Subqueries, aggregates, complex ordering and query plans | [`rules\u002Fadvanced-queries.md`](rules\u002Fadvanced-queries.md) |\n| Models, relationships, scopes, casts | [`rules\u002Feloquent.md`](rules\u002Feloquent.md) |\n| Authentication, authorization, input safety, secrets, uploads | [`rules\u002Fsecurity.md`](rules\u002Fsecurity.md) |\n| Form Requests and validation rules | [`rules\u002Fvalidation.md`](rules\u002Fvalidation.md) |\n| Controllers, route binding, resources, middleware | [`rules\u002Frouting.md`](rules\u002Frouting.md) |\n| Schema changes, columns, foreign keys, indexes | [`rules\u002Fmigrations.md`](rules\u002Fmigrations.md) |\n| Jobs, retries, uniqueness, batches, Horizon | [`rules\u002Fqueue-jobs.md`](rules\u002Fqueue-jobs.md) |\n| Cache lifetime, invalidation, locks, memoization | [`rules\u002Fcaching.md`](rules\u002Fcaching.md) |\n| Outbound requests, retries, timeouts, fakes | [`rules\u002Fhttp-client.md`](rules\u002Fhttp-client.md) |\n| Exceptions, reporting, rendering, log context | [`rules\u002Ferror-handling.md`](rules\u002Ferror-handling.md) |\n| Events and notifications | [`rules\u002Fevents-notifications.md`](rules\u002Fevents-notifications.md) |\n| Mailables and mail assertions | [`rules\u002Fmail.md`](rules\u002Fmail.md) |\n| Scheduled tasks and overlap protection | [`rules\u002Fscheduling.md`](rules\u002Fscheduling.md) |\n| Collections, lazy iteration, bulk operations | [`rules\u002Fcollections.md`](rules\u002Fcollections.md) |\n| Blade components, attributes, composers | [`rules\u002Fblade-views.md`](rules\u002Fblade-views.md) |\n| Environment values and application configuration | [`rules\u002Fconfig.md`](rules\u002Fconfig.md) |\n| Tests: coverage, factories, fakes, and assertions | the `testing-best-practices` skill |\n| Naming, helpers, file boundaries, PHP style | [`rules\u002Fstyle.md`](rules\u002Fstyle.md) |\n| Actions, services, dependencies, application structure | [`rules\u002Farchitecture.md`](rules\u002Farchitecture.md) |\n\n## Decision Rules\n\n- Prefer framework features and existing application abstractions over new helpers or dependencies.\n- Avoid speculative abstractions. Extract code when it creates a clear domain boundary, removes meaningful duplication, or makes behavior independently testable.\n- Keep database access out of Blade views and prevent hidden N+1 queries across controllers, resources, jobs, and serialization.\n",{"name":5,"license":15,"metadata":37,"description":7},{"author":20},"main","e9bff297aa5ec90d4815836383d540f20dee6717",".claude\u002Fskills\u002Flaravel-best-practices",1,"https:\u002F\u002Fgithub.com\u002Fkaruhun-developer\u002Ftemplate-laravel-livewire","https:\u002F\u002Fgithub.com\u002Fkaruhun-developer","https:\u002F\u002Fkaruhundeveloper.com","2026-11-05 11:36:48",{"source":8,"skillName":5,"commands":47,"prompt":57,"zipAvailable":58},[48,51,54],{"tool":49,"command":50},"npx","npx skills add karuhun-developer\u002Ftemplate-laravel-livewire --skill laravel-best-practices",{"tool":52,"command":53},"bunx","bunx skills add karuhun-developer\u002Ftemplate-laravel-livewire --skill laravel-best-practices",{"tool":55,"command":56},"pnpm","pnpm dlx skills add karuhun-developer\u002Ftemplate-laravel-livewire --skill laravel-best-practices","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fkaruhun-developer\u002Ftemplate-laravel-livewire\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Flaravel-best-practices\u002FSKILL.md",true,[60,66,70,76,80,84,88,92,96,100,104,108,112,116,120,124,128,132,136,140,144,148,154,158,162,166,170,174],{"path":61,"resourceType":62,"resourceTypeDesc":63,"sizeBytes":64,"sourceHtmlUrl":65},"examples\u002Fparametric_box.scad","OTHER","其他",2677,"https:\u002F\u002Fgithub.com\u002FDicklesworthstone\u002Fpi_agent_rust\u002Fblob\u002Fmain\u002Ftests\u002Fext_conformance\u002Fartifacts\u002Fnpm\u002Fmitsupi\u002Fskills\u002Fopenscad\u002Fexamples\u002Fparametric_box.scad",{"path":67,"resourceType":62,"resourceTypeDesc":63,"sizeBytes":68,"sourceHtmlUrl":69},"examples\u002Fphone_stand.scad",3214,"https:\u002F\u002Fgithub.com\u002FDicklesworthstone\u002Fpi_agent_rust\u002Fblob\u002Fmain\u002Ftests\u002Fext_conformance\u002Fartifacts\u002Fnpm\u002Fmitsupi\u002Fskills\u002Fopenscad\u002Fexamples\u002Fphone_stand.scad",{"path":71,"resourceType":72,"resourceTypeDesc":73,"sizeBytes":74,"sourceHtmlUrl":75},"rules\u002Fadvanced-queries.md","REFERENCE","参考文档",4294,"https:\u002F\u002Fgithub.com\u002Fkaruhun-developer\u002Ftemplate-laravel-livewire\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Flaravel-best-practices\u002Frules\u002Fadvanced-queries.md",{"path":77,"resourceType":72,"resourceTypeDesc":73,"sizeBytes":78,"sourceHtmlUrl":79},"rules\u002Farchitecture.md",6426,"https:\u002F\u002Fgithub.com\u002Fkaruhun-developer\u002Ftemplate-laravel-livewire\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Flaravel-best-practices\u002Frules\u002Farchitecture.md",{"path":81,"resourceType":72,"resourceTypeDesc":73,"sizeBytes":82,"sourceHtmlUrl":83},"rules\u002Fblade-views.md",1847,"https:\u002F\u002Fgithub.com\u002Fkaruhun-developer\u002Ftemplate-laravel-livewire\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Flaravel-best-practices\u002Frules\u002Fblade-views.md",{"path":85,"resourceType":72,"resourceTypeDesc":73,"sizeBytes":86,"sourceHtmlUrl":87},"rules\u002Fcaching.md",3384,"https:\u002F\u002Fgithub.com\u002Fkaruhun-developer\u002Ftemplate-laravel-livewire\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Flaravel-best-practices\u002Frules\u002Fcaching.md",{"path":89,"resourceType":72,"resourceTypeDesc":73,"sizeBytes":90,"sourceHtmlUrl":91},"rules\u002Fcollections.md",2434,"https:\u002F\u002Fgithub.com\u002Fkaruhun-developer\u002Ftemplate-laravel-livewire\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Flaravel-best-practices\u002Frules\u002Fcollections.md",{"path":93,"resourceType":72,"resourceTypeDesc":73,"sizeBytes":94,"sourceHtmlUrl":95},"rules\u002Fconfig.md",2023,"https:\u002F\u002Fgithub.com\u002Fkaruhun-developer\u002Ftemplate-laravel-livewire\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Flaravel-best-practices\u002Frules\u002Fconfig.md",{"path":97,"resourceType":72,"resourceTypeDesc":73,"sizeBytes":98,"sourceHtmlUrl":99},"rules\u002Fdb-performance.md",5535,"https:\u002F\u002Fgithub.com\u002Fkaruhun-developer\u002Ftemplate-laravel-livewire\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Flaravel-best-practices\u002Frules\u002Fdb-performance.md",{"path":101,"resourceType":72,"resourceTypeDesc":73,"sizeBytes":102,"sourceHtmlUrl":103},"rules\u002Feloquent.md",4007,"https:\u002F\u002Fgithub.com\u002Fkaruhun-developer\u002Ftemplate-laravel-livewire\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Flaravel-best-practices\u002Frules\u002Feloquent.md",{"path":105,"resourceType":72,"resourceTypeDesc":73,"sizeBytes":106,"sourceHtmlUrl":107},"rules\u002Ferror-handling.md",3137,"https:\u002F\u002Fgithub.com\u002Fkaruhun-developer\u002Ftemplate-laravel-livewire\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Flaravel-best-practices\u002Frules\u002Ferror-handling.md",{"path":109,"resourceType":72,"resourceTypeDesc":73,"sizeBytes":110,"sourceHtmlUrl":111},"rules\u002Fevents-notifications.md",2586,"https:\u002F\u002Fgithub.com\u002Fkaruhun-developer\u002Ftemplate-laravel-livewire\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Flaravel-best-practices\u002Frules\u002Fevents-notifications.md",{"path":113,"resourceType":72,"resourceTypeDesc":73,"sizeBytes":114,"sourceHtmlUrl":115},"rules\u002Fhttp-client.md",4553,"https:\u002F\u002Fgithub.com\u002Fkaruhun-developer\u002Ftemplate-laravel-livewire\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Flaravel-best-practices\u002Frules\u002Fhttp-client.md",{"path":117,"resourceType":72,"resourceTypeDesc":73,"sizeBytes":118,"sourceHtmlUrl":119},"rules\u002Fmail.md",1967,"https:\u002F\u002Fgithub.com\u002Fkaruhun-developer\u002Ftemplate-laravel-livewire\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Flaravel-best-practices\u002Frules\u002Fmail.md",{"path":121,"resourceType":72,"resourceTypeDesc":73,"sizeBytes":122,"sourceHtmlUrl":123},"rules\u002Fmigrations.md",3495,"https:\u002F\u002Fgithub.com\u002Fkaruhun-developer\u002Ftemplate-laravel-livewire\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Flaravel-best-practices\u002Frules\u002Fmigrations.md",{"path":125,"resourceType":72,"resourceTypeDesc":73,"sizeBytes":126,"sourceHtmlUrl":127},"rules\u002Fqueue-jobs.md",4449,"https:\u002F\u002Fgithub.com\u002Fkaruhun-developer\u002Ftemplate-laravel-livewire\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Flaravel-best-practices\u002Frules\u002Fqueue-jobs.md",{"path":129,"resourceType":72,"resourceTypeDesc":73,"sizeBytes":130,"sourceHtmlUrl":131},"rules\u002Frouting.md",3831,"https:\u002F\u002Fgithub.com\u002Fkaruhun-developer\u002Ftemplate-laravel-livewire\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Flaravel-best-practices\u002Frules\u002Frouting.md",{"path":133,"resourceType":72,"resourceTypeDesc":73,"sizeBytes":134,"sourceHtmlUrl":135},"rules\u002Fscheduling.md",2722,"https:\u002F\u002Fgithub.com\u002Fkaruhun-developer\u002Ftemplate-laravel-livewire\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Flaravel-best-practices\u002Frules\u002Fscheduling.md",{"path":137,"resourceType":72,"resourceTypeDesc":73,"sizeBytes":138,"sourceHtmlUrl":139},"rules\u002Fsecurity.md",5839,"https:\u002F\u002Fgithub.com\u002Fkaruhun-developer\u002Ftemplate-laravel-livewire\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Flaravel-best-practices\u002Frules\u002Fsecurity.md",{"path":141,"resourceType":72,"resourceTypeDesc":73,"sizeBytes":142,"sourceHtmlUrl":143},"rules\u002Fstyle.md",4380,"https:\u002F\u002Fgithub.com\u002Fkaruhun-developer\u002Ftemplate-laravel-livewire\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Flaravel-best-practices\u002Frules\u002Fstyle.md",{"path":145,"resourceType":72,"resourceTypeDesc":73,"sizeBytes":146,"sourceHtmlUrl":147},"rules\u002Fvalidation.md",2977,"https:\u002F\u002Fgithub.com\u002Fkaruhun-developer\u002Ftemplate-laravel-livewire\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Flaravel-best-practices\u002Frules\u002Fvalidation.md",{"path":149,"resourceType":150,"resourceTypeDesc":151,"sizeBytes":152,"sourceHtmlUrl":153},"tools\u002Fcommon.sh","SCRIPT","脚本",1136,"https:\u002F\u002Fgithub.com\u002FDicklesworthstone\u002Fpi_agent_rust\u002Fblob\u002Fmain\u002Ftests\u002Fext_conformance\u002Fartifacts\u002Fnpm\u002Fmitsupi\u002Fskills\u002Fopenscad\u002Ftools\u002Fcommon.sh",{"path":155,"resourceType":150,"resourceTypeDesc":151,"sizeBytes":156,"sourceHtmlUrl":157},"tools\u002Fexport-stl.sh",1083,"https:\u002F\u002Fgithub.com\u002FDicklesworthstone\u002Fpi_agent_rust\u002Fblob\u002Fmain\u002Ftests\u002Fext_conformance\u002Fartifacts\u002Fnpm\u002Fmitsupi\u002Fskills\u002Fopenscad\u002Ftools\u002Fexport-stl.sh",{"path":159,"resourceType":150,"resourceTypeDesc":151,"sizeBytes":160,"sourceHtmlUrl":161},"tools\u002Fextract-params.sh",4392,"https:\u002F\u002Fgithub.com\u002FDicklesworthstone\u002Fpi_agent_rust\u002Fblob\u002Fmain\u002Ftests\u002Fext_conformance\u002Fartifacts\u002Fnpm\u002Fmitsupi\u002Fskills\u002Fopenscad\u002Ftools\u002Fextract-params.sh",{"path":163,"resourceType":150,"resourceTypeDesc":151,"sizeBytes":164,"sourceHtmlUrl":165},"tools\u002Fmulti-preview.sh",1450,"https:\u002F\u002Fgithub.com\u002FDicklesworthstone\u002Fpi_agent_rust\u002Fblob\u002Fmain\u002Ftests\u002Fext_conformance\u002Fartifacts\u002Fnpm\u002Fmitsupi\u002Fskills\u002Fopenscad\u002Ftools\u002Fmulti-preview.sh",{"path":167,"resourceType":150,"resourceTypeDesc":151,"sizeBytes":168,"sourceHtmlUrl":169},"tools\u002Fpreview.sh",1615,"https:\u002F\u002Fgithub.com\u002FDicklesworthstone\u002Fpi_agent_rust\u002Fblob\u002Fmain\u002Ftests\u002Fext_conformance\u002Fartifacts\u002Fnpm\u002Fmitsupi\u002Fskills\u002Fopenscad\u002Ftools\u002Fpreview.sh",{"path":171,"resourceType":150,"resourceTypeDesc":151,"sizeBytes":172,"sourceHtmlUrl":173},"tools\u002Frender-with-params.sh",2190,"https:\u002F\u002Fgithub.com\u002FDicklesworthstone\u002Fpi_agent_rust\u002Fblob\u002Fmain\u002Ftests\u002Fext_conformance\u002Fartifacts\u002Fnpm\u002Fmitsupi\u002Fskills\u002Fopenscad\u002Ftools\u002Frender-with-params.sh",{"path":175,"resourceType":150,"resourceTypeDesc":151,"sizeBytes":176,"sourceHtmlUrl":177},"tools\u002Fvalidate.sh",954,"https:\u002F\u002Fgithub.com\u002FDicklesworthstone\u002Fpi_agent_rust\u002Fblob\u002Fmain\u002Ftests\u002Fext_conformance\u002Fartifacts\u002Fnpm\u002Fmitsupi\u002Fskills\u002Fopenscad\u002Ftools\u002Fvalidate.sh",[179,201,232,244,257,266],{"skillNo":180,"name":181,"nameZh":6,"description":182,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":183,"categories":184,"keywords":190,"publishedAt":32},"01M6BXAN772630D3MJ7GJHJH4A","testing-best-practices","Laravel test design and review. Use when selecting coverage, naming or structuring tests, choosing assertions or test data, isolating dependencies, testing HTTP or security boundaries, improving suite performance, or reviewing test value. Use framework guidance or search-docs for Pest and PHPUnit syntax.","https:\u002F\u002Fgithub.com\u002Fkaruhun-developer\u002Ftemplate-laravel-livewire\u002Fblob\u002Fmain\u002F.github\u002Fskills\u002Ftesting-best-practices\u002FSKILL.md",[185],{"categoryNo":186,"categoryName":187,"taxonomyType":188,"taxonomyTypeDesc":189},"01JBSEEDCAT000000000000008","测试与质量","SCENARIO","使用场景",[191,192,19,20,193,194,195,196,197,198,24,23,199,200],"testing","testing best practices","data","search","docs","framework","http","test","design","review",{"skillNo":202,"name":203,"nameZh":6,"description":204,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":205,"categories":206,"keywords":213,"publishedAt":32},"01M6BXAJ8TFJXYH8XVWXJ5F5ZJ","tailwindcss-development","Always invoke when the user's message includes 'tailwind' in any form. Also invoke for: building responsive grid layouts (multi-column card grids, product grids), flex\u002Fgrid page structures (dashboards with sidebars, fixed topbars, mobile-toggle navs), styling UI components (cards, tables, navbars, pricing sections, forms, inputs, badges), adding dark mode variants, fixing spacing or typography, and Tailwind v3\u002Fv4 work. The core use case: writing or fixing Tailwind utility classes in HTML templates (Blade, JSX, Vue). Skip for backend PHP logic, database queries, API routes, JavaScript with no HTML\u002FCSS component, CSS file audits, build tool configuration, and vanilla CSS.","https:\u002F\u002Fgithub.com\u002Fkaruhun-developer\u002Ftemplate-laravel-livewire\u002Fblob\u002Fmain\u002F.github\u002Fskills\u002Ftailwindcss-development\u002FSKILL.md",[207,210],{"categoryNo":208,"categoryName":209,"taxonomyType":188,"taxonomyTypeDesc":189},"01JBSEEDCAT000000000000009","前端开发",{"categoryNo":211,"categoryName":212,"taxonomyType":188,"taxonomyTypeDesc":189},"01JBSEEDCAT000000000000010","后端与接口",[214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,20,230,22,231],"tailwindcss","development","tailwindcss development","api","javascript","components","component","core","product","database","file","ui","templates","Tailwind","build tool","tool","pricing","css",{"skillNo":233,"name":234,"nameZh":6,"description":235,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":236,"categories":237,"keywords":238,"publishedAt":32},"01M6BXAFCFVQZQTR4V0XQ90Z9G","sluggable-development","Use when making a field on an Eloquent model sluggable, generating the migration for a slug column, switching to self-healing URLs, or resolving a model from its slug in a route. Trigger when the request mentions slugs, permalinks, the spatie\u002Flaravel-sluggable package, the HasSlug or HasTranslatableSlug trait, the #[Sluggable] attribute, SlugOptions, findBySlug, self-healing URLs, or stale slug redirects in a Laravel project. Covers choosing between the attribute and the trait, generating unique slugs, configuring separator\u002Flength\u002Flanguage\u002Fscope\u002Funiqueness, preventing slug overwrites, translatable slugs via spatie\u002Flaravel-translatable, route model binding through the slug column, self-healing route keys, customizing the 308 redirect through the SelfHealing facade, and overriding the default actions via config\u002Fsluggable.php. Do not use for one-off URL-safe strings, signed URLs, or Laravel's built-in Str::slug helper when the result is not stored on a model.","https:\u002F\u002Fgithub.com\u002Fkaruhun-developer\u002Ftemplate-laravel-livewire\u002Fblob\u002Fmain\u002F.github\u002Fskills\u002Fsluggable-development\u002FSKILL.md",[],[239,215,20,240,241,242,243,31],"sluggable development","safe","config","package","actions",{"skillNo":245,"name":246,"nameZh":6,"description":247,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":248,"categories":249,"keywords":250,"publishedAt":32},"01M6BXACFB94RP29K94ZQB37KN","pulse-development","Handles Laravel Pulse setup, configuration, and custom card development. Activates when installing Pulse; configuring the dashboard or authorization gate; setting up recorders and filtering; building custom Livewire cards; optimizing with Redis ingest or sampling; or when the user mentions \u002Fpulse, pulse:check, pulse:work, Pulse::record(), or application monitoring.","https:\u002F\u002Fgithub.com\u002Fkaruhun-developer\u002Ftemplate-laravel-livewire\u002Fblob\u002Fmain\u002F.github\u002Fskills\u002Fpulse-development\u002FSKILL.md",[],[251,215,252,253,254,255,29,20,256],"pulse development","dashboard","setup","monitoring","redis","livewire",{"skillNo":258,"name":259,"nameZh":6,"description":260,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":261,"categories":262,"keywords":263,"publishedAt":32},"01M6BXA9NM9N2HCN4FA0E6W3SC","medialibrary-development","Build and work with spatie\u002Flaravel-medialibrary features including associating files with Eloquent models, defining media collections and conversions, generating responsive images, and retrieving media URLs and paths.","https:\u002F\u002Fgithub.com\u002Fkaruhun-developer\u002Ftemplate-laravel-livewire\u002Fblob\u002Fmain\u002F.github\u002Fskills\u002Fmedialibrary-development\u002FSKILL.md",[],[264,215,265,20],"medialibrary development","Media",{"skillNo":267,"name":268,"nameZh":6,"description":269,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":270,"categories":271,"keywords":273,"publishedAt":32},"01M6BXA6VT29ACMHYG8W2J4ZSB","livewire-development","Use for any task or question involving Livewire. Activate if user mentions Livewire, wire: directives, or Livewire-specific concepts like wire:model, wire:click, wire:sort, or islands, invoke this skill. Covers building new components, debugging reactivity issues, real-time form validation, drag-and-drop, loading states, migrating from Livewire 3 to 4, converting component formats (SFC\u002FMFC\u002Fclass-based), and performance optimization. Do not use for non-Livewire reactive UI (React, Vue, Alpine-only, Inertia.js) or standard Laravel forms without Livewire.","https:\u002F\u002Fgithub.com\u002Fkaruhun-developer\u002Ftemplate-laravel-livewire\u002Fblob\u002Fmain\u002F.github\u002Fskills\u002Flivewire-development\u002FSKILL.md",[272],{"categoryNo":208,"categoryName":209,"taxonomyType":188,"taxonomyTypeDesc":189},[274,256,215,219,275,220,276,27,28,225,277,278,279,280,281,20,24],"livewire development","react","debugging","vue","Optimization","real-time","js","performance optimization"]