{"id":"434e699c-0d64-4bf9-881a-9ec1e27d3fe8","shortId":"4ArR5E","kind":"skill","title":"fixed-footprint-unicode-mascot-composition","tagline":"Build terminal mascots whose poses can animate without changing layout by keeping the render area fixed and swapping only the moving fragments.","description":"# SKILL: Fixed-Footprint Unicode Mascot Composition\n**Domain:** terminal-ui\n**Trigger:** Use when adding a terminal mascot or branded character that should animate via pose swaps but must stay within a fixed footprint so surrounding layout remains stable.\n**Source Pattern:** Distilled from reviewed fixed-footprint terminal mascot implementations.\n\n## Core Method\nSplit the mascot art into stable background spans and separately swappable moving fragments such as eyes, arms, or accessories. Keep the total row and column footprint constant across every pose and render inside a fixed-size container so the rest of the UI never reflows while the character changes expression. This allows expressive terminal art without destabilizing adjacent status lines, banners, or prompts.\n\n## Key Rules\n- Keep the row and column count constant for every pose so surrounding layout never shifts.\n- Treat body fill, padding, and background spans as stable segments and swap only the moving fragments.\n- Render inside a fixed-height container and clip vertical motion so jumps or crouches stay inside the frame.\n- Prefer fragment swaps over full-frame redraws to reduce work and avoid alignment drift.\n\n## Example Application\nIf a CLI banner needs a small animated mascot for loading, keep the character inside a fixed three-line frame and swap only the eyes and arms between idle, alert, and celebration poses so the header stays perfectly aligned.\n\n## Anti-Patterns (What NOT to do)\n- Do not let different poses use different widths or heights; that will push neighboring UI around.\n- Do not rebuild the entire art every frame when only localized fragments need to change.","tags":["fixed","footprint","unicode","mascot","composition","cskill","agents","ychampion","agent-skills","ai-agents","cli","coding-agents"],"capabilities":["skill","source-ychampion","skill-fixed-footprint-unicode-mascot-composition","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/fixed-footprint-unicode-mascot-composition","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,661 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-22T06:56:49.003Z","embedding":null,"createdAt":"2026-04-18T22:20:24.855Z","updatedAt":"2026-04-22T06:56:49.003Z","lastSeenAt":"2026-04-22T06:56:49.003Z","tsv":"'accessori':99 'across':108 'ad':43 'adjac':139 'alert':244 'align':210,253 'allow':133 'anim':13,52,221 'anti':255 'anti-pattern':254 'applic':213 'area':21 'arm':97,241 'around':276 'art':84,136,282 'avoid':209 'background':87,167 'banner':142,217 'bodi':163 'brand':48 'build':7 'celebr':246 'chang':15,130,291 'charact':49,129,227 'cli':216 'clip':186 'column':105,151 'composit':6,35 'constant':107,153 'contain':118,184 'core':79 'count':152 'crouch':192 'destabil':138 'differ':264,267 'distil':70 'domain':36 'drift':211 'entir':281 'everi':109,155,283 'exampl':212 'express':131,134 'eye':96,239 'fill':164 'fix':2,22,31,61,74,116,182,230 'fixed-footprint':30,73 'fixed-footprint-unicode-mascot-composit':1 'fixed-height':181 'fixed-s':115 'footprint':3,32,62,75,106 'fragment':28,93,177,198,288 'frame':196,203,234,284 'full':202 'full-fram':201 'header':250 'height':183,270 'idl':243 'implement':78 'insid':113,179,194,228 'jump':190 'keep':18,100,147,225 'key':145 'layout':16,65,159 'let':263 'line':141,233 'load':224 'local':287 'mascot':5,9,34,46,77,83,222 'method':80 'motion':188 'move':27,92,176 'must':57 'need':218,289 'neighbor':274 'never':125,160 'pad':165 'pattern':69,256 'perfect':252 'pose':11,54,110,156,247,265 'prefer':197 'prompt':144 'push':273 'rebuild':279 'redraw':204 'reduc':206 'reflow':126 'remain':66 'render':20,112,178 'rest':121 'review':72 'row':103,149 'rule':146 'segment':171 'separ':90 'shift':161 'size':117 'skill':29 'skill-fixed-footprint-unicode-mascot-composition' 'small':220 'sourc':68 'source-ychampion' 'span':88,168 'split':81 'stabl':67,86,170 'status':140 'stay':58,193,251 'surround':64,158 'swap':24,55,173,199,236 'swappabl':91 'termin':8,38,45,76,135 'terminal-ui':37 'three':232 'three-lin':231 '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' 'total':102 'treat':162 'trigger':40 'ui':39,124,275 'unicod':4,33 'use':41,266 'vertic':187 'via':53 'whose':10 'width':268 'within':59 'without':14,137 'work':207","prices":[{"id":"ab4076bc-bb26-4f03-a8cf-9131a37d9839","listingId":"434e699c-0d64-4bf9-881a-9ec1e27d3fe8","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:24.855Z"}],"sources":[{"listingId":"434e699c-0d64-4bf9-881a-9ec1e27d3fe8","source":"github","sourceId":"ychampion/cskill-agents/fixed-footprint-unicode-mascot-composition","sourceUrl":"https://github.com/ychampion/cskill-agents/tree/main/skills/fixed-footprint-unicode-mascot-composition","isPrimary":false,"firstSeenAt":"2026-04-18T22:20:24.855Z","lastSeenAt":"2026-04-22T06:56:49.003Z"}],"details":{"listingId":"434e699c-0d64-4bf9-881a-9ec1e27d3fe8","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"ychampion","slug":"fixed-footprint-unicode-mascot-composition","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":"c4722e1990bb77d2e983725059939008fccb9f8b","skill_md_path":"skills/fixed-footprint-unicode-mascot-composition/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/ychampion/cskill-agents/tree/main/skills/fixed-footprint-unicode-mascot-composition"},"layout":"multi","source":"github","category":"cskill-agents","frontmatter":{"name":"fixed-footprint-unicode-mascot-composition","description":"Build terminal mascots whose poses can animate without changing layout by keeping the render area fixed and swapping only the moving fragments."},"skills_sh_url":"https://skills.sh/ychampion/cskill-agents/fixed-footprint-unicode-mascot-composition"},"updatedAt":"2026-04-22T06:56:49.003Z"}}