@walwal-harness/cli 6.1.5 → 7.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (328) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/HR-Resource/academic-academic-anthropologist/SKILL.md +142 -0
  3. package/HR-Resource/academic-academic-geographer/SKILL.md +144 -0
  4. package/HR-Resource/academic-academic-historian/SKILL.md +140 -0
  5. package/HR-Resource/academic-academic-narratologist/SKILL.md +135 -0
  6. package/HR-Resource/academic-academic-psychologist/SKILL.md +135 -0
  7. package/HR-Resource/brick-office/SKILL.md +20 -0
  8. package/HR-Resource/cdo/SKILL.md +33 -0
  9. package/HR-Resource/ceo/SKILL.md +36 -0
  10. package/HR-Resource/coo/SKILL.md +36 -0
  11. package/HR-Resource/cqo/SKILL.md +33 -0
  12. package/HR-Resource/cto/SKILL.md +36 -0
  13. package/HR-Resource/design-design-brand-guardian/SKILL.md +339 -0
  14. package/HR-Resource/design-design-image-prompt-engineer/SKILL.md +253 -0
  15. package/HR-Resource/design-design-inclusive-visuals-specialist/SKILL.md +88 -0
  16. package/HR-Resource/design-design-ui-designer/SKILL.md +400 -0
  17. package/HR-Resource/design-design-ux-architect/SKILL.md +486 -0
  18. package/HR-Resource/design-design-ux-researcher/SKILL.md +346 -0
  19. package/HR-Resource/design-design-visual-storyteller/SKILL.md +166 -0
  20. package/HR-Resource/design-design-whimsy-injector/SKILL.md +455 -0
  21. package/HR-Resource/engineering-engineering-ai-data-remediation-engineer/SKILL.md +227 -0
  22. package/HR-Resource/engineering-engineering-ai-engineer/SKILL.md +163 -0
  23. package/HR-Resource/engineering-engineering-autonomous-optimization-architect/SKILL.md +124 -0
  24. package/HR-Resource/engineering-engineering-backend-architect/SKILL.md +252 -0
  25. package/HR-Resource/engineering-engineering-cms-developer/SKILL.md +553 -0
  26. package/HR-Resource/engineering-engineering-code-reviewer/SKILL.md +93 -0
  27. package/HR-Resource/engineering-engineering-codebase-onboarding-engineer/SKILL.md +190 -0
  28. package/HR-Resource/engineering-engineering-data-engineer/SKILL.md +323 -0
  29. package/HR-Resource/engineering-engineering-database-optimizer/SKILL.md +193 -0
  30. package/HR-Resource/engineering-engineering-devops-automator/SKILL.md +393 -0
  31. package/HR-Resource/engineering-engineering-email-intelligence-engineer/SKILL.md +370 -0
  32. package/HR-Resource/engineering-engineering-embedded-firmware-engineer/SKILL.md +190 -0
  33. package/HR-Resource/engineering-engineering-feishu-integration-developer/SKILL.md +615 -0
  34. package/HR-Resource/engineering-engineering-filament-optimization-specialist/SKILL.md +300 -0
  35. package/HR-Resource/engineering-engineering-frontend-developer/SKILL.md +242 -0
  36. package/HR-Resource/engineering-engineering-git-workflow-master/SKILL.md +101 -0
  37. package/HR-Resource/engineering-engineering-incident-response-commander/SKILL.md +461 -0
  38. package/HR-Resource/engineering-engineering-minimal-change-engineer/SKILL.md +224 -0
  39. package/HR-Resource/engineering-engineering-mobile-app-builder/SKILL.md +510 -0
  40. package/HR-Resource/engineering-engineering-rapid-prototyper/SKILL.md +479 -0
  41. package/HR-Resource/engineering-engineering-security-engineer/SKILL.md +321 -0
  42. package/HR-Resource/engineering-engineering-senior-developer/SKILL.md +193 -0
  43. package/HR-Resource/engineering-engineering-software-architect/SKILL.md +98 -0
  44. package/HR-Resource/engineering-engineering-solidity-smart-contract-engineer/SKILL.md +539 -0
  45. package/HR-Resource/engineering-engineering-sre/SKILL.md +107 -0
  46. package/HR-Resource/engineering-engineering-technical-writer/SKILL.md +410 -0
  47. package/HR-Resource/engineering-engineering-threat-detection-engineer/SKILL.md +551 -0
  48. package/HR-Resource/engineering-engineering-voice-ai-integration-engineer/SKILL.md +578 -0
  49. package/HR-Resource/engineering-engineering-wechat-mini-program-developer/SKILL.md +367 -0
  50. package/HR-Resource/finance-finance-bookkeeper-controller/SKILL.md +277 -0
  51. package/HR-Resource/finance-finance-financial-analyst/SKILL.md +251 -0
  52. package/HR-Resource/finance-finance-fpa-analyst/SKILL.md +280 -0
  53. package/HR-Resource/finance-finance-investment-researcher/SKILL.md +289 -0
  54. package/HR-Resource/finance-finance-tax-strategist/SKILL.md +256 -0
  55. package/HR-Resource/game-development-blender-blender-addon-engineer/SKILL.md +251 -0
  56. package/HR-Resource/game-development-game-audio-engineer/SKILL.md +281 -0
  57. package/HR-Resource/game-development-game-designer/SKILL.md +184 -0
  58. package/HR-Resource/game-development-godot-godot-gameplay-scripter/SKILL.md +351 -0
  59. package/HR-Resource/game-development-godot-godot-multiplayer-engineer/SKILL.md +314 -0
  60. package/HR-Resource/game-development-godot-godot-shader-developer/SKILL.md +283 -0
  61. package/HR-Resource/game-development-level-designer/SKILL.md +225 -0
  62. package/HR-Resource/game-development-narrative-designer/SKILL.md +260 -0
  63. package/HR-Resource/game-development-roblox-studio-roblox-avatar-creator/SKILL.md +314 -0
  64. package/HR-Resource/game-development-roblox-studio-roblox-experience-designer/SKILL.md +322 -0
  65. package/HR-Resource/game-development-roblox-studio-roblox-systems-scripter/SKILL.md +342 -0
  66. package/HR-Resource/game-development-technical-artist/SKILL.md +246 -0
  67. package/HR-Resource/game-development-unity-unity-architect/SKILL.md +288 -0
  68. package/HR-Resource/game-development-unity-unity-editor-tool-developer/SKILL.md +327 -0
  69. package/HR-Resource/game-development-unity-unity-multiplayer-engineer/SKILL.md +338 -0
  70. package/HR-Resource/game-development-unity-unity-shader-graph-artist/SKILL.md +286 -0
  71. package/HR-Resource/game-development-unreal-engine-unreal-multiplayer-architect/SKILL.md +330 -0
  72. package/HR-Resource/game-development-unreal-engine-unreal-systems-engineer/SKILL.md +327 -0
  73. package/HR-Resource/game-development-unreal-engine-unreal-technical-artist/SKILL.md +273 -0
  74. package/HR-Resource/game-development-unreal-engine-unreal-world-builder/SKILL.md +290 -0
  75. package/HR-Resource/hiring/SKILL.md +28 -0
  76. package/HR-Resource/index.json +747 -0
  77. package/HR-Resource/integrations-mcp-memory-backend-architect-with-memory/SKILL.md +264 -0
  78. package/HR-Resource/marketing-marketing-agentic-search-optimizer/SKILL.md +328 -0
  79. package/HR-Resource/marketing-marketing-ai-citation-strategist/SKILL.md +187 -0
  80. package/HR-Resource/marketing-marketing-app-store-optimizer/SKILL.md +338 -0
  81. package/HR-Resource/marketing-marketing-baidu-seo-specialist/SKILL.md +243 -0
  82. package/HR-Resource/marketing-marketing-bilibili-content-strategist/SKILL.md +216 -0
  83. package/HR-Resource/marketing-marketing-book-co-author/SKILL.md +127 -0
  84. package/HR-Resource/marketing-marketing-carousel-growth-engine/SKILL.md +216 -0
  85. package/HR-Resource/marketing-marketing-china-ecommerce-operator/SKILL.md +300 -0
  86. package/HR-Resource/marketing-marketing-china-market-localization-strategist/SKILL.md +300 -0
  87. package/HR-Resource/marketing-marketing-content-creator/SKILL.md +71 -0
  88. package/HR-Resource/marketing-marketing-cross-border-ecommerce/SKILL.md +276 -0
  89. package/HR-Resource/marketing-marketing-douyin-strategist/SKILL.md +166 -0
  90. package/HR-Resource/marketing-marketing-growth-hacker/SKILL.md +71 -0
  91. package/HR-Resource/marketing-marketing-instagram-curator/SKILL.md +130 -0
  92. package/HR-Resource/marketing-marketing-kuaishou-strategist/SKILL.md +240 -0
  93. package/HR-Resource/marketing-marketing-linkedin-content-creator/SKILL.md +230 -0
  94. package/HR-Resource/marketing-marketing-livestream-commerce-coach/SKILL.md +322 -0
  95. package/HR-Resource/marketing-marketing-podcast-strategist/SKILL.md +294 -0
  96. package/HR-Resource/marketing-marketing-private-domain-operator/SKILL.md +325 -0
  97. package/HR-Resource/marketing-marketing-reddit-community-builder/SKILL.md +140 -0
  98. package/HR-Resource/marketing-marketing-seo-specialist/SKILL.md +338 -0
  99. package/HR-Resource/marketing-marketing-short-video-editing-coach/SKILL.md +429 -0
  100. package/HR-Resource/marketing-marketing-social-media-strategist/SKILL.md +142 -0
  101. package/HR-Resource/marketing-marketing-tiktok-strategist/SKILL.md +142 -0
  102. package/HR-Resource/marketing-marketing-twitter-engager/SKILL.md +143 -0
  103. package/HR-Resource/marketing-marketing-video-optimization-specialist/SKILL.md +136 -0
  104. package/HR-Resource/marketing-marketing-wechat-official-account/SKILL.md +162 -0
  105. package/HR-Resource/marketing-marketing-weibo-strategist/SKILL.md +257 -0
  106. package/HR-Resource/marketing-marketing-xiaohongshu-specialist/SKILL.md +155 -0
  107. package/HR-Resource/marketing-marketing-zhihu-strategist/SKILL.md +179 -0
  108. package/HR-Resource/ops/SKILL.md +46 -0
  109. package/HR-Resource/paid-media-paid-media-auditor/SKILL.md +88 -0
  110. package/HR-Resource/paid-media-paid-media-creative-strategist/SKILL.md +88 -0
  111. package/HR-Resource/paid-media-paid-media-paid-social-strategist/SKILL.md +88 -0
  112. package/HR-Resource/paid-media-paid-media-ppc-strategist/SKILL.md +88 -0
  113. package/HR-Resource/paid-media-paid-media-programmatic-buyer/SKILL.md +88 -0
  114. package/HR-Resource/paid-media-paid-media-search-query-analyst/SKILL.md +88 -0
  115. package/HR-Resource/paid-media-paid-media-tracking-specialist/SKILL.md +88 -0
  116. package/HR-Resource/product-product-behavioral-nudge-engine/SKILL.md +97 -0
  117. package/HR-Resource/product-product-feedback-synthesizer/SKILL.md +136 -0
  118. package/HR-Resource/product-product-manager/SKILL.md +486 -0
  119. package/HR-Resource/product-product-sprint-prioritizer/SKILL.md +171 -0
  120. package/HR-Resource/product-product-trend-researcher/SKILL.md +176 -0
  121. package/HR-Resource/project-management-project-management-experiment-tracker/SKILL.md +215 -0
  122. package/HR-Resource/project-management-project-management-jira-workflow-steward/SKILL.md +247 -0
  123. package/HR-Resource/project-management-project-management-project-shepherd/SKILL.md +211 -0
  124. package/HR-Resource/project-management-project-management-studio-operations/SKILL.md +217 -0
  125. package/HR-Resource/project-management-project-management-studio-producer/SKILL.md +220 -0
  126. package/HR-Resource/project-management-project-manager-senior/SKILL.md +152 -0
  127. package/HR-Resource/resource-manager/SKILL.md +23 -0
  128. package/HR-Resource/sales-sales-account-strategist/SKILL.md +244 -0
  129. package/HR-Resource/sales-sales-coach/SKILL.md +288 -0
  130. package/HR-Resource/sales-sales-deal-strategist/SKILL.md +197 -0
  131. package/HR-Resource/sales-sales-discovery-coach/SKILL.md +242 -0
  132. package/HR-Resource/sales-sales-engineer/SKILL.md +199 -0
  133. package/HR-Resource/sales-sales-outbound-strategist/SKILL.md +218 -0
  134. package/HR-Resource/sales-sales-pipeline-analyst/SKILL.md +284 -0
  135. package/HR-Resource/sales-sales-proposal-strategist/SKILL.md +234 -0
  136. package/HR-Resource/spatial-computing-macos-spatial-metal-engineer/SKILL.md +354 -0
  137. package/HR-Resource/spatial-computing-terminal-integration-specialist/SKILL.md +87 -0
  138. package/HR-Resource/spatial-computing-visionos-spatial-engineer/SKILL.md +71 -0
  139. package/HR-Resource/spatial-computing-xr-cockpit-interaction-specialist/SKILL.md +49 -0
  140. package/HR-Resource/spatial-computing-xr-immersive-developer/SKILL.md +49 -0
  141. package/HR-Resource/spatial-computing-xr-interface-architect/SKILL.md +49 -0
  142. package/HR-Resource/specialized-accounts-payable-agent/SKILL.md +202 -0
  143. package/HR-Resource/specialized-agentic-identity-trust/SKILL.md +404 -0
  144. package/HR-Resource/specialized-agents-orchestrator/SKILL.md +384 -0
  145. package/HR-Resource/specialized-automation-governance-architect/SKILL.md +233 -0
  146. package/HR-Resource/specialized-blockchain-security-auditor/SKILL.md +480 -0
  147. package/HR-Resource/specialized-compliance-auditor/SKILL.md +175 -0
  148. package/HR-Resource/specialized-corporate-training-designer/SKILL.md +209 -0
  149. package/HR-Resource/specialized-customer-service/SKILL.md +415 -0
  150. package/HR-Resource/specialized-data-consolidation-agent/SKILL.md +77 -0
  151. package/HR-Resource/specialized-government-digital-presales-consultant/SKILL.md +380 -0
  152. package/HR-Resource/specialized-healthcare-customer-service/SKILL.md +406 -0
  153. package/HR-Resource/specialized-healthcare-marketing-compliance/SKILL.md +412 -0
  154. package/HR-Resource/specialized-hospitality-guest-services/SKILL.md +620 -0
  155. package/HR-Resource/specialized-hr-onboarding/SKILL.md +468 -0
  156. package/HR-Resource/specialized-identity-graph-operator/SKILL.md +277 -0
  157. package/HR-Resource/specialized-language-translator/SKILL.md +281 -0
  158. package/HR-Resource/specialized-legal-billing-time-tracking/SKILL.md +586 -0
  159. package/HR-Resource/specialized-legal-client-intake/SKILL.md +509 -0
  160. package/HR-Resource/specialized-legal-document-review/SKILL.md +471 -0
  161. package/HR-Resource/specialized-loan-officer-assistant/SKILL.md +572 -0
  162. package/HR-Resource/specialized-lsp-index-engineer/SKILL.md +331 -0
  163. package/HR-Resource/specialized-real-estate-buyer-seller/SKILL.md +613 -0
  164. package/HR-Resource/specialized-recruitment-specialist/SKILL.md +526 -0
  165. package/HR-Resource/specialized-report-distribution-agent/SKILL.md +82 -0
  166. package/HR-Resource/specialized-retail-customer-returns/SKILL.md +583 -0
  167. package/HR-Resource/specialized-sales-data-extraction-agent/SKILL.md +84 -0
  168. package/HR-Resource/specialized-sales-outreach/SKILL.md +442 -0
  169. package/HR-Resource/specialized-specialized-chief-of-staff/SKILL.md +296 -0
  170. package/HR-Resource/specialized-specialized-civil-engineer/SKILL.md +373 -0
  171. package/HR-Resource/specialized-specialized-cultural-intelligence-strategist/SKILL.md +105 -0
  172. package/HR-Resource/specialized-specialized-developer-advocate/SKILL.md +334 -0
  173. package/HR-Resource/specialized-specialized-document-generator/SKILL.md +72 -0
  174. package/HR-Resource/specialized-specialized-french-consulting-market/SKILL.md +209 -0
  175. package/HR-Resource/specialized-specialized-korean-business-navigator/SKILL.md +233 -0
  176. package/HR-Resource/specialized-specialized-mcp-builder/SKILL.md +265 -0
  177. package/HR-Resource/specialized-specialized-model-qa/SKILL.md +505 -0
  178. package/HR-Resource/specialized-specialized-salesforce-architect/SKILL.md +197 -0
  179. package/HR-Resource/specialized-specialized-workflow-architect/SKILL.md +614 -0
  180. package/HR-Resource/specialized-study-abroad-advisor/SKILL.md +299 -0
  181. package/HR-Resource/specialized-supply-chain-strategist/SKILL.md +599 -0
  182. package/HR-Resource/specialized-zk-steward/SKILL.md +228 -0
  183. package/HR-Resource/support-support-analytics-reporter/SKILL.md +382 -0
  184. package/HR-Resource/support-support-executive-summary-generator/SKILL.md +229 -0
  185. package/HR-Resource/support-support-finance-tracker/SKILL.md +459 -0
  186. package/HR-Resource/support-support-infrastructure-maintainer/SKILL.md +635 -0
  187. package/HR-Resource/support-support-legal-compliance-checker/SKILL.md +605 -0
  188. package/HR-Resource/support-support-support-responder/SKILL.md +602 -0
  189. package/HR-Resource/testing-testing-accessibility-auditor/SKILL.md +333 -0
  190. package/HR-Resource/testing-testing-api-tester/SKILL.md +323 -0
  191. package/HR-Resource/testing-testing-evidence-collector/SKILL.md +227 -0
  192. package/HR-Resource/testing-testing-performance-benchmarker/SKILL.md +285 -0
  193. package/HR-Resource/testing-testing-reality-checker/SKILL.md +253 -0
  194. package/HR-Resource/testing-testing-test-results-analyzer/SKILL.md +322 -0
  195. package/HR-Resource/testing-testing-tool-evaluator/SKILL.md +411 -0
  196. package/HR-Resource/testing-testing-workflow-optimizer/SKILL.md +467 -0
  197. package/assets/launchd/com.walwal.harness-wake.plist.template +1 -1
  198. package/assets/templates/company-pipeline-manifest.json +71 -0
  199. package/assets/templates/config.json +40 -2
  200. package/bin/init.js +208 -109
  201. package/commands/goal.md +25 -0
  202. package/commands/hot-fix.md +25 -0
  203. package/commands/play-harness.md +22 -0
  204. package/commands/release-harness.md +22 -0
  205. package/commands/stop-harness.md +21 -0
  206. package/conventions/README.md +14 -88
  207. package/conventions/brick-office.md +5 -0
  208. package/conventions/cdo.md +6 -0
  209. package/conventions/ceo.md +9 -0
  210. package/conventions/coo.md +6 -0
  211. package/conventions/cqo.md +6 -23
  212. package/conventions/cto.md +5 -23
  213. package/conventions/hiring.md +7 -0
  214. package/conventions/ops.md +9 -0
  215. package/conventions/resource-manager.md +6 -0
  216. package/conventions/shared.md +29 -40
  217. package/gotchas/README.md +14 -82
  218. package/gotchas/brick-office.md +9 -0
  219. package/gotchas/cdo.md +9 -0
  220. package/gotchas/ceo.md +9 -0
  221. package/gotchas/coo.md +9 -0
  222. package/gotchas/cqo.md +6 -19
  223. package/gotchas/cto.md +6 -19
  224. package/gotchas/hiring.md +9 -0
  225. package/gotchas/ops.md +17 -0
  226. package/gotchas/resource-manager.md +9 -0
  227. package/gotchas/shared.md +13 -0
  228. package/package.json +11 -17
  229. package/scripts/conductor-tick.sh +97 -4
  230. package/scripts/harness-hourly-review.sh +284 -5
  231. package/scripts/harness-parity-audit.sh +101 -0
  232. package/scripts/harness-queue-manager.sh +1 -1
  233. package/scripts/harness-runtime-stop.sh +58 -0
  234. package/scripts/harness-service-ops-monitor.sh +207 -18
  235. package/scripts/harness-stop.sh +18 -0
  236. package/scripts/harness-wake-install.sh +1 -0
  237. package/scripts/harness-wake.sh +100 -8
  238. package/scripts/harness-worker-dispatch.sh +52 -21
  239. package/scripts/harness-worker-evidence-validate.sh +59 -0
  240. package/scripts/import-agency-agents.js +102 -0
  241. package/scripts/lib/harness-agent-resolver.sh +127 -0
  242. package/scripts/play.sh +104 -0
  243. package/scripts/release.sh +89 -0
  244. package/conventions/conductor.md +0 -24
  245. package/conventions/coo-developer.md +0 -24
  246. package/conventions/dispatcher.md +0 -24
  247. package/conventions/documentationer.md +0 -24
  248. package/conventions/evaluator-architecture.md +0 -24
  249. package/conventions/evaluator-code-quality.md +0 -24
  250. package/conventions/evaluator-functional.md +0 -24
  251. package/conventions/evaluator-security.md +0 -24
  252. package/conventions/evaluator-visual.md +0 -24
  253. package/conventions/generator-backend.md +0 -24
  254. package/conventions/generator-designer.md +0 -24
  255. package/conventions/generator-devops.md +0 -24
  256. package/conventions/generator-frontend.md +0 -24
  257. package/conventions/meeting-manager.md +0 -24
  258. package/conventions/planner.md +0 -24
  259. package/conventions/service-ops.md +0 -24
  260. package/gotchas/conductor.md +0 -38
  261. package/gotchas/coo-developer.md +0 -22
  262. package/gotchas/dispatcher.md +0 -38
  263. package/gotchas/documentationer.md +0 -22
  264. package/gotchas/evaluator-architecture.md +0 -22
  265. package/gotchas/evaluator-code-quality.md +0 -22
  266. package/gotchas/evaluator-functional.md +0 -22
  267. package/gotchas/evaluator-security.md +0 -22
  268. package/gotchas/evaluator-visual.md +0 -22
  269. package/gotchas/generator-backend-laravel.md +0 -19
  270. package/gotchas/generator-backend.md +0 -22
  271. package/gotchas/generator-designer.md +0 -22
  272. package/gotchas/generator-devops.md +0 -22
  273. package/gotchas/generator-frontend.md +0 -22
  274. package/gotchas/meeting-manager.md +0 -30
  275. package/gotchas/planner.md +0 -22
  276. package/gotchas/service-ops.md +0 -30
  277. package/skills/_shared/dynamic-registration.md +0 -120
  278. package/skills/brainstorming/SKILL.md +0 -220
  279. package/skills/brainstorming/references/attribution.md +0 -109
  280. package/skills/brainstorming/references/spec-document-reviewer-prompt.md +0 -49
  281. package/skills/brainstorming/references/visual-companion.md +0 -287
  282. package/skills/brainstorming/scripts/frame-template.html +0 -214
  283. package/skills/brainstorming/scripts/helper.js +0 -88
  284. package/skills/brainstorming/scripts/server.cjs +0 -354
  285. package/skills/brainstorming/scripts/start-server.sh +0 -148
  286. package/skills/brainstorming/scripts/stop-server.sh +0 -56
  287. package/skills/conductor/SKILL.md +0 -336
  288. package/skills/coo-developer/SKILL.md +0 -72
  289. package/skills/cqo/SKILL.md +0 -146
  290. package/skills/cto/SKILL.md +0 -141
  291. package/skills/dispatcher/SKILL.md +0 -298
  292. package/skills/dispatcher/persona-ceo.md +0 -169
  293. package/skills/dispatcher/references/convention-flow.md +0 -111
  294. package/skills/dispatcher/references/gotcha-flow.md +0 -79
  295. package/skills/dispatcher/references/initialization.md +0 -53
  296. package/skills/dispatcher/references/pipeline-definitions.md +0 -151
  297. package/skills/documentationer/SKILL.md +0 -92
  298. package/skills/evaluator-architecture/SKILL.md +0 -173
  299. package/skills/evaluator-code-quality/SKILL.md +0 -218
  300. package/skills/evaluator-code-quality/references/scoring-rubric.md +0 -104
  301. package/skills/evaluator-functional/SKILL.md +0 -271
  302. package/skills/evaluator-functional/references/ia-compliance.md +0 -37
  303. package/skills/evaluator-functional/references/playwright-tools.md +0 -43
  304. package/skills/evaluator-functional/references/scoring-rubric.md +0 -52
  305. package/skills/evaluator-security/SKILL.md +0 -172
  306. package/skills/evaluator-visual/SKILL.md +0 -165
  307. package/skills/evaluator-visual/references/responsive-checklist.md +0 -44
  308. package/skills/evaluator-visual/references/scoring-rubric.md +0 -59
  309. package/skills/generator-backend/SKILL.md +0 -153
  310. package/skills/generator-backend/references/nestjs-msa-patterns.md +0 -69
  311. package/skills/generator-backend/references/sprint-contract-be.md +0 -32
  312. package/skills/generator-designer/SKILL.md +0 -219
  313. package/skills/generator-devops/SKILL.md +0 -201
  314. package/skills/generator-frontend/SKILL.md +0 -155
  315. package/skills/generator-frontend/references/_web-react-legacy/ai-forbidden-patterns.md +0 -89
  316. package/skills/generator-frontend/references/_web-react-legacy/component-patterns.md +0 -52
  317. package/skills/generator-frontend/references/_web-react-legacy/design-system-rules.md +0 -139
  318. package/skills/generator-frontend/references/_web-react-legacy/vercel-best-practices.md +0 -54
  319. package/skills/meeting-manager/SKILL.md +0 -419
  320. package/skills/planner/SKILL.md +0 -243
  321. package/skills/planner/hr-onboard.md +0 -134
  322. package/skills/planner/hr-recruit.md +0 -99
  323. package/skills/planner/persona-coo-hr.md +0 -182
  324. package/skills/planner/references/api-contract-schema.md +0 -34
  325. package/skills/planner/references/fe-stack-detection.md +0 -164
  326. package/skills/planner/references/ia-map-guide.md +0 -31
  327. package/skills/planner/references/plan-template.md +0 -51
  328. package/skills/service-ops/SKILL.md +0 -295
@@ -1,165 +0,0 @@
1
- ---
2
- name: harness-evaluator-visual
3
- description: "하네스 Visual Evaluator. Playwright MCP로 스크린샷, 반응형 검증, 접근성 트리 분석, AI슬롭 감지를 수행한다. Evaluator-Functional이 PASS한 후에만 실행. 기준 미달 = FAIL → Generator-Frontend 재작업."
4
- disable-model-invocation: false
5
- ---
6
-
7
- # Evaluator-Visual — Design & Accessibility
8
-
9
- ## progress.json 업데이트 규칙 (v5.6.3+)
10
-
11
- ⚠️ **절대로 progress.json 을 통째로 재작성하지 마라**. `Write` 도구로 전체 파일을
12
- 덮어쓰면 `mode` / `company_state` / 기타 top-level 필드가 누락되어 회사모드 병렬 루프가
13
- 끊기는 등 런타임 오류가 발생한다.
14
-
15
- **올바른 방법** — 반드시 partial update 로 갱신:
16
-
17
- ```bash
18
- # 헬퍼 스크립트 (권장)
19
- bash scripts/harness-progress-set.sh . '.current_agent = "planner" | .agent_status = "running"'
20
-
21
- # 또는 직접 jq 로 partial update
22
- jq '.agent_status = "completed" | .completed_agents += ["planner"]' .harness/progress.json > .harness/progress.json.tmp && mv .harness/progress.json.tmp .harness/progress.json
23
- ```
24
-
25
- 위 두 방식은 파일의 나머지 필드를 보존한다. Read → 수정 → Write 패턴은 사용 금지.
26
-
27
- ## Session Boundary Protocol
28
-
29
- ### On Start
30
- 1. `.harness/progress.json` 읽기 — `next_agent`가 `"evaluator-visual"`인지 확인
31
- 2. progress.json 업데이트: `current_agent` → `"evaluator-visual"`, `agent_status` → `"running"`, `updated_at` 갱신
32
-
33
- ### On Complete (PASS)
34
- 1. **Screenshot Cleanup** — 이번 평가에서 `browser_take_screenshot` 으로 생성한 모든 PNG/JPEG 파일 삭제:
35
- ```bash
36
- find . -maxdepth 3 \( -name "screenshot*.png" -o -name "screenshot*.jpg" -o -name "playwright-*.png" \) -newer .harness/progress.json -delete 2>/dev/null
37
- ```
38
- 판정 증거는 `evaluation-visual.md` 에 텍스트로 기술 — 파일은 남기지 않는다.
39
- 2. progress.json 업데이트:
40
- - `agent_status` → `"completed"`
41
- - `completed_agents`에 `"evaluator-visual"` 추가
42
- - `next_agent` → `"archive"`
43
- - `failure` 필드 초기화
44
- 3. `feature-list.json`의 통과 feature `passes`에 `"evaluator-visual"` 추가
45
- 4. `.harness/progress.log`에 PASS 요약 추가
46
- 5. 출력: `"✓ Evaluator-Visual PASS. 자동 핸드오프 (Conductor 자율 시동) (아카이브)."`
47
- 6. **즉시 내부 핸드오프 (scripts/harness-next.sh) 를 호출하여 아카이브 단계로 자동 핸드오프** (회사모드 내부 핸드오프).
48
-
49
- ### On Fail
50
- 1. **Screenshot Cleanup** — PASS 와 동일하게 스크린샷 파일 삭제 (FAIL 시에도 정리 필수).
51
- 2. progress.json 업데이트:
52
- - `agent_status` → `"failed"`
53
- - `failure.agent` → `"evaluator-visual"`
54
- - `failure.location` → `"frontend"` (비주얼 = 항상 프론트)
55
- - `failure.message` → 실패 요약 (1줄)
56
- - `failure.retry_target` → `"generator-frontend"`
57
- - `next_agent` → `"generator-frontend"`
58
- - `sprint.retry_count` 증가
59
- 3. `sprint.retry_count >= 10`이면 `agent_status` → `"blocked"`, 사용자 개입 요청
60
- 4. `.harness/progress.log`에 FAIL 요약 추가
61
- 5. 출력: `"✖ Evaluator-Visual FAIL. 자동 핸드오프 (Conductor 자율 시동) (재작업 대상으로 라우팅)."`
62
- 6. **즉시 내부 핸드오프 (scripts/harness-next.sh) 를 호출하여 `failure.retry_target` 으로 자동 핸드오프** (회사모드 내부 핸드오프).
63
-
64
- ## FE Playwright Mandatory Rule (v5.4)
65
-
66
- **웹 렌더링 가능한 FE Feature에 대해서는 Playwright MCP 사용이 강제**된다 (`validation.visual.enabled == true` 또는 전통 웹 스택).
67
-
68
- - 필수 호출: `mcp__playwright__browser_navigate` + `mcp__playwright__browser_take_screenshot` (AC당 최소 1장) + 레이아웃/반응형 검증을 위한 `browser_resize`.
69
- - 접근성: `browser_snapshot`으로 accessibility tree 확보 후 axe-core 평가 연결.
70
- - **금지**: 스크린샷/스냅샷 없이 "코드만 봐서 OK" 처리.
71
- - `evaluation-visual.md`에 사용한 playwright 도구 이름과 뷰포트/URL을 명시. 도구 호출 증거 없으면 해당 기준 자동 0점.
72
- - `validation.visual.enabled == false`인 네이티브 스택은 Visual Skip Flow 적용 (예외).
73
-
74
- ## Startup
75
-
76
- 1. `AGENTS.md` 읽기
77
- 2. `CONVENTIONS.md` (루트) 읽기 — 프로젝트 최상위 원칙 (있을 때만)
78
- 3. `.harness/conventions/shared.md` + `.harness/conventions/evaluator-visual.md` — **긍정 하우스 스타일 적용**
79
- 4. `.harness/gotchas/evaluator-visual.md` 읽기 — **과거 실수 반복 금지**
80
- 5. `.harness/memory.md` 읽기 — **프로젝트 공유 학습 규칙 적용**
81
- 6. `actions/evaluation-functional.md` — Verdict: PASS 확인
82
- 7. **Stack-Adaptive Gate** (v5.2) — `scan-result.json.tech_stack` 으로 스택 확인 후 `.harness/ref/fe-<stack>.md` 의 `validation.visual` 파싱:
83
- - `visual.enabled == false`: 즉시 **MANUAL_REQUIRED 모드** 로 전환 — 아래 "Visual Skip Flow" 수행 후 종료
84
- - `visual.enabled == true` (또는 ref-docs 없이 웹 전통 스택): 계속 진행, ref 에 `visual.base_url` 이 있으면 그 URL 로, 없으면 `ref.runner.dev_command` 로 서버 기동 후 Playwright 접속
85
-
86
- ## Visual Skip Flow (네이티브 앱 / 비-브라우저 스택)
87
-
88
- `validation.visual.enabled == false` (예: Swift macOS, Flutter mobile, CLI 앱) 인 경우:
89
-
90
- 1. Playwright 스크린샷·axe-core·AI슬롭 감지 **전부 skip**
91
- 2. `.harness/actions/evaluation-visual.md` 에 다음을 기록:
92
- ```
93
- VERDICT: MANUAL_REQUIRED
94
- STACK: <stack>
95
- REASON: {ref.validation.visual.reason}
96
- MANUAL_CHECK: {ref.validation.visual.manual_check}
97
- ```
98
- 3. progress.json: `agent_status = "completed"`, `next_agent = "archive"` (PASS 경로와 동일 라우팅)
99
- 4. `progress.log` 에 `"visual skipped (manual required)"` 이벤트 기록
100
- 5. 사용자에게 `manual_check` 문자열 출력 + 확인 요청
101
-
102
- ## Evaluation Steps
103
-
104
- 1. **Full Page Capture** — 모든 라우트 Desktop 스크린샷
105
- 2. **Responsive Check** — 375px / 768px / 1280px 3 breakpoint
106
- 3. **Design Consistency** — 색상, 타이포, 간격, 모서리 통일성
107
- 4. **AI Slop Detection** — 감점 패턴 감지
108
- 5. **Accessibility** — 시맨틱 HTML, 키보드 네비게이션, 색상 대비
109
-
110
- 반응형 체크리스트 → [참조](references/responsive-checklist.md)
111
- 채점 기준 → [스코어링 루브릭](references/scoring-rubric.md)
112
-
113
- ## Scoring
114
-
115
- | 차원 | 가중치 | 하드 임계값 |
116
- |------|--------|------------|
117
- | Design Consistency | 30% | 6/10 |
118
- | Responsiveness | 25% | 7/10 |
119
- | Accessibility | 25% | 6/10 |
120
- | Originality | 20% | 5/10 |
121
-
122
- **어떤 차원이든 하드 임계값 미달 → FAIL**
123
-
124
- ## Auto Gotcha Registration — v5.7.1+
125
-
126
- **필수 emission**: `actions/evaluation-visual.md` 끝부분에 `gotcha_candidates` JSON 블록을 반드시 포함 (후보 없으면 `[]`). `harness-next.sh` 가 Evaluator 완료 직후 이 블록을 스캔해 자동 등록한다.
127
-
128
- ````
129
- ```gotcha_candidates
130
- [
131
- {
132
- "target": "generator-frontend",
133
- "rule_id": "fe-contrast-fail",
134
- "title": "텍스트 대비 WCAG AA 미달",
135
- "wrong": "버튼 #888 on #aaa — 3.0:1 (AA 4.5:1 미만)",
136
- "right": "primary 버튼은 body 컬러 대비 4.5:1 이상 보장. Tailwind tokens 활용.",
137
- "why": "접근성은 Evaluator-Visual 하드 임계",
138
- "scope": "모든 인터랙티브 엘리먼트",
139
- "source": "evaluator-visual:F-004"
140
- }
141
- ]
142
- ```
143
- ````
144
-
145
- 등록 규칙:
146
- - `target`: 실수를 반복할 대상 에이전트 (일반적으로 `generator-frontend`, 디자인 토큰 결함은 `planner`).
147
- - `rule_id`: dedup 키.
148
- - 신규 항목은 `Status: unverified`. Planner 리뷰 후 `verified` 승격.
149
- - **FAIL 시**: 실패 근본 원인 1건 이상 반드시 등록.
150
- - **PASS 시**: 감지된 경미한 디자인 편차가 있으면 등록 (반복 방지).
151
-
152
- ## After Evaluation
153
-
154
- - **PASS** → Session Boundary Protocol On Complete (PASS) 실행
155
- - **FAIL** → Session Boundary Protocol On Fail 실행
156
-
157
- ## ⚠ MANDATORY — 동적 Gotcha / Convention 등록
158
-
159
- evaluation-visual.md 의 끝에 **반드시 `gotcha_candidates` 와 `convention_candidates` fenced JSON 블록**을 작성한다 (비어 있으면 `[]`). harness-next.sh / Team Lead 가 자동 스캔하여 `.harness/gotchas/` `.harness/conventions/` 에 dedup append.
160
-
161
- **Visual eval 특화 검출 대상**:
162
- - 콘솔 에러/Hydration mismatch → `gotcha_candidates` (target=generator-frontend)
163
- - 디자인 토큰 불일치, 일관된 spacing/font 룰 → `convention_candidates` (scope=generator-frontend)
164
-
165
- 상세 스키마 / 예시 / 필수 필드 → [공통 가이드 — dynamic-registration](../_shared/dynamic-registration.md)
@@ -1,44 +0,0 @@
1
- # Responsive Checklist
2
-
3
- ## Breakpoints
4
-
5
- | Breakpoint | Size | 검증 항목 |
6
- |------------|------|----------|
7
- | Mobile | 375x812 | 단일 컬럼, 터치 타겟 44px+, 햄버거 메뉴 |
8
- | Tablet | 768x1024 | 적응형 레이아웃, 사이드바 토글 |
9
- | Desktop | 1280x720 | 풀 레이아웃, 사이드바 상시 표시 |
10
-
11
- ## 검증 절차
12
-
13
- 각 breakpoint에서 모든 페이지:
14
- ```
15
- 1. browser_resize → 해당 크기
16
- 2. browser_take_screenshot → 캡처
17
- 3. browser_snapshot → 레이아웃 구조 확인
18
- ```
19
-
20
- ## 확인 항목
21
-
22
- - [ ] 콘텐츠 잘림 / 오버플로우 없음
23
- - [ ] 가로 스크롤 없음
24
- - [ ] 텍스트 가독성 (mobile 최소 14px)
25
- - [ ] 터치 타겟 크기 (mobile 44px+)
26
- - [ ] 네비게이션 접근성
27
-
28
- ## 키보드 네비게이션
29
-
30
- ```
31
- 1. browser_press_key → Tab (반복)
32
- 2. 포커스 이동 순서 논리적인지 확인
33
- 3. browser_press_key → Enter (인터랙티브 요소 활성화)
34
- 4. browser_press_key → Escape (모달 닫기)
35
- ```
36
-
37
- ## 접근성 트리 (browser_snapshot)
38
-
39
- 확인:
40
- - 시맨틱: button, nav, main, header, footer, form
41
- - heading 순서: h1 → h2 → h3 (건너뛰기 없음)
42
- - 인터랙티브 요소에 접근 가능한 이름
43
- - 이미지 alt 텍스트
44
- - 폼 label 연결
@@ -1,59 +0,0 @@
1
- # Scoring Rubric — Visual Evaluation
2
-
3
- ## 차원별 채점
4
-
5
- | 차원 | 가중치 | 하드 임계값 |
6
- |------|--------|------------|
7
- | Design Consistency | 30% | 6/10 |
8
- | Responsiveness | 25% | 7/10 |
9
- | Accessibility | 25% | 6/10 |
10
- | Originality | 20% | 5/10 |
11
-
12
- **어떤 차원이든 하드 임계값 미달 → FAIL**
13
-
14
- ## AI Slop 감점표
15
-
16
- | 패턴 | 감점 |
17
- |------|------|
18
- | 보라색/파란색 그라디언트 + 흰 카드 | -2 |
19
- | 과도한 box-shadow 남발 | -1 |
20
- | 기본 아이콘팩 무분별 사용 | -1 |
21
- | "Welcome to [AppName]" 히어로 | -1 |
22
- | 둥근 아바타 + 카드 그리드 | -1 |
23
- | 전체 fade-in 애니메이션 | -1 |
24
- | 과도한 보더/구분선 | -1 |
25
-
26
- ## evaluation-visual.md 출력 형식
27
-
28
- ```markdown
29
- # Visual Evaluation: Sprint [N]
30
-
31
- ## Date / Verdict / Attempt
32
-
33
- ## Responsive Check
34
- | Page | Mobile (375) | Tablet (768) | Desktop (1280) | Issues |
35
-
36
- ## Design Consistency
37
- - Color Palette: [통일/혼재]
38
- - Typography Scale: [일관/불일관]
39
- - Spacing System: [체계적/비체계적]
40
- - Border Radius: [통일/혼재]
41
-
42
- ## AI Slop Detection
43
- | Pattern | Found | Deduction |
44
- | **Total Deduction** | | **-X** |
45
-
46
- ## Accessibility
47
- - Semantic HTML: PASS/FAIL
48
- - Heading Order: PASS/FAIL
49
- - Keyboard Navigation: PASS/FAIL
50
- - Color Contrast: PASS/FAIL
51
- - Form Labels: PASS/FAIL
52
-
53
- ## Scores
54
- | Dimension | Score | Threshold | Status |
55
-
56
- ## Failures Detail
57
- ### [차원명]
58
- - Issue / Screenshot / Recommendation
59
- ```
@@ -1,153 +0,0 @@
1
- ---
2
- name: harness-generator-backend
3
- description: "하네스 Backend Generator. 스택 독립(adaptive) — scan-result.json 의 be_stack / language 에 따라 .harness/ref/be-<stack>.md 를 로드해 runner/paths/api/validation 을 따른다. 모든 BE 스택(FastAPI / Django / Go / Rails / Phoenix / Spring / Express 등) 대응."
4
- disable-model-invocation: false
5
- ---
6
-
7
- # Generator-Backend — Adaptive (Stack-Agnostic)
8
-
9
- ## progress.json 업데이트 규칙 (v5.6.3+)
10
-
11
- ⚠️ **절대로 progress.json 을 통째로 재작성하지 마라**. `Write` 도구로 전체 파일을
12
- 덮어쓰면 `mode` / `company_state` / 기타 top-level 필드가 누락되어 회사모드 병렬 루프가
13
- 끊기는 등 런타임 오류가 발생한다.
14
-
15
- **올바른 방법** — 반드시 partial update 로 갱신:
16
-
17
- ```bash
18
- # 헬퍼 스크립트 (권장)
19
- bash scripts/harness-progress-set.sh . '.current_agent = "planner" | .agent_status = "running"'
20
-
21
- # 또는 직접 jq 로 partial update
22
- jq '.agent_status = "completed" | .completed_agents += ["planner"]' .harness/progress.json > .harness/progress.json.tmp && mv .harness/progress.json.tmp .harness/progress.json
23
- ```
24
-
25
- 위 두 방식은 파일의 나머지 필드를 보존한다. Read → 수정 → Write 패턴은 사용 금지.
26
-
27
- ## Session Boundary Protocol
28
-
29
- ### On Start
30
- 1. `.harness/progress.json` 읽기 — `next_agent` 가 `"generator-backend"` 인지 확인
31
- 2. progress.json 업데이트: `current_agent` → `"generator-backend"`, `agent_status` → `"running"`, `updated_at` 갱신
32
- 3. `failure` 필드 확인 — retry 인 경우 평가 문서의 실패 사유 우선 읽기
33
-
34
- ### On Complete
35
- 1. progress.json 업데이트:
36
- - `agent_status` → `"completed"`
37
- - `completed_agents` 에 `"generator-backend"` 추가
38
- - `next_agent` → 파이프라인에 따라 (`"generator-frontend"` 또는 `"evaluator-functional"`)
39
- - `failure` 필드 초기화 (retry 성공 시)
40
- 2. `feature-list.json` 의 해당 feature `passes` 에 `"generator-backend"` 추가
41
- 3. `.harness/progress.log` 에 요약 추가
42
- 4. 출력: `"✓ Generator-Backend 완료. 자동 핸드오프 (Conductor 자율 시동)."`
43
- 5. **즉시 내부 핸드오프 (scripts/harness-next.sh) 를 호출하여 다음 에이전트로 자동 핸드오프** (회사모드 내부 핸드오프).
44
-
45
- ## Startup (Adaptive Loading)
46
-
47
- 1. `AGENTS.md` 읽기 — IA-MAP, 권한 확인
48
- 2. `CONVENTIONS.md` (루트) 읽기 — 프로젝트 최상위 원칙 (있을 때만)
49
- 3. **Conventions 로드** — 세 파일 모두 (있는 것만):
50
- - `.harness/conventions/shared.md` (모든 에이전트 공통)
51
- - `.harness/conventions/generator-backend.md` (BE 스코프)
52
- - `.harness/conventions/generator-backend-<stack>.md` (스택별, 선택)
53
- 4. `.harness/actions/scan-result.json` 읽기 → `tech_stack.backend` 또는 `tech_stack.language` 로 현재 스택 확정 (이하 `<stack>`)
54
- 5. **Ref-docs 로드** — `.harness/ref/be-<stack>.md`
55
- - 파일 없음 → STOP + 안내: `"ref-docs 가 없습니다. bash init.sh init 실행 또는 bash scripts/init-ref-docs.sh --claude-prompt --stack <stack> --role be . 실행하세요."`
56
- - frontmatter 파싱 실패 → 경고 출력 + 기본값으로 degrade
57
- 6. **Gotchas 로드** — 두 파일 모두 (있는 것만):
58
- - `.harness/gotchas/generator-backend.md` (공통)
59
- - `.harness/gotchas/generator-backend-<stack>.md` (스택별)
60
- 7. `.harness/memory.md` 읽기 — 프로젝트 공유 학습 규칙
61
- 8. `pwd` + `.harness/progress.json` + `git log --oneline -20`
62
- 9. `.harness/actions/api-contract.json` 읽기 — **이 계약이 유일한 BE 외부 인터페이스**
63
- 10. `.harness/actions/feature-list.json` — 지정된 `FEATURE_ID` 또는 `layer: "backend"` 필터
64
- 11. **DB / 외부 의존성 부트스트랩**:
65
- - `ref.runner.install_command` 가 있으면 1회 실행
66
- - `ref.runner.dev_command` 를 백그라운드 실행 (있는 경우)
67
-
68
- ## Feature-Level Company Worker
69
-
70
- Team Worker 가 호출할 때 프롬프트에 `FEATURE_ID` 가 지정된다. Feature branch 에서 단일 feature 만 구현.
71
-
72
- ## AGENTS.md — 읽기 전용
73
-
74
- `[BE]` + `→ Generator-Backend` 소유 경로만 쓰기 가능. 스택별 실제 소스 경로는 `ref.paths.source_roots` 가 권위 있는 출처 (예: FastAPI `app/`, Go `cmd/` + `internal/`, Rails `app/`).
75
-
76
- ## Sprint Workflow
77
-
78
- 1. **Sprint Contract BE 섹션 추가** — 엔드포인트 / DB 스키마 / 서비스 분할 / 성공 기준
79
- 2. **구현** — api-contract.json ↔ 해당 스택 타입 시스템 1:1 매핑
80
- 3. **Self-Verification** — `ref.validation.pre_eval_gate` 의 모든 명령 실행
81
- 4. **Handoff** → Evaluator-Functional (또는 Generator-Frontend, 파이프라인에 따라)
82
-
83
- ## 스택 치환 규칙 (Adaptive Core)
84
-
85
- 구현 시 **모든 스택 의존 값은 ref-docs 에서 치환**한다:
86
-
87
- | 치환 키 | 출처 | 예시 |
88
- |---------|------|------|
89
- | `<source_roots>` | `ref.paths.source_roots` | FastAPI: `app/` · Go: `cmd/`, `internal/` · Rails: `app/` |
90
- | `<test_roots>` | `ref.paths.test_roots` | FastAPI: `tests/` · Go: `_test.go` 동거 · Rails: `spec/` |
91
- | `<dev_command>` | `ref.runner.dev_command` | FastAPI: `uvicorn app.main:app` · Go: `go run ./cmd/server` |
92
- | `<api_base_url>` | `ref.api.base_url` | 로컬 개발 baseurl (ref-docs 참조) |
93
- | `<pre_eval_gate>` | `ref.validation.pre_eval_gate` | FastAPI: `[ruff, mypy, pytest]` · Go: `[go vet, go test ./...]` |
94
- | `<anti_patterns>` | `ref.validation.anti_pattern_rules` | 스택별 grep/lint 규칙 |
95
-
96
- api-contract.json 의 DTO 스키마는 해당 스택의 타입 표현(Pydantic / struct / class-validator / ActiveRecord 등)으로 직접 매핑한다.
97
-
98
- ## 서비스 간 통신 규칙
99
-
100
- - MSA 환경이면 서비스 간 **직접 DB 접근 금지** (메시지 큐 / 이벤트 / RPC 만)
101
- - 모놀리스 환경이면 modules/packages 경계 준수
102
- - 어느 쪽인지 `ref.paths.source_roots` 구조와 `ref` 본문의 "Architecture" 섹션으로 판단
103
-
104
- ## 핵심 규칙 (스택 무관)
105
-
106
- - api-contract.json 에 없는 엔드포인트 **구현 금지**
107
- - 로깅 / 에러 핸들링 / 트랜잭션 경계 필수
108
- - 보안: OWASP Top 10 (인증·인가·입력 검증·SQL Injection 등) 기본 준수
109
- - 테스트: `ref.validation.functional_tests` 에 나열된 명령이 전부 통과해야 PASS
110
-
111
- ## 금지 사항
112
-
113
- - **ref.paths.source_roots 밖의 프로덕션 코드 수정** (FE/HARNESS 영역 침범 금지)
114
- - api-contract.json 에 없는 엔드포인트 신설
115
- - `.harness/ref/` 직접 편집 (refresh 는 `bash init.sh refresh-ref` 경유)
116
- - 공통 `generator-backend.md` / 스택별 `generator-backend-<stack>.md` gotcha 에 적힌 실수 반복
117
-
118
- ## 디버깅 / Fallback
119
-
120
- - `ref-docs` 가 placeholder 상태 → 본격 구현 전에 `bash init.sh refresh-ref be <stack>` 으로 채우기 권고
121
- - `scan-result.json.tech_stack_confidence == "unknown"` → 사용자에게 객관식 + 자유입력 fallback 로 스택 확인 요청
122
-
123
- ## ⚠ MANDATORY — 동적 Gotcha / Convention 등록 (Generator 도 mandatory)
124
-
125
- 작업 완료 시 `.harness/actions/gen-report-{FEATURE_ID}.md` 를 작성하고 끝에 **`gotcha_candidates` 와 `convention_candidates` fenced JSON 블록 두 개**를 포함한다 (비어 있으면 `[]`). harness-next.sh / Team Lead 가 자동 스캔하여 `.harness/gotchas/` `.harness/conventions/` 에 dedup append.
126
-
127
- **Generator 가 등록해야 하는 패턴** (자기 발견):
128
- - 한 번 시도했다가 깨졌던 접근, 자체 fix 한 코드 실수 → `gotcha_candidates` (target=generator-backend, source="generator-backend:F-XXX")
129
- - 작업 중 적용한 일관된 코드 구조/패턴 (다른 feature 가 모방해야 할) → `convention_candidates` (scope=generator-backend)
130
-
131
- `gen-report-{FEATURE_ID}.md` 최소 형식:
132
- ```markdown
133
- # Generator-Backend Report — {FEATURE_ID}
134
-
135
- ## 변경 파일
136
- - ...
137
-
138
- ## 자체 게이트 결과
139
- - tsc: OK · eslint: 0 warn · jest: N/N
140
-
141
- ## 발견 패턴
142
- (짧은 설명)
143
-
144
- ```gotcha_candidates
145
- []
146
- ```
147
-
148
- ```convention_candidates
149
- []
150
- ```
151
- ```
152
-
153
- 상세 스키마 → [공통 가이드 — dynamic-registration](../_shared/dynamic-registration.md)
@@ -1,69 +0,0 @@
1
- # NestJS MSA Patterns
2
-
3
- ## 모노레포 구조
4
-
5
- ```
6
- apps/
7
- ├── gateway/ # API Gateway (port 3000)
8
- │ └── src/
9
- │ ├── main.ts # bootstrap, CORS
10
- │ ├── app.module.ts # ClientsModule 등록
11
- │ ├── controllers/ # HTTP → MessagePattern 변환
12
- │ └── guards/
13
- ├── service-[name]/ # Microservice (TCP)
14
- │ └── src/
15
- │ ├── main.ts # TCP bootstrap
16
- │ ├── [name].module.ts
17
- │ ├── [name].controller.ts # @MessagePattern 핸들러
18
- │ ├── [name].service.ts
19
- │ └── entities/
20
- └── web/ # (Frontend — 별도 에이전트)
21
-
22
- libs/
23
- ├── shared-dto/ # api-contract.json에서 파생
24
- ├── database/ # TypeORM/Prisma 설정
25
- └── common/ # 필터, 인터셉터, 가드
26
- ```
27
-
28
- ## 통합 러너 (package.json)
29
-
30
- ```json
31
- {
32
- "scripts": {
33
- "dev": "concurrently \"npm run start:gateway\" \"npm run start:service-a\"",
34
- "start:gateway": "nest start gateway --watch",
35
- "start:service-a": "nest start service-a --watch"
36
- }
37
- }
38
- ```
39
-
40
- ## Gateway ↔ Microservice 패턴
41
-
42
- ```typescript
43
- // apps/gateway/src/controllers/items.controller.ts
44
- @Controller('api/v1/items')
45
- export class ItemsController {
46
- constructor(@Inject('SERVICE_A') private readonly serviceA: ClientProxy) {}
47
-
48
- @Post()
49
- create(@Body() dto: CreateItemDto) {
50
- return this.serviceA.send({ cmd: 'create_item' }, dto);
51
- }
52
- }
53
-
54
- // apps/service-a/src/items.controller.ts
55
- @Controller()
56
- export class ItemsController {
57
- @MessagePattern({ cmd: 'create_item' })
58
- create(dto: CreateItemDto) {
59
- return this.service.create(dto);
60
- }
61
- }
62
- ```
63
-
64
- ## 규칙
65
-
66
- - Gateway = 라우팅 + 검증만, 비즈니스 로직은 서비스에서
67
- - 서비스 간 통신: `ClientProxy.send()` (요청-응답)
68
- - CORS: Gateway에서 `localhost:5173` 허용
69
- - 각 서비스 독립 기동 가능해야 함
@@ -1,32 +0,0 @@
1
- # Sprint Contract — Backend Section Template
2
-
3
- ```markdown
4
- ## Backend Scope
5
-
6
- ### Services Affected
7
- | Service | Port | Changes |
8
- |---------|------|---------|
9
- | gateway | 3000 | EP-XXX 라우팅 추가 |
10
- | service-a | 3001 | message_pattern 핸들러 추가 |
11
-
12
- ### Message Patterns
13
- | Pattern | From | To | Payload | Response |
14
- |---------|------|----|---------|----------|
15
- | create_item | gateway | service-a | CreateItemDto | ItemResponse |
16
-
17
- ### Database Schema Changes
18
- - Service-A DB: items (id, name, description, created_at, updated_at)
19
-
20
- ### Shared DTOs (libs/shared-dto)
21
- - CreateItemDto: { name: string, description?: string }
22
- - ItemResponse: { id: number, name: string, created_at: string }
23
-
24
- ### Success Criteria (Backend)
25
- 1. [ ] Gateway → POST /api/v1/items → service-a → 201
26
- 2. [ ] 유효성 검증 — 빈 name → 400
27
- 3. [ ] 서비스 간 TCP 통신 정상
28
- 4. [ ] Jest 통과
29
-
30
- ### Test Commands
31
- curl -X POST http://localhost:3000/api/v1/items -H "Content-Type: application/json" -d '{"name":"Test"}'
32
- ```