[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6KB70J2FTRT2V9YYXJ3ND6X":3,"skill-same:01M6KB70J2FTRT2V9YYXJ3ND6X":71},{"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":23,"publishedAt":44,"linkOnly":45,"markdownContent":46,"markdownBody":47,"frontMatter":48,"refName":50,"commitSha":51,"skillDirectory":52,"forksCount":14,"repositoryHtmlUrl":53,"repositoryHomepageUrl":6,"ownerHtmlUrl":54,"ownerBlogUrl":6,"ownerDescription":55,"updatedAt":56,"install":57,"resources":70},"01M6KB70J2FTRT2V9YYXJ3ND6X","wayfinder-development",null,"Use this skill for Laravel Wayfinder which auto-generates typed functions for Laravel controllers and routes. ALWAYS use this skill when frontend code needs to call backend routes or controller actions. Trigger when: connecting any React\u002FVue\u002FSvelte\u002FInertia frontend to Laravel controllers, routes, building end-to-end features with both frontend and backend, wiring up forms or links to backend endpoints, fixing route-related TypeScript errors, importing from @\u002Factions or @\u002Froutes, or running wayfinder:generate. Use Wayfinder route functions instead of hardcoded URLs. Covers: wayfinder() vite plugin, .url()\u002F.get()\u002F.post()\u002F.form(), query params, route model binding, tree-shaking. Do not use for backend-only task","imbasri\u002FlaraAI","imbasri","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F106748835?v=4","01M6KB1J0Q7VQ71CT93QS9FEMJ","Imam Basri","01M6KB1J4P9RQ4WZ6MNBW43X28",0,"MIT","https:\u002F\u002Fgithub.com\u002Fimbasri\u002FlaraAI\u002Fblob\u002Fmaster\u002F.agents\u002Fskills\u002Fwayfinder-development\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000009","前端开发","SCENARIO","使用场景",[24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43],"wayfinder","wayfinder development","development","get","frontend","wiring","which","errors","URL","inertia","end","svelte","query","up","only","auto","model","laravel","actions","code","2026-11-10 10:12:30",false,"---\nname: wayfinder-development\ndescription: \"Use this skill for Laravel Wayfinder which auto-generates typed functions for Laravel controllers and routes. ALWAYS use this skill when frontend code needs to call backend routes or controller actions. Trigger when: connecting any React\u002FVue\u002FSvelte\u002FInertia frontend to Laravel controllers, routes, building end-to-end features with both frontend and backend, wiring up forms or links to backend endpoints, fixing route-related TypeScript errors, importing from @\u002Factions or @\u002Froutes, or running wayfinder:generate. Use Wayfinder route functions instead of hardcoded URLs. Covers: wayfinder() vite plugin, .url()\u002F.get()\u002F.post()\u002F.form(), query params, route model binding, tree-shaking. Do not use for backend-only task\"\nlicense: MIT\nmetadata:\n  author: laravel\n---\n\n# Wayfinder Development\n\n## Documentation\n\nUse `search-docs` for detailed Wayfinder patterns and documentation.\n\n## Quick Reference\n\n### Generate Routes\n\nRun after route changes if Vite plugin isn't installed:\n```bash\nphp artisan wayfinder:generate --no-interaction\n```\nFor form helpers, use `--with-form` flag:\n```bash\nphp artisan wayfinder:generate --with-form --no-interaction\n```\n\n### Import Patterns\n\n\u003C!-- Controller Action Imports -->\n```typescript\n\u002F\u002F Named imports for tree-shaking (preferred)...\nimport { show, store, update } from '@\u002Factions\u002FApp\u002FHttp\u002FControllers\u002FPostController'\n\n\u002F\u002F Named route imports...\nimport { show as postShow } from '@\u002Froutes\u002Fpost'\n```\n\n### Common Methods\n\n\u003C!-- Wayfinder Methods -->\n```typescript\n\u002F\u002F Get route object...\nshow(1) \u002F\u002F { url: \"\u002Fposts\u002F1\", method: \"get\" }\n\n\u002F\u002F Get URL string...\nshow.url(1) \u002F\u002F \"\u002Fposts\u002F1\"\n\n\u002F\u002F Specific HTTP methods...\nshow.get(1)\nstore.post()\nupdate.patch(1)\ndestroy.delete(1)\n\n\u002F\u002F Form attributes for HTML forms...\nstore.form() \u002F\u002F { action: \"\u002Fposts\", method: \"post\" }\n\n\u002F\u002F Query parameters...\nshow(1, { query: { page: 1 } }) \u002F\u002F \"\u002Fposts\u002F1?page=1\"\n```\n\n## Wayfinder + Inertia\n\nUse Wayfinder with the `\u003CForm>` component:\n\u003C!-- Wayfinder Form (React) -->\n```typescript\n\u003CForm {...store.form()}>\u003Cinput name=\"title\" \u002F>\u003C\u002FForm>\n```\n\n## Verification\n\n1. Run `php artisan wayfinder:generate` to regenerate routes if Vite plugin isn't installed\n2. Check TypeScript imports resolve correctly\n3. Verify route URLs match expected paths\n\n## Common Pitfalls\n\n- Using default imports instead of named imports (breaks tree-shaking)\n- Forgetting to regenerate after route changes\n- Not using type-safe parameter objects for route model binding","# Wayfinder Development\n\n## Documentation\n\nUse `search-docs` for detailed Wayfinder patterns and documentation.\n\n## Quick Reference\n\n### Generate Routes\n\nRun after route changes if Vite plugin isn't installed:\n```bash\nphp artisan wayfinder:generate --no-interaction\n```\nFor form helpers, use `--with-form` flag:\n```bash\nphp artisan wayfinder:generate --with-form --no-interaction\n```\n\n### Import Patterns\n\n\u003C!-- Controller Action Imports -->\n```typescript\n\u002F\u002F Named imports for tree-shaking (preferred)...\nimport { show, store, update } from '@\u002Factions\u002FApp\u002FHttp\u002FControllers\u002FPostController'\n\n\u002F\u002F Named route imports...\nimport { show as postShow } from '@\u002Froutes\u002Fpost'\n```\n\n### Common Methods\n\n\u003C!-- Wayfinder Methods -->\n```typescript\n\u002F\u002F Get route object...\nshow(1) \u002F\u002F { url: \"\u002Fposts\u002F1\", method: \"get\" }\n\n\u002F\u002F Get URL string...\nshow.url(1) \u002F\u002F \"\u002Fposts\u002F1\"\n\n\u002F\u002F Specific HTTP methods...\nshow.get(1)\nstore.post()\nupdate.patch(1)\ndestroy.delete(1)\n\n\u002F\u002F Form attributes for HTML forms...\nstore.form() \u002F\u002F { action: \"\u002Fposts\", method: \"post\" }\n\n\u002F\u002F Query parameters...\nshow(1, { query: { page: 1 } }) \u002F\u002F \"\u002Fposts\u002F1?page=1\"\n```\n\n## Wayfinder + Inertia\n\nUse Wayfinder with the `\u003CForm>` component:\n\u003C!-- Wayfinder Form (React) -->\n```typescript\n\u003CForm {...store.form()}>\u003Cinput name=\"title\" \u002F>\u003C\u002FForm>\n```\n\n## Verification\n\n1. Run `php artisan wayfinder:generate` to regenerate routes if Vite plugin isn't installed\n2. Check TypeScript imports resolve correctly\n3. Verify route URLs match expected paths\n\n## Common Pitfalls\n\n- Using default imports instead of named imports (breaks tree-shaking)\n- Forgetting to regenerate after route changes\n- Not using type-safe parameter objects for route model binding",{"name":5,"license":15,"metadata":49,"description":7},{"author":41},"master","79beae0642932e7449e542b7e907f8283936ebb1",".agents\u002Fskills\u002Fwayfinder-development","https:\u002F\u002Fgithub.com\u002Fimbasri\u002FlaraAI","https:\u002F\u002Fgithub.com\u002Fimbasri","\r\njust a fan of a cat 😸, and a coffee lover☕","2026-04-01 15:02:20",{"source":8,"skillName":5,"commands":58,"prompt":68,"zipAvailable":69},[59,62,65],{"tool":60,"command":61},"npx","npx skills add imbasri\u002FlaraAI --skill wayfinder-development",{"tool":63,"command":64},"bunx","bunx skills add imbasri\u002FlaraAI --skill wayfinder-development",{"tool":66,"command":67},"pnpm","pnpm dlx skills add imbasri\u002FlaraAI --skill wayfinder-development","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fimbasri\u002FlaraAI\u002Fblob\u002Fmaster\u002F.agents\u002Fskills\u002Fwayfinder-development\u002FSKILL.md",true,[],[72,101,127,151],{"skillNo":73,"name":74,"nameZh":6,"description":75,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":76,"categories":77,"keywords":82,"publishedAt":44},"01M6KB6VQJKK5NW620MADC7FW1","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\u002Fimbasri\u002FlaraAI\u002Fblob\u002Fmaster\u002F.agents\u002Fskills\u002Ftailwindcss-development\u002FSKILL.md",[78,79],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":80,"categoryName":81,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000010","后端与接口",[83,26,84,85,86,87,88,89,90,91,92,41,93,94,95,96,97,98,99,100],"tailwindcss development","tailwindcss","components","css","writing","component","product","database","api","Tailwind","work","mobile","forms","message","database queries","card","utility","mode",{"skillNo":102,"name":103,"nameZh":6,"description":104,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":105,"categories":106,"keywords":110,"publishedAt":44},"01M6KB6PYE5N83TBVPYJ5T1YA6","pest-testing","Use this skill for Pest PHP testing in Laravel projects only. Trigger whenever any test is being written, edited, fixed, or refactored — including fixing tests that broke after a code change, adding assertions, converting PHPUnit to Pest, adding datasets, and TDD workflows. Always activate when the user asks how to write something in Pest, mentions test files or directories (tests\u002FFeature, tests\u002FUnit, tests\u002FBrowser), or needs browser testing, smoke testing multiple pages for JS errors, or architecture tests. Covers: it()\u002Fexpect() syntax, datasets, mocking, browser testing (visit\u002Fclick\u002Ffill), smoke testing, arch(), Livewire component tests, RefreshDatabase, and all Pest 4 features. Do not use for factories, seeders, migrations, controllers, models, or non-test PHP code.","https:\u002F\u002Fgithub.com\u002Fimbasri\u002FlaraAI\u002Fblob\u002Fmaster\u002F.agents\u002Fskills\u002Fpest-testing\u002FSKILL.md",[107],{"categoryNo":108,"categoryName":109,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000008","测试与质量",[111,112,113,31,114,115,116,117,118,119,38,120,41,121,122,123,43,124,125,126],"pest testing","testing","directories","unit","how to","click","arch","activate","files","livewire","projects","browser testing","browser","architecture","change","workflows",{"skillNo":128,"name":129,"nameZh":6,"description":130,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":131,"categories":132,"keywords":134,"publishedAt":44},"01M6KB6EH4RJA9FH2ZMCT25Y8W","laravel-best-practices","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.","https:\u002F\u002Fgithub.com\u002Fimbasri\u002FlaraAI\u002Fblob\u002Fmaster\u002F.agents\u002Fskills\u002Flaravel-best-practices\u002FSKILL.md",[133],{"categoryNo":80,"categoryName":81,"taxonomyType":21,"taxonomyTypeDesc":22},[135,41,136,87,137,138,43,139,140,141,142,143,144,145,146,147,148,149,150,36],"laravel best practices","best practices","refactoring","issues","performance","security","patterns","code patterns","scheduled","reviews","security patterns","error","commands","strategies","caching","route",{"skillNo":152,"name":153,"nameZh":6,"description":154,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":155,"categories":156,"keywords":158,"publishedAt":44},"01M6KB6AE2CKSB1HPPMW5K6WV5","inertia-react-development","Develops Inertia.js v3 React client-side applications. Activates when creating React pages, forms, or navigation; using \u003CLink>, \u003CForm>, useForm, useHttp, setLayoutProps, or router; working with deferred props, prefetching, optimistic updates, instant visits, or polling; or when user mentions React with Inertia, React pages, React forms, or React navigation.","https:\u002F\u002Fgithub.com\u002Fimbasri\u002FlaraAI\u002Fblob\u002Fmaster\u002F.agents\u002Fskills\u002Finertia-react-development\u002FSKILL.md",[157],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[26,159,33,160,161,41,162,163,164,165,95,166,167,168,169,170,171,172,173],"inertia react development","react","js","applications","user","router","navigation","updates","with","pages","form","client","link","instant","v3"]