[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6QZWAGASWRN0CDB9PAQFHTF":3,"skill-same:01M6QZWAGASWRN0CDB9PAQFHTF":225},{"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":39,"linkOnly":40,"markdownContent":41,"markdownBody":42,"frontMatter":43,"refName":47,"commitSha":48,"skillDirectory":49,"forksCount":50,"repositoryHtmlUrl":51,"repositoryHomepageUrl":52,"ownerHtmlUrl":53,"ownerBlogUrl":54,"ownerDescription":55,"updatedAt":56,"install":57,"resources":70},"01M6QZWAGASWRN0CDB9PAQFHTF","php-best-practices",null,"PHP 8.5+ modern patterns, PSR standards, and SOLID principles. Use when reviewing PHP code, checking type safety, auditing code quality, or ensuring PHP best practices. Triggers on \"review PHP\", \"check PHP code\", \"audit PHP\", or \"PHP best practices\".","VRIL-LABS\u002Fskill-jam","VRIL-LABS","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F272046472?v=4","01M6QR9PNWM28WZYJJASER1RG2","𝗩𝗥𝗜𝗟 𝗟𝗔𝗕𝗦","01M6QR9PT6Q6JDCQ97EQBDX6E4",2,"MIT","https:\u002F\u002Fgithub.com\u002FVRIL-LABS\u002Fskill-jam\u002Fblob\u002Fmain\u002Fskills\u002Fbest-practices\u002Fasyrafhussin-agent-skills-php-best-practices-1.0.2\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38],"best practices","php best practices","php","check","when","principles","type","triggers","patterns","community","standards","use","review","quality","solid principles","Safety","Type Safety","audit","code","code quality","2026-11-10 10:12:30",false,"---\nname: php-best-practices\ndescription: PHP 8.5+ modern patterns, PSR standards, and SOLID principles. Use when reviewing PHP code, checking type safety, auditing code quality, or ensuring PHP best practices. Triggers on \"review PHP\", \"check PHP code\", \"audit PHP\", or \"PHP best practices\".\nlicense: MIT\nmetadata:\n  author: php-community\n  version: \"2.0.0\"\n---\n\n# PHP Best Practices\n\nModern PHP 8.x patterns, PSR standards, type system best practices, and SOLID principles. Contains 45+ rules for writing clean, maintainable PHP code.\n\n## When to Apply\n\nReference these guidelines when:\n- Writing or reviewing PHP code\n- Implementing classes and interfaces\n- Using PHP 8.x modern features\n- Ensuring type safety\n- Following PSR standards\n- Applying design patterns\n\n## Rule Categories by Priority\n\n| Priority | Category | Impact | Prefix |\n|----------|----------|--------|--------|\n| 1 | Type System | CRITICAL | `type-` |\n| 2 | Modern Features | CRITICAL | `modern-` |\n| 3 | PSR Standards | HIGH | `psr-` |\n| 4 | SOLID Principles | HIGH | `solid-` |\n| 5 | Error Handling | HIGH | `error-` |\n| 6 | Performance | MEDIUM | `perf-` |\n| 7 | Security | CRITICAL | `sec-` |\n\n## Quick Reference\n\n### 1. Type System (CRITICAL)\n\n- `type-strict-mode` - Declare strict types\n- `type-return-types` - Always declare return types\n- `type-parameter-types` - Type all parameters\n- `type-property-types` - Type class properties\n- `type-union-types` - Use union types effectively\n- `type-intersection-types` - Use intersection types\n- `type-nullable` - Handle nullable types properly\n- `type-mixed-avoid` - Avoid mixed type when possible\n- `type-void-return` - Use void for no-return methods\n- `type-never-return` - Use never for non-returning functions\n\n### 2. Modern Features (CRITICAL)\n\n- `modern-constructor-promotion` - Use constructor property promotion\n- `modern-readonly-properties` - Use readonly for immutable data\n- `modern-readonly-classes` - Use readonly classes\n- `modern-enums` - Use enums instead of constants\n- `modern-attributes` - Use attributes for metadata\n- `modern-match-expression` - Use match over switch\n- `modern-named-arguments` - Use named arguments for clarity\n- `modern-nullsafe-operator` - Use nullsafe operator (?->)\n- `modern-arrow-functions` - Use arrow functions for simple closures\n- `modern-first-class-callables` - Use first-class callable syntax\n\n### 3. PSR Standards (HIGH)\n\n- `psr-4-autoloading` - Follow PSR-4 autoloading\n- `psr-12-coding-style` - Follow PSR-12 coding style\n- `psr-naming-conventions` - Class and method naming\n- `psr-file-structure` - One class per file\n- `psr-namespace-declaration` - Proper namespace usage\n\n### 4. SOLID Principles (HIGH)\n\n- `solid-single-responsibility` - One reason to change\n- `solid-open-closed` - Open for extension, closed for modification\n- `solid-liskov-substitution` - Subtypes must be substitutable\n- `solid-interface-segregation` - Small, focused interfaces\n- `solid-dependency-inversion` - Depend on abstractions\n\n### 5. Error Handling (HIGH)\n\n- `error-custom-exceptions` - Create specific exceptions\n- `error-exception-hierarchy` - Proper exception inheritance\n- `error-try-catch-specific` - Catch specific exceptions\n- `error-finally-cleanup` - Use finally for cleanup\n- `error-never-suppress` - Don't suppress errors with @\n\n### 6. Performance (MEDIUM)\n\n- `perf-avoid-globals` - Avoid global variables\n- `perf-lazy-loading` - Load resources lazily\n- `perf-array-functions` - Use native array functions\n- `perf-string-functions` - Use native string functions\n- `perf-generators` - Use generators for large datasets\n\n### 7. Security (CRITICAL)\n\n- `sec-input-validation` - Validate all input\n- `sec-output-escaping` - Escape output properly\n- `sec-password-hashing` - Use password_hash\u002Fverify\n- `sec-sql-prepared` - Use prepared statements\n- `sec-file-uploads` - Validate file uploads\n\n## Essential Guidelines\n\nFor detailed examples and explanations, see the rule files:\n\n- [type-strict-mode.md](rules\u002Ftype-strict-mode.md) - Strict types declaration\n- [modern-constructor-promotion.md](rules\u002Fmodern-constructor-promotion.md) - Constructor property promotion\n- [modern-enums.md](rules\u002Fmodern-enums.md) - PHP 8.1+ enums with methods\n- [solid-single-responsibility.md](rules\u002Fsolid-single-responsibility.md) - Single responsibility principle\n\n### Key Patterns (Quick Reference)\n\n```php\n\u003C?php\ndeclare(strict_types=1);\n\n\u002F\u002F Constructor promotion + readonly\nclass User\n{\n    public function __construct(\n        public readonly string $id,\n        private string $email,\n    ) {}\n}\n\n\u002F\u002F Enums with methods\nenum Status: string\n{\n    case Active = 'active';\n    case Inactive = 'inactive';\n\n    public function label(): string\n    {\n        return match($this) {\n            self::Active => 'Active',\n            self::Inactive => 'Inactive',\n        };\n    }\n}\n\n\u002F\u002F Match expression\n$result = match($status) {\n    'pending' => 'Waiting',\n    'active' => 'Running',\n    default => 'Unknown',\n};\n\n\u002F\u002F Nullsafe operator\n$country = $user?->getAddress()?->getCountry();\n\n\u002F\u002F Arrow functions\n$names = array_map(fn(User $u) => $u->name, $users);\n```\n\n## Output Format\n\nWhen auditing code, output findings in this format:\n\n```\nfile:line - [category] Description of issue\n```\n\nExample:\n```\nsrc\u002FServices\u002FUserService.php:15 - [type] Missing return type declaration\nsrc\u002FModels\u002FOrder.php:42 - [modern] Use match expression instead of switch\nsrc\u002FControllers\u002FApiController.php:28 - [solid] Class has multiple responsibilities\n```\n\n## How to Use\n\nRead individual rule files for detailed explanations:\n\n```\nrules\u002Fmodern-constructor-promotion.md\nrules\u002Ftype-strict-mode.md\nrules\u002Fsolid-single-responsibility.md\n```\n","# PHP Best Practices\n\nModern PHP 8.x patterns, PSR standards, type system best practices, and SOLID principles. Contains 45+ rules for writing clean, maintainable PHP code.\n\n## When to Apply\n\nReference these guidelines when:\n- Writing or reviewing PHP code\n- Implementing classes and interfaces\n- Using PHP 8.x modern features\n- Ensuring type safety\n- Following PSR standards\n- Applying design patterns\n\n## Rule Categories by Priority\n\n| Priority | Category | Impact | Prefix |\n|----------|----------|--------|--------|\n| 1 | Type System | CRITICAL | `type-` |\n| 2 | Modern Features | CRITICAL | `modern-` |\n| 3 | PSR Standards | HIGH | `psr-` |\n| 4 | SOLID Principles | HIGH | `solid-` |\n| 5 | Error Handling | HIGH | `error-` |\n| 6 | Performance | MEDIUM | `perf-` |\n| 7 | Security | CRITICAL | `sec-` |\n\n## Quick Reference\n\n### 1. Type System (CRITICAL)\n\n- `type-strict-mode` - Declare strict types\n- `type-return-types` - Always declare return types\n- `type-parameter-types` - Type all parameters\n- `type-property-types` - Type class properties\n- `type-union-types` - Use union types effectively\n- `type-intersection-types` - Use intersection types\n- `type-nullable` - Handle nullable types properly\n- `type-mixed-avoid` - Avoid mixed type when possible\n- `type-void-return` - Use void for no-return methods\n- `type-never-return` - Use never for non-returning functions\n\n### 2. Modern Features (CRITICAL)\n\n- `modern-constructor-promotion` - Use constructor property promotion\n- `modern-readonly-properties` - Use readonly for immutable data\n- `modern-readonly-classes` - Use readonly classes\n- `modern-enums` - Use enums instead of constants\n- `modern-attributes` - Use attributes for metadata\n- `modern-match-expression` - Use match over switch\n- `modern-named-arguments` - Use named arguments for clarity\n- `modern-nullsafe-operator` - Use nullsafe operator (?->)\n- `modern-arrow-functions` - Use arrow functions for simple closures\n- `modern-first-class-callables` - Use first-class callable syntax\n\n### 3. PSR Standards (HIGH)\n\n- `psr-4-autoloading` - Follow PSR-4 autoloading\n- `psr-12-coding-style` - Follow PSR-12 coding style\n- `psr-naming-conventions` - Class and method naming\n- `psr-file-structure` - One class per file\n- `psr-namespace-declaration` - Proper namespace usage\n\n### 4. SOLID Principles (HIGH)\n\n- `solid-single-responsibility` - One reason to change\n- `solid-open-closed` - Open for extension, closed for modification\n- `solid-liskov-substitution` - Subtypes must be substitutable\n- `solid-interface-segregation` - Small, focused interfaces\n- `solid-dependency-inversion` - Depend on abstractions\n\n### 5. Error Handling (HIGH)\n\n- `error-custom-exceptions` - Create specific exceptions\n- `error-exception-hierarchy` - Proper exception inheritance\n- `error-try-catch-specific` - Catch specific exceptions\n- `error-finally-cleanup` - Use finally for cleanup\n- `error-never-suppress` - Don't suppress errors with @\n\n### 6. Performance (MEDIUM)\n\n- `perf-avoid-globals` - Avoid global variables\n- `perf-lazy-loading` - Load resources lazily\n- `perf-array-functions` - Use native array functions\n- `perf-string-functions` - Use native string functions\n- `perf-generators` - Use generators for large datasets\n\n### 7. Security (CRITICAL)\n\n- `sec-input-validation` - Validate all input\n- `sec-output-escaping` - Escape output properly\n- `sec-password-hashing` - Use password_hash\u002Fverify\n- `sec-sql-prepared` - Use prepared statements\n- `sec-file-uploads` - Validate file uploads\n\n## Essential Guidelines\n\nFor detailed examples and explanations, see the rule files:\n\n- [type-strict-mode.md](rules\u002Ftype-strict-mode.md) - Strict types declaration\n- [modern-constructor-promotion.md](rules\u002Fmodern-constructor-promotion.md) - Constructor property promotion\n- [modern-enums.md](rules\u002Fmodern-enums.md) - PHP 8.1+ enums with methods\n- [solid-single-responsibility.md](rules\u002Fsolid-single-responsibility.md) - Single responsibility principle\n\n### Key Patterns (Quick Reference)\n\n```php\n\u003C?php\ndeclare(strict_types=1);\n\n\u002F\u002F Constructor promotion + readonly\nclass User\n{\n    public function __construct(\n        public readonly string $id,\n        private string $email,\n    ) {}\n}\n\n\u002F\u002F Enums with methods\nenum Status: string\n{\n    case Active = 'active';\n    case Inactive = 'inactive';\n\n    public function label(): string\n    {\n        return match($this) {\n            self::Active => 'Active',\n            self::Inactive => 'Inactive',\n        };\n    }\n}\n\n\u002F\u002F Match expression\n$result = match($status) {\n    'pending' => 'Waiting',\n    'active' => 'Running',\n    default => 'Unknown',\n};\n\n\u002F\u002F Nullsafe operator\n$country = $user?->getAddress()?->getCountry();\n\n\u002F\u002F Arrow functions\n$names = array_map(fn(User $u) => $u->name, $users);\n```\n\n## Output Format\n\nWhen auditing code, output findings in this format:\n\n```\nfile:line - [category] Description of issue\n```\n\nExample:\n```\nsrc\u002FServices\u002FUserService.php:15 - [type] Missing return type declaration\nsrc\u002FModels\u002FOrder.php:42 - [modern] Use match expression instead of switch\nsrc\u002FControllers\u002FApiController.php:28 - [solid] Class has multiple responsibilities\n```\n\n## How to Use\n\nRead individual rule files for detailed explanations:\n\n```\nrules\u002Fmodern-constructor-promotion.md\nrules\u002Ftype-strict-mode.md\nrules\u002Fsolid-single-responsibility.md\n```\n",{"name":5,"license":15,"metadata":44,"description":7},{"author":45,"version":46},"php-community","2.0.0","main","5b00ad8b9f0787969474ff5e9ec417bb55f23827","skills\u002Fbest-practices\u002Fasyrafhussin-agent-skills-php-best-practices-1.0.2",0,"https:\u002F\u002Fgithub.com\u002FVRIL-LABS\u002Fskill-jam","https:\u002F\u002Fvril.li","https:\u002F\u002Fgithub.com\u002FVRIL-LABS","vril.li","𝗥𝗲𝘀𝗲𝗮𝗿𝗰𝗵 𝗮𝗻𝗱 𝗗𝗲𝘃𝗲𝗹𝗼𝗽𝗺𝗲𝗻𝘁 𝗖𝗼𝗻𝘀𝗼𝗿𝘁𝗶𝘂𝗺","2026-08-24 09:21:38",{"source":8,"skillName":5,"commands":58,"prompt":68,"zipAvailable":69},[59,62,65],{"tool":60,"command":61},"npx","npx skills add VRIL-LABS\u002Fskill-jam --skill php-best-practices",{"tool":63,"command":64},"bunx","bunx skills add VRIL-LABS\u002Fskill-jam --skill php-best-practices",{"tool":66,"command":67},"pnpm","pnpm dlx skills add VRIL-LABS\u002Fskill-jam --skill php-best-practices","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FVRIL-LABS\u002Fskill-jam\u002Fblob\u002Fmain\u002Fskills\u002Fbest-practices\u002Fasyrafhussin-agent-skills-php-best-practices-1.0.2\u002FSKILL.md",true,[71,77,81,85,89,93,97,101,105,109,113,117,121,125,129,133,137,141,145,149,153,157,161,165,169,173,177,181,185,189,193,197,201,205,209,213,217,221],{"path":72,"resourceType":73,"resourceTypeDesc":74,"sizeBytes":75,"sourceHtmlUrl":76},"AGENTS.md","REFERENCE","参考文档",14254,"https:\u002F\u002Fgithub.com\u002FVRIL-LABS\u002Fskill-jam\u002Fblob\u002Fmain\u002Fskills\u002Fbest-practices\u002Fasyrafhussin-agent-skills-php-best-practices-1.0.2\u002FAGENTS.md",{"path":78,"resourceType":73,"resourceTypeDesc":74,"sizeBytes":79,"sourceHtmlUrl":80},"metadata.json",1063,"https:\u002F\u002Fgithub.com\u002FVRIL-LABS\u002Fskill-jam\u002Fblob\u002Fmain\u002Fskills\u002Fbest-practices\u002Fasyrafhussin-agent-skills-php-best-practices-1.0.2\u002Fmetadata.json",{"path":82,"resourceType":73,"resourceTypeDesc":74,"sizeBytes":83,"sourceHtmlUrl":84},"README.md",1792,"https:\u002F\u002Fgithub.com\u002FVRIL-LABS\u002Fskill-jam\u002Fblob\u002Fmain\u002Fskills\u002Fbest-practices\u002Fasyrafhussin-agent-skills-php-best-practices-1.0.2\u002FREADME.md",{"path":86,"resourceType":73,"resourceTypeDesc":74,"sizeBytes":87,"sourceHtmlUrl":88},"rules\u002F_sections.md",1848,"https:\u002F\u002Fgithub.com\u002FVRIL-LABS\u002Fskill-jam\u002Fblob\u002Fmain\u002Fskills\u002Fbest-practices\u002Fasyrafhussin-agent-skills-php-best-practices-1.0.2\u002Frules\u002F_sections.md",{"path":90,"resourceType":73,"resourceTypeDesc":74,"sizeBytes":91,"sourceHtmlUrl":92},"rules\u002F_template.md",1075,"https:\u002F\u002Fgithub.com\u002FVRIL-LABS\u002Fskill-jam\u002Fblob\u002Fmain\u002Fskills\u002Fbest-practices\u002Fasyrafhussin-agent-skills-php-best-practices-1.0.2\u002Frules\u002F_template.md",{"path":94,"resourceType":73,"resourceTypeDesc":74,"sizeBytes":95,"sourceHtmlUrl":96},"rules\u002Fmodern-arrow-functions.md",3329,"https:\u002F\u002Fgithub.com\u002FVRIL-LABS\u002Fskill-jam\u002Fblob\u002Fmain\u002Fskills\u002Fbest-practices\u002Fasyrafhussin-agent-skills-php-best-practices-1.0.2\u002Frules\u002Fmodern-arrow-functions.md",{"path":98,"resourceType":73,"resourceTypeDesc":74,"sizeBytes":99,"sourceHtmlUrl":100},"rules\u002Fmodern-attributes.md",3974,"https:\u002F\u002Fgithub.com\u002FVRIL-LABS\u002Fskill-jam\u002Fblob\u002Fmain\u002Fskills\u002Fbest-practices\u002Fasyrafhussin-agent-skills-php-best-practices-1.0.2\u002Frules\u002Fmodern-attributes.md",{"path":102,"resourceType":73,"resourceTypeDesc":74,"sizeBytes":103,"sourceHtmlUrl":104},"rules\u002Fmodern-constructor-promotion.md",4064,"https:\u002F\u002Fgithub.com\u002FVRIL-LABS\u002Fskill-jam\u002Fblob\u002Fmain\u002Fskills\u002Fbest-practices\u002Fasyrafhussin-agent-skills-php-best-practices-1.0.2\u002Frules\u002Fmodern-constructor-promotion.md",{"path":106,"resourceType":73,"resourceTypeDesc":74,"sizeBytes":107,"sourceHtmlUrl":108},"rules\u002Fmodern-enums-methods.md",4839,"https:\u002F\u002Fgithub.com\u002FVRIL-LABS\u002Fskill-jam\u002Fblob\u002Fmain\u002Fskills\u002Fbest-practices\u002Fasyrafhussin-agent-skills-php-best-practices-1.0.2\u002Frules\u002Fmodern-enums-methods.md",{"path":110,"resourceType":73,"resourceTypeDesc":74,"sizeBytes":111,"sourceHtmlUrl":112},"rules\u002Fmodern-enums.md",6764,"https:\u002F\u002Fgithub.com\u002FVRIL-LABS\u002Fskill-jam\u002Fblob\u002Fmain\u002Fskills\u002Fbest-practices\u002Fasyrafhussin-agent-skills-php-best-practices-1.0.2\u002Frules\u002Fmodern-enums.md",{"path":114,"resourceType":73,"resourceTypeDesc":74,"sizeBytes":115,"sourceHtmlUrl":116},"rules\u002Fmodern-first-class-callables.md",4611,"https:\u002F\u002Fgithub.com\u002FVRIL-LABS\u002Fskill-jam\u002Fblob\u002Fmain\u002Fskills\u002Fbest-practices\u002Fasyrafhussin-agent-skills-php-best-practices-1.0.2\u002Frules\u002Fmodern-first-class-callables.md",{"path":118,"resourceType":73,"resourceTypeDesc":74,"sizeBytes":119,"sourceHtmlUrl":120},"rules\u002Fmodern-match-expression.md",3806,"https:\u002F\u002Fgithub.com\u002FVRIL-LABS\u002Fskill-jam\u002Fblob\u002Fmain\u002Fskills\u002Fbest-practices\u002Fasyrafhussin-agent-skills-php-best-practices-1.0.2\u002Frules\u002Fmodern-match-expression.md",{"path":122,"resourceType":73,"resourceTypeDesc":74,"sizeBytes":123,"sourceHtmlUrl":124},"rules\u002Fmodern-named-arguments.md",3194,"https:\u002F\u002Fgithub.com\u002FVRIL-LABS\u002Fskill-jam\u002Fblob\u002Fmain\u002Fskills\u002Fbest-practices\u002Fasyrafhussin-agent-skills-php-best-practices-1.0.2\u002Frules\u002Fmodern-named-arguments.md",{"path":126,"resourceType":73,"resourceTypeDesc":74,"sizeBytes":127,"sourceHtmlUrl":128},"rules\u002Fmodern-nullsafe-operator.md",3670,"https:\u002F\u002Fgithub.com\u002FVRIL-LABS\u002Fskill-jam\u002Fblob\u002Fmain\u002Fskills\u002Fbest-practices\u002Fasyrafhussin-agent-skills-php-best-practices-1.0.2\u002Frules\u002Fmodern-nullsafe-operator.md",{"path":130,"resourceType":73,"resourceTypeDesc":74,"sizeBytes":131,"sourceHtmlUrl":132},"rules\u002Fmodern-readonly-classes.md",3401,"https:\u002F\u002Fgithub.com\u002FVRIL-LABS\u002Fskill-jam\u002Fblob\u002Fmain\u002Fskills\u002Fbest-practices\u002Fasyrafhussin-agent-skills-php-best-practices-1.0.2\u002Frules\u002Fmodern-readonly-classes.md",{"path":134,"resourceType":73,"resourceTypeDesc":74,"sizeBytes":135,"sourceHtmlUrl":136},"rules\u002Fmodern-readonly-properties.md",3146,"https:\u002F\u002Fgithub.com\u002FVRIL-LABS\u002Fskill-jam\u002Fblob\u002Fmain\u002Fskills\u002Fbest-practices\u002Fasyrafhussin-agent-skills-php-best-practices-1.0.2\u002Frules\u002Fmodern-readonly-properties.md",{"path":138,"resourceType":73,"resourceTypeDesc":74,"sizeBytes":139,"sourceHtmlUrl":140},"rules\u002Fpsr-12-coding-style.md",4831,"https:\u002F\u002Fgithub.com\u002FVRIL-LABS\u002Fskill-jam\u002Fblob\u002Fmain\u002Fskills\u002Fbest-practices\u002Fasyrafhussin-agent-skills-php-best-practices-1.0.2\u002Frules\u002Fpsr-12-coding-style.md",{"path":142,"resourceType":73,"resourceTypeDesc":74,"sizeBytes":143,"sourceHtmlUrl":144},"rules\u002Fpsr-4-autoloading.md",3086,"https:\u002F\u002Fgithub.com\u002FVRIL-LABS\u002Fskill-jam\u002Fblob\u002Fmain\u002Fskills\u002Fbest-practices\u002Fasyrafhussin-agent-skills-php-best-practices-1.0.2\u002Frules\u002Fpsr-4-autoloading.md",{"path":146,"resourceType":73,"resourceTypeDesc":74,"sizeBytes":147,"sourceHtmlUrl":148},"rules\u002Fpsr-file-structure.md",5170,"https:\u002F\u002Fgithub.com\u002FVRIL-LABS\u002Fskill-jam\u002Fblob\u002Fmain\u002Fskills\u002Fbest-practices\u002Fasyrafhussin-agent-skills-php-best-practices-1.0.2\u002Frules\u002Fpsr-file-structure.md",{"path":150,"resourceType":73,"resourceTypeDesc":74,"sizeBytes":151,"sourceHtmlUrl":152},"rules\u002Fpsr-namespace-usage.md",4995,"https:\u002F\u002Fgithub.com\u002FVRIL-LABS\u002Fskill-jam\u002Fblob\u002Fmain\u002Fskills\u002Fbest-practices\u002Fasyrafhussin-agent-skills-php-best-practices-1.0.2\u002Frules\u002Fpsr-namespace-usage.md",{"path":154,"resourceType":73,"resourceTypeDesc":74,"sizeBytes":155,"sourceHtmlUrl":156},"rules\u002Fpsr-naming-classes.md",3667,"https:\u002F\u002Fgithub.com\u002FVRIL-LABS\u002Fskill-jam\u002Fblob\u002Fmain\u002Fskills\u002Fbest-practices\u002Fasyrafhussin-agent-skills-php-best-practices-1.0.2\u002Frules\u002Fpsr-naming-classes.md",{"path":158,"resourceType":73,"resourceTypeDesc":74,"sizeBytes":159,"sourceHtmlUrl":160},"rules\u002Fpsr-naming-methods.md",5794,"https:\u002F\u002Fgithub.com\u002FVRIL-LABS\u002Fskill-jam\u002Fblob\u002Fmain\u002Fskills\u002Fbest-practices\u002Fasyrafhussin-agent-skills-php-best-practices-1.0.2\u002Frules\u002Fpsr-naming-methods.md",{"path":162,"resourceType":73,"resourceTypeDesc":74,"sizeBytes":163,"sourceHtmlUrl":164},"rules\u002Fsolid-dip.md",7158,"https:\u002F\u002Fgithub.com\u002FVRIL-LABS\u002Fskill-jam\u002Fblob\u002Fmain\u002Fskills\u002Fbest-practices\u002Fasyrafhussin-agent-skills-php-best-practices-1.0.2\u002Frules\u002Fsolid-dip.md",{"path":166,"resourceType":73,"resourceTypeDesc":74,"sizeBytes":167,"sourceHtmlUrl":168},"rules\u002Fsolid-isp.md",6911,"https:\u002F\u002Fgithub.com\u002FVRIL-LABS\u002Fskill-jam\u002Fblob\u002Fmain\u002Fskills\u002Fbest-practices\u002Fasyrafhussin-agent-skills-php-best-practices-1.0.2\u002Frules\u002Fsolid-isp.md",{"path":170,"resourceType":73,"resourceTypeDesc":74,"sizeBytes":171,"sourceHtmlUrl":172},"rules\u002Fsolid-lsp.md",6707,"https:\u002F\u002Fgithub.com\u002FVRIL-LABS\u002Fskill-jam\u002Fblob\u002Fmain\u002Fskills\u002Fbest-practices\u002Fasyrafhussin-agent-skills-php-best-practices-1.0.2\u002Frules\u002Fsolid-lsp.md",{"path":174,"resourceType":73,"resourceTypeDesc":74,"sizeBytes":175,"sourceHtmlUrl":176},"rules\u002Fsolid-ocp.md",6965,"https:\u002F\u002Fgithub.com\u002FVRIL-LABS\u002Fskill-jam\u002Fblob\u002Fmain\u002Fskills\u002Fbest-practices\u002Fasyrafhussin-agent-skills-php-best-practices-1.0.2\u002Frules\u002Fsolid-ocp.md",{"path":178,"resourceType":73,"resourceTypeDesc":74,"sizeBytes":179,"sourceHtmlUrl":180},"rules\u002Fsolid-single-responsibility.md",8881,"https:\u002F\u002Fgithub.com\u002FVRIL-LABS\u002Fskill-jam\u002Fblob\u002Fmain\u002Fskills\u002Fbest-practices\u002Fasyrafhussin-agent-skills-php-best-practices-1.0.2\u002Frules\u002Fsolid-single-responsibility.md",{"path":182,"resourceType":73,"resourceTypeDesc":74,"sizeBytes":183,"sourceHtmlUrl":184},"rules\u002Fsolid-srp.md",6198,"https:\u002F\u002Fgithub.com\u002FVRIL-LABS\u002Fskill-jam\u002Fblob\u002Fmain\u002Fskills\u002Fbest-practices\u002Fasyrafhussin-agent-skills-php-best-practices-1.0.2\u002Frules\u002Fsolid-srp.md",{"path":186,"resourceType":73,"resourceTypeDesc":74,"sizeBytes":187,"sourceHtmlUrl":188},"rules\u002Ftype-intersection-types.md",2744,"https:\u002F\u002Fgithub.com\u002FVRIL-LABS\u002Fskill-jam\u002Fblob\u002Fmain\u002Fskills\u002Fbest-practices\u002Fasyrafhussin-agent-skills-php-best-practices-1.0.2\u002Frules\u002Ftype-intersection-types.md",{"path":190,"resourceType":73,"resourceTypeDesc":74,"sizeBytes":191,"sourceHtmlUrl":192},"rules\u002Ftype-mixed-avoid.md",3100,"https:\u002F\u002Fgithub.com\u002FVRIL-LABS\u002Fskill-jam\u002Fblob\u002Fmain\u002Fskills\u002Fbest-practices\u002Fasyrafhussin-agent-skills-php-best-practices-1.0.2\u002Frules\u002Ftype-mixed-avoid.md",{"path":194,"resourceType":73,"resourceTypeDesc":74,"sizeBytes":195,"sourceHtmlUrl":196},"rules\u002Ftype-nullable-types.md",2600,"https:\u002F\u002Fgithub.com\u002FVRIL-LABS\u002Fskill-jam\u002Fblob\u002Fmain\u002Fskills\u002Fbest-practices\u002Fasyrafhussin-agent-skills-php-best-practices-1.0.2\u002Frules\u002Ftype-nullable-types.md",{"path":198,"resourceType":73,"resourceTypeDesc":74,"sizeBytes":199,"sourceHtmlUrl":200},"rules\u002Ftype-parameter-types.md",1793,"https:\u002F\u002Fgithub.com\u002FVRIL-LABS\u002Fskill-jam\u002Fblob\u002Fmain\u002Fskills\u002Fbest-practices\u002Fasyrafhussin-agent-skills-php-best-practices-1.0.2\u002Frules\u002Ftype-parameter-types.md",{"path":202,"resourceType":73,"resourceTypeDesc":74,"sizeBytes":203,"sourceHtmlUrl":204},"rules\u002Ftype-property-types.md",1987,"https:\u002F\u002Fgithub.com\u002FVRIL-LABS\u002Fskill-jam\u002Fblob\u002Fmain\u002Fskills\u002Fbest-practices\u002Fasyrafhussin-agent-skills-php-best-practices-1.0.2\u002Frules\u002Ftype-property-types.md",{"path":206,"resourceType":73,"resourceTypeDesc":74,"sizeBytes":207,"sourceHtmlUrl":208},"rules\u002Ftype-return-types.md",1855,"https:\u002F\u002Fgithub.com\u002FVRIL-LABS\u002Fskill-jam\u002Fblob\u002Fmain\u002Fskills\u002Fbest-practices\u002Fasyrafhussin-agent-skills-php-best-practices-1.0.2\u002Frules\u002Ftype-return-types.md",{"path":210,"resourceType":73,"resourceTypeDesc":74,"sizeBytes":211,"sourceHtmlUrl":212},"rules\u002Ftype-strict-mode.md",4703,"https:\u002F\u002Fgithub.com\u002FVRIL-LABS\u002Fskill-jam\u002Fblob\u002Fmain\u002Fskills\u002Fbest-practices\u002Fasyrafhussin-agent-skills-php-best-practices-1.0.2\u002Frules\u002Ftype-strict-mode.md",{"path":214,"resourceType":73,"resourceTypeDesc":74,"sizeBytes":215,"sourceHtmlUrl":216},"rules\u002Ftype-strict-types.md",1312,"https:\u002F\u002Fgithub.com\u002FVRIL-LABS\u002Fskill-jam\u002Fblob\u002Fmain\u002Fskills\u002Fbest-practices\u002Fasyrafhussin-agent-skills-php-best-practices-1.0.2\u002Frules\u002Ftype-strict-types.md",{"path":218,"resourceType":73,"resourceTypeDesc":74,"sizeBytes":219,"sourceHtmlUrl":220},"rules\u002Ftype-union-types.md",2080,"https:\u002F\u002Fgithub.com\u002FVRIL-LABS\u002Fskill-jam\u002Fblob\u002Fmain\u002Fskills\u002Fbest-practices\u002Fasyrafhussin-agent-skills-php-best-practices-1.0.2\u002Frules\u002Ftype-union-types.md",{"path":222,"resourceType":73,"resourceTypeDesc":74,"sizeBytes":223,"sourceHtmlUrl":224},"rules\u002Ftype-void-never.md",2960,"https:\u002F\u002Fgithub.com\u002FVRIL-LABS\u002Fskill-jam\u002Fblob\u002Fmain\u002Fskills\u002Fbest-practices\u002Fasyrafhussin-agent-skills-php-best-practices-1.0.2\u002Frules\u002Ftype-void-never.md",[226,253,266,282,319,342],{"skillNo":227,"name":228,"nameZh":6,"description":229,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":230,"categories":231,"keywords":237,"publishedAt":39},"01M6R2CQRG190P09DAHMF8M5QP","three-best-practices","Three.js performance optimization and best practices guidelines. Use when writing, reviewing, or optimizing Three.js code. Triggers on tasks involving 3D scenes, WebGL\u002FWebGPU rendering, geometries, materials, textures, lighting, shaders, or TSL.","https:\u002F\u002Fgithub.com\u002FVRIL-LABS\u002Fskill-jam\u002Fblob\u002Fmain\u002Fskills\u002Fweb-frontend\u002Fneversight-skills_feed-three-best-practices-1.0.2\u002FSKILL.md",[232],{"categoryNo":233,"categoryName":234,"taxonomyType":235,"taxonomyTypeDesc":236},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[19,238,239,240,241,242,243,244,37,245,246,247,30,248,249,250,26,251,23,252],"three","three best practices","writing","performance","webgpu","guidelines","tasks","shaders","Optimization","3D","agent-skills","scenes","lighting","rendering","best practices guidelines",{"skillNo":254,"name":255,"nameZh":6,"description":256,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":257,"categories":258,"keywords":259,"publishedAt":39},"01M6R2BPMDYK9XKWPARY0S5MS3","javascript-best-practices","Modern JavaScript best practices and performance optimization guidelines. Use when writing, reviewing, or refactoring JavaScript code to ensure optimal performance, maintainability, and modern patterns.","https:\u002F\u002Fgithub.com\u002FVRIL-LABS\u002Fskill-jam\u002Fblob\u002Fmain\u002Fskills\u002Fweb-frontend\u002Fneversight-skills_feed-javascript-best-practices-1.0.2\u002FSKILL.md",[],[260,19,261,240,241,243,37,246,262,263,30,27,264,265,23],"javascript","JavaScript Best Practices","refactoring","performance optimization","maintainability","name",{"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":275,"publishedAt":39},"01M6R2B41BN09FYH76BAC5FT7X","css-best-practices","Guidelines for building modern, performant, and accessible CSS using MDN best practices. Use this when styling components, fixing layout shifts, or optimizing CSS performance.","https:\u002F\u002Fgithub.com\u002FVRIL-LABS\u002Fskill-jam\u002Fblob\u002Fmain\u002Fskills\u002Fweb-frontend\u002Fneversight-skills_feed-css-best-practices-1.0.3\u002FSKILL.md",[272],{"categoryNo":273,"categoryName":274,"taxonomyType":235,"taxonomyTypeDesc":236},"01JBSEEDCAT000000000000009","前端开发",[276,19,277,241,278,243,30,279,280,281,23],"css","css best practices","components","styling","layout","for",{"skillNo":283,"name":284,"nameZh":6,"description":285,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":286,"categories":287,"keywords":300,"publishedAt":39},"01M6R2A1CEF123TZCNM1XJ2XQ4","frontend-dev","Full-stack frontend development combining premium UI design, cinematic animations,\nAI-generated media assets, persuasive copywriting, and visual art. Builds complete,\nvisually striking web pages with real media, advanced motion, and compelling copy.\nUse when: building landing pages, marketing sites, product pages, dashboards,\ngenerating media assets (image\u002Fvideo\u002Faudio\u002Fmusic), writing conversion copy,\ncreating generative art, or implementing cinematic scroll animations.","https:\u002F\u002Fgithub.com\u002FVRIL-LABS\u002Fskill-jam\u002Fblob\u002Fmain\u002Fskills\u002Fweb-frontend\u002Fminimax-ai-skills-frontend-dev-1.0.1\u002FSKILL.md",[288,289,292,295],{"categoryNo":273,"categoryName":274,"taxonomyType":235,"taxonomyTypeDesc":236},{"categoryNo":290,"categoryName":291,"taxonomyType":235,"taxonomyTypeDesc":236},"01JBSEEDCAT000000000000015","视觉设计",{"categoryNo":293,"categoryName":294,"taxonomyType":235,"taxonomyTypeDesc":236},"01JBSEEDCAT000000000000016","图像与多媒体",{"categoryNo":296,"categoryName":297,"taxonomyType":298,"taxonomyTypeDesc":299},"01JBSEEDCAT000000000000032","设计师","PROFESSION","适用职业",[301,302,303,304,240,305,276,306,307,308,309,310,311,312,313,314,315,316,317,318],"frontend","dev","frontend dev","design","image","react","ui","Video","Media","Audio","Tailwind","stack","music","aida","framer motion","implementing","framer","generative",{"skillNo":320,"name":321,"nameZh":6,"description":322,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":323,"categories":324,"keywords":325,"publishedAt":39},"01M6R20VQ98KDX4J37TGE0FNHW","exa-rate-limits","Implement Exa rate limiting, backoff, and idempotency patterns.\nUse when handling rate limit errors, implementing retry logic,\nor optimizing API request throughput for Exa.\nTrigger with phrases like \"exa rate limit\", \"exa throttling\",\n\"exa 429\", \"exa retry\", \"exa backoff\".","https:\u002F\u002Fgithub.com\u002FVRIL-LABS\u002Fskill-jam\u002Fblob\u002Fmain\u002Fskills\u002Fsearch-research\u002Fjeremylongshore-claude-code-plugins-plus-skills-exa-rate-limits-1.0.0\u002FSKILL.md",[],[326,327,328,329,330,331,332,333,334,27,335,336,337,338,339,316,281,340,341,23],"exa","exa rate limits","rate","limits","throttling","api","read","write","edit","io","throughput","retry","errors","limit","rate limit","request",{"skillNo":343,"name":344,"nameZh":6,"description":345,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":346,"categories":347,"keywords":351,"publishedAt":39},"01M6R20FV0TM7ZZTZNG7JQ1A82","exa-deploy-integration","Deploy Exa integrations to Vercel, Fly.io, and Cloud Run platforms.\nUse when deploying Exa-powered applications to production,\nconfiguring platform-specific secrets, or setting up deployment pipelines.\nTrigger with phrases like \"deploy exa\", \"exa Vercel\",\n\"exa production deploy\", \"exa Cloud Run\", \"exa Fly.io\".","https:\u002F\u002Fgithub.com\u002FVRIL-LABS\u002Fskill-jam\u002Fblob\u002Fmain\u002Fskills\u002Fsearch-research\u002Fjeremylongshore-claude-code-plugins-plus-skills-exa-deploy-integration-1.0.0\u002FSKILL.md",[348],{"categoryNo":349,"categoryName":350,"taxonomyType":235,"taxonomyTypeDesc":236},"01JBSEEDCAT000000000000011","运维与部署",[352,353,326,354,355,356,357,358,359,360,332,333,334,361,362,363,335,364,365,23],"deploy","integration","exa deploy integration","deployment","run","secrets","fly","Bash","integrations","vercel","up","platform","trigger","cloud run"]