[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6QSZPYY2F42WKAYB62ZE57E":3,"skill-same:01M6QSZPYY2F42WKAYB62ZE57E":93},{"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":38,"linkOnly":39,"markdownContent":40,"markdownBody":41,"frontMatter":42,"refName":65,"commitSha":66,"skillDirectory":67,"forksCount":68,"repositoryHtmlUrl":69,"repositoryHomepageUrl":6,"ownerHtmlUrl":70,"ownerBlogUrl":71,"ownerDescription":6,"updatedAt":72,"install":73,"resources":86},"01M6QSZPYY2F42WKAYB62ZE57E","guard",null,"Full safety mode: destructive command warnings + directory-scoped edits.\nCombines \u002Fcareful (warns before rm -rf, DROP TABLE, force-push, etc.) with\n\u002Ffreeze (blocks edits outside a specified directory). Use for maximum safety\nwhen touching prod or debugging live systems. Use when asked to \"guard mode\",\n\"full safety\", \"lock it down\", or \"maximum safety\". (gstack)","esopian\u002Fblue-oak-audit","esopian","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F4691748?v=4","01M6QSNF0QB0M7KGHD0M42Y42C","Evan Mallory","01M6QSNF6Y0HD86QKJ4WNVW1KY",2,"MIT","https:\u002F\u002Fgithub.com\u002Fesopian\u002Fblue-oak-audit\u002Fblob\u002Fmaster\u002F.claude\u002Fskills\u002Fgstack\u002Fguard\u002FSKILL.md",[],[5,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37],"use","down","scoped","for","lock","mode","rm","with","drop","gstack","directory","command","check","Bash","freeze","careful","boundary","push","debugging","2026-11-10 10:12:30",false,"---\nname: guard\nversion: 0.1.0\ndescription: |\n  Full safety mode: destructive command warnings + directory-scoped edits.\n  Combines \u002Fcareful (warns before rm -rf, DROP TABLE, force-push, etc.) with\n  \u002Ffreeze (blocks edits outside a specified directory). Use for maximum safety\n  when touching prod or debugging live systems. Use when asked to \"guard mode\",\n  \"full safety\", \"lock it down\", or \"maximum safety\". (gstack)\nallowed-tools:\n  - Bash\n  - Read\n  - AskUserQuestion\nhooks:\n  PreToolUse:\n    - matcher: \"Bash\"\n      hooks:\n        - type: command\n          command: \"bash ${CLAUDE_SKILL_DIR}\u002F..\u002Fcareful\u002Fbin\u002Fcheck-careful.sh\"\n          statusMessage: \"Checking for destructive commands...\"\n    - matcher: \"Edit\"\n      hooks:\n        - type: command\n          command: \"bash ${CLAUDE_SKILL_DIR}\u002F..\u002Ffreeze\u002Fbin\u002Fcheck-freeze.sh\"\n          statusMessage: \"Checking freeze boundary...\"\n    - matcher: \"Write\"\n      hooks:\n        - type: command\n          command: \"bash ${CLAUDE_SKILL_DIR}\u002F..\u002Ffreeze\u002Fbin\u002Fcheck-freeze.sh\"\n          statusMessage: \"Checking freeze boundary...\"\n---\n\u003C!-- AUTO-GENERATED from SKILL.md.tmpl — do not edit directly -->\n\u003C!-- Regenerate: bun run gen:skill-docs -->\n\n# \u002Fguard — Full Safety Mode\n\nActivates both destructive command warnings and directory-scoped edit restrictions.\nThis is the combination of `\u002Fcareful` + `\u002Ffreeze` in a single command.\n\n**Dependency note:** This skill references hook scripts from the sibling `\u002Fcareful`\nand `\u002Ffreeze` skill directories. Both must be installed (they are installed together\nby the gstack setup script).\n\n```bash\nmkdir -p ~\u002F.gstack\u002Fanalytics\necho '{\"skill\":\"guard\",\"ts\":\"'$(date -u +%Y-%m-%dT%H:%M:%SZ)'\",\"repo\":\"'$(basename \"$(git rev-parse --show-toplevel 2>\u002Fdev\u002Fnull)\" 2>\u002Fdev\u002Fnull || echo \"unknown\")'\"}'  >> ~\u002F.gstack\u002Fanalytics\u002Fskill-usage.jsonl 2>\u002Fdev\u002Fnull || true\n```\n\n## Setup\n\nAsk the user which directory to restrict edits to. Use AskUserQuestion:\n\n- Question: \"Guard mode: which directory should edits be restricted to? Destructive command warnings are always on. Files outside the chosen path will be blocked from editing.\"\n- Text input (not multiple choice) — the user types a path.\n\nOnce the user provides a directory path:\n\n1. Resolve it to an absolute path:\n```bash\nFREEZE_DIR=$(cd \"\u003Cuser-provided-path>\" 2>\u002Fdev\u002Fnull && pwd)\necho \"$FREEZE_DIR\"\n```\n\n2. Ensure trailing slash and save to the freeze state file:\n```bash\nFREEZE_DIR=\"${FREEZE_DIR%\u002F}\u002F\"\nSTATE_DIR=\"${CLAUDE_PLUGIN_DATA:-$HOME\u002F.gstack}\"\nmkdir -p \"$STATE_DIR\"\necho \"$FREEZE_DIR\" > \"$STATE_DIR\u002Ffreeze-dir.txt\"\necho \"Freeze boundary set: $FREEZE_DIR\"\n```\n\nTell the user:\n- \"**Guard mode active.** Two protections are now running:\"\n- \"1. **Destructive command warnings** — rm -rf, DROP TABLE, force-push, etc. will warn before executing (you can override)\"\n- \"2. **Edit boundary** — file edits restricted to `\u003Cpath>\u002F`. Edits outside this directory are blocked.\"\n- \"To remove the edit boundary, run `\u002Funfreeze`. To deactivate everything, end the session.\"\n\n## What's protected\n\nSee `\u002Fcareful` for the full list of destructive command patterns and safe exceptions.\nSee `\u002Ffreeze` for how edit boundary enforcement works.\n","\u003C!-- AUTO-GENERATED from SKILL.md.tmpl — do not edit directly -->\n\u003C!-- Regenerate: bun run gen:skill-docs -->\n\n# \u002Fguard — Full Safety Mode\n\nActivates both destructive command warnings and directory-scoped edit restrictions.\nThis is the combination of `\u002Fcareful` + `\u002Ffreeze` in a single command.\n\n**Dependency note:** This skill references hook scripts from the sibling `\u002Fcareful`\nand `\u002Ffreeze` skill directories. Both must be installed (they are installed together\nby the gstack setup script).\n\n```bash\nmkdir -p ~\u002F.gstack\u002Fanalytics\necho '{\"skill\":\"guard\",\"ts\":\"'$(date -u +%Y-%m-%dT%H:%M:%SZ)'\",\"repo\":\"'$(basename \"$(git rev-parse --show-toplevel 2>\u002Fdev\u002Fnull)\" 2>\u002Fdev\u002Fnull || echo \"unknown\")'\"}'  >> ~\u002F.gstack\u002Fanalytics\u002Fskill-usage.jsonl 2>\u002Fdev\u002Fnull || true\n```\n\n## Setup\n\nAsk the user which directory to restrict edits to. Use AskUserQuestion:\n\n- Question: \"Guard mode: which directory should edits be restricted to? Destructive command warnings are always on. Files outside the chosen path will be blocked from editing.\"\n- Text input (not multiple choice) — the user types a path.\n\nOnce the user provides a directory path:\n\n1. Resolve it to an absolute path:\n```bash\nFREEZE_DIR=$(cd \"\u003Cuser-provided-path>\" 2>\u002Fdev\u002Fnull && pwd)\necho \"$FREEZE_DIR\"\n```\n\n2. Ensure trailing slash and save to the freeze state file:\n```bash\nFREEZE_DIR=\"${FREEZE_DIR%\u002F}\u002F\"\nSTATE_DIR=\"${CLAUDE_PLUGIN_DATA:-$HOME\u002F.gstack}\"\nmkdir -p \"$STATE_DIR\"\necho \"$FREEZE_DIR\" > \"$STATE_DIR\u002Ffreeze-dir.txt\"\necho \"Freeze boundary set: $FREEZE_DIR\"\n```\n\nTell the user:\n- \"**Guard mode active.** Two protections are now running:\"\n- \"1. **Destructive command warnings** — rm -rf, DROP TABLE, force-push, etc. will warn before executing (you can override)\"\n- \"2. **Edit boundary** — file edits restricted to `\u003Cpath>\u002F`. Edits outside this directory are blocked.\"\n- \"To remove the edit boundary, run `\u002Funfreeze`. To deactivate everything, end the session.\"\n\n## What's protected\n\nSee `\u002Fcareful` for the full list of destructive command patterns and safe exceptions.\nSee `\u002Ffreeze` for how edit boundary enforcement works.\n",{"name":5,"hooks":43,"version":60,"description":61,"allowed-tools":62},{"PreToolUse":44},[45,50,56],{"hooks":46,"matcher":32},[47],{"type":30,"command":48,"statusMessage":49},"bash ${CLAUDE_SKILL_DIR}\u002F..\u002Fcareful\u002Fbin\u002Fcheck-careful.sh","Checking for destructive commands...",{"hooks":51,"matcher":55},[52],{"type":30,"command":53,"statusMessage":54},"bash ${CLAUDE_SKILL_DIR}\u002F..\u002Ffreeze\u002Fbin\u002Fcheck-freeze.sh","Checking freeze boundary...","Edit",{"hooks":57,"matcher":59},[58],{"type":30,"command":53,"statusMessage":54},"Write","0.1.0","Full safety mode: destructive command warnings + directory-scoped edits.\nCombines \u002Fcareful (warns before rm -rf, DROP TABLE, force-push, etc.) with\n\u002Ffreeze (blocks edits outside a specified directory). Use for maximum safety\nwhen touching prod or debugging live systems. Use when asked to \"guard mode\",\n\"full safety\", \"lock it down\", or \"maximum safety\". (gstack)\n",[32,63,64],"Read","AskUserQuestion","master","02d6eacf24a7aeae55fcbd60875363f9001beffc",".claude\u002Fskills\u002Fgstack\u002Fguard",0,"https:\u002F\u002Fgithub.com\u002Fesopian\u002Fblue-oak-audit","https:\u002F\u002Fgithub.com\u002Fesopian","https:\u002F\u002Fwww.take2.co\u002Fconsulting-development","2026-04-21 08:16:12",{"source":8,"skillName":5,"commands":74,"prompt":84,"zipAvailable":85},[75,78,81],{"tool":76,"command":77},"npx","npx skills add esopian\u002Fblue-oak-audit --skill guard",{"tool":79,"command":80},"bunx","bunx skills add esopian\u002Fblue-oak-audit --skill guard",{"tool":82,"command":83},"pnpm","pnpm dlx skills add esopian\u002Fblue-oak-audit --skill guard","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fesopian\u002Fblue-oak-audit\u002Fblob\u002Fmaster\u002F.claude\u002Fskills\u002Fgstack\u002Fguard\u002FSKILL.md",true,[87],{"path":88,"resourceType":89,"resourceTypeDesc":90,"sizeBytes":91,"sourceHtmlUrl":92},"SKILL.md.tmpl","OTHER","其他",3071,"https:\u002F\u002Fgithub.com\u002Fesopian\u002Fblue-oak-audit\u002Fblob\u002Fmaster\u002F.claude\u002Fskills\u002Fgstack\u002Fguard\u002FSKILL.md.tmpl",[94,100,106,120,129,135],{"skillNo":95,"name":96,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":97,"categories":98,"keywords":99,"publishedAt":38},"01M6QTA68VHEZ200W69ZR1TT9J","unfreeze","https:\u002F\u002Fgithub.com\u002Fesopian\u002Fblue-oak-audit\u002Fblob\u002Fmaster\u002F.claude\u002Fskills\u002Funfreeze\u002FSKILL.md",[],[96],{"skillNo":101,"name":102,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":103,"categories":104,"keywords":105,"publishedAt":38},"01M6QTA555GKHSN860KWTNPFQM","ship","https:\u002F\u002Fgithub.com\u002Fesopian\u002Fblue-oak-audit\u002Fblob\u002Fmaster\u002F.claude\u002Fskills\u002Fship\u002FSKILL.md",[],[102],{"skillNo":107,"name":108,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":109,"categories":110,"keywords":116,"publishedAt":38},"01M6QT9WYRJJPAD7Z5KCGHAKB2","setup-deploy","https:\u002F\u002Fgithub.com\u002Fesopian\u002Fblue-oak-audit\u002Fblob\u002Fmaster\u002F.claude\u002Fskills\u002Fsetup-deploy\u002FSKILL.md",[111],{"categoryNo":112,"categoryName":113,"taxonomyType":114,"taxonomyTypeDesc":115},"01JBSEEDCAT000000000000011","运维与部署","SCENARIO","使用场景",[117,118,119],"deploy","setup","setup deploy",{"skillNo":121,"name":122,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":123,"categories":124,"keywords":125,"publishedAt":38},"01M6QT9H96WR4624WZ3RTDNPSM","setup-browser-cookies","https:\u002F\u002Fgithub.com\u002Fesopian\u002Fblue-oak-audit\u002Fblob\u002Fmaster\u002F.claude\u002Fskills\u002Fsetup-browser-cookies\u002FSKILL.md",[],[118,126,127,128],"browser","cookies","setup browser cookies",{"skillNo":130,"name":131,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":132,"categories":133,"keywords":134,"publishedAt":38},"01M6QT9ESJRKBC7Y9PKZSRB4M9","review","https:\u002F\u002Fgithub.com\u002Fesopian\u002Fblue-oak-audit\u002Fblob\u002Fmaster\u002F.claude\u002Fskills\u002Freview\u002FSKILL.md",[],[131],{"skillNo":136,"name":137,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":138,"categories":139,"keywords":140,"publishedAt":38},"01M6QT9D9E8RKNBAAB1HV47XXS","retro","https:\u002F\u002Fgithub.com\u002Fesopian\u002Fblue-oak-audit\u002Fblob\u002Fmaster\u002F.claude\u002Fskills\u002Fretro\u002FSKILL.md",[],[137]]