[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M71HGPDNDH77K09RCBSV537B":3,"skill-same:01M71HGPDNDH77K09RCBSV537B":108},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":25,"publishedAt":45,"linkOnly":46,"markdownContent":47,"markdownBody":48,"frontMatter":49,"refName":60,"commitSha":61,"skillDirectory":62,"forksCount":63,"repositoryHtmlUrl":64,"repositoryHomepageUrl":6,"ownerHtmlUrl":65,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":66,"install":67,"resources":80},"01M71HGPDNDH77K09RCBSV537B","pixel-art",null,"Pixel art w\u002F era palettes (NES, Game Boy, PICO-8).","xuanxuan1983\u002Fhermes-skills-backup","xuanxuan1983","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F151701653?v=4","01M71HCZNB5H19QJ6YBF98W2WH","01M71HCZP14T0921BD0TC9EPD3",1,"MIT","https:\u002F\u002Fgithub.com\u002Fxuanxuan1983\u002Fhermes-skills-backup\u002Fblob\u002Fmain\u002Fagent-skills\u002Fcreative\u002Fpixel-art\u002FSKILL.md",[17,22],{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000015","视觉设计","SCENARIO","使用场景",{"categoryNo":23,"categoryName":24,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000016","图像与多媒体",[26,27,28,29,30,31,32,33,34,35,36,37,5,38,39,40,41,42,43,44],"pixel","pixel art","Art","nes","macos","arcade","retro","creative","https","github","loops","game","studio","image","linux","gameboy","windows","Animation","Video","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":50,"license":14,"version":51,"metadata":52,"platforms":59,"description":7},"dodo-reach","2.0.0",{"hermes":53},{"tags":54,"credits":57,"category":33},[33,5,31,55,29,41,32,39,56],"snes","video",[58],"Hardware palettes and animation loops ported from Synero\u002Fpixel-art-studio (MIT) — https:\u002F\u002Fgithub.com\u002FSynero\u002Fpixel-art-studio",[40,30,42],"main","17ee50c38aefa9426a89d7e8ee167fdc4c184fb7","agent-skills\u002Fcreative\u002Fpixel-art",0,"https:\u002F\u002Fgithub.com\u002Fxuanxuan1983\u002Fhermes-skills-backup","https:\u002F\u002Fgithub.com\u002Fxuanxuan1983","2026-05-24 00:14:48",{"source":8,"skillName":5,"commands":68,"prompt":78,"zipAvailable":79},[69,72,75],{"tool":70,"command":71},"npx","npx skills add xuanxuan1983\u002Fhermes-skills-backup --skill pixel-art",{"tool":73,"command":74},"bunx","bunx skills add xuanxuan1983\u002Fhermes-skills-backup --skill pixel-art",{"tool":76,"command":77},"pnpm","pnpm dlx skills add xuanxuan1983\u002Fhermes-skills-backup --skill pixel-art","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fxuanxuan1983\u002Fhermes-skills-backup\u002Fblob\u002Fmain\u002Fagent-skills\u002Fcreative\u002Fpixel-art\u002FSKILL.md",true,[81,87,91,96,100,104],{"path":82,"resourceType":83,"resourceTypeDesc":84,"sizeBytes":85,"sourceHtmlUrl":86},"ATTRIBUTION.md","REFERENCE","参考文档",2210,"https:\u002F\u002Fgithub.com\u002Fxuanxuan1983\u002Fhermes-skills-backup\u002Fblob\u002Fmain\u002Fagent-skills\u002Fcreative\u002Fpixel-art\u002FATTRIBUTION.md",{"path":88,"resourceType":83,"resourceTypeDesc":84,"sizeBytes":89,"sourceHtmlUrl":90},"references\u002Fpalettes.md",1711,"https:\u002F\u002Fgithub.com\u002Fxuanxuan1983\u002Fhermes-skills-backup\u002Fblob\u002Fmain\u002Fagent-skills\u002Fcreative\u002Fpixel-art\u002Freferences\u002Fpalettes.md",{"path":92,"resourceType":93,"resourceTypeDesc":94,"sizeBytes":63,"sourceHtmlUrl":95},"scripts\u002F__init__.py","SCRIPT","脚本","https:\u002F\u002Fgithub.com\u002Fxuanxuan1983\u002Fhermes-skills-backup\u002Fblob\u002Fmain\u002Fagent-skills\u002Fcreative\u002Fpixel-art\u002Fscripts\u002F__init__.py",{"path":97,"resourceType":93,"resourceTypeDesc":94,"sizeBytes":98,"sourceHtmlUrl":99},"scripts\u002Fpalettes.py",7455,"https:\u002F\u002Fgithub.com\u002Fxuanxuan1983\u002Fhermes-skills-backup\u002Fblob\u002Fmain\u002Fagent-skills\u002Fcreative\u002Fpixel-art\u002Fscripts\u002Fpalettes.py",{"path":101,"resourceType":93,"resourceTypeDesc":94,"sizeBytes":102,"sourceHtmlUrl":103},"scripts\u002Fpixel_art_video.py",12117,"https:\u002F\u002Fgithub.com\u002Fxuanxuan1983\u002Fhermes-skills-backup\u002Fblob\u002Fmain\u002Fagent-skills\u002Fcreative\u002Fpixel-art\u002Fscripts\u002Fpixel_art_video.py",{"path":105,"resourceType":93,"resourceTypeDesc":94,"sizeBytes":106,"sourceHtmlUrl":107},"scripts\u002Fpixel_art.py",5811,"https:\u002F\u002Fgithub.com\u002Fxuanxuan1983\u002Fhermes-skills-backup\u002Fblob\u002Fmain\u002Fagent-skills\u002Fcreative\u002Fpixel-art\u002Fscripts\u002Fpixel_art.py",[109,148,176,192,214,235],{"skillNo":110,"name":111,"nameZh":6,"description":112,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":113,"categories":114,"keywords":127,"publishedAt":45},"01M71JFHVW1W4XE013TY9ZYN9P","writing-plans","Use when you have a spec or requirements for a multi-step task. Creates comprehensive implementation plans with bite-sized tasks, exact file paths, and complete code examples.","https:\u002F\u002Fgithub.com\u002Fxuanxuan1983\u002Fhermes-skills-backup\u002Fblob\u002Fmain\u002Fskills\u002Fsoftware-development\u002Fwriting-plans\u002FSKILL.md",[115,116,119,124],{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},{"categoryNo":117,"categoryName":118,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000018","写作与文案",{"categoryNo":120,"categoryName":121,"taxonomyType":122,"taxonomyTypeDesc":123},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",{"categoryNo":125,"categoryName":126,"taxonomyType":122,"taxonomyTypeDesc":123},"01JBSEEDCAT000000000000036","内容创作者",[128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147],"writing","writing plans","plans","test-driven","test-driven-development","superpowers","design","when","workflow","you","code","tasks","subagent","code-review","review","documentation","paths","planning","development","for",{"skillNo":149,"name":132,"nameZh":6,"description":150,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":151,"categories":152,"keywords":161,"publishedAt":45},"01M71JFF859RV0XGWS206X1TMB","Use when implementing any feature or bugfix, before writing implementation code. Enforces RED-GREEN-REFACTOR cycle with test-first approach.","https:\u002F\u002Fgithub.com\u002Fxuanxuan1983\u002Fhermes-skills-backup\u002Fblob\u002Fmain\u002Fskills\u002Fsoftware-development\u002Ftest-driven-development\u002FSKILL.md",[153,156,159,160],{"categoryNo":154,"categoryName":155,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000007","代码审查",{"categoryNo":157,"categoryName":158,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000008","测试与质量",{"categoryNo":117,"categoryName":118,"taxonomyType":20,"taxonomyTypeDesc":21},{"categoryNo":125,"categoryName":126,"taxonomyType":122,"taxonomyTypeDesc":123},[162,146,163,164,165,166,167,168,169,170,133,128,171,135,138,140,172,173,174,175],"test driven development","test","driven","test-first","green","cycle","red-green-refactor","testing","implementing","debugging","systematic","bugfix","refactor","systematic-debugging",{"skillNo":177,"name":175,"nameZh":6,"description":178,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":179,"categories":180,"keywords":182,"publishedAt":45},"01M71JFCA5S48PZ5M7DG31R8K5","Use when encountering any bug, test failure, or unexpected behavior. 4-phase root cause investigation — NO fixes without understanding the problem first.","https:\u002F\u002Fgithub.com\u002Fxuanxuan1983\u002Fhermes-skills-backup\u002Fblob\u002Fmain\u002Fskills\u002Fsoftware-development\u002Fsystematic-debugging\u002FSKILL.md",[181],{"categoryNo":157,"categoryName":158,"taxonomyType":20,"taxonomyTypeDesc":21},[183,171,172,131,184,185,132,133,128,135,140,186,187,146,188,189,130,190,191,163],"systematic debugging","problem","problem-solving","phase","bug","fixes","root cause","use","root-cause",{"skillNo":193,"name":194,"nameZh":6,"description":195,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":196,"categories":197,"keywords":207,"publishedAt":45},"01M71JF9RQ092KM5ZXCBBT6FS1","subagent-driven-development","Use when executing implementation plans with independent tasks. Dispatches fresh delegate_task per task with two-stage review (spec compliance then code quality).","https:\u002F\u002Fgithub.com\u002Fxuanxuan1983\u002Fhermes-skills-backup\u002Fblob\u002Fmain\u002Fskills\u002Fsoftware-development\u002Fsubagent-driven-development\u002FSKILL.md",[198,199,202,203,204],{"categoryNo":117,"categoryName":118,"taxonomyType":20,"taxonomyTypeDesc":21},{"categoryNo":200,"categoryName":201,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000023","Skill与智能体开发",{"categoryNo":120,"categoryName":121,"taxonomyType":122,"taxonomyTypeDesc":123},{"categoryNo":125,"categoryName":126,"taxonomyType":122,"taxonomyTypeDesc":123},{"categoryNo":205,"categoryName":206,"taxonomyType":122,"taxonomyTypeDesc":123},"01JBSEEDCAT000000000000037","律师与法务",[208,140,146,164,131,132,209,210,133,128,135,136,138,139,141,142,211,212,213,130],"subagent driven development","delegate","delegation","fresh","parallel","code quality",{"skillNo":215,"name":216,"nameZh":6,"description":217,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":218,"categories":219,"keywords":222,"publishedAt":45},"01M71JF76DA8ARZ4JRYR4VBRWM","requesting-code-review","Pre-commit verification pipeline — static security scan, baseline-aware quality gates, independent reviewer subagent, and auto-fix loop. Use after code changes and before committing, pushing, or opening a PR.","https:\u002F\u002Fgithub.com\u002Fxuanxuan1983\u002Fhermes-skills-backup\u002Fblob\u002Fmain\u002Fskills\u002Fsoftware-development\u002Frequesting-code-review\u002FSKILL.md",[220,221],{"categoryNo":154,"categoryName":155,"taxonomyType":20,"taxonomyTypeDesc":21},{"categoryNo":120,"categoryName":121,"taxonomyType":122,"taxonomyTypeDesc":123},[223,224,138,142,131,225,226,132,227,228,133,229,128,230,231,232,140,141,233,234],"code review","requesting code review","pipeline","static","fix","auto-fix","auto","loop","security scan","commit","reviewer","verification",{"skillNo":236,"name":237,"nameZh":6,"description":238,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":239,"categories":240,"keywords":241,"publishedAt":45},"01M71JF52HZT5VQXFVF9K2H76K","plan","Plan mode for Hermes — inspect context, write a markdown plan into the active workspace's `.hermes\u002Fplans\u002F` directory, and do not execute the work.","https:\u002F\u002Fgithub.com\u002Fxuanxuan1983\u002Fhermes-skills-backup\u002Fblob\u002Fmain\u002Fskills\u002Fsoftware-development\u002Fplan\u002FSKILL.md",[],[237,242,243,145,146,147,244,245,130,128,136,140,246,247,248,249,250,251,252,253],"plan-mode","do","inspect","mode","work","markdown","active","directory","workspace","plan mode","write","implementation"]