@chorus-aidlc/chorus 0.15.1 โ†’ 0.16.2

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 (444) hide show
  1. package/.next/standalone/.next/BUILD_ID +1 -1
  2. package/.next/standalone/.next/app-build-manifest.json +394 -393
  3. package/.next/standalone/.next/app-path-routes-manifest.json +46 -46
  4. package/.next/standalone/.next/build-manifest.json +5 -5
  5. package/.next/standalone/.next/prerender-manifest.json +21 -21
  6. package/.next/standalone/.next/server/app/(dashboard)/project-groups/[uuid]/page.js +1 -1
  7. package/.next/standalone/.next/server/app/(dashboard)/project-groups/[uuid]/page.js.nft.json +1 -1
  8. package/.next/standalone/.next/server/app/(dashboard)/project-groups/[uuid]/page_client-reference-manifest.js +1 -1
  9. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/activity/page.js +2 -2
  10. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/activity/page.js.nft.json +1 -1
  11. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/activity/page_client-reference-manifest.js +1 -1
  12. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/dashboard/[ideaUuid]/page.js +2 -2
  13. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/dashboard/[ideaUuid]/page.js.nft.json +1 -1
  14. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/dashboard/[ideaUuid]/page_client-reference-manifest.js +1 -1
  15. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/dashboard/page.js +2 -2
  16. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/dashboard/page.js.nft.json +1 -1
  17. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/dashboard/page_client-reference-manifest.js +1 -1
  18. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/documents/[documentUuid]/page.js +2 -2
  19. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/documents/[documentUuid]/page.js.nft.json +1 -1
  20. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/documents/[documentUuid]/page_client-reference-manifest.js +1 -1
  21. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/documents/page.js +2 -2
  22. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/documents/page.js.nft.json +1 -1
  23. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/documents/page_client-reference-manifest.js +1 -1
  24. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/graph/page.js +2 -2
  25. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/graph/page.js.nft.json +1 -1
  26. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/graph/page_client-reference-manifest.js +1 -1
  27. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/[proposalUuid]/page.js +2 -2
  28. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/[proposalUuid]/page.js.nft.json +1 -1
  29. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/[proposalUuid]/page_client-reference-manifest.js +1 -1
  30. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/new/page.js +2 -2
  31. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/new/page.js.nft.json +1 -1
  32. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/new/page_client-reference-manifest.js +1 -1
  33. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/page.js +2 -2
  34. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/page.js.nft.json +1 -1
  35. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/page_client-reference-manifest.js +1 -1
  36. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/tasks/[taskUuid]/page.js +1 -1
  37. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/tasks/[taskUuid]/page.js.nft.json +1 -1
  38. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/tasks/[taskUuid]/page_client-reference-manifest.js +1 -1
  39. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/tasks/page.js +1 -1
  40. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/tasks/page.js.nft.json +1 -1
  41. package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/tasks/page_client-reference-manifest.js +1 -1
  42. package/.next/standalone/.next/server/app/(dashboard)/projects/page.js +1 -1
  43. package/.next/standalone/.next/server/app/(dashboard)/projects/page.js.nft.json +1 -1
  44. package/.next/standalone/.next/server/app/(dashboard)/projects/page_client-reference-manifest.js +1 -1
  45. package/.next/standalone/.next/server/app/(dashboard)/settings/page.js +2 -2
  46. package/.next/standalone/.next/server/app/(dashboard)/settings/page.js.nft.json +1 -1
  47. package/.next/standalone/.next/server/app/(dashboard)/settings/page_client-reference-manifest.js +1 -1
  48. package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  49. package/.next/standalone/.next/server/app/_not-found.html +2 -2
  50. package/.next/standalone/.next/server/app/_not-found.rsc +2 -2
  51. package/.next/standalone/.next/server/app/admin/companies/[uuid]/page_client-reference-manifest.js +1 -1
  52. package/.next/standalone/.next/server/app/admin/companies/new/page_client-reference-manifest.js +1 -1
  53. package/.next/standalone/.next/server/app/admin/companies/new.html +2 -2
  54. package/.next/standalone/.next/server/app/admin/companies/new.rsc +2 -2
  55. package/.next/standalone/.next/server/app/admin/companies/page_client-reference-manifest.js +1 -1
  56. package/.next/standalone/.next/server/app/admin/companies.html +2 -2
  57. package/.next/standalone/.next/server/app/admin/companies.rsc +2 -2
  58. package/.next/standalone/.next/server/app/admin/page_client-reference-manifest.js +1 -1
  59. package/.next/standalone/.next/server/app/admin.html +2 -2
  60. package/.next/standalone/.next/server/app/admin.rsc +2 -2
  61. package/.next/standalone/.next/server/app/api/admin/companies/[uuid]/route_client-reference-manifest.js +1 -1
  62. package/.next/standalone/.next/server/app/api/admin/companies/route_client-reference-manifest.js +1 -1
  63. package/.next/standalone/.next/server/app/api/admin/login/route_client-reference-manifest.js +1 -1
  64. package/.next/standalone/.next/server/app/api/admin/session/route_client-reference-manifest.js +1 -1
  65. package/.next/standalone/.next/server/app/api/agent-connections/route.js.nft.json +1 -1
  66. package/.next/standalone/.next/server/app/api/agent-connections/route_client-reference-manifest.js +1 -1
  67. package/.next/standalone/.next/server/app/api/agents/[uuid]/route_client-reference-manifest.js +1 -1
  68. package/.next/standalone/.next/server/app/api/agents/[uuid]/sessions/route.js +1 -1
  69. package/.next/standalone/.next/server/app/api/agents/[uuid]/sessions/route.js.nft.json +1 -1
  70. package/.next/standalone/.next/server/app/api/agents/[uuid]/sessions/route_client-reference-manifest.js +1 -1
  71. package/.next/standalone/.next/server/app/api/agents/route_client-reference-manifest.js +1 -1
  72. package/.next/standalone/.next/server/app/api/api-keys/[uuid]/route_client-reference-manifest.js +1 -1
  73. package/.next/standalone/.next/server/app/api/api-keys/route_client-reference-manifest.js +1 -1
  74. package/.next/standalone/.next/server/app/api/auth/callback/route_client-reference-manifest.js +1 -1
  75. package/.next/standalone/.next/server/app/api/auth/check-default/route_client-reference-manifest.js +1 -1
  76. package/.next/standalone/.next/server/app/api/auth/company-oidc/route_client-reference-manifest.js +1 -1
  77. package/.next/standalone/.next/server/app/api/auth/default-login/route_client-reference-manifest.js +1 -1
  78. package/.next/standalone/.next/server/app/api/auth/identify/route_client-reference-manifest.js +1 -1
  79. package/.next/standalone/.next/server/app/api/auth/logout/route_client-reference-manifest.js +1 -1
  80. package/.next/standalone/.next/server/app/api/auth/me/route_client-reference-manifest.js +1 -1
  81. package/.next/standalone/.next/server/app/api/auth/sync-token/route_client-reference-manifest.js +1 -1
  82. package/.next/standalone/.next/server/app/api/comments/route.js +1 -1
  83. package/.next/standalone/.next/server/app/api/comments/route.js.nft.json +1 -1
  84. package/.next/standalone/.next/server/app/api/comments/route_client-reference-manifest.js +1 -1
  85. package/.next/standalone/.next/server/app/api/daemon/connection-heartbeat/route.js.nft.json +1 -1
  86. package/.next/standalone/.next/server/app/api/daemon/connection-heartbeat/route_client-reference-manifest.js +1 -1
  87. package/.next/standalone/.next/server/app/api/daemon/control/route.js +1 -1
  88. package/.next/standalone/.next/server/app/api/daemon/control/route_client-reference-manifest.js +1 -1
  89. package/.next/standalone/.next/server/app/api/daemon/directory-request/report/route.js.nft.json +1 -1
  90. package/.next/standalone/.next/server/app/api/daemon/directory-request/report/route_client-reference-manifest.js +1 -1
  91. package/.next/standalone/.next/server/app/api/daemon/execution-state/route.js.nft.json +1 -1
  92. package/.next/standalone/.next/server/app/api/daemon/execution-state/route_client-reference-manifest.js +1 -1
  93. package/.next/standalone/.next/server/app/api/daemon/executions/route.js.nft.json +1 -1
  94. package/.next/standalone/.next/server/app/api/daemon/executions/route_client-reference-manifest.js +1 -1
  95. package/.next/standalone/.next/server/app/api/daemon/pending-turns/route.js +1 -1
  96. package/.next/standalone/.next/server/app/api/daemon/pending-turns/route.js.nft.json +1 -1
  97. package/.next/standalone/.next/server/app/api/daemon/pending-turns/route_client-reference-manifest.js +1 -1
  98. package/.next/standalone/.next/server/app/api/daemon/report-interrupt/route.js +1 -1
  99. package/.next/standalone/.next/server/app/api/daemon/report-interrupt/route.js.nft.json +1 -1
  100. package/.next/standalone/.next/server/app/api/daemon/report-interrupt/route_client-reference-manifest.js +1 -1
  101. package/.next/standalone/.next/server/app/api/daemon/resume/route.js +1 -1
  102. package/.next/standalone/.next/server/app/api/daemon/resume/route.js.nft.json +1 -1
  103. package/.next/standalone/.next/server/app/api/daemon/resume/route_client-reference-manifest.js +1 -1
  104. package/.next/standalone/.next/server/app/api/daemon/transcript/route.js +1 -1
  105. package/.next/standalone/.next/server/app/api/daemon/transcript/route.js.nft.json +1 -1
  106. package/.next/standalone/.next/server/app/api/daemon/transcript/route_client-reference-manifest.js +1 -1
  107. package/.next/standalone/.next/server/app/api/daemon/turn-advance/route.js +1 -1
  108. package/.next/standalone/.next/server/app/api/daemon/turn-advance/route.js.nft.json +1 -1
  109. package/.next/standalone/.next/server/app/api/daemon/turn-advance/route_client-reference-manifest.js +1 -1
  110. package/.next/standalone/.next/server/app/api/daemon-directory-requests/[uuid]/route.js.nft.json +1 -1
  111. package/.next/standalone/.next/server/app/api/daemon-directory-requests/[uuid]/route_client-reference-manifest.js +1 -1
  112. package/.next/standalone/.next/server/app/api/daemon-directory-requests/route.js.nft.json +1 -1
  113. package/.next/standalone/.next/server/app/api/daemon-directory-requests/route_client-reference-manifest.js +1 -1
  114. package/.next/standalone/.next/server/app/api/daemon-sessions/[sessionUuid]/instruction/route.js +1 -1
  115. package/.next/standalone/.next/server/app/api/daemon-sessions/[sessionUuid]/instruction/route.js.nft.json +1 -1
  116. package/.next/standalone/.next/server/app/api/daemon-sessions/[sessionUuid]/instruction/route_client-reference-manifest.js +1 -1
  117. package/.next/standalone/.next/server/app/api/daemon-sessions/[sessionUuid]/repoint/route.js +1 -1
  118. package/.next/standalone/.next/server/app/api/daemon-sessions/[sessionUuid]/repoint/route.js.nft.json +1 -1
  119. package/.next/standalone/.next/server/app/api/daemon-sessions/[sessionUuid]/repoint/route_client-reference-manifest.js +1 -1
  120. package/.next/standalone/.next/server/app/api/daemon-sessions/[sessionUuid]/route.js +1 -1
  121. package/.next/standalone/.next/server/app/api/daemon-sessions/[sessionUuid]/route.js.nft.json +1 -1
  122. package/.next/standalone/.next/server/app/api/daemon-sessions/[sessionUuid]/route_client-reference-manifest.js +1 -1
  123. package/.next/standalone/.next/server/app/api/daemon-sessions/ad-hoc/route.js +1 -1
  124. package/.next/standalone/.next/server/app/api/daemon-sessions/ad-hoc/route.js.nft.json +1 -1
  125. package/.next/standalone/.next/server/app/api/daemon-sessions/ad-hoc/route_client-reference-manifest.js +1 -1
  126. package/.next/standalone/.next/server/app/api/daemon-sessions/route.js +1 -1
  127. package/.next/standalone/.next/server/app/api/daemon-sessions/route.js.nft.json +1 -1
  128. package/.next/standalone/.next/server/app/api/daemon-sessions/route_client-reference-manifest.js +1 -1
  129. package/.next/standalone/.next/server/app/api/documents/[uuid]/route_client-reference-manifest.js +1 -1
  130. package/.next/standalone/.next/server/app/api/entities/[type]/[uuid]/root-idea/route.js +1 -1
  131. package/.next/standalone/.next/server/app/api/entities/[type]/[uuid]/root-idea/route.js.nft.json +1 -1
  132. package/.next/standalone/.next/server/app/api/entities/[type]/[uuid]/root-idea/route_client-reference-manifest.js +1 -1
  133. package/.next/standalone/.next/server/app/api/events/notifications/route.js +1 -1
  134. package/.next/standalone/.next/server/app/api/events/notifications/route.js.nft.json +1 -1
  135. package/.next/standalone/.next/server/app/api/events/notifications/route_client-reference-manifest.js +1 -1
  136. package/.next/standalone/.next/server/app/api/events/route.js +1 -1
  137. package/.next/standalone/.next/server/app/api/events/route.js.nft.json +1 -1
  138. package/.next/standalone/.next/server/app/api/events/route_client-reference-manifest.js +1 -1
  139. package/.next/standalone/.next/server/app/api/health/route_client-reference-manifest.js +1 -1
  140. package/.next/standalone/.next/server/app/api/ideas/[uuid]/claim/route.js +1 -1
  141. package/.next/standalone/.next/server/app/api/ideas/[uuid]/claim/route.js.nft.json +1 -1
  142. package/.next/standalone/.next/server/app/api/ideas/[uuid]/claim/route_client-reference-manifest.js +1 -1
  143. package/.next/standalone/.next/server/app/api/ideas/[uuid]/move/preview/route.js +1 -1
  144. package/.next/standalone/.next/server/app/api/ideas/[uuid]/move/preview/route.js.nft.json +1 -1
  145. package/.next/standalone/.next/server/app/api/ideas/[uuid]/move/preview/route_client-reference-manifest.js +1 -1
  146. package/.next/standalone/.next/server/app/api/ideas/[uuid]/move/route.js +1 -1
  147. package/.next/standalone/.next/server/app/api/ideas/[uuid]/move/route.js.nft.json +1 -1
  148. package/.next/standalone/.next/server/app/api/ideas/[uuid]/move/route_client-reference-manifest.js +1 -1
  149. package/.next/standalone/.next/server/app/api/ideas/[uuid]/parent/route.js +1 -1
  150. package/.next/standalone/.next/server/app/api/ideas/[uuid]/parent/route.js.nft.json +1 -1
  151. package/.next/standalone/.next/server/app/api/ideas/[uuid]/parent/route_client-reference-manifest.js +1 -1
  152. package/.next/standalone/.next/server/app/api/ideas/[uuid]/release/route.js +1 -1
  153. package/.next/standalone/.next/server/app/api/ideas/[uuid]/release/route.js.nft.json +1 -1
  154. package/.next/standalone/.next/server/app/api/ideas/[uuid]/release/route_client-reference-manifest.js +1 -1
  155. package/.next/standalone/.next/server/app/api/ideas/[uuid]/route.js +1 -1
  156. package/.next/standalone/.next/server/app/api/ideas/[uuid]/route.js.nft.json +1 -1
  157. package/.next/standalone/.next/server/app/api/ideas/[uuid]/route_client-reference-manifest.js +1 -1
  158. package/.next/standalone/.next/server/app/api/ideas/[uuid]/wake-preview/route.js.nft.json +1 -1
  159. package/.next/standalone/.next/server/app/api/ideas/[uuid]/wake-preview/route_client-reference-manifest.js +1 -1
  160. package/.next/standalone/.next/server/app/api/ideas/conversational/route.js +1 -1
  161. package/.next/standalone/.next/server/app/api/ideas/conversational/route.js.nft.json +1 -1
  162. package/.next/standalone/.next/server/app/api/ideas/conversational/route_client-reference-manifest.js +1 -1
  163. package/.next/standalone/.next/server/app/api/mcp/route.js +2 -2
  164. package/.next/standalone/.next/server/app/api/mcp/route.js.nft.json +1 -1
  165. package/.next/standalone/.next/server/app/api/mcp/route_client-reference-manifest.js +1 -1
  166. package/.next/standalone/.next/server/app/api/me/assignments/route.js +1 -1
  167. package/.next/standalone/.next/server/app/api/me/assignments/route.js.nft.json +1 -1
  168. package/.next/standalone/.next/server/app/api/me/assignments/route_client-reference-manifest.js +1 -1
  169. package/.next/standalone/.next/server/app/api/mentionables/route.js +1 -1
  170. package/.next/standalone/.next/server/app/api/mentionables/route.js.nft.json +1 -1
  171. package/.next/standalone/.next/server/app/api/mentionables/route_client-reference-manifest.js +1 -1
  172. package/.next/standalone/.next/server/app/api/notifications/[uuid]/archive/route.js +1 -1
  173. package/.next/standalone/.next/server/app/api/notifications/[uuid]/archive/route.js.nft.json +1 -1
  174. package/.next/standalone/.next/server/app/api/notifications/[uuid]/archive/route_client-reference-manifest.js +1 -1
  175. package/.next/standalone/.next/server/app/api/notifications/[uuid]/read/route.js +1 -1
  176. package/.next/standalone/.next/server/app/api/notifications/[uuid]/read/route.js.nft.json +1 -1
  177. package/.next/standalone/.next/server/app/api/notifications/[uuid]/read/route_client-reference-manifest.js +1 -1
  178. package/.next/standalone/.next/server/app/api/notifications/preferences/route.js +1 -1
  179. package/.next/standalone/.next/server/app/api/notifications/preferences/route.js.nft.json +1 -1
  180. package/.next/standalone/.next/server/app/api/notifications/preferences/route_client-reference-manifest.js +1 -1
  181. package/.next/standalone/.next/server/app/api/notifications/read-all/route.js +1 -1
  182. package/.next/standalone/.next/server/app/api/notifications/read-all/route.js.nft.json +1 -1
  183. package/.next/standalone/.next/server/app/api/notifications/read-all/route_client-reference-manifest.js +1 -1
  184. package/.next/standalone/.next/server/app/api/notifications/route.js +1 -1
  185. package/.next/standalone/.next/server/app/api/notifications/route.js.nft.json +1 -1
  186. package/.next/standalone/.next/server/app/api/notifications/route_client-reference-manifest.js +1 -1
  187. package/.next/standalone/.next/server/app/api/notifications/unread-count/route.js +1 -1
  188. package/.next/standalone/.next/server/app/api/notifications/unread-count/route.js.nft.json +1 -1
  189. package/.next/standalone/.next/server/app/api/notifications/unread-count/route_client-reference-manifest.js +1 -1
  190. package/.next/standalone/.next/server/app/api/project-groups/[uuid]/dashboard/route_client-reference-manifest.js +1 -1
  191. package/.next/standalone/.next/server/app/api/project-groups/[uuid]/route_client-reference-manifest.js +1 -1
  192. package/.next/standalone/.next/server/app/api/project-groups/route_client-reference-manifest.js +1 -1
  193. package/.next/standalone/.next/server/app/api/project-visits/pin/route_client-reference-manifest.js +1 -1
  194. package/.next/standalone/.next/server/app/api/project-visits/route_client-reference-manifest.js +1 -1
  195. package/.next/standalone/.next/server/app/api/project-visits/visit/route_client-reference-manifest.js +1 -1
  196. package/.next/standalone/.next/server/app/api/projects/[uuid]/activity/route_client-reference-manifest.js +1 -1
  197. package/.next/standalone/.next/server/app/api/projects/[uuid]/agent-cwds/route.js.nft.json +1 -1
  198. package/.next/standalone/.next/server/app/api/projects/[uuid]/agent-cwds/route_client-reference-manifest.js +1 -1
  199. package/.next/standalone/.next/server/app/api/projects/[uuid]/available/route.js +1 -1
  200. package/.next/standalone/.next/server/app/api/projects/[uuid]/available/route.js.nft.json +1 -1
  201. package/.next/standalone/.next/server/app/api/projects/[uuid]/available/route_client-reference-manifest.js +1 -1
  202. package/.next/standalone/.next/server/app/api/projects/[uuid]/documents/route_client-reference-manifest.js +1 -1
  203. package/.next/standalone/.next/server/app/api/projects/[uuid]/group/route_client-reference-manifest.js +1 -1
  204. package/.next/standalone/.next/server/app/api/projects/[uuid]/ideas/route.js +1 -1
  205. package/.next/standalone/.next/server/app/api/projects/[uuid]/ideas/route.js.nft.json +1 -1
  206. package/.next/standalone/.next/server/app/api/projects/[uuid]/ideas/route_client-reference-manifest.js +1 -1
  207. package/.next/standalone/.next/server/app/api/projects/[uuid]/ideas/tracker/route.js +1 -1
  208. package/.next/standalone/.next/server/app/api/projects/[uuid]/ideas/tracker/route.js.nft.json +1 -1
  209. package/.next/standalone/.next/server/app/api/projects/[uuid]/ideas/tracker/route_client-reference-manifest.js +1 -1
  210. package/.next/standalone/.next/server/app/api/projects/[uuid]/proposals/[proposalUuid]/validate/route_client-reference-manifest.js +1 -1
  211. package/.next/standalone/.next/server/app/api/projects/[uuid]/proposals/route_client-reference-manifest.js +1 -1
  212. package/.next/standalone/.next/server/app/api/projects/[uuid]/proposals/summary/route_client-reference-manifest.js +1 -1
  213. package/.next/standalone/.next/server/app/api/projects/[uuid]/resource-graph/route.js +1 -1
  214. package/.next/standalone/.next/server/app/api/projects/[uuid]/resource-graph/route.js.nft.json +1 -1
  215. package/.next/standalone/.next/server/app/api/projects/[uuid]/resource-graph/route_client-reference-manifest.js +1 -1
  216. package/.next/standalone/.next/server/app/api/projects/[uuid]/route_client-reference-manifest.js +1 -1
  217. package/.next/standalone/.next/server/app/api/projects/[uuid]/stats/route_client-reference-manifest.js +1 -1
  218. package/.next/standalone/.next/server/app/api/projects/[uuid]/tasks/dependencies/route.js +1 -1
  219. package/.next/standalone/.next/server/app/api/projects/[uuid]/tasks/dependencies/route.js.nft.json +1 -1
  220. package/.next/standalone/.next/server/app/api/projects/[uuid]/tasks/dependencies/route_client-reference-manifest.js +1 -1
  221. package/.next/standalone/.next/server/app/api/projects/[uuid]/tasks/route.js +1 -1
  222. package/.next/standalone/.next/server/app/api/projects/[uuid]/tasks/route.js.nft.json +1 -1
  223. package/.next/standalone/.next/server/app/api/projects/[uuid]/tasks/route_client-reference-manifest.js +1 -1
  224. package/.next/standalone/.next/server/app/api/projects/agent-cwd-options/route.js.nft.json +1 -1
  225. package/.next/standalone/.next/server/app/api/projects/agent-cwd-options/route_client-reference-manifest.js +1 -1
  226. package/.next/standalone/.next/server/app/api/projects/route.js.nft.json +1 -1
  227. package/.next/standalone/.next/server/app/api/projects/route_client-reference-manifest.js +1 -1
  228. package/.next/standalone/.next/server/app/api/proposals/[uuid]/approve/route_client-reference-manifest.js +1 -1
  229. package/.next/standalone/.next/server/app/api/proposals/[uuid]/close/route_client-reference-manifest.js +1 -1
  230. package/.next/standalone/.next/server/app/api/proposals/[uuid]/reject/route_client-reference-manifest.js +1 -1
  231. package/.next/standalone/.next/server/app/api/proposals/[uuid]/revoke/route_client-reference-manifest.js +1 -1
  232. package/.next/standalone/.next/server/app/api/proposals/[uuid]/route_client-reference-manifest.js +1 -1
  233. package/.next/standalone/.next/server/app/api/references/[uuid]/route_client-reference-manifest.js +1 -1
  234. package/.next/standalone/.next/server/app/api/references/route_client-reference-manifest.js +1 -1
  235. package/.next/standalone/.next/server/app/api/search/route_client-reference-manifest.js +1 -1
  236. package/.next/standalone/.next/server/app/api/session/route_client-reference-manifest.js +1 -1
  237. package/.next/standalone/.next/server/app/api/sessions/[uuid]/route.js +1 -1
  238. package/.next/standalone/.next/server/app/api/sessions/[uuid]/route.js.nft.json +1 -1
  239. package/.next/standalone/.next/server/app/api/sessions/[uuid]/route_client-reference-manifest.js +1 -1
  240. package/.next/standalone/.next/server/app/api/tasks/[uuid]/claim/route.js +1 -1
  241. package/.next/standalone/.next/server/app/api/tasks/[uuid]/claim/route.js.nft.json +1 -1
  242. package/.next/standalone/.next/server/app/api/tasks/[uuid]/claim/route_client-reference-manifest.js +1 -1
  243. package/.next/standalone/.next/server/app/api/tasks/[uuid]/dependencies/[dependsOnUuid]/route.js +1 -1
  244. package/.next/standalone/.next/server/app/api/tasks/[uuid]/dependencies/[dependsOnUuid]/route.js.nft.json +1 -1
  245. package/.next/standalone/.next/server/app/api/tasks/[uuid]/dependencies/[dependsOnUuid]/route_client-reference-manifest.js +1 -1
  246. package/.next/standalone/.next/server/app/api/tasks/[uuid]/dependencies/route.js +1 -1
  247. package/.next/standalone/.next/server/app/api/tasks/[uuid]/dependencies/route.js.nft.json +1 -1
  248. package/.next/standalone/.next/server/app/api/tasks/[uuid]/dependencies/route_client-reference-manifest.js +1 -1
  249. package/.next/standalone/.next/server/app/api/tasks/[uuid]/release/route.js +1 -1
  250. package/.next/standalone/.next/server/app/api/tasks/[uuid]/release/route.js.nft.json +1 -1
  251. package/.next/standalone/.next/server/app/api/tasks/[uuid]/release/route_client-reference-manifest.js +1 -1
  252. package/.next/standalone/.next/server/app/api/tasks/[uuid]/route.js +1 -1
  253. package/.next/standalone/.next/server/app/api/tasks/[uuid]/route.js.nft.json +1 -1
  254. package/.next/standalone/.next/server/app/api/tasks/[uuid]/route_client-reference-manifest.js +1 -1
  255. package/.next/standalone/.next/server/app/api/tasks/[uuid]/sessions/route.js +1 -1
  256. package/.next/standalone/.next/server/app/api/tasks/[uuid]/sessions/route.js.nft.json +1 -1
  257. package/.next/standalone/.next/server/app/api/tasks/[uuid]/sessions/route_client-reference-manifest.js +1 -1
  258. package/.next/standalone/.next/server/app/index.html +2 -2
  259. package/.next/standalone/.next/server/app/index.rsc +2 -2
  260. package/.next/standalone/.next/server/app/login/admin/page_client-reference-manifest.js +1 -1
  261. package/.next/standalone/.next/server/app/login/admin.html +2 -2
  262. package/.next/standalone/.next/server/app/login/admin.rsc +2 -2
  263. package/.next/standalone/.next/server/app/login/callback/page_client-reference-manifest.js +1 -1
  264. package/.next/standalone/.next/server/app/login/callback.html +2 -2
  265. package/.next/standalone/.next/server/app/login/callback.rsc +2 -2
  266. package/.next/standalone/.next/server/app/login/page_client-reference-manifest.js +1 -1
  267. package/.next/standalone/.next/server/app/login/pick-workspace/page_client-reference-manifest.js +1 -1
  268. package/.next/standalone/.next/server/app/login/pick-workspace.html +2 -2
  269. package/.next/standalone/.next/server/app/login/pick-workspace.rsc +2 -2
  270. package/.next/standalone/.next/server/app/login.html +2 -2
  271. package/.next/standalone/.next/server/app/login.rsc +2 -2
  272. package/.next/standalone/.next/server/app/onboarding/page.js +2 -2
  273. package/.next/standalone/.next/server/app/onboarding/page.js.nft.json +1 -1
  274. package/.next/standalone/.next/server/app/onboarding/page_client-reference-manifest.js +1 -1
  275. package/.next/standalone/.next/server/app/onboarding.html +2 -2
  276. package/.next/standalone/.next/server/app/onboarding.rsc +3 -3
  277. package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  278. package/.next/standalone/.next/server/app/projects.html +2 -2
  279. package/.next/standalone/.next/server/app/projects.rsc +3 -3
  280. package/.next/standalone/.next/server/app/settings.html +2 -2
  281. package/.next/standalone/.next/server/app/settings.rsc +4 -4
  282. package/.next/standalone/.next/server/app-paths-manifest.json +46 -46
  283. package/.next/standalone/.next/server/chunks/1318.js +1 -1
  284. package/.next/standalone/.next/server/chunks/1559.js +2 -2
  285. package/.next/standalone/.next/server/chunks/2570.js +2 -2
  286. package/.next/standalone/.next/server/chunks/2572.js +1 -1
  287. package/.next/standalone/.next/server/chunks/2618.js +1 -1
  288. package/.next/standalone/.next/server/chunks/2961.js +1 -1
  289. package/.next/standalone/.next/server/chunks/3594.js +1 -0
  290. package/.next/standalone/.next/server/chunks/{2547.js โ†’ 4011.js} +3 -3
  291. package/.next/standalone/.next/server/chunks/4394.js +1 -0
  292. package/.next/standalone/.next/server/chunks/4827.js +1 -1
  293. package/.next/standalone/.next/server/chunks/5205.js +1 -0
  294. package/.next/standalone/.next/server/chunks/5245.js +1 -1
  295. package/.next/standalone/.next/server/chunks/{2282.js โ†’ 5351.js} +3 -3
  296. package/.next/standalone/.next/server/chunks/6113.js +1 -1
  297. package/.next/standalone/.next/server/chunks/6207.js +1 -1
  298. package/.next/standalone/.next/server/chunks/6506.js +3 -3
  299. package/.next/standalone/.next/server/chunks/6667.js +1 -0
  300. package/.next/standalone/.next/server/chunks/679.js +1 -1
  301. package/.next/standalone/.next/server/chunks/6995.js +1 -0
  302. package/.next/standalone/.next/server/chunks/7364.js +1 -1
  303. package/.next/standalone/.next/server/chunks/7368.js +1 -1
  304. package/.next/standalone/.next/server/chunks/7530.js +1 -1
  305. package/.next/standalone/.next/server/chunks/920.js +1 -1
  306. package/.next/standalone/.next/server/chunks/9213.js +1 -1
  307. package/.next/standalone/.next/server/chunks/9378.js +1 -1
  308. package/.next/standalone/.next/server/chunks/9793.js +1 -0
  309. package/.next/standalone/.next/server/middleware-build-manifest.js +1 -1
  310. package/.next/standalone/.next/server/middleware-manifest.json +5 -5
  311. package/.next/standalone/.next/server/pages/404.html +2 -2
  312. package/.next/standalone/.next/server/pages/500.html +1 -1
  313. package/.next/standalone/.next/server/pages-manifest.json +1 -1
  314. package/.next/standalone/.next/server/server-reference-manifest.js +1 -1
  315. package/.next/standalone/.next/server/server-reference-manifest.json +1 -1
  316. package/.next/standalone/.next/static/chunks/11595.b6f8ad33572b32fe.js +1 -0
  317. package/.next/standalone/.next/static/chunks/19887-9f459ee9e8d0855f.js +1 -0
  318. package/.next/standalone/.next/static/chunks/29108-b9b232255811ffa8.js +1 -0
  319. package/.next/standalone/.next/static/chunks/{31308-bb4a97b3f39c22dd.js โ†’ 31308-fda6febfb2882a28.js} +1 -1
  320. package/.next/standalone/.next/static/chunks/33456.e8550ad410031e29.js +1 -0
  321. package/.next/standalone/.next/static/chunks/35432-ee83da56c49ef6f8.js +1 -0
  322. package/.next/standalone/.next/static/chunks/4860.b405fc235b36271b.js +1 -0
  323. package/.next/standalone/.next/static/chunks/53073-5fd399cb25a11740.js +1 -0
  324. package/.next/standalone/.next/static/chunks/6603-07faab08560f7ecd.js +1 -0
  325. package/.next/standalone/.next/static/chunks/66980-652990fcf3212c94.js +10 -0
  326. package/.next/standalone/.next/static/chunks/78155-db70d9684a1e77a2.js +1 -0
  327. package/.next/standalone/.next/static/chunks/78917-7354d3b6908da7d1.js +1 -0
  328. package/.next/standalone/.next/static/chunks/82751-de255af4418d53e4.js +1 -0
  329. package/.next/standalone/.next/static/chunks/94643-6d31df78aa3074b5.js +1 -0
  330. package/.next/standalone/.next/static/chunks/96170-75da13decdb6f73f.js +1 -0
  331. package/.next/standalone/.next/static/chunks/99366-425e9ef22e60e3e2.js +1 -0
  332. package/.next/standalone/.next/static/chunks/99373.9dce8f30802824fc.js +1 -0
  333. package/.next/standalone/.next/static/chunks/app/(dashboard)/layout-cea0bb3e3a295bea.js +1 -0
  334. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/dashboard/page-007278623926490f.js +1 -0
  335. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/documents/[documentUuid]/page-b6ecaf52f6b81ec7.js +1 -0
  336. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/documents/{page-2c9d3f4c6e0ff807.js โ†’ page-82404154708e48a9.js} +1 -1
  337. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/graph/page-f5a351c544ed23d7.js +1 -0
  338. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/proposals/[proposalUuid]/page-3cd46bec9383b191.js +1 -0
  339. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/proposals/new/page-d5b222f379b2e8ca.js +1 -0
  340. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/proposals/{page-ed9415921188b4d3.js โ†’ page-6abc7d1785e2b999.js} +1 -1
  341. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/tasks/[taskUuid]/{page-c70af8cac7bdc483.js โ†’ page-7f87113e5d8bcf6e.js} +1 -1
  342. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/tasks/{page-715b000c156a080c.js โ†’ page-30ab1573c4bd466f.js} +1 -1
  343. package/.next/standalone/.next/static/chunks/app/(dashboard)/settings/page-b21d4184d9ca0b25.js +1 -0
  344. package/.next/standalone/.next/static/chunks/app/onboarding/page-3b6c54f887108635.js +1 -0
  345. package/.next/standalone/.next/static/chunks/{webpack-e181cbbb1e041891.js โ†’ webpack-b54e0c78eded76be.js} +1 -1
  346. package/.next/standalone/.next/static/css/893d99a21153c9b0.css +1 -0
  347. package/.next/standalone/package.json +1 -1
  348. package/.next/standalone/public/chorus-plugin/.claude-plugin/plugin.json +1 -1
  349. package/.next/standalone/public/chorus-plugin/agents/code-reviewer.md +1 -1
  350. package/.next/standalone/public/chorus-plugin/agents/proposal-reviewer.md +1 -0
  351. package/.next/standalone/public/chorus-plugin/agents/task-reviewer.md +2 -0
  352. package/.next/standalone/public/chorus-plugin/skills/brainstorm/SKILL.md +1 -1
  353. package/.next/standalone/public/chorus-plugin/skills/chorus/SKILL.md +4 -3
  354. package/.next/standalone/public/chorus-plugin/skills/develop/SKILL.md +1 -1
  355. package/.next/standalone/public/chorus-plugin/skills/docs/SKILL.md +68 -0
  356. package/.next/standalone/public/chorus-plugin/skills/idea/SKILL.md +1 -1
  357. package/.next/standalone/public/chorus-plugin/skills/openspec-aware/SKILL.md +1 -1
  358. package/.next/standalone/public/chorus-plugin/skills/proposal/SKILL.md +1 -1
  359. package/.next/standalone/public/chorus-plugin/skills/quick-dev/SKILL.md +1 -1
  360. package/.next/standalone/public/chorus-plugin/skills/review/SKILL.md +1 -1
  361. package/.next/standalone/public/chorus-plugin/skills/yolo/SKILL.md +1 -1
  362. package/.next/standalone/public/install-kiro.sh +10 -7
  363. package/.next/standalone/public/kiro-plugin/.kiro/agents/chorus-code-reviewer.json +1 -1
  364. package/.next/standalone/public/kiro-plugin/.kiro/agents/chorus-proposal-reviewer.json +1 -1
  365. package/.next/standalone/public/kiro-plugin/.kiro/agents/chorus-task-reviewer.json +1 -1
  366. package/.next/standalone/public/kiro-plugin/.kiro/agents/chorus.json +1 -0
  367. package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-brainstorm/SKILL.md +1 -1
  368. package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-develop/SKILL.md +1 -1
  369. package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-docs/SKILL.md +68 -0
  370. package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-idea/SKILL.md +1 -1
  371. package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-openspec-aware/SKILL.md +1 -1
  372. package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-proposal/SKILL.md +1 -1
  373. package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-quick-dev/SKILL.md +1 -1
  374. package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-review/SKILL.md +1 -1
  375. package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-yolo/SKILL.md +1 -1
  376. package/.next/standalone/public/kiro-plugin/.kiro/steering/chorus.md +3 -2
  377. package/.next/standalone/public/kiro-plugin/bin/chorus-api.sh +1 -1
  378. package/.next/standalone/public/skill/brainstorm-chorus/SKILL.md +1 -1
  379. package/.next/standalone/public/skill/chorus/SKILL.md +4 -3
  380. package/.next/standalone/public/skill/code-reviewer-chorus/SKILL.md +2 -2
  381. package/.next/standalone/public/skill/develop-chorus/SKILL.md +1 -1
  382. package/.next/standalone/public/skill/docs-chorus/SKILL.md +70 -0
  383. package/.next/standalone/public/skill/idea-chorus/SKILL.md +1 -1
  384. package/.next/standalone/public/skill/package.json +9 -5
  385. package/.next/standalone/public/skill/proposal-chorus/SKILL.md +1 -1
  386. package/.next/standalone/public/skill/proposal-reviewer-chorus/SKILL.md +2 -1
  387. package/.next/standalone/public/skill/quick-dev-chorus/SKILL.md +1 -1
  388. package/.next/standalone/public/skill/review-chorus/SKILL.md +1 -1
  389. package/.next/standalone/public/skill/task-reviewer-chorus/SKILL.md +2 -1
  390. package/.next/standalone/public/skill/yolo-chorus/SKILL.md +1 -1
  391. package/README.ja.md +31 -359
  392. package/README.ko.md +33 -360
  393. package/README.md +39 -367
  394. package/README.zh.md +36 -341
  395. package/cli/claude-spawner.mjs +15 -6
  396. package/cli/client-args.mjs +8 -0
  397. package/cli/codex-spawner.mjs +7 -3
  398. package/cli/control-handler.mjs +13 -3
  399. package/cli/credentials.mjs +41 -0
  400. package/cli/daemon-config.mjs +202 -1
  401. package/cli/daemon-install-config.mjs +38 -1
  402. package/cli/daemon-rest-client.mjs +11 -3
  403. package/cli/daemon.mjs +274 -11
  404. package/cli/event-router.mjs +17 -5
  405. package/cli/login.mjs +90 -2
  406. package/cli/prompts.mjs +116 -1
  407. package/cli/turn-reporter.mjs +5 -1
  408. package/cli/wake-queue.mjs +57 -35
  409. package/cli/waker.mjs +125 -36
  410. package/package.json +1 -1
  411. package/prisma/migrations/20260814101500_add_typed_assignment_provenance/migration.sql +2 -0
  412. package/prisma/schema.prisma +4 -2
  413. package/.next/standalone/.next/server/chunks/1114.js +0 -1
  414. package/.next/standalone/.next/server/chunks/1524.js +0 -1
  415. package/.next/standalone/.next/server/chunks/330.js +0 -1
  416. package/.next/standalone/.next/server/chunks/3525.js +0 -1
  417. package/.next/standalone/.next/server/chunks/4070.js +0 -1
  418. package/.next/standalone/.next/server/chunks/8540.js +0 -1
  419. package/.next/standalone/.next/static/chunks/11595.69e774e65ffda45f.js +0 -1
  420. package/.next/standalone/.next/static/chunks/18351-12dc856208d79e10.js +0 -1
  421. package/.next/standalone/.next/static/chunks/33456.48112aa459fd9c68.js +0 -1
  422. package/.next/standalone/.next/static/chunks/37938-0b9a2b891c04b166.js +0 -1
  423. package/.next/standalone/.next/static/chunks/4340-a33120fb742af57e.js +0 -1
  424. package/.next/standalone/.next/static/chunks/4860.496d21fc6db9e153.js +0 -1
  425. package/.next/standalone/.next/static/chunks/68326-61feeb2f6cddd338.js +0 -1
  426. package/.next/standalone/.next/static/chunks/72974-7e63b565a9ef443b.js +0 -1
  427. package/.next/standalone/.next/static/chunks/78917-f91904c6c2d12dab.js +0 -1
  428. package/.next/standalone/.next/static/chunks/80748-e971c5a5d6ef967d.js +0 -1
  429. package/.next/standalone/.next/static/chunks/80904-973284d1fe916c38.js +0 -1
  430. package/.next/standalone/.next/static/chunks/94426-39b6da238425f9b7.js +0 -10
  431. package/.next/standalone/.next/static/chunks/94470-cae3b3ad4e51d2ff.js +0 -1
  432. package/.next/standalone/.next/static/chunks/94643-ba1ebff5769d2b50.js +0 -1
  433. package/.next/standalone/.next/static/chunks/99373.5ac319a55a8f99a1.js +0 -1
  434. package/.next/standalone/.next/static/chunks/app/(dashboard)/layout-177a3fa88be94b4a.js +0 -1
  435. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/dashboard/page-ae7c9d32fa1c2532.js +0 -1
  436. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/documents/[documentUuid]/page-4a8ac49308a4e23b.js +0 -1
  437. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/graph/page-03408be00dc4822b.js +0 -1
  438. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/proposals/[proposalUuid]/page-dd5a0d1e50226c78.js +0 -1
  439. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/proposals/new/page-596d97796dd55e2f.js +0 -1
  440. package/.next/standalone/.next/static/chunks/app/(dashboard)/settings/page-e786a59c24eb5bda.js +0 -1
  441. package/.next/standalone/.next/static/chunks/app/onboarding/page-df7c97cefb508201.js +0 -1
  442. package/.next/standalone/.next/static/css/ef995b001437e3ef.css +0 -1
  443. /package/.next/standalone/.next/static/{8kqUZqMF8xgdDXm_I4XdF โ†’ YTZwWTfE0BsJnjCDYCEHi}/_buildManifest.js +0 -0
  444. /package/.next/standalone/.next/static/{8kqUZqMF8xgdDXm_I4XdF โ†’ YTZwWTfE0BsJnjCDYCEHi}/_ssgManifest.js +0 -0
package/README.ko.md CHANGED
@@ -2,7 +2,7 @@
2
2
  <img src="packages/landing/public/images/chorus-slug.png" alt="Chorus" width="240" />
3
3
  </p>
4
4
 
5
- <p align="center"><strong>AI-์ธ๊ฐ„ ํ˜‘์—…์„ ์œ„ํ•œ Agent Harness</strong></p>
5
+ <p align="center"><strong>๋‹น์‹ ์˜ ์ฝ”๋”ฉ ์—์ด์ „ํŠธ ์œ„์— ์–น๋Š” Harness. ์—์ด์ „ํŠธ๊ฐ€ ์ œ์•ˆํ•˜๊ณ , ์‚ฌ๋žŒ์ด ๊ฒ€์ฆํ•˜๊ณ , ์†Œํ”„ํŠธ์›จ์–ด๊ฐ€ ๋ฐฐํฌ๋ฉ๋‹ˆ๋‹ค.</strong></p>
6
6
 
7
7
  <p align="center">
8
8
  <a href="https://discord.gg/SwcCMaMmR">
@@ -15,7 +15,9 @@
15
15
 
16
16
  <p align="center"><a href="README.md">English</a> ยท <a href="README.zh.md">ไธญๆ–‡</a> ยท <strong>ํ•œ๊ตญ์–ด</strong> ยท <a href="README.ja.md">ๆ—ฅๆœฌ่ชž</a></p>
17
17
 
18
- Chorus๋Š” Agent Harness์ž…๋‹ˆ๋‹ค โ€” LLM ์—์ด์ „ํŠธ๋ฅผ ๊ฐ์‹ธ ์„ธ์…˜ ๋ผ์ดํ”„์‚ฌ์ดํด, ์ž‘์—… ์ƒํƒœ, ํ•˜์œ„ ์—์ด์ „ํŠธ ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜, ๊ด€์ธก ๊ฐ€๋Šฅ์„ฑ, ์žฅ์•  ๋ณต๊ตฌ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ์ธํ”„๋ผ ๊ณ„์ธต์ž…๋‹ˆ๋‹ค. ์„ธ๋ฐ€ํ•˜๊ฒŒ ์„ค์ • ๊ฐ€๋Šฅํ•œ ๊ถŒํ•œ์„ ๊ฐ€์ง„ ์—ฌ๋Ÿฌ AI ์—์ด์ „ํŠธ์™€ ์‚ฌ๋žŒ์ด ์š”๊ตฌ์‚ฌํ•ญ๋ถ€ํ„ฐ ๋ฐฐํฌ๊นŒ์ง€ ์ „์ฒด ์›Œํฌํ”Œ๋กœ๋ฅผ ํ†ตํ•ด ํ˜‘์—…ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค๋‹ˆ๋‹ค.
18
+ <p align="center"><a href="https://doc.chorus-ai.dev/ko/"><strong>๐Ÿ“– ๋ฌธ์„œ</strong></a></p>
19
+
20
+ Chorus๋Š” ๋‹น์‹ ์˜ ์ฝ”๋”ฉ ์—์ด์ „ํŠธ ์œ„์— ์–น๋Š” Harness์ž…๋‹ˆ๋‹ค. ์ฝ”๋”ฉ ์—์ด์ „ํŠธ๊ฐ€ ๋ชจ๋ธ์„ harnessํ•˜์—ฌ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•œ๋‹ค๋ฉด, Chorus๋Š” ๊ทธ๋ณด๋‹ค ํ•œ ๋‹จ๊ณ„ ์œ„์˜ Harness๋กœ์„œ, ๊ทธ๋Ÿฐ ์—์ด์ „ํŠธ ํ•œ ํŒ€ ์ „์ฒด์™€ ๋‹น์‹ ์„ ํ•˜๋‚˜์˜ ํŒŒ์ดํ”„๋ผ์ธ์œผ๋กœ ๋ฌถ์Šต๋‹ˆ๋‹ค. ์—์ด์ „ํŠธ๊ฐ€ ์ œ์•ˆํ•˜๊ณ , ์‚ฌ๋žŒ์ด ๊ฒ€์ฆํ•˜๊ณ , ์•„์ด๋””์–ด๊ฐ€ ๋ฐฐํฌ๋œ ์†Œํ”„ํŠธ์›จ์–ด๋กœ ๋ฐ”๋€๋‹ˆ๋‹ค. ๊ทธ ์•„๋ž˜์—์„œ๋Š” ๋ฉ€ํ‹ฐ ์—์ด์ „ํŠธ์™€ ์‚ฌ๋žŒ์ด ํ•จ๊ป˜ํ•˜๋Š” ํ˜‘์—…์ด ํ”๋“ค๋ฆฌ์ง€ ์•Š๋„๋ก ํ•˜๋Š” ๊ฒƒ๋“ค์„ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค: ์„ธ์…˜ ๋ผ์ดํ”„์‚ฌ์ดํด, ์ž‘์—… ์ƒํƒœ, ํ•˜์œ„ ์—์ด์ „ํŠธ ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜, ๊ด€์ธก ๊ฐ€๋Šฅ์„ฑ, ์žฅ์•  ๋ณต๊ตฌ. ๋ชจ๋“  AI ์—์ด์ „ํŠธ๋Š” ์„ธ๋ฐ€ํ•˜๊ฒŒ ์„ค์ • ๊ฐ€๋Šฅํ•œ ๊ถŒํ•œ์„ ๊ฐ–์Šต๋‹ˆ๋‹ค.
19
21
 
20
22
  **[AI-DLC(AI-Driven Development Lifecycle)](https://aws.amazon.com/blogs/devops/ai-driven-development-life-cycle/)** ๋ฐฉ๋ฒ•๋ก ์—์„œ ์˜๊ฐ์„ ๋ฐ›์•˜์Šต๋‹ˆ๋‹ค. ํ•ต์‹ฌ ์ฒ ํ•™์€ **Reversed Conversation** โ€” AI๊ฐ€ ์ œ์•ˆํ•˜๊ณ , ์‚ฌ๋žŒ์ด ๊ฒ€์ฆํ•ฉ๋‹ˆ๋‹ค.
21
23
 
@@ -30,151 +32,40 @@ Idea โ”€โ”€> Proposal โ”€โ”€> [Document + Task DAG] โ”€โ”€> Execute โ”€โ”€> Veri
30
32
  ์ƒ์„ฑ + ๊ตฌ์ฒดํ™” + ์ดˆ์•ˆ + ๋ณด๊ณ  + ๊ฒ€์ฆ + ์ข…๋ฃŒ
31
33
  ```
32
34
 
33
- ๊ฐ ๋‹จ๊ณ„ ์•„๋ž˜์— ์ ํžŒ ๊ฒƒ์€ ํ•ด๋‹น ๋‹จ๊ณ„์—์„œ ์•กํ„ฐ์—๊ฒŒ ํ•„์š”ํ•œ **๊ถŒํ•œ**์ž…๋‹ˆ๋‹ค โ€” ์‚ฌ๋žŒ, ์—์ด์ „ํŠธ(ํ”„๋ฆฌ์…‹ ๋˜๋Š” Custom), ๋˜๋Š” ๋‘˜ ๋‹ค์—๊ฒŒ ๋ถ€์—ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ณ ์ •๋œ ์—ญํ• ์€ ์—†์œผ๋ฉฐ, 5 ร— 3 ๊ถŒํ•œ ๋งคํŠธ๋ฆญ์Šค์˜ ์–ด๋–ค ์กฐํ•ฉ๋„ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ [`docs/PERMISSIONS.md`](docs/PERMISSIONS.md)๋ฅผ ์ฐธ๊ณ ํ•˜์„ธ์š”.
35
+ ๊ฐ ๋‹จ๊ณ„ ์•„๋ž˜์— ์ ํžŒ ๊ฒƒ์€ ํ•ด๋‹น ๋‹จ๊ณ„์—์„œ ์•กํ„ฐ์—๊ฒŒ ํ•„์š”ํ•œ **๊ถŒํ•œ**์ž…๋‹ˆ๋‹ค โ€” ์‚ฌ๋žŒ, ์—์ด์ „ํŠธ, ๋˜๋Š” ๋‘˜ ๋‹ค์—๊ฒŒ ๋ถ€์—ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ณ ์ •๋œ ์—ญํ• ์€ ์—†์œผ๋ฉฐ, 5 ร— 3 ๊ถŒํ•œ ๋งคํŠธ๋ฆญ์Šค์˜ ์–ด๋–ค ์กฐํ•ฉ๋„ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. โ†’ [์—์ด์ „ํŠธ ๊ถŒํ•œ](https://doc.chorus-ai.dev/ko/guides/manage-agents/)
34
36
 
35
37
  ---
36
38
 
37
39
  ## ์ตœ๊ทผ ์—…๋ฐ์ดํŠธ
38
40
 
41
+ **[v0.16.1](https://chorus-ai.dev/blog/chorus-v0.16.1-release/)** โ€” ์ด์ œ ํ•˜๋‚˜์˜ `chorus daemon`์ด ์„œ๋กœ ๋…๋ฆฝ์ ์ธ ์—ฌ๋Ÿฌ ์—์ด์ „ํŠธ๋ฅผ ๋™์‹œ์— ์„œ๋น„์Šคํ•ฉ๋‹ˆ๋‹ค. ๊ฐ ์—์ด์ „ํŠธ๋Š” `agents[]` ๋ฐฐ์—ด๋กœ ์ž์‹ ์˜ ํ‚คยท์ž‘์—… ๋””๋ ‰ํ„ฐ๋ฆฌยท๋ฐฑ์—”๋“œยท๊ถŒํ•œ์„ ๊ฐ€์ง‘๋‹ˆ๋‹ค. ์—์ด์ „ํŠธ๋ผ๋ฆฌ @๋ฉ˜์…˜์œผ๋กœ ์ž‘์—…์„ ๋„˜๊ธธ ์ˆ˜ ์žˆ๊ณ , ๊ฐ ์›จ์ดํฌ๋Š” ํ•ด๋‹น ์—์ด์ „ํŠธ ์ž์‹ ์˜ ํ”„๋กœ์ ํŠธ ๋””๋ ‰ํ„ฐ๋ฆฌ์— ๋„์ฐฉํ•ฉ๋‹ˆ๋‹ค.
42
+
43
+ **[v0.16.0](https://chorus-ai.dev/blog/chorus-v0.16.0-release/)** โ€” ์—์ด์ „ํŠธ๋ฅผ ๋ฌธ์„œ ์‚ฌ์ดํŠธ([doc.chorus-ai.dev](https://doc.chorus-ai.dev))๋กœ ์•ˆ๋‚ดํ•˜๋Š” `docs` ์Šคํ‚ฌ์„ ์ถ”๊ฐ€ํ•ด, ๊ธฐ์–ต์— ์˜์กดํ•˜์ง€ ์•Š๊ณ  ํ˜„์žฌ ๋ฌธ์„œ๋ฅผ ์ฝ๊ณ  ๋‹ตํ•˜๋„๋ก ํ–ˆ์Šต๋‹ˆ๋‹ค.
44
+
39
45
  **[v0.15.0](https://chorus-ai.dev/blog/chorus-v0.15.0-release/)** โ€” ํ”„๋กœ์ ํŠธ๋ณ„ Agent ์ž‘์—… ๋””๋ ‰ํ„ฐ๋ฆฌ: ๊ฐ ์‚ฌ์šฉ์ž๊ฐ€ ํ”„๋กœ์ ํŠธ์˜ Agent๋งˆ๋‹ค ํ˜ธ์ŠคํŠธ์™€ cwd๋ฅผ ์ง€์ •ํ•˜๊ณ , ๋ฐ๋ชฌ์ด ํ—ˆ์šฉํ•œ ๋ฃจํŠธ๋งŒ ํƒ์ƒ‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐฐ์ •, ์›จ์ดํฌ, ์žฌ๊ฐœ, ํ›„์† ํ„ด์—์„œ ๊ฐ™์€ ์‹คํ–‰ ์œ„์น˜๋ฅผ ์‚ฌ์šฉํ•˜๋ฉฐ ์ง„ํ–‰ ์ค‘์ธ ์„ธ์…˜์€ ์ด๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. Codex๋Š” ์žฌ๊ฐœ ๊ฐ€๋Šฅํ•œ ๋ฐฑ์—”๋“œ thread ID๋ฅผ ๋ณ„๋„๋กœ ์ €์žฅํ•˜๊ณ , ๋” ์ด์ƒ ํ•„์š”ํ•˜์ง€ ์•Š์€ Chorus session ๊ด€๋ฆฌ ๋‹จ๊ณ„๋ฅผ ์ œ๊ฑฐํ–ˆ์Šต๋‹ˆ๋‹ค.
40
46
 
41
47
  **[v0.14.1](https://chorus-ai.dev/blog/chorus-v0.14.1-release/)** โ€” Amazon Kiro CLI๊ฐ€ ๋„ค ๋ฒˆ์งธ ์—ฐ๊ฒฐ ๋ฐฉ์‹์ด ๋˜์—ˆ์Šต๋‹ˆ๋‹ค(Kiro CLI v2): ๋ช…๋ น ํ•œ ์ค„๋กœ ์„ค์น˜ํ•˜๋Š” `install-kiro.sh` ํ”Œ๋Ÿฌ๊ทธ์ธ๊ณผ `--agent kiro` ๋ฐ๋ชฌ ๋ฐฑ์—”๋“œ, ์—ฌ๊ธฐ์— ๋ช‡ ๊ฐ€์ง€ ๋ฐ๋ชฌ ์ˆ˜์ •.
42
48
 
43
49
  **[v0.14.0](https://chorus-ai.dev/blog/chorus-v0.14.0-release/)** โ€” ์•ฑ ์ „์ฒด ๋‹คํฌ ๋ชจ๋“œ(๋ผ์ดํŠธ / ๋‹คํฌ / ์‹œ์Šคํ…œ). ์ฐธ๊ณ  ์ž๋ฃŒ๋ฅผ ์–ด๋–ค ์•„์ด๋””์–ดยท์ œ์•ˆยท์ž‘์—…์—๋„ ์ฒจ๋ถ€ํ•  ์ˆ˜ ์žˆ๊ณ , ์ธ๋ผ์ธ์œผ๋กœ๋„ MCP๋ฅผ ํ†ตํ•ด์„œ๋„ ์ฝ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•œ๊ตญ์–ด์™€ ์ผ๋ณธ์–ด ์ถ”๊ฐ€(ํ•œ๊ตญ์–ด๋Š” ์ปค๋ฎค๋‹ˆํ‹ฐ ๊ธฐ์—ฌ). ๊ทธ๋ฃนํ™”๋ฅผ ์œ„ํ•œ **ํ…Œ๋งˆ** ์•„์ด๋””์–ด, ๊ทธ๋ฆฌ๊ณ  ๋ฐ๋ชฌ์˜ ๊ฐœ๋ฐœ ์‹œ์ž‘ / Yolo ๋ฒ„ํŠผ, ๋Œ€ํ™”์‹ ์•„์ด๋””์–ด ์ž…๋ ฅ, ํฌ๋ž˜์‹œ ๋ณต๊ตฌ, `chorus daemon install`.
44
50
 
45
- **[v0.13.0](https://chorus-ai.dev/blog/chorus-v0.13.0-release/)** โ€” ํ”„๋กœ์ ํŠธ๋ณ„ ๋ฆฌ์†Œ์Šค ๋งˆ์ธ๋“œ๋งต: ์ƒˆ๋กœ์šด Graph ๋ทฐ๊ฐ€ ๊ฐ ํ”„๋กœ์ ํŠธ์˜ ์•„์ด๋””์–ดยท์ œ์•ˆยท๋ฌธ์„œยท์ž‘์—…์„ ํ”„๋กœ์ ํŠธ ์ž์ฒด ๊ตฌ์กฐ์—์„œ ์ƒ์„ฑํ•œ ํ•˜๋‚˜์˜ ์ ‘์„ ์ˆ˜ ์žˆ๋Š” ํŠธ๋ฆฌ๋กœ ์—ฎ์Šต๋‹ˆ๋‹ค. ๋ชจ๋“  ์นด๋“œ์— ํ˜„์žฌ ์ƒํƒœ๊ฐ€ ํ‘œ์‹œ๋˜๋ฉฐ(์•„์ด๋””์–ด๋Š” ์•„์ด๋””์–ด ํŠธ๋ž˜์ปค๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” ํŒŒ์ƒ ํŒŒ์ดํ”„๋ผ์ธ ์ƒํƒœ๋ฅผ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค), ์ œ๋ชฉ ๊ฒ€์ƒ‰์€ ๋ชจ๋“  ์ผ์น˜ ํ•ญ๋ชฉ๊นŒ์ง€์˜ ๊ฒฝ๋กœ๋ฅผ ์ž๋™์œผ๋กœ ํŽผ์ณ ํ•˜์ด๋ผ์ดํŠธ/๋””๋ฐํ•˜๊ณ  ์ด์ „/๋‹ค์Œ ํƒ์ƒ‰์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๋™์ผํ•œ ์คŒ/ํŒฌ ์บ”๋ฒ„์Šค๊ฐ€ ๋ฐ์Šคํฌํ†ฑ๊ณผ ๋ชจ๋ฐ”์ผ ๋ชจ๋‘์—์„œ ๋ Œ๋”๋ง๋ฉ๋‹ˆ๋‹ค(ํ•€์น˜ + ๋”๋ธ”ํƒญ).
46
-
47
- **[v0.12.0](https://chorus-ai.dev/blog/chorus-v0.12.0-release/)** โ€” ์ฃผ์†Œ ์ง€์ • ๊ฐ€๋Šฅํ•œ ๋ฐ๋ชฌ ์ธ์Šคํ„ด์Šค: ํ•˜๋‚˜์˜ `chorus daemon`์ด ์—ฌ๋Ÿฌ ์ž‘์—… ๋””๋ ‰ํ„ฐ๋ฆฌ(`--cwd`)๋ฅผ ์„œ๋น„์Šคํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๊ฐ `(agent, host, cwd)`๊ฐ€ ํ”„๋ ˆ์ฆŒ์Šคยท@๋ฉ˜์…˜ยท๋ฐฐ์ • ์ „๋ฐ˜์— ๊ฑธ์ณ ๊ฐœ๋ณ„์ ์œผ๋กœ ๋ณด์ด๊ณ  ๊ฐœ๋ณ„์ ์œผ๋กœ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋Š” ์ธ์Šคํ„ด์Šค๊ฐ€ ๋ฉ๋‹ˆ๋‹ค. ์•„์ด๋””์–ด์— ์ธ์Šคํ„ด์Šค๋ฅผ ํ•œ ๋ฒˆ ๊ณ ์ •ํ•˜๋ฉด ๊ทธ ์•„๋ž˜์˜ ์ œ์•ˆยท์ž‘์—…ยท์›จ์ดํฌ๊ฐ€ ์ด๋ฅผ ์ƒ์†ํ•ฉ๋‹ˆ๋‹ค. ๊ณ ์ •๋œ ์›จ์ดํฌ๋Š” ๋ธŒ๋กœ๋“œ์บ์ŠคํŠธ๊ฐ€ ์•„๋‹ˆ๋ผ ๋ฐ”๋กœ ๊ทธ ์ธ์Šคํ„ด์Šค๋กœ ์ •ํ™•ํžˆ ์ „๋‹ฌ๋ฉ๋‹ˆ๋‹ค. ๋Œ“๊ธ€์˜ @๋ฉ˜์…˜์€ ์‹ค์‹œ๊ฐ„ ์˜จ๋ผ์ธ ์ƒํƒœ ๋ฐฐ์ง€๋กœ ๋ Œ๋”๋ง๋˜๊ณ , ๋Œ“๊ธ€์€ ์ปค์„œ ๊ธฐ๋ฐ˜ ๋ฌดํ•œ ์Šคํฌ๋กค๋กœ ์ „ํ™˜๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
48
-
49
- **[v0.11.0](https://chorus-ai.dev/blog/chorus-v0.11.0-release/)** โ€” Chorus ๋ฐ๋ชฌ: `chorus daemon`์€ ์—ฌ๋Ÿฌ๋ถ„์˜ ๋จธ์‹ ์„ ์ƒ์ฃผํ˜• ์—์ด์ „ํŠธ ๋Ÿฐํƒ€์ž„์œผ๋กœ ๋งŒ๋“ค์–ด, ๋””์ŠคํŒจ์น˜๊ฐ€ ์žˆ์„ ๋•Œ๋งˆ๋‹ค ๋กœ์ปฌ Claude Code๋ฅผ ๊นจ์›๋‹ˆ๋‹ค. Agent Connections ํ™”๋ฉด์ด ์ŠคํŠธ๋ฆฌ๋ฐ ํŠธ๋žœ์Šคํฌ๋ฆฝํŠธ, ์ง€์‹œ ์ฃผ์ž…, ์ค‘๋‹จ / ์žฌ๊ฐœ ๊ฐ™์€ ์‹ค์‹œ๊ฐ„ ๊ด€์ธก ๊ฐ€๋Šฅ์„ฑ๊ณผ ์ œ์–ด๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ "๊ตฌ์ฒดํ™” ๊ฒ€์ฆ" ๋ฒ„ํŠผ์ด ๋ฐฐ์ •๋œ ์—์ด์ „ํŠธ๋ฅผ ๊นจ์›Œ ์ œ์•ˆ์„ ์ž‘์„ฑํ•˜๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค.
50
-
51
- **[v0.10.0](https://chorus-ai.dev/blog/chorus-v0.10.0-release/)** โ€” ๋‹จ์ผ ๋ถ€๋ชจ ์•„์ด๋””์–ด ๊ณ„๋ณด: ํ•˜๋‚˜์˜ ์•„์ด๋””์–ด๋Š” ์ž์‹์„ ํŒŒ์ƒ์‹œํ‚ค๊ฑฐ๋‚˜ ๋‹ค๋ฅธ ์•„์ด๋””์–ด ์•„๋ž˜์— ๋ถ™์–ด ์ˆฒ(forest)์„ ์ด๋ฃฐ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ด€๊ณ„๋Š” ์˜๋„์ ์œผ๋กœ ์•ฝํ•˜๊ฒŒ ์œ ์ง€๋ฉ๋‹ˆ๋‹ค โ€” ๋ถ€๋ชจ๋Š” ์ฝ๊ธฐ ์ „์šฉ "+N derived" ์š”์•ฝ๋งŒ ๋ณด์—ฌ์ค„ ๋ฟ, ์ž์‹์˜ ์š”๊ตฌ์‚ฌํ•ญ ๊ตฌ์ฒดํ™”ยท์ œ์•ˆยท์ž‘์—… ํ๋ฆ„์„ ์ „ํ˜€ ์ œ์•ฝํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์•„์ด๋””์–ด ํƒ์ƒ‰์€ Dashboard๋กœ ํ†ตํ•ฉ๋˜์—ˆ์Šต๋‹ˆ๋‹ค(Ideas / Lineage / Stats ์„ธ ๊ฐ€์ง€ ๋ทฐ ์ „ํ™˜, ์ ์‘ํ˜• ๊ธฐ๋ณธ๊ฐ’ ํฌํ•จ). ๋…๋ฆฝ์ ์ด๋˜ Idea List ํŽ˜์ด์ง€๋Š” ํ์ง€๋˜์—ˆ๊ณ , ๊ทธ URL์€ Dashboard๋กœ 308 ๋ฆฌ๋””๋ ‰์…˜๋ฉ๋‹ˆ๋‹ค.
52
-
53
- **[v0.9.4](https://chorus-ai.dev/blog/chorus-v0.9.4-release/)** โ€” OpenClaw ํ”Œ๋Ÿฌ๊ทธ์ธ์„ OpenClaw 2026.4.27 Plugin SDK ์œ„์—์„œ ์ „๋ฉด ์žฌ์ž‘์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค(๋„ค์ดํ‹ฐ๋ธŒ MCP ๋“ฑ๋ก, SSE ์›จ์ดํฌ๋ฅผ ์œ„ํ•œ `runEmbeddedAgent`, ๋ฆฌ๋ทฐ์–ด๋ฅผ ๋„ค์ดํ‹ฐ๋ธŒ ์Šคํ‚ฌ๋กœ ๊ตฌํ˜„). Codex ํ”Œ๋Ÿฌ๊ทธ์ธ ํ›…์€ ์ด์ œ ํŒจํ‚ค์ง€ ์•ˆ์— ํ•จ๊ป˜ ์ œ๊ณต๋˜๋ฉฐ, ์ธ์Šคํ†จ๋Ÿฌ๊ฐ€ ์‚ฌ์šฉ์ž ๋””๋ ‰ํ„ฐ๋ฆฌ์— ์žˆ๋Š” ์˜ˆ์ „ ํ›… ์‚ฌ๋ณธ์„ ์ •๋ฆฌํ•ฉ๋‹ˆ๋‹ค.
54
-
55
- **[v0.9.0](https://chorus-ai.dev/blog/chorus-v0.9.0-release/)** โ€” ๋ชจํ˜ธํ•œ ์•„์ด๋””์–ด๋ฅผ ์œ„ํ•œ ๋ธŒ๋ ˆ์ธ์Šคํ† ๋ฐ ์Šคํ‚ฌ(๊ตฌ์กฐํ™”๋œ Q&A ์ด์ „์— ๋จผ์ € ์ž์œ ๋กœ์šด ๋Œ€ํ™”๋ฅผ ์ง„ํ–‰)๊ณผ ์•„์ด๋””์–ด ์™„๋ฃŒ ๋ฆฌํฌํŠธ(์ถœ์‹œ๋œ ๋ชจ๋“  ์•„์ด๋””์–ด์— Summary / Decisions / Follow-ups ์ •๋ฆฌ๊ฐ€ ๋ถ™์–ด ์•„์ด๋””์–ด ๊ฐœ์š”์— ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค).
56
-
57
- **[v0.8.0](https://chorus-ai.dev/blog/chorus-v0.8.0-release/)** โ€” OpenSpec-aware ๋ชจ๋“œ(Claude Code): `openspec/` ๋””๋ ‰ํ„ฐ๋ฆฌ์™€ `openspec` CLI๊ฐ€ ๋ชจ๋‘ ์กด์žฌํ•  ๋•Œ ์ž๋™์œผ๋กœ ํ™œ์„ฑํ™”๋˜๋ฉฐ, `/opsx/{explore,propose,apply,archive}`์™€ ๊ฒ€์ฆ ํ›„ archive ํŠธ๋ฆฌ๊ฑฐ ํ›…์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.
58
-
59
51
  > ์ „์ฒด ๋ณ€๊ฒฝ ์ด๋ ฅ: [CHANGELOG.md](CHANGELOG.md)
60
52
 
61
53
  ---
62
54
 
63
55
  ## ๋น ๋ฅธ ์‹œ์ž‘
64
56
 
65
- ๋‘ ๊ฐœ์˜ ๋ช…๋ น์œผ๋กœ Chorus๋ฅผ ๋กœ์ปฌ์—์„œ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค โ€” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋„, Docker๋„, ์„ค์ • ํŒŒ์ผ๋„ ํ•„์š” ์—†์Šต๋‹ˆ๋‹ค.
57
+ ๋‘ ๊ฐœ์˜ ๋ช…๋ น์ด๋ฉด ๋ฉ๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋„, Docker๋„, ์„ค์ • ํŒŒ์ผ๋„ ํ•„์š” ์—†์Šต๋‹ˆ๋‹ค.
66
58
 
67
59
  ```bash
68
60
  npm install -g @chorus-aidlc/chorus
69
61
  chorus
70
62
  ```
71
63
 
72
- ์ด๊ฒŒ ์ „๋ถ€์ž…๋‹ˆ๋‹ค. Chorus๋Š” ๋‚ด์žฅ PostgreSQL(PGlite)๋กœ ์‹œ์ž‘ํ•ด ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์„ ์ž๋™์œผ๋กœ ์‹คํ–‰ํ•˜๊ณ  **http://localhost:8637** ์—์„œ ์—ด๋ฆฝ๋‹ˆ๋‹ค.
73
-
74
- > **์ฐธ๊ณ :** PGlite๋Š” ๋‚ด์žฅํ˜• ๋‹จ์ผ ํ”„๋กœ์„ธ์Šค PostgreSQL์ž…๋‹ˆ๋‹ค โ€” ๋กœ์ปฌ ๋‹จ์ผ ์‚ฌ์šฉ์ž ์šฉ๋„์—๋Š” ํ›Œ๋ฅญํ•˜์ง€๋งŒ, ๋™์‹œ ๋ถ€ํ•˜๊ฐ€ ๊ฑธ๋ฆฌ๋ฉด ์ปค๋„ฅ์…˜ ์ฒ˜๋ฆฌ์— ํ•œ๊ณ„๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๋Ÿฌ ์—์ด์ „ํŠธ๋‚˜ ์‚ฌ์šฉ์ž๋ฅผ ๋™์‹œ์— ์‹คํ–‰ํ•  ๊ณ„ํš์ด๋ผ๋ฉด `DATABASE_URL=postgresql://...`๋กœ ์™ธ๋ถ€ PostgreSQL์„ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ ์ „์ฒด [Docker Compose](#docker๋กœ-์‹œ์ž‘ํ•˜๊ธฐ-๊ถŒ์žฅ) ์Šคํƒ์„ ์ด์šฉํ•˜์„ธ์š”.
75
-
76
- ๊ธฐ๋ณธ ๋กœ๊ทธ์ธ ์ •๋ณด: `admin@chorus.local` / `chorus`
77
-
78
- ### ์˜ต์…˜
79
-
80
- ```bash
81
- # ์ปค์Šคํ…€ ํฌํŠธ
82
- chorus --port 3000
83
-
84
- # ์ปค์Šคํ…€ ๋ฐ์ดํ„ฐ ๋””๋ ‰ํ„ฐ๋ฆฌ(๊ธฐ๋ณธ๊ฐ’: ~/.chorus-data)
85
- chorus --data-dir /path/to/data
86
-
87
- # ์ปค์Šคํ…€ ์ธ์ฆ ์ •๋ณด
88
- DEFAULT_USER=me@example.com DEFAULT_PASSWORD=secret chorus
89
-
90
- # ๋‚ด์žฅ PGlite ๋Œ€์‹  ์™ธ๋ถ€ PostgreSQL ์‚ฌ์šฉ
91
- DATABASE_URL=postgresql://user:pass@host:5432/chorus chorus
92
- ```
93
-
94
- ### ๊ทธ ๋ฐ–์˜ ๋ฐฐํฌ ๋ฐฉ๋ฒ•
95
-
96
- | ๋ฐฉ๋ฒ• | ๋ช…๋ น |
97
- |--------|---------|
98
- | **npm**(๊ฐ€์žฅ ๊ฐ„๋‹จ) | `npm i -g @chorus-aidlc/chorus && chorus` |
99
- | **Docker(๋‹จ๋…)** | [`docker compose -f docker-compose.local.yml up`](#docker๋กœ-์‹œ์ž‘ํ•˜๊ธฐ-๊ถŒ์žฅ) |
100
- | **Docker(ํ’€ ์Šคํƒ)** | [`docker compose up`](#docker๋กœ-์‹œ์ž‘ํ•˜๊ธฐ-๊ถŒ์žฅ)(PostgreSQL + Redis + Chorus) |
101
- | **AWS CDK** | [AWS์— ๋ฐฐํฌ](#aws์—-๋ฐฐํฌ) |
102
-
103
- ### `chorus daemon` โ€” ์—์ด์ „ํŠธ ๋Ÿฐํƒ€์ž„์œผ๋กœ ์—ฐ๊ฒฐ
104
-
105
- `chorus daemon`์€ ์—ฌ๋Ÿฌ๋ถ„์˜ ๋กœ์ปฌ ๋จธ์‹ ์„ ์—์ด์ „ํŠธ ๋Ÿฐํƒ€์ž„์œผ๋กœ์„œ ์›๊ฒฉ Chorus ์„œ๋ฒ„์— ์—ฐ๊ฒฐํ•˜๊ณ , Chorus๊ฐ€ ๋ฐฐ์ •ํ•œ ์ž‘์—…์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.
106
-
107
- > **์—์ด์ „ํŠธ ๋ฐฑ์—”๋“œ:** **Claude Code**(๊ธฐ๋ณธ)์™€ **Codex**๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค โ€” `--agent codex`(๋˜๋Š” `CHORUS_AGENT=codex`)๋กœ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ์—์ด์ „ํŠธ CLI(Copilot ๋“ฑ)์— ๋Œ€ํ•œ ์ง€์›์€ ํ–ฅํ›„ ๋ฆด๋ฆฌ์Šค์—์„œ ์˜ˆ์ •๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
108
-
109
- ```bash
110
- chorus login # ์ธ์ฆ(๋ธŒ๋ผ์šฐ์ €๋ฅผ ์—ฝ๋‹ˆ๋‹ค)
111
- chorus daemon # ๋ฐ๋ชฌ์„ ํฌ๊ทธ๋ผ์šด๋“œ๋กœ ์‹œ์ž‘
112
- chorus daemon -d # ๋ฐ๋ชฌ์„ ๋ฐฑ๊ทธ๋ผ์šด๋“œ๋กœ ์‹œ์ž‘(๋””ํƒœ์น˜)
113
- chorus daemon install # ๋ถ€ํŒ… ์‹œ ์ž๋™ ์‹œ์ž‘ํ•˜๋Š” ์„œ๋น„์Šค๋กœ ์„ค์น˜(Linux) โ€” ๊ถŒ์žฅ
114
- chorus daemon uninstall # ์„ค์น˜๋œ ์„œ๋น„์Šค๋ฅผ ์ œ๊ฑฐ
115
- chorus daemon stop # ๋ฐ๋ชฌ์„ ์ค‘์ง€(์„ค์น˜๋˜์–ด ์žˆ์œผ๋ฉด systemd์— ์œ„์ž„)
116
- chorus daemon stop --force # ๋ฉˆ์ถ˜ pid๊ฐ€ ์ค‘์ง€๋ฅผ ๋ง‰์„ ๋•Œ pidfile์„ ๊ฐ•์ œ๋กœ ์ •๋ฆฌ
117
- chorus daemon status # ๋ฐ๋ชฌ ์ƒํƒœ ํ™•์ธ
118
- chorus daemon restart # ๋ฐ๋ชฌ ์žฌ์‹œ์ž‘
119
- chorus daemon logs # ๋ฐ๋ชฌ ๋กœ๊ทธ ๋ณด๊ธฐ
120
- ```
121
-
122
- **์ฃผ์š” ๊ธฐ๋Šฅ:**
123
-
124
- - **Claude Code & Codex ๋ฐฑ์—”๋“œ** โ€” PATH์— ์žˆ๋Š” `claude`(๋˜๋Š” `codex`) CLI๋ฅผ ์ž๋™ ๊ฐ์ง€ํ•ฉ๋‹ˆ๋‹ค. `--agent codex`๋กœ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค
125
- - **๋ฐฑ๊ทธ๋ผ์šด๋“œ ๋ชจ๋“œ** โ€” `-d` ํ”Œ๋ž˜๊ทธ๋กœ ์‹คํ–‰ํ•˜๊ณ , `stop/restart/logs`๋กœ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค
126
- - **๋ถ€ํŒ… ์ž๋™ ์‹œ์ž‘ ์„œ๋น„์Šค** โ€” `chorus daemon install`์ด ์˜ฌ๋ฐ”๋ฅธ `systemd --user` unit์„ ์ƒ์„ฑํ•˜๊ณ  ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค(์•„๋ž˜ ์ฐธ๊ณ ). ์ดํ›„ `status/stop/restart/logs`๋Š” ํˆฌ๋ช…ํ•˜๊ฒŒ systemd์— ์œ„์ž„๋ฉ๋‹ˆ๋‹ค
127
- - **๊ถŒํ•œ ๋ชจ๋“œ** โ€” ๊ธฐ๋ณธ๊ฐ’์€ ์™„์ „ ์ ‘๊ทผ(yolo)์ž…๋‹ˆ๋‹ค. `--chorus-only`๋กœ Chorus MCP ๋„๊ตฌ๋กœ๋งŒ ์ œํ•œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค
128
- - **๋ฉ€ํ‹ฐ ํŒจ์Šค** โ€” ๋ฐ˜๋ณต ์ง€์ • ๊ฐ€๋Šฅํ•œ `--cwd`๋กœ ํ•˜๋‚˜์˜ ๋ฐ๋ชฌ์—์„œ ์—ฌ๋Ÿฌ ์ž‘์—… ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ ์„œ๋น„์Šคํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(์•„๋ž˜ ์ฐธ๊ณ )
129
- - **๋Œ€ํ™”์‹ ์„ค์ •** โ€” ์•„์ง ๊ตฌ์„ฑ๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ, ์ตœ์ดˆ ์‹œ์ž‘ ์‹œ ์ธ์ฆ ์ •๋ณด๋ฅผ ์ž…๋ ฅํ•˜๋„๋ก ์•ˆ๋‚ดํ•ฉ๋‹ˆ๋‹ค
64
+ Chorus๋Š” ๋‚ด์žฅ PostgreSQL(PGlite)๋กœ ์‹œ์ž‘ํ•ด ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์„ ์‹คํ–‰ํ•˜๊ณ  **http://localhost:8637** ์—์„œ ์—ด๋ฆฝ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ ๋กœ๊ทธ์ธ: `admin@chorus.local` / `chorus`.
130
65
 
131
- ๋ฐ๋ชฌ์—๋Š” ์ธ์ฆ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๋จผ์ € `chorus login`์„ ์‹คํ–‰ํ•˜์„ธ์š”. ์‹คํ–‰ํ•˜์ง€ ์•Š์•˜๋‹ค๋ฉด ์ตœ์ดˆ ์‹œ์ž‘ ์‹œ(ํ„ฐ๋ฏธ๋„์—์„œ ์‹คํ–‰ ์ค‘์ธ ๊ฒฝ์šฐ) ๋Œ€ํ™”์‹์œผ๋กœ ์ธ์ฆ ์ •๋ณด๋ฅผ ์ž…๋ ฅํ•˜๋„๋ก ์•ˆ๋‚ดํ•ฉ๋‹ˆ๋‹ค.
66
+ > ์—ฌ๋Ÿฌ ์—์ด์ „ํŠธ๋ฅผ ์‹คํ–‰ํ•˜๊ฑฐ๋‚˜ ํ”„๋กœ๋•์…˜์— ๋ฐฐํฌํ•˜์‹œ๋‚˜์š”? ์™ธ๋ถ€ PostgreSQL, Docker, ๋˜๋Š” AWS๋ฅผ ์‚ฌ์šฉํ•˜์„ธ์š” โ†’ **[๋ฐฐํฌ ๋ฐ ์…€ํ”„ ํ˜ธ์ŠคํŒ…](https://doc.chorus-ai.dev/ko/guides/deployment-overview/)**.
132
67
 
133
- #### ๋ถ€ํŒ… / ๋กœ๊ทธ์ธ ์‹œ ์‹คํ–‰ โ€” `chorus daemon install`
134
-
135
- ```bash
136
- chorus daemon install --cwd ~/work/repo-a --cwd ~/work/repo-b # ์„ค์น˜ํ•˜๊ณ  ์ง€๊ธˆ ์‹œ์ž‘, ๋กœ๊ทธ์ธ ์‹œ ์ž๋™ ์‹œ์ž‘
137
- chorus daemon uninstall # ์„œ๋น„์Šค ๋น„ํ™œ์„ฑํ™” ๋ฐ ์ œ๊ฑฐ
138
- ```
139
-
140
- Linux์—์„œ๋Š” `install`์ด `systemd --user` unit์„ ์ƒ์„ฑํ•˜์—ฌ ๋ฐ๋ชฌ์„ **ํฌ๊ทธ๋ผ์šด๋“œ**(`Type=simple`, `-d` ์—†์Œ)๋กœ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด systemd๊ฐ€ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ง์ ‘ ์†Œ์œ ํ•˜๋ฉฐ, ์ด์–ด์„œ `daemon-reload` + `enable --now`๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. unit์—๋Š” ์—ฌ๋Ÿฌ๋ถ„์ด ์ „๋‹ฌํ•œ `--cwd`/`--agent`/`--chorus-only` ํ”Œ๋ž˜๊ทธ๊ฐ€ ๋‹ด๊น๋‹ˆ๋‹ค. `chorus daemon -d`๋ฅผ ๊ฐ์‹ผ `Type=forking` unit์„ **์ง์ ‘ ์ž‘์„ฑํ•˜์ง€ ๋งˆ์„ธ์š”** โ€” ๋ฐ๋ชฌ์€ ์Šค์Šค๋กœ ๋ฐ๋ชฌํ™”ํ•˜๊ธฐ ๋•Œ๋ฌธ์— systemd๊ฐ€ ์ถ”์ ํ•  ์ˆ˜ ์—†๊ณ  ์žฌ์‹œ์ž‘ ์‹œ ๋ฃจํ”„์— ๋น ์ง‘๋‹ˆ๋‹ค. ์˜ฌ๋ฐ”๋ฅธ unit์€ `install`์ด ์ž‘์„ฑํ•˜๋„๋ก ๋งก๊ธฐ์„ธ์š”. macOS/Windows์—์„œ๋Š” `install`์ด ์ง์ ‘ ์„ค์น˜ํ•  ์ˆ˜ ์žˆ๋Š” ์˜ฌ๋ฐ”๋ฅธ ํ…œํ”Œ๋ฆฟ์„ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค. unit์ด ์ธ์ฆ ์ •๋ณด๋ฅผ ์ฝ์„ ์ˆ˜ ์žˆ๋„๋ก ๋จผ์ € `chorus login`์„ ์‹คํ–‰ํ•˜์„ธ์š”. ์ž์„ธํ•œ ๋‚ด์šฉ์€ [docs/DAEMON.md](docs/DAEMON.md)๋ฅผ ์ฐธ๊ณ ํ•˜์„ธ์š”.
141
-
142
- #### ์—ฌ๋Ÿฌ ์ž‘์—… ๋””๋ ‰ํ„ฐ๋ฆฌ ์„œ๋น„์Šคํ•˜๊ธฐ
143
-
144
- ํ•˜๋‚˜์˜ ๋ฐ๋ชฌ์€ ์—ฌ๋Ÿฌ ๋กœ์ปฌ ์ž‘์—… ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ ๋™์‹œ์— ์„œ๋น„์Šคํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค โ€” ์„ ์–ธ๋œ ๊ฐ ๊ฒฝ๋กœ๋Š” ๋™์ผํ•œ ์—์ด์ „ํŠธ ์•„๋ž˜์—์„œ ๋…๋ฆฝ์ ์ธ ์—ฐ๊ฒฐ(์ž์ฒด ์„ธ์…˜ + ์›จ์ดํฌ ๋ฃจํ”„)๋กœ ๋“ฑ๋ก๋ฉ๋‹ˆ๋‹ค. ๊ฒฝ๋กœ๋Š” ๋ฐ๋ชฌ์ด ์„œ๋น„์Šคํ•˜๋Š” **๋‹จ์ง€** ๋””๋ ‰ํ„ฐ๋ฆฌ์ผ ๋ฟ์ด๋ฉฐ, ํ”„๋กœ์ ํŠธ์™€์˜ ๊ฒฐํ•ฉ์€ ๊ฐ–์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
145
-
146
- ```bash
147
- chorus daemon --cwd ~/work/repo-a --cwd ~/work/repo-b # ๋ฐ˜๋ณต ์ง€์ • ๊ฐ€๋Šฅํ•œ ํ”Œ๋ž˜๊ทธ
148
- CHORUS_DAEMON_CWDS="~/work/repo-a:~/work/repo-b" chorus daemon # ๋˜๋Š” ํ™˜๊ฒฝ ๋ณ€์ˆ˜(`:` ๋˜๋Š” `,` ๊ตฌ๋ถ„)
149
- ```
150
-
151
- `--cwd`๋ฅผ ์ง€์ •ํ•˜์ง€ ์•Š์œผ๋ฉด ๋ฐ๋ชฌ์€ ์‹คํ–‰๋œ ์œ„์น˜์˜ ๋‹จ์ผ ๋””๋ ‰ํ„ฐ๋ฆฌ๋งŒ ์„œ๋น„์Šคํ•ฉ๋‹ˆ๋‹ค.
152
-
153
- #### ์„ค์ • ํŒŒ์ผ โ€” `~/.chorus/daemon.json`
154
-
155
- `chorus login`์€ ์ธ์ฆ ์ •๋ณด๋ฅผ ์—ฌ๊ธฐ์— ๊ธฐ๋กํ•ฉ๋‹ˆ๋‹ค(๋ชจ๋“œ `0600`). ๋ฐ๋ชฌ ์กฐ์ • ํ•ญ๋ชฉ์„ **๊ฐ™์€** ํŒŒ์ผ์— ์ถ”๊ฐ€ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ชจ๋“  ํ•„๋“œ๋Š” ์„ ํƒ ์‚ฌํ•ญ์ด๋ฉฐ, ํ”Œ๋ž˜๊ทธ์™€ ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” ํ•ญ์ƒ ํŒŒ์ผ๋ณด๋‹ค ์šฐ์„ ํ•ฉ๋‹ˆ๋‹ค.
156
-
157
- ```json
158
- {
159
- "url": "https://chorus.example.com",
160
- "apiKey": "cho_xxxxxxxxxxxxxxxxxxxxxxxx",
161
- "agentUuid": "00000000-0000-0000-0000-000000000000",
162
- "agentName": "My Daemon Agent",
163
- "cwds": ["~/work/repo-a", "~/work/repo-b"],
164
- "sigintTimeoutMs": 10000
165
- }
166
- ```
167
-
168
- | ํ•„๋“œ | ํƒ€์ž… | ๊ธฐ๋ก ์ฃผ์ฒด / ์šฉ๋„ | ์šฐ์„ ์ˆœ์œ„(๋†’์€ ์ˆœ) |
169
- |-------|------|-----------------------|----------------------------|
170
- | `url` | string | ์›๊ฒฉ Chorus ์„œ๋ฒ„ URL | `--url` ํ”Œ๋ž˜๊ทธ โ†’ `CHORUS_URL` โ†’ ํŒŒ์ผ |
171
- | `apiKey` | string | ์—์ด์ „ํŠธ API ํ‚ค(`cho_โ€ฆ`) | `--api-key` ํ”Œ๋ž˜๊ทธ โ†’ `CHORUS_API_KEY` โ†’ ํŒŒ์ผ |
172
- | `agentUuid` / `agentName` | string | ์ธ์ฆ๋œ ์‹ ์›(๋กœ๊ทธ์ธ ์‹œ ๊ธฐ๋ก) | `chorus login`์ด ๊ธฐ๋ก |
173
- | `cwds` | string[] | ๋ฐ๋ชฌ์ด ์„œ๋น„์Šคํ•˜๋Š” ์ž‘์—… ๋””๋ ‰ํ„ฐ๋ฆฌ(๋ฉ€ํ‹ฐ ํŒจ์Šค) | `--cwd` ํ”Œ๋ž˜๊ทธ โ†’ `CHORUS_DAEMON_CWDS` โ†’ ํŒŒ์ผ โ†’ ์‹คํ–‰ ๋””๋ ‰ํ„ฐ๋ฆฌ |
174
- | `sigintTimeoutMs` | number | SIGINT ์ดํ›„ ๊ฐ•์ œ ์ข…๋ฃŒ๊นŒ์ง€์˜ ์œ ์˜ˆ ์‹œ๊ฐ„(ms, ๊ธฐ๋ณธ๊ฐ’ `10000`) | `--sigint-timeout` ํ”Œ๋ž˜๊ทธ โ†’ `CHORUS_DAEMON_SIGINT_TIMEOUT` โ†’ ํŒŒ์ผ โ†’ `10000` |
175
- | `yoloAckAt` | string | ๋‚ด๋ถ€์šฉ โ€” TTY yolo ํ™•์ธ์˜ ํƒ€์ž„์Šคํƒฌํ”„(์ž๋™ ๊ด€๋ฆฌ) | โ€” |
176
-
177
- ์‹œ์ž‘ ์‹œ ๋ฐ๋ชฌ ๋ฐฐ๋„ˆ๊ฐ€ **์‹ค์ œ๋กœ ์ฝ์€ `daemon.json` ๊ฒฝ๋กœ**(๊ทธ๋ฆฌ๊ณ  ๊ทธ ํŒŒ์ผ์˜ ์กด์žฌ ์—ฌ๋ถ€)๋ฅผ ์ถœ๋ ฅํ•˜๋ฏ€๋กœ, ์–ด๋–ค ํŒŒ์ผ์„ ํŽธ์ง‘ํ•ด์•ผ ํ•˜๋Š”์ง€ ํ•ญ์ƒ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
68
+ ๋กœ์ปฌ ๋จธ์‹ ์„ ๋ฐฐ์ •๋œ ์ž‘์—…์„ ์ด์–ด๋ฐ›๋Š” ์—์ด์ „ํŠธ ๋Ÿฐํƒ€์ž„์œผ๋กœ ๋งŒ๋“ค๋ ค๋ฉด `chorus daemon`์„ ์‹คํ–‰ํ•˜์„ธ์š” โ†’ **[๋ฐ๋ชฌ ์šด์˜](https://doc.chorus-ai.dev/ko/guides/daemon-operations/)** ยท **[์›๊ฒฉ ์ œ์–ด](https://doc.chorus-ai.dev/ko/guides/remote-control/)**.
178
69
 
179
70
  ---
180
71
 
@@ -190,120 +81,31 @@ CHORUS_DAEMON_CWDS="~/work/repo-a:~/work/repo-b" chorus daemon # ๋˜๋Š” ํ™˜๊ฒฝ
190
81
 
191
82
  ![Project Resource Graph](packages/landing/public/images/mind-map.png)
192
83
 
193
- Chorus๋Š” ํ”„๋กœ์ ํŠธ ์ „์ฒด๋ฅผ ๋งˆ์ธ๋“œ๋งต์œผ๋กœ ์ž๋™ ์ •๋ฆฌํ•ฉ๋‹ˆ๋‹ค โ€” ์•„์ด๋””์–ดยท์ œ์•ˆยท๋ฌธ์„œยท์ž‘์—…์ด ํ•˜๋‚˜๋กœ ์—ฐ๊ฒฐ๋œ ํŠธ๋ฆฌ๋กœ ๋ฐฐ์น˜๋˜๋ฉฐ โ€” ์—์ด์ „ํŠธ๊ฐ€ ํ•˜๋Š” ์ผ์„ ์‹ค์‹œ๊ฐ„์œผ๋กœ ๋ฐ˜์˜ํ•˜๊ณ , ์ž‘์—…์ด ์ง„ํ–‰๋จ์— ๋”ฐ๋ผ ๊ฐ ์นด๋“œ์˜ ์ƒํƒœ๊ฐ€ ์‹ค์‹œ๊ฐ„์œผ๋กœ ์—…๋ฐ์ดํŠธ๋ฉ๋‹ˆ๋‹ค.
84
+ ์•„์ด๋””์–ดยท์ œ์•ˆยท๋ฌธ์„œยท์ž‘์—…์ด ํ•˜๋‚˜๋กœ ์—ฐ๊ฒฐ๋œ ํŠธ๋ฆฌ๋กœ ๋ฐฐ์น˜๋˜๋ฉฐ, ์—์ด์ „ํŠธ๊ฐ€ ์ž‘์—…ํ•˜๋Š” ๋™์•ˆ ๊ฐ ์นด๋“œ์˜ ์ƒํƒœ๊ฐ€ ์‹ค์‹œ๊ฐ„์œผ๋กœ ์—…๋ฐ์ดํŠธ๋ฉ๋‹ˆ๋‹ค.
194
85
 
195
86
  ### ์ œ์•ˆ โ€” AI ์—์ด์ „ํŠธ๊ฐ€ ์‹ค์‹œ๊ฐ„์œผ๋กœ ๊ณ„ํš์„ ์ƒ์„ฑ
196
87
 
197
88
  ![Proposal Presence](packages/landing/public/images/proposal-presence.gif)
198
89
 
199
- PM ์—์ด์ „ํŠธ๊ฐ€ ์š”๊ตฌ์‚ฌํ•ญ์„ ๋ถ„์„ํ•˜๊ณ  PRD์™€ ์ž‘์—… DAG๋ฅผ ํฌํ•จํ•œ ์ œ์•ˆ์„ ์ƒ์„ฑํ•˜๋Š” ๋ชจ์Šต์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค โ€” ์—์ด์ „ํŠธ ํ™œ๋™์„ ๋ณด์—ฌ์ฃผ๋Š” ์‹ค์‹œ๊ฐ„ ํ”„๋ ˆ์ฆŒ์Šค ์ธ๋””์ผ€์ดํ„ฐ์™€ ํ•จ๊ป˜ ๋ง์ด์ฃ .
200
-
201
- ### ํ”ฝ์…€ ์›Œํฌ์ŠคํŽ˜์ด์Šค โ€” ์—์ด์ „ํŠธ์˜ ์‹ค์‹œ๊ฐ„ ์ƒํƒœ
202
-
203
- ![Pixel Workspace](docs/images/pixcel-workspace-new.gif)
204
-
205
- ์™ผ์ชฝ ํŒจ๋„์€ ํ”ฝ์…€ ์›Œํฌ์ŠคํŽ˜์ด์Šค๋กœ, ํ”ฝ์…€ ์บ๋ฆญํ„ฐ๊ฐ€ ๊ฐ ์—์ด์ „ํŠธ์˜ ์‹ค์‹œ๊ฐ„ ์ž‘์—… ์ƒํƒœ๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ์˜ค๋ฅธ์ชฝ ํŒจ๋„์—๋Š” ์—์ด์ „ํŠธ์˜ ํ„ฐ๋ฏธ๋„ ์ถœ๋ ฅ์ด ์‹ค์‹œ๊ฐ„์œผ๋กœ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.
90
+ PM ์—์ด์ „ํŠธ๊ฐ€ ์š”๊ตฌ์‚ฌํ•ญ์„ ๋ถ„์„ํ•ด PRD์™€ ์ž‘์—… DAG๋ฅผ ์ƒ์„ฑํ•˜๋ฉฐ, ์‹ค์‹œ๊ฐ„ ํ”„๋ ˆ์ฆŒ์Šค ์ธ๋””์ผ€์ดํ„ฐ๊ฐ€ ์—์ด์ „ํŠธ ํ™œ๋™์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.
206
91
 
207
92
  ### ์นธ๋ฐ˜ โ€” ์‹ค์‹œ๊ฐ„ ์ž‘์—… ํ๋ฆ„
208
93
 
209
94
  ![Kanban Presence](packages/landing/public/images/kanban-presence.gif)
210
95
 
211
- ์นธ๋ฐ˜ ๋ณด๋“œ๋Š” ์—์ด์ „ํŠธ์˜ ์ž‘์—…์— ๋งž์ถฐ ์ž๋™์œผ๋กœ ์—…๋ฐ์ดํŠธ๋˜๋ฉฐ, ์ž‘์—… ์นด๋“œ๊ฐ€ To Do โ†’ In Progress โ†’ To Verify ์‚ฌ์ด๋ฅผ ์‹ค์‹œ๊ฐ„์œผ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค. ์—์ด์ „ํŠธ ํ”„๋ ˆ์ฆŒ์Šค ์ธ๋””์ผ€์ดํ„ฐ๊ฐ€ ์–ด๋–ค ๋ฆฌ์†Œ์Šค๊ฐ€ ์ž‘์—… ์ค‘์ธ์ง€ ํ•˜์ด๋ผ์ดํŠธํ•ฉ๋‹ˆ๋‹ค.
212
-
213
- ### ์นธ๋ฐ˜ & ์ž‘์—… DAG
214
-
215
- ![Kanban & Task DAG](packages/landing/public/images/kanban-dag.png)
216
-
217
- ์ž‘์—… ์ƒํƒœ๋ฅผ ์ถ”์ ํ•˜๋Š” ์นธ๋ฐ˜ ๋ณด๋“œ์™€, ์‹คํ–‰ ์ˆœ์„œ ๋ฐ ๋ณ‘๋ ฌ ๊ฒฝ๋กœ๋ฅผ ๋ณด์—ฌ์ฃผ๋Š” ์˜์กด์„ฑ DAG๋ฅผ ๋‚˜๋ž€ํžˆ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.
218
-
219
- ### ์•„์ด๋””์–ด & ์š”๊ตฌ์‚ฌํ•ญ ๊ตฌ์ฒดํ™”
220
-
221
- ![Idea & Elaboration](packages/landing/public/images/idea-elaborate.png)
222
-
223
- PM ์—์ด์ „ํŠธ๋Š” ์ œ์•ˆ์„ ๋งŒ๋“ค๊ธฐ ์ „์— ๊ตฌ์กฐํ™”๋œ Q&A ๋ผ์šด๋“œ๋ฅผ ํ†ตํ•ด ์š”๊ตฌ์‚ฌํ•ญ์„ ๋ช…ํ™•ํžˆ ํ•ฉ๋‹ˆ๋‹ค. ํŒจ๋„์—๋Š” ์•„์ด๋””์–ด ์ƒ์„ธ ์ •๋ณด์™€ ํ•จ๊ป˜, ๋‹ต๋ณ€ ๋ฐ ์นดํ…Œ๊ณ ๋ฆฌ ํƒœ๊ทธ๊ฐ€ ๋‹ฌ๋ฆฐ ์™„๋ฃŒ๋œ ๊ตฌ์ฒดํ™” ๋ผ์šด๋“œ๊ฐ€ ๋‚˜๋ž€ํžˆ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.
224
-
225
- ### ์ œ์•ˆ ๊ฒ€ํ† 
226
-
227
- ![Proposal Review](packages/landing/public/images/proposal.png)
228
-
229
- PM ์—์ด์ „ํŠธ๊ฐ€ ์ƒ์„ฑํ•œ ์ œ์•ˆ์—๋Š” ๋ฌธ์„œ ์ดˆ์•ˆ๊ณผ ์ž‘์—… DAG ์ดˆ์•ˆ์ด ๋‹ด๊น๋‹ˆ๋‹ค. ๊ด€๋ฆฌ์ž๋Š” ์ด ํŒจ๋„์—์„œ ๊ฒ€ํ† ํ•˜์—ฌ ์Šน์ธํ•˜๊ฑฐ๋‚˜ ๊ฑฐ๋ถ€ํ•ฉ๋‹ˆ๋‹ค.
230
-
231
- ### ์ˆ˜๋ฝ ๊ธฐ์ค€ โ€” ์ด์ค‘ ๊ฒฝ๋กœ ๊ฒ€์ฆ
232
-
233
- ![Acceptance Criteria](packages/landing/public/images/task-ac.png)
234
-
235
- ๊ฐœ๋ฐœ์ž ์—์ด์ „ํŠธ์˜ ์ž์ฒด ์ ๊ฒ€๊ณผ ๊ด€๋ฆฌ์ž์˜ ๊ฒ€ํ† ๊ฐ€ ๊ฐ ์ˆ˜๋ฝ ๊ธฐ์ค€์„ ๋…๋ฆฝ์ ์œผ๋กœ ๊ฒ€์ฆํ•˜๋ฉฐ, ๋ชจ๋“  ํ•ญ๋ชฉ๋งˆ๋‹ค ๊ตฌ์กฐํ™”๋œ ํ†ต๊ณผ/์‹คํŒจ ์ฆ๋น™์„ ๋‚จ๊น๋‹ˆ๋‹ค.
236
-
237
- ### ์œ ๋‹ˆ๋ฒ„์„ค ๊ฒ€์ƒ‰ โ€” Cmd+K ์ปค๋งจ๋“œ ํŒ”๋ ˆํŠธ
238
-
239
- ![Universal Search](packages/landing/public/images/universal-search.png)
240
-
241
- 6๊ฐ€์ง€ ์—”ํ‹ฐํ‹ฐ ์œ ํ˜•(์ž‘์—…ยท์•„์ด๋””์–ดยท์ œ์•ˆยท๋ฌธ์„œยทํ”„๋กœ์ ํŠธยทํ”„๋กœ์ ํŠธ ๊ทธ๋ฃน)์„ ์•„์šฐ๋ฅด๋Š” ๊ฒ€์ƒ‰์„ ์œ„ํ•œ Cmd+K ์ปค๋งจ๋“œ ํŒ”๋ ˆํŠธ์ž…๋‹ˆ๋‹ค. ๋ฒ”์œ„ ํ•„ํ„ฐ๋ง(Global / Group / Project), ์—”ํ‹ฐํ‹ฐ ์œ ํ˜•๋ณ„ ํ•„ํ„ฐ ํƒญ, ํ‚ค๋ณด๋“œ ๋‚ด๋น„๊ฒŒ์ด์…˜์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. Web UI์™€ AI ์—์ด์ „ํŠธ(`chorus_search` MCP ๋„๊ตฌ๋ฅผ ํ†ตํ•ด)๋Š” ๋™์ผํ•œ ๊ฒ€์ƒ‰ ๋ฐฑ์—”๋“œ๋ฅผ ๊ณต์œ ํ•ฉ๋‹ˆ๋‹ค.
96
+ ์—์ด์ „ํŠธ๊ฐ€ ์ž‘์—…ํ•˜๋Š” ๋™์•ˆ ์ž‘์—… ์นด๋“œ๊ฐ€ To Do โ†’ In Progress โ†’ To Verify ์‚ฌ์ด๋ฅผ ์ด๋™ํ•˜๋ฉฐ, ์ง€๊ธˆ ๋‹ค๋ค„์ง€๋Š” ํ•ญ๋ชฉ์— ํ”„๋ ˆ์ฆŒ์Šค ์ธ๋””์ผ€์ดํ„ฐ๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.
242
97
 
243
98
  ---
244
99
 
245
- ## ๊ธฐ๋Šฅ
246
-
247
- - **์„ธ์…˜ ๋ผ์ดํ”„์‚ฌ์ดํด** โ€” ํ•˜ํŠธ๋น„ํŠธ, ์ž๋™ ๋งŒ๋ฃŒ, ์žฅ์•  ๋ณต๊ตฌ๋ฅผ ๊ฐ–์ถ˜ ์˜์†์  ์„ธ์…˜
248
- - **์ž‘์—… DAG** โ€” ์˜์กด์„ฑ ๋ชจ๋ธ๋ง, ์ˆœํ™˜ ๊ฐ์ง€, ์ธํ„ฐ๋ž™ํ‹ฐ๋ธŒ ์‹œ๊ฐํ™”
249
- - **์นธ๋ฐ˜** โ€” ์›Œ์ปค ๋ฐฐ์ง€์™€ ์—์ด์ „ํŠธ ํ”„๋ ˆ์ฆŒ์Šค๋ฅผ ๊ฐ–์ถ˜ ์‹ค์‹œ๊ฐ„ ์ž‘์—… ํ๋ฆ„
250
- - **๋ฉ€ํ‹ฐ ์—์ด์ „ํŠธ ํ˜‘์—…** โ€” ๋ณ‘๋ ฌ ์‹คํ–‰์„ ์œ„ํ•œ Claude Code Agent Teams(Swarm ๋ชจ๋“œ)
251
- - **์„ธ๋ฐ€ํ•œ ์—์ด์ „ํŠธ ๊ถŒํ•œ** โ€” 5 ๋ฆฌ์†Œ์Šค ร— 3 ์•ก์…˜ ๊ทธ๋ฆฌ๋“œ์™€ ํ”„๋ฆฌ์…‹ + ์ปค์Šคํ…€ ์กฐํ•ฉ([์ƒ์„ธ](docs/PERMISSIONS.md))
252
- - **Chorus Plugin** โ€” ๋ผ์ดํ”„์‚ฌ์ดํด ํ›…์ด ์„ธ์…˜ ์ƒ์„ฑ/์ข…๋ฃŒ, ํ•˜ํŠธ๋น„ํŠธ, ์ปจํ…์ŠคํŠธ ์ฃผ์ž…์„ ์ž๋™ํ™”ํ•ฉ๋‹ˆ๋‹ค
253
- - **์š”๊ตฌ์‚ฌํ•ญ ๊ตฌ์ฒดํ™”** โ€” ์ œ์•ˆ ์ƒ์„ฑ ์ „์˜ ๊ตฌ์กฐํ™”๋œ Q&A ๋ผ์šด๋“œ
254
- - **์ œ์•ˆ ์Šน์ธ ํ๋ฆ„** โ€” PM์ด ์ดˆ์•ˆ์„ ์ž‘์„ฑํ•˜๊ณ  ๊ด€๋ฆฌ์ž๊ฐ€ ์Šน์ธํ•˜๋ฉด, ์ดˆ์•ˆ์ด ์‹ค์ œ ์—”ํ‹ฐํ‹ฐ๋กœ ๊ตฌ์ฒดํ™”๋ฉ๋‹ˆ๋‹ค
255
- - **์•Œ๋ฆผ** โ€” ์•ฑ ๋‚ด + SSE ํ‘ธ์‹œ + Redis Pub/Sub, ์‚ฌ์šฉ์ž๋ณ„ ์„ค์ • ์ง€์›([์„ค๊ณ„ ๋ฌธ์„œ](src/app/api/notifications/README.md))
256
- - **@๋ฉ˜์…˜** โ€” Tiptap ์ž๋™ ์™„์„ฑ, ๊ถŒํ•œ ๋ฒ”์œ„ ๊ฒ€์ƒ‰, ๋ฉ˜์…˜ ์•Œ๋ฆผ([์„ค๊ณ„ ๋ฌธ์„œ](src/app/api/mentionables/README.md))
257
- - **์•กํ‹ฐ๋น„ํ‹ฐ ์ŠคํŠธ๋ฆผ** โ€” ์„ธ์…˜ ๊ท€์† ์ •๋ณด๊ฐ€ ํฌํ•จ๋œ ์™„์ „ํ•œ ๊ฐ์‚ฌ ์ถ”์ 
258
- - **์œ ๋‹ˆ๋ฒ„์„ค ๊ฒ€์ƒ‰** โ€” 6๊ฐ€์ง€ ์—”ํ‹ฐํ‹ฐ ์œ ํ˜•์„ ์•„์šฐ๋ฅด๋Š” Cmd+K, 3๋‹จ๊ณ„ ๋ฒ”์œ„, ์Šค๋‹ˆํŽซ ์ƒ์„ฑ([์„ค๊ณ„ ๋ฌธ์„œ](docs/SEARCH.md))
259
- ---
100
+ ## ์—์ด์ „ํŠธ ์—ฐ๊ฒฐํ•˜๊ธฐ
260
101
 
261
- ## ์•„ํ‚คํ…์ฒ˜
102
+ ๊ฐ€์žฅ ๋น ๋ฅธ ๋ฐฉ๋ฒ•์€ ์•ฑ ๋‚ด ๋งˆ๋ฒ•์‚ฌ์ž…๋‹ˆ๋‹ค: **Settings โ†’ Setup Guide**๋ฅผ ์—ฌ์„ธ์š”. ๋งˆ๋ฒ•์‚ฌ๊ฐ€ API ํ‚ค๋ฅผ ๋งŒ๋“ค๊ณ , ์‚ฌ์šฉํ•˜๋Š” ํด๋ผ์ด์–ธํŠธ(Claude Code, Codex, Kiro, OpenCode, OpenClaw, Pi, ๋˜๋Š” ๊ทธ ๋ฐ–์˜ MCP ํ˜ธํ™˜ ์—์ด์ „ํŠธ)์— ๋งž๋Š” ์ •ํ™•ํ•œ ๋ช…๋ น์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.
262
103
 
263
- ```
264
- โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
265
- โ”‚ Chorus โ€” Agent Harness (:8637) โ”‚
266
- โ”‚ โ”‚
267
- โ”‚ โ”Œโ”€โ”€ Harness Capabilities โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚
268
- โ”‚ โ”‚ Session Lifecycle โ”‚ Task State Machine โ”‚ Context Inject โ”‚ โ”‚
269
- โ”‚ โ”‚ Sub-Agent Orchestration โ”‚ Observability โ”‚ Failure Recoveryโ”‚ โ”‚
270
- โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚
271
- โ”‚ โ”‚
272
- โ”‚ โ”Œโ”€โ”€ Chorus Plugin (lifecycle hooks) โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚
273
- โ”‚ โ”‚ SubagentStart/Stop โ”‚ Heartbeat โ”‚ Skill & Context Inject โ”‚ โ”‚
274
- โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚
275
- โ”‚ โ”‚
276
- โ”‚ โ”Œโ”€โ”€ API Layer โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚
277
- โ”‚ โ”‚ /api/mcp โ€” MCP Streaming (50+ tools, permission-gated) โ”‚ โ”‚
278
- โ”‚ โ”‚ /api/* โ€” REST API (Web UI + SSE push) โ”‚ โ”‚
279
- โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚
280
- โ”‚ โ”‚
281
- โ”‚ โ”Œโ”€โ”€ Service Layer โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚
282
- โ”‚ โ”‚ AI-DLC Workflow โ”‚ UUID-first โ”‚ Multi-tenant โ”‚ โ”‚
283
- โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚
284
- โ”‚ โ”‚
285
- โ”‚ โ”Œโ”€โ”€ Web UI (React 19 + Tailwind + shadcn/ui) โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚
286
- โ”‚ โ”‚ Kanban โ”‚ Task DAG โ”‚ Proposals โ”‚ Activity โ”‚ Sessions โ”‚ โ”‚
287
- โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚
288
- โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
289
- โ†‘ โ†‘ โ†‘ โ†‘
290
- Agent w/ Agent w/ Agent w/ Human
291
- idea+proposal task:write *:admin perms (Browser)
292
- :write perms perms (proxy approval)
293
- (LLM) (LLM) (LLM)
294
- โ”‚
295
- โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
296
- โ”‚ PostgreSQL + Prisma โ”‚ โ”‚ Redis (optional) โ”‚
297
- โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚ Pub/Sub for SSE โ”‚
298
- โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
299
- ```
104
+ ํด๋ผ์ด์–ธํŠธ๋ณ„ ์ „์ฒด ๊ฐ€์ด๋“œ โ†’ **[์—์ด์ „ํŠธ ํ”Œ๋žซํผ](https://doc.chorus-ai.dev/ko/reference/agents/)**.
300
105
 
301
- ### ํŒจํ‚ค์ง€
106
+ API ํ‚ค๋Š” **Settings โ†’ Agents โ†’ Create API Key**์—์„œ ๋งŒ๋“ญ๋‹ˆ๋‹ค. ํ‚ค๋Š” `cho_`๋กœ ์‹œ์ž‘ํ•˜๋ฉฐ ํ•œ ๋ฒˆ๋งŒ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.
302
107
 
303
- | ํŒจํ‚ค์ง€ | ์„ค๋ช… |
304
- |---------|-------------|
305
- | [`packages/openclaw-plugin`](packages/openclaw-plugin) | **OpenClaw Plugin** โ€” ์˜์†์ ์ธ SSE + MCP ๋ธŒ๋ฆฌ์ง€๋กœ [OpenClaw](https://openclaw.ai)์™€ Chorus๋ฅผ ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค. |
306
- | [`packages/chorus-cdk`](packages/chorus-cdk) | **AWS CDK** โ€” Chorus๋ฅผ AWS์— ๋ฐฐํฌํ•˜๊ธฐ ์œ„ํ•œ Infrastructure-as-code. |
108
+ ---
307
109
 
308
110
  ## ๊ธฐ์ˆ  ์Šคํƒ
309
111
 
@@ -311,154 +113,25 @@ PM ์—์ด์ „ํŠธ๊ฐ€ ์ƒ์„ฑํ•œ ์ œ์•ˆ์—๋Š” ๋ฌธ์„œ ์ดˆ์•ˆ๊ณผ ์ž‘์—… DAG ์ดˆ์•ˆ์ด
311
113
  |-----------|-----------|
312
114
  | ํ”„๋ ˆ์ž„์›Œํฌ | Next.js 15 (App Router, Turbopack) |
313
115
  | ์–ธ์–ด | TypeScript 5 (strict mode) |
314
- | ํ”„๋ก ํŠธ์—”๋“œ | React 19, Tailwind CSS 4, shadcn/ui (Radix UI) |
315
- | ORM | Prisma 7 |
316
- | ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค | PostgreSQL 16 |
317
- | ์บ์‹œ/Pub-Sub | Redis 7 (ioredis) โ€” ์„ ํƒ ์‚ฌํ•ญ |
318
- | ์—์ด์ „ํŠธ ์—ฐ๋™ | MCP SDK 1.26 (HTTP Streamable Transport) |
116
+ | ํ”„๋ก ํŠธ์—”๋“œ | React 19, Tailwind CSS 4, shadcn/ui |
117
+ | ๋ฐ์ดํ„ฐ | PostgreSQL 16 + Prisma 7, Redis 7 (optional) |
118
+ | ์—์ด์ „ํŠธ ์—ฐ๋™ | MCP SDK (HTTP Streamable Transport) |
319
119
  | ์ธ์ฆ | OIDC + PKCE / API Key / SuperAdmin |
320
120
  | i18n | next-intl (en, zh, ko, ja) |
321
- | ๋ฐฐํฌ | [Docker Hub](https://hub.docker.com/r/chorusaidlc/chorus-app) / Docker Compose / AWS CDK |
322
-
323
- ---
324
-
325
- ## ์‹œ์ž‘ํ•˜๊ธฐ
326
-
327
- ### Docker๋กœ ์‹œ์ž‘ํ•˜๊ธฐ (๊ถŒ์žฅ)
328
-
329
- ๋นŒ๋“œ ๋„๊ตฌ๋‚˜ ์™ธ๋ถ€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ํ•„์š” ์—†์Šต๋‹ˆ๋‹ค. ์ด๋ฏธ์ง€์—๋Š” [PGlite](https://pglite.dev)(๋‚ด์žฅ PostgreSQL)๊ฐ€ ํ•จ๊ป˜ ๋“ค์–ด ์žˆ์Šต๋‹ˆ๋‹ค:
330
-
331
- ```bash
332
- git clone https://github.com/Chorus-AIDLC/chorus.git
333
- cd chorus
334
-
335
- DEFAULT_USER=admin@example.com DEFAULT_PASSWORD=changeme \
336
- docker compose -f docker-compose.local.yml up -d
337
- ```
338
-
339
- [http://localhost:8637](http://localhost:8637)์„ ์—ด๊ณ  ์œ„์˜ ์ธ์ฆ ์ •๋ณด๋กœ ๋กœ๊ทธ์ธํ•˜์„ธ์š”.
340
-
341
- > ๋ฐ์ดํ„ฐ๋Š” Docker ๋ณผ๋ฅจ์— ์˜์†ํ™”๋ฉ๋‹ˆ๋‹ค. ๋‚ด์žฅ ๋ชจ๋“œ๋Š” ๋‹จ์ผ ์ธ์Šคํ„ด์Šค ์ „์šฉ์ž…๋‹ˆ๋‹ค(Redis ์—†์Œ).
342
-
343
- #### ํ”„๋กœ๋•์…˜ ๋ฐฐํฌ (PostgreSQL + Redis)
344
-
345
- ์—ฌ๋Ÿฌ ๋ ˆํ”Œ๋ฆฌ์นด๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ํ”„๋กœ๋•์…˜ ํ™˜๊ฒฝ์šฉ:
346
-
347
- ```bash
348
- DEFAULT_USER=admin@example.com DEFAULT_PASSWORD=changeme \
349
- docker compose up -d
350
- ```
351
-
352
- > ๋ชจ๋“  ํ™˜๊ฒฝ ๋ณ€์ˆ˜์™€ ์„ค์ • ์˜ต์…˜์€ [Docker ๋ฌธ์„œ](docs/DOCKER.md)๋ฅผ ์ฐธ๊ณ ํ•˜์„ธ์š”.
353
-
354
- ---
355
-
356
- ### ๋กœ์ปฌ ๊ฐœ๋ฐœ
357
-
358
- ์ „์ œ ์กฐ๊ฑด: Node.js 22+, pnpm 9+, Docker(PostgreSQL/Redis์šฉ)
359
-
360
- ```bash
361
- cp .env.example .env
362
- pnpm docker:db
363
- pnpm install
364
- pnpm db:migrate:dev
365
- pnpm dev
366
- # http://localhost:8637 ์„ ์—ฌ์„ธ์š”
367
- ```
368
-
369
- ### ๋กœ์ปฌ ๊ฐœ๋ฐœ (Docker ์—†์ด)
370
-
371
- ์ „์ œ ์กฐ๊ฑด: Node.js 22+, pnpm 9+
372
-
373
- ```bash
374
- cp .env.example .env
375
- pnpm install
376
- pnpm dev:local # ๊ฐœ๋ฐœ ์„œ๋ฒ„ http://localhost:8637
377
- ```
378
-
379
- PGlite๋Š” ํฌํŠธ 5433์—์„œ ๋‚ด์žฅ PostgreSQL์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ๋Š” `.pglite/`์— ์ €์žฅ๋ฉ๋‹ˆ๋‹ค โ€” ์‚ญ์ œํ•˜๋ฉด ์ดˆ๊ธฐํ™”๋ฉ๋‹ˆ๋‹ค.
380
-
381
- ### AWS์— ๋ฐฐํฌ
382
-
383
- ```bash
384
- ./install.sh
385
- ```
386
-
387
- ๋Œ€ํ™”์‹ ์ธ์Šคํ†จ๋Ÿฌ๊ฐ€ VPC, Aurora Serverless v2, ElastiCache Serverless, ECS Fargate, HTTPS๋ฅผ ๊ฐ–์ถ˜ ALB๋ฅผ ํ”„๋กœ๋น„์ €๋‹ํ•ฉ๋‹ˆ๋‹ค. ์„ค์ •์€ ์žฌ๋ฐฐํฌ๋ฅผ ์œ„ํ•ด `default_deploy.sh`์— ์ €์žฅ๋ฉ๋‹ˆ๋‹ค.
388
-
389
- ### AI ์—์ด์ „ํŠธ ์—ฐ๊ฒฐํ•˜๊ธฐ
390
-
391
- ๊ฐ€์žฅ ๋น ๋ฅธ ๋ฐฉ๋ฒ•์€ ์•ฑ ๋‚ด ์„ค์ • ๋งˆ๋ฒ•์‚ฌ์ž…๋‹ˆ๋‹ค: Web UI๋ฅผ ์—ด๊ณ  **Settings โ†’ Setup Guide โ†’ Open setup guide**๋กœ ์ด๋™ํ•œ ๋’ค, ์‚ฌ์šฉํ•˜๋Š” ํด๋ผ์ด์–ธํŠธ(Claude Code, Codex, Kiro, OpenCode, OpenClaw, ๋˜๋Š” ๊ทธ ๋ฐ–์˜ ์—์ด์ „ํŠธ)์— ๋งž๋Š” ๋‹จ๊ณ„๋ณ„ ์•ˆ๋‚ด๋ฅผ ๋”ฐ๋ฅด์„ธ์š”. ๋งˆ๋ฒ•์‚ฌ๊ฐ€ API ํ‚ค๋ฅผ ๋งŒ๋“ค์–ด ์ฃผ๊ณ , ์ •ํ™•ํ•œ ๋ช…๋ น์„ ๋ณด์—ฌ์ฃผ๋ฉฐ, ์—ฐ๊ฒฐ ํ™•์ธ๊นŒ์ง€ ์•ˆ๋‚ดํ•ฉ๋‹ˆ๋‹ค.
392
-
393
- ์ „์ฒด ๋ฌธ์„œ๋ฅผ ์ฝ๊ณ  ์‹ถ๋‹ค๋ฉด:
394
-
395
- | ํด๋ผ์ด์–ธํŠธ | ๊ฐ€์ด๋“œ |
396
- |--------|-------|
397
- | Claude Code | [CONNECT_CLAUDE_CODE.md](docs/CONNECT_CLAUDE_CODE.md) |
398
- | Codex CLI | [CONNECT_CODEX.md](docs/CONNECT_CODEX.md) |
399
- | Pi coding agent | [CONNECT_PI.md](docs/CONNECT_PI.md) |
400
- | Kiro CLI | [CONNECT_KIRO.md](docs/CONNECT_KIRO.md) |
401
- | OpenCode โ€  | [CONNECT_OPENCODE.md](docs/CONNECT_OPENCODE.md) |
402
- | ๊ทธ ๋ฐ–์˜ MCP ์—์ด์ „ํŠธ(Cursor, Continue, ์ปค์Šคํ…€ ๋“ฑ) | [CONNECT_OTHER_AGENTS.md](docs/CONNECT_OTHER_AGENTS.md) |
403
-
404
- โ€  OpenCode ์ง€์›์€ ์ปค๋ฎค๋‹ˆํ‹ฐ๊ฐ€ ์œ ์ง€ ๊ด€๋ฆฌํ•˜๋Š” [`opencode-chorus`](https://github.com/etnperlong/opencode-chorus) ํ”Œ๋Ÿฌ๊ทธ์ธ(npm: [`opencode-chorus`](https://www.npmjs.com/package/opencode-chorus))์œผ๋กœ ์ œ๊ณต๋˜๋ฉฐ, ์ž‘์„ฑ์ž๋Š” [@etnperlong](https://github.com/etnperlong)์ž…๋‹ˆ๋‹ค. ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!
405
-
406
- API ํ‚ค๋Š” Web UI์˜ **Settings โ†’ Agents โ†’ Create API Key**์—์„œ ๋งŒ๋“ญ๋‹ˆ๋‹ค. ํ‚ค๋Š” `cho_`๋กœ ์‹œ์ž‘ํ•˜๋ฉฐ ํ•œ ๋ฒˆ๋งŒ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.
407
-
408
- ![Create API Key](packages/landing/public/images/create-key.png)
409
-
410
- ---
411
-
412
- ## ์Šคํ‚ฌ ๋ฌธ์„œ
413
-
414
- | ๋ฐฉ๋ฒ• | ์œ„์น˜ | ์‚ฌ์šฉ ์‚ฌ๋ก€ |
415
- |--------|----------|----------|
416
- | **ํ”Œ๋Ÿฌ๊ทธ์ธ ๋‚ด์žฅ(Claude Code)** | `public/chorus-plugin/skills/` | Claude Code + Chorus ํ”Œ๋Ÿฌ๊ทธ์ธ, ์ž๋™ํ™”๋œ ์„ธ์…˜๊ณผ ๋ผ์ดํ”„์‚ฌ์ดํด ํ›… |
417
- | **ํ”Œ๋Ÿฌ๊ทธ์ธ ๋‚ด์žฅ(Codex CLI)** | `plugins/chorus/skills/` | Codex CLI + Chorus ํ”Œ๋Ÿฌ๊ทธ์ธ, `$` ์ ‘๋‘์‚ฌ ์Šฌ๋ž˜์‹œ ๋ช…๋ น์„ ๊ฐ–์ถ˜ ์ด์‹ํŒ ์Šคํ‚ฌ |
418
- | **ํŒจํ‚ค์ง€ ๋‚ด์žฅ(Pi)** | `packages/chorus-pi/skills/` | Pi + Chorus ํŒจํ‚ค์ง€, ์ž๋™ํ™”๋œ ์„ธ์…˜๊ณผ ๋ผ์ดํ”„์‚ฌ์ดํด ํ›… |
419
- | **์Šคํƒ ๋“œ์–ผ๋ก ** | `public/skill/`(`/skill/`์—์„œ ์ œ๊ณต) | ๊ทธ ๋ฐ–์˜ MCP ์ง€์› ์—์ด์ „ํŠธ(Cursor, Continue, ์ปค์Šคํ…€), ์ˆ˜๋™ ์„ธ์…˜ ๊ด€๋ฆฌ |
420
-
421
- ### OpenSpec ๋ชจ๋“œ (์˜ตํŠธ์ธ, ํ”Œ๋Ÿฌ๊ทธ์ธ 0.8.1+)
422
-
423
- [OpenSpec](https://github.com/Fission-AI/OpenSpec) CLI๋ฅผ ์„ค์น˜ํ•œ PM
424
- ์—์ด์ „ํŠธ๋Š” ๊ตฌ์กฐํ™”๋œ `proposal.md` + `design.md` +
425
- `specs/<capability>/spec.md` ๋ ˆ์ด์•„์›ƒ์œผ๋กœ ์ œ์•ˆ์„ ์ž‘์„ฑํ•  ์ˆ˜
426
- ์žˆ์Šต๋‹ˆ๋‹ค. ๋กœ์ปฌ ํŒŒ์ผ์ด ์ž‘์—… ์‚ฌ๋ณธ์ด๊ณ  Chorus์˜ `documentDrafts`๊ฐ€
427
- ๊ทธ ๋ฏธ๋Ÿฌ์ž…๋‹ˆ๋‹ค. ๋ฆฌ๋ทฐ์–ด๋Š” ์ž์œ  ํ˜•์‹์˜ Markdown์ด ์•„๋‹ˆ๋ผ ์˜ˆ์ธก
428
- ๊ฐ€๋Šฅํ•œ ํ˜•ํƒœ(`## ADDED Requirements`, `### Requirement:`,
429
- `#### Scenario:`)๋ฅผ ๋ณด๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. `chorus_admin_verify_task`์— ๋Œ€ํ•œ
430
- PostToolUse ํ›…์ด, OpenSpec ์•„์ด๋””์–ด์˜ ๋งˆ์ง€๋ง‰ ์ž‘์—…์ด ๊ฒ€์ฆ๋  ๋•Œ
431
- `openspec archive <slug>` ๋ฆฌ๋งˆ์ธ๋”๋ฅผ ์ฃผ์ž…ํ•˜๋ฏ€๋กœ, ํ™•์ •๋œ ์ŠคํŽ™์€
432
- ์Šน์ธ ์งํ›„ ์žฅ๊ธฐ ์ŠคํŽ™ ์„ธํŠธ์— ๋ณ‘ํ•ฉ๋ฉ๋‹ˆ๋‹ค. ์ด ๋ชจ๋“œ๋Š” ์—„๊ฒฉํ•˜๊ฒŒ
433
- ์˜ตํŠธ์ธ์ž…๋‹ˆ๋‹ค: `openspec`์ด ์„ค์น˜๋˜์–ด ์žˆ์ง€ ์•Š์œผ๋ฉด ๋™์ž‘์€
434
- ๋ฐ”๋€Œ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. Claude Code์—์„œ์˜ ๋งˆ์Šคํ„ฐ ์Šค์œ„์น˜๋Š”
435
- `enableOpenSpec`(ํ”Œ๋Ÿฌ๊ทธ์ธ userConfig, ๊ธฐ๋ณธ๊ฐ’ `true`)์ด๋ฉฐ, ๋‘
436
- ํด๋ผ์ด์–ธํŠธ ๋ชจ๋‘ `CHORUS_OPENSPEC_MODE=off`๋ฅผ ์กด์ค‘ํ•ฉ๋‹ˆ๋‹ค. ์ด
437
- ๋ชจ๋“œ์—์„œ ์ƒˆ๋กœ์šด MCP ๋„๊ตฌ๋‚˜ ์Šคํ‚ค๋งˆ ๋ณ€๊ฒฝ์ด ์ถ”๊ฐ€๋˜๋Š” ์ผ์€
438
- ์—†์Šต๋‹ˆ๋‹ค. ์ •๊ทœ ์Šคํ‚ฌ์€ ๊ธฐ์กด์˜ `chorus_pm_*` ์ดˆ์•ˆยท๋ฌธ์„œ ๋„๊ตฌ๋ฅผ
439
- ์žฌ์‚ฌ์šฉํ•˜๋ฉฐ, ๋ฏธ๋Ÿฌ ํ˜ธ์ถœ์€ `chorus-api.sh` ๋ž˜ํผ๋ฅผ ํ†ตํ•ด ๋ผ์šฐํŒ…ํ•˜์—ฌ
440
- ์ˆ˜์ฒœ ์ค„์— ๋‹ฌํ•˜๋Š” Markdown์„ LLM ์ปจํ…์ŠคํŠธ ๋ฐ–์— ๋‘ก๋‹ˆ๋‹ค. ์ „์ฒด
441
- ๊ฐ€์ด๋“œ๋Š” [OPENSPEC_MODE.md](docs/OPENSPEC_MODE.md)๋ฅผ ์ฐธ๊ณ ํ•˜์„ธ์š”.
121
+ | ๋ฐฐํฌ | npm / Docker / AWS CDK |
442
122
 
443
123
  ---
444
124
 
445
125
  ## ๋ฌธ์„œ
446
126
 
447
- | ๋ฌธ์„œ | ์„ค๋ช… |
448
- |----------|------------|
449
- | [PRD](docs/PRD_Chorus.md) | ์ œํ’ˆ ์š”๊ตฌ์‚ฌํ•ญ ๋ฌธ์„œ |
450
- | [Architecture](docs/ARCHITECTURE.md) | ๊ธฐ์ˆ  ์•„ํ‚คํ…์ฒ˜ ๋ฌธ์„œ |
451
- | [MCP Tools](docs/MCP_TOOLS.md) | MCP ๋„๊ตฌ ๋ ˆํผ๋Ÿฐ์Šค |
452
- | [Permissions](docs/PERMISSIONS.md) | ์—์ด์ „ํŠธ ๊ถŒํ•œ ๋ชจ๋ธ(5 ร— 3 ๋งคํŠธ๋ฆญ์Šค, ํ”„๋ฆฌ์…‹, Custom ๋ชจ๋“œ) |
453
- | [Chorus Plugin](docs/chorus-plugin.md) | ํ”Œ๋Ÿฌ๊ทธ์ธ ์„ค๊ณ„ ๋ฐ ํ›… ๋ฌธ์„œ |
454
- | [OpenSpec Mode](docs/OPENSPEC_MODE.md) | PM ์—์ด์ „ํŠธ๋ฅผ ์œ„ํ•œ ์˜ตํŠธ์ธ OpenSpec ์ž‘์„ฑ ๋ชจ๋“œ(ํ”Œ๋Ÿฌ๊ทธ์ธ 0.8.1+) |
455
- | [Search](docs/SEARCH.md) | ๊ธ€๋กœ๋ฒŒ ๊ฒ€์ƒ‰ ๊ธฐ์ˆ  ์„ค๊ณ„ |
456
- | [AI-DLC Gap Analysis](docs/AIDLC_GAP_ANALYSIS.md) | AI-DLC ๋ฐฉ๋ฒ•๋ก  ๊ฐญ ๋ถ„์„ |
457
- | [AIG Implementation Plan](docs/CHORUS_AIG_PLAN.md) | ์—์ด์ „ํŠธ ํˆฌ๋ช…์„ฑ ๋กœ๋“œ๋งต |
458
- | [Presence Design](docs/PRESENCE_DESIGN.md) | ์‹ค์‹œ๊ฐ„ ์—์ด์ „ํŠธ ํ”„๋ ˆ์ฆŒ์Šค ์‹œ์Šคํ…œ |
459
- | [Docker](docs/DOCKER.md) | Docker ์ด๋ฏธ์ง€ ์‚ฌ์šฉ๋ฒ• ๋ฐ ๋ฐฐํฌ |
460
- | [Logging](docs/LOGGING.md) | ๊ตฌ์กฐํ™” ๋กœ๊น… ์•„ํ‚คํ…์ฒ˜ |
461
- | [CLAUDE.md](CLAUDE.md) | ๊ฐœ๋ฐœ ๊ฐ€์ด๋“œ |
127
+ **๐Ÿ“– ์ „์ฒด ๋ฌธ์„œ: [doc.chorus-ai.dev](https://doc.chorus-ai.dev/ko/)**
128
+
129
+ - [์‹œ์ž‘ํ•˜๊ธฐ](https://doc.chorus-ai.dev/ko/guides/getting-started/)
130
+ - [์—์ด์ „ํŠธ ์—ฐ๊ฒฐ](https://doc.chorus-ai.dev/ko/reference/agents/)
131
+ - [AI-DLC ์›Œํฌํ”Œ๋กœ](https://doc.chorus-ai.dev/ko/guides/ai-dlc-workflow/)
132
+ - [ํ”Œ๋Ÿฌ๊ทธ์ธ ๋ฐ ๋ช…๋ น](https://doc.chorus-ai.dev/ko/guides/plugin-commands/)
133
+ - [MCP ๋„๊ตฌ ๋ ˆํผ๋Ÿฐ์Šค](https://doc.chorus-ai.dev/ko/reference/mcp-tools/)
134
+ - [๋ฐฐํฌ ๋ฐ ์…€ํ”„ ํ˜ธ์ŠคํŒ…](https://doc.chorus-ai.dev/ko/guides/deployment-overview/)
462
135
 
463
136
  ---
464
137