[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6AETRB5DJ5TYCP4RTZCAD1V":3,"skill-same:01M6AETRB5DJ5TYCP4RTZCAD1V":109},{"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":26,"publishedAt":52,"linkOnly":53,"markdownContent":54,"markdownBody":55,"frontMatter":56,"refName":61,"commitSha":62,"skillDirectory":63,"forksCount":64,"repositoryHtmlUrl":65,"repositoryHomepageUrl":66,"ownerHtmlUrl":67,"ownerBlogUrl":68,"ownerDescription":69,"updatedAt":70,"install":71,"resources":84},"01M6AETRB5DJ5TYCP4RTZCAD1V","senior-frontend",null,"You MUST use this whenever you build, change or review user interface code, including small UI tweaks and when the user is in a hurry: pages, components, forms, lists, tables, modals, navigation, layout or styling in React, Next.js, Vue, Svelte, Astro or plain HTML\u002FCSS\u002FTailwind. Reuse the project's own components and tokens, design every state (loading, empty, error, long content), make it work with a keyboard and a screen reader and at phone width, then open it in a real browser and check it before saying it is done.","davila7\u002Fclaude-code-templates","davila7","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F6216945?v=4","01M6ADEWWFPS191NFM0Y1EX1JH","Daniel Avila","01M6ADJHGM78PHQRD3XZTFDVKK",33418,"MIT","https:\u002F\u002Fgithub.com\u002Fdavila7\u002Fclaude-code-templates\u002Fblob\u002Fmain\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Fdevelopment\u002Fsenior-frontend\u002FSKILL.md",[18,23],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000009","前端开发","SCENARIO","使用场景",{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发",[27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51],"senior frontend","frontend","senior","frontend development","optimizing performance","bundle analysis","features","analysis","when","implementing","scaffolding","Tailwind","ui","typescript","ux","web","component","state","code","best practices","performance","Optimization","development","css","nextjs","2026-11-10 10:12:30",false,"---\nname: senior-frontend\ndescription: \"You MUST use this whenever you build, change or review user interface code, including small UI tweaks and when the user is in a hurry: pages, components, forms, lists, tables, modals, navigation, layout or styling in React, Next.js, Vue, Svelte, Astro or plain HTML\u002FCSS\u002FTailwind. Reuse the project's own components and tokens, design every state (loading, empty, error, long content), make it work with a keyboard and a screen reader and at phone width, then open it in a real browser and check it before saying it is done.\"\nlicense: MIT\nmetadata:\n  author: claude-code-templates\n  version: \"2.0.0\"\n  sources: \"Vercel Web Interface Guidelines and agent-skills (MIT), Addy Osmani web-quality-skills (MIT), React docs; see references\u002F\"\n---\n\n# Senior Frontend\n\nA senior frontend engineer is not faster at typing JSX. They read the codebase\nbefore writing, they think about the states nobody asked for, they use the\nkeyboard to try what they built, and they look at it in a browser before they\nsay it works. This skill is that habit, written down.\n\n**Core rule: the UI is not done until you have seen it work in a browser,\nincluding the unhappy paths.** A passing typecheck says nothing about whether\nthe button can be reached with Tab or whether a long name breaks the layout on\na phone.\n\n## 1. Read the project before you write\n\nSpend the first minutes reading, not writing. Find and use:\n\n- **The stack and its versions**: framework, router, React version (18 vs 19\n  changes `forwardRef`, `use`, actions), TypeScript strictness.\n- **The existing components**: if the project has a `Button`, `Input`, `Dialog`\n  or design-system package, use it. Never hand-roll a second button.\n- **The tokens**: colors, spacing, radius and type scale already defined\n  (CSS variables, Tailwind theme, theme object). New hex values or magic pixel\n  numbers in a project that has tokens are a bug.\n- **The data layer**: the API helpers, query library (TanStack Query, SWR,\n  server components, loaders) and how errors are already handled.\n- **The scripts**: `typecheck`, `lint`, `test`, `build`, `dev`. You will run them.\n- **A sibling page or component** that does something similar. Match its\n  structure and naming.\n\nAsk the user before you add a dependency (UI kit, icon set, state library,\ndate library). The platform and the project usually already have what you need.\n\n## 2. List the states before you build\n\nEvery piece of UI that shows data or takes input has more states than the happy\npath. Write them down for the feature, then build each one:\n\n| State | What the user must see |\n|-------|------------------------|\n| Loading | A placeholder or \"Loading…\" with `aria-busy` or `role=\"status\"`; no layout jump when data arrives |\n| Empty | A sentence that says why it is empty and what to do (\"No members match \"zz\". Clear the search.\") |\n| Error | What failed, in plain words, and a way out (Retry, or a link). Never a blank area or a console-only error |\n| Success \u002F done | Confirmation that the action happened, announced to screen readers |\n| Pending action | The control shows progress and is disabled only while the request runs; no double submit |\n| Long and odd content | Very long names, emails and words wrap or truncate; 0, 1 and 500 items all look right |\n| Partial failure | One row's action failing does not break the rest of the list |\n\nIf the API helper can fail (it always can), the UI must handle the rejection.\nLook for a way the project lets you force failures (a mock flag, a query\nparameter, a dev toggle) so you can see the error state yourself.\n\n## 3. Build with the platform first\n\nSemantic HTML gives you keyboard support, focus, and screen-reader names for\nfree. Reach for ARIA only when no element does the job.\n\n- `\u003Cbutton>` for actions, `\u003Ca href>` \u002F the router's `Link` for navigation.\n  Never `\u003Cdiv onClick>`.\n- Every input has a visible `\u003Clabel>` (or at minimum `aria-label`), the right\n  `type` (`email`, `tel`, `url`, `search`), `name` and `autocomplete`.\n- Inputs that submit live inside a `\u003Cform>` with `onSubmit`, so Enter works.\n- Icon-only buttons need an accessible name that says what and which:\n  `aria-label=\"Remove Ada Lovelace\"`, not `\"Delete\"` repeated twelve times.\n  The icon itself gets `aria-hidden=\"true\"`.\n- One `\u003Ch1>` per page, headings in order, lists as `\u003Cul>`\u002F`\u003Col>`, tables as\n  `\u003Ctable>` with `\u003Cth scope>`.\n- Async results (saved, removed, failed) go in an `aria-live=\"polite\"` region\n  or `role=\"status\"`; blocking errors in `role=\"alert\"`.\n- Visible focus on everything interactive (`:focus-visible`); never remove an\n  outline without a replacement.\n- Images have `alt` (empty for decorative ones) and explicit `width`\u002F`height`.\n- Destructive actions need a confirmation or an undo window, never an\n  immediate irreversible delete. After a removal, move focus somewhere sensible\n  (the next row or the list heading), not to `\u003Cbody>`.\n\nThe full checklist, with forms, motion, typography, i18n and touch rules, is in\n`references\u002Fui-checklist.md`. Use it when reviewing UI code.\n\n## 4. State and data: keep it boring\n\n- **Derive, do not sync.** A filtered list is `items.filter(...)` during render,\n  not a second `useState` updated by an effect.\n- **Effects are for talking to the outside world** (fetching, subscriptions,\n  timers), not for reacting to your own state. Event logic goes in the event\n  handler.\n- **Fetching in an effect needs cleanup**: ignore stale responses (an `ignore`\n  flag or `AbortController`) and handle React 18 Strict Mode's double mount.\n  If the project has a query library or server components, use those instead.\n- **Never define a component inside another component.** It remounts on every\n  render and loses state and focus.\n- **Composition over boolean props.** If a component grows `isCompact`,\n  `showHeader`, `withFooter`, split it into explicit variants or compound\n  components.\n- **Keep URL state in the URL** when users expect to share or reload it\n  (search query, tab, page, filters).\n- **Do not optimize blind.** Memoize, virtualize or code-split when a\n  measurement or an obvious size (hundreds of rows, a heavy chart library)\n  calls for it.\n\nDetails and examples: `references\u002Freact-patterns.md`.\n\n## 5. Layout that survives real content\n\n- Design at **375 px wide** first, then widen. The page must never scroll\n  horizontally.\n- Flex children that hold text need `min-width: 0`; long strings need\n  `overflow-wrap: anywhere` or a deliberate truncate with the full value\n  available (title, tooltip, detail view).\n- Touch targets at least 24×24 CSS px (WCAG 2.2), 44 px for primary mobile\n  actions.\n- Respect `prefers-reduced-motion`; animate `transform` and `opacity`; never\n  `transition: all`.\n\n## 6. Verify like you mean it\n\nRun, in this order, and read the output:\n\n1. The project's `typecheck`, `lint` and `test` scripts, then `build`.\n2. **Open the page in a real browser.** Start the dev or preview server and run\n   the bundled checker against the page you built:\n\n   ```bash\n   node .claude\u002Fskills\u002Fsenior-frontend\u002Fscripts\u002Fcheck_ui.mjs \"http:\u002F\u002Flocalhost:5173\u002F#\u002Fteam\" --out .ui-check\n   ```\n\n   Point it only at your own dev or preview server. It loads the page at\n   375 px and 1280 px, saves screenshots, reports console\n   errors, horizontal overflow, unlabeled controls, images without size or\n   alt, and walks the page with Tab to show the focus order and any stop with no\n   visible focus. It uses Playwright from the project or a global install; if\n   neither exists, say so instead of skipping silently. (Adjust the path if the\n   skill is installed under `~\u002F.claude\u002Fskills\u002F`.)\n3. **Look at the screenshots.** Read them; do not just confirm they exist.\n4. **Exercise the unhappy paths**: force the error state, search for nothing,\n   remove the last item, submit an invalid value, use only the keyboard.\n5. Delete the screenshots and output folder when done (or keep them out of git).\n\nIf you cannot run a browser in this environment, say exactly what you could not\nverify. \"It builds\" is not \"it works\".\n\n## 7. Report what you did\n\nEnd with a short report:\n\n- What you built and which existing components and tokens you reused.\n- The states you handled (loading, empty, error, …).\n- What you verified and how (commands run, checker output, screenshots looked\n  at), and anything you could not verify.\n- Follow-ups you deliberately left out.\n\n## Red flags: stop and fix\n\n- You wrote a new `\u003Cbutton>` style in a project that has a `Button` component.\n- The error from the API only reaches `console.error`.\n- An icon button has no accessible name, or every row's button has the same one.\n- A `\u003Cdiv>` or `\u003Cli>` has an `onClick`.\n- A `useEffect` copies props or state into other state.\n- Remove deletes on the first click with no confirm or undo.\n- You are about to say \"done\" and have not opened the page.\n\n## References\n\n- `references\u002Fui-checklist.md`: interface review checklist (accessibility,\n  focus, forms, motion, content, images, navigation, touch, theming, i18n,\n  hydration), adapted from Vercel's Web Interface Guidelines (MIT).\n- `references\u002Freact-patterns.md`: state, effects, data fetching, composition\n  and performance rules with short examples, drawing on the React docs and\n  Vercel's agent-skills (MIT).\n- `scripts\u002Fcheck_ui.mjs` (with `scripts\u002Fpage-audit.mjs`): the browser checker\n  used in step 6 (Node 18+).\n- `references\u002FNOTICE.md`: copyright and license of the adapted sources.\n","# Senior Frontend\n\nA senior frontend engineer is not faster at typing JSX. They read the codebase\nbefore writing, they think about the states nobody asked for, they use the\nkeyboard to try what they built, and they look at it in a browser before they\nsay it works. This skill is that habit, written down.\n\n**Core rule: the UI is not done until you have seen it work in a browser,\nincluding the unhappy paths.** A passing typecheck says nothing about whether\nthe button can be reached with Tab or whether a long name breaks the layout on\na phone.\n\n## 1. Read the project before you write\n\nSpend the first minutes reading, not writing. Find and use:\n\n- **The stack and its versions**: framework, router, React version (18 vs 19\n  changes `forwardRef`, `use`, actions), TypeScript strictness.\n- **The existing components**: if the project has a `Button`, `Input`, `Dialog`\n  or design-system package, use it. Never hand-roll a second button.\n- **The tokens**: colors, spacing, radius and type scale already defined\n  (CSS variables, Tailwind theme, theme object). New hex values or magic pixel\n  numbers in a project that has tokens are a bug.\n- **The data layer**: the API helpers, query library (TanStack Query, SWR,\n  server components, loaders) and how errors are already handled.\n- **The scripts**: `typecheck`, `lint`, `test`, `build`, `dev`. You will run them.\n- **A sibling page or component** that does something similar. Match its\n  structure and naming.\n\nAsk the user before you add a dependency (UI kit, icon set, state library,\ndate library). The platform and the project usually already have what you need.\n\n## 2. List the states before you build\n\nEvery piece of UI that shows data or takes input has more states than the happy\npath. Write them down for the feature, then build each one:\n\n| State | What the user must see |\n|-------|------------------------|\n| Loading | A placeholder or \"Loading…\" with `aria-busy` or `role=\"status\"`; no layout jump when data arrives |\n| Empty | A sentence that says why it is empty and what to do (\"No members match \"zz\". Clear the search.\") |\n| Error | What failed, in plain words, and a way out (Retry, or a link). Never a blank area or a console-only error |\n| Success \u002F done | Confirmation that the action happened, announced to screen readers |\n| Pending action | The control shows progress and is disabled only while the request runs; no double submit |\n| Long and odd content | Very long names, emails and words wrap or truncate; 0, 1 and 500 items all look right |\n| Partial failure | One row's action failing does not break the rest of the list |\n\nIf the API helper can fail (it always can), the UI must handle the rejection.\nLook for a way the project lets you force failures (a mock flag, a query\nparameter, a dev toggle) so you can see the error state yourself.\n\n## 3. Build with the platform first\n\nSemantic HTML gives you keyboard support, focus, and screen-reader names for\nfree. Reach for ARIA only when no element does the job.\n\n- `\u003Cbutton>` for actions, `\u003Ca href>` \u002F the router's `Link` for navigation.\n  Never `\u003Cdiv onClick>`.\n- Every input has a visible `\u003Clabel>` (or at minimum `aria-label`), the right\n  `type` (`email`, `tel`, `url`, `search`), `name` and `autocomplete`.\n- Inputs that submit live inside a `\u003Cform>` with `onSubmit`, so Enter works.\n- Icon-only buttons need an accessible name that says what and which:\n  `aria-label=\"Remove Ada Lovelace\"`, not `\"Delete\"` repeated twelve times.\n  The icon itself gets `aria-hidden=\"true\"`.\n- One `\u003Ch1>` per page, headings in order, lists as `\u003Cul>`\u002F`\u003Col>`, tables as\n  `\u003Ctable>` with `\u003Cth scope>`.\n- Async results (saved, removed, failed) go in an `aria-live=\"polite\"` region\n  or `role=\"status\"`; blocking errors in `role=\"alert\"`.\n- Visible focus on everything interactive (`:focus-visible`); never remove an\n  outline without a replacement.\n- Images have `alt` (empty for decorative ones) and explicit `width`\u002F`height`.\n- Destructive actions need a confirmation or an undo window, never an\n  immediate irreversible delete. After a removal, move focus somewhere sensible\n  (the next row or the list heading), not to `\u003Cbody>`.\n\nThe full checklist, with forms, motion, typography, i18n and touch rules, is in\n`references\u002Fui-checklist.md`. Use it when reviewing UI code.\n\n## 4. State and data: keep it boring\n\n- **Derive, do not sync.** A filtered list is `items.filter(...)` during render,\n  not a second `useState` updated by an effect.\n- **Effects are for talking to the outside world** (fetching, subscriptions,\n  timers), not for reacting to your own state. Event logic goes in the event\n  handler.\n- **Fetching in an effect needs cleanup**: ignore stale responses (an `ignore`\n  flag or `AbortController`) and handle React 18 Strict Mode's double mount.\n  If the project has a query library or server components, use those instead.\n- **Never define a component inside another component.** It remounts on every\n  render and loses state and focus.\n- **Composition over boolean props.** If a component grows `isCompact`,\n  `showHeader`, `withFooter`, split it into explicit variants or compound\n  components.\n- **Keep URL state in the URL** when users expect to share or reload it\n  (search query, tab, page, filters).\n- **Do not optimize blind.** Memoize, virtualize or code-split when a\n  measurement or an obvious size (hundreds of rows, a heavy chart library)\n  calls for it.\n\nDetails and examples: `references\u002Freact-patterns.md`.\n\n## 5. Layout that survives real content\n\n- Design at **375 px wide** first, then widen. The page must never scroll\n  horizontally.\n- Flex children that hold text need `min-width: 0`; long strings need\n  `overflow-wrap: anywhere` or a deliberate truncate with the full value\n  available (title, tooltip, detail view).\n- Touch targets at least 24×24 CSS px (WCAG 2.2), 44 px for primary mobile\n  actions.\n- Respect `prefers-reduced-motion`; animate `transform` and `opacity`; never\n  `transition: all`.\n\n## 6. Verify like you mean it\n\nRun, in this order, and read the output:\n\n1. The project's `typecheck`, `lint` and `test` scripts, then `build`.\n2. **Open the page in a real browser.** Start the dev or preview server and run\n   the bundled checker against the page you built:\n\n   ```bash\n   node .claude\u002Fskills\u002Fsenior-frontend\u002Fscripts\u002Fcheck_ui.mjs \"http:\u002F\u002Flocalhost:5173\u002F#\u002Fteam\" --out .ui-check\n   ```\n\n   Point it only at your own dev or preview server. It loads the page at\n   375 px and 1280 px, saves screenshots, reports console\n   errors, horizontal overflow, unlabeled controls, images without size or\n   alt, and walks the page with Tab to show the focus order and any stop with no\n   visible focus. It uses Playwright from the project or a global install; if\n   neither exists, say so instead of skipping silently. (Adjust the path if the\n   skill is installed under `~\u002F.claude\u002Fskills\u002F`.)\n3. **Look at the screenshots.** Read them; do not just confirm they exist.\n4. **Exercise the unhappy paths**: force the error state, search for nothing,\n   remove the last item, submit an invalid value, use only the keyboard.\n5. Delete the screenshots and output folder when done (or keep them out of git).\n\nIf you cannot run a browser in this environment, say exactly what you could not\nverify. \"It builds\" is not \"it works\".\n\n## 7. Report what you did\n\nEnd with a short report:\n\n- What you built and which existing components and tokens you reused.\n- The states you handled (loading, empty, error, …).\n- What you verified and how (commands run, checker output, screenshots looked\n  at), and anything you could not verify.\n- Follow-ups you deliberately left out.\n\n## Red flags: stop and fix\n\n- You wrote a new `\u003Cbutton>` style in a project that has a `Button` component.\n- The error from the API only reaches `console.error`.\n- An icon button has no accessible name, or every row's button has the same one.\n- A `\u003Cdiv>` or `\u003Cli>` has an `onClick`.\n- A `useEffect` copies props or state into other state.\n- Remove deletes on the first click with no confirm or undo.\n- You are about to say \"done\" and have not opened the page.\n\n## References\n\n- `references\u002Fui-checklist.md`: interface review checklist (accessibility,\n  focus, forms, motion, content, images, navigation, touch, theming, i18n,\n  hydration), adapted from Vercel's Web Interface Guidelines (MIT).\n- `references\u002Freact-patterns.md`: state, effects, data fetching, composition\n  and performance rules with short examples, drawing on the React docs and\n  Vercel's agent-skills (MIT).\n- `scripts\u002Fcheck_ui.mjs` (with `scripts\u002Fpage-audit.mjs`): the browser checker\n  used in step 6 (Node 18+).\n- `references\u002FNOTICE.md`: copyright and license of the adapted sources.\n",{"name":5,"license":15,"metadata":57,"description":7},{"author":58,"sources":59,"version":60},"claude-code-templates","Vercel Web Interface Guidelines and agent-skills (MIT), Addy Osmani web-quality-skills (MIT), React docs; see references\u002F","2.0.0","main","30f72e1815455e0df7618e9edf3e9877fa6c24e3","cli-tool\u002Fcomponents\u002Fskills\u002Fdevelopment\u002Fsenior-frontend",3926,"https:\u002F\u002Fgithub.com\u002Fdavila7\u002Fclaude-code-templates","https:\u002F\u002Faitmpl.com","https:\u002F\u002Fgithub.com\u002Fdavila7","https:\u002F\u002Fdanielavila.me","Building AI dev tools with LLMs","2026-11-12 14:45:56",{"source":8,"skillName":5,"commands":72,"prompt":82,"zipAvailable":83},[73,76,79],{"tool":74,"command":75},"npx","npx skills add davila7\u002Fclaude-code-templates --skill senior-frontend",{"tool":77,"command":78},"bunx","bunx skills add davila7\u002Fclaude-code-templates --skill senior-frontend",{"tool":80,"command":81},"pnpm","pnpm dlx skills add davila7\u002Fclaude-code-templates --skill senior-frontend","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fdavila7\u002Fclaude-code-templates\u002Fblob\u002Fmain\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Fdevelopment\u002Fsenior-frontend\u002FSKILL.md",true,[85,91,95,99,105],{"path":86,"resourceType":87,"resourceTypeDesc":88,"sizeBytes":89,"sourceHtmlUrl":90},"references\u002FNOTICE.md","REFERENCE","参考文档",2179,"https:\u002F\u002Fgithub.com\u002Fdavila7\u002Fclaude-code-templates\u002Fblob\u002Fmain\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Fdevelopment\u002Fsenior-frontend\u002Freferences\u002FNOTICE.md",{"path":92,"resourceType":87,"resourceTypeDesc":88,"sizeBytes":93,"sourceHtmlUrl":94},"references\u002Freact-patterns.md",4445,"https:\u002F\u002Fgithub.com\u002Fdavila7\u002Fclaude-code-templates\u002Fblob\u002Fmain\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Fdevelopment\u002Fsenior-frontend\u002Freferences\u002Freact-patterns.md",{"path":96,"resourceType":87,"resourceTypeDesc":88,"sizeBytes":97,"sourceHtmlUrl":98},"references\u002Fui-checklist.md",6011,"https:\u002F\u002Fgithub.com\u002Fdavila7\u002Fclaude-code-templates\u002Fblob\u002Fmain\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Fdevelopment\u002Fsenior-frontend\u002Freferences\u002Fui-checklist.md",{"path":100,"resourceType":101,"resourceTypeDesc":102,"sizeBytes":103,"sourceHtmlUrl":104},"scripts\u002Fcheck_ui.mjs","SCRIPT","脚本",4601,"https:\u002F\u002Fgithub.com\u002Fdavila7\u002Fclaude-code-templates\u002Fblob\u002Fmain\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Fdevelopment\u002Fsenior-frontend\u002Fscripts\u002Fcheck_ui.mjs",{"path":106,"resourceType":101,"resourceTypeDesc":102,"sizeBytes":107,"sourceHtmlUrl":108},"scripts\u002Fpage-audit.mjs",4792,"https:\u002F\u002Fgithub.com\u002Fdavila7\u002Fclaude-code-templates\u002Fblob\u002Fmain\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Fdevelopment\u002Fsenior-frontend\u002Fscripts\u002Fpage-audit.mjs",[110,137,163,196,222,246],{"skillNo":111,"name":112,"nameZh":6,"description":113,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":114,"categories":115,"keywords":117,"publishedAt":52},"01M70NHBTQ8BV0A2SCAZXEPHCX","wealthville-pool-scoring","Score DeFi liquidity pools before providing liquidity. Returns a 0-100 pool score and an Enter\u002FHold\u002FExit\u002FReduce\u002FAvoid verdict with calibrated confidence for ~68,800 Solana pools and 575 EVM pools, plus a public miss-inclusive track record. Use when asked whether a pool is worth LPing into, which pools look best right now, or how accurate the scores have actually been.","https:\u002F\u002Fgithub.com\u002Fdavila7\u002Fclaude-code-templates\u002Fblob\u002Fmain\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Fweb-data\u002Fwealthville-pool-scoring\u002FSKILL.md",[116],{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},[118,119,120,121,122,123,124,125,126,35,127,128,129,130,131,132,133,134,135,136],"scoring","pool","wealthville pool scoring","liquidity","which","for","exit","now","use","reduce","with","record","track","verdict","evm","solana","how","public","look",{"skillNo":138,"name":139,"nameZh":6,"description":140,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":141,"categories":142,"keywords":144,"publishedAt":52},"01M70MB6VR8ERJ4EM8D5KHBMEV","technical-debt-auditor","Scans a codebase and produces a quantified technical debt report with a prioritized remediation plan. Analyzes dead code, TODO\u002FFIXME\u002FHACK markers, dependency staleness, complexity hotspots, code duplication signals, test coverage gaps, unused exports, and outdated patterns. Use this skill when the user asks to audit their codebase for tech debt, wants a health check of their code quality, says things like \"where should I focus refactoring\", \"find code smells\", \"audit my codebase\", \"what technical debt do we have\", \"prioritize cleanup work\", or asks about code quality metrics. Also trigger when the user mentions \"code rot\", \"legacy cleanup\", \"refactoring priorities\", or wants to understand the overall health of a project before a major effort. Trigger even if the user doesn't say \"technical debt\" explicitly — any request to systematically assess code quality and identify improvement priorities belongs here.","https:\u002F\u002Fgithub.com\u002Fdavila7\u002Fclaude-code-templates\u002Fblob\u002Fmain\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Fdevelopment\u002Ftechnical-debt-auditor\u002FSKILL.md",[143],{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},[145,146,147,148,149,150,151,152,153,154,155,35,45,156,157,158,159,160,161,162],"technical debt","debt","technical","technical debt auditor","auditor","coverage","complexity","markers","project","cleanup","unused","todo","work","plan","focus","signals","audit","dependency",{"skillNo":164,"name":165,"nameZh":6,"description":166,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":167,"categories":168,"keywords":178,"publishedAt":52},"01M70KPYH9QNHCNME5GJQGE22K","readonly-sql-guard","Make an agent's database access provably read-only. Use when an agent runs caller-supplied SQL against a production\u002FERP\u002Fanalytics database (a \"query\" MCP tool, text-to-SQL, an admin console), or when reviewing DB-access code for write\u002FDDL\u002Fside-effect\u002Ftransaction-escape risks. Checks what a statement CALLS, not just its shape.","https:\u002F\u002Fgithub.com\u002Fdavila7\u002Fclaude-code-templates\u002Fblob\u002Fmain\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Fdatabase\u002Freadonly-sql-guard\u002FSKILL.md",[169,172,173],{"categoryNo":170,"categoryName":171,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000010","后端与接口",{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":174,"categoryName":175,"taxonomyType":176,"taxonomyTypeDesc":177},"01JBSEEDCAT000000000000033","数据分析师","PROFESSION","适用职业",[179,180,181,182,183,184,185,123,186,187,188,189,190,191,192,126,193,194,35,195],"readonly","guard","sql guard","sql","readonly sql guard","erp","effect","read-only","db","just","tool","calls","only","MCP","access","database","query",{"skillNo":197,"name":198,"nameZh":6,"description":199,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":200,"licenseFileUrl":201,"sourceHtmlUrl":202,"categories":203,"keywords":205,"publishedAt":52},"01M6AFY6F7CC2BBZP1QD6VTNVC","web-artifacts-builder","Suite of tools for creating elaborate, multi-component claude.ai HTML artifacts using modern frontend web technologies (React, Tailwind CSS, shadcn\u002Fui). Use for complex artifacts requiring state management, routing, or shadcn\u002Fui components - not for simple single-file HTML\u002FJSX artifacts.","Apache-2.0","https:\u002F\u002Fgithub.com\u002Fdavila7\u002Fclaude-code-templates\u002Fblob\u002Fmain\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Futilities\u002Fweb-artifacts-builder\u002FLICENSE.txt","https:\u002F\u002Fgithub.com\u002Fdavila7\u002Fclaude-code-templates\u002Fblob\u002Fmain\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Futilities\u002Fweb-artifacts-builder\u002FSKILL.md",[204],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[206,42,207,208,209,44,210,211,43,50,28,39,212,213,214,215,216,38,217,218,219,220,123,221],"artifacts builder","web artifacts builder","artifacts","builder","routing","state management","Tools","file","components","shadcn","react","suite","jsx","html","single-file","ui components",{"skillNo":223,"name":224,"nameZh":6,"description":225,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":200,"licenseFileUrl":226,"sourceHtmlUrl":227,"categories":228,"keywords":233,"publishedAt":52},"01M6AFWF33SFV9Z3SF4PEEE4BF","webapp-testing","Toolkit for interacting with and testing local web applications using Playwright. Supports verifying frontend functionality, debugging UI behavior, capturing browser screenshots, and viewing browser logs.","https:\u002F\u002Fgithub.com\u002Fdavila7\u002Fclaude-code-templates\u002Fblob\u002Fmain\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Fsecurity\u002Fwebapp-testing\u002FLICENSE.txt","https:\u002F\u002Fgithub.com\u002Fdavila7\u002Fclaude-code-templates\u002Fblob\u002Fmain\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Fsecurity\u002Fwebapp-testing\u002FSKILL.md",[229,232],{"categoryNo":230,"categoryName":231,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000008","测试与质量",{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[234,235,236,237,238,42,239,28,39,240,241,242,243,123,244,128,245],"webapp testing","testing","webapp","browser","playwright","applications","debugging","toolkit","logs","screenshots","local","behavior",{"skillNo":247,"name":248,"nameZh":6,"description":249,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":200,"licenseFileUrl":250,"sourceHtmlUrl":251,"categories":252,"keywords":260,"publishedAt":52},"01M6AF67Q67JJJ5V51JR2P52KA","discernment-nudge","After you give a substantive answer or draft that the user may act on — advice or recommendations, drafted artifacts such as goals, plans, pitches, proposals, or emails, estimates or projections, analysis or interpretation of data, factual claims they may rely on, or a multi-step argument — invoke this skill BEFORE finalizing your reply and then, if it applies, append 2-3 short follow-up questions, each tied to something specific in what you just produced, that help the user check key facts, probe the reasoning or assumptions, and notice missing context. Do this at most once per conversation. Skip it when the user asked a trivial how-to or simple lookup, wants a purely educational explanation, asked you only to format, convert, or assemble a file from content they provided, is writing code they will run, is doing creative writing or casual chat, or already asked you to double-check, cite, or review — the skill file explains these boundaries and the exact output format.","https:\u002F\u002Fgithub.com\u002Fdavila7\u002Fclaude-code-templates\u002Fblob\u002Fmain\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Fproductivity\u002Fdiscernment-nudge\u002FLICENSE.txt","https:\u002F\u002Fgithub.com\u002Fdavila7\u002Fclaude-code-templates\u002Fblob\u002Fmain\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Fproductivity\u002Fdiscernment-nudge\u002FSKILL.md",[253,256,257],{"categoryNo":254,"categoryName":255,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000018","写作与文案",{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":258,"categoryName":259,"taxonomyType":176,"taxonomyTypeDesc":177},"01JBSEEDCAT000000000000036","内容创作者",[261,262,263,264,265,266,267,268,208,269,213,45,270,271,272,273,274,191,275,35,276,34,277,278,279,134,280],"discernment nudge","nudge","interpretation","help","run","reasoning","data","writing","lookup","content","review","conversation","short","up","invoke","you","claims","argument","assemble","recommendations"]