{"_id":"seokang-sk","_rev":"28-0de0ffe10fe3078397653020e26e9665","name":"seokang-sk","dist-tags":{"latest":"0.13.7"},"versions":{"0.1.0":{"name":"seokang-sk","version":"0.1.0","keywords":["codex","cli","seokang","skills","bootstrap"],"license":"MIT","_id":"seokang-sk@0.1.0","maintainers":[{"name":"seokang","email":"seokang91@gmail.com"}],"homepage":"https://github.com/Seokang/seokang-codex-skills","bugs":{"url":"https://github.com/Seokang/seokang-codex-skills/issues"},"bin":{"sk":"scripts/sk.mjs"},"dist":{"shasum":"34ed1cf4c4d936ff45d1e6622be550e580fe34ee","tarball":"https://registry.npmjs.org/seokang-sk/-/seokang-sk-0.1.0.tgz","fileCount":6,"integrity":"sha512-p4DzyOa1BPcyeDfQ1v4/hVsqMlMUDQ84zyqcWKHKpHnhM28z0aF+KICcnNdOs+YB4JVGWtsbEXzjX64KOguftw==","signatures":[{"sig":"MEQCIHwouK0re3c+oKrYrQOdTh8FLVRHxCVIqTB4JaGlZcPRAiBz1tFzn6rT2WbMywqn2mPx1DsqOTAsB8dCrFz/Yq03jg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":80271},"engines":{"node":">=20"},"gitHead":"57f98f77a6e29d9047a783daff6ecc671b511a69","_npmUser":{"name":"seokang","email":"seokang91@gmail.com"},"repository":{"url":"git+https://github.com/Seokang/seokang-codex-skills.git","type":"git"},"_npmVersion":"10.9.0","description":"SeoKang Codex setup CLI","directories":{},"_nodeVersion":"23.1.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/seokang-sk_0.1.0_1774418385929_0.34482014463903066","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"seokang-sk","version":"0.1.1","keywords":["codex","cli","seokang","skills","bootstrap"],"license":"MIT","_id":"seokang-sk@0.1.1","maintainers":[{"name":"seokang","email":"seokang91@gmail.com"}],"homepage":"https://github.com/Seokang/seokang-codex-skills","bugs":{"url":"https://github.com/Seokang/seokang-codex-skills/issues"},"bin":{"sk":"scripts/sk.mjs"},"dist":{"shasum":"562f70c876b276df13f6835ef8ee5c31d7de73ab","tarball":"https://registry.npmjs.org/seokang-sk/-/seokang-sk-0.1.1.tgz","fileCount":6,"integrity":"sha512-gVPSNBixQ1Sj1SI6uyTH/W73uamRRnwJSVBL/twKQJcMH4ZgwB28C0PwJXe99jEuwwcvzQb0VfIg7IYVo9nXZg==","signatures":[{"sig":"MEYCIQDvOE1NssbzuXUBm1nwXc5pr92RVnc7zZ3b4z9BiN8IHgIhAMrDTXib9WeAqK7bxr7Idu2qnYx80+el42mEBw8cicFP","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":86883},"engines":{"node":">=20"},"gitHead":"57f98f77a6e29d9047a783daff6ecc671b511a69","_npmUser":{"name":"seokang","email":"seokang91@gmail.com"},"repository":{"url":"git+https://github.com/Seokang/seokang-codex-skills.git","type":"git"},"_npmVersion":"10.9.0","description":"SeoKang Codex 공용 설정과 스킬을 설치하는 CLI","directories":{},"_nodeVersion":"23.1.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/seokang-sk_0.1.1_1774421716408_0.9498870630657601","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"seokang-sk","version":"0.2.0","keywords":["codex","cli","seokang","skills","setup"],"license":"MIT","_id":"seokang-sk@0.2.0","maintainers":[{"name":"seokang","email":"seokang91@gmail.com"}],"homepage":"https://github.com/Seokang/seokang-codex-setting","bugs":{"url":"https://github.com/Seokang/seokang-codex-setting/issues"},"bin":{"sk":"scripts/sk.mjs"},"dist":{"shasum":"91300de0918d2d166aaed5ff0cedbedbde12a715","tarball":"https://registry.npmjs.org/seokang-sk/-/seokang-sk-0.2.0.tgz","fileCount":6,"integrity":"sha512-44LDVDauQW0vEmYXmZQ/ek/5x23rH2osnNMsq5pC7VhYVG4s1RobVAOKRO6/6u+z5OIZ+kz9ZRFD9f8Sn21J/g==","signatures":[{"sig":"MEQCIEVA7mcplSRXcKx36ZLViHWH0Eo9Pa1Gkw4MDf5sK5h/AiBjUDERjckB4dFMbiJncF3+1KA3xY3XnPZxjDgMWpxPGg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":92329},"engines":{"node":">=20"},"gitHead":"9719b924e33e5a9896a406e154156814a7fe38f3","_npmUser":{"name":"seokang","email":"seokang91@gmail.com"},"repository":{"url":"git+https://github.com/Seokang/seokang-codex-setting.git","type":"git"},"_npmVersion":"10.9.0","description":"SeoKang Codex 공용 설정과 스킬을 설치하는 CLI","directories":{},"_nodeVersion":"23.1.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/seokang-sk_0.2.0_1774427361073_0.36917536655398697","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"seokang-sk","version":"0.2.1","keywords":["codex","cli","seokang","skills","setup"],"license":"MIT","_id":"seokang-sk@0.2.1","maintainers":[{"name":"seokang","email":"seokang91@gmail.com"}],"homepage":"https://github.com/Seokang/seokang-codex-setting","bugs":{"url":"https://github.com/Seokang/seokang-codex-setting/issues"},"bin":{"sk":"scripts/sk.mjs"},"dist":{"shasum":"8a4da32c6ec3243561d5c4940361880711b98a10","tarball":"https://registry.npmjs.org/seokang-sk/-/seokang-sk-0.2.1.tgz","fileCount":6,"integrity":"sha512-Hbf7ayJr45Gdn9OJ/r+kbCr2XK7ig28/yl+V63RcQBbhZnKUTaGx+rB1Zp54KJK9RT9a3jc62IWzy22nSvdVOQ==","signatures":[{"sig":"MEYCIQC0T9UH9lBn/4lgyRZIqddmlv35chaqzi2B4nAKGYoM0gIhANJvvAucws8wbpuoPsEbAjis/Ykq/jV0VV17P5oMwTBb","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":112472},"engines":{"node":">=20"},"gitHead":"9ed675da6f6fbb07a10c0f1bea992703bbfa7326","_npmUser":{"name":"seokang","email":"seokang91@gmail.com"},"repository":{"url":"git+https://github.com/Seokang/seokang-codex-setting.git","type":"git"},"_npmVersion":"11.11.1","description":"SeoKang Codex 공용 설정과 스킬을 설치하는 CLI","directories":{},"_nodeVersion":"25.8.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/seokang-sk_0.2.1_1774686408016_0.7266394454289369","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"seokang-sk","version":"0.2.2","keywords":["codex","cli","seokang","skills","setup"],"license":"MIT","_id":"seokang-sk@0.2.2","maintainers":[{"name":"seokang","email":"seokang91@gmail.com"}],"homepage":"https://github.com/Seokang/seokang-codex-setting","bugs":{"url":"https://github.com/Seokang/seokang-codex-setting/issues"},"bin":{"sk":"scripts/sk.mjs"},"dist":{"shasum":"3a9347b33223a1842598a6df868ea24a7082d474","tarball":"https://registry.npmjs.org/seokang-sk/-/seokang-sk-0.2.2.tgz","fileCount":6,"integrity":"sha512-eqNgewR1fnMa9yWiZVCwZ0VhqsBEgYtsADP5lrboGTY3VxMNk2KQH8x6yYaIpi+Irfx1kbCC6nJ9qt4zfgz5nQ==","signatures":[{"sig":"MEYCIQCXF2yN0TbaytI3Hw8Lt8GsZtPYES1DGT8zX7nfyCGbygIhAJZxoGhEf+/jHXxU5huSWcR/bXXH7Ok1kU3U9u1jLEV5","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":113509},"engines":{"node":">=20"},"gitHead":"54b78da2fa6c4a6541c6998128ddc19f8ab59aa3","_npmUser":{"name":"seokang","email":"seokang91@gmail.com"},"repository":{"url":"git+https://github.com/Seokang/seokang-codex-setting.git","type":"git"},"_npmVersion":"11.11.1","description":"SeoKang Codex 공용 설정과 스킬을 설치하는 CLI","directories":{},"_nodeVersion":"25.8.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/seokang-sk_0.2.2_1774693995200_0.9596066674593928","host":"s3://npm-registry-packages-npm-production"}},"0.2.3":{"name":"seokang-sk","version":"0.2.3","keywords":["codex","cli","seokang","skills","setup"],"license":"MIT","_id":"seokang-sk@0.2.3","maintainers":[{"name":"seokang","email":"seokang91@gmail.com"}],"homepage":"https://github.com/Seokang/seokang-codex-setting","bugs":{"url":"https://github.com/Seokang/seokang-codex-setting/issues"},"bin":{"sk":"scripts/sk.mjs"},"dist":{"shasum":"8ab427a7c13943aec38efe284f3239f750282e6e","tarball":"https://registry.npmjs.org/seokang-sk/-/seokang-sk-0.2.3.tgz","fileCount":6,"integrity":"sha512-oaokicMC4JGwgXqdufI9AzQyyfz9EL01Hy3UIU/ZyJJRYbsZLETustbO/ccMWOAXke+ePynuLQFAysz/EeQpMA==","signatures":[{"sig":"MEQCIFFoIVNZuRppP9VW/GfbStlYNHOaBeDYRc8qLHVK9H/kAiBpFAxwzLLIBr52LTEz/IF9Ml6HAYq3LbGhggcNtMRG6Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":113509},"engines":{"node":">=20"},"gitHead":"ee1a9d19f40ad5a490764a8828214843ee4f638b","_npmUser":{"name":"seokang","email":"seokang91@gmail.com"},"repository":{"url":"git+https://github.com/Seokang/seokang-codex-setting.git","type":"git"},"_npmVersion":"11.11.1","description":"SeoKang Codex 공용 설정과 스킬을 설치하는 CLI","directories":{},"_nodeVersion":"25.8.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/seokang-sk_0.2.3_1774768148317_0.5081161141096051","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"seokang-sk","version":"0.3.0","keywords":["codex","cli","seokang","skills","setup"],"license":"MIT","_id":"seokang-sk@0.3.0","maintainers":[{"name":"seokang","email":"seokang91@gmail.com"}],"homepage":"https://github.com/Seokang/seokang-codex-setting","bugs":{"url":"https://github.com/Seokang/seokang-codex-setting/issues"},"bin":{"sk":"scripts/sk.mjs"},"dist":{"shasum":"fdbd1dac38f4160872f34ee8d4ab243ce6cb1ce2","tarball":"https://registry.npmjs.org/seokang-sk/-/seokang-sk-0.3.0.tgz","fileCount":10,"integrity":"sha512-+uJ9fDy5YwJa3b1+KeWqe9VNE9FzKOGPuQCJupFs2vFB+gXU/UwagJTpvQ7CtH3C6hP+gewV4JVpfGkCJO0BZg==","signatures":[{"sig":"MEUCIQCgOYqvo2wOs8eF89fNcJAFaQqWtq+Ii6tl9u6khBeK/wIgOb9yBVfOjk2qXftaAyariZx1+R/KtOirGIEf0f5A9xU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":138079},"engines":{"node":">=20"},"gitHead":"cc89583ccfd474ae6f1f3cabac38264cc20c8374","_npmUser":{"name":"seokang","email":"seokang91@gmail.com"},"repository":{"url":"git+https://github.com/Seokang/seokang-codex-setting.git","type":"git"},"_npmVersion":"11.11.1","description":"SeoKang Codex 공용 설정과 스킬을 설치하는 CLI","directories":{},"_nodeVersion":"25.8.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/seokang-sk_0.3.0_1775470103502_0.6685624078339536","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"seokang-sk","version":"0.4.0","keywords":["codex","cli","seokang","skills","setup"],"license":"MIT","_id":"seokang-sk@0.4.0","maintainers":[{"name":"seokang","email":"seokang91@gmail.com"}],"homepage":"https://github.com/Seokang/seokang-codex-setting","bugs":{"url":"https://github.com/Seokang/seokang-codex-setting/issues"},"bin":{"sk":"scripts/sk.mjs"},"dist":{"shasum":"4e78216a159357c8dc09f88412c1e2cab3a11f30","tarball":"https://registry.npmjs.org/seokang-sk/-/seokang-sk-0.4.0.tgz","fileCount":67,"integrity":"sha512-xxCk9ywWDsUbR7vmn8Hhgv/Ub+mQro7M0q7VTmgm28f/S1ouBLAtTN1qZhtvNhPCyf5KcDq1xmCkyeiC8s/XLA==","signatures":[{"sig":"MEMCH1vt87Ag9dmnSBuX7CbR3KxXugEeXO4+AG/izi45DJICIHnMWbILDfgZD9ff8R7hZSgyWxLDrilP4wG1mhTBRiAK","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":431835},"engines":{"node":">=20"},"gitHead":"214876b73cf04ea8649d17d823977c399165d934","scripts":{"check:harness":"npm run check:harness:defaults -- . && npm run check:harness:ddl-comments -- . && npm run check:harness:docs -- . && npm run check:harness:models && npm run check:harness:ui-router && npm run check:harness:automation && npm run check:harness:cli-smoke","check:harness:docs":"node scripts/check_docs_integrity.mjs","check:harness:models":"node scripts/check_codex_model_routing.mjs","check:harness:defaults":"node scripts/check_no_unauthorized_defaults.mjs","check:harness:cli-smoke":"node scripts/check_sk_cli_smoke.mjs","check:harness:ui-router":"node scripts/check_ui_runtime_router.mjs","check:harness:automation":"node scripts/check_automation_safety.mjs","check:harness:ddl-comments":"node scripts/check_ddl_comments.mjs"},"_npmUser":{"name":"seokang","email":"seokang91@gmail.com"},"repository":{"url":"git+https://github.com/Seokang/seokang-codex-setting.git","type":"git"},"_npmVersion":"11.11.1","description":"SeoKang Codex 공용 설정과 스킬을 설치하는 CLI","directories":{},"_nodeVersion":"25.8.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/seokang-sk_0.4.0_1783742733769_0.4297671591965635","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"seokang-sk","version":"0.5.0","keywords":["codex","cli","seokang","skills","setup"],"license":"MIT","_id":"seokang-sk@0.5.0","maintainers":[{"name":"seokang","email":"seokang91@gmail.com"}],"homepage":"https://github.com/Seokang/seokang-codex-setting","bugs":{"url":"https://github.com/Seokang/seokang-codex-setting/issues"},"bin":{"sk":"scripts/sk.mjs"},"dist":{"shasum":"01ce945060aebcb9aa9f900a41a7fff5dd2da942","tarball":"https://registry.npmjs.org/seokang-sk/-/seokang-sk-0.5.0.tgz","fileCount":114,"integrity":"sha512-yMn9BrR4K0eCN2WAXq/C/Q/19kU3+JttBMha2Kpo+lkWt4tDpa+IgTFa195IkstVqsKGh2UnSuLhrkAjMNHvwQ==","signatures":[{"sig":"MEUCIQCEw8gL8yVv0/f/Pq7jTD0g5MbsEmBMWeNKo8LN1wE4AQIgPSl6LfeM9cCyUBwtcJTiplPicludo/Aeoq5a2OvQy+4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":516744},"engines":{"node":">=20"},"gitHead":"d306eae0f978ac449ecb080e54607a80d7fd2174","scripts":{"check:harness":"npm run check:harness:defaults -- . && npm run check:harness:ddl-comments -- . && npm run check:harness:docs -- . && npm run check:harness:style && npm run check:harness:models && npm run check:harness:ui-router && npm run check:harness:automation && npm run check:harness:cli-smoke","check:harness:docs":"node scripts/check_docs_integrity.mjs","check:harness:style":"node scripts/check_code_style_profile.mjs","check:harness:models":"node scripts/check_codex_model_routing.mjs","check:harness:defaults":"node scripts/check_no_unauthorized_defaults.mjs","check:harness:cli-smoke":"node scripts/check_sk_cli_smoke.mjs","check:harness:ui-router":"node scripts/check_ui_runtime_router.mjs","check:harness:automation":"node scripts/check_automation_safety.mjs","check:harness:ddl-comments":"node scripts/check_ddl_comments.mjs"},"_npmUser":{"name":"seokang","email":"seokang91@gmail.com"},"repository":{"url":"git+https://github.com/Seokang/seokang-codex-setting.git","type":"git"},"_npmVersion":"11.11.1","description":"SeoKang Codex 공용 설정과 스킬을 설치하는 CLI","directories":{},"_nodeVersion":"25.8.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/seokang-sk_0.5.0_1784108873314_0.3678767473838227","host":"s3://npm-registry-packages-npm-production"}},"0.5.1":{"name":"seokang-sk","version":"0.5.1","keywords":["codex","cli","seokang","skills","setup"],"license":"MIT","_id":"seokang-sk@0.5.1","maintainers":[{"name":"seokang","email":"seokang91@gmail.com"}],"homepage":"https://github.com/Seokang/seokang-codex-setting","bugs":{"url":"https://github.com/Seokang/seokang-codex-setting/issues"},"bin":{"sk":"scripts/sk.mjs"},"dist":{"shasum":"e9190329a415f5eab627874f0b8dd0954f1b8860","tarball":"https://registry.npmjs.org/seokang-sk/-/seokang-sk-0.5.1.tgz","fileCount":114,"integrity":"sha512-P9F/Etia38+ku99srkJfAz4tcZsZBguHcEs5QqVls+vXT30SVZTHqpPAIsnkZHnI5QzhB71OfLaSs6IacEMLYQ==","signatures":[{"sig":"MEYCIQDc1Sj+Z07LWvMtOVv9QQV6b++DyoJ40WmxJhnbyY/xHgIhAPMq44FLk+6lswWsHITFZs+pHLfG4gsCS54lvVoYKwNB","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":523434},"engines":{"node":">=20"},"gitHead":"56738eee998c75cd3ec14eb9a76aa4446080686f","scripts":{"check:harness":"npm run check:harness:defaults -- . && npm run check:harness:ddl-comments -- . && npm run check:harness:docs -- . && npm run check:harness:style && npm run check:harness:models && npm run check:harness:ui-router && npm run check:harness:automation && npm run check:harness:cli-smoke","check:harness:docs":"node scripts/check_docs_integrity.mjs","check:harness:style":"node scripts/check_code_style_profile.mjs","check:harness:models":"node scripts/check_codex_model_routing.mjs","check:harness:defaults":"node scripts/check_no_unauthorized_defaults.mjs","check:harness:cli-smoke":"node scripts/check_sk_cli_smoke.mjs","check:harness:ui-router":"node scripts/check_ui_runtime_router.mjs","check:harness:automation":"node scripts/check_automation_safety.mjs","check:harness:ddl-comments":"node scripts/check_ddl_comments.mjs"},"_npmUser":{"name":"seokang","email":"seokang91@gmail.com"},"repository":{"url":"git+https://github.com/Seokang/seokang-codex-setting.git","type":"git"},"_npmVersion":"11.11.1","description":"SeoKang Codex 공용 설정과 스킬을 설치하는 CLI","directories":{},"_nodeVersion":"25.8.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/seokang-sk_0.5.1_1784282837656_0.6242938915787415","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"seokang-sk","version":"0.6.0","keywords":["codex","cli","seokang","skills","setup"],"license":"MIT","_id":"seokang-sk@0.6.0","maintainers":[{"name":"seokang","email":"seokang91@gmail.com"}],"homepage":"https://github.com/Seokang/seokang-codex-setting","bugs":{"url":"https://github.com/Seokang/seokang-codex-setting/issues"},"bin":{"sk":"scripts/sk.mjs"},"dist":{"shasum":"4ef81eb956bdbb71e91c26cadcc6ce9cdb44a4b1","tarball":"https://registry.npmjs.org/seokang-sk/-/seokang-sk-0.6.0.tgz","fileCount":119,"integrity":"sha512-PaZvrR7SWYewI3MmPpuDL5I3PJhi/aQw5f5cX1M5r7mPNZFOdqRU8D4HgAdPPSnXPUFKcKeRiLA3QuBjji12iA==","signatures":[{"sig":"MEUCIQC0xEv1ORD+x0R5I1gMMYkUGKCZNV9pdOVwmuUmAVZUFgIgQaGfqcyWkuMvgDdLJBuGV+5UpHSjS90oxLMNjSDrZ/Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":567853},"engines":{"node":">=20"},"gitHead":"860c568c60c65815bf4792969460ea160b260e5b","scripts":{"check:harness":"npm run check:harness:defaults -- . && npm run check:harness:ddl-comments -- . && npm run check:harness:docs -- . && npm run check:harness:style && npm run check:harness:models && npm run check:harness:ui-router && npm run check:harness:automation && npm run check:harness:operator-guard && npm run check:harness:npm-release && npm run check:harness:cli-smoke","check:harness:docs":"node scripts/check_docs_integrity.mjs","check:harness:style":"node scripts/check_code_style_profile.mjs","check:harness:models":"node scripts/check_codex_model_routing.mjs","check:harness:defaults":"node scripts/check_no_unauthorized_defaults.mjs","check:harness:cli-smoke":"node scripts/check_sk_cli_smoke.mjs","check:harness:ui-router":"node scripts/check_ui_runtime_router.mjs","check:harness:automation":"node scripts/check_automation_safety.mjs","check:harness:npm-release":"node scripts/check_npm_release_scope_smoke.mjs","check:harness:ddl-comments":"node scripts/check_ddl_comments.mjs","check:harness:operator-guard":"node scripts/check_operator_guard.mjs"},"_npmUser":{"name":"seokang","email":"seokang91@gmail.com"},"repository":{"url":"git+https://github.com/Seokang/seokang-codex-setting.git","type":"git"},"_npmVersion":"11.11.1","description":"SeoKang Codex 공용 설정과 스킬을 설치하는 CLI","directories":{},"_nodeVersion":"25.8.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/seokang-sk_0.6.0_1787289557516_0.026659425421848626","host":"s3://npm-registry-packages-npm-production"}},"0.6.1":{"name":"seokang-sk","version":"0.6.1","keywords":["codex","cli","seokang","skills","setup"],"license":"MIT","_id":"seokang-sk@0.6.1","maintainers":[{"name":"seokang","email":"seokang91@gmail.com"}],"homepage":"https://github.com/Seokang/seokang-codex-setting","bugs":{"url":"https://github.com/Seokang/seokang-codex-setting/issues"},"bin":{"sk":"scripts/sk.mjs"},"dist":{"shasum":"73859668e77aad37db39703145aea81dd5013d1c","tarball":"https://registry.npmjs.org/seokang-sk/-/seokang-sk-0.6.1.tgz","fileCount":120,"integrity":"sha512-4UnGbMz6vqSoDrj81elDmOEMpN/s+gukDj9L484CZ1IJ2+1Drr/k0uSN/6ZD0A18EWYz/umSdGrDmZG6tFbW3g==","signatures":[{"sig":"MEYCIQDS4HQikSalvGDgGQ2IlSL3l5GOV8D6jssaYj8Li7FmNgIhALun1auFZX/PZ4Ft3qZ+B9GLzRCD7A9nRRhc9j1eFeLh","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":602588},"engines":{"node":">=20"},"gitHead":"071b9f987f4bbd036f05f4758f84bb3910e7f7cd","scripts":{"check:harness":"npm run check:harness:defaults -- . && npm run check:harness:ddl-comments -- . && npm run check:harness:docs -- . && npm run check:harness:style && npm run check:harness:models && npm run check:harness:ui-router && npm run check:harness:automation && npm run check:harness:operator-guard && npm run check:harness:deploy-guard && npm run check:harness:npm-release && npm run check:harness:cli-smoke","check:harness:docs":"node scripts/check_docs_integrity.mjs","check:harness:style":"node scripts/check_code_style_profile.mjs","check:harness:models":"node scripts/check_codex_model_routing.mjs","check:harness:defaults":"node scripts/check_no_unauthorized_defaults.mjs","check:harness:cli-smoke":"node scripts/check_sk_cli_smoke.mjs","check:harness:ui-router":"node scripts/check_ui_runtime_router.mjs","check:harness:automation":"node scripts/check_automation_safety.mjs","check:harness:npm-release":"node scripts/check_npm_release_scope_smoke.mjs","check:harness:ddl-comments":"node scripts/check_ddl_comments.mjs","check:harness:deploy-guard":"node scripts/check_deploy_actor_guard.mjs","check:harness:operator-guard":"node scripts/check_operator_guard.mjs"},"_npmUser":{"name":"seokang","email":"seokang91@gmail.com"},"repository":{"url":"git+https://github.com/Seokang/seokang-codex-setting.git","type":"git"},"_npmVersion":"11.11.1","description":"SeoKang Codex 공용 설정과 스킬을 설치하는 CLI","directories":{},"_nodeVersion":"25.8.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/seokang-sk_0.6.1_1787294635646_0.09979080954016295","host":"s3://npm-registry-packages-npm-production"}},"0.6.2":{"name":"seokang-sk","version":"0.6.2","keywords":["codex","cli","seokang","skills","setup"],"license":"MIT","_id":"seokang-sk@0.6.2","maintainers":[{"name":"seokang","email":"seokang91@gmail.com"}],"homepage":"https://github.com/selink-lab/seokang-codex-setting","bugs":{"url":"https://github.com/selink-lab/seokang-codex-setting/issues"},"bin":{"sk":"scripts/sk.mjs"},"dist":{"shasum":"64c70142c4e43c0f8b2a8c7a0e0cd8e0ebf95ecf","tarball":"https://registry.npmjs.org/seokang-sk/-/seokang-sk-0.6.2.tgz","fileCount":128,"integrity":"sha512-AWPAJypOXVt7j/zDLvFWsY0ALHbIlp3+E5T8rbhY+2tB1BjwZ6GaAcEk3T4yfScuwF1zSw/+uMm80mHPzq5UUw==","signatures":[{"sig":"MEYCIQCVwADTbDUtvfF7SJ4XMCUjmOTtPnJU+EkwDGiH7nMRzgIhAO042gJ7spvHRwjHjs4+TEW75xONcRb7CurQbGQmww4r","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":671320},"engines":{"node":">=20"},"gitHead":"adaa13f60b35aa423fbea7c9f5482b7512c331ff","scripts":{"check:harness":"npm run check:harness:defaults -- . && npm run check:harness:ddl-comments -- . && npm run check:harness:docs -- . && npm run check:harness:style && npm run check:harness:models && npm run check:harness:ui-router && npm run check:harness:automation && npm run check:harness:operator-guard && npm run check:harness:deploy-guard && npm run check:harness:fork-workflow && npm run check:harness:work-start && npm run check:harness:git-stage && npm run check:harness:git-secrets && npm run check:harness:npm-release && npm run check:harness:cli-smoke","check:harness:docs":"node scripts/check_docs_integrity.mjs","check:harness:style":"node scripts/check_code_style_profile.mjs","check:harness:models":"node scripts/check_codex_model_routing.mjs","check:harness:defaults":"node scripts/check_no_unauthorized_defaults.mjs","check:harness:cli-smoke":"node scripts/check_sk_cli_smoke.mjs","check:harness:git-stage":"node scripts/check_git_stage_scope_smoke.mjs","check:harness:ui-router":"node scripts/check_ui_runtime_router.mjs","check:harness:automation":"node scripts/check_automation_safety.mjs","check:harness:work-start":"node scripts/check_work_start_preflight.mjs","check:harness:git-secrets":"node scripts/check_git_secret_guard_smoke.mjs","check:harness:npm-release":"node scripts/check_npm_release_scope_smoke.mjs","check:harness:ddl-comments":"node scripts/check_ddl_comments.mjs","check:harness:deploy-guard":"node scripts/check_deploy_actor_guard.mjs","check:harness:fork-workflow":"node scripts/check_fork_contribution.mjs","check:harness:operator-guard":"node scripts/check_operator_guard.mjs"},"_npmUser":{"name":"seokang","email":"seokang91@gmail.com"},"repository":{"url":"git+https://github.com/selink-lab/seokang-codex-setting.git","type":"git"},"_npmVersion":"11.11.1","description":"SeoKang Codex 공용 설정과 스킬을 설치하는 CLI","directories":{},"_nodeVersion":"25.8.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/seokang-sk_0.6.2_1787302778927_0.7239159056997928","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"name":"seokang-sk","version":"0.7.0","keywords":["codex","cli","seokang","skills","setup"],"license":"MIT","_id":"seokang-sk@0.7.0","maintainers":[{"name":"seokang","email":"seokang91@gmail.com"}],"homepage":"https://github.com/selink-lab/seokang-codex-setting","bugs":{"url":"https://github.com/selink-lab/seokang-codex-setting/issues"},"bin":{"sk":"scripts/sk.mjs"},"dist":{"shasum":"32adb7a28d009728c33420cdf4f37121d626f402","tarball":"https://registry.npmjs.org/seokang-sk/-/seokang-sk-0.7.0.tgz","fileCount":128,"integrity":"sha512-Aqkt4bgruFTb0fis3Tfgd8gWNMI7COErMUF3VM/PhtXggMyWGTuqorL9l5VZAhVGkMx8K3gt2OvdHP5Z2q/9gw==","signatures":[{"sig":"MEUCIQCErwvxmnsHP34UkkkPtTZvmBvPHKGsg9bwU0SL65MO5AIgOogGBRiJdSWomhi4hw0WFh6wrZiubef7vBkLK+4C9LA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":694346},"engines":{"node":">=20"},"gitHead":"0bb4a077bc5fda01b44fb9dfdbe859dd328a93be","scripts":{"check:harness":"npm run check:harness:defaults -- . && npm run check:harness:ddl-comments -- . && npm run check:harness:docs -- . && npm run check:harness:style && npm run check:harness:models && npm run check:harness:ui-router && npm run check:harness:automation && npm run check:harness:db-execution && npm run check:harness:operator-guard && npm run check:harness:deploy-guard && npm run check:harness:fork-workflow && npm run check:harness:work-start && npm run check:harness:git-stage && npm run check:harness:git-secrets && npm run check:harness:npm-release && npm run check:harness:cli-smoke","check:harness:docs":"node scripts/check_docs_integrity.mjs","check:harness:style":"node scripts/check_code_style_profile.mjs","check:harness:models":"node scripts/check_codex_model_routing.mjs","check:harness:defaults":"node scripts/check_no_unauthorized_defaults.mjs","check:harness:cli-smoke":"node scripts/check_sk_cli_smoke.mjs","check:harness:git-stage":"node scripts/check_git_stage_scope_smoke.mjs","check:harness:ui-router":"node scripts/check_ui_runtime_router.mjs","check:harness:automation":"node scripts/check_automation_safety.mjs","check:harness:work-start":"node scripts/check_work_start_preflight.mjs","check:harness:git-secrets":"node scripts/check_git_secret_guard_smoke.mjs","check:harness:npm-release":"node scripts/check_npm_release_scope_smoke.mjs","check:harness:db-execution":"node scripts/check_db_execution_boundary_smoke.mjs","check:harness:ddl-comments":"node scripts/check_ddl_comments.mjs","check:harness:deploy-guard":"node scripts/check_deploy_actor_guard.mjs","check:harness:fork-workflow":"node scripts/check_fork_contribution.mjs","check:harness:operator-guard":"node scripts/check_operator_guard.mjs"},"_npmUser":{"name":"seokang","email":"seokang91@gmail.com"},"repository":{"url":"git+https://github.com/selink-lab/seokang-codex-setting.git","type":"git"},"_npmVersion":"11.11.1","description":"SeoKang Codex 공용 설정과 스킬을 설치하는 CLI","directories":{},"_nodeVersion":"25.8.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/seokang-sk_0.7.0_1787890693051_0.008577789347525178","host":"s3://npm-registry-packages-npm-production"}},"0.7.1":{"name":"seokang-sk","version":"0.7.1","keywords":["codex","cli","seokang","skills","setup"],"license":"MIT","_id":"seokang-sk@0.7.1","maintainers":[{"name":"seokang","email":"seokang91@gmail.com"}],"homepage":"https://github.com/selink-lab/seokang-codex-setting","bugs":{"url":"https://github.com/selink-lab/seokang-codex-setting/issues"},"bin":{"sk":"scripts/sk.mjs"},"dist":{"shasum":"9dbec7e242c1e68f86ddf95275ac82486e8c1af9","tarball":"https://registry.npmjs.org/seokang-sk/-/seokang-sk-0.7.1.tgz","fileCount":133,"integrity":"sha512-MuKeOjwT1VwBisx+2ej0Gm7RyLh8fUIhxMVUvbSkk0XjgoekT/wqDPtNJ0JS2GP48GAxWyIjAigIPhb6JQ0zVw==","signatures":[{"sig":"MEUCIG0w8PrkXmU7+CExrkMlOy23Q3Ctp47X1QZsV2FEs0ceAiEArQMGbxkJWM9HIjh1jeFHIAn7mpgUcwse+H/49V2vS88=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":766104},"engines":{"node":">=20"},"gitHead":"ff82ead139047864c79818dd3684d5f5ccda33e0","scripts":{"check:harness":"npm run check:harness:defaults -- . && npm run check:harness:ddl-comments -- . && npm run check:harness:docs -- . && npm run check:harness:style && npm run check:harness:models && npm run check:harness:ui-router && npm run check:harness:automation && npm run check:harness:db-execution && npm run check:harness:operator-guard && npm run check:harness:deploy-guard && npm run check:harness:fork-workflow && npm run check:harness:work-start && npm run check:harness:git-stage && npm run check:harness:git-secrets && npm run check:harness:npm-release && npm run check:harness:cli-smoke","check:harness:docs":"node scripts/check_docs_integrity.mjs","check:harness:style":"node scripts/check_code_style_profile.mjs","check:harness:models":"node scripts/check_codex_model_routing.mjs","check:harness:defaults":"node scripts/check_no_unauthorized_defaults.mjs","check:harness:cli-smoke":"node scripts/check_sk_cli_smoke.mjs","check:harness:git-stage":"node scripts/check_git_stage_scope_smoke.mjs","check:harness:ui-router":"node scripts/check_ui_runtime_router.mjs","check:harness:automation":"node scripts/check_automation_safety.mjs","check:harness:work-start":"node scripts/check_work_start_preflight.mjs","check:harness:git-secrets":"node scripts/check_git_secret_guard_smoke.mjs","check:harness:npm-release":"node scripts/check_npm_release_scope_smoke.mjs","check:harness:db-execution":"node scripts/check_db_execution_boundary_smoke.mjs","check:harness:ddl-comments":"node scripts/check_ddl_comments.mjs","check:harness:deploy-guard":"node scripts/check_deploy_actor_guard.mjs","check:harness:fork-workflow":"node scripts/check_fork_contribution.mjs","check:harness:operator-guard":"node scripts/check_operator_guard.mjs"},"_npmUser":{"name":"seokang","email":"seokang91@gmail.com"},"repository":{"url":"git+https://github.com/selink-lab/seokang-codex-setting.git","type":"git"},"_npmVersion":"11.11.1","description":"SeoKang Codex 공용 설정과 스킬을 설치하는 CLI","directories":{},"_nodeVersion":"25.8.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/seokang-sk_0.7.1_1787975678826_0.9993185029162217","host":"s3://npm-registry-packages-npm-production"}},"0.7.2":{"name":"seokang-sk","version":"0.7.2","keywords":["codex","cli","seokang","skills","setup"],"license":"MIT","_id":"seokang-sk@0.7.2","maintainers":[{"name":"seokang","email":"seokang91@gmail.com"}],"homepage":"https://github.com/selink-lab/seokang-codex-setting","bugs":{"url":"https://github.com/selink-lab/seokang-codex-setting/issues"},"bin":{"sk":"scripts/sk.mjs"},"dist":{"shasum":"ebfa15ccb2a3e46d2bcc6006c613a156585904a5","tarball":"https://registry.npmjs.org/seokang-sk/-/seokang-sk-0.7.2.tgz","fileCount":133,"integrity":"sha512-j9/+dU0s+hukPtJbNLPazQdV/fhZns9yjPM9SmoQycjwVHn2qwKGhcaWmOAGTFlpciu+Jj0wO6MKy1XbSt9Q/w==","signatures":[{"sig":"MEYCIQCSmiggjxJLl8CthNjKBZaHgJEuc843Bry44kSh2y66dgIhAJoNPRo8LoYvmHQBhB2VbbWEdLYYFcvGkqNz2E4HI9Pe","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":778795},"engines":{"node":">=20"},"gitHead":"2fa902108d43f87c8e5d2d3cb8e1af5afd5d799d","scripts":{"check:harness":"npm run check:harness:defaults -- . && npm run check:harness:ddl-comments -- . && npm run check:harness:docs -- . && npm run check:harness:style && npm run check:harness:models && npm run check:harness:ui-router && npm run check:harness:automation && npm run check:harness:db-execution && npm run check:harness:operator-guard && npm run check:harness:deploy-guard && npm run check:harness:fork-workflow && npm run check:harness:work-start && npm run check:harness:git-stage && npm run check:harness:git-secrets && npm run check:harness:npm-release && npm run check:harness:cli-smoke","check:harness:docs":"node scripts/check_docs_integrity.mjs","check:harness:style":"node scripts/check_code_style_profile.mjs","check:harness:models":"node scripts/check_codex_model_routing.mjs","check:harness:defaults":"node scripts/check_no_unauthorized_defaults.mjs","check:harness:cli-smoke":"node scripts/check_sk_cli_smoke.mjs","check:harness:git-stage":"node scripts/check_git_stage_scope_smoke.mjs","check:harness:ui-router":"node scripts/check_ui_runtime_router.mjs","check:harness:automation":"node scripts/check_automation_safety.mjs","check:harness:work-start":"node scripts/check_work_start_preflight.mjs","check:harness:git-secrets":"node scripts/check_git_secret_guard_smoke.mjs","check:harness:npm-release":"node scripts/check_npm_release_scope_smoke.mjs","check:harness:db-execution":"node scripts/check_db_execution_boundary_smoke.mjs","check:harness:ddl-comments":"node scripts/check_ddl_comments.mjs","check:harness:deploy-guard":"node scripts/check_deploy_actor_guard.mjs","check:harness:fork-workflow":"node scripts/check_fork_contribution.mjs","check:harness:operator-guard":"node scripts/check_operator_guard.mjs"},"_npmUser":{"name":"seokang","email":"seokang91@gmail.com"},"repository":{"url":"git+https://github.com/selink-lab/seokang-codex-setting.git","type":"git"},"_npmVersion":"11.11.1","description":"SeoKang Codex 공용 설정과 스킬을 설치하는 CLI","directories":{},"_nodeVersion":"25.8.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/seokang-sk_0.7.2_1787983835658_0.456348559573893","host":"s3://npm-registry-packages-npm-production"}},"0.8.0":{"name":"seokang-sk","version":"0.8.0","keywords":["codex","cli","seokang","skills","setup"],"license":"MIT","_id":"seokang-sk@0.8.0","maintainers":[{"name":"seokang","email":"seokang91@gmail.com"}],"homepage":"https://github.com/selink-lab/seokang-codex-setting","bugs":{"url":"https://github.com/selink-lab/seokang-codex-setting/issues"},"bin":{"sk":"scripts/sk.mjs"},"dist":{"shasum":"40a5e80bf44e56b558196f860e96aea78cbb81f3","tarball":"https://registry.npmjs.org/seokang-sk/-/seokang-sk-0.8.0.tgz","fileCount":137,"integrity":"sha512-AU9w1OgRkU6ZzH6hrN+tlnm6evfVK65auVrrsXZxlR9cFUDf+cXCRh8M0tMjdaWu+skmlZ6ab15aCpbNoyMCEA==","signatures":[{"sig":"MEUCID43Aq2bKuaKaXCD+P9bRUIXs1EeiGMKfrrhRZVrYc8gAiEApDI2meLBYkw7ueT1t1VEFfrC7Ve3QGfaXjLQ9rNIjv0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":868360},"engines":{"node":">=20"},"gitHead":"a03002212639376c30887c4f987af9dae3d98c5a","scripts":{"check:harness":"npm run check:harness:defaults -- . && npm run check:harness:ddl-comments -- . && npm run check:harness:docs -- . && npm run check:harness:style && npm run check:harness:models && npm run check:harness:ui-router && npm run check:harness:automation && npm run check:harness:db-execution && npm run check:harness:local-db && npm run check:harness:local-db-skill && npm run check:harness:operator-guard && npm run check:harness:deploy-guard && npm run check:harness:fork-workflow && npm run check:harness:work-start && npm run check:harness:git-stage && npm run check:harness:git-secrets && npm run check:harness:npm-release && npm run check:harness:cli-smoke","check:harness:docs":"node scripts/check_docs_integrity.mjs","check:harness:style":"node scripts/check_code_style_profile.mjs","check:harness:models":"node scripts/check_codex_model_routing.mjs","check:harness:defaults":"node scripts/check_no_unauthorized_defaults.mjs","check:harness:local-db":"node scripts/check_local_db_workflow.mjs","check:harness:cli-smoke":"node scripts/check_sk_cli_smoke.mjs","check:harness:git-stage":"node scripts/check_git_stage_scope_smoke.mjs","check:harness:ui-router":"node scripts/check_ui_runtime_router.mjs","check:harness:automation":"node scripts/check_automation_safety.mjs","check:harness:work-start":"node scripts/check_work_start_preflight.mjs","check:harness:git-secrets":"node scripts/check_git_secret_guard_smoke.mjs","check:harness:npm-release":"node scripts/check_npm_release_scope_smoke.mjs","check:harness:db-execution":"node scripts/check_db_execution_boundary_smoke.mjs","check:harness:ddl-comments":"node scripts/check_ddl_comments.mjs","check:harness:deploy-guard":"node scripts/check_deploy_actor_guard.mjs","check:harness:fork-workflow":"node scripts/check_fork_contribution.mjs","check:harness:local-db-skill":"node scripts/check_local_db_skill.mjs","check:harness:operator-guard":"node scripts/check_operator_guard.mjs"},"_npmUser":{"name":"seokang","email":"seokang91@gmail.com"},"repository":{"url":"git+https://github.com/selink-lab/seokang-codex-setting.git","type":"git"},"_npmVersion":"11.11.1","description":"SeoKang Codex 공용 설정과 스킬을 설치하는 CLI","directories":{},"_nodeVersion":"25.8.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/seokang-sk_0.8.0_1788057212580_0.5826161463646482","host":"s3://npm-registry-packages-npm-production"}},"0.9.0":{"name":"seokang-sk","version":"0.9.0","keywords":["codex","cli","seokang","skills","setup"],"license":"MIT","_id":"seokang-sk@0.9.0","maintainers":[{"name":"seokang","email":"seokang91@gmail.com"}],"homepage":"https://github.com/selink-lab/seokang-codex-setting","bugs":{"url":"https://github.com/selink-lab/seokang-codex-setting/issues"},"bin":{"sk":"scripts/sk.mjs"},"dist":{"shasum":"c6fb58f9e429f0236399bf4ed8c4604afaefd887","tarball":"https://registry.npmjs.org/seokang-sk/-/seokang-sk-0.9.0.tgz","fileCount":137,"integrity":"sha512-RDMk9unlYif2tA9V7mEDx7YT0ivoAQoBxwN5Uh0Wi52HFxJsUmdyccp1J7iqLGHE2P/WcyJp/ZY3xp+4nc56xQ==","signatures":[{"sig":"MEQCH2GIjgKIAw8DX+0kVzE3fe7WRpehAcEeJwF4WAy7FV8CIQCwFcr/jlUEORlkzodKU6LFjjw+Ux7j38Qap6xOy9sbAg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":893042},"engines":{"node":">=20"},"gitHead":"84829225b296cada4bb170a5388c670a36e56800","scripts":{"check:harness":"npm run check:harness:defaults -- . && npm run check:harness:ddl-comments -- . && npm run check:harness:docs -- . && npm run check:harness:style && npm run check:harness:models && npm run check:harness:ui-router && npm run check:harness:automation && npm run check:harness:db-execution && npm run check:harness:local-db && npm run check:harness:local-db-skill && npm run check:harness:operator-guard && npm run check:harness:deploy-guard && npm run check:harness:fork-workflow && npm run check:harness:work-start && npm run check:harness:git-stage && npm run check:harness:git-secrets && npm run check:harness:npm-release && npm run check:harness:cli-smoke","check:harness:docs":"node scripts/check_docs_integrity.mjs","check:harness:style":"node scripts/check_code_style_profile.mjs","check:harness:models":"node scripts/check_codex_model_routing.mjs","check:harness:defaults":"node scripts/check_no_unauthorized_defaults.mjs","check:harness:local-db":"node scripts/check_local_db_workflow.mjs","check:harness:cli-smoke":"node scripts/check_sk_cli_smoke.mjs","check:harness:git-stage":"node scripts/check_git_stage_scope_smoke.mjs","check:harness:ui-router":"node scripts/check_ui_runtime_router.mjs","check:harness:automation":"node scripts/check_automation_safety.mjs","check:harness:work-start":"node scripts/check_work_start_preflight.mjs","check:harness:git-secrets":"node scripts/check_git_secret_guard_smoke.mjs","check:harness:npm-release":"node scripts/check_npm_release_scope_smoke.mjs","check:harness:db-execution":"node scripts/check_db_execution_boundary_smoke.mjs","check:harness:ddl-comments":"node scripts/check_ddl_comments.mjs","check:harness:deploy-guard":"node scripts/check_deploy_actor_guard.mjs","check:harness:fork-workflow":"node scripts/check_fork_contribution.mjs","check:harness:local-db-skill":"node scripts/check_local_db_skill.mjs","check:harness:operator-guard":"node scripts/check_operator_guard.mjs"},"_npmUser":{"name":"seokang","email":"seokang91@gmail.com"},"repository":{"url":"git+https://github.com/selink-lab/seokang-codex-setting.git","type":"git"},"_npmVersion":"11.11.1","description":"SeoKang Codex 공용 설정과 스킬을 설치하는 CLI","directories":{},"_nodeVersion":"25.8.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/seokang-sk_0.9.0_1788144620523_0.4447704554995364","host":"s3://npm-registry-packages-npm-production"}},"0.10.0":{"name":"seokang-sk","version":"0.10.0","keywords":["codex","cli","seokang","skills","setup"],"license":"MIT","_id":"seokang-sk@0.10.0","maintainers":[{"name":"seokang","email":"seokang91@gmail.com"}],"homepage":"https://github.com/selink-lab/seokang-codex-setting","bugs":{"url":"https://github.com/selink-lab/seokang-codex-setting/issues"},"bin":{"sk":"scripts/sk.mjs"},"dist":{"shasum":"d611e23b777ce2027b04a23454df47bd7d47ad44","tarball":"https://registry.npmjs.org/seokang-sk/-/seokang-sk-0.10.0.tgz","fileCount":140,"integrity":"sha512-OXuwh2uE7AmdfQ6fELmrdYJFmLD2vU22Qaba+FeLedW/5oETImTIpf1wpRizArhE+NSe6RHPPJnR7AKaAXeP3Q==","signatures":[{"sig":"MEUCIQDJbvv0+1x4+nUbTlBlTLsbDip8JWAkKOmGBHMjCrRMUAIgWXdxWv5tVksSFIRTmNDj05sHQRwavqwFb/bFox4qMLk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":939451},"engines":{"node":">=20"},"gitHead":"1322ad8f501b2f0369261f862f4f6173a2d101c4","scripts":{"check:harness":"npm run check:harness:defaults -- . && npm run check:harness:ddl-comments -- . && npm run check:harness:docs -- . && npm run check:harness:style && npm run check:harness:models && npm run check:harness:ui-router && npm run check:harness:automation && npm run check:harness:db-execution && npm run check:harness:local-db && npm run check:harness:local-db-skill && npm run check:harness:operator-guard && npm run check:harness:deploy-guard && npm run check:harness:fork-workflow && npm run check:harness:work-start && npm run check:harness:git-stage && npm run check:harness:git-secrets && npm run check:harness:npm-release && npm run check:harness:cli-smoke","check:harness:docs":"node scripts/check_docs_integrity.mjs","check:harness:style":"node scripts/check_code_style_profile.mjs","check:harness:models":"node scripts/check_codex_model_routing.mjs","check:harness:defaults":"node scripts/check_no_unauthorized_defaults.mjs","check:harness:local-db":"node scripts/check_local_db_workflow.mjs","check:harness:cli-smoke":"node scripts/check_sk_cli_smoke.mjs","check:harness:git-stage":"node scripts/check_git_stage_scope_smoke.mjs","check:harness:ui-router":"node scripts/check_ui_runtime_router.mjs","check:harness:automation":"node scripts/check_automation_safety.mjs","check:harness:work-start":"node scripts/check_work_start_preflight.mjs","check:harness:git-secrets":"node scripts/check_git_secret_guard_smoke.mjs","check:harness:npm-release":"node scripts/check_npm_release_scope_smoke.mjs","check:harness:db-execution":"node scripts/check_db_execution_boundary_smoke.mjs","check:harness:ddl-comments":"node scripts/check_ddl_comments.mjs","check:harness:deploy-guard":"node scripts/check_deploy_actor_guard.mjs","check:harness:fork-workflow":"node scripts/check_fork_contribution.mjs","check:harness:local-db-skill":"node scripts/check_local_db_skill.mjs","check:harness:operator-guard":"node scripts/check_operator_guard.mjs"},"_npmUser":{"name":"seokang","email":"seokang91@gmail.com"},"repository":{"url":"git+https://github.com/selink-lab/seokang-codex-setting.git","type":"git"},"_npmVersion":"11.11.1","description":"SeoKang Codex 공용 설정과 스킬을 설치하는 CLI","directories":{},"_nodeVersion":"25.8.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/seokang-sk_0.10.0_1788157186076_0.33718323122820015","host":"s3://npm-registry-packages-npm-production"}},"0.11.0":{"name":"seokang-sk","version":"0.11.0","keywords":["codex","cli","seokang","skills","setup"],"license":"MIT","_id":"seokang-sk@0.11.0","maintainers":[{"name":"seokang","email":"seokang91@gmail.com"}],"homepage":"https://github.com/selink-lab/seokang-codex-setting","bugs":{"url":"https://github.com/selink-lab/seokang-codex-setting/issues"},"bin":{"sk":"scripts/sk.mjs"},"dist":{"shasum":"d0e946db4ec4dac21a39021c664903b4628c0e62","tarball":"https://registry.npmjs.org/seokang-sk/-/seokang-sk-0.11.0.tgz","fileCount":144,"integrity":"sha512-VcGMVHDzeA/JV4phImaNzeeodOm+Lmty/uZrDgDicsuV31eJXHytpniVWhdSS0Hbk+sWHyOaBKZV191AFFS/nQ==","signatures":[{"sig":"MEYCIQCagfV73YVFbmIQBElBG0g7TDDGB8exZ1CV0ePo3qfsywIhAMdPLF+UT5ZFFJly/TWIcFdmYj9xIG3vBQooTB/6UCrp","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":988707},"engines":{"node":">=20"},"gitHead":"a080d1d47ecd8d18c4286c394d459a03433e5322","scripts":{"check:harness":"npm run check:harness:defaults -- . && npm run check:harness:ddl-comments -- . && npm run check:harness:docs -- . && npm run check:harness:style && npm run check:harness:models && npm run check:harness:ui-router && npm run check:harness:automation && npm run check:harness:developer-sync && npm run check:harness:db-execution && npm run check:harness:local-db && npm run check:harness:local-db-skill && npm run check:harness:operator-guard && npm run check:harness:deploy-guard && npm run check:harness:fork-workflow && npm run check:harness:work-start && npm run check:harness:git-stage && npm run check:harness:git-secrets && npm run check:harness:npm-release && npm run check:harness:cli-smoke","check:harness:docs":"node scripts/check_docs_integrity.mjs","check:harness:style":"node scripts/check_code_style_profile.mjs","check:harness:models":"node scripts/check_codex_model_routing.mjs","check:harness:defaults":"node scripts/check_no_unauthorized_defaults.mjs","check:harness:local-db":"node scripts/check_local_db_workflow.mjs","check:harness:cli-smoke":"node scripts/check_sk_cli_smoke.mjs","check:harness:git-stage":"node scripts/check_git_stage_scope_smoke.mjs","check:harness:ui-router":"node scripts/check_ui_runtime_router.mjs","check:harness:automation":"node scripts/check_automation_safety.mjs","check:harness:work-start":"node scripts/check_work_start_preflight.mjs","check:harness:git-secrets":"node scripts/check_git_secret_guard_smoke.mjs","check:harness:npm-release":"node scripts/check_npm_release_scope_smoke.mjs","check:harness:db-execution":"node scripts/check_db_execution_boundary_smoke.mjs","check:harness:ddl-comments":"node scripts/check_ddl_comments.mjs","check:harness:deploy-guard":"node scripts/check_deploy_actor_guard.mjs","check:harness:fork-workflow":"node scripts/check_fork_contribution.mjs","check:harness:developer-sync":"node scripts/check_developer_workspace_sync.mjs","check:harness:local-db-skill":"node scripts/check_local_db_skill.mjs","check:harness:operator-guard":"node scripts/check_operator_guard.mjs"},"_npmUser":{"name":"seokang","email":"seokang91@gmail.com"},"repository":{"url":"git+https://github.com/selink-lab/seokang-codex-setting.git","type":"git"},"_npmVersion":"11.11.1","description":"SeoKang Codex 공용 설정과 스킬을 설치하는 CLI","directories":{},"_nodeVersion":"25.8.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/seokang-sk_0.11.0_1788163909933_0.3278775079652503","host":"s3://npm-registry-packages-npm-production"}},"0.12.0":{"name":"seokang-sk","version":"0.12.0","keywords":["codex","cli","seokang","skills","setup"],"license":"MIT","_id":"seokang-sk@0.12.0","maintainers":[{"name":"seokang","email":"seokang91@gmail.com"}],"homepage":"https://github.com/selink-lab/seokang-codex-setting","bugs":{"url":"https://github.com/selink-lab/seokang-codex-setting/issues"},"bin":{"sk":"scripts/sk.mjs"},"dist":{"shasum":"3518a31c382f7ec8d82c35059f1274670f376290","tarball":"https://registry.npmjs.org/seokang-sk/-/seokang-sk-0.12.0.tgz","fileCount":144,"integrity":"sha512-8WfsLFIUtKkydBLV2F1nEZIgmP62tsdvLXjx0NHTZAeYgeLM43WyxaR4GOFFDA+HbQpbzovBxd5MDf+lxjOmfA==","signatures":[{"sig":"MEUCIFk9Bee/ocWVWN8gkw9uoIXXjVudQTR/wOcbg2IEuG/nAiEAkomxukTbFyjHuv4vFQn1wOjBvYpscqbShCAij5ina3I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1004374},"engines":{"node":">=20"},"gitHead":"44b11be219b6b7457abc4c1cc4fc5e2fd2eb1067","scripts":{"check:harness":"npm run check:harness:defaults -- . && npm run check:harness:ddl-comments -- . && npm run check:harness:docs -- . && npm run check:harness:style && npm run check:harness:models && npm run check:harness:ui-router && npm run check:harness:automation && npm run check:harness:developer-sync && npm run check:harness:db-execution && npm run check:harness:local-db && npm run check:harness:local-db-skill && npm run check:harness:operator-guard && npm run check:harness:deploy-guard && npm run check:harness:fork-workflow && npm run check:harness:work-start && npm run check:harness:git-stage && npm run check:harness:git-secrets && npm run check:harness:npm-release && npm run check:harness:cli-smoke","check:harness:docs":"node scripts/check_docs_integrity.mjs","check:harness:style":"node scripts/check_code_style_profile.mjs","check:harness:models":"node scripts/check_codex_model_routing.mjs","check:harness:defaults":"node scripts/check_no_unauthorized_defaults.mjs","check:harness:local-db":"node scripts/check_local_db_workflow.mjs","check:harness:cli-smoke":"node scripts/check_sk_cli_smoke.mjs","check:harness:git-stage":"node scripts/check_git_stage_scope_smoke.mjs","check:harness:ui-router":"node scripts/check_ui_runtime_router.mjs","check:harness:automation":"node scripts/check_automation_safety.mjs","check:harness:work-start":"node scripts/check_work_start_preflight.mjs","check:harness:git-secrets":"node scripts/check_git_secret_guard_smoke.mjs","check:harness:npm-release":"node scripts/check_npm_release_scope_smoke.mjs","check:harness:db-execution":"node scripts/check_db_execution_boundary_smoke.mjs","check:harness:ddl-comments":"node scripts/check_ddl_comments.mjs","check:harness:deploy-guard":"node scripts/check_deploy_actor_guard.mjs","check:harness:fork-workflow":"node scripts/check_fork_contribution.mjs","check:harness:developer-sync":"node scripts/check_developer_workspace_sync.mjs","check:harness:local-db-skill":"node scripts/check_local_db_skill.mjs","check:harness:operator-guard":"node scripts/check_operator_guard.mjs"},"_npmUser":{"name":"seokang","email":"seokang91@gmail.com"},"repository":{"url":"git+https://github.com/selink-lab/seokang-codex-setting.git","type":"git"},"_npmVersion":"11.11.1","description":"SeoKang Codex 공용 설정과 스킬을 설치하는 CLI","directories":{},"_nodeVersion":"25.8.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/seokang-sk_0.12.0_1788225467759_0.3500688113773591","host":"s3://npm-registry-packages-npm-production"}},"0.13.0":{"name":"seokang-sk","version":"0.13.0","keywords":["codex","cli","seokang","skills","setup"],"license":"MIT","_id":"seokang-sk@0.13.0","maintainers":[{"name":"seokang","email":"seokang91@gmail.com"}],"homepage":"https://github.com/selink-lab/seokang-codex-setting","bugs":{"url":"https://github.com/selink-lab/seokang-codex-setting/issues"},"bin":{"sk":"scripts/sk.mjs"},"dist":{"shasum":"3b6f5add0ef7e86d6ca719e31275656404c52685","tarball":"https://registry.npmjs.org/seokang-sk/-/seokang-sk-0.13.0.tgz","fileCount":146,"integrity":"sha512-gLkuyiq1wl+7mdJG9osK1f7DAFDD8mbwHwy7qIxOp2OESVLq5760TGm2HRg201ir9U+M6j66Agki52M4zMPIlA==","signatures":[{"sig":"MEUCIQDSN928pDncZ0avs/GSzaDiZxm8o/VIA3nBWamgGbt0WAIgfTN3m9K7cIpM3pSgJtUVcqN80scTclxDI6CfnvcAIHA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1036613},"engines":{"node":">=20"},"gitHead":"23c1ad85a391ba3741460feaa44ca633084310fa","scripts":{"check:harness":"npm run check:harness:defaults -- . && npm run check:harness:ddl-comments -- . && npm run check:harness:docs -- . && npm run check:harness:style && npm run check:harness:models && npm run check:harness:ui-router && npm run check:harness:automation && npm run check:harness:developer-sync && npm run check:harness:db-execution && npm run check:harness:local-db && npm run check:harness:local-db-skill && npm run check:harness:operator-guard && npm run check:harness:deploy-guard && npm run check:harness:fork-workflow && npm run check:harness:work-start && npm run check:harness:git-cleanup && npm run check:harness:git-stage && npm run check:harness:git-secrets && npm run check:harness:npm-release && npm run check:harness:cli-smoke","check:harness:docs":"node scripts/check_docs_integrity.mjs","check:harness:style":"node scripts/check_code_style_profile.mjs","check:harness:models":"node scripts/check_codex_model_routing.mjs","check:harness:defaults":"node scripts/check_no_unauthorized_defaults.mjs","check:harness:local-db":"node scripts/check_local_db_workflow.mjs","check:harness:cli-smoke":"node scripts/check_sk_cli_smoke.mjs","check:harness:git-stage":"node scripts/check_git_stage_scope_smoke.mjs","check:harness:ui-router":"node scripts/check_ui_runtime_router.mjs","check:harness:automation":"node scripts/check_automation_safety.mjs","check:harness:work-start":"node scripts/check_work_start_preflight.mjs","check:harness:git-cleanup":"node scripts/check_git_branch_cleanup.mjs","check:harness:git-secrets":"node scripts/check_git_secret_guard_smoke.mjs","check:harness:npm-release":"node scripts/check_npm_release_scope_smoke.mjs","check:harness:db-execution":"node scripts/check_db_execution_boundary_smoke.mjs","check:harness:ddl-comments":"node scripts/check_ddl_comments.mjs","check:harness:deploy-guard":"node scripts/check_deploy_actor_guard.mjs","check:harness:fork-workflow":"node scripts/check_fork_contribution.mjs","check:harness:developer-sync":"node scripts/check_developer_workspace_sync.mjs","check:harness:local-db-skill":"node scripts/check_local_db_skill.mjs","check:harness:operator-guard":"node scripts/check_operator_guard.mjs"},"_npmUser":{"name":"seokang","email":"seokang91@gmail.com"},"repository":{"url":"git+https://github.com/selink-lab/seokang-codex-setting.git","type":"git"},"_npmVersion":"11.11.1","description":"SeoKang Codex 공용 설정과 스킬을 설치하는 CLI","directories":{},"_nodeVersion":"25.8.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/seokang-sk_0.13.0_1788236467693_0.4636432136481885","host":"s3://npm-registry-packages-npm-production"}},"0.13.1":{"name":"seokang-sk","version":"0.13.1","keywords":["codex","cli","seokang","skills","setup"],"license":"MIT","_id":"seokang-sk@0.13.1","maintainers":[{"name":"seokang","email":"seokang91@gmail.com"}],"homepage":"https://github.com/selink-lab/seokang-codex-setting","bugs":{"url":"https://github.com/selink-lab/seokang-codex-setting/issues"},"bin":{"sk":"scripts/sk.mjs"},"dist":{"shasum":"989681a6d7810fb5b7dee0fe317e826e3e400d70","tarball":"https://registry.npmjs.org/seokang-sk/-/seokang-sk-0.13.1.tgz","fileCount":146,"integrity":"sha512-JjDafs416FA5vOBsnlONLtIe1BxGHvOYqvQFgpIwuOwKsIkAwy/qy989jryB3ptjjeKhPq0cOTsM6EGoREARLQ==","signatures":[{"sig":"MEUCIFyrzCUzFMpSPBoSH7+eQRQABdtGuwLIF5TQ41jJ2VkxAiEAm0nyIhoSew7hkHYULW5hb7tPKNtW81d7AfOEN0t7NFA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1044829},"engines":{"node":">=20"},"gitHead":"bd34d3af34a5284f30b12f7a5b04edfc1fbaa5a9","scripts":{"check:harness":"npm run check:harness:defaults -- . && npm run check:harness:ddl-comments -- . && npm run check:harness:docs -- . && npm run check:harness:style && npm run check:harness:models && npm run check:harness:ui-router && npm run check:harness:automation && npm run check:harness:developer-sync && npm run check:harness:db-execution && npm run check:harness:local-db && npm run check:harness:local-db-skill && npm run check:harness:operator-guard && npm run check:harness:deploy-guard && npm run check:harness:fork-workflow && npm run check:harness:work-start && npm run check:harness:git-cleanup && npm run check:harness:git-stage && npm run check:harness:git-secrets && npm run check:harness:npm-release && npm run check:harness:cli-smoke","check:harness:docs":"node scripts/check_docs_integrity.mjs","check:harness:style":"node scripts/check_code_style_profile.mjs","check:harness:models":"node scripts/check_codex_model_routing.mjs","check:harness:defaults":"node scripts/check_no_unauthorized_defaults.mjs","check:harness:local-db":"node scripts/check_local_db_workflow.mjs","check:harness:cli-smoke":"node scripts/check_sk_cli_smoke.mjs","check:harness:git-stage":"node scripts/check_git_stage_scope_smoke.mjs","check:harness:ui-router":"node scripts/check_ui_runtime_router.mjs","check:harness:automation":"node scripts/check_automation_safety.mjs","check:harness:work-start":"node scripts/check_work_start_preflight.mjs","check:harness:git-cleanup":"node scripts/check_git_branch_cleanup.mjs","check:harness:git-secrets":"node scripts/check_git_secret_guard_smoke.mjs","check:harness:npm-release":"node scripts/check_npm_release_scope_smoke.mjs","check:harness:db-execution":"node scripts/check_db_execution_boundary_smoke.mjs","check:harness:ddl-comments":"node scripts/check_ddl_comments.mjs","check:harness:deploy-guard":"node scripts/check_deploy_actor_guard.mjs","check:harness:fork-workflow":"node scripts/check_fork_contribution.mjs","check:harness:developer-sync":"node scripts/check_developer_workspace_sync.mjs","check:harness:local-db-skill":"node scripts/check_local_db_skill.mjs","check:harness:operator-guard":"node scripts/check_operator_guard.mjs"},"_npmUser":{"name":"seokang","email":"seokang91@gmail.com"},"repository":{"url":"git+https://github.com/selink-lab/seokang-codex-setting.git","type":"git"},"_npmVersion":"11.11.1","description":"SeoKang Codex 공용 설정과 스킬을 설치하는 CLI","directories":{},"_nodeVersion":"25.8.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/seokang-sk_0.13.1_1788240670873_0.913517477583706","host":"s3://npm-registry-packages-npm-production"}},"0.13.3":{"name":"seokang-sk","version":"0.13.3","keywords":["codex","cli","seokang","skills","setup"],"license":"MIT","_id":"seokang-sk@0.13.3","maintainers":[{"name":"seokang","email":"seokang91@gmail.com"}],"homepage":"https://github.com/selink-lab/seokang-codex-setting","bugs":{"url":"https://github.com/selink-lab/seokang-codex-setting/issues"},"bin":{"sk":"scripts/sk.mjs"},"dist":{"shasum":"3a8f777c5323fee21628804dc90c5ae943c5dcf4","tarball":"https://registry.npmjs.org/seokang-sk/-/seokang-sk-0.13.3.tgz","fileCount":148,"integrity":"sha512-1Ab/K7w+VrbWEfTY21smyb+AhNvZOqgKpsShmsppF3O7tamZMV6A/Bj8X2BniUzZn8XcKHLtg+PFD6mLqaaiFg==","signatures":[{"sig":"MEUCIQDsiHT3hyB6wXnpEZ6U9z6R1JTmArJAsKO99tfS4obyegIgY75iVAACaX7kUQfboDGogxeNzMBmyVeoTYufjSc0Hyw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1058789},"engines":{"node":">=20"},"gitHead":"01c01c8d7834f4966cc855d5ec5230b1ebfc8cba","scripts":{"check:harness":"npm run check:harness:defaults -- . && npm run check:harness:ddl-comments -- . && npm run check:harness:docs -- . && npm run check:harness:style && npm run check:harness:models && npm run check:harness:ui-router && npm run check:harness:automation && npm run check:harness:developer-sync && npm run check:harness:db-execution && npm run check:harness:local-db && npm run check:harness:local-db-skill && npm run check:harness:operator-guard && npm run check:harness:deploy-guard && npm run check:harness:fork-workflow && npm run check:harness:work-start && npm run check:harness:git-cleanup && npm run check:harness:git-stage && npm run check:harness:git-secrets && npm run check:harness:npm-command && npm run check:harness:npm-release && npm run check:harness:cli-smoke","check:harness:docs":"node scripts/check_docs_integrity.mjs","check:harness:style":"node scripts/check_code_style_profile.mjs","check:harness:models":"node scripts/check_codex_model_routing.mjs","check:harness:defaults":"node scripts/check_no_unauthorized_defaults.mjs","check:harness:local-db":"node scripts/check_local_db_workflow.mjs","check:harness:cli-smoke":"node scripts/check_sk_cli_smoke.mjs","check:harness:git-stage":"node scripts/check_git_stage_scope_smoke.mjs","check:harness:ui-router":"node scripts/check_ui_runtime_router.mjs","check:harness:automation":"node scripts/check_automation_safety.mjs","check:harness:work-start":"node scripts/check_work_start_preflight.mjs","check:harness:git-cleanup":"node scripts/check_git_branch_cleanup.mjs","check:harness:git-secrets":"node scripts/check_git_secret_guard_smoke.mjs","check:harness:npm-command":"node scripts/check_npm_command_smoke.mjs","check:harness:npm-release":"node scripts/check_npm_release_scope_smoke.mjs","check:harness:db-execution":"node scripts/check_db_execution_boundary_smoke.mjs","check:harness:ddl-comments":"node scripts/check_ddl_comments.mjs","check:harness:deploy-guard":"node scripts/check_deploy_actor_guard.mjs","check:harness:fork-workflow":"node scripts/check_fork_contribution.mjs","check:harness:developer-sync":"node scripts/check_developer_workspace_sync.mjs","check:harness:local-db-skill":"node scripts/check_local_db_skill.mjs","check:harness:operator-guard":"node scripts/check_operator_guard.mjs"},"_npmUser":{"name":"seokang","email":"seokang91@gmail.com"},"repository":{"url":"git+https://github.com/selink-lab/seokang-codex-setting.git","type":"git"},"_npmVersion":"11.11.1","description":"SeoKang Codex 공용 설정과 스킬을 설치하는 CLI","directories":{},"_nodeVersion":"25.8.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/seokang-sk_0.13.3_1788254204179_0.5439615493688483","host":"s3://npm-registry-packages-npm-production"}},"0.13.4":{"name":"seokang-sk","version":"0.13.4","keywords":["codex","cli","seokang","skills","setup"],"license":"MIT","_id":"seokang-sk@0.13.4","maintainers":[{"name":"seokang","email":"seokang91@gmail.com"}],"homepage":"https://github.com/selink-lab/seokang-codex-setting","bugs":{"url":"https://github.com/selink-lab/seokang-codex-setting/issues"},"bin":{"sk":"scripts/sk.mjs"},"dist":{"shasum":"a918d7343612ef008b53ce40eb0dd46e6a152a78","tarball":"https://registry.npmjs.org/seokang-sk/-/seokang-sk-0.13.4.tgz","fileCount":153,"integrity":"sha512-zCY5Y4T6+6+SI1UkQ5pGDF1B7ty50Rw233awll7dRkWEYwN4KFzRF+n81CElvti8UlrSdkg7DTktDIoFyXaSHw==","signatures":[{"sig":"MEYCIQChi6HR8IcnezGfUbjQD06lJbxQvZBBirav09LsygEISgIhANzq4RvHurccdP2Mb0uz6UhvQvAx+WwV/51rhjyoLp/6","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1083049},"engines":{"node":">=20"},"gitHead":"332dd5f8a735a22eb092e4ed643cbc4e4feec5bb","scripts":{"check:harness":"npm run check:harness:defaults -- . && npm run check:harness:ddl-comments -- . && npm run check:harness:docs -- . && npm run check:harness:style && npm run check:harness:models && npm run check:harness:ui-router && npm run check:harness:automation && npm run check:harness:developer-sync && npm run check:harness:db-execution && npm run check:harness:local-db && npm run check:harness:local-db-skill && npm run check:harness:operator-guard && npm run check:harness:deploy-guard && npm run check:harness:fork-workflow && npm run check:harness:work-start && npm run check:harness:git-cleanup && npm run check:harness:checkout-sync && npm run check:harness:git-stage && npm run check:harness:git-secrets && npm run check:harness:npm-command && npm run check:harness:npm-release && npm run check:harness:cli-smoke","check:harness:docs":"node scripts/check_docs_integrity.mjs","check:harness:style":"node scripts/check_code_style_profile.mjs","check:harness:models":"node scripts/check_codex_model_routing.mjs && node scripts/check_codex_model_sync.mjs","check:harness:defaults":"node scripts/check_no_unauthorized_defaults.mjs","check:harness:local-db":"node scripts/check_local_db_workflow.mjs","check:harness:cli-smoke":"node scripts/check_sk_cli_smoke.mjs","check:harness:git-stage":"node scripts/check_git_stage_scope_smoke.mjs","check:harness:ui-router":"node scripts/check_ui_runtime_router.mjs","check:harness:automation":"node scripts/check_automation_safety.mjs","check:harness:work-start":"node scripts/check_work_start_preflight.mjs","check:harness:git-cleanup":"node scripts/check_git_branch_cleanup.mjs","check:harness:git-secrets":"node scripts/check_git_secret_guard_smoke.mjs","check:harness:npm-command":"node scripts/check_npm_command_smoke.mjs","check:harness:npm-release":"node scripts/check_npm_release_scope_smoke.mjs","check:harness:db-execution":"node scripts/check_db_execution_boundary_smoke.mjs","check:harness:ddl-comments":"node scripts/check_ddl_comments.mjs","check:harness:deploy-guard":"node scripts/check_deploy_actor_guard.mjs","check:harness:checkout-sync":"node scripts/check_git_checkout_sync.mjs","check:harness:fork-workflow":"node scripts/check_fork_contribution.mjs","check:harness:developer-sync":"node scripts/check_developer_workspace_sync.mjs","check:harness:local-db-skill":"node scripts/check_local_db_skill.mjs","check:harness:operator-guard":"node scripts/check_operator_guard.mjs"},"_npmUser":{"name":"seokang","email":"seokang91@gmail.com"},"repository":{"url":"git+https://github.com/selink-lab/seokang-codex-setting.git","type":"git"},"_npmVersion":"11.11.1","description":"SeoKang Codex 공용 설정과 스킬을 설치하는 CLI","directories":{},"_nodeVersion":"25.8.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/seokang-sk_0.13.4_1788573520650_0.12367091538192576","host":"s3://npm-registry-packages-npm-production"}},"0.13.5":{"name":"seokang-sk","version":"0.13.5","keywords":["codex","cli","seokang","skills","setup"],"license":"MIT","_id":"seokang-sk@0.13.5","maintainers":[{"name":"seokang","email":"seokang91@gmail.com"}],"homepage":"https://github.com/selink-lab/seokang-codex-setting","bugs":{"url":"https://github.com/selink-lab/seokang-codex-setting/issues"},"bin":{"sk":"scripts/sk.mjs"},"dist":{"shasum":"885df19a5d4971029b7a9f1ea42eb37d6894ac7f","tarball":"https://registry.npmjs.org/seokang-sk/-/seokang-sk-0.13.5.tgz","fileCount":153,"integrity":"sha512-nOXCcvXIJQJZaC3+l0pr0LNJ3GbqlpXLhvQhwpXCfgNF0eYPdFmWd7o1Sg4zt3OKyEu7+n7DdpdRqtVvh4uJHw==","signatures":[{"sig":"MEUCIQDbO6AvXKdoC7kQTraCtAahTlS+++o6DoO9xb/LFudwLAIgIPTyuhTPnNrGgGi6ynbLqqM4IT+X+9iwhDL3glL+F9k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1087602},"engines":{"node":">=20"},"gitHead":"a39b2e8dda47f6ab92f4106a147ff0a0b8a4283a","scripts":{"check:harness":"npm run check:harness:defaults -- . && npm run check:harness:ddl-comments -- . && npm run check:harness:docs -- . && npm run check:harness:style && npm run check:harness:models && npm run check:harness:ui-router && npm run check:harness:automation && npm run check:harness:developer-sync && npm run check:harness:db-execution && npm run check:harness:local-db && npm run check:harness:local-db-skill && npm run check:harness:operator-guard && npm run check:harness:deploy-guard && npm run check:harness:fork-workflow && npm run check:harness:work-start && npm run check:harness:git-cleanup && npm run check:harness:checkout-sync && npm run check:harness:git-stage && npm run check:harness:git-secrets && npm run check:harness:npm-command && npm run check:harness:npm-release && npm run check:harness:cli-smoke","check:harness:docs":"node scripts/check_docs_integrity.mjs","check:harness:style":"node scripts/check_code_style_profile.mjs","check:harness:models":"node scripts/check_codex_model_routing.mjs && node scripts/check_codex_model_sync.mjs","check:harness:defaults":"node scripts/check_no_unauthorized_defaults.mjs","check:harness:local-db":"node scripts/check_local_db_workflow.mjs","check:harness:cli-smoke":"node scripts/check_sk_cli_smoke.mjs","check:harness:git-stage":"node scripts/check_git_stage_scope_smoke.mjs","check:harness:ui-router":"node scripts/check_ui_runtime_router.mjs","check:harness:automation":"node scripts/check_automation_safety.mjs","check:harness:work-start":"node scripts/check_work_start_preflight.mjs","check:harness:git-cleanup":"node scripts/check_git_branch_cleanup.mjs","check:harness:git-secrets":"node scripts/check_git_secret_guard_smoke.mjs","check:harness:npm-command":"node scripts/check_npm_command_smoke.mjs","check:harness:npm-release":"node scripts/check_npm_release_scope_smoke.mjs","check:harness:db-execution":"node scripts/check_db_execution_boundary_smoke.mjs","check:harness:ddl-comments":"node scripts/check_ddl_comments.mjs","check:harness:deploy-guard":"node scripts/check_deploy_actor_guard.mjs","check:harness:checkout-sync":"node scripts/check_git_checkout_sync.mjs","check:harness:fork-workflow":"node scripts/check_fork_contribution.mjs","check:harness:developer-sync":"node scripts/check_developer_workspace_sync.mjs","check:harness:local-db-skill":"node scripts/check_local_db_skill.mjs","check:harness:operator-guard":"node scripts/check_operator_guard.mjs"},"_npmUser":{"name":"seokang","email":"seokang91@gmail.com"},"repository":{"url":"git+https://github.com/selink-lab/seokang-codex-setting.git","type":"git"},"_npmVersion":"11.11.1","description":"SeoKang Codex 공용 설정과 스킬을 설치하는 CLI","directories":{},"_nodeVersion":"25.8.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/seokang-sk_0.13.5_1788584900786_0.7392163720941347","host":"s3://npm-registry-packages-npm-production"}},"0.13.6":{"name":"seokang-sk","version":"0.13.6","keywords":["codex","cli","seokang","skills","setup"],"license":"MIT","_id":"seokang-sk@0.13.6","maintainers":[{"name":"seokang","email":"seokang91@gmail.com"}],"homepage":"https://github.com/selink-lab/seokang-codex-setting","bugs":{"url":"https://github.com/selink-lab/seokang-codex-setting/issues"},"bin":{"sk":"scripts/sk.mjs"},"dist":{"shasum":"d854590128e1685de6ccabd624c6caf5a7d58c15","tarball":"https://registry.npmjs.org/seokang-sk/-/seokang-sk-0.13.6.tgz","fileCount":155,"integrity":"sha512-hKYwfLjdfJGV7yU6u4j1anxQa8DVLA6Q74NS8Ei33A5nmLoqPkiTAygbOP5V+9se2YhjcfMd4JNKDZMxbUb46Q==","signatures":[{"sig":"MEYCIQDB/4Or8q/9ZXvknttdF+SktT5VRHXOJYKafT7pKvshrAIhAIUDtyqOlWPMCFOZVCwIbMlxnO25i1zjGUGLBrAPpdIw","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1117592},"engines":{"node":">=20"},"gitHead":"4ac2f553de17bed3f3de56d7e36b58f98eb86c41","scripts":{"check:harness":"npm run check:harness:defaults -- . && npm run check:harness:ddl-comments -- . && npm run check:harness:docs -- . && npm run check:harness:style && npm run check:harness:models && npm run check:harness:ui-router && npm run check:harness:automation && npm run check:harness:developer-sync && npm run check:harness:db-execution && npm run check:harness:local-db && npm run check:harness:local-db-skill && npm run check:harness:operator-guard && npm run check:harness:deploy-guard && npm run check:harness:fork-workflow && npm run check:harness:work-start && npm run check:harness:git-cleanup && npm run check:harness:checkout-sync && npm run check:harness:git-stage && npm run check:harness:git-secrets && npm run check:harness:npm-command && npm run check:harness:npm-release && npm run check:harness:cli-smoke","check:harness:docs":"node scripts/check_docs_integrity.mjs","check:harness:style":"node scripts/check_code_style_profile.mjs","check:harness:models":"node scripts/check_codex_model_routing.mjs && node scripts/check_codex_model_sync.mjs","check:harness:defaults":"node scripts/check_no_unauthorized_defaults.mjs","check:harness:local-db":"node scripts/check_local_db_workflow.mjs","check:harness:cli-smoke":"node scripts/check_sk_cli_smoke.mjs","check:harness:git-stage":"node scripts/check_git_stage_scope_smoke.mjs","check:harness:ui-router":"node scripts/check_ui_runtime_router.mjs","check:harness:automation":"node scripts/check_automation_safety.mjs","check:harness:work-start":"node scripts/check_work_start_preflight.mjs","check:harness:git-cleanup":"node scripts/check_git_branch_cleanup.mjs","check:harness:git-secrets":"node scripts/check_git_secret_guard_smoke.mjs","check:harness:npm-command":"node scripts/check_npm_command_smoke.mjs","check:harness:npm-release":"node scripts/check_npm_release_scope_smoke.mjs","check:harness:db-execution":"node scripts/check_db_execution_boundary_smoke.mjs","check:harness:ddl-comments":"node scripts/check_ddl_comments.mjs","check:harness:deploy-guard":"node scripts/check_deploy_actor_guard.mjs","check:harness:checkout-sync":"node scripts/check_git_checkout_sync.mjs","check:harness:fork-workflow":"node scripts/check_fork_contribution.mjs","check:harness:developer-sync":"node scripts/check_developer_workspace_sync.mjs","check:harness:local-db-skill":"node scripts/check_local_db_skill.mjs","check:harness:operator-guard":"node scripts/check_operator_guard.mjs"},"_npmUser":{"name":"seokang","email":"seokang91@gmail.com"},"repository":{"url":"git+https://github.com/selink-lab/seokang-codex-setting.git","type":"git"},"_npmVersion":"11.11.1","description":"SeoKang Codex 공용 설정과 스킬을 설치하는 CLI","directories":{},"_nodeVersion":"25.8.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/seokang-sk_0.13.6_1788594603492_0.9093461713878712","host":"s3://npm-registry-packages-npm-production"}},"0.13.7":{"_id":"seokang-sk@0.13.7","bin":{"sk":"scripts/sk.mjs"},"bugs":{"url":"https://github.com/selink-lab/seokang-codex-setting/issues"},"dist":{"shasum":"61a209dc59b3b1ff84b2a46d7d15e2d3b1a1ceac","tarball":"https://registry.npmjs.org/seokang-sk/-/seokang-sk-0.13.7.tgz","fileCount":160,"integrity":"sha512-6CkXevwzBglzr4ledTHnzls33N/9YtlWdREDpE/cUGjL1JEWdum/u4g3w1C3UxNnaGRfhUPL+nUcx0yY36hXzw==","signatures":[{"sig":"MEUCIA1DkfEbP8LWCkmcS/if3ZN9xJMurxk3NTFkTENdPRJeAiEAmubaSe52+2fzDu7AqQFVgTO/1cqvlWgTlnRV5yOzgFE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIA0nY1sI5WcUaGIJcbkrYc/V8+sXr5tcpP0d3lbb5DdrAiBYTl96wvcB4imnJfiimueE1yN0TQmD0dECg/8i0urnrg=="}],"unpackedSize":1143557},"name":"seokang-sk","engines":{"node":">=20"},"gitHead":"6d407911feee38b02ef95d200b58595678a51b1b","license":"MIT","scripts":{"check:harness":"npm run check:harness:defaults -- . && npm run check:harness:ddl-comments -- . && npm run check:harness:docs -- . && npm run check:harness:style && npm run check:harness:models && npm run check:harness:ui-router && npm run check:harness:ui-design && npm run check:harness:automation && npm run check:harness:developer-sync && npm run check:harness:db-execution && npm run check:harness:local-db && npm run check:harness:local-db-skill && npm run check:harness:operator-guard && npm run check:harness:deploy-guard && npm run check:harness:fork-workflow && npm run check:harness:work-start && npm run check:harness:git-cleanup && npm run check:harness:checkout-sync && npm run check:harness:git-stage && npm run check:harness:git-secrets && npm run check:harness:npm-command && npm run check:harness:npm-release && npm run check:harness:cli-smoke","check:harness:docs":"node scripts/check_docs_integrity.mjs","check:harness:style":"node scripts/check_code_style_profile.mjs","check:harness:models":"node scripts/check_codex_model_routing.mjs && node scripts/check_codex_model_sync.mjs","check:harness:defaults":"node scripts/check_no_unauthorized_defaults.mjs","check:harness:local-db":"node scripts/check_local_db_workflow.mjs","check:harness:cli-smoke":"node scripts/check_sk_cli_smoke.mjs","check:harness:git-stage":"node scripts/check_git_stage_scope_smoke.mjs","check:harness:ui-design":"node scripts/check_ui_design_diff_smoke.mjs","check:harness:ui-router":"node scripts/check_ui_runtime_router.mjs","check:harness:automation":"node scripts/check_automation_safety.mjs","check:harness:work-start":"node scripts/check_work_start_preflight.mjs","check:harness:git-cleanup":"node scripts/check_git_branch_cleanup.mjs","check:harness:git-secrets":"node scripts/check_git_secret_guard_smoke.mjs","check:harness:npm-command":"node scripts/check_npm_command_smoke.mjs","check:harness:npm-release":"node scripts/check_npm_release_scope_smoke.mjs","check:harness:db-execution":"node scripts/check_db_execution_boundary_smoke.mjs","check:harness:ddl-comments":"node scripts/check_ddl_comments.mjs","check:harness:deploy-guard":"node scripts/check_deploy_actor_guard.mjs","check:harness:checkout-sync":"node scripts/check_git_checkout_sync.mjs","check:harness:fork-workflow":"node scripts/check_fork_contribution.mjs","check:harness:developer-sync":"node scripts/check_developer_workspace_sync.mjs","check:harness:local-db-skill":"node scripts/check_local_db_skill.mjs","check:harness:operator-guard":"node scripts/check_operator_guard.mjs"},"version":"0.13.7","_npmUser":{"name":"seokang","email":"seokang91@gmail.com"},"homepage":"https://github.com/selink-lab/seokang-codex-setting","keywords":["codex","cli","seokang","skills","setup"],"repository":{"url":"git+https://github.com/selink-lab/seokang-codex-setting.git","type":"git"},"_npmVersion":"11.11.1","description":"SeoKang Codex 공용 설정과 스킬을 설치하는 CLI","directories":{},"maintainers":[{"name":"seokang","email":"seokang91@gmail.com"}],"_nodeVersion":"25.8.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/seokang-sk_0.13.7_1789866938540_0.6480496747086077"}}},"time":{"created":"2026-03-25T05:59:45.813Z","modified":"2026-09-20T01:15:38.826Z","0.1.0":"2026-03-25T05:59:46.072Z","0.1.1":"2026-03-25T06:55:16.533Z","0.2.0":"2026-03-25T08:29:21.333Z","0.2.1":"2026-03-28T08:26:48.205Z","0.2.2":"2026-03-28T10:33:15.344Z","0.2.3":"2026-03-29T07:09:08.477Z","0.3.0":"2026-04-06T10:08:23.658Z","0.4.0":"2026-07-11T04:05:33.922Z","0.5.0":"2026-07-15T09:47:53.470Z","0.5.1":"2026-07-17T10:07:17.831Z","0.6.0":"2026-08-21T05:19:17.710Z","0.6.1":"2026-08-21T06:43:55.816Z","0.6.2":"2026-08-21T08:59:39.074Z","0.7.0":"2026-08-28T04:18:13.191Z","0.7.1":"2026-08-29T03:54:38.994Z","0.7.2":"2026-08-29T06:10:35.810Z","0.8.0":"2026-08-30T02:33:32.721Z","0.9.0":"2026-08-31T02:50:20.697Z","0.10.0":"2026-08-31T06:19:46.236Z","0.11.0":"2026-08-31T08:11:50.086Z","0.12.0":"2026-09-01T01:17:47.929Z","0.13.0":"2026-09-01T04:21:07.875Z","0.13.1":"2026-09-01T05:31:11.017Z","0.13.3":"2026-09-01T09:16:44.325Z","0.13.4":"2026-09-05T01:58:40.832Z","0.13.5":"2026-09-05T05:08:21.169Z","0.13.6":"2026-09-05T07:50:03.646Z","0.13.7":"2026-09-20T01:15:38.637Z"},"bugs":{"url":"https://github.com/selink-lab/seokang-codex-setting/issues"},"license":"MIT","homepage":"https://github.com/selink-lab/seokang-codex-setting","keywords":["codex","cli","seokang","skills","setup"],"repository":{"url":"git+https://github.com/selink-lab/seokang-codex-setting.git","type":"git"},"description":"SeoKang Codex 공용 설정과 스킬을 설치하는 CLI","maintainers":[{"name":"seokang","email":"seokang91@gmail.com"}],"readme":"# SeoKang Codex 스킬\n\n이 패키지는 Codex가 SeoKang의 작업 방식과 코드 스타일을 따라 기획, 개발, 점검, 배포하도록 준비해 주는 설치 도구입니다. 개발자가 아니어도 아래 순서대로 복사해서 실행하면 됩니다.\n\n## 처음 설치하는 분은 여기만 보세요\n\n### 1. 준비물 설치\n\n아래 세 가지가 필요합니다.\n\n- [Codex 앱](https://openai.com/codex/)\n- [Node.js](https://nodejs.org/) 20 이상\n- [Git](https://git-scm.com/downloads)\n\n개인 fork push와 PR을 만들 때는 [GitHub CLI](https://cli.github.com/)를 설치하고 `gh auth login`으로 계정을 연결합니다. GitHub CLI가 없거나 session이 만료되어도 local 코드·DB 코드 작성과 commit은 계속할 수 있으며, push/PR만 복구 뒤 이어서 진행합니다.\n\nWindows에서는 Git을 설치할 때 함께 제공되는 **Git Bash**를 사용하세요. macOS에서는 **터미널**을 사용하면 됩니다.\n\n> [!IMPORTANT]\n> 이 설정은 Codex가 매번 승인창을 띄우지 않고 파일과 명령을 다룰 수 있도록 `approval_policy = \"never\"`, `sandbox_mode = \"danger-full-access\"`를 사용합니다. 개인 PC와 신뢰할 수 있는 프로젝트에서만 설치하고, 비밀번호·토큰·OTP를 Codex 대화나 프로젝트 파일에 넣지 마세요.\n\n터미널에 아래 명령을 한 줄씩 입력해 준비가 끝났는지 확인합니다.\n\n```bash\nnode --version\nnpm --version\ngit --version\n```\n\n세 명령 모두 버전 숫자가 나오면 다음 단계로 넘어갑니다. `command not found` 또는 `명령을 찾을 수 없습니다`가 나오면 해당 프로그램을 먼저 설치한 뒤 터미널을 새로 여세요.\n\n### 2. SeoKang 스킬 설치\n\n아래 두 줄을 순서대로 실행합니다.\n\n```bash\nnpm install -g seokang-sk\nsk setup --skip-notion\n```\n\n`sk setup --skip-notion`은 설치 중 어려운 Notion 주소를 묻지 않고, 필요한 원본을 사용자 폴더의 `~/.agents/skills`에 준비해 Codex 설정을 동기화합니다. 마지막에 다음 문구가 나오면 설치가 끝난 것입니다.\n\n```text\n✅ 완료: setup이 끝났습니다.\n```\n\nCodex가 열려 있었다면 완전히 종료한 뒤 다시 실행하세요.\n\n### 3. 설치 확인\n\n```bash\nsk check\nsk help\n```\n\n- `pass` 또는 `✅` 항목은 정상입니다.\n- Notion이나 DB를 아직 쓰지 않는다면 관련 `warn`은 설치 실패가 아닙니다.\n- 무엇을 해야 할지 모르겠다면 출력된 `recommended_action` 명령만 그대로 실행하면 됩니다.\n\n## 프로젝트에서 사용하기\n\n### selink-lab 친구 계정으로 개발하기\n\nGitHub Free에서는 repository별 최소 권한을 적용합니다. `km-*` 4개는 접근 없음, `seokang-codex-setting`과 승인된 제품 저장소 4개는 원본 Read + 개인 private fork와 PR을 허용합니다. 원본의 모든 branch 직접 push와 merge는 계속 차단합니다. 일반 개발자는 `fork-contributors`와 `local-db-readers` team으로 확장하고, SeoKang OWNER는 두 team에 넣지 않습니다.\n\nWindows 등에서 공용 스킬 오류를 수정할 때도 `seokang-codex-setting`의 개인 fork를 별도 작업 폴더에 clone해 PR을 보냅니다. 설치·업데이트용 `~/.agents/skills` clone은 유지합니다. 설정과 준비 순서는 [친구 계정 private fork 개발 가이드](docs/setup/fork-contributor-guide.md)를 따릅니다.\n\n새 스레드의 첫 작업에서는 local remote topology와 worktree를 먼저 확인합니다. 개인 fork 작업자는 `selink-lab` upstream default branch를 `--ff-only`로 갱신하고, `$sk-git`은 기존 PR을 확인한 뒤 없으면 제목·본문을 만들어 PR까지 자동 생성합니다.\n\n`$sk-git`은 add 전 worktree와 commit 전 staged index를 검사하며, 새 secret 파일이나 고신뢰 token을 탐지하면 로컬 파일을 삭제하지 않고 commit/push를 hard-fail합니다.\n\n처음 설치부터 fork, 원격 저장소 확인, 실제 스킬 호출, PR 생성까지의 전체 순서는 [친구 계정 private fork 개발 가이드](docs/setup/fork-contributor-guide.md)를 따릅니다.\n\nOrganization owner가 유지할 권한·team·Actions·2FA 기준은 [selink-lab GitHub Free 협업 설정](docs/setup/github-free-collaboration.md)에 정리되어 있습니다.\n\n### 이미 있는 프로젝트에 적용\n\n터미널에서 프로젝트 폴더로 이동한 뒤 아래 명령을 실행합니다.\n\n```bash\ncd /path/to/project\nsk init\nsk style audit\nsk check\n```\n\n`/path/to/project`는 실제 프로젝트 폴더로 바꿔야 합니다. 경로 입력이 어렵다면 `cd `까지 입력한 뒤 프로젝트 폴더를 터미널 창으로 끌어다 놓고 Enter를 누르세요.\n\n`sk init`은 기존 `build.gradle`, properties, `package.json`을 새로 만들거나 덮어쓰지 않습니다. `.sk` 작업 상태와 `AGENTS.md`의 SeoKang 코드 스타일 구간만 준비합니다.\n\n### 새 프로젝트 만들기\n\n새 프로젝트를 둘 상위 폴더로 먼저 이동합니다. 화면을 만드는 프로젝트는 frontend, API와 서버를 만드는 프로젝트는 backend를 선택합니다.\n\n```bash\n# 화면 프로젝트\nsk create frontend sample-office\n\n# API 서버 프로젝트\nsk create backend sample-api --package com.mycompany.sample\n```\n\n- `sample-office`, `sample-api`는 원하는 영문 프로젝트 이름으로 바꿉니다.\n- backend의 `com.mycompany.sample`은 사용할 패키지명으로 바꿉니다.\n- 이미 존재하는 폴더에는 starter를 덮어쓰지 않습니다.\n- 생성이 실패하면 불완전한 프로젝트 폴더를 남기지 않습니다.\n\n프로젝트를 Codex에서 연 뒤 평소 말하듯 요청하면 됩니다.\n\n```text\n$sk-plan 예약 관리 화면과 서버 구조를 계획해줘\n$sk-feature 계획한 예약 관리 기능을 구현해줘\n$sk-bugfix 저장 버튼을 눌러도 저장되지 않는 문제를 고쳐줘\n$sk-git\n$sk-deploy\n```\n\n## 업데이트\n\n설치 후 제품 저장소에서 새 버전을 받으려면 먼저 변경 가능 여부를 확인하고 업데이트합니다. 실제 `sk update`는 canonical Git뿐 아니라 전역 `seokang-sk` npm bootstrap exact version, 공용 skill, 현재 제품 Git과 applicable managed local DB까지 한 호출에서 안전하게 갱신합니다. `Git 최신`만으로 전체 최신이라고 판정하지 않습니다.\n\n```bash\nsk update --dry-run\nsk update\nsk check\n```\n\nCodex에서는 제품 저장소에서 `$seokang-update`라고 요청하면 위 순서를 한 번에 실행하고 Skill/Git/local DB 결과를 나눠 요약합니다. 로컬 수정이 있으면 강제로 덮어쓰지 않고 Git과 DB를 보존합니다. 평상시에는 `$sk-local-db`를 따로 호출하지 않습니다.\n\n저장소를 관리하는 사람도 npm 배포 여부를 직접 추측하지 않습니다. `node scripts/check_npm_release_scope.mjs --json`이 npm bootstrap runtime 변경이면 `REQUIRED`, 일반 skill/docs 변경이면 `NOT_REQUIRED`로 판정합니다.\n\n로컬에서 직접 고친 파일이 있거나 원격과 충돌할 가능성이 있으면 `sk update`는 강제로 덮어쓰지 않고 중단합니다.\n\n## 자주 막히는 문제\n\n### `npm` 명령을 찾을 수 없음\n\nNode.js가 설치되지 않았거나 설치 전 터미널을 계속 사용 중인 상태입니다. Node.js를 설치하고 터미널을 완전히 닫았다가 다시 여세요.\n\nWindows에서 `npm --version`은 정상인데 `sk update`가 `spawnSync npm ENOENT`로 끝난다면 구버전 CLI 문제입니다. `npm install -g seokang-sk@latest`로 0.13.2 이상을 설치한 뒤 다시 실행하세요.\n\nWindows의 CRLF checkout도 policy JSON, mask SQL, verification SQL을 LF와 같은 local DB compatibility hash로 계산합니다. approved plain Read가 확인됐는데 compatible plain release가 없으면 `HELD_PLAIN_SNAPSHOT_MISSING`으로 기존 DB를 보존하며 sanitized로 자동 전환하지 않습니다.\n\n### `sk` 명령을 찾을 수 없음\n\n터미널을 새로 연 뒤 `npm install -g seokang-sk`를 다시 실행하세요. Windows PowerShell에서 `sk.ps1` 실행 정책 오류가 나오면 Git Bash를 열어 같은 명령을 실행합니다.\n\n### `sk setup을 실행하려면 git이 필요합니다`\n\nGit을 설치한 뒤 터미널을 새로 열고 `git --version`을 확인한 다음 `sk setup --skip-notion`을 다시 실행하세요.\n\n### Notion 또는 DB 경고가 나옴\n\n기본 설치에는 필요하지 않은 선택 설정입니다. 실제로 사용할 때만 아래 명령을 실행합니다.\n\n```bash\nsk setup --configure-notion\nsk setup --configure-db-safe-read\n```\n\n### 기존 `config.toml` 때문에 설정 반영이 건너뛰어짐\n\nsetup 로그에 `기존 config.toml이 source와 달라 전체 교체를 건너뛰었습니다`가 나오고 기존 설정을 공용 원본으로 바꿔도 된다면 아래 순서로 실행합니다.\n\n```bash\nsk setup --replace-config --skip-notion --dry-run\nsk setup --replace-config --skip-notion\nsk check\n```\n\n기존 `config.toml`은 `.sk/backups/setup/**`에 백업됩니다. 이 옵션은 plugin, marketplace, project trust, desktop 등 기존 app-managed key를 새 config에 유지하지 않으며 `approval_policy = \"never\"`, `sandbox_mode = \"danger-full-access\"`를 적용하므로 전체 교체에 동의할 때만 사용하세요.\n\n### 그래도 해결되지 않음\n\n아래 명령 결과를 복사해 설치를 도와주는 사람에게 전달하세요. 비밀번호, 토큰, OTP는 함께 보내지 마세요.\n\n```bash\nsk check\nsk status\n```\n\n## 설치 구조를 더 알고 싶은 분\n\n- npm 패키지 `seokang-sk`: 최초 설치와 명령 연결\n- `~/.agents/skills`: 수정 가능한 스킬 원본 저장소\n- `~/.codex`: Codex가 실제로 읽는 동기화 설정\n\n자세한 내용은 [sk CLI 가이드](docs/setup/sk-cli-guide.md)와 [설치 구조](docs/setup/sk-setup-architecture.md)를 참고하세요.\n\n---\n\n## 디렉터리 구조\n\n```text\n.\n|- docs/\n|  |- setup/               # 설치/런타임/Notion/Subagent 가이드\n|  |- automations/         # 자동화 기준 문서\n|  |- policies/            # 공통 정책\n|  |- playbooks/           # specialist 체크리스트\n|  |- templates/           # 출력/기록 템플릿\n|  |- refactor/            # 구조 개편 decision log\n|- skills/\n|  |- sk-feature-workflow  # 기능 작업 메인 오케스트레이터\n|  |- sk-bugfix-workflow   # 버그 수정 워크플로\n|  |- sk-refactor          # 리팩토링 워크플로\n|  |- sk-plan              # 기획/설계 응답 워크플로\n|  |- sk-counseling-feedback # 상담 녹음 로컬 전사·난이도·HTML 피드백\n|  |- sk-db                # DB 변경 워크플로\n|  |- sk-local-db          # 터미널 입력 없는 격리 local DB 셋업·snapshot 워크플로\n|  |- sk-design-system     # 디자인 시스템 점검/구축\n|  |- sk-docs              # 변경 문서 작성\n|  |- sk-git               # git add/commit/push 워크플로\n|  |- sk-deploy            # 배포 워크플로\n|- codex-config/\n|  |- config/              # ~/.codex/config.toml 공용 원본\n|  |- agents/              # ~/.codex/agents 공용 원본\n|  |- rules/               # ~/.codex/rules 공용 원본\n|- templates/\n|  |- agent/               # 프로젝트용 AGENTS.md bootstrap 템플릿\n|- scripts/                # 공용 설치 / 보조 스크립트\n```\n\n- 실제 skill 엔트리는 `skills/sk-*/SKILL.md`다.\n\n## 하네스 지원 파일\n\n- 작업 계약 템플릿: `docs/templates/task-contract.md`\n- 영향도 맵 템플릿: `docs/templates/impact-map.md`\n- 하네스 워크플로 기준: `docs/playbooks/harness-workflow.md`\n- default/fallback 체크: `node scripts/check_no_unauthorized_defaults.mjs <path ...>`\n- DDL comment 체크: `node scripts/check_ddl_comments.mjs <path ...>`\n- 문서 링크 무결성 체크: `node scripts/check_docs_integrity.mjs <path ...>`\n- GPT-5.6 기본/agent 모델 배치 체크: `node scripts/check_codex_model_routing.mjs`\n- custom agent 실제 적용 smoke: 호출 직전 UTC 시각과 `spawn_agent`가 반환한 task path를 사용해 `node scripts/check_codex_agent_runtime.mjs --role <agent-name> --agent-path <task-name> --since <ISO-8601>` 실행 (`--thread-id <uuid>`도 지원)\n- CLI smoke 체크: `node scripts/check_sk_cli_smoke.mjs`\n- UI runtime router 체크: `node scripts/check_ui_runtime_router.mjs`\n- 기존 UI 디자인 보존: [기준 탐색·허용 차이·전후 대조](docs/playbooks/design-preservation.md). feature/bugfix/refactor에서 기준 화면을 명시하지 않아도 적용하며, 기존 폰트·경로를 starter로 교체하지 않는다.\n- 프로젝트 디자인 문서가 없으면 [기준 문서 틀](docs/templates/project-design.md)로 확인한 경로를 기록하고 프로젝트 AGENTS.md에 연결한다. 작업별 [UI 보존 계약](docs/templates/ui-preservation.md)은 변경 차이와 검증만 기록한다.\n- UI 변경분 검사: `node scripts/check_ui_design_diff.mjs --cwd <제품 저장소> --base <작업 시작 SHA> --json`. staged/unstaged/untracked 검토 후보를 반환하며, finding 처리는 작업 기록에 남긴다. 코드 0은 시각 일치 증거가 아니다.\n- UI 변경분 검사 회귀 검증: `node scripts/check_ui_design_diff_smoke.mjs`\n- automation safety 체크: `node scripts/check_automation_safety.mjs`\n- operator identity guard 체크: `node scripts/check_operator_guard.mjs`\n- deploy actor guard 체크: `node scripts/check_deploy_actor_guard.mjs`\n- npm 배포 범위 판정: `node scripts/check_npm_release_scope.mjs --json`\n- npm 배포 범위 smoke: `node scripts/check_npm_release_scope_smoke.mjs`\n- 전체 하네스: `npm run check:harness`\n- 하네스는 subagent 대체가 아니라 preflight/check 레이어다.\n\n## 어디를 수정하나\n\n- skill 동작 변경: `skills/sk-*/SKILL.md`\n- 설치/런타임 설정 변경: `codex-config/**`, `scripts/**`\n- 프로젝트용 AGENTS.md 기본 틀 변경: `templates/agent/*.md`\n- 사용법/운영 가이드 변경: `docs/**`, `README.MD`\n\n---\n\n## 저장소를 직접 개발하는 분\n\n일반 설치자는 이 절을 건너뛰어도 됩니다. 이 저장소 자체를 수정하는 개발자만 repo 루트에서 최초 한 번 `npm link`를 실행합니다.\n\n```bash\ncd ~/.agents/skills\nnpm link\nsk setup --skip-notion\n```\n\nWindows Git Bash에서는 사용자 경로에 맞춰 `cd /c/Users/<user>/.agents/skills`를 사용합니다. 저장소 안에서 전역 링크 없이 확인해야 할 때만 `sh ./sk <command>` fallback을 사용합니다.\n\n- `sk help <command>`: 명령별 옵션과 예시 확인\n- `sk init --cwd /path/to/project`: 다른 프로젝트 초기화\n- `sk status --cwd /path/to/project`: 다른 프로젝트 상태 확인\n- `sk identity status`: 선택적 GitHub operator 진단 정보 확인\n- `sk guard implementation --db-impact`: 이전 버전 호환용 안내. DB 코드 작성은 허용하고 실행은 금지\n- `sk guard db-execution`: 기본 strict audit와 `--mode no-db|managed-local --command \"<검증 명령>\"`를 구분한다. DB 없는 컴파일·선택 단위 테스트와 검증된 local profile 실행은 [DB 검증 실행](docs/playbooks/db-verification.md)을 따른다. `$sk-deploy`의 deploy-packaging 경계는 유지한다.\n- `sk db local` / `sk db local sync`: GitHub DB ACL을 확인해 approved plain을 우선하고 권한이 없으면 sanitized private Release channel을 자동 확인·다운로드·검증·복원\n- `sk db local publish`: OWNER의 SELECT-only production copy로 sanitized와 approved plain private snapshot channel을 각각 게시하며 fresh release가 있으면 no-op\n- `sk db local setup|status`: Mac/Windows 공용 Docker local DB 생성과 snapshot 적용 상태 확인\n- `sk db local copy-production|restore|apply|reset`: 수동 sanitized/plain snapshot 경로, managed local DB migration 검증, policy 변경 후 명시적 초기화\n- `sk guard git --action push --branch <name> --repo <name>`: OWNER main push와 NON_OWNER 작업 branch/PR 경계 확인\n- `sk guard stage pre-add|pre-commit <path ...>`: intended commit path와 Git index 일치 검사\n- `sk guard secrets --worktree` / `--staged` / `--outbound --remote origin`: add, commit, push 직전 secret hard-fail\n- `sk guard deploy --environment <name> --artifact <type> --action <action> --db-impact-status <status>`: 배포 credential 및 DB 무실행 경계 안내\n- 구현/commit/작업 branch는 identity 확인이나 cache를 요구하지 않는다. OWNER의 canonical `main`/`master` 직접 push는 GitHub ACL을 사용하고, 배포는 사용자 유형이 아니라 local credential과 원격 권한으로 실행한다. NON_OWNER Git 작업은 개인 fork PR까지만 진행한다.\n- [상세 CLI 가이드](docs/setup/sk-cli-guide.md)를 기준 문서로 사용\n- [Local DB 신규 개발자 온보딩](docs/setup/local-db-onboarding.md)을 프로젝트 DB 셋업 기준으로 사용\n\n---\n\n## 주요 워크플로\n\n- `sk-feature`: 기능 구현 작업의 기본 진입점\n- `sk-bugfix`: 근거 기반 버그 수정\n- `sk-refactor`: 기능 변경 없는 구조 개선\n- `sk-plan`: 기획/설계 응답\n- `sk-counseling-feedback`: 상담 녹음을 로컬 전사하고 난이도와 3단계 코칭 피드백을 단일 HTML로 생성\n- `sk-git`: 변경 파일 기준 commit/push\n- `sk-deploy`: 서버/NAS 배포와 npm publish 배포\n\n### 새 스레드 시작 규칙\n\n- `sk-feature`, `sk-bugfix`, `sk-refactor`, `sk-plan`으로 새 스레드를 시작할 때는 바로 수정/설계에 들어가지 않고 최근 맥락을 먼저 읽는다.\n- 기본 순서:\n  - 최근 7일 git history 확인 (`git log --since='7 days ago'`)\n  - repo 루트 `README*`\n  - `docs/**` 인덱스/개요 문서\n  - 현재 요청과 직접 관련된 상세 문서\n- 문서가 많으면 전부 읽으려 하지 말고, 인덱스/개요 → 관련 상세 순서로 좁혀 읽는다.\n- `.agents/skills`에서는 `README.MD`, `docs/**`, `skills/**`, 수정 대상 `SKILL.md`, 관련 setup/config 문서를 기본 세트로 본다.\n\n---\n\n## Codex 설정 공유\n\n이 저장소는 skill만 관리하는 것이 아니라 Codex 데스크톱 설정도 공용 원본으로 관리한다.\n\n공용 원본:\n\n- `codex-config/config/shared-config.toml`\n- `codex-config/config/windows-config.toml`\n- `codex-config/agents/seokang/*.toml`\n- `codex-config/rules/skills-shared.rules`\n\n설치 결과:\n\n- `~/.codex/config.toml`은 `codex-config/config/*` 원본을 기반으로 생성된다.\n- `~/.codex/agents/seokang/*.toml`은 저장소 원본을 기반으로 동기화된다.\n- `~/.codex/rules/skills-shared.rules`는 저장소 원본을 그대로 복사한다.\n- `~/.codex/sk/notion/workspace.json`은 사용자별 Notion workspace 설정 파일이다.\n- setup 중 기존 대상 파일이 바뀌면 `--cwd` 기준 `.sk/backups/setup/**`에 백업하며, `--cwd`를 생략하면 `~/.agents/skills/.sk/backups/setup/**`를 사용한다.\n- 기존 활성 config가 source와 다르면 `sk setup`은 모델 두 키를 자동 동기화하고 app-managed key를 보존한다. agent만 갱신할 때는 `sk sync-agents --dry-run` 후 `sk sync-agents`를 사용한다.\n- 기존 config를 공용 원본으로 완전히 바꾸려면 `sk setup --replace-config --dry-run`으로 먼저 확인한 뒤 `sk setup --replace-config --skip-notion`을 실행한다.\n- 공용 기본값은 `approval_policy = \"never\"`, `sandbox_mode = \"danger-full-access\"`다.\n- 기본 작업 모델은 `gpt-6-astra`, reasoning effort는 `high`다.\n- setup/update는 `model`과 `model_reasoning_effort`를 공용 원본대로 자동 반영하므로 별도 모델 변경 요청이 필요 없다. 모델 변경에 `--replace-config`를 사용하지 않는다.\n- 탐색형 custom agent는 Terra를 사용하고, 명세·리뷰·DB·UI/Figma 역할은 Sol High를 사용한다. 정확한 배치는 `docs/setup/codex-subagents.md`를 따른다.\n- Ultra는 상시 기본값으로 두지 않고, 대규모 구조 감사처럼 병렬 분해 이득이 분명한 일회성 작업에서만 선택한다.\n- 현재 설정은 승인창 없이 공용 설정 동기화를 진행하기 위한 강한 기본값이며, UI 런타임 검증은 Playwright MCP 대신 Browser / Chrome / Computer Use 라우터를 기본 경로로 둔다.\n- CLI로 쓰면 `codex --sandbox danger-full-access -a never`와 같은 기준이다.\n- shared subagent를 실제로 사용할 수 있도록 공용 source에서 `multi_agent` feature를 켠다.\n- `/goal`, Automations, Skills 중심 운영 기준은 `docs/setup/codex-workflows.md`를 따른다.\n\n일반 사용자 설치 명령:\n\n```bash\nnpm install -g seokang-sk\nsk setup --skip-notion\n```\n\n새 CLI 명령:\n\n```bash\nsk setup\n```\n\n```bash\nsk init\n```\n\n```bash\nsk check\n```\n\n```bash\nsk status\n```\n\n```bash\nsk memory show\n```\n\n```bash\nsk search \"reviewer\"\n```\n\n호환성:\n\n- 일반 사용자 기준 설치 진입점은 `npm install -g seokang-sk` → `sk setup --skip-notion`이다.\n- `scripts/install_codex_shared_setup.sh`는 저장소 개발과 이전 설치 방식의 호환용으로만 유지한다.\n- 이 저장소를 직접 개발할 때만 repo 루트에서 최초 1회 `npm link`를 실행한다.\n- Windows의 저장소 로컬 `.sh` fallback은 Git Bash에서만 실행한다.\n- Windows PowerShell에서 실행 정책 때문에 `sk.ps1`이 막히면 `sk.cmd`를 쓰거나 생성된 `sk.ps1`을 비활성화해 `sk.cmd`가 우선 잡히게 한다.\n- 기존 `scripts/install_codex_shared_rules.sh`는 새 설치 스크립트를 호출하는 래퍼로 유지한다.\n- `scripts/sk.sh`는 Node 기반 `scripts/sk.mjs`를 호출하는 Git Bash 표준 진입점이다.\n- repo 루트 `./sk`는 npm link를 쓰지 않을 때의 fallback 진입점이다.\n- 다른 프로젝트를 지정해야 하면 대부분의 명령에서 `--cwd /path/to/project`를 같이 쓰면 된다.\n- `sk setup`이 설치와 동기화를 맡는다.\n- `sk create`가 새 프로젝트 전체 생성을 맡고 `sk init`은 기존 프로젝트 profile 연결을 맡는다.\n\n상태 디렉터리:\n\n- `sk init`은 현재 작업 디렉터리 아래 `.sk/`와 프로젝트 루트 `AGENTS.md`의 managed style block을 준비한다.\n- `sk setup`은 관리용 저장소 `~/.agents/skills/.sk/`를 setup 상태/백업 기준 경로로 사용한다.\n- `.sk/setup-scope.json`: 마지막 init/setup 기록\n- `.sk/project-memory.json`: 다음 세션이 읽을 구조화 메모\n- `.sk/notepad.md`: 우선 컨텍스트/작업 메모\n- `.sk/backups/setup/**`: setup 중 덮어쓰기 전에 남긴 백업\n- Notion workspace 설정은 `~/.codex/sk/notion/workspace.json`을 쓰고, 작업 문서 outbox는 `~/.codex/sk/notion/outbox`를 쓴다.\n\n중요 제한:\n\n- `skills-shared.rules`는 shell prefix 자동 허용만 처리한다.\n- Notion/Figma MCP와 Browser / Chrome / Computer Use를 나누는 런타임 검증 라우팅은 `shared-config.toml`과 관련 playbook에서 함께 관리한다.\n- 공용 subagent 등록은 `shared-config.toml`의 `[agents.*]`와 `codex-config/agents/seokang/*.toml`에서 함께 관리한다.\n- `danger-full-access`는 workspace 밖 파일, 홈 디렉터리, SSH, 네트워크, 외부 명령 실행까지 sandbox 제한 없이 진행할 수 있게 한다.\n- `approval_policy = \"never\"`라서 승인창도 띄우지 않는다.\n- 기본 분석용 공용 subagent TOML은 `read-only sandbox`로 두지만, 현재 task의 live permission override가 있으면 부모 권한이 우선할 수 있다. `Notion MCP`, `Playwright`, `Browser`, `Chrome`, `Computer Use` 같은 tool 작업은 agent 지침에서 금지한다.\n- 브라우저 재현, 콘솔/네트워크 증거, Notion 조회/publish는 전용 tool subagent를 두지 않고 메인 agent 또는 Codex 자동화가 수행한다.\n- Notion과 Figma 관련 조회/작업은 plugin(MCP) 경로를 기본으로 사용한다.\n- 작업 문서 작성은 local outbox를 기본으로 하고, Notion 조회/publish는 MCP 우선을 기본으로 한다. 인증/권한 실패가 나면 exact error를 먼저 보고한다.\n- Figma도 browser/manual 확인보다 MCP tool 호출을 기본 경로로 두고, 우회는 exact error와 범위 불명확성이 정리된 뒤에만 사용한다.\n- Notion 실패를 숨기기 위해 브라우저 자동화로 notion.so를 기본 경로처럼 사용하지 않는다. 웹 UI fallback은 사용자가 명시적으로 요청한 경우에만 허용한다.\n- UI 런타임 검증이 필요하면 메인 agent가 Browser / Chrome / Computer Use 라우터로 실제 앱/브라우저 상태를 확인한다.\n- 로컬 dev URL은 Browser, 사용자 Chrome 세션/쿠키/기존 탭은 Chrome, 앱/OS-level UI는 Computer Use를 우선한다.\n- Computer Use로 브라우저 검증을 해야 하면 사용자 현재 탭을 쓰지 않고 전용 테스트 창 또는 탭을 열어 검증한 뒤 닫는다.\n- 사용자가 명시적으로 Playwright를 요청하지 않았다면 UI 런타임 검증에서 `PWCLI`, `playwright_cli.sh`, `@playwright/mcp`, standalone Playwright 기반 browser-use fallback을 사용하지 않는다.\n- 이 설정은 보안 유지형이 아니라 실험/자동화 우선 설정이다.\n- Browser / Chrome / Computer Use 플러그인 제공 여부는 Codex 데스크톱 세션의 tool surface를 기준으로 확인한다.\n\n다른 프로젝트에도 프로젝트별 rules가 필요하면 각 프로젝트 루트의 `.codex/rules/*.rules`에 별도로 추가해서 관리한다.\n\n---\n\n## 배포\n\n`sk-deploy`는 로컬에서 빌드한 결과물을 배포 대상으로 올리는 워크플로다.\n\n- 일반 서버 프로젝트: 원격 서버/NAS 업로드 + 재시작\n- `.agents/skills` 같은 `seokang-skill` 프로젝트: `npm publish`\n\n권한은 아래처럼 분리합니다.\n\n- contributor: DB 코드와 SQL까지 개인 private fork의 작업 branch에 작성·push하고 `selink-lab` 원본 PR 생성\n- OWNER: canonical `main`/`master` 직접 push, contributor PR 검토·merge, production 배포, npm publish, rollback, tag/release\n- NON_OWNER: canonical `main`/`master` push와 모든 배포 mutation 금지, 개인 fork 작업 branch와 원본 PR까지만 허용\n\nPR 처리는 예약 Inbox 자동화 없이 `$sk-git`에서 끝냅니다. OWNER가 canonical product repository에서 plain `$sk-git`을 호출하면 local 변경 유무보다 먼저 `sk git preflight --cwd \"$PWD\" --json`을 실행하고 현재 저장소의 허용된 contributor PR을 자동 발견해 remote diff를 검토한 뒤 순차 squash merge합니다. 결과에는 `PR 처리: 0건 | merged | held | pending` receipt가 반드시 남습니다. repository 이전 전 `Seokang/<repo>` remote도 GitHub canonical `full_name`이 정확히 `selink-lab/<허용 repo>`일 때만 같은 원본으로 인정합니다. 특정 PR 하나만 처리하려면 `$sk-git PR #<number> 병합`을 사용합니다. 친구는 personal fork에서 commit/push/PR까지만 수행합니다. `$seokang-update`는 PR을 처리하지 않고 clean default branch의 원본 fast-forward와 applicable local DB 갱신만 수행합니다.\n\n완료 branch는 `$sk-git` 종료 단계에서 `sk git cleanup`으로 정리합니다. default 반영, SHA 일치, 비보호, active worktree 없음이 증명된 자기 `origin`/local branch만 삭제하며 모호한 branch는 `HELD`로 보존합니다. 친구는 merge된 PR의 정확한 head SHA를 확인한 뒤 자기 fork branch를 정리하고, OWNER가 여러 제품 저장소를 정리할 때는 `sk git cleanup --workspace --cwd <workspace> --apply --json`을 사용합니다.\n\n`$sk-git`과 `$sk-deploy`를 함께 호출하면 PR scan과 candidate별 merged/held 결과를 먼저 확정하고 canonical main을 fast-forward한 뒤 배포합니다. `$sk-deploy`만 호출한 경우에는 PR 또는 GitHub 사용자 확인을 배포 gate로 추가하지 않습니다.\n\n모든 배포 스크립트는 build/upload/restart/publish 전에 DB execution boundary를 확인합니다. OWNER/NON_OWNER/root/seokang 같은 사용자 유형은 판정하지 않으며, local config의 SSH/npm/API/CDN credential로 실제 명령을 실행한 결과만 사용합니다.\n\n개발 DB는 `sk db local`이 검증한 프로젝트별 Docker container만 사용합니다. OWNER publisher는 SELECT-only production credential로 기본 sanitized channel과 개인정보 열람 승인자 전용 approved-plain channel을 분리해 private GitHub Release로 게시합니다. `$seokang-update` 한 번이면 공용 skill → clean default branch → GitHub DB ACL에 맞는 최신 snapshot → Git-ignored Spring local 설정까지 준비됩니다. `local-db-plain-readers`는 plain artifact Read만 허용하며 product Git write, PR merge, deploy, SSH/npm 권한과 무관합니다. Production credential은 공유하지 않고 CI, deploy, start/restart script는 migration/DDL/DML/backfill/seed를 실행하지 않습니다.\n\n개발자 PC에 npm/SSH 배포 credential이나 local deploy config가 없으면 배포 스킬은 `HANDOFF_CONFIGURED_DEPLOY_HOST`로 끝냅니다. 시크릿을 복사하거나 계정을 전환하지 않고, 같은 commit/version을 배포 설정이 준비된 PC에서 `$sk-deploy`로 이어갑니다.\n\n이 로컬 guard는 실수 방지층입니다. GitHub Free private 저장소의 실제 Git 차단은 `selink-lab` 원본 Read 권한과 개인 private fork/PR로 구성합니다. 배포는 local config에 credential이 설정된 환경에서만 가능하며 fork PR Actions에는 write token, secrets, variables를 전달하지 않습니다.\n\n예시 설정 파일:\n\n```env\nDEPLOY_ENVIRONMENT=production\nDEPLOY_DB_IMPACT_STATUS=unknown\nDEPLOY_ISOLATED=false\nDEPLOY_ISOLATION_EVIDENCE=\nREMOTE_HOST=your-host\nREMOTE_PORT=your-port\nREMOTE_USER=your-user\nREMOTE_DIR=/opt/km-admin-api\nJAR_NAME=km-admin-api.jar\nLOCAL_JAR_PATH=./build/libs/km-admin-api.jar\n```\n\n`seokang-skill` 프로젝트에서는 아래 스크립트/템플릿을 사용한다.\n\n- `skills/sk-deploy/deploy-npm.sh`\n- `skills/sk-deploy/deploy.local.conf.template.npm`\n\n---\n\n## 커밋 메시지 규칙\n\n- `feat:` 기능 추가\n- `fix:` 버그 수정\n- `refactor:` 구조 개선\n- `deploy:` 배포\n\n---\n\n## 안전 원칙\n\n- 추정 기반 구현 금지\n- API 계약 변경 시 전체 이름/응답 구조 확인\n- 리팩터링은 동작 유지가 전제\n- build 성공과 정상 동작은 별개로 본다\n- Notion outbox 문서를 임의로 생략하지 않는다\n\n---\n\n## 호환용 설치 스크립트 사용법\n\n- 일반 사용자는 이 절 대신 README 맨 위의 npm 설치 절차를 사용합니다.\n- 이 설치 스크립트는 저장소 개발자가 공용 Codex 설정을 로컬 `~/.codex`로 복사·동기화할 때 사용하는 호환 경로다.\n- 같은 설치 스크립트가 공용 subagent도 `~/.codex/agents/seokang`으로 함께 동기화한다.\n- 내부적으로는 `scripts/sk.mjs setup` 흐름을 호출한다.\n- macOS shell 설치 예시: `sh ~/.agents/skills/scripts/install_codex_shared_setup.sh`\n- Windows Git Bash shell 설치 예시: `sh /c/Users/<user>/.agents/skills/scripts/install_codex_shared_setup.sh`\n- 기존 설치에서 shared agent만 바뀌면 설치 스크립트를 다시 실행하지 않고 `sk sync-agents`를 사용한다.\n- source와 다른 활성 config는 setup에서 교체하지 않고 그대로 보존된다.\n- 로컬 대상 파일이 source와 다르면 설치 스크립트가 덮어쓰기 전에 `.sk/backups/setup/**` 아래에 백업을 남긴다.\n- Windows에서 `sh`를 인식하지 못하면 Git for Windows(Git Bash)를 설치한 뒤 같은 `.sh` 명령을 다시 실행한다.\n\n## sk 명령\n\n- `setup`\n  - `~/.agents/skills` 저장소를 준비하거나 재사용하고, config/rules/shared agents를 sync한 뒤 check까지 실행한다.\n  - 최초 setup 시 interactive 환경이면 사용자별 Notion workspace 설정 파일도 함께 만들 수 있다.\n  - `--dry-run`, `--verbose`, `--configure-notion`, `--skip-notion`과 Notion fast path 옵션(`--records-data-source-id`, `--projects-data-source-id`, `--project-page-url`, `--history-data-source-id`, `--record-type`)을 지원한다.\n- `update`\n  - canonical skills 저장소가 clean이고 upstream으로 fast-forward 가능할 때만 갱신한다.\n  - dirty/ahead/diverged 상태에서는 강제 reset 없이 중단한다.\n- `create`\n  - `sk create backend <name> --package <root.package>` 또는 `sk create frontend <name>`으로 승인된 starter를 생성한다.\n  - backend 선택 기능은 `--capabilities cache,excel`처럼 versioned capability로만 추가한다.\n- `sync-agents`\n  - `config.toml`, rules, Notion, 프로젝트 상태를 건드리지 않고 `~/.codex/agents/seokang/*.toml`만 백업 후 동기화한다.\n  - 기존 설치의 모델/지침 변경은 `sk sync-agents --dry-run` 확인 후 `sk sync-agents`로 반영한다.\n  - `--scope <user|project>`, `--cwd <path>`, `--dry-run`, `--verbose`를 지원한다.\n- `init`\n  - 현재 프로젝트 루트의 `.sk/`와 `AGENTS.md` managed style block을 준비한다.\n  - 기존 build/properties/package 파일은 생성하거나 덮어쓰지 않는다.\n  - 기존 `--agent-md`는 호환 alias로 유지한다.\n  - `--cwd <path>`, `--no-style`, `--dry-run`, `--force`, `--verbose`를 지원한다.\n- `style`\n  - `sk style audit`은 profile/starter/capability drift를 검사한다.\n  - `sk style apply`는 AGENTS managed block과 profile 상태만 갱신한다.\n- `check`\n  - 현재 설치가 source와 일치하는지 확인한다.\n  - Codex workflow 상태(`multi_agent`, `/goal`, automation 기준 문서, skill 원본)도 함께 확인한다.\n  - Notion workspace 설정 파일, outbox 자동화 기준 문서, fast path cache 준비 상태도 함께 확인한다.\n  - drift나 선택적 설정 경고에는 `recommended_action`을 함께 제공한다.\n  - `--cwd <path>`, `--track <name>`, `--json`을 지원한다.\n- `status`\n  - 현재 `.sk` 상태, memory/notepad, Notion workspace 설정 상태, 최근 backup, check 결과를 함께 보여준다.\n  - `--cwd <path>`, `--track <name>`, `--json`을 지원한다.\n- `memory`\n  - `.sk/project-memory.json`과 `.sk/notepad.md`를 초기화하고 읽는다.\n  - `show`, `init`, `add-note`, `add-directive`를 지원한다.\n- `search`\n  - 로컬 Codex transcript에서 기존 세션 내용을 검색한다.\n  - `--since`, `--project`, `--session`, `--limit`, `--case-sensitive`, `--json`을 지원한다.\n\n## 공용 하위 에이전트\n\n- 공용 subagent 등록은 `codex-config/config/shared-config.toml`에서 관리한다.\n- agent별 동작은 `codex-config/agents/seokang/*.toml`에서 관리한다.\n- 현재 공용 세트는 다음과 같다:\n  - `context_mapper`\n  - `spec_clarifier`\n  - `reviewer`\n  - `docs_researcher`\n  - `codex_improver`\n  - `api_flow_mapper`\n  - `db_impact_reviewer`\n  - `ui_flow_mapper`\n  - `design_checker`\n- 설정과 유지보수 방법은 `docs/setup/codex-subagents.md`에 정리했다.\n- 공통 Runtime Delegation 조건이 충족되면 skill의 지시만으로 적합한 custom agent를 호출하며, 사용자가 매번 별도로 요청할 필요는 없다.\n- 교차 레이어·외부 기준 대조·반복 workflow 마찰·비단순 회귀 위험이 없고 독립 lane도 없는 단순 작업에는 호출 수를 강제하지 않는다.\n- 위임 판단을 사용자 출력 형식으로 노출하지 않고 실제 실행 이력만 기록한다.\n- 기본 분석용 subagent는 `Notion MCP`, `Playwright`, `Browser`, `Chrome`, `Computer Use`를 직접 사용하지 않고, 이런 tool 작업은 메인 agent가 맡는다.\n\n## 프로젝트 AGENTS.md\n\n- `AGENTS.md`는 Codex가 기본 탐색하는 프로젝트별 고정 규칙 문서다.\n- `README`는 사람용 개요/설치 문서, `.sk/*`는 세션 메모, `AGENTS.md`는 agent가 먼저 읽어야 할 프로젝트 계약서로 분리해서 쓴다.\n- 기존 `AGENT.MD`만 있는 프로젝트는 `sk init` 실행 시 내용을 보존해 `AGENTS.md`로 마이그레이션하고 style managed block을 덧붙인다.\n- 성능 차이가 크지 않은 한 기본 초안은 한글로 생성하고, 명령어/식별자/경로만 원문을 유지한다.\n- 새 프로젝트에서 바로 만들려면 아래처럼 시작한다.\n\n```bash\nsk init\n```\n\n- 다른 프로젝트를 미리 준비할 때는 아래처럼 쓴다.\n\n```bash\nsk init --cwd /path/to/project\n```\n\n- 기본 템플릿 원본은 `templates/agent/base.md`, `templates/agent/frontend.md`, `templates/agent/backend.md`, `templates/agent/codex.md`다.\n\n## 작성자\n\nSeoKang 작성\n\nGit/배포 마무리는 [원래 checkout 동기화](docs/setup/git-checkout-sync.md)의 시작/완료 receipt를 확인한다.\n","readmeFilename":"README.MD"}