{"id":"46837285-0aaf-414c-af2e-1a40385db525","shortId":"HK7t7e","kind":"skill","title":"freeze","tagline":"Restrict file edits to a specific directory for the session. Blocks Edit and\nWrite outside the allowed path. Use when debugging to prevent accidentally\n\"fixing\" unrelated code, or when you want to scope changes to one module.\nUse when asked to \"freeze\", \"restrict edits\", \"only ed","description":"# /freeze — Restrict Edits to a Directory\n\nLock file edits to a specific directory. Any Edit or Write operation targeting\na file outside the allowed path will be **blocked** (not just warned).\n\n## Setup\n\nAsk the user which directory to restrict edits to:\n\n> \"Which directory should I restrict edits to? Files outside this path will be blocked from editing.\"\n\nOnce the user provides a path:\n\n```bash\nFREEZE_DIR=$(cd \"<user-provided-path>\" 2>/dev/null && pwd)\nFREEZE_DIR=\"${FREEZE_DIR%/}/\"\nSTATE_DIR=\"${VIBESTACK_HOME:-$HOME/.vibestack}\"\nmkdir -p \"$STATE_DIR\"\necho \"$FREEZE_DIR\" > \"$STATE_DIR/freeze-dir.txt\"\necho \"Freeze boundary set: $FREEZE_DIR\"\n```\n\nTell the user: \"Edits are now restricted to `<path>/`. Any Edit or Write\noutside this directory will be blocked. To change the boundary, run `/freeze`\nagain. To remove it, run `/unfreeze`.\"\n\n## How it works\n\nThe hook reads `file_path` from each Edit/Write call and checks whether the path\nstarts with the frozen directory. If not, it returns `permissionDecision: \"deny\"`.\n\nThe freeze boundary persists for the session via `~/.vibestack/freeze-dir.txt`.\n\n## Notes\n\n- The trailing `/` prevents `/src` from matching `/src-old`\n- Applies to Edit and Write tools only — Read, Bash, Glob, Grep are unaffected\n- Bash commands like `sed -i` can still modify files outside the boundary\n- To deactivate: run `/unfreeze` or end the conversation","tags":["freeze","vibestack","timurgaleev","agent-skills","ai-agents","claude-code","cursor-ide","developer-tools","kiro","mcp","prompt-engineering","slash-commands"],"capabilities":["skill","source-timurgaleev","skill-freeze","topic-agent-skills","topic-ai-agents","topic-claude-code","topic-cursor-ide","topic-developer-tools","topic-kiro","topic-mcp","topic-prompt-engineering","topic-slash-commands"],"categories":["vibestack"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/timurgaleev/vibestack/freeze","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add timurgaleev/vibestack","source_repo":"https://github.com/timurgaleev/vibestack","install_from":"skills.sh"}},"qualityScore":"0.457","qualityRationale":"deterministic score 0.46 from registry signals: · indexed on github topic:agent-skills · 15 github stars · SKILL.md body (1,385 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-05-18T19:06:21.230Z","embedding":null,"createdAt":"2026-05-18T19:06:21.230Z","updatedAt":"2026-05-18T19:06:21.230Z","lastSeenAt":"2026-05-18T19:06:21.230Z","tsv":"'/.vibestack/freeze-dir.txt':208 '/dev/null':116 '/freeze':48,165 '/src':213 '/src-old':216 '/unfreeze':171,245 '2':115 'accident':25 'allow':18,71 'appli':217 'ask':41,80 'bash':111,225,230 'block':12,75,102,159 'boundari':138,163,202,241 'call':183 'cd':114 'chang':35,161 'check':185 'code':28 'command':231 'convers':249 'deactiv':243 'debug':22 'deni':199 'dir':113,119,121,123,130,133,141 'dir/freeze-dir.txt':135 'directori':8,53,60,84,90,156,193 'echo':131,136 'ed':47 'edit':4,13,45,50,56,62,87,94,104,145,151,219 'edit/write':182 'end':247 'file':3,55,68,96,178,238 'fix':26 'freez':1,43,112,118,120,132,137,140,201 'frozen':192 'glob':226 'grep':227 'home':125 'home/.vibestack':126 'hook':176 'like':232 'lock':54 'match':215 'mkdir':127 'modifi':237 'modul':38 'note':209 'one':37 'oper':65 'outsid':16,69,97,154,239 'p':128 'path':19,72,99,110,179,188 'permissiondecis':198 'persist':203 'prevent':24,212 'provid':108 'pwd':117 'read':177,224 'remov':168 'restrict':2,44,49,86,93,148 'return':197 'run':164,170,244 'scope':34 'sed':233 'session':11,206 'set':139 'setup':79 'skill' 'skill-freeze' 'source-timurgaleev' 'specif':7,59 'start':189 'state':122,129,134 'still':236 'target':66 'tell':142 'tool':222 'topic-agent-skills' 'topic-ai-agents' 'topic-claude-code' 'topic-cursor-ide' 'topic-developer-tools' 'topic-kiro' 'topic-mcp' 'topic-prompt-engineering' 'topic-slash-commands' 'trail':211 'unaffect':229 'unrel':27 'use':20,39 'user':82,107,144 'via':207 'vibestack':124 'want':32 'warn':78 'whether':186 'work':174 'write':15,64,153,221","prices":[{"id":"1d43d38a-126a-4c02-aa63-37fa3f9dc497","listingId":"46837285-0aaf-414c-af2e-1a40385db525","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"timurgaleev","category":"vibestack","install_from":"skills.sh"},"createdAt":"2026-05-18T19:06:21.230Z"}],"sources":[{"listingId":"46837285-0aaf-414c-af2e-1a40385db525","source":"github","sourceId":"timurgaleev/vibestack/freeze","sourceUrl":"https://github.com/timurgaleev/vibestack/tree/main/skills/freeze","isPrimary":false,"firstSeenAt":"2026-05-18T19:06:21.230Z","lastSeenAt":"2026-05-18T19:06:21.230Z"}],"details":{"listingId":"46837285-0aaf-414c-af2e-1a40385db525","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"timurgaleev","slug":"freeze","github":{"repo":"timurgaleev/vibestack","stars":15,"topics":["agent-skills","ai-agents","claude-code","cursor-ide","developer-tools","kiro","mcp","prompt-engineering","slash-commands"],"license":"mit","html_url":"https://github.com/timurgaleev/vibestack","pushed_at":"2026-05-18T18:19:05Z","description":"vibestack is a portable skill pack for AI coding agents. Slash commands like /office-hours, /ship, /investigate, /tdd, /review install once and work across every agent that supports the Agent Skills open standard — Claude Code, Cursor, Kiro, and a growing list of others. ","skill_md_sha":"6a462ee8ccf453a99d3fbc9f5115e2f996eb4bf4","skill_md_path":"skills/freeze/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/timurgaleev/vibestack/tree/main/skills/freeze"},"layout":"multi","source":"github","category":"vibestack","frontmatter":{"name":"freeze","description":"Restrict file edits to a specific directory for the session. Blocks Edit and\nWrite outside the allowed path. Use when debugging to prevent accidentally\n\"fixing\" unrelated code, or when you want to scope changes to one module.\nUse when asked to \"freeze\", \"restrict edits\", \"only edit this folder\",\nor \"lock down edits\"."},"skills_sh_url":"https://skills.sh/timurgaleev/vibestack/freeze"},"updatedAt":"2026-05-18T19:06:21.230Z"}}