[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6CAWD0QCDHP32P0E3XWJMB2":3,"skill-same:01M6CAWD0QCDHP32P0E3XWJMB2":107},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":26,"publishedAt":41,"linkOnly":42,"markdownContent":43,"markdownBody":44,"frontMatter":45,"refName":58,"commitSha":59,"skillDirectory":60,"forksCount":61,"repositoryHtmlUrl":62,"repositoryHomepageUrl":6,"ownerHtmlUrl":63,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":64,"install":65,"resources":78},"01M6CAWD0QCDHP32P0E3XWJMB2","pixel-art",null,"Pixel art w\u002F era palettes (NES, Game Boy, PICO-8).","adnichols\u002Fai-configs","adnichols","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F493746?v=4","01M6C33VRY9WF6XWYPT1AFA7JJ","Aaron Nichols","01M6C33VWTNKGRM92E9G643V4W",5,"MIT","https:\u002F\u002Fgithub.com\u002Fadnichols\u002Fai-configs\u002Fblob\u002Fmain\u002F_hermes\u002Fdefault\u002Fskills\u002Fcreative\u002Fpixel-art\u002FSKILL.md",[18,23],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000015","视觉设计","SCENARIO","使用场景",{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000016","图像与多媒体",[27,28,29,30,31,32,33,34,35,36,37,38,39,40],"pixel art","Art","image","macos","github","linux","windows","https","Video","Animation","retro","game","creative","gameboy","2026-11-10 10:12:30",false,"---\nname: pixel-art\ndescription: \"Pixel art w\u002F era palettes (NES, Game Boy, PICO-8).\"\nversion: 2.0.0\nauthor: dodo-reach\nlicense: MIT\nplatforms: [linux, macos, windows]\nmetadata:\n  hermes:\n    tags: [creative, pixel-art, arcade, snes, nes, gameboy, retro, image, video]\n    category: creative\n    credits:\n      - \"Hardware palettes and animation loops ported from Synero\u002Fpixel-art-studio (MIT) — https:\u002F\u002Fgithub.com\u002FSynero\u002Fpixel-art-studio\"\n---\n\n# Pixel Art\n\nConvert any image into retro pixel art, then optionally animate it into a short\nMP4 or GIF with era-appropriate effects (rain, fireflies, snow, embers).\n\nTwo scripts ship with this skill:\n\n- `scripts\u002Fpixel_art.py` — photo → pixel-art PNG (Floyd-Steinberg dithering)\n- `scripts\u002Fpixel_art_video.py` — pixel-art PNG → animated MP4 (+ optional GIF)\n\nEach is importable or runnable directly. Presets snap to hardware palettes\nwhen you want era-accurate colors (NES, Game Boy, PICO-8, etc.), or use\nadaptive N-color quantization for arcade\u002FSNES-style looks.\n\n## When to Use\n\n- User wants retro pixel art from a source image\n- User asks for NES \u002F Game Boy \u002F PICO-8 \u002F C64 \u002F arcade \u002F SNES styling\n- User wants a short looping animation (rain scene, night sky, snow, etc.)\n- Posters, album covers, social posts, sprites, characters, avatars\n\n## Workflow\n\nBefore generating, confirm the style with the user. Different presets produce\nvery different outputs and regenerating is costly.\n\n### Step 1 — Offer a style\n\nCall `clarify` with 4 representative presets. Pick the set based on what the\nuser asked for — don't just dump all 14.\n\nDefault menu when the user's intent is unclear:\n\n```python\nclarify(\n    question=\"Which pixel-art style do you want?\",\n    choices=[\n        \"arcade — bold, chunky 80s cabinet feel (16 colors, 8px)\",\n        \"nes — Nintendo 8-bit hardware palette (54 colors, 8px)\",\n        \"gameboy — 4-shade green Game Boy DMG\",\n        \"snes — cleaner 16-bit look (32 colors, 4px)\",\n    ],\n)\n```\n\nWhen the user already named an era (e.g. \"80s arcade\", \"Gameboy\"), skip\n`clarify` and use the matching preset directly.\n\n### Step 2 — Offer animation (optional)\n\nIf the user asked for a video\u002FGIF, or the output might benefit from motion,\nask which scene:\n\n```python\nclarify(\n    question=\"Want to animate it? Pick a scene or skip.\",\n    choices=[\n        \"night — stars + fireflies + leaves\",\n        \"urban — rain + neon pulse\",\n        \"snow — falling snowflakes\",\n        \"skip — just the image\",\n    ],\n)\n```\n\nDo NOT call `clarify` more than twice in a row. One for style, one for scene if\nanimation is on the table. If the user explicitly asked for a specific style\nand scene in their message, skip `clarify` entirely.\n\n### Step 3 — Generate\n\nRun `pixel_art()` first; if animation was requested, chain into\n`pixel_art_video()` on the result.\n\n## Preset Catalog\n\n| Preset | Era | Palette | Block | Best for |\n|--------|-----|---------|-------|----------|\n| `arcade` | 80s arcade | adaptive 16 | 8px | Bold posters, hero art |\n| `snes` | 16-bit | adaptive 32 | 4px | Characters, detailed scenes |\n| `nes` | 8-bit | NES (54) | 8px | True NES look |\n| `gameboy` | DMG handheld | 4 green shades | 8px | Monochrome Game Boy |\n| `gameboy_pocket` | Pocket handheld | 4 grey shades | 8px | Mono GB Pocket |\n| `pico8` | PICO-8 | 16 fixed | 6px | Fantasy-console look |\n| `c64` | Commodore 64 | 16 fixed | 8px | 8-bit home computer |\n| `apple2` | Apple II hi-res | 6 fixed | 10px | Extreme retro, 6 colors |\n| `teletext` | BBC Teletext | 8 pure | 10px | Chunky primary colors |\n| `mspaint` | Windows MS Paint | 24 fixed | 8px | Nostalgic desktop |\n| `mono_green` | CRT phosphor | 2 green | 6px | Terminal\u002FCRT aesthetic |\n| `mono_amber` | CRT amber | 2 amber | 6px | Amber monitor look |\n| `neon` | Cyberpunk | 10 neons | 6px | Vaporwave\u002Fcyber |\n| `pastel` | Soft pastel | 10 pastels | 6px | Kawaii \u002F gentle |\n\nNamed palettes live in `scripts\u002Fpalettes.py` (see `references\u002Fpalettes.md` for\nthe complete list — 28 named palettes total). Any preset can be overridden:\n\n```python\npixel_art(\"in.png\", \"out.png\", preset=\"snes\", palette=\"PICO_8\", block=6)\n```\n\n## Scene Catalog (for video)\n\n| Scene | Effects |\n|-------|---------|\n| `night` | Twinkling stars + fireflies + drifting leaves |\n| `dusk` | Fireflies + sparkles |\n| `tavern` | Dust motes + warm sparkles |\n| `indoor` | Dust motes |\n| `urban` | Rain + neon pulse |\n| `nature` | Leaves + fireflies |\n| `magic` | Sparkles + fireflies |\n| `storm` | Rain + lightning |\n| `underwater` | Bubbles + light sparkles |\n| `fire` | Embers + sparkles |\n| `snow` | Snowflakes + sparkles |\n| `desert` | Heat shimmer + dust |\n\n## Invocation Patterns\n\n### Python (import)\n\n```python\nimport sys\nsys.path.insert(0, \"\u002Fhome\u002Fteknium\u002F.hermes\u002Fskills\u002Fcreative\u002Fpixel-art\u002Fscripts\")\nfrom pixel_art import pixel_art\nfrom pixel_art_video import pixel_art_video\n\n# 1. Convert to pixel art\npixel_art(\"\u002Fpath\u002Fto\u002Fphoto.jpg\", \"\u002Ftmp\u002Fpixel.png\", preset=\"nes\")\n\n# 2. Animate (optional)\npixel_art_video(\n    \"\u002Ftmp\u002Fpixel.png\",\n    \"\u002Ftmp\u002Fpixel.mp4\",\n    scene=\"night\",\n    duration=6,\n    fps=15,\n    seed=42,\n    export_gif=True,\n)\n```\n\n### CLI\n\n```bash\ncd \u002Fhome\u002Fteknium\u002F.hermes\u002Fskills\u002Fcreative\u002Fpixel-art\u002Fscripts\n\npython pixel_art.py in.jpg out.png --preset gameboy\npython pixel_art.py in.jpg out.png --preset snes --palette PICO_8 --block 6\n\npython pixel_art_video.py out.png out.mp4 --scene night --duration 6 --gif\n```\n\n## Pipeline Rationale\n\n**Pixel conversion:**\n1. Boost contrast\u002Fcolor\u002Fsharpness (stronger for smaller palettes)\n2. Posterize to simplify tonal regions before quantization\n3. Downscale by `block` with `Image.NEAREST` (hard pixels, no interpolation)\n4. Quantize with Floyd-Steinberg dithering — against either an adaptive\n   N-color palette OR a named hardware palette\n5. Upscale back with `Image.NEAREST`\n\nQuantizing AFTER downscale keeps dithering aligned with the final pixel grid.\nQuantizing before would waste error-diffusion on detail that disappears.\n\n**Video overlay:**\n- Copies the base frame each tick (static background)\n- Overlays stateless-per-frame particle draws (one function per effect)\n- Encodes via ffmpeg `libx264 -pix_fmt yuv420p -crf 18`\n- Optional GIF via `palettegen` + `paletteuse`\n\n## Dependencies\n\n- Python 3.9+\n- Pillow (`pip install Pillow`)\n- ffmpeg on PATH (only needed for video — Hermes installs package this)\n\n## Pitfalls\n\n- Pallet keys are case-sensitive (`\"NES\"`, `\"PICO_8\"`, `\"GAMEBOY_ORIGINAL\"`).\n- Very small sources (\u003C100px wide) collapse under 8-10px blocks. Upscale the\n  source first if it's tiny.\n- Fractional `block` or `palette` will break quantization — keep them positive ints.\n- Animation particle counts are tuned for ~640x480 canvases. On very large\n  images you may want a second pass with a different seed for density.\n- `mono_green` \u002F `mono_amber` force `color=0.0` (desaturate). If you override\n  and keep chroma, the 2-color palette can produce stripes on smooth regions.\n- `clarify` loop: call it at most twice per turn (style, then scene). Don't\n  pepper the user with more picks.\n\n## Verification\n\n- PNG is created at the output path\n- Clear square pixel blocks visible at the preset's block size\n- Color count matches preset (eyeball the image or run `Image.open(p).getcolors()`)\n- Video is a valid MP4 (`ffprobe` can open it) with non-zero size\n\n## Attribution\n\nNamed hardware palettes and the procedural animation loops in `pixel_art_video.py`\nare ported from [pixel-art-studio](https:\u002F\u002Fgithub.com\u002FSynero\u002Fpixel-art-studio)\n(MIT). See `ATTRIBUTION.md` in this skill directory for details.\n","# Pixel Art\n\nConvert any image into retro pixel art, then optionally animate it into a short\nMP4 or GIF with era-appropriate effects (rain, fireflies, snow, embers).\n\nTwo scripts ship with this skill:\n\n- `scripts\u002Fpixel_art.py` — photo → pixel-art PNG (Floyd-Steinberg dithering)\n- `scripts\u002Fpixel_art_video.py` — pixel-art PNG → animated MP4 (+ optional GIF)\n\nEach is importable or runnable directly. Presets snap to hardware palettes\nwhen you want era-accurate colors (NES, Game Boy, PICO-8, etc.), or use\nadaptive N-color quantization for arcade\u002FSNES-style looks.\n\n## When to Use\n\n- User wants retro pixel art from a source image\n- User asks for NES \u002F Game Boy \u002F PICO-8 \u002F C64 \u002F arcade \u002F SNES styling\n- User wants a short looping animation (rain scene, night sky, snow, etc.)\n- Posters, album covers, social posts, sprites, characters, avatars\n\n## Workflow\n\nBefore generating, confirm the style with the user. Different presets produce\nvery different outputs and regenerating is costly.\n\n### Step 1 — Offer a style\n\nCall `clarify` with 4 representative presets. Pick the set based on what the\nuser asked for — don't just dump all 14.\n\nDefault menu when the user's intent is unclear:\n\n```python\nclarify(\n    question=\"Which pixel-art style do you want?\",\n    choices=[\n        \"arcade — bold, chunky 80s cabinet feel (16 colors, 8px)\",\n        \"nes — Nintendo 8-bit hardware palette (54 colors, 8px)\",\n        \"gameboy — 4-shade green Game Boy DMG\",\n        \"snes — cleaner 16-bit look (32 colors, 4px)\",\n    ],\n)\n```\n\nWhen the user already named an era (e.g. \"80s arcade\", \"Gameboy\"), skip\n`clarify` and use the matching preset directly.\n\n### Step 2 — Offer animation (optional)\n\nIf the user asked for a video\u002FGIF, or the output might benefit from motion,\nask which scene:\n\n```python\nclarify(\n    question=\"Want to animate it? Pick a scene or skip.\",\n    choices=[\n        \"night — stars + fireflies + leaves\",\n        \"urban — rain + neon pulse\",\n        \"snow — falling snowflakes\",\n        \"skip — just the image\",\n    ],\n)\n```\n\nDo NOT call `clarify` more than twice in a row. One for style, one for scene if\nanimation is on the table. If the user explicitly asked for a specific style\nand scene in their message, skip `clarify` entirely.\n\n### Step 3 — Generate\n\nRun `pixel_art()` first; if animation was requested, chain into\n`pixel_art_video()` on the result.\n\n## Preset Catalog\n\n| Preset | Era | Palette | Block | Best for |\n|--------|-----|---------|-------|----------|\n| `arcade` | 80s arcade | adaptive 16 | 8px | Bold posters, hero art |\n| `snes` | 16-bit | adaptive 32 | 4px | Characters, detailed scenes |\n| `nes` | 8-bit | NES (54) | 8px | True NES look |\n| `gameboy` | DMG handheld | 4 green shades | 8px | Monochrome Game Boy |\n| `gameboy_pocket` | Pocket handheld | 4 grey shades | 8px | Mono GB Pocket |\n| `pico8` | PICO-8 | 16 fixed | 6px | Fantasy-console look |\n| `c64` | Commodore 64 | 16 fixed | 8px | 8-bit home computer |\n| `apple2` | Apple II hi-res | 6 fixed | 10px | Extreme retro, 6 colors |\n| `teletext` | BBC Teletext | 8 pure | 10px | Chunky primary colors |\n| `mspaint` | Windows MS Paint | 24 fixed | 8px | Nostalgic desktop |\n| `mono_green` | CRT phosphor | 2 green | 6px | Terminal\u002FCRT aesthetic |\n| `mono_amber` | CRT amber | 2 amber | 6px | Amber monitor look |\n| `neon` | Cyberpunk | 10 neons | 6px | Vaporwave\u002Fcyber |\n| `pastel` | Soft pastel | 10 pastels | 6px | Kawaii \u002F gentle |\n\nNamed palettes live in `scripts\u002Fpalettes.py` (see `references\u002Fpalettes.md` for\nthe complete list — 28 named palettes total). Any preset can be overridden:\n\n```python\npixel_art(\"in.png\", \"out.png\", preset=\"snes\", palette=\"PICO_8\", block=6)\n```\n\n## Scene Catalog (for video)\n\n| Scene | Effects |\n|-------|---------|\n| `night` | Twinkling stars + fireflies + drifting leaves |\n| `dusk` | Fireflies + sparkles |\n| `tavern` | Dust motes + warm sparkles |\n| `indoor` | Dust motes |\n| `urban` | Rain + neon pulse |\n| `nature` | Leaves + fireflies |\n| `magic` | Sparkles + fireflies |\n| `storm` | Rain + lightning |\n| `underwater` | Bubbles + light sparkles |\n| `fire` | Embers + sparkles |\n| `snow` | Snowflakes + sparkles |\n| `desert` | Heat shimmer + dust |\n\n## Invocation Patterns\n\n### Python (import)\n\n```python\nimport sys\nsys.path.insert(0, \"\u002Fhome\u002Fteknium\u002F.hermes\u002Fskills\u002Fcreative\u002Fpixel-art\u002Fscripts\")\nfrom pixel_art import pixel_art\nfrom pixel_art_video import pixel_art_video\n\n# 1. Convert to pixel art\npixel_art(\"\u002Fpath\u002Fto\u002Fphoto.jpg\", \"\u002Ftmp\u002Fpixel.png\", preset=\"nes\")\n\n# 2. Animate (optional)\npixel_art_video(\n    \"\u002Ftmp\u002Fpixel.png\",\n    \"\u002Ftmp\u002Fpixel.mp4\",\n    scene=\"night\",\n    duration=6,\n    fps=15,\n    seed=42,\n    export_gif=True,\n)\n```\n\n### CLI\n\n```bash\ncd \u002Fhome\u002Fteknium\u002F.hermes\u002Fskills\u002Fcreative\u002Fpixel-art\u002Fscripts\n\npython pixel_art.py in.jpg out.png --preset gameboy\npython pixel_art.py in.jpg out.png --preset snes --palette PICO_8 --block 6\n\npython pixel_art_video.py out.png out.mp4 --scene night --duration 6 --gif\n```\n\n## Pipeline Rationale\n\n**Pixel conversion:**\n1. Boost contrast\u002Fcolor\u002Fsharpness (stronger for smaller palettes)\n2. Posterize to simplify tonal regions before quantization\n3. Downscale by `block` with `Image.NEAREST` (hard pixels, no interpolation)\n4. Quantize with Floyd-Steinberg dithering — against either an adaptive\n   N-color palette OR a named hardware palette\n5. Upscale back with `Image.NEAREST`\n\nQuantizing AFTER downscale keeps dithering aligned with the final pixel grid.\nQuantizing before would waste error-diffusion on detail that disappears.\n\n**Video overlay:**\n- Copies the base frame each tick (static background)\n- Overlays stateless-per-frame particle draws (one function per effect)\n- Encodes via ffmpeg `libx264 -pix_fmt yuv420p -crf 18`\n- Optional GIF via `palettegen` + `paletteuse`\n\n## Dependencies\n\n- Python 3.9+\n- Pillow (`pip install Pillow`)\n- ffmpeg on PATH (only needed for video — Hermes installs package this)\n\n## Pitfalls\n\n- Pallet keys are case-sensitive (`\"NES\"`, `\"PICO_8\"`, `\"GAMEBOY_ORIGINAL\"`).\n- Very small sources (\u003C100px wide) collapse under 8-10px blocks. Upscale the\n  source first if it's tiny.\n- Fractional `block` or `palette` will break quantization — keep them positive ints.\n- Animation particle counts are tuned for ~640x480 canvases. On very large\n  images you may want a second pass with a different seed for density.\n- `mono_green` \u002F `mono_amber` force `color=0.0` (desaturate). If you override\n  and keep chroma, the 2-color palette can produce stripes on smooth regions.\n- `clarify` loop: call it at most twice per turn (style, then scene). Don't\n  pepper the user with more picks.\n\n## Verification\n\n- PNG is created at the output path\n- Clear square pixel blocks visible at the preset's block size\n- Color count matches preset (eyeball the image or run `Image.open(p).getcolors()`)\n- Video is a valid MP4 (`ffprobe` can open it) with non-zero size\n\n## Attribution\n\nNamed hardware palettes and the procedural animation loops in `pixel_art_video.py`\nare ported from [pixel-art-studio](https:\u002F\u002Fgithub.com\u002FSynero\u002Fpixel-art-studio)\n(MIT). See `ATTRIBUTION.md` in this skill directory for details.\n",{"name":5,"author":46,"license":15,"version":47,"metadata":48,"platforms":57,"description":7},"dodo-reach","2.0.0",{"hermes":49},{"tags":50,"credits":55,"category":39},[39,5,51,52,53,40,37,29,54],"arcade","snes","nes","video",[56],"Hardware palettes and animation loops ported from Synero\u002Fpixel-art-studio (MIT) — https:\u002F\u002Fgithub.com\u002FSynero\u002Fpixel-art-studio",[32,30,33],"main","64e2fc9afa7bb3da1138eb73399144d0e7e73e9d","_hermes\u002Fdefault\u002Fskills\u002Fcreative\u002Fpixel-art",4,"https:\u002F\u002Fgithub.com\u002Fadnichols\u002Fai-configs","https:\u002F\u002Fgithub.com\u002Fadnichols","2026-11-06 00:28:38",{"source":8,"skillName":5,"commands":66,"prompt":76,"zipAvailable":77},[67,70,73],{"tool":68,"command":69},"npx","npx skills add adnichols\u002Fai-configs --skill pixel-art",{"tool":71,"command":72},"bunx","bunx skills add adnichols\u002Fai-configs --skill pixel-art",{"tool":74,"command":75},"pnpm","pnpm dlx skills add adnichols\u002Fai-configs --skill pixel-art","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fadnichols\u002Fai-configs\u002Fblob\u002Fmain\u002F_hermes\u002Fdefault\u002Fskills\u002Fcreative\u002Fpixel-art\u002FSKILL.md",true,[79,85,89,95,99,103],{"path":80,"resourceType":81,"resourceTypeDesc":82,"sizeBytes":83,"sourceHtmlUrl":84},"ATTRIBUTION.md","REFERENCE","参考文档",2210,"https:\u002F\u002Fgithub.com\u002Fadnichols\u002Fai-configs\u002Fblob\u002Fmain\u002F_hermes\u002Fdefault\u002Fskills\u002Fcreative\u002Fpixel-art\u002FATTRIBUTION.md",{"path":86,"resourceType":81,"resourceTypeDesc":82,"sizeBytes":87,"sourceHtmlUrl":88},"references\u002Fpalettes.md",1711,"https:\u002F\u002Fgithub.com\u002Fadnichols\u002Fai-configs\u002Fblob\u002Fmain\u002F_hermes\u002Fdefault\u002Fskills\u002Fcreative\u002Fpixel-art\u002Freferences\u002Fpalettes.md",{"path":90,"resourceType":91,"resourceTypeDesc":92,"sizeBytes":93,"sourceHtmlUrl":94},"scripts\u002F__init__.py","SCRIPT","脚本",0,"https:\u002F\u002Fgithub.com\u002Fadnichols\u002Fai-configs\u002Fblob\u002Fmain\u002F_hermes\u002Fdefault\u002Fskills\u002Fcreative\u002Fpixel-art\u002Fscripts\u002F__init__.py",{"path":96,"resourceType":91,"resourceTypeDesc":92,"sizeBytes":97,"sourceHtmlUrl":98},"scripts\u002Fpalettes.py",7455,"https:\u002F\u002Fgithub.com\u002Fadnichols\u002Fai-configs\u002Fblob\u002Fmain\u002F_hermes\u002Fdefault\u002Fskills\u002Fcreative\u002Fpixel-art\u002Fscripts\u002Fpalettes.py",{"path":100,"resourceType":91,"resourceTypeDesc":92,"sizeBytes":101,"sourceHtmlUrl":102},"scripts\u002Fpixel_art_video.py",12117,"https:\u002F\u002Fgithub.com\u002Fadnichols\u002Fai-configs\u002Fblob\u002Fmain\u002F_hermes\u002Fdefault\u002Fskills\u002Fcreative\u002Fpixel-art\u002Fscripts\u002Fpixel_art_video.py",{"path":104,"resourceType":91,"resourceTypeDesc":92,"sizeBytes":105,"sourceHtmlUrl":106},"scripts\u002Fpixel_art.py",5811,"https:\u002F\u002Fgithub.com\u002Fadnichols\u002Fai-configs\u002Fblob\u002Fmain\u002F_hermes\u002Fdefault\u002Fskills\u002Fcreative\u002Fpixel-art\u002Fscripts\u002Fpixel_art.py",[108,127,159,184,195,211],{"skillNo":109,"name":110,"nameZh":6,"description":111,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":112,"categories":113,"keywords":114,"publishedAt":41},"01M6CB7RN791P5RRRCJWWC7DAR","blocked-page-recovery","Use when a fetch fails: 403\u002F429, paywall, WAF, bot wall.","https:\u002F\u002Fgithub.com\u002Fadnichols\u002Fai-configs\u002Fblob\u002Fmain\u002F_hermes\u002Fdefault\u002Fskills\u002Fweb\u002Fblocked-page-recovery\u002FSKILL.md",[],[115,116,117,118,119,120,121,122,123,124,125,33,126,32,30],"recovery","page","blocked page recovery","bot","fallback","use","fetch","hermes agent","hermes","Citations","waf","research",{"skillNo":128,"name":129,"nameZh":6,"description":130,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":131,"categories":132,"keywords":144,"publishedAt":41},"01M6CB7NQY2VVYCQJ1QBXACQF4","writing-plans","Use when creating or updating executable software plans. Keep plans as local files unless the user explicitly asks to register them in Doct.","https:\u002F\u002Fgithub.com\u002Fadnichols\u002Fai-configs\u002Fblob\u002Fmain\u002F_hermes\u002Fdefault\u002Fskills\u002Fsoftware-development\u002Fwriting-plans\u002FSKILL.md",[133,136,139],{"categoryNo":134,"categoryName":135,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000018","写作与文案",{"categoryNo":137,"categoryName":138,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发",{"categoryNo":140,"categoryName":141,"taxonomyType":142,"taxonomyTypeDesc":143},"01JBSEEDCAT000000000000036","内容创作者","PROFESSION","适用职业",[145,146,147,148,149,150,151,152,153,154,155,156,120,157,122,123,158],"writing","writing plans","documentation","test","workflow","design","user","development","planning","files","implementation","html","ops","plan",{"skillNo":160,"name":161,"nameZh":6,"description":162,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":163,"categories":164,"keywords":174,"publishedAt":41},"01M6CB7JME246KZQHP73Z2STDF","test-driven-development","TDD: enforce RED-GREEN-REFACTOR, tests before code.","https:\u002F\u002Fgithub.com\u002Fadnichols\u002Fai-configs\u002Fblob\u002Fmain\u002F_hermes\u002Fdefault\u002Fskills\u002Fsoftware-development\u002Ftest-driven-development\u002FSKILL.md",[165,168,171],{"categoryNo":166,"categoryName":167,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000007","代码审查",{"categoryNo":169,"categoryName":170,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000008","测试与质量",{"categoryNo":172,"categoryName":173,"taxonomyType":142,"taxonomyTypeDesc":143},"01JBSEEDCAT000000000000037","律师与法务",[148,152,175,176,177,122,123,178,158,179,180,181,30,182,32,183,33],"test driven development","red-green-refactor","superpowers","quality","refactor","code","debugging","tdd","testing",{"skillNo":185,"name":186,"nameZh":6,"description":187,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":188,"categories":189,"keywords":191,"publishedAt":41},"01M6CB7FQ407KQTD4Z9VAWKY54","systematic-debugging","4-phase root cause debugging: understand bugs before fixing.","https:\u002F\u002Fgithub.com\u002Fadnichols\u002Fai-configs\u002Fblob\u002Fmain\u002F_hermes\u002Fdefault\u002Fskills\u002Fsoftware-development\u002Fsystematic-debugging\u002FSKILL.md",[190],{"categoryNo":169,"categoryName":170,"taxonomyType":21,"taxonomyTypeDesc":22},[181,192,152,177,122,123,193,158,194,33,148,32,30],"systematic debugging","troubleshooting","investigation",{"skillNo":196,"name":197,"nameZh":6,"description":198,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":199,"categories":200,"keywords":204,"publishedAt":41},"01M6CB7D57MK88HE5YPZHKH68Q","spike","Throwaway experiments to validate an idea before build.","https:\u002F\u002Fgithub.com\u002Fadnichols\u002Fai-configs\u002Fblob\u002Fmain\u002F_hermes\u002Fdefault\u002Fskills\u002Fsoftware-development\u002Fspike\u002FSKILL.md",[201],{"categoryNo":202,"categoryName":203,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000021","资料检索与研究",[197,33,205,206,126,207,32,30,208,209,210,122,123,158,153],"validate","experiments","prototype","feasibility","sketch","experiment",{"skillNo":212,"name":213,"nameZh":6,"description":214,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":215,"categories":216,"keywords":221,"publishedAt":41},"01M6CB7APAQ37YE5YE1MAAFT42","simplify-code","Parallel 3-agent cleanup of recent code changes.","https:\u002F\u002Fgithub.com\u002Fadnichols\u002Fai-configs\u002Fblob\u002Fmain\u002F_hermes\u002Fdefault\u002Fskills\u002Fsoftware-development\u002Fsimplify-code\u002FSKILL.md",[217,218],{"categoryNo":137,"categoryName":138,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":219,"categoryName":220,"taxonomyType":142,"taxonomyTypeDesc":143},"01JBSEEDCAT000000000000030","开发工程师",[222,223,180,224,122,123,225,158,179,226,227,228,152,33,148,32,229,30],"simplify code","simplify","subagent","parallel","code-review","delegation","cleanup","review"]