[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6CBVXG93Q449FMB2BBE5WMK":3,"skill-same:01M6CBVXG93Q449FMB2BBE5WMK":92},{"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":22,"publishedAt":42,"linkOnly":43,"markdownContent":44,"markdownBody":45,"frontMatter":46,"refName":57,"commitSha":58,"skillDirectory":59,"forksCount":60,"repositoryHtmlUrl":61,"repositoryHomepageUrl":6,"ownerHtmlUrl":62,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":63,"install":64,"resources":77},"01M6CBVXG93Q449FMB2BBE5WMK","prowler-ui",null,"Prowler UI-specific patterns. For generic patterns, see: typescript, react-19, nextjs-15, tailwind-4. Trigger: When working inside ui\u002F on Prowler-specific conventions (shadcn vs HeroUI legacy, folder placement, actions\u002Fadapters, shared types\u002Fhooks\u002Flib).","ray-manaloto\u002Fmacos-development-environment","ray-manaloto","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F227192835?v=4","01M6CBR7J13ZA01X5YB1A1QRJP","01M6CBR7P0S3NS8ZV81JYNST14",1,"Apache-2.0","https:\u002F\u002Fgithub.com\u002Fray-manaloto\u002Fmacos-development-environment\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fprowler-ui\u002FSKILL.md",[17],{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000032","设计师","PROFESSION","适用职业",[23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41],"prowler ui","ui","prowler","Tailwind","Legacy","hooks","webfetch","edit","write","read","grep","Bash","typescript","nextjs","actions","cloud","shadcn","react","components","2026-11-10 10:12:30",false,"---\nname: prowler-ui\ndescription: >\n  Prowler UI-specific patterns. For generic patterns, see: typescript, react-19, nextjs-15, tailwind-4.\n  Trigger: When working inside ui\u002F on Prowler-specific conventions (shadcn vs HeroUI legacy, folder placement, actions\u002Fadapters, shared types\u002Fhooks\u002Flib).\nlicense: Apache-2.0\nmetadata:\n  author: prowler-cloud\n  version: \"1.0\"\n  scope: [root, ui]\n  auto_invoke:\n    - \"Creating\u002Fmodifying Prowler UI components\"\n    - \"Working on Prowler UI structure (actions\u002Fadapters\u002Ftypes\u002Fhooks)\"\nallowed-tools: Read, Edit, Write, Glob, Grep, Bash, WebFetch, WebSearch, Task\n---\n\n## Related Generic Skills\n\n- `typescript` - Const types, flat interfaces\n- `react-19` - No useMemo\u002FuseCallback, compiler\n- `nextjs-15` - App Router, Server Actions\n- `tailwind-4` - cn() utility, styling rules\n- `zod-4` - Schema validation\n- `zustand-5` - State management\n- `ai-sdk-5` - Chat\u002FAI features\n- `playwright` - E2E testing (see also `prowler-test-ui`)\n\n## Tech Stack (Versions)\n\n```\nNext.js 15.5.9 | React 19.2.2 | Tailwind 4.1.13 | shadcn\u002Fui\nZod 4.1.11 | React Hook Form 7.62.0 | Zustand 5.0.8\nNextAuth 5.0.0-beta.30 | Recharts 2.15.4\nHeroUI 2.8.4 (LEGACY - do not add new components)\n```\n\n## CRITICAL: Component Library Rule\n\n- **ALWAYS**: Use `shadcn\u002Fui` + Tailwind (`components\u002Fshadcn\u002F`)\n- **NEVER**: Add new HeroUI components (`components\u002Fui\u002F` is legacy only)\n\n## DECISION TREES\n\n### Component Placement\n\n```\nNew feature UI? → shadcn\u002Fui + Tailwind\nExisting HeroUI feature? → Keep HeroUI (don't mix)\nUsed 1 feature? → features\u002F{feature}\u002Fcomponents\u002F\nUsed 2+ features? → components\u002Fshared\u002F\nNeeds state\u002Fhooks? → \"use client\"\nServer component? → No directive needed\n```\n\n### Code Location\n\n```\nServer action      → actions\u002F{feature}\u002F{feature}.ts\nData transform     → actions\u002F{feature}\u002F{feature}.adapter.ts\nTypes (shared 2+)  → types\u002F{domain}.ts\nTypes (local 1)    → {feature}\u002Ftypes.ts\nUtils (shared 2+)  → lib\u002F\nUtils (local 1)    → {feature}\u002Futils\u002F\nHooks (shared 2+)  → hooks\u002F\nHooks (local 1)    → {feature}\u002Fhooks.ts\nshadcn components  → components\u002Fshadcn\u002F\nHeroUI components  → components\u002Fui\u002F (LEGACY)\n```\n\n### Styling Decision\n\n```\nTailwind class exists? → className\nDynamic value?         → style prop\nConditional styles?    → cn()\nStatic only?           → className (no cn())\nRecharts\u002Flibrary?      → CHART_COLORS constant + var()\n```\n\n### Scope Rule (ABSOLUTE)\n\n- Used 2+ places → `lib\u002F` or `types\u002F` or `hooks\u002F` (components go in `components\u002F{domain}\u002F`)\n- Used 1 place → keep local in feature directory\n- **This determines ALL folder structure decisions**\n\n## Project Structure\n\n```\nui\u002F\n├── app\u002F\n│   ├── (auth)\u002F              # Auth pages (login, signup)\n│   └── (prowler)\u002F           # Main app\n│       ├── compliance\u002F\n│       ├── findings\u002F\n│       ├── providers\u002F\n│       ├── scans\u002F\n│       ├── services\u002F\n│       └── integrations\u002F\n├── components\u002F\n│   ├── shadcn\u002F              # shadcn\u002Fui (USE THIS)\n│   ├── ui\u002F                  # HeroUI (LEGACY)\n│   ├── {domain}\u002F            # Domain-specific (compliance, findings, providers, etc.)\n│   ├── filters\u002F             # Filter components\n│   ├── graphs\u002F              # Chart components\n│   └── icons\u002F               # Icon components\n├── actions\u002F                 # Server actions\n├── types\u002F                   # Shared types\n├── hooks\u002F                   # Shared hooks\n├── lib\u002F                     # Utilities\n├── store\u002F                   # Zustand state\n├── tests\u002F                   # Playwright E2E\n└── styles\u002F                  # Global CSS\n```\n\n## Recharts (Special Case)\n\nFor Recharts props that don't accept className:\n\n```typescript\nconst CHART_COLORS = {\n  primary: \"var(--color-primary)\",\n  secondary: \"var(--color-secondary)\",\n  text: \"var(--color-text)\",\n  gridLine: \"var(--color-border)\",\n};\n\n\u002F\u002F Only use var() for library props, NEVER in className\n\u003CXAxis tick={{ fill: CHART_COLORS.text }} \u002F>\n\u003CCartesianGrid stroke={CHART_COLORS.gridLine} \u002F>\n```\n\n## Form + Validation Pattern\n\n```typescript\n\"use client\";\nimport { useForm } from \"react-hook-form\";\nimport { zodResolver } from \"@hookform\u002Fresolvers\u002Fzod\";\nimport { z } from \"zod\";\n\nconst schema = z.object({\n  email: z.email(),  \u002F\u002F Zod 4 syntax\n  name: z.string().min(1),\n});\n\ntype FormData = z.infer\u003Ctypeof schema>;\n\nexport function MyForm() {\n  const { register, handleSubmit, formState: { errors } } = useForm\u003CFormData>({\n    resolver: zodResolver(schema),\n  });\n\n  const onSubmit = async (data: FormData) => {\n    await serverAction(data);\n  };\n\n  return (\n    \u003Cform onSubmit={handleSubmit(onSubmit)}>\n      \u003Cinput {...register(\"email\")} \u002F>\n      {errors.email && \u003Cspan>{errors.email.message}\u003C\u002Fspan>}\n      \u003Cbutton type=\"submit\">Submit\u003C\u002Fbutton>\n    \u003C\u002Fform>\n  );\n}\n```\n\n## Commands\n\n```bash\n# Development\ncd ui && pnpm install\ncd ui && pnpm run dev\n\n# Code Quality\ncd ui && pnpm run typecheck\ncd ui && pnpm run lint:fix\ncd ui && pnpm run format:write\ncd ui && pnpm run healthcheck    # typecheck + lint\n\n# Testing\ncd ui && pnpm run test:e2e\ncd ui && pnpm run test:e2e:ui\ncd ui && pnpm run test:e2e:debug\n\n# Build\ncd ui && pnpm run build\ncd ui && pnpm start\n```\n\n## QA Checklist Before Commit\n\n- [ ] `pnpm run typecheck` passes\n- [ ] `pnpm run lint:fix` passes\n- [ ] `pnpm run format:write` passes\n- [ ] Relevant E2E tests pass\n- [ ] All UI states handled (loading, error, empty)\n- [ ] No secrets in code (use `.env.local`)\n- [ ] Error messages sanitized (no stack traces to users)\n- [ ] Server-side validation present (don't trust client)\n- [ ] Accessibility: keyboard navigation, ARIA labels\n- [ ] Mobile responsive (if applicable)\n\n## Migrations Reference\n\n| From | To | Key Changes |\n|------|-----|-------------|\n| React 18 | 19.1 | Async components, React Compiler (no useMemo\u002FuseCallback) |\n| Next.js 14 | 15.5 | Improved App Router, better streaming |\n| NextUI | HeroUI 2.8.4 | Package rename only, same API |\n| Zod 3 | 4 | `z.email()` not `z.string().email()`, `error` not `message` |\n| AI SDK 4 | 5 | `@ai-sdk\u002Freact`, `sendMessage` not `handleSubmit`, `parts` not `content` |\n\n## Resources\n\n- **Documentation**: See [references\u002F](references\u002F) for links to local developer guide\n","## Related Generic Skills\n\n- `typescript` - Const types, flat interfaces\n- `react-19` - No useMemo\u002FuseCallback, compiler\n- `nextjs-15` - App Router, Server Actions\n- `tailwind-4` - cn() utility, styling rules\n- `zod-4` - Schema validation\n- `zustand-5` - State management\n- `ai-sdk-5` - Chat\u002FAI features\n- `playwright` - E2E testing (see also `prowler-test-ui`)\n\n## Tech Stack (Versions)\n\n```\nNext.js 15.5.9 | React 19.2.2 | Tailwind 4.1.13 | shadcn\u002Fui\nZod 4.1.11 | React Hook Form 7.62.0 | Zustand 5.0.8\nNextAuth 5.0.0-beta.30 | Recharts 2.15.4\nHeroUI 2.8.4 (LEGACY - do not add new components)\n```\n\n## CRITICAL: Component Library Rule\n\n- **ALWAYS**: Use `shadcn\u002Fui` + Tailwind (`components\u002Fshadcn\u002F`)\n- **NEVER**: Add new HeroUI components (`components\u002Fui\u002F` is legacy only)\n\n## DECISION TREES\n\n### Component Placement\n\n```\nNew feature UI? → shadcn\u002Fui + Tailwind\nExisting HeroUI feature? → Keep HeroUI (don't mix)\nUsed 1 feature? → features\u002F{feature}\u002Fcomponents\u002F\nUsed 2+ features? → components\u002Fshared\u002F\nNeeds state\u002Fhooks? → \"use client\"\nServer component? → No directive needed\n```\n\n### Code Location\n\n```\nServer action      → actions\u002F{feature}\u002F{feature}.ts\nData transform     → actions\u002F{feature}\u002F{feature}.adapter.ts\nTypes (shared 2+)  → types\u002F{domain}.ts\nTypes (local 1)    → {feature}\u002Ftypes.ts\nUtils (shared 2+)  → lib\u002F\nUtils (local 1)    → {feature}\u002Futils\u002F\nHooks (shared 2+)  → hooks\u002F\nHooks (local 1)    → {feature}\u002Fhooks.ts\nshadcn components  → components\u002Fshadcn\u002F\nHeroUI components  → components\u002Fui\u002F (LEGACY)\n```\n\n### Styling Decision\n\n```\nTailwind class exists? → className\nDynamic value?         → style prop\nConditional styles?    → cn()\nStatic only?           → className (no cn())\nRecharts\u002Flibrary?      → CHART_COLORS constant + var()\n```\n\n### Scope Rule (ABSOLUTE)\n\n- Used 2+ places → `lib\u002F` or `types\u002F` or `hooks\u002F` (components go in `components\u002F{domain}\u002F`)\n- Used 1 place → keep local in feature directory\n- **This determines ALL folder structure decisions**\n\n## Project Structure\n\n```\nui\u002F\n├── app\u002F\n│   ├── (auth)\u002F              # Auth pages (login, signup)\n│   └── (prowler)\u002F           # Main app\n│       ├── compliance\u002F\n│       ├── findings\u002F\n│       ├── providers\u002F\n│       ├── scans\u002F\n│       ├── services\u002F\n│       └── integrations\u002F\n├── components\u002F\n│   ├── shadcn\u002F              # shadcn\u002Fui (USE THIS)\n│   ├── ui\u002F                  # HeroUI (LEGACY)\n│   ├── {domain}\u002F            # Domain-specific (compliance, findings, providers, etc.)\n│   ├── filters\u002F             # Filter components\n│   ├── graphs\u002F              # Chart components\n│   └── icons\u002F               # Icon components\n├── actions\u002F                 # Server actions\n├── types\u002F                   # Shared types\n├── hooks\u002F                   # Shared hooks\n├── lib\u002F                     # Utilities\n├── store\u002F                   # Zustand state\n├── tests\u002F                   # Playwright E2E\n└── styles\u002F                  # Global CSS\n```\n\n## Recharts (Special Case)\n\nFor Recharts props that don't accept className:\n\n```typescript\nconst CHART_COLORS = {\n  primary: \"var(--color-primary)\",\n  secondary: \"var(--color-secondary)\",\n  text: \"var(--color-text)\",\n  gridLine: \"var(--color-border)\",\n};\n\n\u002F\u002F Only use var() for library props, NEVER in className\n\u003CXAxis tick={{ fill: CHART_COLORS.text }} \u002F>\n\u003CCartesianGrid stroke={CHART_COLORS.gridLine} \u002F>\n```\n\n## Form + Validation Pattern\n\n```typescript\n\"use client\";\nimport { useForm } from \"react-hook-form\";\nimport { zodResolver } from \"@hookform\u002Fresolvers\u002Fzod\";\nimport { z } from \"zod\";\n\nconst schema = z.object({\n  email: z.email(),  \u002F\u002F Zod 4 syntax\n  name: z.string().min(1),\n});\n\ntype FormData = z.infer\u003Ctypeof schema>;\n\nexport function MyForm() {\n  const { register, handleSubmit, formState: { errors } } = useForm\u003CFormData>({\n    resolver: zodResolver(schema),\n  });\n\n  const onSubmit = async (data: FormData) => {\n    await serverAction(data);\n  };\n\n  return (\n    \u003Cform onSubmit={handleSubmit(onSubmit)}>\n      \u003Cinput {...register(\"email\")} \u002F>\n      {errors.email && \u003Cspan>{errors.email.message}\u003C\u002Fspan>}\n      \u003Cbutton type=\"submit\">Submit\u003C\u002Fbutton>\n    \u003C\u002Fform>\n  );\n}\n```\n\n## Commands\n\n```bash\n# Development\ncd ui && pnpm install\ncd ui && pnpm run dev\n\n# Code Quality\ncd ui && pnpm run typecheck\ncd ui && pnpm run lint:fix\ncd ui && pnpm run format:write\ncd ui && pnpm run healthcheck    # typecheck + lint\n\n# Testing\ncd ui && pnpm run test:e2e\ncd ui && pnpm run test:e2e:ui\ncd ui && pnpm run test:e2e:debug\n\n# Build\ncd ui && pnpm run build\ncd ui && pnpm start\n```\n\n## QA Checklist Before Commit\n\n- [ ] `pnpm run typecheck` passes\n- [ ] `pnpm run lint:fix` passes\n- [ ] `pnpm run format:write` passes\n- [ ] Relevant E2E tests pass\n- [ ] All UI states handled (loading, error, empty)\n- [ ] No secrets in code (use `.env.local`)\n- [ ] Error messages sanitized (no stack traces to users)\n- [ ] Server-side validation present (don't trust client)\n- [ ] Accessibility: keyboard navigation, ARIA labels\n- [ ] Mobile responsive (if applicable)\n\n## Migrations Reference\n\n| From | To | Key Changes |\n|------|-----|-------------|\n| React 18 | 19.1 | Async components, React Compiler (no useMemo\u002FuseCallback) |\n| Next.js 14 | 15.5 | Improved App Router, better streaming |\n| NextUI | HeroUI 2.8.4 | Package rename only, same API |\n| Zod 3 | 4 | `z.email()` not `z.string().email()`, `error` not `message` |\n| AI SDK 4 | 5 | `@ai-sdk\u002Freact`, `sendMessage` not `handleSubmit`, `parts` not `content` |\n\n## Resources\n\n- **Documentation**: See [references\u002F](references\u002F) for links to local developer guide\n",{"name":5,"license":14,"metadata":47,"description":55,"allowed-tools":56},{"scope":48,"author":50,"version":51,"auto_invoke":52},[49,24],"root","prowler-cloud","1.0",[53,54],"Creating\u002Fmodifying Prowler UI components","Working on Prowler UI structure (actions\u002Fadapters\u002Ftypes\u002Fhooks)","Prowler UI-specific patterns. For generic patterns, see: typescript, react-19, nextjs-15, tailwind-4. Trigger: When working inside ui\u002F on Prowler-specific conventions (shadcn vs HeroUI legacy, folder placement, actions\u002Fadapters, shared types\u002Fhooks\u002Flib).\n","Read, Edit, Write, Glob, Grep, Bash, WebFetch, WebSearch, Task","main","716b17df3ef6719d88aeac180015008b7ddfff6f",".agents\u002Fskills\u002Fprowler-ui",0,"https:\u002F\u002Fgithub.com\u002Fray-manaloto\u002Fmacos-development-environment","https:\u002F\u002Fgithub.com\u002Fray-manaloto","2026-08-03 16:55:50",{"source":8,"skillName":5,"commands":65,"prompt":75,"zipAvailable":76},[66,69,72],{"tool":67,"command":68},"npx","npx skills add ray-manaloto\u002Fmacos-development-environment --skill prowler-ui",{"tool":70,"command":71},"bunx","bunx skills add ray-manaloto\u002Fmacos-development-environment --skill prowler-ui",{"tool":73,"command":74},"pnpm","pnpm dlx skills add ray-manaloto\u002Fmacos-development-environment --skill prowler-ui","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fray-manaloto\u002Fmacos-development-environment\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fprowler-ui\u002FSKILL.md",true,[78,84,88],{"path":79,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":82,"sourceHtmlUrl":83},"references\u002Fui-docs.md","REFERENCE","参考文档",294,"https:\u002F\u002Fgithub.com\u002Fray-manaloto\u002Fmacos-development-environment\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fprowler-ui\u002Freferences\u002Fui-docs.md",{"path":85,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":86,"sourceHtmlUrl":87},"SOURCE.md",185,"https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fdefi\u002Fethena-synthetic-dollar\u002FSOURCE.md",{"path":89,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":90,"sourceHtmlUrl":91},"TRUST.auto.yaml",2217,"https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fdefi\u002Fethena-synthetic-dollar\u002FTRUST.auto.yaml",[93,117,135,154,174,188],{"skillNo":94,"name":95,"nameZh":6,"description":96,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":97,"licenseFileUrl":6,"sourceHtmlUrl":98,"categories":99,"keywords":105,"publishedAt":42},"01M6CC8DXNJ39YWERYTWCGGCGG","next-workflow-step","Use this skill when the user wants to transition to the next workflow step, wrap up a session cleanly, prepare a handoff, or says things like \"next step\", \"continue the workflow\", \"wrap up\", \"hand off\", \"move to the next phase\", \"what's next in embrace\", or \"prepare for \u002Fclear\". Also triggers when the current octo:embrace phase appears complete and no explicit next action is set.","MIT","https:\u002F\u002Fgithub.com\u002Fray-manaloto\u002Fmacos-development-environment\u002Fblob\u002Fmain\u002Frsm-subagents\u002Fplugins\u002Fworkflow-toolkit\u002Fskills\u002Fnext-workflow-step\u002FSKILL.md",[100],{"categoryNo":101,"categoryName":102,"taxonomyType":103,"taxonomyTypeDesc":104},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[106,107,108,109,110,111,112,113,114,115,116],"next workflow step","workflow","up","use","session","user","wrap up","continue","handoff","prepare","SET",{"skillNo":118,"name":119,"nameZh":6,"description":120,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":97,"licenseFileUrl":6,"sourceHtmlUrl":121,"categories":122,"keywords":123,"publishedAt":42},"01M6CC8BRZBQHEBXGMKPDM422P","source-discovery","This skill should be used when the user asks to \"find sources\", \"discover URLs\", \"catalog a source\", \"classify a URL\", \"search for libraries\", \"check what exists\", or mentions source discovery, URL cataloging, source classification, or research source management.","https:\u002F\u002Fgithub.com\u002Fray-manaloto\u002Fmacos-development-environment\u002Fblob\u002Fmain\u002Frsm-subagents\u002Fplugins\u002Fresearch-review-toolkit\u002Fskills\u002Fsource-discovery\u002FSKILL.md",[],[124,125,126,127,128,129,130,131,132,111,133,134],"discovery","source discovery","research","libraries","search","classification","find","check","management","catalog","find sources",{"skillNo":136,"name":137,"nameZh":6,"description":138,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":97,"licenseFileUrl":6,"sourceHtmlUrl":139,"categories":140,"keywords":141,"publishedAt":42},"01M6CC89CGJP69A0PS22G2H1FV","review-synthesis","This skill should be used when the user asks to \"summarize review findings\", \"prioritize fixes\", \"rank review issues\", \"combine reviewer feedback\", \"create action items from review\", or mentions review synthesis, finding prioritization, severity ranking, or review result summarization.","https:\u002F\u002Fgithub.com\u002Fray-manaloto\u002Fmacos-development-environment\u002Fblob\u002Fmain\u002Frsm-subagents\u002Fplugins\u002Fresearch-review-toolkit\u002Fskills\u002Freview-synthesis\u002FSKILL.md",[],[142,143,144,145,146,147,148,111,149,150,151,152,153],"review","review synthesis","Synthesis","prioritize","create action","feedback","reviewer","summarize","prioritization","create","issues","severity",{"skillNo":155,"name":156,"nameZh":6,"description":157,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":97,"licenseFileUrl":6,"sourceHtmlUrl":158,"categories":159,"keywords":163,"publishedAt":42},"01M6CC872EZ9GRJY0HRCG0RT2M","research-scoring","This skill should be used when the user asks to \"score research\", \"check research quality\", \"evaluate coverage\", \"measure improvement\", \"assess research completeness\", or mentions research scoring, quality metrics, coverage gaps, improvement baseline, or research pipeline status.","https:\u002F\u002Fgithub.com\u002Fray-manaloto\u002Fmacos-development-environment\u002Fblob\u002Fmain\u002Frsm-subagents\u002Fplugins\u002Fresearch-review-toolkit\u002Fskills\u002Fresearch-scoring\u002FSKILL.md",[160],{"categoryNo":161,"categoryName":162,"taxonomyType":103,"taxonomyTypeDesc":104},"01JBSEEDCAT000000000000021","资料检索与研究",[164,126,165,166,167,168,169,170,131,111,171,172,173],"research scoring","status","coverage gaps","metrics","pipeline","baseline","quality","coverage","pipeline status","research quality",{"skillNo":175,"name":176,"nameZh":6,"description":177,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":97,"licenseFileUrl":6,"sourceHtmlUrl":178,"categories":179,"keywords":180,"publishedAt":42},"01M6CC852HSDS1FE4EJAT0RHGR","notebooklm-integration","This skill should be used when the user asks to \"ingest into NotebookLM\", \"query NotebookLM\", \"add sources to notebook\", \"cross-source synthesis\", \"check stale sources\", or mentions NotebookLM, notebook integration, source ingestion, or knowledge consolidation.","https:\u002F\u002Fgithub.com\u002Fray-manaloto\u002Fmacos-development-environment\u002Fblob\u002Fmain\u002Frsm-subagents\u002Fplugins\u002Fresearch-review-toolkit\u002Fskills\u002Fnotebooklm-integration\u002FSKILL.md",[],[181,182,183,184,131,111,185,186,187,144],"notebooklm integration","notebooklm","integration","knowledge","ingestion","ingest","stale",{"skillNo":189,"name":190,"nameZh":6,"description":191,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":97,"licenseFileUrl":6,"sourceHtmlUrl":192,"categories":193,"keywords":195,"publishedAt":42},"01M6CC82Z4V3205KCJWQZPS2VG","evidence-synthesis","This skill should be used when the user asks to \"synthesize findings\", \"combine research\", \"cross-reference sources\", \"summarize evidence\", \"write a deep review\", or mentions evidence synthesis, finding consolidation, cross-source analysis, or research summarization.","https:\u002F\u002Fgithub.com\u002Fray-manaloto\u002Fmacos-development-environment\u002Fblob\u002Fmain\u002Frsm-subagents\u002Fplugins\u002Fresearch-review-toolkit\u002Fskills\u002Fevidence-synthesis\u002FSKILL.md",[194],{"categoryNo":161,"categoryName":162,"taxonomyType":103,"taxonomyTypeDesc":104},[196,144,197,149,126,198,199,31,111,200,142],"evidence synthesis","evidence","deep review","analysis","reference"]