{"id":"c0b4f4e0-fc98-49d6-bc6c-a6b586e3f9d2","shortId":"AR4QMy","kind":"skill","title":"permission-overlay-inheritance","tagline":"Layer child permission rules over parent session policy without dropping root-level grants or mutating shared state.","description":"# SKILL: Permission Overlay Inheritance\n**Domain:** permission-gating\n**Trigger:** Apply when a subagent or nested workflow needs a narrower permission contract but must still inherit the parent session's top-level grants.\n**Source Pattern:** Distilled from reviewed subagent orchestration, isolation, and lifecycle implementations.\n\n## Core Method\nStart from the current app state, then derive a child-specific permission view by overlaying only the fields the child actually owns: permission mode, promptability flags, session-scoped allow rules, and effort level. Preserve parent bypass and SDK-level permissions so nested agents cannot accidentally weaken operator intent, and return the original state unchanged when no overlay is needed. This keeps permission inheritance explicit, composable, and side-effect-free.\n\n## Key Rules\n- Treat the parent permission context as the base contract; never mutate it in place when preparing a child view.\n- Allow child permission modes only when they do not override stronger parent modes like bypass permissions or accept edits.\n- Preserve root or CLI-supplied allow rules while replacing only the session-scoped rules the child explicitly owns.\n- Derive prompt-suppression flags from runtime reality, such as async execution or an explicit can show permission prompts override.\n\n## Example Application\nIf a background review agent should only use `Read` and `Grep` while the main session still has broader CLI-granted access, build its permission context as an overlay so the child narrows its own session rules without discarding the root-level contract.\n\n## Anti-Patterns (What NOT to do)\n- Do not copy the parent permission object and then mutate shared references; later agents will inherit unintended changes.\n- Do not wipe all inherited allow rules when a child provides allowed tools; preserve the parent layer that came from explicit operator input.","tags":["permission","overlay","inheritance","cskill","agents","ychampion","agent-skills","ai-agents","cli","coding-agents","context-engineering","developer-tools"],"capabilities":["skill","source-ychampion","skill-permission-overlay-inheritance","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/permission-overlay-inheritance","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,904 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.766Z","embedding":null,"createdAt":"2026-04-18T22:20:54.116Z","updatedAt":"2026-04-22T00:56:53.766Z","lastSeenAt":"2026-04-22T00:56:53.766Z","tsv":"'accept':180 'access':245 'accident':116 'actual':90 'agent':114,228,288 'allow':99,163,188,298,304 'anti':269 'anti-pattern':268 'app':73 'appli':32 'applic':223 'async':212 'background':226 'base':151 'broader':241 'build':246 'bypass':106,177 'came':311 'cannot':115 'chang':292 'child':6,79,89,161,164,199,255,302 'child-specif':78 'cli':186,243 'cli-grant':242 'cli-suppli':185 'compos':136 'context':148,249 'contract':43,152,267 'copi':277 'core':67 'current':72 'deriv':76,202 'discard':262 'distil':58 'domain':27 'drop':14 'edit':181 'effect':140 'effort':102 'exampl':222 'execut':213 'explicit':135,200,216,313 'field':87 'flag':95,206 'free':141 'gate':30 'grant':18,55,244 'grep':234 'implement':66 'inherit':4,26,47,134,290,297 'input':315 'intent':119 'isol':63 'keep':132 'key':142 'later':287 'layer':5,309 'level':17,54,103,110,266 'lifecycl':65 'like':176 'main':237 'method':68 'mode':93,166,175 'must':45 'mutat':20,154,284 'narrow':41,256 'need':39,130 'nest':37,113 'never':153 'object':281 'oper':118,314 'orchestr':62 'origin':123 'overlay':3,25,84,128,252 'overrid':172,221 'own':91,201 'parent':10,49,105,146,174,279,308 'pattern':57,270 'permiss':2,7,24,29,42,81,92,111,133,147,165,178,219,248,280 'permission-g':28 'permission-overlay-inherit':1 'place':157 'polici':12 'prepar':159 'preserv':104,182,306 'prompt':204,220 'prompt-suppress':203 'promptabl':94 'provid':303 'read':232 'realiti':209 'refer':286 'replac':191 'return':121 'review':60,227 'root':16,183,265 'root-level':15,264 'rule':8,100,143,189,197,260,299 'runtim':208 'scope':98,196 'sdk':109 'sdk-level':108 'session':11,50,97,195,238,259 'session-scop':96,194 'share':21,285 'show':218 'side':139 'side-effect-fre':138 'skill':23 'skill-permission-overlay-inheritance' 'sourc':56 'source-ychampion' 'specif':80 'start':69 'state':22,74,124 'still':46,239 'stronger':173 'subag':35,61 'suppli':187 'suppress':205 'tool':305 'top':53 'top-level':52 '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' 'treat':144 'trigger':31 'unchang':125 'unintend':291 'use':231 'view':82,162 'weaken':117 'wipe':295 'without':13,261 'workflow':38","prices":[{"id":"ed9747da-76e0-4539-95cb-742fedb43b5a","listingId":"c0b4f4e0-fc98-49d6-bc6c-a6b586e3f9d2","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.116Z"}],"sources":[{"listingId":"c0b4f4e0-fc98-49d6-bc6c-a6b586e3f9d2","source":"github","sourceId":"ychampion/cskill-agents/permission-overlay-inheritance","sourceUrl":"https://github.com/ychampion/cskill-agents/tree/main/skills/permission-overlay-inheritance","isPrimary":false,"firstSeenAt":"2026-04-18T22:20:54.116Z","lastSeenAt":"2026-04-22T00:56:53.766Z"}],"details":{"listingId":"c0b4f4e0-fc98-49d6-bc6c-a6b586e3f9d2","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"ychampion","slug":"permission-overlay-inheritance","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":"da2478bb386da994866918d9c449d654e99e69f9","skill_md_path":"skills/permission-overlay-inheritance/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/ychampion/cskill-agents/tree/main/skills/permission-overlay-inheritance"},"layout":"multi","source":"github","category":"cskill-agents","frontmatter":{"name":"permission-overlay-inheritance","description":"Layer child permission rules over parent session policy without dropping root-level grants or mutating shared state."},"skills_sh_url":"https://skills.sh/ychampion/cskill-agents/permission-overlay-inheritance"},"updatedAt":"2026-04-22T00:56:53.766Z"}}