[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M79V6CSWMYDF7FXCMY3R8KBH":3,"skill-same:01M79V6CSWMYDF7FXCMY3R8KBH":61},{"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":19,"linkOnly":20,"markdownContent":21,"markdownBody":22,"frontMatter":23,"refName":24,"commitSha":25,"skillDirectory":26,"forksCount":27,"repositoryHtmlUrl":28,"repositoryHomepageUrl":6,"ownerHtmlUrl":29,"ownerBlogUrl":30,"ownerDescription":31,"updatedAt":32,"install":33,"resources":46},"01M79V6CSWMYDF7FXCMY3R8KBH","web-slicing",null,"Convert screenshot\u002FFigma designs into pixel-perfect frontend UI with reusable components. Use when the task focuses on visual and layout implementation.","irosadie\u002Fopen-grounding","irosadie","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F25891018?v=4","01M6D9VT1T5RGGX753ARTN5J8N","Imron Rosadi","01M79V448QN8WY103SCY8408F9",2,"MIT","https:\u002F\u002Fgithub.com\u002Firosadie\u002Fopen-grounding\u002Fblob\u002Fdevelop\u002F.agents\u002Fskills\u002Fweb-slicing\u002FSKILL.md",[],[],"2026-11-15 14:19:17",false,"---\nname: web-slicing\ndescription: Convert screenshot\u002FFigma designs into pixel-perfect frontend UI with reusable components. Use when the task focuses on visual and layout implementation.\n---\n\n# Skill: Web Slicing\n\n## Context (Required)\n- Folder scope + code examples: `references\u002Fcontext.md`\n- Execution checklist: `templates\u002Fchecklist.md`\n\nImplement UI from designs with precision. Focus on visuals and layout — no API integration yet.\n\n## Workflow\n\n1. Study the design: screenshot, Figma link, or layout description provided by the user.\n\n2. Read the relevant guide before creating files in that folder:\n   - `.agents\u002Fguides\u002Fweb-page.md` — for files in `app\u002F`\n   - `.agents\u002Fguides\u002Fweb-component.md` — for files in `components\u002F`\n\n3. Create files following the page structure convention:\n   ```\n   app\u002F(group)\u002F[feature]\u002F\n   ├── page.tsx               → Suspense wrapper (Server Component)\n   └── [feature]-content.tsx → main Client Component (all logic: state, form, table, dialog)\n   ```\n\n4. Reference real code examples from:\n   - `.agents\u002Fexamples\u002Fweb-slicing\u002Fnextjs-app-router\u002Fexamples\u002F` — basic CRUD template\n\n5. Use components from the existing library:\n   - `Button`, `Input`, `Dialog`, `Table`, `Select`, `RadioGroup`, `Textarea`\n   - `ActionsDropdown` for edit\u002Fdelete actions\n   - `PanelCard` as table wrapper\n   - `StatusBadge` for status display\n   - `LoadingSpinner` for loading state\n   - Lucide React for icons\n   - Tailwind CSS for styling\n\n6. Data not yet available from API → use dummy data \u002F placeholder props.\n\n## Prohibitions\n\n- **FORBIDDEN** for UI files in `app\u002F**` (except `app\u002Fapi\u002F**`) or `components\u002F**` to import `axios` or call `fetch`; use dummy props or an existing transaction hook instead.\n- **RECOMMENDED** to create `_components\u002F` for components private to the route. Keep `*-page-content.tsx` beside `page.tsx` as the route orchestrator.\n- **FORBIDDEN** to use `any` as a type.\n- **FORBIDDEN** to hardcode colors or spacing — use Tailwind tokens.\n\n## Pre-Completion Checklist\n\n- [ ] `page.tsx` is a thin Suspense wrapper\n- [ ] `*-page-content.tsx` sits beside `page.tsx` and orchestrates route state, hooks, and layout\n- [ ] Route-specific components are in `_components\u002F`; shared components are in `apps\u002Fweb\u002Fcomponents\u002F`\n- [ ] No direct API call in components\n- [ ] No `any`\n- [ ] Every file ends with a newline (EOF)\n","# Skill: Web Slicing\n\n## Context (Required)\n- Folder scope + code examples: `references\u002Fcontext.md`\n- Execution checklist: `templates\u002Fchecklist.md`\n\nImplement UI from designs with precision. Focus on visuals and layout — no API integration yet.\n\n## Workflow\n\n1. Study the design: screenshot, Figma link, or layout description provided by the user.\n\n2. Read the relevant guide before creating files in that folder:\n   - `.agents\u002Fguides\u002Fweb-page.md` — for files in `app\u002F`\n   - `.agents\u002Fguides\u002Fweb-component.md` — for files in `components\u002F`\n\n3. Create files following the page structure convention:\n   ```\n   app\u002F(group)\u002F[feature]\u002F\n   ├── page.tsx               → Suspense wrapper (Server Component)\n   └── [feature]-content.tsx → main Client Component (all logic: state, form, table, dialog)\n   ```\n\n4. Reference real code examples from:\n   - `.agents\u002Fexamples\u002Fweb-slicing\u002Fnextjs-app-router\u002Fexamples\u002F` — basic CRUD template\n\n5. Use components from the existing library:\n   - `Button`, `Input`, `Dialog`, `Table`, `Select`, `RadioGroup`, `Textarea`\n   - `ActionsDropdown` for edit\u002Fdelete actions\n   - `PanelCard` as table wrapper\n   - `StatusBadge` for status display\n   - `LoadingSpinner` for loading state\n   - Lucide React for icons\n   - Tailwind CSS for styling\n\n6. Data not yet available from API → use dummy data \u002F placeholder props.\n\n## Prohibitions\n\n- **FORBIDDEN** for UI files in `app\u002F**` (except `app\u002Fapi\u002F**`) or `components\u002F**` to import `axios` or call `fetch`; use dummy props or an existing transaction hook instead.\n- **RECOMMENDED** to create `_components\u002F` for components private to the route. Keep `*-page-content.tsx` beside `page.tsx` as the route orchestrator.\n- **FORBIDDEN** to use `any` as a type.\n- **FORBIDDEN** to hardcode colors or spacing — use Tailwind tokens.\n\n## Pre-Completion Checklist\n\n- [ ] `page.tsx` is a thin Suspense wrapper\n- [ ] `*-page-content.tsx` sits beside `page.tsx` and orchestrates route state, hooks, and layout\n- [ ] Route-specific components are in `_components\u002F`; shared components are in `apps\u002Fweb\u002Fcomponents\u002F`\n- [ ] No direct API call in components\n- [ ] No `any`\n- [ ] Every file ends with a newline (EOF)\n",{"name":5,"description":7},"develop","b6680e8ea54cc5b974974e9502f89036a44ff17a",".agents\u002Fskills\u002Fweb-slicing",0,"https:\u002F\u002Fgithub.com\u002Firosadie\u002Fopen-grounding","https:\u002F\u002Fgithub.com\u002Firosadie","http:\u002F\u002Fimronrosadi.com","The Hatless Engineer 👨‍💻","2026-10-12 05:51:56",{"source":8,"skillName":5,"commands":34,"prompt":44,"zipAvailable":45},[35,38,41],{"tool":36,"command":37},"npx","npx skills add irosadie\u002Fopen-grounding --skill web-slicing",{"tool":39,"command":40},"bunx","bunx skills add irosadie\u002Fopen-grounding --skill web-slicing",{"tool":42,"command":43},"pnpm","pnpm dlx skills add irosadie\u002Fopen-grounding --skill web-slicing","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Firosadie\u002Fopen-grounding\u002Fblob\u002Fdevelop\u002F.agents\u002Fskills\u002Fweb-slicing\u002FSKILL.md",true,[47,53,57],{"path":48,"resourceType":49,"resourceTypeDesc":50,"sizeBytes":51,"sourceHtmlUrl":52},"agents\u002Fopenai.yaml","REFERENCE","参考文档",288,"https:\u002F\u002Fgithub.com\u002Firosadie\u002Fopen-grounding\u002Fblob\u002Fdevelop\u002F.agents\u002Fskills\u002Fweb-slicing\u002Fagents\u002Fopenai.yaml",{"path":54,"resourceType":49,"resourceTypeDesc":50,"sizeBytes":55,"sourceHtmlUrl":56},"references\u002Fcontext.md",3837,"https:\u002F\u002Fgithub.com\u002Firosadie\u002Fopen-grounding\u002Fblob\u002Fdevelop\u002F.agents\u002Fskills\u002Fweb-slicing\u002Freferences\u002Fcontext.md",{"path":58,"resourceType":49,"resourceTypeDesc":50,"sizeBytes":59,"sourceHtmlUrl":60},"templates\u002Fchecklist.md",930,"https:\u002F\u002Fgithub.com\u002Firosadie\u002Fopen-grounding\u002Fblob\u002Fdevelop\u002F.agents\u002Fskills\u002Fweb-slicing\u002Ftemplates\u002Fchecklist.md",[62,67,74,81,88,95],{"skillNo":63,"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":64,"categories":65,"keywords":66,"publishedAt":19},"01M79V84Q1X3Q0G5KP14XNYHET","https:\u002F\u002Fgithub.com\u002Firosadie\u002Fopen-grounding\u002Fblob\u002Fdevelop\u002F.claude\u002Fskills\u002Fweb-slicing\u002FSKILL.md",[],[],{"skillNo":68,"name":69,"nameZh":6,"description":70,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":71,"categories":72,"keywords":73,"publishedAt":19},"01M79V8283XST1FAKK8VG9NG7P","web-seo-geo-friendly","Optimize public Next.js App Router pages for SEO and GEO (Generative Engine Optimization). Use when the user explicitly requests SEO\u002FGEO optimization on public pages.","https:\u002F\u002Fgithub.com\u002Firosadie\u002Fopen-grounding\u002Fblob\u002Fdevelop\u002F.claude\u002Fskills\u002Fweb-seo-geo-friendly\u002FSKILL.md",[],[],{"skillNo":75,"name":76,"nameZh":6,"description":77,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":78,"categories":79,"keywords":80,"publishedAt":19},"01M79V7ZP6V69K006384HR71ZD","web-code-review","Review frontend code with a firm senior-lead standard, focusing on bugs, regressions, architecture risks, and test gaps in apps\u002Fweb and the shared contracts the frontend depends on.","https:\u002F\u002Fgithub.com\u002Firosadie\u002Fopen-grounding\u002Fblob\u002Fdevelop\u002F.claude\u002Fskills\u002Fweb-code-review\u002FSKILL.md",[],[],{"skillNo":82,"name":83,"nameZh":6,"description":84,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":85,"categories":86,"keywords":87,"publishedAt":19},"01M79V7XGC46DNQ0VR5V5TQ6QA","web-bugfix","Fix frontend bugs with minimum-touch changes, keep other surfaces stable, and sync schema, types, hooks, constants, tests, and related docs when impacted.","https:\u002F\u002Fgithub.com\u002Firosadie\u002Fopen-grounding\u002Fblob\u002Fdevelop\u002F.claude\u002Fskills\u002Fweb-bugfix\u002FSKILL.md",[],[],{"skillNo":89,"name":90,"nameZh":6,"description":91,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":92,"categories":93,"keywords":94,"publishedAt":19},"01M79V7TZ5GPXFCZ752RZAGTA9","web-api-integrated","Integrate API endpoints into the frontend with Zod schemas, response types, constants, and react-query hooks. Use when implementing endpoints from an API contract, Postman, or Swagger.","https:\u002F\u002Fgithub.com\u002Firosadie\u002Fopen-grounding\u002Fblob\u002Fdevelop\u002F.claude\u002Fskills\u002Fweb-api-integrated\u002FSKILL.md",[],[],{"skillNo":96,"name":97,"nameZh":6,"description":98,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":99,"categories":100,"keywords":101,"publishedAt":19},"01M79V7QRSYY2RGMQCVBY1GQ34","skill-creator","Create a new skill from scratch with full structure — SKILL.md, references, templates, openai.yaml, Claude wrapper, and registration in manifest + AGENTS.md + CLAUDE.md.","https:\u002F\u002Fgithub.com\u002Firosadie\u002Fopen-grounding\u002Fblob\u002Fdevelop\u002F.claude\u002Fskills\u002Fskill-creator\u002FSKILL.md",[],[]]