[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M72B7MVBEXY2S6FMMX8HNKB3":3,"skill-same:01M72B7MVBEXY2S6FMMX8HNKB3":49},{"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":17,"publishedAt":18,"linkOnly":19,"markdownContent":20,"markdownBody":21,"frontMatter":22,"refName":23,"commitSha":24,"skillDirectory":25,"forksCount":13,"repositoryHtmlUrl":26,"repositoryHomepageUrl":6,"ownerHtmlUrl":27,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":28,"install":29,"resources":42},"01M72B7MVBEXY2S6FMMX8HNKB3","commit-smart",null,"Analyze staged\u002Funstaged changes and create semantic conventional commits with context about WHY, not just WHAT. Auto-detects commit type and scope from the diff. Supports optional type\u002Fscope arguments. Usage - \u002Fcommit-smart, \u002Fcommit-smart fix, \u002Fcommit-smart refactor api","Sansar35\u002Fclaude-agent","Sansar35","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F145020281?v=4","01M724CQ2SCC86MGNSD87D0D4K","01M724CQ3965G9WJ3QXE3AJ5YY",1,"MIT","https:\u002F\u002Fgithub.com\u002FSansar35\u002Fclaude-agent\u002Fblob\u002Fmain\u002Fclaude-config\u002Fskills\u002Fcommit-smart\u002FSKILL.md",[],[],"2026-11-10 18:39:20",false,"---\nname: commit-smart\ndescription: Analyze staged\u002Funstaged changes and create semantic conventional commits with context about WHY, not just WHAT. Auto-detects commit type and scope from the diff. Supports optional type\u002Fscope arguments. Usage - \u002Fcommit-smart, \u002Fcommit-smart fix, \u002Fcommit-smart refactor api\n---\n\n# Smart Commit\n\nCreate meaningful conventional commits by analyzing your actual changes.\n\n## Workflow\n\n### Step 1: Assess the working tree\n\nRun these commands to understand the current state:\n\n```bash\ngit status\ngit diff --stat\ngit diff --cached --stat\n```\n\n### Step 2: Handle unstaged changes\n\nIf nothing is staged (`git diff --cached` is empty):\n\n1. Show the user what files have changed\n2. Suggest what to stage based on logical grouping (e.g., \"these 3 files are all related to the auth refactor\")\n3. Ask if they want to stage all, or select specific files\n4. Stage the approved files with `git add \u003Cfiles>`\n\nIf changes are already staged, proceed to analysis.\n\n### Step 3: Analyze the diff\n\nRead the full staged diff:\n\n```bash\ngit diff --cached\n```\n\nDetermine the commit type from the changes:\n\n| Signal | Type |\n|--------|------|\n| New files with new functionality | `feat` |\n| New test files or test additions | `test` |\n| Changes to existing logic fixing incorrect behavior | `fix` |\n| Structural changes without behavior change | `refactor` |\n| package.json, tsconfig, CI config changes | `chore` |\n| Build\u002Fbundler config changes | `build` |\n| README, docs, comments only | `docs` |\n| Formatting, whitespace, semicolons only | `style` |\n| Performance improvements | `perf` |\n\nDetermine the scope from the primary directory or module affected:\n- `src\u002Fapi\u002F` -> `api`\n- `src\u002Fcomponents\u002Fauth\u002F` -> `auth`\n- `tests\u002F` -> `tests`\n- Root config files -> omit scope\n- Multiple unrelated areas -> omit scope\n\n### Step 4: Check for user overrides\n\nIf the user provided arguments via `$ARGUMENTS`:\n- Single word (e.g., `fix`) -> use as commit type\n- Two words (e.g., `refactor api`) -> use as type and scope\n- Otherwise -> use auto-detected values\n\n### Step 5: Compose the commit message\n\nFormat: `type(scope): imperative short description`\n\nRules:\n- Subject line max 72 characters\n- Use imperative mood (\"add\", \"fix\", \"refactor\", not \"added\", \"fixes\")\n- Don't end with a period\n- Body explains **WHY** this change was made, not what changed (the diff shows what)\n- If changes are trivial (typo fix, formatting), skip the body\n\nExample:\n```\nfeat(auth): add JWT refresh token rotation\n\nTokens were expiring mid-session for users with slow connections.\nRotating refresh tokens extends the session without compromising\nsecurity, since each refresh token can only be used once.\n```\n\n### Step 6: Confirm and commit\n\nShow the user the proposed commit message and ask for confirmation.\n\nIf confirmed, run:\n```bash\ngit commit -m \"\u003Cmessage>\"\n```\n\nThen verify with:\n```bash\ngit log --oneline -1\n```\n\nShow the committed hash and message.\n\n## Tips\n\n- Run after completing a logical unit of work, not after every file change\n- If the diff is too large for one commit, suggest splitting into multiple commits\n- For breaking changes, add `!` after the scope: `feat(api)!: change response format`\n- The body should answer \"if someone reads this commit in 6 months, will they understand WHY?\"\n","# Smart Commit\n\nCreate meaningful conventional commits by analyzing your actual changes.\n\n## Workflow\n\n### Step 1: Assess the working tree\n\nRun these commands to understand the current state:\n\n```bash\ngit status\ngit diff --stat\ngit diff --cached --stat\n```\n\n### Step 2: Handle unstaged changes\n\nIf nothing is staged (`git diff --cached` is empty):\n\n1. Show the user what files have changed\n2. Suggest what to stage based on logical grouping (e.g., \"these 3 files are all related to the auth refactor\")\n3. Ask if they want to stage all, or select specific files\n4. Stage the approved files with `git add \u003Cfiles>`\n\nIf changes are already staged, proceed to analysis.\n\n### Step 3: Analyze the diff\n\nRead the full staged diff:\n\n```bash\ngit diff --cached\n```\n\nDetermine the commit type from the changes:\n\n| Signal | Type |\n|--------|------|\n| New files with new functionality | `feat` |\n| New test files or test additions | `test` |\n| Changes to existing logic fixing incorrect behavior | `fix` |\n| Structural changes without behavior change | `refactor` |\n| package.json, tsconfig, CI config changes | `chore` |\n| Build\u002Fbundler config changes | `build` |\n| README, docs, comments only | `docs` |\n| Formatting, whitespace, semicolons only | `style` |\n| Performance improvements | `perf` |\n\nDetermine the scope from the primary directory or module affected:\n- `src\u002Fapi\u002F` -> `api`\n- `src\u002Fcomponents\u002Fauth\u002F` -> `auth`\n- `tests\u002F` -> `tests`\n- Root config files -> omit scope\n- Multiple unrelated areas -> omit scope\n\n### Step 4: Check for user overrides\n\nIf the user provided arguments via `$ARGUMENTS`:\n- Single word (e.g., `fix`) -> use as commit type\n- Two words (e.g., `refactor api`) -> use as type and scope\n- Otherwise -> use auto-detected values\n\n### Step 5: Compose the commit message\n\nFormat: `type(scope): imperative short description`\n\nRules:\n- Subject line max 72 characters\n- Use imperative mood (\"add\", \"fix\", \"refactor\", not \"added\", \"fixes\")\n- Don't end with a period\n- Body explains **WHY** this change was made, not what changed (the diff shows what)\n- If changes are trivial (typo fix, formatting), skip the body\n\nExample:\n```\nfeat(auth): add JWT refresh token rotation\n\nTokens were expiring mid-session for users with slow connections.\nRotating refresh tokens extends the session without compromising\nsecurity, since each refresh token can only be used once.\n```\n\n### Step 6: Confirm and commit\n\nShow the user the proposed commit message and ask for confirmation.\n\nIf confirmed, run:\n```bash\ngit commit -m \"\u003Cmessage>\"\n```\n\nThen verify with:\n```bash\ngit log --oneline -1\n```\n\nShow the committed hash and message.\n\n## Tips\n\n- Run after completing a logical unit of work, not after every file change\n- If the diff is too large for one commit, suggest splitting into multiple commits\n- For breaking changes, add `!` after the scope: `feat(api)!: change response format`\n- The body should answer \"if someone reads this commit in 6 months, will they understand WHY?\"\n",{"name":5,"description":7},"main","d046d088ce5a79a083f0abc0fe1b7ded73bc5b1f","claude-config\u002Fskills\u002Fcommit-smart","https:\u002F\u002Fgithub.com\u002FSansar35\u002Fclaude-agent","https:\u002F\u002Fgithub.com\u002FSansar35","2026-05-10 16:04:53",{"source":8,"skillName":5,"commands":30,"prompt":40,"zipAvailable":41},[31,34,37],{"tool":32,"command":33},"npx","npx skills add Sansar35\u002Fclaude-agent --skill commit-smart",{"tool":35,"command":36},"bunx","bunx skills add Sansar35\u002Fclaude-agent --skill commit-smart",{"tool":38,"command":39},"pnpm","pnpm dlx skills add Sansar35\u002Fclaude-agent --skill commit-smart","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FSansar35\u002Fclaude-agent\u002Fblob\u002Fmain\u002Fclaude-config\u002Fskills\u002Fcommit-smart\u002FSKILL.md",true,[43],{"path":44,"resourceType":45,"resourceTypeDesc":46,"sizeBytes":47,"sourceHtmlUrl":48},".skill-source.json","REFERENCE","参考文档",495,"https:\u002F\u002Fgithub.com\u002FSansar35\u002Fclaude-agent\u002Fblob\u002Fmain\u002Fclaude-config\u002Fskills\u002Fcommit-smart\u002F.skill-source.json",[50,57,64,71,78,86],{"skillNo":51,"name":52,"nameZh":6,"description":53,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":54,"categories":55,"keywords":56,"publishedAt":18},"01M72DVAN1JYEA302MT0C5MGD6","zustand-store-ts","Create Zustand stores following established patterns with proper TypeScript types and middleware.","https:\u002F\u002Fgithub.com\u002FSansar35\u002Fclaude-agent\u002Fblob\u002Fmain\u002Fclaude-config\u002Fskills\u002Fzustand-store-ts\u002FSKILL.md",[],[],{"skillNo":58,"name":59,"nameZh":6,"description":60,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":61,"categories":62,"keywords":63,"publishedAt":18},"01M72DV8J5NBRRM4RPDFRV95N7","zod-validation-expert","Expert in Zod — TypeScript-first schema validation. Covers parsing, custom errors, refinements, type inference, and integration with React Hook Form, Next.js, and tRPC.","https:\u002F\u002Fgithub.com\u002FSansar35\u002Fclaude-agent\u002Fblob\u002Fmain\u002Fclaude-config\u002Fskills\u002Fzod-validation-expert\u002FSKILL.md",[],[],{"skillNo":65,"name":66,"nameZh":6,"description":67,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":68,"categories":69,"keywords":70,"publishedAt":18},"01M72DV5EMHW0BHP9BZ167MDCB","zinc-database","Access ZINC (230M+ purchasable compounds). Search by ZINC ID\u002FSMILES, similarity searches, 3D-ready structures for docking, analog discovery, for virtual screening and drug discovery.","https:\u002F\u002Fgithub.com\u002FSansar35\u002Fclaude-agent\u002Fblob\u002Fmain\u002Fclaude-config\u002Fskills\u002Fzinc-database\u002FSKILL.md",[],[],{"skillNo":72,"name":73,"nameZh":6,"description":74,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":75,"categories":76,"keywords":77,"publishedAt":18},"01M72DV216QY0E693ZPEVQ0DBS","zarr-python","Chunked N-D arrays for cloud storage. Compressed arrays, parallel I\u002FO, S3\u002FGCS integration, NumPy\u002FDask\u002FXarray compatible, for large-scale scientific computing pipelines.","https:\u002F\u002Fgithub.com\u002FSansar35\u002Fclaude-agent\u002Fblob\u002Fmain\u002Fclaude-config\u002Fskills\u002Fzarr-python\u002FSKILL.md",[],[],{"skillNo":79,"name":80,"nameZh":6,"description":81,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":82,"sourceHtmlUrl":83,"categories":84,"keywords":85,"publishedAt":18},"01M72DTXQREMCRKA8NHCVKHN4W","zapier-workflows","Manage and trigger pre-built Zapier workflows and MCP tool orchestration. Use when user mentions workflows, Zaps, automations, daily digest, research, search, lead tracking, expenses, or asks to \"run\" any process. Also handles Perplexity-based research and Google Sheets data tracking.","https:\u002F\u002Fgithub.com\u002FSansar35\u002Fclaude-agent\u002Fblob\u002Fmain\u002Fclaude-config\u002Fskills\u002Fzapier-workflows\u002FLICENSE.txt","https:\u002F\u002Fgithub.com\u002FSansar35\u002Fclaude-agent\u002Fblob\u002Fmain\u002Fclaude-config\u002Fskills\u002Fzapier-workflows\u002FSKILL.md",[],[],{"skillNo":87,"name":88,"nameZh":6,"description":89,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":90,"categories":91,"keywords":92,"publishedAt":18},"01M72DTT17TBSJ0Y8J2XZ4C9TZ","zapier-make-patterns","No-code automation democratizes workflow building. Zapier and Make (formerly Integromat) let non-developers automate business processes without writing code. But no-code doesn't mean no-complexity - these platforms have their own patterns, pitfalls, and breaking points.  This skill covers when to use which platform, how to build reliable automations, and when to graduate to code-based solutions. Key insight: Zapier optimizes for simplicity and integrations (7000+ apps), Make optimizes for power","https:\u002F\u002Fgithub.com\u002FSansar35\u002Fclaude-agent\u002Fblob\u002Fmain\u002Fclaude-config\u002Fskills\u002Fzapier-make-patterns\u002FSKILL.md",[],[]]