[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6DHVKVB42HWRDX00E7ND9RM":3,"skill-same:01M6DHVKVB42HWRDX00E7ND9RM":139},{"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":31,"publishedAt":52,"linkOnly":53,"markdownContent":54,"markdownBody":55,"frontMatter":56,"refName":75,"commitSha":76,"skillDirectory":77,"forksCount":78,"repositoryHtmlUrl":79,"repositoryHomepageUrl":6,"ownerHtmlUrl":80,"ownerBlogUrl":6,"ownerDescription":81,"updatedAt":82,"install":83,"resources":96},"01M6DHVKVB42HWRDX00E7ND9RM","cli-developer",null,"Use when building a command-line tool — subcommands, flags, prompts, progress bars, shell completions, cross-platform distribution. Triggers on: \"CLI 도구 만들어줘\", \"서브커맨드 설계\", \"build a CLI\". Not for web UIs or REST APIs.","newkayak12\u002Fclaude-skills","newkayak12","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F74722411?v=4","01M6DHQRSHSVM4F2EJACTMC766","Sanghyeon Kim","01M6DHQRX6XQ0XKTD3QB8CGFM9",3,"MIT","https:\u002F\u002Fgithub.com\u002Fnewkayak12\u002Fclaude-skills\u002Fblob\u002Fmain\u002Fdevelop\u002Fskills\u002Fcli-developer\u002FSKILL.md",[18,23,28],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",{"categoryNo":24,"categoryName":25,"taxonomyType":26,"taxonomyTypeDesc":27},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",{"categoryNo":29,"categoryName":30,"taxonomyType":26,"taxonomyTypeDesc":27},"01JBSEEDCAT000000000000032","设计师",[32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51],"cli","developer","cli developer","interactive","app","triggers","distribution","platform","across","engineer","sre","use","design","strategy","prompt","tool","sse","code","deployment","MCP","2026-11-10 10:12:30",false,"---\nname: cli-developer\ndescription: >-\n  Use when building a command-line tool — subcommands, flags, prompts, progress bars, shell completions, cross-platform\n  distribution. Triggers on: \"CLI 도구 만들어줘\", \"서브커맨드 설계\", \"build a CLI\". Not for web UIs or REST APIs.\nscenarios:\n  - \"Build a CLI tool that manages deployment configurations across environments\"\n  - \"I need to create a command-line interface for our internal developer tools\"\n  - \"Help me design a CLI with subcommands, flags, and interactive prompts\"\n  - \"CLI 도구를 만들어줘 — 배포 설정을 관리하는 커맨드라인 앱\"\n  - \"개발자용 내부 CLI 툴 설계를 도와줘\"\ncompatibility:\n  recommended: []\n  optional:\n    - think-tool\n  remote_mcp_note: >-\n    think-tool이 있으면 커맨드 계층 구조와 UX 설계를 더 체계적으로 검토할 수 있습니다.\n    Claude 설정 → MCP Servers에서 remote SSE 엔드포인트를 추가하세요.\nlicense: MIT\nmetadata:\n  domain: devops\n  version: \"1.1.0\"\n  scope: implementation\n  role: specialist\n  related-skills: sre-engineer, documentation-strategy\n  output-format: code\n  triggers: CLI, command-line tool, terminal app, subcommands, flags, shell completion, interactive prompt, progress bar, oclif, argparse, bubbletea\n---\n\n## Standing Mandates\n\n- NEVER write code before the expected `--help` of every command is written down. The command surface is the public\n  API: scripts and muscle memory depend on it, so it is cheaper to argue about on paper than after release.\n- NEVER change a shipped command's name, flag or exit code in place; a rename is a breaking change. Add the new form,\n  keep the old as an alias, and say so.\n- NEVER call the tool done from reading the code. Run `\u003Ccli> --help`, `\u003Ccli> --version`, one failing input, and one\n  piped run (`\u003Ccli> ... | cat`, stdin not a TTY), and quote the output and exit codes; a run you could not do is\n  `not run: \u003Cwhat>`. Prompts that block in CI and colour codes in a pipe show only in those runs.\n- NEVER write diagnostics or progress to stdout; stdout is data that may be piped, so logs and errors go to stderr.\n- NEVER hardcode a platform path (`~`, `\u002Ftmp`, `C:\\`); use `os.homedir()` \u002F `Path.home()` \u002F the platform's config dir.\n- Missing facts (target OSes, shells, who runs it, startup budget, config sources) are `[확인 필요: ○○]`; do not pick\n  them silently. Startup time is measured and reported against the user's budget; a fixed number such as 50 ms is\n  realistic for a Go binary and not for a Node or Python one.\n- Goal: every command has help text, an exit-code contract and a non-interactive path, and the closing tally recounts\n  to the command list.\n\n# CLI Developer\n\n**Not for** web UIs or REST APIs, SRE pipeline integration alone (`develop:sre-engineer`), or the written docs around\nthe tool (`develop:documentation-strategy`).\n\n## Process\n\n1. **Analyze UX** — who runs it, for what; sketch the command hierarchy; write each command's expected `--help`.\n2. **Design commands** — subcommands, flags, arguments, config sources and precedence (flag > env > file > default);\n   one flag-naming convention; no shipped signature changes.\n3. **Select framework** — Node.js `commander` → `yargs` → `oclif`; Python `typer` → `click` → `argparse`; Go\n   `cobra + viper`, `bubbletea` for a TUI only.\n4. **Implement** — validate input before any work; every question has a flag or env fallback; on SIGINT clean up and exit\n   130 (128+2); 0 success, 1 failure, 2 usage error unless the repo already defines codes.\n5. **Polish** — completions for the shells in scope, clear errors, progress feedback; colour only when stdout is a\n   TTY, and honour `NO_COLOR`.\n6. **Test** — run the commands from the Mandates on each target OS and measure cold start.\n7. **Recount** — count commands, those with help text, a documented exit code, and a non-interactive path; fix the\n   tally if it differs.\n\n## Output Template\n\n```\n## \u003Ctool>\n\n1. Entry point and subcommand layout\n2. Config: files, environment, flags, precedence\n3. Code, including error paths and exit codes\n4. Completion scripts for \u003Cshells>\n5. UX rationale, one line per choice\n\nOpen: [확인 필요: ○○] ...\n\nCommands \u003Cn> · help text \u003Ch> · exit codes \u003Ce> · non-interactive \u003Ci> · completions \u003Cshells>\nRun: --help ok · --version ok · piped ok · cold start \u003Cms> (budget \u003Cms>) | not run: \u003Cwhat>\n```\n\n## What Claude Does \u002F What You Do\n\n| Claude | You |\n|--------|-----|\n| Designs hierarchy and flag naming | Confirm it matches your users' workflows |\n| Generates framework boilerplate and completions | Implement the domain logic |\n| Handles TTY detection, SIGINT, paths | Test on your target OSes and shells |\n\n## Reference Guide\n\n| Area | File | Read it when |\n|------|------|--------------|\n| Command surface | `references\u002Fdesign-patterns.md` | Naming, flags, config precedence, exit codes |\n| Node.js | `references\u002Fnode-cli.md` | commander, yargs, prompts, npm publishing |\n| Python | `references\u002Fpython-cli.md` | typer, click, argparse, rich |\n| Go | `references\u002Fgo-cli.md` | viper, cobra, signals, tests, releases |\n| Go TUI | `references\u002Fgo-tui.md` | bubbletea models, bubbles components |\n| UX | `references\u002Fux-patterns.md` | Feedback, colour, help text, errors |\n\n## Related Skills\n\n- `develop:sre-engineer` — wiring the tool into SRE pipelines\n- `develop:documentation-strategy` — documenting commands and flags\n","## Standing Mandates\n\n- NEVER write code before the expected `--help` of every command is written down. The command surface is the public\n  API: scripts and muscle memory depend on it, so it is cheaper to argue about on paper than after release.\n- NEVER change a shipped command's name, flag or exit code in place; a rename is a breaking change. Add the new form,\n  keep the old as an alias, and say so.\n- NEVER call the tool done from reading the code. Run `\u003Ccli> --help`, `\u003Ccli> --version`, one failing input, and one\n  piped run (`\u003Ccli> ... | cat`, stdin not a TTY), and quote the output and exit codes; a run you could not do is\n  `not run: \u003Cwhat>`. Prompts that block in CI and colour codes in a pipe show only in those runs.\n- NEVER write diagnostics or progress to stdout; stdout is data that may be piped, so logs and errors go to stderr.\n- NEVER hardcode a platform path (`~`, `\u002Ftmp`, `C:\\`); use `os.homedir()` \u002F `Path.home()` \u002F the platform's config dir.\n- Missing facts (target OSes, shells, who runs it, startup budget, config sources) are `[확인 필요: ○○]`; do not pick\n  them silently. Startup time is measured and reported against the user's budget; a fixed number such as 50 ms is\n  realistic for a Go binary and not for a Node or Python one.\n- Goal: every command has help text, an exit-code contract and a non-interactive path, and the closing tally recounts\n  to the command list.\n\n# CLI Developer\n\n**Not for** web UIs or REST APIs, SRE pipeline integration alone (`develop:sre-engineer`), or the written docs around\nthe tool (`develop:documentation-strategy`).\n\n## Process\n\n1. **Analyze UX** — who runs it, for what; sketch the command hierarchy; write each command's expected `--help`.\n2. **Design commands** — subcommands, flags, arguments, config sources and precedence (flag > env > file > default);\n   one flag-naming convention; no shipped signature changes.\n3. **Select framework** — Node.js `commander` → `yargs` → `oclif`; Python `typer` → `click` → `argparse`; Go\n   `cobra + viper`, `bubbletea` for a TUI only.\n4. **Implement** — validate input before any work; every question has a flag or env fallback; on SIGINT clean up and exit\n   130 (128+2); 0 success, 1 failure, 2 usage error unless the repo already defines codes.\n5. **Polish** — completions for the shells in scope, clear errors, progress feedback; colour only when stdout is a\n   TTY, and honour `NO_COLOR`.\n6. **Test** — run the commands from the Mandates on each target OS and measure cold start.\n7. **Recount** — count commands, those with help text, a documented exit code, and a non-interactive path; fix the\n   tally if it differs.\n\n## Output Template\n\n```\n## \u003Ctool>\n\n1. Entry point and subcommand layout\n2. Config: files, environment, flags, precedence\n3. Code, including error paths and exit codes\n4. Completion scripts for \u003Cshells>\n5. UX rationale, one line per choice\n\nOpen: [확인 필요: ○○] ...\n\nCommands \u003Cn> · help text \u003Ch> · exit codes \u003Ce> · non-interactive \u003Ci> · completions \u003Cshells>\nRun: --help ok · --version ok · piped ok · cold start \u003Cms> (budget \u003Cms>) | not run: \u003Cwhat>\n```\n\n## What Claude Does \u002F What You Do\n\n| Claude | You |\n|--------|-----|\n| Designs hierarchy and flag naming | Confirm it matches your users' workflows |\n| Generates framework boilerplate and completions | Implement the domain logic |\n| Handles TTY detection, SIGINT, paths | Test on your target OSes and shells |\n\n## Reference Guide\n\n| Area | File | Read it when |\n|------|------|--------------|\n| Command surface | `references\u002Fdesign-patterns.md` | Naming, flags, config precedence, exit codes |\n| Node.js | `references\u002Fnode-cli.md` | commander, yargs, prompts, npm publishing |\n| Python | `references\u002Fpython-cli.md` | typer, click, argparse, rich |\n| Go | `references\u002Fgo-cli.md` | viper, cobra, signals, tests, releases |\n| Go TUI | `references\u002Fgo-tui.md` | bubbletea models, bubbles components |\n| UX | `references\u002Fux-patterns.md` | Feedback, colour, help text, errors |\n\n## Related Skills\n\n- `develop:sre-engineer` — wiring the tool into SRE pipelines\n- `develop:documentation-strategy` — documenting commands and flags\n",{"name":5,"license":15,"metadata":57,"scenarios":64,"description":7,"compatibility":70},{"role":58,"scope":59,"domain":60,"version":61,"triggers":62,"output-format":49,"related-skills":63},"specialist","implementation","devops","1.1.0","CLI, command-line tool, terminal app, subcommands, flags, shell completion, interactive prompt, progress bar, oclif, argparse, bubbletea","sre-engineer, documentation-strategy",[65,66,67,68,69],"Build a CLI tool that manages deployment configurations across environments","I need to create a command-line interface for our internal developer tools","Help me design a CLI with subcommands, flags, and interactive prompts","CLI 도구를 만들어줘 — 배포 설정을 관리하는 커맨드라인 앱","개발자용 내부 CLI 툴 설계를 도와줘",{"optional":71,"recommended":73,"remote_mcp_note":74},[72],"think-tool",[],"think-tool이 있으면 커맨드 계층 구조와 UX 설계를 더 체계적으로 검토할 수 있습니다. Claude 설정 → MCP Servers에서 remote SSE 엔드포인트를 추가하세요.","main","cdb89e1460a1035ae4d122ee0b33344216b2cbfe","develop\u002Fskills\u002Fcli-developer",1,"https:\u002F\u002Fgithub.com\u002Fnewkayak12\u002Fclaude-skills","https:\u002F\u002Fgithub.com\u002Fnewkayak12","그냥 하는 사람\r\n","2026-11-11 21:29:03",{"source":8,"skillName":5,"commands":84,"prompt":94,"zipAvailable":95},[85,88,91],{"tool":86,"command":87},"npx","npx skills add newkayak12\u002Fclaude-skills --skill cli-developer",{"tool":89,"command":90},"bunx","bunx skills add newkayak12\u002Fclaude-skills --skill cli-developer",{"tool":92,"command":93},"pnpm","pnpm dlx skills add newkayak12\u002Fclaude-skills --skill cli-developer","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fnewkayak12\u002Fclaude-skills\u002Fblob\u002Fmain\u002Fdevelop\u002Fskills\u002Fcli-developer\u002FSKILL.md",true,[97,103,107,111,115,119,123,127,131,135],{"path":98,"resourceType":99,"resourceTypeDesc":100,"sizeBytes":101,"sourceHtmlUrl":102},"agents\u002Fopenai.yaml","REFERENCE","参考文档",119,"https:\u002F\u002Fgithub.com\u002Fnexuslinkproductions\u002Fyuri-os\u002Fblob\u002Fmain\u002Fskills\u002Fusing-superpowers\u002Fagents\u002Fopenai.yaml",{"path":104,"resourceType":99,"resourceTypeDesc":100,"sizeBytes":105,"sourceHtmlUrl":106},"references\u002Fcodex-tools.md",2464,"https:\u002F\u002Fgithub.com\u002Fnexuslinkproductions\u002Fyuri-os\u002Fblob\u002Fmain\u002Fskills\u002Fusing-superpowers\u002Freferences\u002Fcodex-tools.md",{"path":108,"resourceType":99,"resourceTypeDesc":100,"sizeBytes":109,"sourceHtmlUrl":110},"references\u002Fcopilot-tools.md",1859,"https:\u002F\u002Fgithub.com\u002Fnexuslinkproductions\u002Fyuri-os\u002Fblob\u002Fmain\u002Fskills\u002Fusing-superpowers\u002Freferences\u002Fcopilot-tools.md",{"path":112,"resourceType":99,"resourceTypeDesc":100,"sizeBytes":113,"sourceHtmlUrl":114},"references\u002Fdesign-patterns.md",3767,"https:\u002F\u002Fgithub.com\u002Fnewkayak12\u002Fclaude-skills\u002Fblob\u002Fmain\u002Fdevelop\u002Fskills\u002Fcli-developer\u002Freferences\u002Fdesign-patterns.md",{"path":116,"resourceType":99,"resourceTypeDesc":100,"sizeBytes":117,"sourceHtmlUrl":118},"references\u002Fgemini-tools.md",2934,"https:\u002F\u002Fgithub.com\u002Fnexuslinkproductions\u002Fyuri-os\u002Fblob\u002Fmain\u002Fskills\u002Fusing-superpowers\u002Freferences\u002Fgemini-tools.md",{"path":120,"resourceType":99,"resourceTypeDesc":100,"sizeBytes":121,"sourceHtmlUrl":122},"references\u002Fgo-cli.md",3615,"https:\u002F\u002Fgithub.com\u002Fnewkayak12\u002Fclaude-skills\u002Fblob\u002Fmain\u002Fdevelop\u002Fskills\u002Fcli-developer\u002Freferences\u002Fgo-cli.md",{"path":124,"resourceType":99,"resourceTypeDesc":100,"sizeBytes":125,"sourceHtmlUrl":126},"references\u002Fgo-tui.md",1979,"https:\u002F\u002Fgithub.com\u002Fnewkayak12\u002Fclaude-skills\u002Fblob\u002Fmain\u002Fdevelop\u002Fskills\u002Fcli-developer\u002Freferences\u002Fgo-tui.md",{"path":128,"resourceType":99,"resourceTypeDesc":100,"sizeBytes":129,"sourceHtmlUrl":130},"references\u002Fnode-cli.md",3316,"https:\u002F\u002Fgithub.com\u002Fnewkayak12\u002Fclaude-skills\u002Fblob\u002Fmain\u002Fdevelop\u002Fskills\u002Fcli-developer\u002Freferences\u002Fnode-cli.md",{"path":132,"resourceType":99,"resourceTypeDesc":100,"sizeBytes":133,"sourceHtmlUrl":134},"references\u002Fpython-cli.md",3612,"https:\u002F\u002Fgithub.com\u002Fnewkayak12\u002Fclaude-skills\u002Fblob\u002Fmain\u002Fdevelop\u002Fskills\u002Fcli-developer\u002Freferences\u002Fpython-cli.md",{"path":136,"resourceType":99,"resourceTypeDesc":100,"sizeBytes":137,"sourceHtmlUrl":138},"references\u002Fux-patterns.md",3179,"https:\u002F\u002Fgithub.com\u002Fnewkayak12\u002Fclaude-skills\u002Fblob\u002Fmain\u002Fdevelop\u002Fskills\u002Fcli-developer\u002Freferences\u002Fux-patterns.md",[140,163,189,209,233,250],{"skillNo":141,"name":142,"nameZh":6,"description":143,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":144,"categories":145,"keywords":146,"publishedAt":52},"01M6DJ9KATAGNQ28QRQWG32PNG","diagram","Use when something must be drawn as a checked figure, not Mermaid: page layout, B-tree, lock timeline, ER, benchmark chart, architecture, sequence. SVG + PNG. Triggers: \"도식화해줘\", \"그림으로 그려줘\", \"책에 넣을 그림\", \"시퀀스 다이어그램\", \"draw this as a figure\".","https:\u002F\u002Fgithub.com\u002Fnewkayak12\u002Fclaude-skills\u002Fblob\u002Fmain\u002Fwrite\u002Fskills\u002Fdiagram\u002FSKILL.md",[],[142,147,148,149,150,151,152,153,154,47,155,43,156,157,158,159,37,160,161,162],"web","architecture","mermaid","browser","cache","redis","api","b-tree","page","er","postgres","query","layout","as","chart","SVG",{"skillNo":164,"name":165,"nameZh":6,"description":166,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":167,"categories":168,"keywords":173,"publishedAt":52},"01M6DJ0RNQFTMCJFZ0F90TKV6X","test-master","Use when writing, improving, or auditing tests, or writing case specs with expected results from a spec. Triggers: \"테스트 작성\", \"테스트 케이스 작성\", \"test case writing\", \"단위 테스트\", \"커버리지 분석\", \"test plan\", \"defect report\".","https:\u002F\u002Fgithub.com\u002Fnewkayak12\u002Fclaude-skills\u002Fblob\u002Fmain\u002Fdevelop\u002Fskills\u002Ftest-master\u002FSKILL.md",[169,172],{"categoryNo":170,"categoryName":171,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000008","测试与质量",{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[174,175,176,177,51,178,179,180,181,48,182,183,47,184,185,43,186,187,188,37],"test","master","test master","testing","writing","unit tests","development","qa","test plan","plan","analyze","coverage","only","thinking","tests",{"skillNo":190,"name":191,"nameZh":6,"description":192,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":193,"categories":194,"keywords":196,"publishedAt":52},"01M6DJ0HNBTK0C266899VBY25J","sre-engineer","Use when setting up production reliability practices. Triggers on: \"SLO 정하고 싶어\", \"에러 버짓\", \"알람 피로\", \"반복 작업(toil) 줄이기\", \"golden signals dashboard\", \"burn-rate alert\". Not for active incidents or chaos tests.","https:\u002F\u002Fgithub.com\u002Fnewkayak12\u002Fclaude-skills\u002Fblob\u002Fmain\u002Fdevelop\u002Fskills\u002Fsre-engineer\u002FSKILL.md",[195],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[42,41,197,51,198,199,47,200,43,201,202,203,204,205,206,187,207,208,188,37],"sre engineer","observability","SET","fix","reliability","slo","sli","burn-rate","alert","up","call","define",{"skillNo":210,"name":211,"nameZh":6,"description":212,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":213,"categories":214,"keywords":222,"publishedAt":52},"01M6DJ0D2M8JP3K67HF3EPWRXC","sql-pro","Use when someone needs help writing or rewriting SQL — authoring complex joins, CTEs, window functions, or recursive queries — or designing a schema from scratch, normalizing an existing one, or migrating queries between database dialects.","https:\u002F\u002Fgithub.com\u002Fnewkayak12\u002Fclaude-skills\u002Fblob\u002Fmain\u002Fdevelop\u002Fskills\u002Fsql-pro\u002FSKILL.md",[215,218,219],{"categoryNo":216,"categoryName":217,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000010","后端与接口",{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":220,"categoryName":221,"taxonomyType":26,"taxonomyTypeDesc":27},"01JBSEEDCAT000000000000033","数据分析师",[223,224,44,51,178,225,226,49,227,48,47,228,229,45,43,230,41,231,158,232],"sql","sql pro","oracle","boot","database","explain","spring","schema","functions","optimizer",{"skillNo":234,"name":235,"nameZh":6,"description":236,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":237,"categories":238,"keywords":242,"publishedAt":52},"01M6DJ07ZKVJXBHFF6F1KE8SF9","spring-boot-engineer","Use when building or extending a Spring Boot 3.x Java backend — REST, Spring Security, JPA, WebFlux, Actuator. Triggers on: \"Spring Boot API\", \"스프링 시큐리티 설정\", \"JPA 연동\". Not for service decomposition or query tuning.","https:\u002F\u002Fgithub.com\u002Fnewkayak12\u002Fclaude-skills\u002Fblob\u002Fmain\u002Fdevelop\u002Fskills\u002Fspring-boot-engineer\u002FSKILL.md",[239,240,241],{"categoryNo":216,"categoryName":217,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":24,"categoryName":25,"taxonomyType":26,"taxonomyTypeDesc":27},[226,243,229,41,244,51,148,49,245,227,246,153,247,47,248,43,158,249,232,37],"spring boot","spring boot engineer","authentication","java","configure","kotlin","caching",{"skillNo":251,"name":252,"nameZh":6,"description":253,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":254,"categories":255,"keywords":257,"publishedAt":52},"01M6DJ036MK4ESPPFEY6WY8FWZ","spec-driven-development","Use when a feature should be specified before it is coded — stories, acceptance criteria, tasks, a per-criterion check. Triggers: \"스펙 먼저\", \"명세부터 쓰고 구현\", \"수용 기준 먼저\", \"spec first\", \"spec-driven development\".","https:\u002F\u002Fgithub.com\u002Fnewkayak12\u002Fclaude-skills\u002Fblob\u002Fmain\u002Fdevelop\u002Fskills\u002Fspec-driven-development\u002FSKILL.md",[256],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[258,259,180,260,261,51,262,263,264,265,48,47,266,43,267,268,187,269,270,37],"spec","spec driven development","spec driven","driven","implement","tasks","acceptance","first","write","think","do","acceptance criteria","feature"]