[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M71GQD5NKKFSXMZ3RWW2WJ8P":3,"skill-same:01M71GQD5NKKFSXMZ3RWW2WJ8P":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":23,"publishedAt":43,"linkOnly":44,"markdownContent":45,"markdownBody":46,"frontMatter":47,"refName":86,"commitSha":87,"skillDirectory":88,"forksCount":89,"repositoryHtmlUrl":90,"repositoryHomepageUrl":6,"ownerHtmlUrl":91,"ownerBlogUrl":92,"ownerDescription":93,"updatedAt":94,"install":95,"resources":108},"01M71GQD5NKKFSXMZ3RWW2WJ8P","guard",null,"Full safety mode for prod work: warn before destructive commands and block edits outside one directory.","timurgaleev\u002Fvibestack","timurgaleev","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F32696429?v=4","01M71GMS53Z9B4JQTCQEFXAE9E","Timur Galeev","01M71GMS5S1Q7BEYB3Z7GY3E85",8,"MIT","https:\u002F\u002Fgithub.com\u002Ftimurgaleev\u002Fvibestack\u002Fblob\u002Fmain\u002Fskills\u002Fguard\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[5,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42],"one","write","read","directory","command","boundary","work","home","lock","check","file","freeze","Bash","mode","careful","for","powershell","down","mistakes","2026-11-10 10:12:30",false,"---\nname: guard\ndescription: |\n  Full safety mode for prod work: warn before destructive commands and block edits outside one directory.\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:-$HOME\u002F.claude\u002Fskills\u002Fguard}\u002F..\u002Fcareful\u002Fbin\u002Fcheck-careful.sh\"\n          statusMessage: \"Checking for destructive commands...\"\n    - matcher: \"PowerShell\"\n      hooks:\n        - type: command\n          command: \"bash ${CLAUDE_SKILL_DIR:-$HOME\u002F.claude\u002Fskills\u002Fguard}\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:-$HOME\u002F.claude\u002Fskills\u002Fguard}\u002F..\u002Ffreeze\u002Fbin\u002Fcheck-freeze.sh\"\n          statusMessage: \"Checking freeze boundary...\"\n        - type: command\n          command: \"bash ${CLAUDE_SKILL_DIR:-$HOME\u002F.claude\u002Fskills\u002Fguard}\u002F..\u002Fcareful\u002Fbin\u002Fcheck-careful.sh\"\n          statusMessage: \"Checking for gate-file edits...\"\n    - matcher: \"Write\"\n      hooks:\n        - type: command\n          command: \"bash ${CLAUDE_SKILL_DIR:-$HOME\u002F.claude\u002Fskills\u002Fguard}\u002F..\u002Ffreeze\u002Fbin\u002Fcheck-freeze.sh\"\n          statusMessage: \"Checking freeze boundary...\"\n        - type: command\n          command: \"bash ${CLAUDE_SKILL_DIR:-$HOME\u002F.claude\u002Fskills\u002Fguard}\u002F..\u002Fcareful\u002Fbin\u002Fcheck-careful.sh\"\n          statusMessage: \"Checking for gate-file edits...\"\n    - matcher: \"NotebookEdit\"\n      hooks:\n        - type: command\n          command: \"bash ${CLAUDE_SKILL_DIR:-$HOME\u002F.claude\u002Fskills\u002Fguard}\u002F..\u002Ffreeze\u002Fbin\u002Fcheck-freeze.sh\"\n          statusMessage: \"Checking freeze boundary...\"\ntriggers:\n  - full safety mode\n  - guard against mistakes\n  - maximum safety\n  - guard mode\n  - lock it down\n---\n\nIf this session was compacted, the copy of this skill in context may be cut off.\nRead `${CLAUDE_SKILL_DIR}\u002FSKILL.md` from disk and resume at the step you are on.\n\n## When to invoke\n\nUse when asked to \"guard mode\", \"full safety\", \"lock it down\", or \"maximum safety\".\n\n# \u002Fguard — Full Safety Mode\n\nActivates both destructive command warnings and directory-scoped edit restrictions.\nThis is `\u002Fcareful` + `\u002Ffreeze` in a single command.\n\n**Dependency note:** This skill references hook scripts from the sibling `\u002Fcareful` and `\u002Ffreeze` skill directories. Both must be installed (they are installed together by the vibestack install script).\n\n**Where this is enforced.** Both protections run as Claude Code `PreToolUse`\nhooks. Cursor, Kiro and Codex install the same skill, but the hooks are not\nguaranteed to run there; outside Claude Code `\u002Fguard` is instruction-only. On\nthose hosts, tell the user guard mode is advisory: you will confirm before a\ndestructive command and keep your own edits inside the boundary, but nothing\nblocks a tool call you get wrong.\n\nCopilot CLI is the exception. When the configuration payload is installed\n(`.\u002Finstall --with-config` or `--only=config`), the user hook file\n`~\u002F.copilot\u002Fhooks\u002Fvibestack.json` (under `$COPILOT_HOME` when set) enforces\nboth halves: the destructive-command and gate-file check is always on, in every\nsession, and the edit boundary blocks while a freeze directory is set. Without\nthe configuration payload it is instruction-only there as well.\n\n## Setup\n\nAsk the user which directory to restrict edits to:\n\n> \"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\nOnce the user provides a path, set it with the shared state writer (see\n`\u002Ffreeze`):\n\n```bash\nbash \"${CLAUDE_SKILL_DIR:-$HOME\u002F.claude\u002Fskills\u002Fguard}\u002F..\u002Ffreeze\u002Fbin\u002Ffreeze-state.sh\" set \"\u003Cuser-provided-path>\"\n```\n\nReport guard mode active only if the command exits 0 and prints `FREEZE_DIR=`.\nOn `FREEZE_ERROR` (a mistyped or missing path, or `\u002F`), tell the user no edit\nboundary was set and ask for the path again. On `FREEZE_BUSY`, retry once the\nother writer finishes; never write or delete the state file directly.\n\nTell the user:\n- \"**Guard mode active.** Two protections are now running:\"\n- \"1. **Destructive command guard** — Bash and PowerShell: rm -rf, Remove-Item -Recurse, DROP TABLE, force-push, etc. warn before executing (you can override); catastrophic shapes (recursive delete of `\u002F` or `~`, force-push to the default branch) are blocked outright; an Edit or Write to a gate file (lint, type-check, CI or migration config) also warns\"\n- \"2. **Edit boundary** — Edit, Write and NotebookEdit restricted to `\u003CFREEZE_DIR>\u002F`. Edits outside this directory are blocked.\"\n- \"The edit boundary is saved in `~\u002F.vibestack\u002Ffreeze-dir.txt` and outlives this session: any later session that loads the freeze hook (`\u002Ffreeze`, `\u002Fguard`, `\u002Finvestigate`) enforces it again. To remove it, run `\u002Funfreeze`. Ending the session turns off the destructive command guard only.\"\n\n## What's protected\n\nSee `\u002Fcareful` for the two decision tiers, the full pattern list, and the safe exceptions.\nSee `\u002Ffreeze` for how edit boundary enforcement works.\n\nBoth hooks fail safe when they cannot read a tool payload — `\u002Fcareful` asks,\n`\u002Ffreeze` denies. Guard mode runs both, so an unreadable Edit, Write or\nNotebookEdit payload is blocked, not waved through.\n","If this session was compacted, the copy of this skill in context may be cut off.\nRead `${CLAUDE_SKILL_DIR}\u002FSKILL.md` from disk and resume at the step you are on.\n\n## When to invoke\n\nUse when asked to \"guard mode\", \"full safety\", \"lock it down\", or \"maximum safety\".\n\n# \u002Fguard — Full Safety Mode\n\nActivates both destructive command warnings and directory-scoped edit restrictions.\nThis is `\u002Fcareful` + `\u002Ffreeze` in a single command.\n\n**Dependency note:** This skill references hook scripts from the sibling `\u002Fcareful` and `\u002Ffreeze` skill directories. Both must be installed (they are installed together by the vibestack install script).\n\n**Where this is enforced.** Both protections run as Claude Code `PreToolUse`\nhooks. Cursor, Kiro and Codex install the same skill, but the hooks are not\nguaranteed to run there; outside Claude Code `\u002Fguard` is instruction-only. On\nthose hosts, tell the user guard mode is advisory: you will confirm before a\ndestructive command and keep your own edits inside the boundary, but nothing\nblocks a tool call you get wrong.\n\nCopilot CLI is the exception. When the configuration payload is installed\n(`.\u002Finstall --with-config` or `--only=config`), the user hook file\n`~\u002F.copilot\u002Fhooks\u002Fvibestack.json` (under `$COPILOT_HOME` when set) enforces\nboth halves: the destructive-command and gate-file check is always on, in every\nsession, and the edit boundary blocks while a freeze directory is set. Without\nthe configuration payload it is instruction-only there as well.\n\n## Setup\n\nAsk the user which directory to restrict edits to:\n\n> \"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\nOnce the user provides a path, set it with the shared state writer (see\n`\u002Ffreeze`):\n\n```bash\nbash \"${CLAUDE_SKILL_DIR:-$HOME\u002F.claude\u002Fskills\u002Fguard}\u002F..\u002Ffreeze\u002Fbin\u002Ffreeze-state.sh\" set \"\u003Cuser-provided-path>\"\n```\n\nReport guard mode active only if the command exits 0 and prints `FREEZE_DIR=`.\nOn `FREEZE_ERROR` (a mistyped or missing path, or `\u002F`), tell the user no edit\nboundary was set and ask for the path again. On `FREEZE_BUSY`, retry once the\nother writer finishes; never write or delete the state file directly.\n\nTell the user:\n- \"**Guard mode active.** Two protections are now running:\"\n- \"1. **Destructive command guard** — Bash and PowerShell: rm -rf, Remove-Item -Recurse, DROP TABLE, force-push, etc. warn before executing (you can override); catastrophic shapes (recursive delete of `\u002F` or `~`, force-push to the default branch) are blocked outright; an Edit or Write to a gate file (lint, type-check, CI or migration config) also warns\"\n- \"2. **Edit boundary** — Edit, Write and NotebookEdit restricted to `\u003CFREEZE_DIR>\u002F`. Edits outside this directory are blocked.\"\n- \"The edit boundary is saved in `~\u002F.vibestack\u002Ffreeze-dir.txt` and outlives this session: any later session that loads the freeze hook (`\u002Ffreeze`, `\u002Fguard`, `\u002Finvestigate`) enforces it again. To remove it, run `\u002Funfreeze`. Ending the session turns off the destructive command guard only.\"\n\n## What's protected\n\nSee `\u002Fcareful` for the two decision tiers, the full pattern list, and the safe exceptions.\nSee `\u002Ffreeze` for how edit boundary enforcement works.\n\nBoth hooks fail safe when they cannot read a tool payload — `\u002Fcareful` asks,\n`\u002Ffreeze` denies. Guard mode runs both, so an unreadable Edit, Write or\nNotebookEdit payload is blocked, not waved through.\n",{"name":5,"hooks":48,"triggers":76,"description":82,"allowed-tools":83},{"PreToolUse":49},[50,55,59,67,72],{"hooks":51,"matcher":36},[52],{"type":28,"command":53,"statusMessage":54},"bash ${CLAUDE_SKILL_DIR:-$HOME\u002F.claude\u002Fskills\u002Fguard}\u002F..\u002Fcareful\u002Fbin\u002Fcheck-careful.sh","Checking for destructive commands...",{"hooks":56,"matcher":58},[57],{"type":28,"command":53,"statusMessage":54},"PowerShell",{"hooks":60,"matcher":66},[61,64],{"type":28,"command":62,"statusMessage":63},"bash ${CLAUDE_SKILL_DIR:-$HOME\u002F.claude\u002Fskills\u002Fguard}\u002F..\u002Ffreeze\u002Fbin\u002Fcheck-freeze.sh","Checking freeze boundary...",{"type":28,"command":53,"statusMessage":65},"Checking for gate-file edits...","Edit",{"hooks":68,"matcher":71},[69,70],{"type":28,"command":62,"statusMessage":63},{"type":28,"command":53,"statusMessage":65},"Write",{"hooks":73,"matcher":75},[74],{"type":28,"command":62,"statusMessage":63},"NotebookEdit",[77,78,79,80,81],"full safety mode","guard against mistakes","maximum safety","guard mode","lock it down","Full safety mode for prod work: warn before destructive commands and block edits outside one directory.\n",[36,84,85],"Read","AskUserQuestion","main","777ec643a83c17a0955856b2eb7f596601709fda","skills\u002Fguard",0,"https:\u002F\u002Fgithub.com\u002Ftimurgaleev\u002Fvibestack","https:\u002F\u002Fgithub.com\u002Ftimurgaleev","https:\u002F\u002Ftgaleev.com\u002F","Forward Deployed Engineer \u002F\r\nAWS Community Builder \u002F Cloud Architect ","2026-11-11 15:42:25",{"source":8,"skillName":5,"commands":96,"prompt":106,"zipAvailable":107},[97,100,103],{"tool":98,"command":99},"npx","npx skills add timurgaleev\u002Fvibestack --skill guard",{"tool":101,"command":102},"bunx","bunx skills add timurgaleev\u002Fvibestack --skill guard",{"tool":104,"command":105},"pnpm","pnpm dlx skills add timurgaleev\u002Fvibestack --skill guard","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Ftimurgaleev\u002Fvibestack\u002Fblob\u002Fmain\u002Fskills\u002Fguard\u002FSKILL.md",true,[],[110,116,122,128,134,140],{"skillNo":111,"name":112,"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":113,"categories":114,"keywords":115,"publishedAt":43},"01M71GVHCCSQCCPVM8XPSPTA73","docs","https:\u002F\u002Fgithub.com\u002Ftimurgaleev\u002Fvibestack\u002Fblob\u002Fmain\u002Ftest\u002Ffixtures\u002Frender\u002F15-backtick-info-string\u002Fskills\u002Fdocs\u002FSKILL.md",[],[112],{"skillNo":117,"name":118,"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":119,"categories":120,"keywords":121,"publishedAt":43},"01M71GVFT1S5MRNM0AYRT2E6VQ","fences","https:\u002F\u002Fgithub.com\u002Ftimurgaleev\u002Fvibestack\u002Fblob\u002Fmain\u002Ftest\u002Ffixtures\u002Frender\u002F14-indented-tilde-fence\u002Fskills\u002Ffences\u002FSKILL.md",[],[118],{"skillNo":123,"name":124,"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":125,"categories":126,"keywords":127,"publishedAt":43},"01M71GVEYB54K1S83FGRNKN8CF","dirty","https:\u002F\u002Fgithub.com\u002Ftimurgaleev\u002Fvibestack\u002Fblob\u002Fmain\u002Ftest\u002Ffixtures\u002Frender\u002F10-check-with-drift\u002Fskills\u002Fdirty\u002FSKILL.md",[],[124],{"skillNo":129,"name":130,"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":131,"categories":132,"keywords":133,"publishedAt":43},"01M71GVDX9PMND1337C4388DK4","clean","https:\u002F\u002Fgithub.com\u002Ftimurgaleev\u002Fvibestack\u002Fblob\u002Fmain\u002Ftest\u002Ffixtures\u002Frender\u002F09-check-no-drift\u002Fskills\u002Fclean\u002FSKILL.md",[],[130],{"skillNo":135,"name":136,"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":137,"categories":138,"keywords":139,"publishedAt":43},"01M71GVC3VM66F1ZQT2G8JXDR0","bare","https:\u002F\u002Fgithub.com\u002Ftimurgaleev\u002Fvibestack\u002Fblob\u002Fmain\u002Ftest\u002Ffixtures\u002Frender\u002F08-no-frontmatter\u002Fskills\u002Fbare\u002FSKILL.md",[],[136],{"skillNo":141,"name":142,"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":143,"categories":144,"keywords":145,"publishedAt":43},"01M71GV9T8DAYZT0PX52QX0TE1","idem","https:\u002F\u002Fgithub.com\u002Ftimurgaleev\u002Fvibestack\u002Fblob\u002Fmain\u002Ftest\u002Ffixtures\u002Frender\u002F07-idempotent-rerender\u002Fskills\u002Fidem\u002FSKILL.md",[],[142]]