[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6C3AXYA41BKYYETWXJ2T7S7":3,"skill-same:01M6C3AXYA41BKYYETWXJ2T7S7":68},{"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":37,"linkOnly":38,"markdownContent":39,"markdownBody":40,"frontMatter":41,"refName":47,"commitSha":48,"skillDirectory":49,"forksCount":50,"repositoryHtmlUrl":51,"repositoryHomepageUrl":6,"ownerHtmlUrl":52,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":53,"install":54,"resources":67},"01M6C3AXYA41BKYYETWXJ2T7S7","webhook-subscriptions",null,"Webhook subscriptions: event-driven agent runs.","jleechanorg\u002Fjleechan-skills","jleechanorg","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F221404966?v=4","01M6C1VJ99XG950X1DWPEBCBGX","01M6C1VJDK5YVDNT3362RT5WSB",6,"MIT","https:\u002F\u002Fgithub.com\u002Fjleechanorg\u002Fjleechan-skills\u002Fblob\u002Fmain\u002Fhermes\u002Fskills\u002Fdevops\u002Fwebhook-subscriptions\u002FSKILL.md",[17],{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[23,24,25,26,27,28,29,30,31,32,33,34,35,36],"webhook subscriptions","subscriptions","webhook","macos","linux","automation","windows","push","notifications","integrations","driven","events","event-driven","event","2026-11-10 10:12:30",false,"---\nname: webhook-subscriptions\ndescription: \"Webhook subscriptions: event-driven agent runs.\"\nversion: 1.1.0\nplatforms: [linux, macos, windows]\nmetadata:\n  hermes:\n    tags: [webhook, events, automation, integrations, notifications, push]\n---\n\n# Webhook Subscriptions\n\nCreate dynamic webhook subscriptions so external services (GitHub, GitLab, Stripe, CI\u002FCD, IoT sensors, monitoring tools) can trigger Hermes agent runs by POSTing events to a URL.\n\n## Setup (Required First)\n\nThe webhook platform must be enabled before subscriptions can be created. Check with:\n```bash\nhermes webhook list\n```\n\nIf it says \"Webhook platform is not enabled\", set it up:\n\n### Option 1: Setup wizard\n```bash\nhermes gateway setup\n```\nFollow the prompts to enable webhooks, set the port, and set a global HMAC secret.\n\n### Option 2: Manual config\nAdd to `~\u002F.hermes\u002Fconfig.yaml`:\n```yaml\nplatforms:\n  webhook:\n    enabled: true\n    extra:\n      host: \"0.0.0.0\"\n      port: 8644\n      secret: \"generate-a-strong-secret-here\"\n```\n\n### Option 3: Environment variables\nAdd to `~\u002F.hermes\u002F.env`:\n```bash\nWEBHOOK_ENABLED=true\nWEBHOOK_PORT=8644\nWEBHOOK_SECRET=generate-a-strong-secret-here\n```\n\nAfter configuration, start (or restart) the gateway:\n```bash\nhermes gateway run\n# Or if using systemd:\nsystemctl --user restart hermes-gateway\n```\n\nVerify it's running:\n```bash\ncurl http:\u002F\u002Flocalhost:8644\u002Fhealth\n```\n\n## Commands\n\nAll management is via the `hermes webhook` CLI command:\n\n### Create a subscription\n```bash\nhermes webhook subscribe \u003Cname> \\\n  --prompt \"Prompt template with {payload.fields}\" \\\n  --events \"event1,event2\" \\\n  --description \"What this does\" \\\n  --skills \"skill1,skill2\" \\\n  --deliver telegram \\\n  --deliver-chat-id \"12345\" \\\n  --secret \"optional-custom-secret\"\n```\n\nReturns the webhook URL and HMAC secret. The user configures their service to POST to that URL.\n\n### List subscriptions\n```bash\nhermes webhook list\n```\n\n### Remove a subscription\n```bash\nhermes webhook remove \u003Cname>\n```\n\n### Test a subscription\n```bash\nhermes webhook test \u003Cname>\nhermes webhook test \u003Cname> --payload '{\"key\": \"value\"}'\n```\n\n## Prompt Templates\n\nPrompts support `{dot.notation}` for accessing nested payload fields:\n\n- `{issue.title}` — GitHub issue title\n- `{pull_request.user.login}` — PR author\n- `{data.object.amount}` — Stripe payment amount\n- `{sensor.temperature}` — IoT sensor reading\n\nIf no prompt is specified, the full JSON payload is dumped into the agent prompt.\n\n## Common Patterns\n\n### GitHub: new issues\n```bash\nhermes webhook subscribe github-issues \\\n  --events \"issues\" \\\n  --prompt \"New GitHub issue #{issue.number}: {issue.title}\\n\\nAction: {action}\\nAuthor: {issue.user.login}\\nBody:\\n{issue.body}\\n\\nPlease triage this issue.\" \\\n  --deliver telegram \\\n  --deliver-chat-id \"-100123456789\"\n```\n\nThen in GitHub repo Settings → Webhooks → Add webhook:\n- Payload URL: the returned webhook_url\n- Content type: application\u002Fjson\n- Secret: the returned secret\n- Events: \"Issues\"\n\n### GitHub: PR reviews\n```bash\nhermes webhook subscribe github-prs \\\n  --events \"pull_request\" \\\n  --prompt \"PR #{pull_request.number} {action}: {pull_request.title}\\nBy: {pull_request.user.login}\\nBranch: {pull_request.head.ref}\\n\\n{pull_request.body}\" \\\n  --skills \"github-code-review\" \\\n  --deliver github_comment\n```\n\n### Stripe: payment events\n```bash\nhermes webhook subscribe stripe-payments \\\n  --events \"payment_intent.succeeded,payment_intent.payment_failed\" \\\n  --prompt \"Payment {data.object.status}: {data.object.amount} cents from {data.object.receipt_email}\" \\\n  --deliver telegram \\\n  --deliver-chat-id \"-100123456789\"\n```\n\n### CI\u002FCD: build notifications\n```bash\nhermes webhook subscribe ci-builds \\\n  --events \"pipeline\" \\\n  --prompt \"Build {object_attributes.status} on {project.name} branch {object_attributes.ref}\\nCommit: {commit.message}\" \\\n  --deliver discord \\\n  --deliver-chat-id \"1234567890\"\n```\n\n### Generic monitoring alert\n```bash\nhermes webhook subscribe alerts \\\n  --prompt \"Alert: {alert.name}\\nSeverity: {alert.severity}\\nMessage: {alert.message}\\n\\nPlease investigate and suggest remediation.\" \\\n  --deliver origin\n```\n\n### Direct delivery (no agent, zero LLM cost)\n\nFor use cases where you just want to push a notification through to a user's chat — no reasoning, no agent loop — add `--deliver-only`. The rendered `--prompt` template becomes the literal message body and is dispatched directly to the target adapter.\n\nUse this for:\n- External service push notifications (Supabase\u002FFirebase webhooks → Telegram)\n- Monitoring alerts that should forward verbatim\n- Inter-agent pings where one agent is telling another agent's user something\n- Any webhook where an LLM round trip would be wasted effort\n\n```bash\nhermes webhook subscribe antenna-matches \\\n  --deliver telegram \\\n  --deliver-chat-id \"123456789\" \\\n  --deliver-only \\\n  --prompt \"? New match: {match.user_name} matched with you!\" \\\n  --description \"Antenna match notifications\"\n```\n\nThe POST returns `200 OK` on successful delivery, `502` on target failure — so upstream services can retry intelligently. HMAC auth, rate limits, and idempotency still apply.\n\nRequires `--deliver` to be a real target (telegram, discord, slack, github_comment, etc.) — `--deliver log` is rejected because log-only direct delivery is pointless.\n\n## Security\n\n- Each subscription gets an auto-generated HMAC-SHA256 secret (or provide your own with `--secret`)\n- The webhook adapter validates signatures on every incoming POST\n- Static routes from config.yaml cannot be overwritten by dynamic subscriptions\n- Subscriptions persist to `~\u002F.hermes\u002Fwebhook_subscriptions.json`\n\n## How It Works\n\n1. `hermes webhook subscribe` writes to `~\u002F.hermes\u002Fwebhook_subscriptions.json`\n2. The webhook adapter hot-reloads this file on each incoming request (mtime-gated, negligible overhead)\n3. When a POST arrives matching a route, the adapter formats the prompt and triggers an agent run\n4. The agent's response is delivered to the configured target (Telegram, Discord, GitHub comment, etc.)\n\n## Troubleshooting\n\nIf webhooks aren't working:\n\n1. **Is the gateway running?** Check with `systemctl --user status hermes-gateway` or `ps aux | grep gateway`\n2. **Is the webhook server listening?** `curl http:\u002F\u002Flocalhost:8644\u002Fhealth` should return `{\"status\": \"ok\"}`\n3. **Check gateway logs:** `grep webhook ~\u002F.hermes\u002Flogs\u002Fgateway.log | tail -20`\n4. **Signature mismatch?** Verify the secret in your service matches the one from `hermes webhook list`. GitHub sends `X-Hub-Signature-256`, GitLab sends `X-Gitlab-Token`.\n5. **Firewall\u002FNAT?** The webhook URL must be reachable from the service. For local development, use a tunnel (ngrok, cloudflared).\n6. **Wrong event type?** Check `--events` filter matches what the service sends. Use `hermes webhook test \u003Cname>` to verify the route works.\n","# Webhook Subscriptions\n\nCreate dynamic webhook subscriptions so external services (GitHub, GitLab, Stripe, CI\u002FCD, IoT sensors, monitoring tools) can trigger Hermes agent runs by POSTing events to a URL.\n\n## Setup (Required First)\n\nThe webhook platform must be enabled before subscriptions can be created. Check with:\n```bash\nhermes webhook list\n```\n\nIf it says \"Webhook platform is not enabled\", set it up:\n\n### Option 1: Setup wizard\n```bash\nhermes gateway setup\n```\nFollow the prompts to enable webhooks, set the port, and set a global HMAC secret.\n\n### Option 2: Manual config\nAdd to `~\u002F.hermes\u002Fconfig.yaml`:\n```yaml\nplatforms:\n  webhook:\n    enabled: true\n    extra:\n      host: \"0.0.0.0\"\n      port: 8644\n      secret: \"generate-a-strong-secret-here\"\n```\n\n### Option 3: Environment variables\nAdd to `~\u002F.hermes\u002F.env`:\n```bash\nWEBHOOK_ENABLED=true\nWEBHOOK_PORT=8644\nWEBHOOK_SECRET=generate-a-strong-secret-here\n```\n\nAfter configuration, start (or restart) the gateway:\n```bash\nhermes gateway run\n# Or if using systemd:\nsystemctl --user restart hermes-gateway\n```\n\nVerify it's running:\n```bash\ncurl http:\u002F\u002Flocalhost:8644\u002Fhealth\n```\n\n## Commands\n\nAll management is via the `hermes webhook` CLI command:\n\n### Create a subscription\n```bash\nhermes webhook subscribe \u003Cname> \\\n  --prompt \"Prompt template with {payload.fields}\" \\\n  --events \"event1,event2\" \\\n  --description \"What this does\" \\\n  --skills \"skill1,skill2\" \\\n  --deliver telegram \\\n  --deliver-chat-id \"12345\" \\\n  --secret \"optional-custom-secret\"\n```\n\nReturns the webhook URL and HMAC secret. The user configures their service to POST to that URL.\n\n### List subscriptions\n```bash\nhermes webhook list\n```\n\n### Remove a subscription\n```bash\nhermes webhook remove \u003Cname>\n```\n\n### Test a subscription\n```bash\nhermes webhook test \u003Cname>\nhermes webhook test \u003Cname> --payload '{\"key\": \"value\"}'\n```\n\n## Prompt Templates\n\nPrompts support `{dot.notation}` for accessing nested payload fields:\n\n- `{issue.title}` — GitHub issue title\n- `{pull_request.user.login}` — PR author\n- `{data.object.amount}` — Stripe payment amount\n- `{sensor.temperature}` — IoT sensor reading\n\nIf no prompt is specified, the full JSON payload is dumped into the agent prompt.\n\n## Common Patterns\n\n### GitHub: new issues\n```bash\nhermes webhook subscribe github-issues \\\n  --events \"issues\" \\\n  --prompt \"New GitHub issue #{issue.number}: {issue.title}\\n\\nAction: {action}\\nAuthor: {issue.user.login}\\nBody:\\n{issue.body}\\n\\nPlease triage this issue.\" \\\n  --deliver telegram \\\n  --deliver-chat-id \"-100123456789\"\n```\n\nThen in GitHub repo Settings → Webhooks → Add webhook:\n- Payload URL: the returned webhook_url\n- Content type: application\u002Fjson\n- Secret: the returned secret\n- Events: \"Issues\"\n\n### GitHub: PR reviews\n```bash\nhermes webhook subscribe github-prs \\\n  --events \"pull_request\" \\\n  --prompt \"PR #{pull_request.number} {action}: {pull_request.title}\\nBy: {pull_request.user.login}\\nBranch: {pull_request.head.ref}\\n\\n{pull_request.body}\" \\\n  --skills \"github-code-review\" \\\n  --deliver github_comment\n```\n\n### Stripe: payment events\n```bash\nhermes webhook subscribe stripe-payments \\\n  --events \"payment_intent.succeeded,payment_intent.payment_failed\" \\\n  --prompt \"Payment {data.object.status}: {data.object.amount} cents from {data.object.receipt_email}\" \\\n  --deliver telegram \\\n  --deliver-chat-id \"-100123456789\"\n```\n\n### CI\u002FCD: build notifications\n```bash\nhermes webhook subscribe ci-builds \\\n  --events \"pipeline\" \\\n  --prompt \"Build {object_attributes.status} on {project.name} branch {object_attributes.ref}\\nCommit: {commit.message}\" \\\n  --deliver discord \\\n  --deliver-chat-id \"1234567890\"\n```\n\n### Generic monitoring alert\n```bash\nhermes webhook subscribe alerts \\\n  --prompt \"Alert: {alert.name}\\nSeverity: {alert.severity}\\nMessage: {alert.message}\\n\\nPlease investigate and suggest remediation.\" \\\n  --deliver origin\n```\n\n### Direct delivery (no agent, zero LLM cost)\n\nFor use cases where you just want to push a notification through to a user's chat — no reasoning, no agent loop — add `--deliver-only`. The rendered `--prompt` template becomes the literal message body and is dispatched directly to the target adapter.\n\nUse this for:\n- External service push notifications (Supabase\u002FFirebase webhooks → Telegram)\n- Monitoring alerts that should forward verbatim\n- Inter-agent pings where one agent is telling another agent's user something\n- Any webhook where an LLM round trip would be wasted effort\n\n```bash\nhermes webhook subscribe antenna-matches \\\n  --deliver telegram \\\n  --deliver-chat-id \"123456789\" \\\n  --deliver-only \\\n  --prompt \"? New match: {match.user_name} matched with you!\" \\\n  --description \"Antenna match notifications\"\n```\n\nThe POST returns `200 OK` on successful delivery, `502` on target failure — so upstream services can retry intelligently. HMAC auth, rate limits, and idempotency still apply.\n\nRequires `--deliver` to be a real target (telegram, discord, slack, github_comment, etc.) — `--deliver log` is rejected because log-only direct delivery is pointless.\n\n## Security\n\n- Each subscription gets an auto-generated HMAC-SHA256 secret (or provide your own with `--secret`)\n- The webhook adapter validates signatures on every incoming POST\n- Static routes from config.yaml cannot be overwritten by dynamic subscriptions\n- Subscriptions persist to `~\u002F.hermes\u002Fwebhook_subscriptions.json`\n\n## How It Works\n\n1. `hermes webhook subscribe` writes to `~\u002F.hermes\u002Fwebhook_subscriptions.json`\n2. The webhook adapter hot-reloads this file on each incoming request (mtime-gated, negligible overhead)\n3. When a POST arrives matching a route, the adapter formats the prompt and triggers an agent run\n4. The agent's response is delivered to the configured target (Telegram, Discord, GitHub comment, etc.)\n\n## Troubleshooting\n\nIf webhooks aren't working:\n\n1. **Is the gateway running?** Check with `systemctl --user status hermes-gateway` or `ps aux | grep gateway`\n2. **Is the webhook server listening?** `curl http:\u002F\u002Flocalhost:8644\u002Fhealth` should return `{\"status\": \"ok\"}`\n3. **Check gateway logs:** `grep webhook ~\u002F.hermes\u002Flogs\u002Fgateway.log | tail -20`\n4. **Signature mismatch?** Verify the secret in your service matches the one from `hermes webhook list`. GitHub sends `X-Hub-Signature-256`, GitLab sends `X-Gitlab-Token`.\n5. **Firewall\u002FNAT?** The webhook URL must be reachable from the service. For local development, use a tunnel (ngrok, cloudflared).\n6. **Wrong event type?** Check `--events` filter matches what the service sends. Use `hermes webhook test \u003Cname>` to verify the route works.\n",{"name":5,"version":42,"metadata":43,"platforms":46,"description":7},"1.1.0",{"hermes":44},{"tags":45},[25,34,28,32,31,30],[27,26,29],"main","42ccd02cbf5e8e47839dc3eab6fc754dc6b339cf","hermes\u002Fskills\u002Fdevops\u002Fwebhook-subscriptions",0,"https:\u002F\u002Fgithub.com\u002Fjleechanorg\u002Fjleechan-skills","https:\u002F\u002Fgithub.com\u002Fjleechanorg","2026-11-11 22:19:36",{"source":8,"skillName":5,"commands":55,"prompt":65,"zipAvailable":66},[56,59,62],{"tool":57,"command":58},"npx","npx skills add jleechanorg\u002Fjleechan-skills --skill webhook-subscriptions",{"tool":60,"command":61},"bunx","bunx skills add jleechanorg\u002Fjleechan-skills --skill webhook-subscriptions",{"tool":63,"command":64},"pnpm","pnpm dlx skills add jleechanorg\u002Fjleechan-skills --skill webhook-subscriptions","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fjleechanorg\u002Fjleechan-skills\u002Fblob\u002Fmain\u002Fhermes\u002Fskills\u002Fdevops\u002Fwebhook-subscriptions\u002FSKILL.md",true,[],[69,87,109,123,137,153],{"skillNo":70,"name":71,"nameZh":6,"description":72,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":73,"categories":74,"keywords":75,"publishedAt":37},"01M716Y5MTJ6GYJZ2ATXCJK8G4","instinct","Use when the user invokes \u002Finstinct or \u002Fin, or asks to \"message Instinct\", \"ask Instinct\", \"tell Instinct\", \"check Instinct\", or read replies from the configured peer assistant. iMessage first, WhatsApp Web as fallback.","https:\u002F\u002Fgithub.com\u002Fjleechanorg\u002Fjleechan-skills\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Finstinct\u002FSKILL.md",[],[71,76,77,78,79,80,81,82,83,84,85,86],"user","when","replies","check","use","identity","whatsapp","gmail","read","message","ask",{"skillNo":88,"name":89,"nameZh":6,"description":90,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":91,"categories":92,"keywords":98,"publishedAt":37},"01M716Y4HF7FVVMJSA2CCVN5VF","hr","Compatibility alias for history-resume; produce the same fresh-state, provenance-aware resume briefing.","https:\u002F\u002Fgithub.com\u002Fjleechanorg\u002Fjleechan-skills\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fhr\u002FSKILL.md",[93],{"categoryNo":94,"categoryName":95,"taxonomyType":96,"taxonomyTypeDesc":97},"01JBSEEDCAT000000000000038","人力资源","PROFESSION","适用职业",[89,99,100,101,102,103,104,105,106,107,108],"resume","compatibility","provenance","for","history","produce","alias","briefing","state","fresh",{"skillNo":110,"name":111,"nameZh":6,"description":112,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":113,"categories":114,"keywords":116,"publishedAt":37},"01M716Y1FFNFKFJYYKF8HQA6T8","history-resume","Resume briefing for the current repository branch or worktree using fresh state and admitted history sources.","https:\u002F\u002Fgithub.com\u002Fjleechanorg\u002Fjleechan-skills\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fhistory-resume\u002FSKILL.md",[115],{"categoryNo":94,"categoryName":95,"taxonomyType":96,"taxonomyTypeDesc":97},[103,99,117,118,76,119,106,120,102,121,122,107,108],"history resume","branch","analysis","repository","worktree","sources",{"skillNo":124,"name":125,"nameZh":6,"description":126,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":127,"categories":128,"keywords":129,"publishedAt":37},"01M716XWXJ8EPHK4RH9T14TR85","grok","Alias for the canonical grokbot browser conversation workflow; \u002Fgrok talks to the Grok bot the same way \u002Fdot talks to Dot.","https:\u002F\u002Fgithub.com\u002Fjleechanorg\u002Fjleechan-skills\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fgrok\u002FSKILL.md",[],[125,130,131,132,102,133,105,134,135,136],"dot","bot","workflow","canonical","conversation","browser","grokbot",{"skillNo":138,"name":139,"nameZh":6,"description":140,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":141,"categories":142,"keywords":143,"publishedAt":37},"01M70N9Q07DTE0EW5KFXMMMSJ0","codexa-bench","Compare `codexa` and normal `codex` on a fair split of comparable work by default; use `--strict` for duplicate runs of the exact same task.","https:\u002F\u002Fgithub.com\u002Fjleechanorg\u002Fjleechan-skills\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fcodexa-bench\u002FSKILL.md",[],[144,145,146,80,147,102,148,149,150,151,152],"codexa bench","work","split","default","duplicate","task","compare","normal","codex",{"skillNo":154,"name":155,"nameZh":6,"description":156,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":157,"licenseFileUrl":158,"sourceHtmlUrl":159,"categories":160,"keywords":170,"publishedAt":37},"01M6C24S2X60SP8BBFGAEKPEGW","frontend-design","Create distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, artifacts, posters, or applications (examples include websites, landing pages, dashboards, React components, HTML\u002FCSS layouts, or when styling\u002Fbeautifying any web UI). Generates creative, polished code and UI design that avoids generic AI aesthetics.","Apache-2.0","https:\u002F\u002Fgithub.com\u002Fjleechanorg\u002Fjleechan-skills\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Ffrontend-design\u002FLICENSE.txt","https:\u002F\u002Fgithub.com\u002Fjleechanorg\u002Fjleechan-skills\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Ffrontend-design\u002FSKILL.md",[161,164,167],{"categoryNo":162,"categoryName":163,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000009","前端开发",{"categoryNo":165,"categoryName":166,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000015","视觉设计",{"categoryNo":168,"categoryName":169,"taxonomyType":96,"taxonomyTypeDesc":97},"01JBSEEDCAT000000000000032","设计师",[171,172,173,80,174,175,176,76,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,77,195],"frontend","design","frontend design","generic","ui design","react","html","components","code","artifacts","ui","aesthetics","Production","web components","landing","applications","quality","web","css","create","examples","with","react components","web ui","pages"]