{"id":"cc29e39f-ace9-4fcc-9a94-b63b9e4b77b5","shortId":"kMnUWn","kind":"skill","title":"plan-mode-permission-gating","tagline":"Gate plan mode entry with permission updates so complex tasks run in a controlled, reviewable state.","description":"# SKILL: Plan Mode Permission Gating\n**Domain:** permission-gating\n**Trigger:** Invoke when the user wants to enter plan mode or a complex implementation requires additional permission scrutiny before introducing file edits.\n**Source Pattern:** Distilled from reviewed plan-mode entry and permission-transition implementations.\n\n## Core Method\nWrap plan-mode entry in an explicit permission transition. Validate that the request comes from the root session, switch the shared permission context into a planning state, and emit a standardized banner that reminds agents to explore before editing. Centralizing that transition prevents individual call sites from bypassing the plan-mode contract or drifting into edits before planning is complete.\n\n## Key Rules\n- Treat plan-mode entry as a read-only permission change that cannot be invoked inside a child-agent context.\n- Reconfigure the shared permission context through one centralized transition path so state sync and side effects stay consistent.\n- Return a human-facing banner describing the plan-mode obligations, and let follow-up instructions adapt to the active plan-mode variant.\n- Keep the tool’s UI payload minimal but explicit about the no-edit rule; reuse the same instructions for both regular and interview-enhanced plan mode.\n\n## Example Application\nUse this skill when a CLI state machine detects a non-trivial refactor request: enter plan mode first, flip the session into a no-edit planning state, and require a reviewed plan before touching files.\n\n## Anti-Patterns (What NOT to do)\n- Don’t let a code path change permissions directly without the standardized transition, or some agents will edge into edits without the plan-mode reminder.\n- Don’t ignore agent forks — the gate belongs only to the root session, so refuse plan-mode tool calls when `context.agentId` is set.","tags":["plan","mode","permission","gating","cskill","agents","ychampion","agent-skills","ai-agents","cli","coding-agents","context-engineering"],"capabilities":["skill","source-ychampion","skill-plan-mode-permission-gating","topic-agent-skills","topic-ai-agents","topic-cli","topic-coding-agents","topic-context-engineering","topic-developer-tools","topic-mcp","topic-multi-agent","topic-terminal-ui"],"categories":["cskill-agents"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/ychampion/cskill-agents/plan-mode-permission-gating","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add ychampion/cskill-agents","source_repo":"https://github.com/ychampion/cskill-agents","install_from":"skills.sh"}},"qualityScore":"0.467","qualityRationale":"deterministic score 0.47 from registry signals: · indexed on github topic:agent-skills · 34 github stars · SKILL.md body (1,845 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-04-22T00:56:53.839Z","embedding":null,"createdAt":"2026-04-18T22:20:54.889Z","updatedAt":"2026-04-22T00:56:53.839Z","lastSeenAt":"2026-04-22T00:56:53.839Z","tsv":"'activ':194 'adapt':191 'addit':46 'agent':104,153,288,302 'anti':267 'anti-pattern':266 'applic':228 'banner':101,178 'belong':306 'bypass':117 'call':114,318 'cannot':146 'central':109,162 'chang':144,279 'child':152 'child-ag':151 'cli':234 'code':277 'come':83 'complet':130 'complex':14,43 'consist':172 'context':92,154,159 'context.agentid':320 'contract':122 'control':19 'core':67 'describ':179 'detect':237 'direct':281 'distil':55 'domain':27 'drift':124 'edg':290 'edit':52,108,126,212,255,292 'effect':170 'emit':98 'enhanc':224 'enter':38,244 'entri':9,61,73,137 'exampl':227 'explicit':76,207 'explor':106 'face':177 'file':51,265 'first':247 'flip':248 'follow':188 'follow-up':187 'fork':303 'gate':5,6,26,30,305 'human':176 'human-fac':175 'ignor':301 'implement':44,66 'individu':113 'insid':149 'instruct':190,217 'interview':223 'interview-enhanc':222 'introduc':50 'invok':32,148 'keep':199 'key':131 'let':186,275 'machin':236 'method':68 'minim':205 'mode':3,8,24,40,60,72,121,136,183,197,226,246,297,316 'no-edit':210,253 'non':240 'non-trivi':239 'oblig':184 'one':161 'path':164,278 'pattern':54,268 'payload':204 'permiss':4,11,25,29,47,64,77,91,143,158,280 'permission-g':28 'permission-transit':63 'plan':2,7,23,39,59,71,95,120,128,135,182,196,225,245,256,262,296,315 'plan-mod':58,70,119,134,181,195,295,314 'plan-mode-permission-g':1 'prevent':112 'read':141 'read-on':140 'reconfigur':155 'refactor':242 'refus':313 'regular':220 'remind':103,298 'request':82,243 'requir':45,259 'return':173 'reus':214 'review':20,57,261 'root':86,310 'rule':132,213 'run':16 'scrutini':48 'session':87,250,311 'set':322 'share':90,157 'side':169 'site':115 'skill':22,231 'skill-plan-mode-permission-gating' 'sourc':53 'source-ychampion' 'standard':100,284 'state':21,96,166,235,257 'stay':171 'switch':88 'sync':167 'task':15 'tool':201,317 'topic-agent-skills' 'topic-ai-agents' 'topic-cli' 'topic-coding-agents' 'topic-context-engineering' 'topic-developer-tools' 'topic-mcp' 'topic-multi-agent' 'topic-terminal-ui' 'touch':264 'transit':65,78,111,163,285 'treat':133 'trigger':31 'trivial':241 'ui':203 'updat':12 'use':229 'user':35 'valid':79 'variant':198 'want':36 'without':282,293 'wrap':69","prices":[{"id":"693f748f-2778-4928-94cd-84987597bbb5","listingId":"cc29e39f-ace9-4fcc-9a94-b63b9e4b77b5","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"ychampion","category":"cskill-agents","install_from":"skills.sh"},"createdAt":"2026-04-18T22:20:54.889Z"}],"sources":[{"listingId":"cc29e39f-ace9-4fcc-9a94-b63b9e4b77b5","source":"github","sourceId":"ychampion/cskill-agents/plan-mode-permission-gating","sourceUrl":"https://github.com/ychampion/cskill-agents/tree/main/skills/plan-mode-permission-gating","isPrimary":false,"firstSeenAt":"2026-04-18T22:20:54.889Z","lastSeenAt":"2026-04-22T00:56:53.839Z"}],"details":{"listingId":"cc29e39f-ace9-4fcc-9a94-b63b9e4b77b5","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"ychampion","slug":"plan-mode-permission-gating","github":{"repo":"ychampion/cskill-agents","stars":34,"topics":["agent-skills","ai-agents","cli","coding-agents","context-engineering","developer-tools","mcp","multi-agent","terminal-ui"],"license":"mit","html_url":"https://github.com/ychampion/cskill-agents","pushed_at":"2026-04-04T14:13:23Z","description":"Agent skills for coding CLIs, multi-agent runtimes, context engines, MCP extensions, and terminal tooling. Instead of using claude code's source code, give your agent skills to create your own!","skill_md_sha":"03bcec5cd5505d31708094d9056f7912d6a75396","skill_md_path":"skills/plan-mode-permission-gating/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/ychampion/cskill-agents/tree/main/skills/plan-mode-permission-gating"},"layout":"multi","source":"github","category":"cskill-agents","frontmatter":{"name":"plan-mode-permission-gating","description":"Gate plan mode entry with permission updates so complex tasks run in a controlled, reviewable state."},"skills_sh_url":"https://skills.sh/ychampion/cskill-agents/plan-mode-permission-gating"},"updatedAt":"2026-04-22T00:56:53.839Z"}}