{"id":"8cd32622-485d-4e17-be63-6c3b20bb6a57","shortId":"ZPWBnL","kind":"skill","title":"skip-skill-listing-in-test-environment","tagline":"Suppress skill-listing attachments in test mode so discoverability noise does not interfere with deterministic test behavior.","description":"# SKILL: Skip Skill Listing in Test Environment\n**Domain:** command-surfaces  \n**Trigger:** Apply when tests exercise attachment-building code paths but do not need discoverability payloads such as skill listings.\n**Source Pattern:** Distilled from reviewed command-surface and listing-control patterns.\n\n## Core Method\nTreat test runs as a separate operating mode where non-essential discoverability output should be silent by default. Check the environment before computing any listing state, and return an empty result immediately when the process is running under tests. This keeps tests focused on actionable behavior, avoids large incidental payloads in assertions and fixtures, and prevents test outcomes from drifting because of unrelated skill-registry changes.\n\n## Key Rules\n- Put the test-environment guard at the top of the attachment builder so no listing work or state mutation happens before the early exit.\n- Suppress only non-essential discoverability payloads; do not use the pattern to hide behavior that tests are explicitly meant to verify.\n- Prefer deterministic environment checks such as `NODE_ENV === 'test'` over indirect heuristics.\n- Keep tests isolated from runtime inventory churn so new skills or registry changes do not force unrelated snapshot or transcript updates.\n\n## Example Application\nIf a chat runtime test exercises the attachment pipeline to validate message ordering, skip the skill-listing attachment entirely when `NODE_ENV` is `test`. The test still covers the real behavior under examination without needing to account for a changing skill registry or extra discoverability tokens.\n\n## Anti-Patterns (What NOT to do)\n- Do not generate large listing attachments in tests when those attachments are irrelevant to the assertion; they add noise and make fixtures brittle.\n- Do not place the test guard after registry lookups or sent-state mutation; the point is to avoid both the output and the work.","tags":["skip","skill","listing","test","environment","cskill","agents","ychampion","agent-skills","ai-agents","cli","coding-agents"],"capabilities":["skill","source-ychampion","skill-skip-skill-listing-in-test-environment","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/skip-skill-listing-in-test-environment","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,943 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:56.743Z","embedding":null,"createdAt":"2026-04-18T22:21:20.935Z","updatedAt":"2026-04-22T00:56:56.743Z","lastSeenAt":"2026-04-22T00:56:56.743Z","tsv":"'account':261 'action':117 'add':295 'anti':272 'anti-pattern':271 'appli':38 'applic':223 'assert':124,293 'attach':12,43,153,231,242,283,288 'attachment-build':42 'avoid':119,319 'behavior':25,118,181,255 'brittl':300 'build':44 'builder':154 'chang':139,213,264 'chat':226 'check':91,192 'churn':207 'code':45 'command':35,63 'command-surfac':34,62 'comput':95 'control':68 'core':70 'cover':252 'default':90 'determinist':23,190 'discover':17,51,84,172,269 'distil':59 'domain':33 'drift':132 'earli':165 'empti':102 'entir':243 'env':196,246 'environ':7,32,93,146,191 'essenti':83,171 'examin':257 'exampl':222 'exercis':41,229 'exit':166 'explicit':185 'extra':268 'fixtur':126,299 'focus':115 'forc':216 'generat':280 'guard':147,306 'happen':162 'heurist':200 'hide':180 'immedi':104 'incident':121 'indirect':199 'interfer':21 'inventori':206 'irrelev':290 'isol':203 'keep':113,201 'key':140 'larg':120,281 'list':4,11,29,56,67,97,157,241,282 'listing-control':66 'lookup':309 'make':298 'meant':186 'messag':235 'method':71 'mode':15,79 'mutat':161,314 'need':50,259 'new':209 'node':195,245 'nois':18,296 'non':82,170 'non-essenti':81,169 'oper':78 'order':236 'outcom':130 'output':85,322 'path':46 'pattern':58,69,178,273 'payload':52,122,173 'pipelin':232 'place':303 'point':316 'prefer':189 'prevent':128 'process':107 'put':142 'real':254 'registri':138,212,266,308 'result':103 'return':100 'review':61 'rule':141 'run':74,109 'runtim':205,227 'sent':312 'sent-stat':311 'separ':77 'silent':88 'skill':3,10,26,28,55,137,210,240,265 'skill-list':9,239 'skill-registri':136 'skill-skip-skill-listing-in-test-environment' 'skip':2,27,237 'skip-skill-listing-in-test-environ':1 'snapshot':218 'sourc':57 'source-ychampion' 'state':98,160,313 'still':251 'suppress':8,167 'surfac':36,64 'test':6,14,24,31,40,73,111,114,129,145,183,197,202,228,248,250,285,305 'test-environ':144 'token':270 'top':150 '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' 'transcript':220 'treat':72 'trigger':37 'unrel':135,217 'updat':221 'use':176 'valid':234 'verifi':188 'without':258 'work':158,325","prices":[{"id":"7cb1b9bf-9267-4eb3-9ea8-8336e48db134","listingId":"8cd32622-485d-4e17-be63-6c3b20bb6a57","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:21:20.935Z"}],"sources":[{"listingId":"8cd32622-485d-4e17-be63-6c3b20bb6a57","source":"github","sourceId":"ychampion/cskill-agents/skip-skill-listing-in-test-environment","sourceUrl":"https://github.com/ychampion/cskill-agents/tree/main/skills/skip-skill-listing-in-test-environment","isPrimary":false,"firstSeenAt":"2026-04-18T22:21:20.935Z","lastSeenAt":"2026-04-22T00:56:56.743Z"}],"details":{"listingId":"8cd32622-485d-4e17-be63-6c3b20bb6a57","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"ychampion","slug":"skip-skill-listing-in-test-environment","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":"1dba253b08d3d0f27c43e3cbfbe2cbeb19d47679","skill_md_path":"skills/skip-skill-listing-in-test-environment/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/ychampion/cskill-agents/tree/main/skills/skip-skill-listing-in-test-environment"},"layout":"multi","source":"github","category":"cskill-agents","frontmatter":{"name":"skip-skill-listing-in-test-environment","description":"Suppress skill-listing attachments in test mode so discoverability noise does not interfere with deterministic test behavior."},"skills_sh_url":"https://skills.sh/ychampion/cskill-agents/skip-skill-listing-in-test-environment"},"updatedAt":"2026-04-22T00:56:56.743Z"}}