@walwal-harness/cli 6.1.6 → 7.1.1

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 (318) hide show
  1. package/HR-Resource/academic-academic-anthropologist/SKILL.md +142 -0
  2. package/HR-Resource/academic-academic-geographer/SKILL.md +144 -0
  3. package/HR-Resource/academic-academic-historian/SKILL.md +140 -0
  4. package/HR-Resource/academic-academic-narratologist/SKILL.md +135 -0
  5. package/HR-Resource/academic-academic-psychologist/SKILL.md +135 -0
  6. package/HR-Resource/brick-office/SKILL.md +20 -0
  7. package/HR-Resource/cdo/SKILL.md +33 -0
  8. package/HR-Resource/ceo/SKILL.md +47 -0
  9. package/HR-Resource/coo/SKILL.md +36 -0
  10. package/HR-Resource/cqo/SKILL.md +33 -0
  11. package/HR-Resource/cto/SKILL.md +36 -0
  12. package/HR-Resource/design-design-brand-guardian/SKILL.md +339 -0
  13. package/HR-Resource/design-design-image-prompt-engineer/SKILL.md +253 -0
  14. package/HR-Resource/design-design-inclusive-visuals-specialist/SKILL.md +88 -0
  15. package/HR-Resource/design-design-ui-designer/SKILL.md +400 -0
  16. package/HR-Resource/design-design-ux-architect/SKILL.md +486 -0
  17. package/HR-Resource/design-design-ux-researcher/SKILL.md +346 -0
  18. package/HR-Resource/design-design-visual-storyteller/SKILL.md +166 -0
  19. package/HR-Resource/design-design-whimsy-injector/SKILL.md +455 -0
  20. package/HR-Resource/engineering-engineering-ai-data-remediation-engineer/SKILL.md +227 -0
  21. package/HR-Resource/engineering-engineering-ai-engineer/SKILL.md +163 -0
  22. package/HR-Resource/engineering-engineering-autonomous-optimization-architect/SKILL.md +124 -0
  23. package/HR-Resource/engineering-engineering-backend-architect/SKILL.md +252 -0
  24. package/HR-Resource/engineering-engineering-cms-developer/SKILL.md +553 -0
  25. package/HR-Resource/engineering-engineering-code-reviewer/SKILL.md +93 -0
  26. package/HR-Resource/engineering-engineering-codebase-onboarding-engineer/SKILL.md +190 -0
  27. package/HR-Resource/engineering-engineering-data-engineer/SKILL.md +323 -0
  28. package/HR-Resource/engineering-engineering-database-optimizer/SKILL.md +193 -0
  29. package/HR-Resource/engineering-engineering-devops-automator/SKILL.md +393 -0
  30. package/HR-Resource/engineering-engineering-email-intelligence-engineer/SKILL.md +370 -0
  31. package/HR-Resource/engineering-engineering-embedded-firmware-engineer/SKILL.md +190 -0
  32. package/HR-Resource/engineering-engineering-feishu-integration-developer/SKILL.md +615 -0
  33. package/HR-Resource/engineering-engineering-filament-optimization-specialist/SKILL.md +300 -0
  34. package/HR-Resource/engineering-engineering-frontend-developer/SKILL.md +242 -0
  35. package/HR-Resource/engineering-engineering-git-workflow-master/SKILL.md +101 -0
  36. package/HR-Resource/engineering-engineering-incident-response-commander/SKILL.md +461 -0
  37. package/HR-Resource/engineering-engineering-minimal-change-engineer/SKILL.md +224 -0
  38. package/HR-Resource/engineering-engineering-mobile-app-builder/SKILL.md +510 -0
  39. package/HR-Resource/engineering-engineering-rapid-prototyper/SKILL.md +479 -0
  40. package/HR-Resource/engineering-engineering-security-engineer/SKILL.md +321 -0
  41. package/HR-Resource/engineering-engineering-senior-developer/SKILL.md +193 -0
  42. package/HR-Resource/engineering-engineering-software-architect/SKILL.md +98 -0
  43. package/HR-Resource/engineering-engineering-solidity-smart-contract-engineer/SKILL.md +539 -0
  44. package/HR-Resource/engineering-engineering-sre/SKILL.md +107 -0
  45. package/HR-Resource/engineering-engineering-technical-writer/SKILL.md +410 -0
  46. package/HR-Resource/engineering-engineering-threat-detection-engineer/SKILL.md +551 -0
  47. package/HR-Resource/engineering-engineering-voice-ai-integration-engineer/SKILL.md +578 -0
  48. package/HR-Resource/engineering-engineering-wechat-mini-program-developer/SKILL.md +367 -0
  49. package/HR-Resource/finance-finance-bookkeeper-controller/SKILL.md +277 -0
  50. package/HR-Resource/finance-finance-financial-analyst/SKILL.md +251 -0
  51. package/HR-Resource/finance-finance-fpa-analyst/SKILL.md +280 -0
  52. package/HR-Resource/finance-finance-investment-researcher/SKILL.md +289 -0
  53. package/HR-Resource/finance-finance-tax-strategist/SKILL.md +256 -0
  54. package/HR-Resource/game-development-blender-blender-addon-engineer/SKILL.md +251 -0
  55. package/HR-Resource/game-development-game-audio-engineer/SKILL.md +281 -0
  56. package/HR-Resource/game-development-game-designer/SKILL.md +184 -0
  57. package/HR-Resource/game-development-godot-godot-gameplay-scripter/SKILL.md +351 -0
  58. package/HR-Resource/game-development-godot-godot-multiplayer-engineer/SKILL.md +314 -0
  59. package/HR-Resource/game-development-godot-godot-shader-developer/SKILL.md +283 -0
  60. package/HR-Resource/game-development-level-designer/SKILL.md +225 -0
  61. package/HR-Resource/game-development-narrative-designer/SKILL.md +260 -0
  62. package/HR-Resource/game-development-roblox-studio-roblox-avatar-creator/SKILL.md +314 -0
  63. package/HR-Resource/game-development-roblox-studio-roblox-experience-designer/SKILL.md +322 -0
  64. package/HR-Resource/game-development-roblox-studio-roblox-systems-scripter/SKILL.md +342 -0
  65. package/HR-Resource/game-development-technical-artist/SKILL.md +246 -0
  66. package/HR-Resource/game-development-unity-unity-architect/SKILL.md +288 -0
  67. package/HR-Resource/game-development-unity-unity-editor-tool-developer/SKILL.md +327 -0
  68. package/HR-Resource/game-development-unity-unity-multiplayer-engineer/SKILL.md +338 -0
  69. package/HR-Resource/game-development-unity-unity-shader-graph-artist/SKILL.md +286 -0
  70. package/HR-Resource/game-development-unreal-engine-unreal-multiplayer-architect/SKILL.md +330 -0
  71. package/HR-Resource/game-development-unreal-engine-unreal-systems-engineer/SKILL.md +327 -0
  72. package/HR-Resource/game-development-unreal-engine-unreal-technical-artist/SKILL.md +273 -0
  73. package/HR-Resource/game-development-unreal-engine-unreal-world-builder/SKILL.md +290 -0
  74. package/HR-Resource/hiring/SKILL.md +28 -0
  75. package/HR-Resource/index.json +747 -0
  76. package/HR-Resource/integrations-mcp-memory-backend-architect-with-memory/SKILL.md +264 -0
  77. package/HR-Resource/marketing-marketing-agentic-search-optimizer/SKILL.md +328 -0
  78. package/HR-Resource/marketing-marketing-ai-citation-strategist/SKILL.md +187 -0
  79. package/HR-Resource/marketing-marketing-app-store-optimizer/SKILL.md +338 -0
  80. package/HR-Resource/marketing-marketing-baidu-seo-specialist/SKILL.md +243 -0
  81. package/HR-Resource/marketing-marketing-bilibili-content-strategist/SKILL.md +216 -0
  82. package/HR-Resource/marketing-marketing-book-co-author/SKILL.md +127 -0
  83. package/HR-Resource/marketing-marketing-carousel-growth-engine/SKILL.md +216 -0
  84. package/HR-Resource/marketing-marketing-china-ecommerce-operator/SKILL.md +300 -0
  85. package/HR-Resource/marketing-marketing-china-market-localization-strategist/SKILL.md +300 -0
  86. package/HR-Resource/marketing-marketing-content-creator/SKILL.md +71 -0
  87. package/HR-Resource/marketing-marketing-cross-border-ecommerce/SKILL.md +276 -0
  88. package/HR-Resource/marketing-marketing-douyin-strategist/SKILL.md +166 -0
  89. package/HR-Resource/marketing-marketing-growth-hacker/SKILL.md +71 -0
  90. package/HR-Resource/marketing-marketing-instagram-curator/SKILL.md +130 -0
  91. package/HR-Resource/marketing-marketing-kuaishou-strategist/SKILL.md +240 -0
  92. package/HR-Resource/marketing-marketing-linkedin-content-creator/SKILL.md +230 -0
  93. package/HR-Resource/marketing-marketing-livestream-commerce-coach/SKILL.md +322 -0
  94. package/HR-Resource/marketing-marketing-podcast-strategist/SKILL.md +294 -0
  95. package/HR-Resource/marketing-marketing-private-domain-operator/SKILL.md +325 -0
  96. package/HR-Resource/marketing-marketing-reddit-community-builder/SKILL.md +140 -0
  97. package/HR-Resource/marketing-marketing-seo-specialist/SKILL.md +338 -0
  98. package/HR-Resource/marketing-marketing-short-video-editing-coach/SKILL.md +429 -0
  99. package/HR-Resource/marketing-marketing-social-media-strategist/SKILL.md +142 -0
  100. package/HR-Resource/marketing-marketing-tiktok-strategist/SKILL.md +142 -0
  101. package/HR-Resource/marketing-marketing-twitter-engager/SKILL.md +143 -0
  102. package/HR-Resource/marketing-marketing-video-optimization-specialist/SKILL.md +136 -0
  103. package/HR-Resource/marketing-marketing-wechat-official-account/SKILL.md +162 -0
  104. package/HR-Resource/marketing-marketing-weibo-strategist/SKILL.md +257 -0
  105. package/HR-Resource/marketing-marketing-xiaohongshu-specialist/SKILL.md +155 -0
  106. package/HR-Resource/marketing-marketing-zhihu-strategist/SKILL.md +179 -0
  107. package/HR-Resource/ops/SKILL.md +46 -0
  108. package/HR-Resource/paid-media-paid-media-auditor/SKILL.md +88 -0
  109. package/HR-Resource/paid-media-paid-media-creative-strategist/SKILL.md +88 -0
  110. package/HR-Resource/paid-media-paid-media-paid-social-strategist/SKILL.md +88 -0
  111. package/HR-Resource/paid-media-paid-media-ppc-strategist/SKILL.md +88 -0
  112. package/HR-Resource/paid-media-paid-media-programmatic-buyer/SKILL.md +88 -0
  113. package/HR-Resource/paid-media-paid-media-search-query-analyst/SKILL.md +88 -0
  114. package/HR-Resource/paid-media-paid-media-tracking-specialist/SKILL.md +88 -0
  115. package/HR-Resource/product-product-behavioral-nudge-engine/SKILL.md +97 -0
  116. package/HR-Resource/product-product-feedback-synthesizer/SKILL.md +136 -0
  117. package/HR-Resource/product-product-manager/SKILL.md +486 -0
  118. package/HR-Resource/product-product-sprint-prioritizer/SKILL.md +171 -0
  119. package/HR-Resource/product-product-trend-researcher/SKILL.md +176 -0
  120. package/HR-Resource/project-management-project-management-experiment-tracker/SKILL.md +215 -0
  121. package/HR-Resource/project-management-project-management-jira-workflow-steward/SKILL.md +247 -0
  122. package/HR-Resource/project-management-project-management-project-shepherd/SKILL.md +211 -0
  123. package/HR-Resource/project-management-project-management-studio-operations/SKILL.md +217 -0
  124. package/HR-Resource/project-management-project-management-studio-producer/SKILL.md +220 -0
  125. package/HR-Resource/project-management-project-manager-senior/SKILL.md +152 -0
  126. package/HR-Resource/resource-manager/SKILL.md +23 -0
  127. package/HR-Resource/sales-sales-account-strategist/SKILL.md +244 -0
  128. package/HR-Resource/sales-sales-coach/SKILL.md +288 -0
  129. package/HR-Resource/sales-sales-deal-strategist/SKILL.md +197 -0
  130. package/HR-Resource/sales-sales-discovery-coach/SKILL.md +242 -0
  131. package/HR-Resource/sales-sales-engineer/SKILL.md +199 -0
  132. package/HR-Resource/sales-sales-outbound-strategist/SKILL.md +218 -0
  133. package/HR-Resource/sales-sales-pipeline-analyst/SKILL.md +284 -0
  134. package/HR-Resource/sales-sales-proposal-strategist/SKILL.md +234 -0
  135. package/HR-Resource/spatial-computing-macos-spatial-metal-engineer/SKILL.md +354 -0
  136. package/HR-Resource/spatial-computing-terminal-integration-specialist/SKILL.md +87 -0
  137. package/HR-Resource/spatial-computing-visionos-spatial-engineer/SKILL.md +71 -0
  138. package/HR-Resource/spatial-computing-xr-cockpit-interaction-specialist/SKILL.md +49 -0
  139. package/HR-Resource/spatial-computing-xr-immersive-developer/SKILL.md +49 -0
  140. package/HR-Resource/spatial-computing-xr-interface-architect/SKILL.md +49 -0
  141. package/HR-Resource/specialized-accounts-payable-agent/SKILL.md +202 -0
  142. package/HR-Resource/specialized-agentic-identity-trust/SKILL.md +404 -0
  143. package/HR-Resource/specialized-agents-orchestrator/SKILL.md +384 -0
  144. package/HR-Resource/specialized-automation-governance-architect/SKILL.md +233 -0
  145. package/HR-Resource/specialized-blockchain-security-auditor/SKILL.md +480 -0
  146. package/HR-Resource/specialized-compliance-auditor/SKILL.md +175 -0
  147. package/HR-Resource/specialized-corporate-training-designer/SKILL.md +209 -0
  148. package/HR-Resource/specialized-customer-service/SKILL.md +415 -0
  149. package/HR-Resource/specialized-data-consolidation-agent/SKILL.md +77 -0
  150. package/HR-Resource/specialized-government-digital-presales-consultant/SKILL.md +380 -0
  151. package/HR-Resource/specialized-healthcare-customer-service/SKILL.md +406 -0
  152. package/HR-Resource/specialized-healthcare-marketing-compliance/SKILL.md +412 -0
  153. package/HR-Resource/specialized-hospitality-guest-services/SKILL.md +620 -0
  154. package/HR-Resource/specialized-hr-onboarding/SKILL.md +468 -0
  155. package/HR-Resource/specialized-identity-graph-operator/SKILL.md +277 -0
  156. package/HR-Resource/specialized-language-translator/SKILL.md +281 -0
  157. package/HR-Resource/specialized-legal-billing-time-tracking/SKILL.md +586 -0
  158. package/HR-Resource/specialized-legal-client-intake/SKILL.md +509 -0
  159. package/HR-Resource/specialized-legal-document-review/SKILL.md +471 -0
  160. package/HR-Resource/specialized-loan-officer-assistant/SKILL.md +572 -0
  161. package/HR-Resource/specialized-lsp-index-engineer/SKILL.md +331 -0
  162. package/HR-Resource/specialized-real-estate-buyer-seller/SKILL.md +613 -0
  163. package/HR-Resource/specialized-recruitment-specialist/SKILL.md +526 -0
  164. package/HR-Resource/specialized-report-distribution-agent/SKILL.md +82 -0
  165. package/HR-Resource/specialized-retail-customer-returns/SKILL.md +583 -0
  166. package/HR-Resource/specialized-sales-data-extraction-agent/SKILL.md +84 -0
  167. package/HR-Resource/specialized-sales-outreach/SKILL.md +442 -0
  168. package/HR-Resource/specialized-specialized-chief-of-staff/SKILL.md +296 -0
  169. package/HR-Resource/specialized-specialized-civil-engineer/SKILL.md +373 -0
  170. package/HR-Resource/specialized-specialized-cultural-intelligence-strategist/SKILL.md +105 -0
  171. package/HR-Resource/specialized-specialized-developer-advocate/SKILL.md +334 -0
  172. package/HR-Resource/specialized-specialized-document-generator/SKILL.md +72 -0
  173. package/HR-Resource/specialized-specialized-french-consulting-market/SKILL.md +209 -0
  174. package/HR-Resource/specialized-specialized-korean-business-navigator/SKILL.md +233 -0
  175. package/HR-Resource/specialized-specialized-mcp-builder/SKILL.md +265 -0
  176. package/HR-Resource/specialized-specialized-model-qa/SKILL.md +505 -0
  177. package/HR-Resource/specialized-specialized-salesforce-architect/SKILL.md +197 -0
  178. package/HR-Resource/specialized-specialized-workflow-architect/SKILL.md +614 -0
  179. package/HR-Resource/specialized-study-abroad-advisor/SKILL.md +299 -0
  180. package/HR-Resource/specialized-supply-chain-strategist/SKILL.md +599 -0
  181. package/HR-Resource/specialized-zk-steward/SKILL.md +228 -0
  182. package/HR-Resource/support-support-analytics-reporter/SKILL.md +382 -0
  183. package/HR-Resource/support-support-executive-summary-generator/SKILL.md +229 -0
  184. package/HR-Resource/support-support-finance-tracker/SKILL.md +459 -0
  185. package/HR-Resource/support-support-infrastructure-maintainer/SKILL.md +635 -0
  186. package/HR-Resource/support-support-legal-compliance-checker/SKILL.md +605 -0
  187. package/HR-Resource/support-support-support-responder/SKILL.md +602 -0
  188. package/HR-Resource/testing-testing-accessibility-auditor/SKILL.md +333 -0
  189. package/HR-Resource/testing-testing-api-tester/SKILL.md +323 -0
  190. package/HR-Resource/testing-testing-evidence-collector/SKILL.md +227 -0
  191. package/HR-Resource/testing-testing-performance-benchmarker/SKILL.md +285 -0
  192. package/HR-Resource/testing-testing-reality-checker/SKILL.md +253 -0
  193. package/HR-Resource/testing-testing-test-results-analyzer/SKILL.md +322 -0
  194. package/HR-Resource/testing-testing-tool-evaluator/SKILL.md +411 -0
  195. package/HR-Resource/testing-testing-workflow-optimizer/SKILL.md +467 -0
  196. package/assets/templates/config.json +36 -2
  197. package/bin/init.js +292 -110
  198. package/commands/goal.md +25 -0
  199. package/commands/hot-fix.md +25 -0
  200. package/commands/play-harness.md +22 -0
  201. package/commands/release-harness.md +22 -0
  202. package/commands/stop-harness.md +21 -0
  203. package/conventions/README.md +14 -88
  204. package/conventions/brick-office.md +5 -0
  205. package/conventions/cdo.md +6 -0
  206. package/conventions/ceo.md +9 -0
  207. package/conventions/coo.md +6 -0
  208. package/conventions/cqo.md +6 -23
  209. package/conventions/cto.md +5 -23
  210. package/conventions/hiring.md +7 -0
  211. package/conventions/ops.md +9 -0
  212. package/conventions/resource-manager.md +6 -0
  213. package/conventions/shared.md +29 -58
  214. package/gotchas/README.md +14 -82
  215. package/gotchas/brick-office.md +9 -0
  216. package/gotchas/cdo.md +9 -0
  217. package/gotchas/ceo.md +9 -0
  218. package/gotchas/coo.md +9 -0
  219. package/gotchas/cqo.md +6 -19
  220. package/gotchas/cto.md +6 -19
  221. package/gotchas/hiring.md +9 -0
  222. package/gotchas/ops.md +17 -0
  223. package/gotchas/resource-manager.md +9 -0
  224. package/gotchas/shared.md +13 -0
  225. package/init.sh +208 -0
  226. package/package.json +12 -17
  227. package/scripts/harness-runtime-stop.sh +58 -0
  228. package/scripts/harness-service-ops-monitor.sh +160 -16
  229. package/scripts/harness-stop.sh +18 -0
  230. package/scripts/harness-worker-evidence-validate.sh +59 -0
  231. package/scripts/import-agency-agents.js +102 -0
  232. package/scripts/play.sh +104 -0
  233. package/scripts/release.sh +89 -0
  234. package/conventions/conductor.md +0 -24
  235. package/conventions/coo-developer.md +0 -24
  236. package/conventions/dispatcher.md +0 -24
  237. package/conventions/documentationer.md +0 -24
  238. package/conventions/evaluator-architecture.md +0 -24
  239. package/conventions/evaluator-code-quality.md +0 -24
  240. package/conventions/evaluator-functional.md +0 -24
  241. package/conventions/evaluator-security.md +0 -24
  242. package/conventions/evaluator-visual.md +0 -24
  243. package/conventions/generator-backend.md +0 -24
  244. package/conventions/generator-designer.md +0 -24
  245. package/conventions/generator-devops.md +0 -24
  246. package/conventions/generator-frontend.md +0 -24
  247. package/conventions/meeting-manager.md +0 -24
  248. package/conventions/planner.md +0 -24
  249. package/conventions/service-ops.md +0 -24
  250. package/gotchas/conductor.md +0 -38
  251. package/gotchas/coo-developer.md +0 -22
  252. package/gotchas/dispatcher.md +0 -38
  253. package/gotchas/documentationer.md +0 -22
  254. package/gotchas/evaluator-architecture.md +0 -22
  255. package/gotchas/evaluator-code-quality.md +0 -22
  256. package/gotchas/evaluator-functional.md +0 -22
  257. package/gotchas/evaluator-security.md +0 -22
  258. package/gotchas/evaluator-visual.md +0 -22
  259. package/gotchas/generator-backend-laravel.md +0 -19
  260. package/gotchas/generator-backend.md +0 -22
  261. package/gotchas/generator-designer.md +0 -22
  262. package/gotchas/generator-devops.md +0 -22
  263. package/gotchas/generator-frontend.md +0 -22
  264. package/gotchas/meeting-manager.md +0 -30
  265. package/gotchas/planner.md +0 -22
  266. package/gotchas/service-ops.md +0 -30
  267. package/skills/_shared/dynamic-registration.md +0 -120
  268. package/skills/brainstorming/SKILL.md +0 -220
  269. package/skills/brainstorming/references/attribution.md +0 -109
  270. package/skills/brainstorming/references/spec-document-reviewer-prompt.md +0 -49
  271. package/skills/brainstorming/references/visual-companion.md +0 -287
  272. package/skills/brainstorming/scripts/frame-template.html +0 -214
  273. package/skills/brainstorming/scripts/helper.js +0 -88
  274. package/skills/brainstorming/scripts/server.cjs +0 -354
  275. package/skills/brainstorming/scripts/start-server.sh +0 -148
  276. package/skills/brainstorming/scripts/stop-server.sh +0 -56
  277. package/skills/conductor/SKILL.md +0 -336
  278. package/skills/coo-developer/SKILL.md +0 -72
  279. package/skills/cqo/SKILL.md +0 -146
  280. package/skills/cto/SKILL.md +0 -141
  281. package/skills/dispatcher/SKILL.md +0 -298
  282. package/skills/dispatcher/persona-ceo.md +0 -169
  283. package/skills/dispatcher/references/convention-flow.md +0 -111
  284. package/skills/dispatcher/references/gotcha-flow.md +0 -79
  285. package/skills/dispatcher/references/initialization.md +0 -53
  286. package/skills/dispatcher/references/pipeline-definitions.md +0 -151
  287. package/skills/documentationer/SKILL.md +0 -92
  288. package/skills/evaluator-architecture/SKILL.md +0 -173
  289. package/skills/evaluator-code-quality/SKILL.md +0 -218
  290. package/skills/evaluator-code-quality/references/scoring-rubric.md +0 -104
  291. package/skills/evaluator-functional/SKILL.md +0 -271
  292. package/skills/evaluator-functional/references/ia-compliance.md +0 -37
  293. package/skills/evaluator-functional/references/playwright-tools.md +0 -43
  294. package/skills/evaluator-functional/references/scoring-rubric.md +0 -52
  295. package/skills/evaluator-security/SKILL.md +0 -172
  296. package/skills/evaluator-visual/SKILL.md +0 -165
  297. package/skills/evaluator-visual/references/responsive-checklist.md +0 -44
  298. package/skills/evaluator-visual/references/scoring-rubric.md +0 -59
  299. package/skills/generator-backend/SKILL.md +0 -153
  300. package/skills/generator-backend/references/nestjs-msa-patterns.md +0 -69
  301. package/skills/generator-backend/references/sprint-contract-be.md +0 -32
  302. package/skills/generator-designer/SKILL.md +0 -219
  303. package/skills/generator-devops/SKILL.md +0 -201
  304. package/skills/generator-frontend/SKILL.md +0 -155
  305. package/skills/generator-frontend/references/_web-react-legacy/ai-forbidden-patterns.md +0 -89
  306. package/skills/generator-frontend/references/_web-react-legacy/component-patterns.md +0 -52
  307. package/skills/generator-frontend/references/_web-react-legacy/design-system-rules.md +0 -139
  308. package/skills/generator-frontend/references/_web-react-legacy/vercel-best-practices.md +0 -54
  309. package/skills/meeting-manager/SKILL.md +0 -419
  310. package/skills/planner/SKILL.md +0 -243
  311. package/skills/planner/hr-onboard.md +0 -134
  312. package/skills/planner/hr-recruit.md +0 -99
  313. package/skills/planner/persona-coo-hr.md +0 -182
  314. package/skills/planner/references/api-contract-schema.md +0 -34
  315. package/skills/planner/references/fe-stack-detection.md +0 -164
  316. package/skills/planner/references/ia-map-guide.md +0 -31
  317. package/skills/planner/references/plan-template.md +0 -51
  318. package/skills/service-ops/SKILL.md +0 -295
@@ -1,419 +0,0 @@
1
- ---
2
- name: harness-meeting-manager
3
- description: "부서 간 동기화 엔진. Cron(Service-Ops)·Event(부서 발신)·Manual 트리거로 6종 회의(Standup/Sprint Review/Spec Review/Incident War Room/All-Hands/Followup Review)를 소집·집계·디스패치. parallel tracks fork-join 지원. 적응형 cadence(light 30m / normal 1h / heavy 4h). 트리거: '미팅 소집', 'meeting convene', 'standup', 'followup'."
4
- disable-model-invocation: false
5
- ---
6
-
7
- <!--
8
- Source attribution: https://github.com/msitarzewski/agency-agents (MIT)
9
- 이 스킬은 strategy/coordination/handoff-templates.md 의 Standup/Sprint/Phase-Gate
10
- 양식과 strategy/runbooks/scenario-incident-response.md 의 War Room 패턴을
11
- walwal-harness 의 부서 구조에 맞게 재해석함.
12
- -->
13
-
14
- # Meeting-Manager — 회의 소집·집계·디스패치
15
-
16
- > Conductor가 "일을 굴리는 손"이라면, Meeting-Manager는 "일이 옆길로 새지 않게 잡는 서기".
17
- > Dispatcher(CEO) 직속, Conductor와 평행.
18
-
19
- ## 0. Operating Cycle Doctrine (Inviolable)
20
-
21
- Meeting-Manager 는 회사를 sprint gate 로 멈추게 하지 않는다. 회의는 "다음 sprint 시작 승인"이 아니라 **현재 work package 결과 판정 + 다음 work package 자동 배정**이다.
22
-
23
- - **회의록 금지 표현**: "다음 sprint 에서 처리", "Sprint 2+ 부터", "Owner 가 다음 sprint 실행".
24
- - **회의록 표준 표현**: "backlog/queue 에 work package 등록", "Conductor 가 worker pool 에 자동 배정", "다음 cadence 에 followup-review".
25
- - **회의 결정**은 항상 `decision.owner`, `action_type`, `tracks[]`, `action_items[]` 중 하나로 실행 가능해야 한다. 단순한 "다음 sprint 계획"은 미완료 회의록으로 간주한다.
26
- - **정기 보고**는 `sprint-review` 대신 가능하면 `standup`, `followup-review`, `all-hands`, `incident-war-room` 의미로 작성한다. 레거시 enum 때문에 `sprint-review` 값을 읽더라도 Owner-facing 제목은 "Operating Review" 로 바꾼다.
27
-
28
- ## 1. 정체성
29
-
30
- - **위치**: Dispatcher 직속, Conductor 평행
31
- - **책임**: 회의 스케줄·소집·진행·기록·Action Item 디스패치
32
- - **권한**: 모든 부서에 prep 양식 발신, 회의록 작성·집계, queue enqueue (v5.9.6 재사용)
33
- - **금지**: 의사결정 직접 수행 (사회만 봄), Owner와 직접 대화 (escalation은 Dispatcher 경유)
34
- - **세션 시작 SoT**: `CONVENTIONS.md`, `.harness/conventions/shared.md`, `.harness/conventions/meeting-manager.md`, `.harness/gotchas/meeting-manager.md`, `.harness/memory.md` 를 먼저 읽고 회의 운영에 적용한다.
35
-
36
- ## 1.5 Executive Role Contract (Inviolable)
37
-
38
- 회의는 상태 리포트가 아니다. 회의록에는 반드시 각 임원이 자기 역할 관점에서 **입장(Position) · 근거(Evidence) · 다음 행동(Action)** 을 남겨야 한다.
39
-
40
- | Role | Identity | Must Decide | Must Not |
41
- |---|---|---|---|
42
- | Dispatcher/CEO | Owner와의 유일한 외부 창구, GOAL/사업 우선순위 책임자 | GOAL 흔들림 여부, Owner escalation 필요성 | 내부 해결 가능한 일을 Owner 대기로 끝내기 |
43
- | Planner/COO | GOAL을 work package/queue/가설로 바꾸는 운영 총괄 | planning_drift/goal_drift 여부, 다음 work package | "다음 sprint/Owner 결정 후" 같은 대기형 결론 |
44
- | CTO | 구현/아키텍처/runtime recovery 책임자 | implementation_drift, 복구/핫픽스/worker 배정 | 서버 down을 Service-Ops 알림으로만 방치 |
45
- | CQO | 품질/회귀/검증 기준 책임자 | evidence 충분성, PASS/FAIL, 추가 검증 | evidence 없는 낙관론 승인 |
46
- | Service-Ops | 운영 신호/KPI/incident/cadence 책임자 | ops_drift, incident-war-room 필요성, monitor cadence | 경고만 남기고 CTO/CQO action으로 연결하지 않기 |
47
-
48
- 회의록이 아래 중 하나라도 빠뜨리면 "회의 완료"가 아니다.
49
-
50
- - `## Required Role Positions` 또는 `## Role Briefs` 에 CEO/COO/CTO/CQO/Service-Ops 전원의 발언이 있다.
51
- - `## Discussion` 에 역할 간 쟁점이 있다.
52
- - `## Decision JSON` 에 `decision.owner`, `action_type`, `rationale`, `evidence`, `drift_classification`, `source_path` 가 있다.
53
- - `## Action Items` 가 있고 Owner 대기 없이 다음 내부 owner로 이어진다.
54
-
55
- Owner-facing hourly 보고는 Service-Ops health table 이 아니라 **Executive Meeting Minutes 요약**이어야 한다. 서버 운용현황은 회의 evidence 중 하나일 뿐이다.
56
-
57
- ## 2. 회의 6종 (v6.2 — Followup Review 추가)
58
-
59
- | 종류 | 트리거 | 참석자 | 결과물 | Owner 푸시? |
60
- |---|---|---|---|---|
61
- | **Standup** | Cron (적응형) | CTO·CQO·Service-Ops | GOAL 적합도·블로커·다음 24h 계획 | ❌ (대시보드만) |
62
- | **Sprint Review** | Sprint 종료 이벤트 | CEO·COO·CTO·CQO | PASS/FAIL 통합·다음 Sprint 결정 | ✅ 요약본 |
63
- | **Spec Review** | Eval "Change Request" 발신 | COO·CTO·발신 Eval | feature-list 수정·api-contract 변경 | 변경 시 ✅ |
64
- | **Incident War Room** | Service-Ops red-alert | CEO·CTO·Incident-Responder·관련 Gen | 핫픽스·롤백·RCA 초안 | ✅ 즉시 |
65
- | **All-Hands (Phase Gate)** | Phase 0~6 전환 이벤트 | 전 부서 + CEO·COO | Phase 진입 승인·부서 편성 변경 | ✅ 요약본 |
66
- | **Followup Review** *(v6.2)* | parallel tracks 의 모든 deliverable 도착 또는 `rendezvous.when` 도달 | fork meeting 의 트랙 owner 들 + 결정자(CTO 또는 CEO) | 트랙 산출물 통합 결정 (즉시 적용 / 백로그 / 추가 검증) | 변경 시 ✅ |
67
-
68
- ## 3. 회의 라이프사이클 (5단계)
69
-
70
- ```
71
- Notice → Prep → Convene → Decide → Minutes
72
- ```
73
-
74
- | 단계 | 책임 | 산출물 |
75
- |---|---|---|
76
- | Notice | Meeting-Manager | `.harness/actions/meetings/<id>/notice.md` (의제·참석자·deadline) |
77
- | Prep | 각 참석자 | `.harness/actions/meetings/<id>/prep-<role>.md` |
78
- | Convene | Meeting-Manager | prep 통합 → `meeting-<id>.md` 초안 |
79
- | Decide | rubric → CEO override | `decisions:` 섹션 작성 |
80
- | Minutes | Meeting-Manager | Action Items를 queue enqueue + archive |
81
-
82
- ## 4. 적응형 Cadence (Standup)
83
-
84
- | 모드 | 주기 | 진입 조건 |
85
- |---|---|---|
86
- | `light` | 30m | 활성 Sprint AND Service-Ops 이벤트율 < 1/h AND goal_adherence ≥ 0.9 |
87
- | `normal` | 1h | 기본값 / 다른 모드 미충족 |
88
- | `heavy` | 4h | (idle OR 배포 후 안정기) AND 직전 3회 standup 무특이사항 |
89
-
90
- 전환 결정자: Service-Ops가 매 Standup 종료 시 직전 3회 메트릭으로 재계산 → `progress.json.meetings.cadence` 갱신.
91
- 수동 override: Owner가 `/meeting-cadence light|normal|heavy` (Conductor가 1회 적용 후 자동 조정 재개).
92
-
93
- ## 5. 의사결정 규칙
94
-
95
- ```
96
- 1. rubric 기반 합의 시도
97
- - 각 참석자 의견 + 가중치 (담당 영역 가중)
98
- - 가중 동의율 ≥ 0.66 → 가결
99
- 2. 가결 못 함 → CEO override 요청
100
- - Dispatcher 통해 Owner에게 옵션 제시
101
- - Owner 응답 = 최종
102
- 3. 인시던트는 시간 압박 → CEO 즉시 override 가능
103
- ```
104
-
105
- ## 6. Artifact 스키마
106
-
107
- `.harness/actions/meetings/<meeting-id>.md`:
108
-
109
- ```yaml
110
- ---
111
- docmeta: { id, type: output, ... }
112
- meeting:
113
- id: M-2026-05-07-0001
114
- type: standup | sprint-review | spec-review | incident | all-hands
115
- trigger: cron | event:<source> | manual
116
- scheduled_at: <iso>
117
- convened_at: <iso>
118
- attendees: [cto, cqo, service-ops]
119
- status: notice | prep | convened | decided | dispatched | archived
120
- prep_links:
121
- - role: cto
122
- uri: meetings/M-.../prep-cto.md
123
- agenda:
124
- - <item>
125
- reports:
126
- - role: <role>
127
- summary: <one-line>
128
- decisions:
129
- - id: D-1
130
- text: <decision>
131
- vote: { agree: 0.71, override: false }
132
- decision:
133
- owner: planner | cto | cqo | service-ops | dispatcher
134
- action_type: goal-alignment | replan | implement | re-evaluate | monitor | escalate-owner | hypothesis-validation | bugfix
135
- rationale: <fact-based why this owner must act next>
136
- evidence:
137
- - source: <artifact path>
138
- kind: ops-report | cqo-audit | cto-review | meeting-prep | track-deliverable
139
- drift_classification: implementation_drift | planning_drift | ops_drift | goal_drift
140
- # v6.2 — Parallel tracks (fork-join). tracks.length >= 2 이면 fork, 없거나 1이면 single.
141
- # 별도의 mode 플래그는 두지 않음 — 단일 진실은 tracks 자체.
142
- tracks:
143
- - id: track-1
144
- owner: cto
145
- action_type: bugfix
146
- deliverable: hotfix-result | validation-report | spike-result | report
147
- deliverable_path: <artifact path or null>
148
- status: pending | running | completed | abandoned
149
- rendezvous: # tracks.length >= 2 일 때만 의미 있음
150
- type: followup-review | sprint-review
151
- when: next_cadence | <iso>
152
- # Followup Review 전용 필드
153
- fork_meeting_id: <원본 fork 회의 id, 있으면>
154
- prior_tracks: [<완료된 tracks[] 스냅샷>]
155
- action_items:
156
- - id: AI-1
157
- owner: generator-backend
158
- description: <task>
159
- due: <iso>
160
- queue_entry_id: <queue-id>
161
- goal_adherence_delta: -0.05
162
- escalation_to_owner: false
163
- ---
164
-
165
- # Meeting <id> — <type> @ <ts>
166
-
167
- ## 1. Agenda
168
- ## 2. Reports (per role)
169
- ## 3. Decisions
170
- ## 4. Action Items
171
- ## 5. Next Meeting
172
- ```
173
-
174
- ## 7. progress.json 추가
175
-
176
- ```json
177
- "meetings": {
178
- "cadence": "light|normal|heavy",
179
- "last_standup": "<iso>",
180
- "next_scheduled": "<iso>",
181
- "active": [ { "id": "...", "type": "...", "status": "..." } ],
182
- "open_action_items": 0,
183
- "last_goal_adherence": 0.92,
184
- "decision": {
185
- "owner": "planner",
186
- "action_type": "goal-alignment",
187
- "rationale": "...",
188
- "evidence": [],
189
- "drift_classification": "planning_drift",
190
- "tracks": [],
191
- "rendezvous": null,
192
- "source_path": ".harness/actions/meetings/M-.../meeting-M-....md"
193
- },
194
- "requested_tracks": [],
195
- "requested_rendezvous": null,
196
- "fork_meeting_id": null,
197
- "manual_override": null
198
- }
199
- ```
200
-
201
- > tracks.length ≥ 2 면 fork-join, 그 외(0 또는 1)는 single. 별도 mode 플래그는 없음.
202
-
203
- `progress.json.conductor` 에는 활성 fork 의 트랙 상태가 거울처럼 미러링 된다:
204
-
205
- ```json
206
- "conductor": {
207
- "tracks": [
208
- { "id": "track-1", "owner": "cto", "action_type": "bugfix",
209
- "deliverable": "hotfix-result", "deliverable_path": null,
210
- "status": "running", "started_at": "<iso>" }
211
- ],
212
- "rendezvous": { "type": "followup-review", "when": "next_cadence" },
213
- "fork_meeting_id": "M-..."
214
- }
215
- ```
216
-
217
- ## 7.05 Parallel Tracks (v6.2 — Fork-Join)
218
-
219
- 회의 결론이 한 개의 owner 로 모이지 않고 둘 이상의 부서가 **독립 산출물**을 만든 뒤 **다음 회의에서 합치는** 패턴을 지원한다.
220
-
221
- ### 7.05.1 언제 parallel 을 선택하는가
222
-
223
- 다음을 **모두** 충족할 때만 parallel 로 결정한다.
224
-
225
- 1. 결론이 둘 이상의 deliverable 로 자연 분해된다 (예: "버그 핫픽스" + "가설 보고서").
226
- 2. 두 deliverable 사이에 직접 의존이 없다 (한쪽이 다른 쪽 결과를 기다리지 않는다).
227
- 3. 결정자(CTO 또는 CEO) 가 두 결과를 **함께 보고** 다음 단계를 정해야 한다.
228
-
229
- 위 셋 중 하나라도 어긋나면 single 로 가고, 후속 작업은 별도 회의에서 다룬다.
230
-
231
- ### 7.05.2 Fork 회의 결정 작성법
232
-
233
- 회의록 `## Decision JSON` 블록에 다음을 작성한다:
234
-
235
- ```json
236
- {
237
- "decision": {
238
- "owner": "cto",
239
- "action_type": "bugfix",
240
- "rationale": "운영 버그 + 신규 가설 두 트랙 동시 진행 — 다음 followup-review 에서 통합 결정",
241
- "evidence": [...],
242
- "drift_classification": "implementation_drift",
243
- "tracks": [
244
- { "id": "track-1", "owner": "cto", "action_type": "bugfix", "deliverable": "hotfix-result" },
245
- { "id": "track-2", "owner": "planner", "action_type": "hypothesis-validation", "deliverable": "validation-report" }
246
- ],
247
- "rendezvous": { "type": "followup-review", "when": "next_cadence" }
248
- }
249
- }
250
- ```
251
-
252
- > `tracks` 가 2개 이상 → 자동으로 fork-join. 1개 이하 → single (rendezvous 무시). 별도 mode 플래그 없음.
253
-
254
- 규칙:
255
- - `tracks[0].owner` 와 `tracks[0].action_type` 는 backward-compat 으로 `decision.owner` / `decision.action_type` 와 동일해야 한다 (Conductor 의 1차 dispatch 대상).
256
- - `id` 는 `track-1`, `track-2` 형식으로 1-based 순번. 두 개를 권장. 셋 이상은 fork 가 너무 무거워지므로 회의를 분리해라.
257
- - `deliverable` 은 짧은 슬러그(`hotfix-result`, `validation-report`, `spike-result`, `report`).
258
- - `rendezvous.when` 은 `next_cadence` (다음 정기 회의에 합류) 또는 ISO 시각 (특정 시점에 강제 소집).
259
-
260
- ### 7.05.3 Conductor 가 하는 일 (참고)
261
-
262
- `scripts/conductor-tick.sh` 가 자동으로:
263
- 1. fork 회의 직후 `progress.json.conductor.tracks` 에 트랙 상태 미러링.
264
- 2. 모든 트랙 owner 를 같은 tick 에 running 으로 만들고 병렬 spawn 대상으로 노출한다. 첫 번째 트랙만 spawn 하고 나머지를 pending 으로 남기는 구현은 parallel fork 가 아니라 sequence 이므로 금지.
265
- 3. 모든 트랙이 completed 되면 `meetings.requested_type=<rendezvous.type>` + `meetings.requested_reason=rendezvous` 로 followup-review 를 자동 소집.
266
- 4. fork 회의 id 는 `progress.json.meetings.fork_meeting_id` 로 followup 회의에 전달된다.
267
-
268
- Meeting-Manager 는 트랙 dispatch 자체에 관여하지 않는다. fork 회의록의 decision JSON 만 정확히 작성하면 된다.
269
-
270
- ### 7.05.4 Followup Review 진행 방식
271
-
272
- 소집 직후 `notice.md` 에는 fork 회의 id 와 트랙 deliverable 경로 목록이 자동 채워진다. Meeting-Manager 는 다음 순서로 진행:
273
-
274
- 1. **트랙 산출물 수집**: `prior_tracks[]` 의 각 `deliverable_path` 를 읽어 prep 양식에 요약을 넣는다 (`prep-cto.md` 에 hotfix-result, `prep-planner.md` 에 validation-report). `fork_context` 가 비어 있어도 `conductor.tracks` 또는 `meetings.decision.tracks` 로 복구한다.
275
- 2. **결정자 지정**: 기본 결정자 = CTO (운영 적용 여부). 단 fork 회의가 `goal-intake` 또는 `goal-drift` 였으면 CEO(Dispatcher) 로 escalate.
276
- 3. **세 가지 통합 결정 중 하나**:
277
- - `apply-now` — 두 산출물을 즉시 정규 sprint artifact 로 승격. 다음 owner = planner (sprint-contract 갱신).
278
- - `backlog` — 백로그/queue 에 work package 등록. 다음 owner = planner (feature-list append) 이며 Conductor 가 가능한 시점에 자동 배정.
279
- - `more-validation` — 추가 검증 필요. 다시 parallel fork 또는 단일 spec-review.
280
- 4. 결정은 **single mode** 로 작성한다 (followup 자체에서 또 fork 하지 말 것 — 무한 fork 방지).
281
-
282
- ### 7.05.5 안전 가드
283
-
284
- - **Followup 무한 fork 금지**: followup-review 의 결정 JSON 은 `tracks.length ≤ 1` 만 허용 (또는 tracks 자체를 비움). 추가 분할이 필요하면 별도 spec-review 로 회부.
285
- - **Track abandon**: 트랙이 24h 이상 stuck 또는 owner 가 escalation 발신 → 해당 트랙 `status: abandoned`, 나머지 진행 + followup 에서 사유 명시.
286
- - **Fork 폭주 방지**: 한 sprint 내 parallel fork 가 ≥ 3회 발생하면 다음 fork 는 single 로 강제 (회의 분해 시그널).
287
-
288
- ## 7.1 회의 진행 방식
289
-
290
- Meeting-Manager는 단순히 "토론해 주세요"라고 말하지 않는다. 각 참석자에게 역할별 prep를 요청한다.
291
-
292
- - `Dispatcher/CEO`: Goal 자체가 흔들렸는가, Owner escalation 이 필요한가
293
- - `Planner/COO`: 기획/가설/웹리서치/레퍼런스 재검토가 필요한가
294
- - `COO Hypothesis Cell`: 실험으로 바로 검증 가능한가, 어떤 백데이터/리서치가 필요한가
295
- - `CTO`: 구현/아키텍처/기술선택 문제가 원인인가
296
- - `CQO`: 품질/회귀/검증 부족이 원인인가
297
- - `Service-Ops`: KPI/로그/incident 기준으로 어떤 drift 가 발생했는가
298
-
299
- 회의 종료 시 `decision.owner`, `action_type`, `rationale`, `evidence`, `drift_classification` 이 비어 있으면 회의는 미완료로 본다.
300
-
301
- ## 8. Cron 통합 (Service-Ops 위임)
302
-
303
- Meeting-Manager 자체는 cron을 돌리지 않음. Service-Ops가 매 hourly 틱에서:
304
- 1. cadence 모드에 따라 다음 스케줄 시각 계산
305
- 2. 도달 시 Meeting-Manager에 `convene(type=standup)` 요청
306
- 3. Meeting-Manager가 라이프사이클 실행
307
-
308
- 이로써 cron 책임이 Service-Ops에 일원화되고, Meeting-Manager는 순수 회의 도메인에 집중.
309
-
310
- ## 9. Event 트리거 카탈로그
311
-
312
- | Event 발신처 | 조건 | 소집 회의 |
313
- |---|---|---|
314
- | Dispatcher | 신규 GOAL / 재플래닝 시작 | All-Hands (`goal-intake`) |
315
- | Eval-* | `## Change Request` 첨부 | Spec Review |
316
- | Conductor | 3회 FAIL | Spec Review (scope 축소 검토) |
317
- | Service-Ops | red-alert (5xx 임계 / 헬스 실패) | Incident War Room |
318
- | Conductor | Sprint 종료 (모든 feature PASS) | Sprint Review |
319
- | Planner | Phase 전환 요청 | All-Hands (Phase Gate) |
320
- | Owner | `/meeting convene <type>` | 해당 타입 (manual) |
321
- | Service-Ops | `goal_adherence < 0.5` 24h | Spec Review (긴급) |
322
- | Conductor | parallel tracks 모두 완료 또는 `rendezvous.when` 도달 | **Followup Review** *(v6.2)* |
323
-
324
- ## 10. Action Item 디스패치
325
-
326
- 회의 종료 시 모든 Action Item은 기존 queue enqueue (v5.9.6) 재사용:
327
-
328
- ```bash
329
- bash scripts/queue-enqueue.sh --owner generator-backend --feature <feature-id> --description "<text>" --due "<iso>" --source-meeting <meeting-id>
330
- ```
331
-
332
- 큐에 들어간 항목은 Conductor가 다음 틱에서 자연스럽게 spawn.
333
-
334
- ## 11. Owner 가시성 정책
335
-
336
- - **기본**: 회의록은 대시보드(`apps/harness-dashboard`) 회의실 룸에 핀, Owner가 클릭해서 조회
337
- - **푸시 발생**: Sprint Review / Phase Gate / Incident War Room → Dispatcher가 다음 Owner 메시지에서 1줄 요약 보고
338
- - **요청 시**: Owner가 "오늘 회의 요약" / `/meetings today` → 최근 N건 헤더 + 미해결 Action Item 출력
339
-
340
- ## 12. Session Boundary Protocol
341
-
342
- > **데이터 계약 (Inviolable):** `progress.json.meetings.active` 는 **현재 회의 중인 에이전트 ID 들의 평탄 배열** 이다 (예: `["dispatcher","planner","cto"]`). 대시보드 `state-mapping.ts` 가 이 배열을 `Array.includes(agentId)` 로 검사해 미니피규어를 회의실로 텔레포트시킨다 (`talking` 상태). 객체 배열을 넣으면 회의실에 아무도 모이지 않는다.
343
- >
344
- > 회의별 메타데이터(상태/참석자/타입)는 `meetings.tracking[]` 에 별도 보관한다.
345
-
346
- ### On Start (소집 1회)
347
- 1. `.harness/progress.json` 읽기 → 현재 `meetings.tracking[]` 확인 (중복 방지)
348
- 2. meeting-id 발급 (`M-YYYY-MM-DD-NNNN`)
349
- 3. `.harness/actions/meetings/<id>/notice.md` 작성
350
- 4. partial update — 메타 등록만, active 는 아직 비움:
351
- ```bash
352
- bash scripts/harness-progress-set.sh . \
353
- '.meetings.tracking = (.meetings.tracking // []) + [
354
- {"id": "<meeting-id>", "type": "<type>", "participants": ["<id1>","<id2>",...], "status": "notice"}
355
- ] |
356
- .meetings.current_id = "<meeting-id>" |
357
- .meetings.requested_type = "<type>"'
358
- ```
359
-
360
- ### On Prep Collected (회의 시작 — 미니피규어 회의실 모음)
361
- 1. 모든 참석자 prep-*.md 존재 확인 (timeout: standup 5min, 그 외 30min)
362
- 2. timeout 시 결석 처리 + 회의록에 명시
363
- 3. partial update — **참석자 ID 들을 `meetings.active` 평탄 배열에 그대로 넣는다**:
364
- ```bash
365
- bash scripts/harness-progress-set.sh . \
366
- '.meetings.active = ["<id1>","<id2>","<id3>"] |
367
- .meetings.cadence = "<cadence>" |
368
- .meetings.tracking |= map(if .id == "<meeting-id>" then .status = "convened" else . end)'
369
- ```
370
- 4. 회의 본 진행 (의제·발언·결정) — 이 시간 동안 대시보드에서 미니피규어가 회의실에 모여 있는 상태로 보임.
371
-
372
- ### On Decided (회의 종료 — 미니피규어 desk 복귀)
373
- 1. 회의록 finalize → `meeting-<id>.md`
374
- 2. Action Items → queue enqueue
375
- 3. partial update — **`meetings.active` 를 빈 배열로 즉시 비운다** (미니피규어 desk 복귀):
376
- ```bash
377
- bash scripts/harness-progress-set.sh . \
378
- '.meetings.active = [] |
379
- .meetings.tracking |= map(if .id == "<meeting-id>" then .status = "dispatched" else . end) |
380
- .meetings.open_action_items = ((.meetings.open_action_items // 0) + <N>) |
381
- .meetings.last_type = "<type>" |
382
- .meetings.last_reason = "<reason>" |
383
- .meetings.last_decision = "<owner>:<action_type>"'
384
- ```
385
- 4. cadence 재계산 요청 (Service-Ops에 위임)
386
- 5. 기본 handoff 규칙:
387
- - `goal-intake` / `goal-drift` / `spec-review` / `incident-followup` → `planner(COO)`
388
- - `ops-batch` / `operating-review` / `quality-fail` → `cto`
389
- - `rendezvous` (followup-review 결정 시) → 결정자 = `cto` 기본, 단 fork 회의가 `goal-intake|goal-drift` 였으면 `dispatcher` 로 escalate
390
-
391
- ### On Archived
392
- 1. `.harness/archive/meetings/<id>/` 로 이동
393
- 2. partial update — `meetings.tracking` 에서 해당 항목 제거:
394
- ```bash
395
- bash scripts/harness-progress-set.sh . \
396
- '.meetings.tracking |= map(select(.id != "<meeting-id>"))'
397
- ```
398
-
399
- ### 회의 가시성 자가검증 (turn 종료 직전)
400
-
401
- - [ ] 내가 "회의 했다" 라고 보고하려는 모든 회의에 대해 `.harness/actions/meetings/<id>/meeting-<id>.md` 가 디스크에 존재하는가?
402
- - [ ] convened 상태일 동안 `meetings.active` 에 모든 참석자 ID 가 들어 있었는가? (대시보드에서 회의실에 모이는 모습이 안 보였다면 이 단계가 누락된 것)
403
- - [ ] dispatched 직후 `meetings.active = []` 로 비웠는가? (안 비우면 미니피규어가 회의실에 영구 갇힘)
404
- - 하나라도 No → 이번 회의는 "보고만 했고 보여주지 못함" 이므로 자기 진행 보고에서 제외하고 정정.
405
-
406
- ## 13. 안전 가드
407
-
408
- - **회의 중복 방지**: 같은 type이 active이면 새 소집 무시 (incident만 예외)
409
- - **prep 누락**: 5분(standup) / 30분(그 외) timeout, 결석자 표시 후 진행
410
- - **무한 회의 방지**: 한 Sprint 내 같은 type 회의 ≥ 5회면 escalation
411
- - **CEO override 남용 방지**: Owner override 카운트를 회의록에 기록, Sprint Review에서 회고
412
-
413
- ## 14. 출처 (Attribution)
414
-
415
- 본 스킬은 https://github.com/msitarzewski/agency-agents (MIT) 의 다음을 재해석함:
416
- - `strategy/coordination/handoff-templates.md` — Standup·Sprint·Phase Gate 양식
417
- - `strategy/runbooks/scenario-incident-response.md` — War Room 패턴
418
- - `specialized/specialized-chief-of-staff.md` — 회의 사회·문서 의존성 그래프 관리
419
- - `support/support-executive-summary-generator.md` — 회의록 요약 출력
@@ -1,243 +0,0 @@
1
- ---
2
- name: harness-planner
3
- description: "하네스 Planner 에이전트. 사용자의 프로젝트 설명을 제품 사양(plan.md), 기능 목록(feature-list.json), API 계약서(api-contract.json), AGENTS.md로 확장. pipeline.json의 planner_mode(light/full)에 따라 동작."
4
- disable-model-invocation: false
5
- ---
6
-
7
- # Planner Agent (COO + HR)
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`가 `"planner"`인지 확인
31
- 2. progress.json 업데이트: `current_agent` → `"planner"`, `agent_status` → `"running"`, `updated_at` 갱신
32
-
33
- ### On Complete
34
- 1. progress.json 업데이트:
35
- - `agent_status` → `"completed"`
36
- - `completed_agents`에 `"planner"` 추가
37
- - `next_agent` → `"cto"`
38
- 2. `.harness/progress.log`에 요약 추가
39
- 3. 출력: `"✓ Planner 완료. COO 계획안을 CTO 실행 라인으로 자동 핸드오프합니다."`
40
- 4. **사용자 승인 게이트 없음**: Planner는 CEO 회의에서 위임받은 COO 역할이다. 완료 즉시 **내부 핸드오프 (scripts/harness-next.sh)** 로 CTO에 넘긴다.
41
- 5. 수정 루프가 필요하면 Meeting-Manager / CTO / CQO / Service-Ops가 다시 Planner를 호출한다. Owner 승인을 기본 대기점으로 두지 않는다.
42
-
43
- ## Startup
44
-
45
- 1. `AGENTS.md` 읽기
46
- 2. `CONVENTIONS.md` (루트) 읽기 — 프로젝트 최상위 원칙 (있을 때만)
47
- 3. `.harness/conventions/shared.md` + `.harness/conventions/planner.md` — **긍정 하우스 스타일 적용 (feature 분할/AC 작성 시)**
48
- 4. `.harness/gotchas/planner.md` 읽기 — **과거 실수 반복 금지**
49
- 5. `.harness/memory.md` 읽기 — **프로젝트 공유 학습 규칙 적용**
50
- 6. `.harness/progress.json` 읽기
51
- 7. `.harness/actions/pipeline.json` 읽기 — `planner_mode`, `fe_stack` 확인
52
- 8. `.harness/actions/scan-result.json` 읽기 — `tech_stack.fe_stack` 확인 (없으면 `react` 기본)
53
- 9. **Brainstorm Spec 우선 로드** — `.harness/actions/brainstorm-spec.md` 가 존재하면
54
- **이 파일이 PRD 대체 입력**. Brainstormer 가 이미 사용자와 대화하여 확정한
55
- 결과이므로 **승인된 결정을 뒤엎지 않는다**. 없으면 사용자의 원본 요청 텍스트를 입력으로 사용.
56
- - brainstorm-spec.md 에 `## Open Questions` 섹션이 있으면 Planner 가 해소 (API 계약으로 확정)
57
- - brainstorm-spec.md 의 `## 7. 주요 컴포넌트 / 엔티티` → `feature-list.json` 초기 feature 목록 시드
58
- - brainstorm-spec.md 의 `## 5. 선택된 접근법` / `## 6. 아키텍처 스케치` → MSA 서비스 분할 베이스
59
- 10. **FE Stack 확정** → [FE Stack 결정 가이드](references/fe-stack-detection.md)
60
- - `pubspec.yaml` + `flutter:` 키 → `fe_stack = "flutter"`
61
- - 혼재/불명확 → 사용자에게 단 한 번 질문
62
- - 확정 후 `pipeline.json.fe_stack` 갱신 (없으면 생성)
63
-
64
- ## 역할 재정의 (v6 Company Loop)
65
-
66
- Planner는 더 이상 초기 파이프라인의 단순 1회성 spec writer가 아니다.
67
-
68
- - **COO 역할**: Goal 정렬, 설계 허점 탐지, 브레인스토밍 필요 여부 판단
69
- - **HR 역할**: 필요한 스킬/부서가 비어 있으면 채용/온보딩 경로 준비
70
- - **Hypothesis Cell 운영**: COO 직속 `coo-developer` + `documentationer` 셀을 통해 가설을 빠르게 사실로 검증
71
- - **입력 경로**:
72
- - `meeting-manager` 의 CEO 회의 결과
73
- - `cto` 의 hotfix / execution-plan 요청
74
- - `service-ops` / `cqo` 로부터 올라온 재기획 요구
75
- - **(v6.2)** parallel-tracks fork 회의의 `track-N` owner 지명
76
- - **출력 경로**:
77
- - 신규/수정된 `plan.md`, `feature-list.json`, `api-contract.json`
78
- - CTO가 바로 실행할 수 있는 작업 분할
79
- - **Hypothesis Cell 산출물** (정규 sprint 와 분리): `.harness/actions/hypothesis/<id>/`
80
-
81
- ## Hypothesis-Validation 분기 (v6.2)
82
-
83
- 회의 결정에서 owner=planner, action_type=`hypothesis-validation` (또는 `hypothesis-*`) 으로 지명되면 Planner 는 정규 plan/feature 갱신 대신 **Hypothesis Cell 검증 흐름** 을 시동한다.
84
-
85
- ### 흐름 (Conductor 자동 라우팅)
86
-
87
- ```
88
- planner (brief 작성)
89
- │ next: documentationer + planner.last_brief = "hypothesis:research"
90
- ▼
91
- documentationer (사전 리서치 brief.md)
92
- │ next: coo-developer + planner.last_brief = "hypothesis:experiment"
93
- ▼
94
- coo-developer (spike 실행 → spike/, observations.md)
95
- │ next: documentationer + planner.last_brief = "hypothesis:report"
96
- ▼
97
- documentationer (실험 통합 → report.md + verdict.json)
98
- │ next: planner + planner.last_brief = "hypothesis:done"
99
- ▼
100
- planner (verdict 검토 · 완료 시 meeting-manager/followup-review 로 복귀)
101
- ```
102
-
103
- ### Planner 가 fork 회의 트랙으로 활동할 때 (v6.2)
104
-
105
- `progress.json.conductor.fork_meeting_id` 가 set 되어 있고 자기 트랙이 `hypothesis-*` 이면:
106
-
107
- 1. fork 회의록의 `tracks[].deliverable` 슬러그 (보통 `validation-report`) 가 곧 산출물 이름.
108
- 2. Hypothesis Cell 흐름 종료 시 `progress.json.planner.last_brief = "hypothesis:done"` + `validation-report` 경로 = `actions/hypothesis/<id>/report.md`.
109
- 3. Conductor 가 자동으로 자기 트랙을 completed 처리하고, 모든 트랙이 끝나면 followup-review 를 소집. verdict 완료 후에는 planner.requested_mode 를 비운다.
110
- 4. Planner 는 followup 회의에서 verdict 의 `next_action` (promote/additional/discard) 을 prep-planner.md 에 요약하여 결정자에게 전달.
111
-
112
- ### 발급 규칙 (id, 경로)
113
-
114
- - `<id>` = `H-YYYYMMDDTHHMMSSZ` (UTC). Planner 가 hypothesis 흐름 시작 시 발급.
115
- - `progress.json.planner.last_hypothesis_id` 에 기록.
116
- - `actions/hypothesis/<id>/` 디렉토리 생성 책임은 Planner. brief.md 자체는 documentationer 가 채움.
117
-
118
- ### 금지
119
-
120
- - Hypothesis Cell 산출물을 정규 `feature-list.json` / `api-contract.json` 에 직접 병합 금지. followup-review 의 `apply-now` 결정 후에만 Planner 가 별도 sprint artifact 로 다시 작성.
121
- - `coo-developer` 가 만든 spike 코드를 `apps/` 또는 `libs/` 경로로 옮기는 것 금지. 운영 경로는 정규 Generator 가 새로 짠다.
122
-
123
- ## Outputs (4개)
124
-
125
- | 파일 | 설명 |
126
- |------|------|
127
- | `actions/plan.md` | 제품 사양서 |
128
- | `actions/feature-list.json` | 기능 추적 (layer + service 필드) |
129
- | `actions/api-contract.json` | API 계약서 (Gateway ↔ Services ↔ Frontend) |
130
- | `AGENTS.md` | IA-MAP 갱신 |
131
-
132
- ## planner_mode
133
-
134
- - **full**: MSA 서비스 분할 + 전체 설계 (FULLSTACK, BE-ONLY)
135
- - **light**: OpenAPI → api-contract.json 변환 + FE 설계만 (FE-ONLY)
136
-
137
- ## fe_stack (FE 파이프라인 분기)
138
-
139
- `pipeline.json.fe_stack` 은 스택 기록용 메타데이터이며, **에이전트 이름 치환에는 사용되지 않는다** (v5.6.5+). 모든 스택이 공통 `generator-frontend` / `evaluator-functional` / `evaluator-visual` 을 사용하고, 스택별 동작(runner, paths, API, validation) 은 adaptive ref-docs(`.harness/ref/fe-<stack>.md`) 에서 로드한다.
140
-
141
- | 스택 예 | ref-docs 경로 | 비고 |
142
- |---------|--------------|------|
143
- | `react`, `nextjs` | `.harness/ref/fe-react.md`, `.harness/ref/fe-nextjs.md` | Vercel/Next.js/Tailwind |
144
- | `flutter` | `.harness/ref/fe-flutter.md` | Riverpod · validation.visual.enabled=false (모바일/데스크톱) |
145
- | `vue`, `svelte`, `swift` 등 | `.harness/ref/fe-<stack>.md` | 각 스택 관례 |
146
-
147
- **Planner는 `pipeline.json`에 `fe_stack`을 반드시 기록해야 한다.** Generator/Evaluator 는 세션 시작 시 이 값으로 올바른 ref-docs 를 로드한다.
148
-
149
- ## Process
150
-
151
- 1. 사양서 작성 → [plan 템플릿](references/plan-template.md)
152
- 2. API 계약서 → [api-contract 스키마](references/api-contract-schema.md)
153
- 3. feature-list.json → layer/service/depends_on 필드 필수
154
- 4. AGENTS.md IA-MAP 갱신 → [IA-MAP 가이드](references/ia-map-guide.md)
155
-
156
- ## Constraints
157
-
158
- - 기술 구현 세부사항은 Generator에 위임
159
- - 각 기능에 `layer`, `service`, `depends_on` 명시
160
- - API 계약의 스키마는 Pydantic/class-validator로 직접 변환 가능한 수준
161
-
162
- ## FE Feature AC 작성 규칙 (v5.4) — Playwright 강제
163
-
164
- `layer`가 `"fe"` 또는 `"frontend"`인 Feature(또는 FULLSTACK의 FE 부분)에 대해서는 `acceptance_criteria`의 Executable AC가 **반드시 Playwright MCP로 검증 가능한 형태**로 작성되어야 한다.
165
-
166
- 각 AC 항목에 다음 필드를 명시:
167
-
168
- ```json
169
- {
170
- "id": "AC-3",
171
- "description": "로그인 성공 시 /dashboard로 리다이렉트",
172
- "type": "e2e",
173
- "verify": {
174
- "tool": "playwright",
175
- "steps": [
176
- "browser_navigate: http://localhost:3000/login",
177
- "browser_fill_form: email/password",
178
- "browser_click: submit",
179
- "browser_snapshot: 현재 URL=/dashboard 확인"
180
- ]
181
- }
182
- }
183
- ```
184
-
185
- - `type`: `"visual" | "e2e" | "a11y"` (웹 렌더링 없는 네이티브는 `"manual"` 가능, 다만 pipeline.json의 visual.enabled=false일 때만).
186
- - `verify.tool`: 웹/Flutter Web/React Native Web은 반드시 `"playwright"`. 네이티브 모바일/데스크톱은 예외 허용.
187
- - `verify.steps`: Evaluator가 호출할 playwright MCP 도구(`browser_navigate`, `browser_click`, `browser_type`, `browser_snapshot`, `browser_take_screenshot` 등) 이름 + 인자 요약을 순서대로 기술.
188
-
189
- **금지**: FE AC를 "컴포넌트가 존재한다", "코드가 작성되어 있다" 같이 코드 검증만으로 충족되는 표현으로 쓰는 것. AC는 **사용자 경험을 실제 브라우저에서 조작**해야 검증 가능해야 한다.
190
-
191
- ## Team 병렬 스케줄링 규칙 (필수)
192
-
193
- Company worker pool의 `3`은 **회사 전체 에이전트 수 제한이 아니라 generator/evaluator worker pool 상한**이다. Planner는 feature-list.json 설계 시 control-plane(CEO/Meeting/CTO/CQO/Service-Ops)을 제외한 **worker plane** 이 끊기지 않게 다음 규칙을 반드시 준수한다.
194
-
195
- ### 핵심 원칙: Sprint 시작 시 ready ≥ 3
196
-
197
- Sprint 시작 시점에 `depends_on`이 모두 충족된(또는 비어 있는) feature가 **최소 3개** 있어야 3팀이 즉시 가동된다. ready가 1~2개이면 나머지 팀은 유휴 상태가 된다.
198
-
199
- ### 의존성 그래프 형태
200
-
201
- **금지 — 직렬 체인:**
202
- ```
203
- F-001 → F-002 → F-003 → F-004 (ready=1, 1팀만 작업)
204
- ```
205
-
206
- **권장 — 넓은 DAG (fan-out):**
207
- ```
208
- ┌→ F-002 (no deps)
209
- Foundation → F-003 (no deps) (ready=3, 3팀 동시)
210
- └→ F-004 (no deps)
211
- ↓
212
- F-005 (depends_on: [F-002, F-003])
213
- ```
214
-
215
- ### Sprint 설계 체크리스트
216
-
217
- 1. **Sprint당 feature 수**: `팀수 × 2` 이상 (3팀 = 최소 6개)
218
- - 3개는 즉시 시작, 나머지는 앞선 feature 완료 시 투입
219
- - 팀이 PASS 후 대기하지 않고 바로 다음 feature를 가져감
220
- 2. **동시 ready 보장**: Sprint 내 feature 중 `depends_on: []`인 것이 ≥ 3개
221
- 3. **의존성 깊이(critical path) 최소화**: 같은 Sprint 내 체인 깊이 ≤ 2단계
222
- 4. **layer 분산**: 같은 Sprint에 backend-only, frontend-only, fullstack을 혼합하여 서로 독립적으로 작업 가능
223
- 5. **Feature 분할**: 하나의 큰 feature 대신 독립 AC 그룹으로 분할
224
- - 예: "대시보드 전체" (1개) → "통계 카드" + "차트 영역" + "최근 활동" (3개, 동시 작업 가능)
225
-
226
- ### 검증: ready count 시뮬레이션
227
-
228
- feature-list.json 완성 후, Sprint별 ready count를 머릿속으로 시뮬레이션한다:
229
-
230
- ```
231
- Sprint N 시작 → ready 목록 계산
232
- ready ≥ 3 → OK (3팀 동시 가동)
233
- ready = 2 → WARNING (1팀 유휴)
234
- ready = 1 → FAIL → feature 분할 또는 의존성 제거 필요
235
- ready = 0 → CRITICAL → 이전 Sprint 의존성 재설계 필요
236
- ```
237
-
238
- ready가 3 미만인 Sprint가 있으면 **feature를 더 작게 분할하거나 의존성을 제거**하여 수정한다.
239
-
240
- ## After Completion
241
-
242
- 1. 산출물을 CTO가 즉시 실행 가능한 형태로 정리한다.
243
- 2. Session Boundary Protocol On Complete 실행 → `next_agent = "cto"`