[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M719018DPS1SMD8S4AM0BZ9W":3,"skill-same:01M719018DPS1SMD8S4AM0BZ9W":67},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":18,"publishedAt":39,"linkOnly":40,"markdownContent":41,"markdownBody":42,"frontMatter":43,"refName":45,"commitSha":46,"skillDirectory":47,"forksCount":14,"repositoryHtmlUrl":48,"repositoryHomepageUrl":6,"ownerHtmlUrl":49,"ownerBlogUrl":50,"ownerDescription":51,"updatedAt":52,"install":53,"resources":66},"01M719018DPS1SMD8S4AM0BZ9W","caveman-commit",null,"Ultra-compressed commit message generator. Cuts noise from commit messages while preserving intent and reasoning. Conventional Commits format. Subject ≤50 chars, body only when \"why\" isn't obvious. Use when user says \"write a commit\", \"commit message\", \"generate commit\", \"\u002Fcommit\", or invokes \u002Fcaveman-commit. Auto-triggers when staging changes.","debuglebowski\u002Fslayzone-chromium","debuglebowski","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F6490268?v=4","01M718YQ2STXMN1TQTFF0HF2Y8","Kalle","01M718YQ3VTNESH71S0BKW4GHC",0,"GPL-3.0","https:\u002F\u002Fgithub.com\u002Fdebuglebowski\u002Fslayzone-chromium\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fcaveman-commit\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38],"commit","caveman","caveman commit","write","format","why","generate","intent","message","changes","generator","conventional commits","when","commit message","use","auto","only","triggers","messages","commits","2026-11-10 10:12:30",false,"---\nname: caveman-commit\ndescription: |\n  Ultra-compressed commit message generator. Cuts noise from commit messages while preserving intent and reasoning. Conventional Commits format. Subject ≤50 chars, body only when \"why\" isn't obvious. Use when user says \"write a commit\", \"commit message\", \"generate commit\", \"\u002Fcommit\", or invokes \u002Fcaveman-commit. Auto-triggers when staging changes.\n  \n---\n\nWrite commit messages terse and exact. Conventional Commits format. No fluff. Why over what.\n\n## Rules\n\n**Subject line:**\n- `\u003Ctype>(\u003Cscope>): \u003Cimperative summary>` — `\u003Cscope>` optional\n- Types: `feat`, `fix`, `refactor`, `perf`, `docs`, `test`, `chore`, `build`, `ci`, `style`, `revert`\n- Imperative mood: \"add\", \"fix\", \"remove\" — not \"added\", \"adds\", \"adding\"\n- ≤50 chars when possible, hard cap 72\n- No trailing period\n- Match project convention for capitalization after the colon\n\n**Body (only if needed):**\n- Skip entirely when subject is self-explanatory\n- Add body only for: non-obvious *why*, breaking changes, migration notes, linked issues\n- Wrap at 72 chars\n- Bullets `-` not `*`\n- Reference issues\u002FPRs at end: `Closes #42`, `Refs #17`\n\n**What NEVER goes in:**\n- \"This commit does X\", \"I\", \"we\", \"now\", \"currently\" — the diff says what\n- \"As requested by...\" — use Co-authored-by trailer\n- \"Generated with Claude Code\" or any AI attribution\n- Emoji (unless project convention requires)\n- Restating the file name when scope already says it\n\n## Examples\n\nDiff: new endpoint for user profile with body explaining the why\n- ❌ \"feat: add a new endpoint to get user profile information from the database\"\n- ✅\n  ```\n  feat(api): add GET \u002Fusers\u002F:id\u002Fprofile\n\n  Mobile client needs profile data without the full user payload\n  to reduce LTE bandwidth on cold-launch screens.\n\n  Closes #128\n  ```\n\nDiff: breaking API change\n- ✅\n  ```\n  feat(api)!: rename \u002Fv1\u002Forders to \u002Fv1\u002Fcheckout\n\n  BREAKING CHANGE: clients on \u002Fv1\u002Forders must migrate to \u002Fv1\u002Fcheckout\n  before 2026-06-01. Old route returns 410 after that date.\n  ```\n\n## Auto-Clarity\n\nAlways include body for: breaking changes, security fixes, data migrations, anything reverting a prior commit. Never compress these into subject-only — future debuggers need the context.\n\n## Boundaries\n\nOnly generates the commit message. Does not run `git commit`, does not stage files, does not amend. Output the message as a code block ready to paste. \"stop caveman-commit\" or \"normal mode\": revert to verbose commit style.","Write commit messages terse and exact. Conventional Commits format. No fluff. Why over what.\n\n## Rules\n\n**Subject line:**\n- `\u003Ctype>(\u003Cscope>): \u003Cimperative summary>` — `\u003Cscope>` optional\n- Types: `feat`, `fix`, `refactor`, `perf`, `docs`, `test`, `chore`, `build`, `ci`, `style`, `revert`\n- Imperative mood: \"add\", \"fix\", \"remove\" — not \"added\", \"adds\", \"adding\"\n- ≤50 chars when possible, hard cap 72\n- No trailing period\n- Match project convention for capitalization after the colon\n\n**Body (only if needed):**\n- Skip entirely when subject is self-explanatory\n- Add body only for: non-obvious *why*, breaking changes, migration notes, linked issues\n- Wrap at 72 chars\n- Bullets `-` not `*`\n- Reference issues\u002FPRs at end: `Closes #42`, `Refs #17`\n\n**What NEVER goes in:**\n- \"This commit does X\", \"I\", \"we\", \"now\", \"currently\" — the diff says what\n- \"As requested by...\" — use Co-authored-by trailer\n- \"Generated with Claude Code\" or any AI attribution\n- Emoji (unless project convention requires)\n- Restating the file name when scope already says it\n\n## Examples\n\nDiff: new endpoint for user profile with body explaining the why\n- ❌ \"feat: add a new endpoint to get user profile information from the database\"\n- ✅\n  ```\n  feat(api): add GET \u002Fusers\u002F:id\u002Fprofile\n\n  Mobile client needs profile data without the full user payload\n  to reduce LTE bandwidth on cold-launch screens.\n\n  Closes #128\n  ```\n\nDiff: breaking API change\n- ✅\n  ```\n  feat(api)!: rename \u002Fv1\u002Forders to \u002Fv1\u002Fcheckout\n\n  BREAKING CHANGE: clients on \u002Fv1\u002Forders must migrate to \u002Fv1\u002Fcheckout\n  before 2026-06-01. Old route returns 410 after that date.\n  ```\n\n## Auto-Clarity\n\nAlways include body for: breaking changes, security fixes, data migrations, anything reverting a prior commit. Never compress these into subject-only — future debuggers need the context.\n\n## Boundaries\n\nOnly generates the commit message. Does not run `git commit`, does not stage files, does not amend. Output the message as a code block ready to paste. \"stop caveman-commit\" or \"normal mode\": revert to verbose commit style.",{"name":5,"description":44},"Ultra-compressed commit message generator. Cuts noise from commit messages while preserving intent and reasoning. Conventional Commits format. Subject ≤50 chars, body only when \"why\" isn't obvious. Use when user says \"write a commit\", \"commit message\", \"generate commit\", \"\u002Fcommit\", or invokes \u002Fcaveman-commit. Auto-triggers when staging changes.\n","main","aa3633decf71dbab0f964f95c284d952bca02b63",".claude\u002Fskills\u002Fcaveman-commit","https:\u002F\u002Fgithub.com\u002Fdebuglebowski\u002Fslayzone-chromium","https:\u002F\u002Fgithub.com\u002Fdebuglebowski","https:\u002F\u002Fiamkhan.io","I hate that I love TypeScript","2026-04-17 15:33:18",{"source":8,"skillName":5,"commands":54,"prompt":64,"zipAvailable":65},[55,58,61],{"tool":56,"command":57},"npx","npx skills add debuglebowski\u002Fslayzone-chromium --skill caveman-commit",{"tool":59,"command":60},"bunx","bunx skills add debuglebowski\u002Fslayzone-chromium --skill caveman-commit",{"tool":62,"command":63},"pnpm","pnpm dlx skills add debuglebowski\u002Fslayzone-chromium --skill caveman-commit","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fdebuglebowski\u002Fslayzone-chromium\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fcaveman-commit\u002FSKILL.md",true,[],[68,91,101,120,132,143],{"skillNo":69,"name":70,"nameZh":6,"description":71,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":72,"categories":73,"keywords":79,"publishedAt":39},"01M71919NHQJ16JJQFDRY5E6WG","sync-slay-skill","Read CLI command source files and regenerate the slay SKILL.md + init.ts command reference to match","https:\u002F\u002Fgithub.com\u002Fdebuglebowski\u002Fslayzone-chromium\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fsync-slay-skill\u002FSKILL.md",[74],{"categoryNo":75,"categoryName":76,"taxonomyType":77,"taxonomyTypeDesc":78},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[80,81,82,83,84,85,86,87,88,89,90],"slay","sync slay skill","sync","source","init","reference","match","files","cli","command","read",{"skillNo":92,"name":93,"nameZh":6,"description":94,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":95,"categories":96,"keywords":97,"publishedAt":39},"01M71917WVS3TWYQ6P6Q1APEH0","sustainable-solution-question","Asks if the implementation is a sustainable solution","https:\u002F\u002Fgithub.com\u002Fdebuglebowski\u002Fslayzone-chromium\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fsustainable-solution-question\u002FSKILL.md",[],[98,99,100,34],"sustainable solution question","question","implementation",{"skillNo":102,"name":80,"nameZh":6,"description":103,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":104,"categories":105,"keywords":106,"publishedAt":39},"01M71915PNKTBQRRX9ZDPZ9SKX","Full CLI reference for slay — orchestrates all slay domain skills","https:\u002F\u002Fgithub.com\u002Fdebuglebowski\u002Fslayzone-chromium\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fslay\u002FSKILL.md",[],[80,107,34,85,108,109,110,111,112,113,114,115,116,88,117,118,119],"panels","processes","tasks","full","PTY","context","assets","browser","projects","title","domain","for","cli reference",{"skillNo":121,"name":122,"nameZh":6,"description":123,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":124,"categories":125,"keywords":126,"publishedAt":39},"01M71913QQT3NP7W68FBZEJNVS","slay-tasks","Manage tasks, subtasks, tags, and templates via the slay CLI","https:\u002F\u002Fgithub.com\u002Fdebuglebowski\u002Fslayzone-chromium\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fslay-tasks\u002FSKILL.md",[],[109,80,127,34,128,88,129,130,131],"slay tasks","templates","via","tags","manage",{"skillNo":133,"name":134,"nameZh":6,"description":135,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":136,"categories":137,"keywords":138,"publishedAt":39},"01M71912RR7H0J0ZNNTKD1272X","slay-pty","Interact with PTY terminal sessions via the slay CLI","https:\u002F\u002Fgithub.com\u002Fdebuglebowski\u002Fslayzone-chromium\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fslay-pty\u002FSKILL.md",[],[139,111,80,140,88,129,141,142,34],"slay pty","with","terminal","sessions",{"skillNo":144,"name":145,"nameZh":6,"description":146,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":147,"categories":148,"keywords":149,"publishedAt":39},"01M71910YBEQC3XRBFQKVM3MN4","slay-projects","Manage projects via the slay CLI","https:\u002F\u002Fgithub.com\u002Fdebuglebowski\u002Fslayzone-chromium\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fslay-projects\u002FSKILL.md",[],[80,115,150,34,88,129,131],"slay projects"]