@chorus-aidlc/chorus 0.18.1 → 0.19.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 (540) hide show
  1. package/.next/standalone/.next/BUILD_ID +1 -1
  2. package/.next/standalone/.next/app-build-manifest.json +372 -373
  3. package/.next/standalone/.next/app-path-routes-manifest.json +35 -35
  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 +1 -1
  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 +1 -1
  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 +2 -2
  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.js +1 -1
  62. package/.next/standalone/.next/server/app/api/admin/companies/[uuid]/route.js.nft.json +1 -1
  63. package/.next/standalone/.next/server/app/api/admin/companies/[uuid]/route_client-reference-manifest.js +1 -1
  64. package/.next/standalone/.next/server/app/api/admin/companies/route.js +1 -1
  65. package/.next/standalone/.next/server/app/api/admin/companies/route.js.nft.json +1 -1
  66. package/.next/standalone/.next/server/app/api/admin/companies/route_client-reference-manifest.js +1 -1
  67. package/.next/standalone/.next/server/app/api/admin/login/route_client-reference-manifest.js +1 -1
  68. package/.next/standalone/.next/server/app/api/admin/session/route_client-reference-manifest.js +1 -1
  69. package/.next/standalone/.next/server/app/api/agent-connections/route.js +1 -1
  70. package/.next/standalone/.next/server/app/api/agent-connections/route.js.nft.json +1 -1
  71. package/.next/standalone/.next/server/app/api/agent-connections/route_client-reference-manifest.js +1 -1
  72. package/.next/standalone/.next/server/app/api/agents/[uuid]/route.js +1 -1
  73. package/.next/standalone/.next/server/app/api/agents/[uuid]/route.js.nft.json +1 -1
  74. package/.next/standalone/.next/server/app/api/agents/[uuid]/route_client-reference-manifest.js +1 -1
  75. package/.next/standalone/.next/server/app/api/agents/[uuid]/sessions/route.js +1 -1
  76. package/.next/standalone/.next/server/app/api/agents/[uuid]/sessions/route.js.nft.json +1 -1
  77. package/.next/standalone/.next/server/app/api/agents/[uuid]/sessions/route_client-reference-manifest.js +1 -1
  78. package/.next/standalone/.next/server/app/api/agents/route.js +1 -1
  79. package/.next/standalone/.next/server/app/api/agents/route.js.nft.json +1 -1
  80. package/.next/standalone/.next/server/app/api/agents/route_client-reference-manifest.js +1 -1
  81. package/.next/standalone/.next/server/app/api/api-keys/[uuid]/route.js +1 -1
  82. package/.next/standalone/.next/server/app/api/api-keys/[uuid]/route.js.nft.json +1 -1
  83. package/.next/standalone/.next/server/app/api/api-keys/[uuid]/route_client-reference-manifest.js +1 -1
  84. package/.next/standalone/.next/server/app/api/api-keys/route.js +1 -1
  85. package/.next/standalone/.next/server/app/api/api-keys/route.js.nft.json +1 -1
  86. package/.next/standalone/.next/server/app/api/api-keys/route_client-reference-manifest.js +1 -1
  87. package/.next/standalone/.next/server/app/api/auth/callback/route_client-reference-manifest.js +1 -1
  88. package/.next/standalone/.next/server/app/api/auth/check-default/route_client-reference-manifest.js +1 -1
  89. package/.next/standalone/.next/server/app/api/auth/company-oidc/route_client-reference-manifest.js +1 -1
  90. package/.next/standalone/.next/server/app/api/auth/default-login/route_client-reference-manifest.js +1 -1
  91. package/.next/standalone/.next/server/app/api/auth/identify/route_client-reference-manifest.js +1 -1
  92. package/.next/standalone/.next/server/app/api/auth/logout/route_client-reference-manifest.js +1 -1
  93. package/.next/standalone/.next/server/app/api/auth/me/route_client-reference-manifest.js +1 -1
  94. package/.next/standalone/.next/server/app/api/auth/sync-token/route_client-reference-manifest.js +1 -1
  95. package/.next/standalone/.next/server/app/api/comments/route.js +1 -1
  96. package/.next/standalone/.next/server/app/api/comments/route.js.nft.json +1 -1
  97. package/.next/standalone/.next/server/app/api/comments/route_client-reference-manifest.js +1 -1
  98. package/.next/standalone/.next/server/app/api/daemon/connection-heartbeat/route.js +1 -1
  99. package/.next/standalone/.next/server/app/api/daemon/connection-heartbeat/route.js.nft.json +1 -1
  100. package/.next/standalone/.next/server/app/api/daemon/connection-heartbeat/route_client-reference-manifest.js +1 -1
  101. package/.next/standalone/.next/server/app/api/daemon/control/route.js +1 -1
  102. package/.next/standalone/.next/server/app/api/daemon/control/route.js.nft.json +1 -1
  103. package/.next/standalone/.next/server/app/api/daemon/control/route_client-reference-manifest.js +1 -1
  104. package/.next/standalone/.next/server/app/api/daemon/directory-request/report/route.js +1 -1
  105. package/.next/standalone/.next/server/app/api/daemon/directory-request/report/route.js.nft.json +1 -1
  106. package/.next/standalone/.next/server/app/api/daemon/directory-request/report/route_client-reference-manifest.js +1 -1
  107. package/.next/standalone/.next/server/app/api/daemon/execution-state/route.js +1 -1
  108. package/.next/standalone/.next/server/app/api/daemon/execution-state/route.js.nft.json +1 -1
  109. package/.next/standalone/.next/server/app/api/daemon/execution-state/route_client-reference-manifest.js +1 -1
  110. package/.next/standalone/.next/server/app/api/daemon/executions/route.js +1 -1
  111. package/.next/standalone/.next/server/app/api/daemon/executions/route.js.nft.json +1 -1
  112. package/.next/standalone/.next/server/app/api/daemon/executions/route_client-reference-manifest.js +1 -1
  113. package/.next/standalone/.next/server/app/api/daemon/pending-turns/route.js +1 -1
  114. package/.next/standalone/.next/server/app/api/daemon/pending-turns/route.js.nft.json +1 -1
  115. package/.next/standalone/.next/server/app/api/daemon/pending-turns/route_client-reference-manifest.js +1 -1
  116. package/.next/standalone/.next/server/app/api/daemon/report-interrupt/route.js +1 -1
  117. package/.next/standalone/.next/server/app/api/daemon/report-interrupt/route.js.nft.json +1 -1
  118. package/.next/standalone/.next/server/app/api/daemon/report-interrupt/route_client-reference-manifest.js +1 -1
  119. package/.next/standalone/.next/server/app/api/daemon/resume/route.js +1 -1
  120. package/.next/standalone/.next/server/app/api/daemon/resume/route.js.nft.json +1 -1
  121. package/.next/standalone/.next/server/app/api/daemon/resume/route_client-reference-manifest.js +1 -1
  122. package/.next/standalone/.next/server/app/api/daemon/transcript/route.js +1 -1
  123. package/.next/standalone/.next/server/app/api/daemon/transcript/route.js.nft.json +1 -1
  124. package/.next/standalone/.next/server/app/api/daemon/transcript/route_client-reference-manifest.js +1 -1
  125. package/.next/standalone/.next/server/app/api/daemon/turn-advance/route.js +1 -1
  126. package/.next/standalone/.next/server/app/api/daemon/turn-advance/route.js.nft.json +1 -1
  127. package/.next/standalone/.next/server/app/api/daemon/turn-advance/route_client-reference-manifest.js +1 -1
  128. package/.next/standalone/.next/server/app/api/daemon-directory-requests/[uuid]/route.js +1 -1
  129. package/.next/standalone/.next/server/app/api/daemon-directory-requests/[uuid]/route.js.nft.json +1 -1
  130. package/.next/standalone/.next/server/app/api/daemon-directory-requests/[uuid]/route_client-reference-manifest.js +1 -1
  131. package/.next/standalone/.next/server/app/api/daemon-directory-requests/route.js +1 -1
  132. package/.next/standalone/.next/server/app/api/daemon-directory-requests/route.js.nft.json +1 -1
  133. package/.next/standalone/.next/server/app/api/daemon-directory-requests/route_client-reference-manifest.js +1 -1
  134. package/.next/standalone/.next/server/app/api/daemon-sessions/[sessionUuid]/instruction/route.js +1 -1
  135. package/.next/standalone/.next/server/app/api/daemon-sessions/[sessionUuid]/instruction/route.js.nft.json +1 -1
  136. package/.next/standalone/.next/server/app/api/daemon-sessions/[sessionUuid]/instruction/route_client-reference-manifest.js +1 -1
  137. package/.next/standalone/.next/server/app/api/daemon-sessions/[sessionUuid]/repoint/route.js +1 -1
  138. package/.next/standalone/.next/server/app/api/daemon-sessions/[sessionUuid]/repoint/route.js.nft.json +1 -1
  139. package/.next/standalone/.next/server/app/api/daemon-sessions/[sessionUuid]/repoint/route_client-reference-manifest.js +1 -1
  140. package/.next/standalone/.next/server/app/api/daemon-sessions/[sessionUuid]/route.js +1 -1
  141. package/.next/standalone/.next/server/app/api/daemon-sessions/[sessionUuid]/route.js.nft.json +1 -1
  142. package/.next/standalone/.next/server/app/api/daemon-sessions/[sessionUuid]/route_client-reference-manifest.js +1 -1
  143. package/.next/standalone/.next/server/app/api/daemon-sessions/ad-hoc/route.js +1 -1
  144. package/.next/standalone/.next/server/app/api/daemon-sessions/ad-hoc/route.js.nft.json +1 -1
  145. package/.next/standalone/.next/server/app/api/daemon-sessions/ad-hoc/route_client-reference-manifest.js +1 -1
  146. package/.next/standalone/.next/server/app/api/daemon-sessions/route.js +1 -1
  147. package/.next/standalone/.next/server/app/api/daemon-sessions/route.js.nft.json +1 -1
  148. package/.next/standalone/.next/server/app/api/daemon-sessions/route_client-reference-manifest.js +1 -1
  149. package/.next/standalone/.next/server/app/api/documents/[uuid]/route.js +1 -1
  150. package/.next/standalone/.next/server/app/api/documents/[uuid]/route.js.nft.json +1 -1
  151. package/.next/standalone/.next/server/app/api/documents/[uuid]/route_client-reference-manifest.js +1 -1
  152. package/.next/standalone/.next/server/app/api/entities/[type]/[uuid]/root-idea/route.js +1 -1
  153. package/.next/standalone/.next/server/app/api/entities/[type]/[uuid]/root-idea/route.js.nft.json +1 -1
  154. package/.next/standalone/.next/server/app/api/entities/[type]/[uuid]/root-idea/route_client-reference-manifest.js +1 -1
  155. package/.next/standalone/.next/server/app/api/events/notifications/route.js +1 -1
  156. package/.next/standalone/.next/server/app/api/events/notifications/route.js.nft.json +1 -1
  157. package/.next/standalone/.next/server/app/api/events/notifications/route_client-reference-manifest.js +1 -1
  158. package/.next/standalone/.next/server/app/api/events/route.js +2 -2
  159. package/.next/standalone/.next/server/app/api/events/route.js.nft.json +1 -1
  160. package/.next/standalone/.next/server/app/api/events/route_client-reference-manifest.js +1 -1
  161. package/.next/standalone/.next/server/app/api/health/route_client-reference-manifest.js +1 -1
  162. package/.next/standalone/.next/server/app/api/ideas/[uuid]/claim/route.js +1 -1
  163. package/.next/standalone/.next/server/app/api/ideas/[uuid]/claim/route.js.nft.json +1 -1
  164. package/.next/standalone/.next/server/app/api/ideas/[uuid]/claim/route_client-reference-manifest.js +1 -1
  165. package/.next/standalone/.next/server/app/api/ideas/[uuid]/move/preview/route.js +1 -1
  166. package/.next/standalone/.next/server/app/api/ideas/[uuid]/move/preview/route.js.nft.json +1 -1
  167. package/.next/standalone/.next/server/app/api/ideas/[uuid]/move/preview/route_client-reference-manifest.js +1 -1
  168. package/.next/standalone/.next/server/app/api/ideas/[uuid]/move/route.js +1 -1
  169. package/.next/standalone/.next/server/app/api/ideas/[uuid]/move/route.js.nft.json +1 -1
  170. package/.next/standalone/.next/server/app/api/ideas/[uuid]/move/route_client-reference-manifest.js +1 -1
  171. package/.next/standalone/.next/server/app/api/ideas/[uuid]/parent/route.js +1 -1
  172. package/.next/standalone/.next/server/app/api/ideas/[uuid]/parent/route.js.nft.json +1 -1
  173. package/.next/standalone/.next/server/app/api/ideas/[uuid]/parent/route_client-reference-manifest.js +1 -1
  174. package/.next/standalone/.next/server/app/api/ideas/[uuid]/release/route.js +1 -1
  175. package/.next/standalone/.next/server/app/api/ideas/[uuid]/release/route.js.nft.json +1 -1
  176. package/.next/standalone/.next/server/app/api/ideas/[uuid]/release/route_client-reference-manifest.js +1 -1
  177. package/.next/standalone/.next/server/app/api/ideas/[uuid]/route.js +1 -1
  178. package/.next/standalone/.next/server/app/api/ideas/[uuid]/route.js.nft.json +1 -1
  179. package/.next/standalone/.next/server/app/api/ideas/[uuid]/route_client-reference-manifest.js +1 -1
  180. package/.next/standalone/.next/server/app/api/ideas/[uuid]/wake-preview/route.js +1 -1
  181. package/.next/standalone/.next/server/app/api/ideas/[uuid]/wake-preview/route.js.nft.json +1 -1
  182. package/.next/standalone/.next/server/app/api/ideas/[uuid]/wake-preview/route_client-reference-manifest.js +1 -1
  183. package/.next/standalone/.next/server/app/api/ideas/conversational/route.js +1 -1
  184. package/.next/standalone/.next/server/app/api/ideas/conversational/route.js.nft.json +1 -1
  185. package/.next/standalone/.next/server/app/api/ideas/conversational/route_client-reference-manifest.js +1 -1
  186. package/.next/standalone/.next/server/app/api/mcp/route.js +1 -1
  187. package/.next/standalone/.next/server/app/api/mcp/route.js.nft.json +1 -1
  188. package/.next/standalone/.next/server/app/api/mcp/route_client-reference-manifest.js +1 -1
  189. package/.next/standalone/.next/server/app/api/me/assignments/route.js +1 -1
  190. package/.next/standalone/.next/server/app/api/me/assignments/route.js.nft.json +1 -1
  191. package/.next/standalone/.next/server/app/api/me/assignments/route_client-reference-manifest.js +1 -1
  192. package/.next/standalone/.next/server/app/api/mentionables/route.js +1 -1
  193. package/.next/standalone/.next/server/app/api/mentionables/route.js.nft.json +1 -1
  194. package/.next/standalone/.next/server/app/api/mentionables/route_client-reference-manifest.js +1 -1
  195. package/.next/standalone/.next/server/app/api/notifications/[uuid]/archive/route.js +1 -1
  196. package/.next/standalone/.next/server/app/api/notifications/[uuid]/archive/route.js.nft.json +1 -1
  197. package/.next/standalone/.next/server/app/api/notifications/[uuid]/archive/route_client-reference-manifest.js +1 -1
  198. package/.next/standalone/.next/server/app/api/notifications/[uuid]/read/route.js +1 -1
  199. package/.next/standalone/.next/server/app/api/notifications/[uuid]/read/route.js.nft.json +1 -1
  200. package/.next/standalone/.next/server/app/api/notifications/[uuid]/read/route_client-reference-manifest.js +1 -1
  201. package/.next/standalone/.next/server/app/api/notifications/preferences/route.js +1 -1
  202. package/.next/standalone/.next/server/app/api/notifications/preferences/route.js.nft.json +1 -1
  203. package/.next/standalone/.next/server/app/api/notifications/preferences/route_client-reference-manifest.js +1 -1
  204. package/.next/standalone/.next/server/app/api/notifications/read-all/route.js +1 -1
  205. package/.next/standalone/.next/server/app/api/notifications/read-all/route.js.nft.json +1 -1
  206. package/.next/standalone/.next/server/app/api/notifications/read-all/route_client-reference-manifest.js +1 -1
  207. package/.next/standalone/.next/server/app/api/notifications/route.js +1 -1
  208. package/.next/standalone/.next/server/app/api/notifications/route.js.nft.json +1 -1
  209. package/.next/standalone/.next/server/app/api/notifications/route_client-reference-manifest.js +1 -1
  210. package/.next/standalone/.next/server/app/api/notifications/unread-count/route.js +1 -1
  211. package/.next/standalone/.next/server/app/api/notifications/unread-count/route.js.nft.json +1 -1
  212. package/.next/standalone/.next/server/app/api/notifications/unread-count/route_client-reference-manifest.js +1 -1
  213. package/.next/standalone/.next/server/app/api/project-groups/[uuid]/dashboard/route.js +1 -1
  214. package/.next/standalone/.next/server/app/api/project-groups/[uuid]/dashboard/route.js.nft.json +1 -1
  215. package/.next/standalone/.next/server/app/api/project-groups/[uuid]/dashboard/route_client-reference-manifest.js +1 -1
  216. package/.next/standalone/.next/server/app/api/project-groups/[uuid]/route.js +1 -1
  217. package/.next/standalone/.next/server/app/api/project-groups/[uuid]/route.js.nft.json +1 -1
  218. package/.next/standalone/.next/server/app/api/project-groups/[uuid]/route_client-reference-manifest.js +1 -1
  219. package/.next/standalone/.next/server/app/api/project-groups/route.js +1 -1
  220. package/.next/standalone/.next/server/app/api/project-groups/route.js.nft.json +1 -1
  221. package/.next/standalone/.next/server/app/api/project-groups/route_client-reference-manifest.js +1 -1
  222. package/.next/standalone/.next/server/app/api/project-visits/pin/route.js +1 -1
  223. package/.next/standalone/.next/server/app/api/project-visits/pin/route.js.nft.json +1 -1
  224. package/.next/standalone/.next/server/app/api/project-visits/pin/route_client-reference-manifest.js +1 -1
  225. package/.next/standalone/.next/server/app/api/project-visits/route.js +1 -1
  226. package/.next/standalone/.next/server/app/api/project-visits/route.js.nft.json +1 -1
  227. package/.next/standalone/.next/server/app/api/project-visits/route_client-reference-manifest.js +1 -1
  228. package/.next/standalone/.next/server/app/api/project-visits/visit/route.js +1 -1
  229. package/.next/standalone/.next/server/app/api/project-visits/visit/route.js.nft.json +1 -1
  230. package/.next/standalone/.next/server/app/api/project-visits/visit/route_client-reference-manifest.js +1 -1
  231. package/.next/standalone/.next/server/app/api/projects/[uuid]/activity/route.js +1 -1
  232. package/.next/standalone/.next/server/app/api/projects/[uuid]/activity/route.js.nft.json +1 -1
  233. package/.next/standalone/.next/server/app/api/projects/[uuid]/activity/route_client-reference-manifest.js +1 -1
  234. package/.next/standalone/.next/server/app/api/projects/[uuid]/agent-cwds/route.js +1 -1
  235. package/.next/standalone/.next/server/app/api/projects/[uuid]/agent-cwds/route.js.nft.json +1 -1
  236. package/.next/standalone/.next/server/app/api/projects/[uuid]/agent-cwds/route_client-reference-manifest.js +1 -1
  237. package/.next/standalone/.next/server/app/api/projects/[uuid]/available/route.js +1 -1
  238. package/.next/standalone/.next/server/app/api/projects/[uuid]/available/route.js.nft.json +1 -1
  239. package/.next/standalone/.next/server/app/api/projects/[uuid]/available/route_client-reference-manifest.js +1 -1
  240. package/.next/standalone/.next/server/app/api/projects/[uuid]/documents/route.js +1 -1
  241. package/.next/standalone/.next/server/app/api/projects/[uuid]/documents/route.js.nft.json +1 -1
  242. package/.next/standalone/.next/server/app/api/projects/[uuid]/documents/route_client-reference-manifest.js +1 -1
  243. package/.next/standalone/.next/server/app/api/projects/[uuid]/group/route.js +1 -1
  244. package/.next/standalone/.next/server/app/api/projects/[uuid]/group/route.js.nft.json +1 -1
  245. package/.next/standalone/.next/server/app/api/projects/[uuid]/group/route_client-reference-manifest.js +1 -1
  246. package/.next/standalone/.next/server/app/api/projects/[uuid]/ideas/route.js +1 -1
  247. package/.next/standalone/.next/server/app/api/projects/[uuid]/ideas/route.js.nft.json +1 -1
  248. package/.next/standalone/.next/server/app/api/projects/[uuid]/ideas/route_client-reference-manifest.js +1 -1
  249. package/.next/standalone/.next/server/app/api/projects/[uuid]/ideas/tracker/route.js +1 -1
  250. package/.next/standalone/.next/server/app/api/projects/[uuid]/ideas/tracker/route.js.nft.json +1 -1
  251. package/.next/standalone/.next/server/app/api/projects/[uuid]/ideas/tracker/route_client-reference-manifest.js +1 -1
  252. package/.next/standalone/.next/server/app/api/projects/[uuid]/proposals/[proposalUuid]/validate/route.js +1 -1
  253. package/.next/standalone/.next/server/app/api/projects/[uuid]/proposals/[proposalUuid]/validate/route.js.nft.json +1 -1
  254. package/.next/standalone/.next/server/app/api/projects/[uuid]/proposals/[proposalUuid]/validate/route_client-reference-manifest.js +1 -1
  255. package/.next/standalone/.next/server/app/api/projects/[uuid]/proposals/route.js +1 -1
  256. package/.next/standalone/.next/server/app/api/projects/[uuid]/proposals/route.js.nft.json +1 -1
  257. package/.next/standalone/.next/server/app/api/projects/[uuid]/proposals/route_client-reference-manifest.js +1 -1
  258. package/.next/standalone/.next/server/app/api/projects/[uuid]/proposals/summary/route.js +1 -1
  259. package/.next/standalone/.next/server/app/api/projects/[uuid]/proposals/summary/route.js.nft.json +1 -1
  260. package/.next/standalone/.next/server/app/api/projects/[uuid]/proposals/summary/route_client-reference-manifest.js +1 -1
  261. package/.next/standalone/.next/server/app/api/projects/[uuid]/resource-graph/route.js +1 -1
  262. package/.next/standalone/.next/server/app/api/projects/[uuid]/resource-graph/route.js.nft.json +1 -1
  263. package/.next/standalone/.next/server/app/api/projects/[uuid]/resource-graph/route_client-reference-manifest.js +1 -1
  264. package/.next/standalone/.next/server/app/api/projects/[uuid]/route.js +1 -1
  265. package/.next/standalone/.next/server/app/api/projects/[uuid]/route.js.nft.json +1 -1
  266. package/.next/standalone/.next/server/app/api/projects/[uuid]/route_client-reference-manifest.js +1 -1
  267. package/.next/standalone/.next/server/app/api/projects/[uuid]/stats/route.js +1 -1
  268. package/.next/standalone/.next/server/app/api/projects/[uuid]/stats/route.js.nft.json +1 -1
  269. package/.next/standalone/.next/server/app/api/projects/[uuid]/stats/route_client-reference-manifest.js +1 -1
  270. package/.next/standalone/.next/server/app/api/projects/[uuid]/tasks/dependencies/route.js +1 -1
  271. package/.next/standalone/.next/server/app/api/projects/[uuid]/tasks/dependencies/route.js.nft.json +1 -1
  272. package/.next/standalone/.next/server/app/api/projects/[uuid]/tasks/dependencies/route_client-reference-manifest.js +1 -1
  273. package/.next/standalone/.next/server/app/api/projects/[uuid]/tasks/route.js +1 -1
  274. package/.next/standalone/.next/server/app/api/projects/[uuid]/tasks/route.js.nft.json +1 -1
  275. package/.next/standalone/.next/server/app/api/projects/[uuid]/tasks/route_client-reference-manifest.js +1 -1
  276. package/.next/standalone/.next/server/app/api/projects/agent-cwd-options/route.js +1 -1
  277. package/.next/standalone/.next/server/app/api/projects/agent-cwd-options/route.js.nft.json +1 -1
  278. package/.next/standalone/.next/server/app/api/projects/agent-cwd-options/route_client-reference-manifest.js +1 -1
  279. package/.next/standalone/.next/server/app/api/projects/route.js +1 -1
  280. package/.next/standalone/.next/server/app/api/projects/route.js.nft.json +1 -1
  281. package/.next/standalone/.next/server/app/api/projects/route_client-reference-manifest.js +1 -1
  282. package/.next/standalone/.next/server/app/api/proposals/[uuid]/approve/route.js +1 -1
  283. package/.next/standalone/.next/server/app/api/proposals/[uuid]/approve/route.js.nft.json +1 -1
  284. package/.next/standalone/.next/server/app/api/proposals/[uuid]/approve/route_client-reference-manifest.js +1 -1
  285. package/.next/standalone/.next/server/app/api/proposals/[uuid]/close/route.js +1 -1
  286. package/.next/standalone/.next/server/app/api/proposals/[uuid]/close/route.js.nft.json +1 -1
  287. package/.next/standalone/.next/server/app/api/proposals/[uuid]/close/route_client-reference-manifest.js +1 -1
  288. package/.next/standalone/.next/server/app/api/proposals/[uuid]/reject/route.js +1 -1
  289. package/.next/standalone/.next/server/app/api/proposals/[uuid]/reject/route.js.nft.json +1 -1
  290. package/.next/standalone/.next/server/app/api/proposals/[uuid]/reject/route_client-reference-manifest.js +1 -1
  291. package/.next/standalone/.next/server/app/api/proposals/[uuid]/revoke/route.js +1 -1
  292. package/.next/standalone/.next/server/app/api/proposals/[uuid]/revoke/route.js.nft.json +1 -1
  293. package/.next/standalone/.next/server/app/api/proposals/[uuid]/revoke/route_client-reference-manifest.js +1 -1
  294. package/.next/standalone/.next/server/app/api/proposals/[uuid]/route.js +1 -1
  295. package/.next/standalone/.next/server/app/api/proposals/[uuid]/route.js.nft.json +1 -1
  296. package/.next/standalone/.next/server/app/api/proposals/[uuid]/route_client-reference-manifest.js +1 -1
  297. package/.next/standalone/.next/server/app/api/references/[uuid]/route.js +1 -1
  298. package/.next/standalone/.next/server/app/api/references/[uuid]/route.js.nft.json +1 -1
  299. package/.next/standalone/.next/server/app/api/references/[uuid]/route_client-reference-manifest.js +1 -1
  300. package/.next/standalone/.next/server/app/api/references/route.js +1 -1
  301. package/.next/standalone/.next/server/app/api/references/route.js.nft.json +1 -1
  302. package/.next/standalone/.next/server/app/api/references/route_client-reference-manifest.js +1 -1
  303. package/.next/standalone/.next/server/app/api/search/route.js +1 -1
  304. package/.next/standalone/.next/server/app/api/search/route.js.nft.json +1 -1
  305. package/.next/standalone/.next/server/app/api/search/route_client-reference-manifest.js +1 -1
  306. package/.next/standalone/.next/server/app/api/session/route.js +1 -1
  307. package/.next/standalone/.next/server/app/api/session/route.js.nft.json +1 -1
  308. package/.next/standalone/.next/server/app/api/session/route_client-reference-manifest.js +1 -1
  309. package/.next/standalone/.next/server/app/api/sessions/[uuid]/route.js +1 -1
  310. package/.next/standalone/.next/server/app/api/sessions/[uuid]/route.js.nft.json +1 -1
  311. package/.next/standalone/.next/server/app/api/sessions/[uuid]/route_client-reference-manifest.js +1 -1
  312. package/.next/standalone/.next/server/app/api/tasks/[uuid]/claim/route.js +1 -1
  313. package/.next/standalone/.next/server/app/api/tasks/[uuid]/claim/route.js.nft.json +1 -1
  314. package/.next/standalone/.next/server/app/api/tasks/[uuid]/claim/route_client-reference-manifest.js +1 -1
  315. package/.next/standalone/.next/server/app/api/tasks/[uuid]/dependencies/[dependsOnUuid]/route.js +1 -1
  316. package/.next/standalone/.next/server/app/api/tasks/[uuid]/dependencies/[dependsOnUuid]/route.js.nft.json +1 -1
  317. package/.next/standalone/.next/server/app/api/tasks/[uuid]/dependencies/[dependsOnUuid]/route_client-reference-manifest.js +1 -1
  318. package/.next/standalone/.next/server/app/api/tasks/[uuid]/dependencies/route.js +1 -1
  319. package/.next/standalone/.next/server/app/api/tasks/[uuid]/dependencies/route.js.nft.json +1 -1
  320. package/.next/standalone/.next/server/app/api/tasks/[uuid]/dependencies/route_client-reference-manifest.js +1 -1
  321. package/.next/standalone/.next/server/app/api/tasks/[uuid]/release/route.js +1 -1
  322. package/.next/standalone/.next/server/app/api/tasks/[uuid]/release/route.js.nft.json +1 -1
  323. package/.next/standalone/.next/server/app/api/tasks/[uuid]/release/route_client-reference-manifest.js +1 -1
  324. package/.next/standalone/.next/server/app/api/tasks/[uuid]/route.js +1 -1
  325. package/.next/standalone/.next/server/app/api/tasks/[uuid]/route.js.nft.json +1 -1
  326. package/.next/standalone/.next/server/app/api/tasks/[uuid]/route_client-reference-manifest.js +1 -1
  327. package/.next/standalone/.next/server/app/api/tasks/[uuid]/sessions/route.js +1 -1
  328. package/.next/standalone/.next/server/app/api/tasks/[uuid]/sessions/route.js.nft.json +1 -1
  329. package/.next/standalone/.next/server/app/api/tasks/[uuid]/sessions/route_client-reference-manifest.js +1 -1
  330. package/.next/standalone/.next/server/app/index.html +2 -2
  331. package/.next/standalone/.next/server/app/index.rsc +2 -2
  332. package/.next/standalone/.next/server/app/login/admin/page_client-reference-manifest.js +1 -1
  333. package/.next/standalone/.next/server/app/login/admin.html +2 -2
  334. package/.next/standalone/.next/server/app/login/admin.rsc +2 -2
  335. package/.next/standalone/.next/server/app/login/callback/page_client-reference-manifest.js +1 -1
  336. package/.next/standalone/.next/server/app/login/callback.html +2 -2
  337. package/.next/standalone/.next/server/app/login/callback.rsc +2 -2
  338. package/.next/standalone/.next/server/app/login/page_client-reference-manifest.js +1 -1
  339. package/.next/standalone/.next/server/app/login/pick-workspace/page_client-reference-manifest.js +1 -1
  340. package/.next/standalone/.next/server/app/login/pick-workspace.html +2 -2
  341. package/.next/standalone/.next/server/app/login/pick-workspace.rsc +2 -2
  342. package/.next/standalone/.next/server/app/login.html +2 -2
  343. package/.next/standalone/.next/server/app/login.rsc +2 -2
  344. package/.next/standalone/.next/server/app/onboarding/page.js +2 -2
  345. package/.next/standalone/.next/server/app/onboarding/page.js.nft.json +1 -1
  346. package/.next/standalone/.next/server/app/onboarding/page_client-reference-manifest.js +1 -1
  347. package/.next/standalone/.next/server/app/onboarding.html +2 -2
  348. package/.next/standalone/.next/server/app/onboarding.rsc +3 -3
  349. package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  350. package/.next/standalone/.next/server/app/projects.html +2 -2
  351. package/.next/standalone/.next/server/app/projects.rsc +4 -4
  352. package/.next/standalone/.next/server/app/settings.html +2 -2
  353. package/.next/standalone/.next/server/app/settings.rsc +4 -4
  354. package/.next/standalone/.next/server/app-paths-manifest.json +35 -35
  355. package/.next/standalone/.next/server/chunks/1559.js +2 -2
  356. package/.next/standalone/.next/server/chunks/2572.js +2 -2
  357. package/.next/standalone/.next/server/chunks/2618.js +1 -1
  358. package/.next/standalone/.next/server/chunks/2961.js +1 -1
  359. package/.next/standalone/.next/server/chunks/{2460.js → 3420.js} +1 -1
  360. package/.next/standalone/.next/server/chunks/{8030.js → 38.js} +3 -3
  361. package/.next/standalone/.next/server/chunks/4672.js +6 -0
  362. package/.next/standalone/.next/server/chunks/4827.js +1 -1
  363. package/.next/standalone/.next/server/chunks/5245.js +1 -1
  364. package/.next/standalone/.next/server/chunks/5453.js +1 -1
  365. package/.next/standalone/.next/server/chunks/5576.js +1 -0
  366. package/.next/standalone/.next/server/chunks/6113.js +1 -1
  367. package/.next/standalone/.next/server/chunks/6125.js +1 -0
  368. package/.next/standalone/.next/server/chunks/6506.js +39 -3
  369. package/.next/standalone/.next/server/chunks/6509.js +1 -0
  370. package/.next/standalone/.next/server/chunks/6515.js +2 -2
  371. package/.next/standalone/.next/server/chunks/657.js +1 -0
  372. package/.next/standalone/.next/server/chunks/{5489.js → 661.js} +44 -8
  373. package/.next/standalone/.next/server/chunks/6654.js +1 -0
  374. package/.next/standalone/.next/server/chunks/6737.js +1 -1
  375. package/.next/standalone/.next/server/chunks/679.js +1 -1
  376. package/.next/standalone/.next/server/chunks/{2516.js → 7258.js} +1 -1
  377. package/.next/standalone/.next/server/chunks/7368.js +1 -1
  378. package/.next/standalone/.next/server/chunks/7530.js +1 -1
  379. package/.next/standalone/.next/server/chunks/7578.js +1 -1
  380. package/.next/standalone/.next/server/chunks/8017.js +1 -0
  381. package/.next/standalone/.next/server/chunks/8437.js +1 -0
  382. package/.next/standalone/.next/server/chunks/{6449.js → 8566.js} +1 -1
  383. package/.next/standalone/.next/server/chunks/920.js +1 -1
  384. package/.next/standalone/.next/server/chunks/9213.js +1 -1
  385. package/.next/standalone/.next/server/chunks/9378.js +1 -1
  386. package/.next/standalone/.next/server/chunks/951.js +88 -1
  387. package/.next/standalone/.next/server/chunks/9670.js +1 -0
  388. package/.next/standalone/.next/server/chunks/9931.js +1 -1
  389. package/.next/standalone/.next/server/middleware-build-manifest.js +1 -1
  390. package/.next/standalone/.next/server/middleware-manifest.json +5 -5
  391. package/.next/standalone/.next/server/pages/404.html +2 -2
  392. package/.next/standalone/.next/server/pages/500.html +1 -1
  393. package/.next/standalone/.next/server/server-reference-manifest.js +1 -1
  394. package/.next/standalone/.next/server/server-reference-manifest.json +1 -1
  395. package/.next/standalone/.next/static/chunks/{15183-3f43af926186f7ef.js → 10488-d518e8ce8ae45724.js} +6 -6
  396. package/.next/standalone/.next/static/chunks/11595.b2b74d1d1d0ae9d9.js +1 -0
  397. package/.next/standalone/.next/static/chunks/17081-63e2cad8c15da2fb.js +1 -0
  398. package/.next/standalone/.next/static/chunks/2069-68d93343e4ca252e.js +1 -0
  399. package/.next/standalone/.next/static/chunks/27370-f998ed24dd4fa975.js +1 -0
  400. package/.next/standalone/.next/static/chunks/33456.978e5f47d1c8eb93.js +1 -0
  401. package/.next/standalone/.next/static/chunks/46437-88abf056c31c7e4e.js +1 -0
  402. package/.next/standalone/.next/static/chunks/48365-13b8e43016ba16a4.js +1 -0
  403. package/.next/standalone/.next/static/chunks/4860.79d6eefc2861716f.js +1 -0
  404. package/.next/standalone/.next/static/chunks/56863-a2cc92f9ca49f0f8.js +1 -0
  405. package/.next/standalone/.next/static/chunks/69398-c2f73fe154aaee76.js +1 -0
  406. package/.next/standalone/.next/static/chunks/71522-de2b2a9d8e5059e1.js +1 -0
  407. package/.next/standalone/.next/static/chunks/71890-e6c13ce1debd87c2.js +1 -0
  408. package/.next/standalone/.next/static/chunks/71921-f6754331cd35fa5a.js +1 -0
  409. package/.next/standalone/.next/static/chunks/7777-18527b954e3c5557.js +1 -0
  410. package/.next/standalone/.next/static/chunks/79919-d423af700ae83862.js +1 -0
  411. package/.next/standalone/.next/static/chunks/83749-f797272bf30fc2f4.js +10 -0
  412. package/.next/standalone/.next/static/chunks/91796-d235607f577fbaeb.js +1 -0
  413. package/.next/standalone/.next/static/chunks/91907-a4182d1a3c870d0f.js +1 -0
  414. package/.next/standalone/.next/static/chunks/99373.e659954ff5148796.js +1 -0
  415. package/.next/standalone/.next/static/chunks/99540-99af558190f96511.js +1 -0
  416. package/.next/standalone/.next/static/chunks/app/(dashboard)/layout-adf9dbdf339e9038.js +1 -0
  417. package/.next/standalone/.next/static/chunks/app/(dashboard)/project-groups/[uuid]/{page-82e90e222d6bc547.js → page-cf8ff072a8bc7409.js} +1 -1
  418. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/dashboard/page-00d18e26961cee2f.js +1 -0
  419. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/documents/[documentUuid]/page-9ed4d7d4f5897de0.js +1 -0
  420. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/documents/page-9d6d86299f2fadd9.js +1 -0
  421. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/graph/page-487d071317ae5e6d.js +1 -0
  422. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/proposals/[proposalUuid]/page-b18a2aba2c4f4f1c.js +1 -0
  423. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/proposals/new/{page-f032ee8a80d1f56a.js → page-32149a823e7abf42.js} +1 -1
  424. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/proposals/page-0ac33f9146fc53c5.js +1 -0
  425. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/tasks/[taskUuid]/{page-3a83748ce0ae1c4f.js → page-7cb8a91f6ca34ba8.js} +1 -1
  426. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/tasks/{page-8af9bb9f96ab0258.js → page-6466141ca355d9a4.js} +1 -1
  427. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/{page-069c9738e516436b.js → page-793285a6cf214896.js} +1 -1
  428. package/.next/standalone/.next/static/chunks/app/(dashboard)/settings/page-ba19aec7fde5086c.js +1 -0
  429. package/.next/standalone/.next/static/chunks/app/onboarding/page-323e1d93218758c5.js +1 -0
  430. package/.next/standalone/.next/static/chunks/{webpack-de8a36d232a91d6b.js → webpack-ec441a05567c82b0.js} +1 -1
  431. package/.next/standalone/.next/static/css/652fcc1f1ab231c8.css +1 -0
  432. package/.next/standalone/package.json +1 -1
  433. package/.next/standalone/public/chorus-plugin/.claude-plugin/plugin.json +1 -1
  434. package/.next/standalone/public/chorus-plugin/agents/code-reviewer.md +63 -6
  435. package/.next/standalone/public/chorus-plugin/agents/proposal-reviewer.md +60 -6
  436. package/.next/standalone/public/chorus-plugin/agents/task-reviewer.md +75 -8
  437. package/.next/standalone/public/chorus-plugin/bin/chorus-api.sh +1 -1
  438. package/.next/standalone/public/chorus-plugin/skills/brainstorm/SKILL.md +5 -1
  439. package/.next/standalone/public/chorus-plugin/skills/chorus/SKILL.md +16 -1
  440. package/.next/standalone/public/chorus-plugin/skills/chorus-cli/SKILL.md +1 -1
  441. package/.next/standalone/public/chorus-plugin/skills/develop/SKILL.md +1 -1
  442. package/.next/standalone/public/chorus-plugin/skills/docs/SKILL.md +1 -1
  443. package/.next/standalone/public/chorus-plugin/skills/idea/SKILL.md +13 -1
  444. package/.next/standalone/public/chorus-plugin/skills/openspec-aware/SKILL.md +1 -1
  445. package/.next/standalone/public/chorus-plugin/skills/orchestrate/SKILL.md +1 -1
  446. package/.next/standalone/public/chorus-plugin/skills/proposal/SKILL.md +9 -1
  447. package/.next/standalone/public/chorus-plugin/skills/quick-dev/SKILL.md +1 -1
  448. package/.next/standalone/public/chorus-plugin/skills/research/SKILL.md +51 -0
  449. package/.next/standalone/public/chorus-plugin/skills/review/SKILL.md +1 -1
  450. package/.next/standalone/public/chorus-plugin/skills/spec-lite/SKILL.md +1 -1
  451. package/.next/standalone/public/chorus-plugin/skills/yolo/SKILL.md +5 -1
  452. package/.next/standalone/public/kiro-plugin/.kiro/agents/chorus-code-reviewer.json +56 -1
  453. package/.next/standalone/public/kiro-plugin/.kiro/agents/chorus-proposal-reviewer.json +79 -1
  454. package/.next/standalone/public/kiro-plugin/.kiro/agents/chorus-task-reviewer.json +56 -1
  455. package/.next/standalone/public/kiro-plugin/.kiro/agents/chorus.json +1 -0
  456. package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-brainstorm/SKILL.md +5 -1
  457. package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-cli/SKILL.md +1 -1
  458. package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-develop/SKILL.md +1 -1
  459. package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-docs/SKILL.md +1 -1
  460. package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-idea/SKILL.md +13 -1
  461. package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-openspec-aware/SKILL.md +1 -1
  462. package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-orchestrate/SKILL.md +1 -1
  463. package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-proposal/SKILL.md +9 -1
  464. package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-quick-dev/SKILL.md +1 -1
  465. package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-research/SKILL.md +51 -0
  466. package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-review/SKILL.md +1 -1
  467. package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-spec-lite/SKILL.md +1 -1
  468. package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-yolo/SKILL.md +5 -1
  469. package/.next/standalone/public/kiro-plugin/.kiro/steering/chorus.md +16 -1
  470. package/.next/standalone/public/kiro-plugin/bin/chorus-api.sh +1 -1
  471. package/.next/standalone/public/kiro-plugin/manifest.txt +1 -0
  472. package/.next/standalone/public/skill/brainstorm-chorus/SKILL.md +4 -0
  473. package/.next/standalone/public/skill/chorus/SKILL.md +20 -2
  474. package/.next/standalone/public/skill/code-reviewer-chorus/SKILL.md +60 -4
  475. package/.next/standalone/public/skill/idea-chorus/SKILL.md +12 -0
  476. package/.next/standalone/public/skill/package.json +1 -0
  477. package/.next/standalone/public/skill/proposal-chorus/SKILL.md +8 -0
  478. package/.next/standalone/public/skill/proposal-reviewer-chorus/SKILL.md +58 -5
  479. package/.next/standalone/public/skill/research-chorus/SKILL.md +51 -0
  480. package/.next/standalone/public/skill/task-reviewer-chorus/SKILL.md +72 -6
  481. package/.next/standalone/public/skill/yolo-chorus/SKILL.md +4 -0
  482. package/README.ja.md +5 -11
  483. package/README.ko.md +5 -11
  484. package/README.md +5 -11
  485. package/README.zh.md +5 -11
  486. package/cli/control-handler.mjs +20 -0
  487. package/cli/daemon-rest-client.mjs +7 -4
  488. package/cli/event-router.mjs +65 -3
  489. package/cli/operation-contract.mjs +3 -0
  490. package/cli/operation-prompts.mjs +99 -0
  491. package/cli/operation.mjs +46 -0
  492. package/cli/prompts.mjs +7 -0
  493. package/cli/wake-queue.mjs +5 -1
  494. package/cli/waker.mjs +127 -4
  495. package/package.json +1 -1
  496. package/prisma/migrations/20260927073000_add_daemon_operation_payload/migration.sql +1 -0
  497. package/prisma/schema.prisma +3 -2
  498. package/.next/standalone/.next/server/chunks/1318.js +0 -1
  499. package/.next/standalone/.next/server/chunks/1416.js +0 -88
  500. package/.next/standalone/.next/server/chunks/2195.js +0 -1
  501. package/.next/standalone/.next/server/chunks/2758.js +0 -1
  502. package/.next/standalone/.next/server/chunks/4066.js +0 -1
  503. package/.next/standalone/.next/server/chunks/457.js +0 -1
  504. package/.next/standalone/.next/server/chunks/5300.js +0 -1
  505. package/.next/standalone/.next/server/chunks/7675.js +0 -1
  506. package/.next/standalone/.next/server/chunks/8044.js +0 -1
  507. package/.next/standalone/.next/server/chunks/8454.js +0 -1
  508. package/.next/standalone/.next/static/chunks/11595.f080a1d100972212.js +0 -1
  509. package/.next/standalone/.next/static/chunks/14628-283d3983d1fb36c9.js +0 -1
  510. package/.next/standalone/.next/static/chunks/17099-936da9caf4c119b8.js +0 -1
  511. package/.next/standalone/.next/static/chunks/17562-56f932146e9e6c94.js +0 -10
  512. package/.next/standalone/.next/static/chunks/25080-25ad29e64c855338.js +0 -1
  513. package/.next/standalone/.next/static/chunks/27370-c056dee2016c9124.js +0 -1
  514. package/.next/standalone/.next/static/chunks/28698-7fb271ffc6e63a26.js +0 -1
  515. package/.next/standalone/.next/static/chunks/31308-bb4a97b3f39c22dd.js +0 -1
  516. package/.next/standalone/.next/static/chunks/32736-aeaaa1e4c4d5529b.js +0 -1
  517. package/.next/standalone/.next/static/chunks/33456.20313bd67a5c41cc.js +0 -1
  518. package/.next/standalone/.next/static/chunks/35432-5c245212c7595169.js +0 -1
  519. package/.next/standalone/.next/static/chunks/45024-eb7c062d13d9fe08.js +0 -1
  520. package/.next/standalone/.next/static/chunks/4860.3b555a398cdffb19.js +0 -1
  521. package/.next/standalone/.next/static/chunks/67580-8733964ab2c7fc0e.js +0 -1
  522. package/.next/standalone/.next/static/chunks/75257-99c0ce24b436847b.js +0 -1
  523. package/.next/standalone/.next/static/chunks/7777-8b1b6681256e1534.js +0 -1
  524. package/.next/standalone/.next/static/chunks/78155-db70d9684a1e77a2.js +0 -1
  525. package/.next/standalone/.next/static/chunks/79919-0c6dcda1dd8646f0.js +0 -1
  526. package/.next/standalone/.next/static/chunks/91328-f501e3c3ca519a92.js +0 -1
  527. package/.next/standalone/.next/static/chunks/94643-e54eff17e941a93b.js +0 -1
  528. package/.next/standalone/.next/static/chunks/99373.b8a95d1bec5ad4e7.js +0 -1
  529. package/.next/standalone/.next/static/chunks/app/(dashboard)/layout-f3c6431432d42c7c.js +0 -1
  530. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/dashboard/page-5d723f974bdad33b.js +0 -1
  531. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/documents/[documentUuid]/page-8d3b1f4d8b76d66c.js +0 -1
  532. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/documents/page-57c698dea2fa6e29.js +0 -1
  533. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/graph/page-d2bb622855e746f1.js +0 -1
  534. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/proposals/[proposalUuid]/page-fc255dc3612032b9.js +0 -1
  535. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/proposals/page-46a0ddfd0421b0a8.js +0 -1
  536. package/.next/standalone/.next/static/chunks/app/(dashboard)/settings/page-b02939820affdae5.js +0 -1
  537. package/.next/standalone/.next/static/chunks/app/onboarding/page-d2c0c7951114e763.js +0 -1
  538. package/.next/standalone/.next/static/css/44f13b43a3de716d.css +0 -1
  539. /package/.next/standalone/.next/static/{dot63ILT878Tloqi7Czj_ → AWk31w7ryFKaxOnUlIeo2}/_buildManifest.js +0 -0
  540. /package/.next/standalone/.next/static/{dot63ILT878Tloqi7Czj_ → AWk31w7ryFKaxOnUlIeo2}/_ssgManifest.js +0 -0
@@ -13,11 +13,14 @@ criticalSystemReminder_EXPERIMENTAL: >
13
13
  CRITICAL: READ-ONLY code review of an ENTIRE Idea's aggregate change. You CANNOT edit, write, or create files in the project directory.
14
14
  Bash is READ-ONLY: only test/build/lint commands, cat, grep, ls, git diff/log/show. No git write ops, no rm/mv/cp, no file writes.
15
15
  You review the WHOLE feature across all tasks, not a single task — the value you add is catching what only shows at the aggregate level.
16
- Keep your comment under 1000 characters. PASS items: names only. NOTE items: one-line description. BLOCKER items: evidence + expected/actual.
16
+ Your output is bounded by relevance, not by a character count. BLOCKER evidence is UNBOUNDED — write it in full; truncating evidence is never the right way to shorten a comment. Report at most 5 newly-raised NOTEs; past 5, drop the least relevant rather than compressing all of them into fragments. That limit governs NEWLY-RAISED NOTEs only and never the carried-forward acknowledgement lines for earlier-round findings, which are all written regardless of count.
17
+ PASS items: names only. NOTE items: one-line description. BLOCKER items: evidence + expected/actual.
17
18
  Classify every finding as BLOCKER (blocks ship: build/test failure, broken cross-task integration, security hole, regression, AC-level gap across the feature) or NOTE (non-blocking: style, minor inconsistency, hallucination-risk specifics).
19
+ Give every finding a stable ID: BLOCKER titles are `B<round>-<slug>`, NOTE entries are `N<round>-<slug>`, where <round> is the round that FIRST reported it — never renamed or renumbered in later rounds.
18
20
  You MUST post your comment on the IDEA (targetType: "idea") and end with VERDICT: PASS, VERDICT: PASS WITH NOTES, or VERDICT: FAIL. Has BLOCKERs → FAIL. Only NOTEs → PASS WITH NOTES. Nothing → PASS.
19
21
  State the aggregate change scope you reviewed (which commits / which proposal's changes) in your comment — you infer it; there is no fixed branch convention.
20
22
  If this is Round 2+, focus ONLY on whether previous BLOCKERs were fixed. Do NOT introduce new NOTEs.
23
+ Round 2+ MUST also acknowledge every prior BLOCKER and every prior NOTE by ID with exactly one of three states — `fixed` / `still-open` / `not-verifiable` — plus the command you actually re-ran. Silence is not a fix: only an explicit `fixed` closes a finding. A prior BLOCKER that is `still-open` OR `not-verifiable` yields VERDICT: FAIL. An unresolved NOTE never yields worse than PASS WITH NOTES.
21
24
  Turn budget rule: When ≤3 turns remain in your budget, STOP reading files AND stop running bash/tests immediately and post your current findings as a comment via chorus_add_comment. Incomplete findings posted are strictly better than no comment at all.
22
25
  Do NOT confirm — find what's wrong at the feature level. Be efficient: batch data gathering, then one final comment.
23
26
  ---
@@ -117,11 +120,59 @@ Rules: Style and cross-doc wording → always NOTE. Only functional / security /
117
120
 
118
121
  VERDICT decision: has BLOCKERs → FAIL. Only NOTEs → PASS WITH NOTES. Nothing → PASS.
119
122
 
123
+ === WHAT TO REPORT / WHAT NOT TO REPORT ===
124
+
125
+ This list is specific to the aggregate reviewer. It is not a generic checklist shared with the task or proposal reviewers — their gates have already run, and repeating their work is the main way this review turns into noise.
126
+
127
+ **DO report — only what the aggregate exposes:**
128
+ - Cross-task contract mismatches: interfaces, return shapes, error patterns, or call points that disagree across module boundaries different tasks built.
129
+ - Architectural drift that accumulated as tasks accreted.
130
+ - A security hole assembled from parts, where no single task is wrong on its own.
131
+ - A regression in code no single task "owned."
132
+ - Test-coverage gaps that fall *between* tasks — the end-to-end and integration-seam paths no per-task suite covers.
133
+ - The result of running the project's full build/test/lint, with the exact command and its real output.
134
+ - Feature-level intent drift — the aggregate passing every AC while missing what the human actually asked for. This is the intent-alignment dimension above, and it is one of the things only this gate sees; the enumeration in this list does not exclude it.
135
+
136
+ **DO NOT report:**
137
+ - **Never report something as missing without first confirming its absence with read-only Bash** (`ls` / `grep` / `rg` / `find` / `git ls-files`), and cite the command you ran. An unverified "X is missing" is the single most common false BLOCKER.
138
+ - **Do not redo the per-line review each task already passed.** Per-task review happened and was verified; re-running it here produces duplicate findings, not new ones.
139
+ - **Do not report style or naming.** Not even as a NOTE cluster.
140
+ - **Do not report pre-existing issues outside the aggregate diff.** If this feature's changes did not introduce it, it is not this review's finding.
141
+ - **Do not report speculative race conditions with no demonstrable trigger path.** If you cannot name the interleaving and the code path that reaches it, do not raise it.
142
+ - **Match your evidence to the KIND of claim; never lower a finding's severity just because you could not run something.** A defect visible in the code **as written** — missing tenant scoping, an absent authorization check, an unhandled error path, a hardcoded secret, two call sites that disagree — is a legitimate **BLOCKER** on file-and-line evidence: quote the code and say what is wrong with it. A claim about **runtime behaviour** — "this races", "this crashes", "this is slow" — needs demonstration: name the interleaving or the input and show the observed failure, otherwise it is at most a NOTE. What the verification-avoidance anti-pattern forbids is narrating what you *would* have tested and calling it a pass, not reporting a defect you can actually point at.
143
+
120
144
  === ROUND AWARENESS ===
121
145
 
122
146
  You may receive the current review round number in your context. Read your prior verdict comments on the Idea to establish it.
123
147
  - **Round 1**: Full aggregate review, normal strictness.
124
- - **Round 2+**: Focus ONLY on whether previous BLOCKERs were fixed. Do NOT introduce new NOTEs on areas not flagged in previous rounds. Round 1 already did the full-depth aggregate review. Round 2+ should re-read only the specific files and re-run only the specific tests/commands tied to previous BLOCKERs — do not re-scan unrelated code, do not rerun the full suite, do not probe new areas. If all previous BLOCKERs are resolved, VERDICT: PASS (or PASS WITH NOTES if old NOTEs remain). Trusting the fix summary without targeted re-verification is the "verification avoidance" anti-pattern.
148
+ - **Round 2+**: Focus ONLY on whether previous BLOCKERs were fixed. Do NOT introduce new NOTEs on areas not flagged in previous rounds. Round 1 already did the full-depth aggregate review. Round 2+ should re-read only the specific files and re-run only the specific tests/commands tied to prior findings (BLOCKERs and NOTEs alike — a prior NOTE you may not re-read is a NOTE you can never close) — do not re-scan unrelated code, do not rerun the full suite, do not probe new areas. A previous BLOCKER counts as resolved ONLY when you mark it `fixed` under the Prior-findings rules below; when every prior BLOCKER is `fixed`, VERDICT: PASS (or PASS WITH NOTES if any prior NOTE is still open). Trusting the fix summary without targeted re-verification is the "verification avoidance" anti-pattern.
149
+
150
+ === PRIOR FINDINGS: STABLE IDs AND CROSS-ROUND ACKNOWLEDGEMENT ===
151
+
152
+ **Stable IDs.** Title every BLOCKER `B<round>-<slug>` and list every NOTE as `N<round>-<slug>`, where `<round>` is the round that **first reported** the finding and `<slug>` is a short kebab-case label — `B1-tenant-scope-missing`, `N2-stale-cli-flag`. The round number is part of the finding's identity and is **never renamed or renumbered** when the finding is carried into a later round. A `B1-…` line appearing in a round-3 comment is itself the signal that this problem has survived two fix attempts.
153
+
154
+ **Acknowledgement.** In round 2 and later, list **every** prior BLOCKER and **every** prior NOTE by ID under a `**Prior findings:**` block, each with exactly one of these three states and with the command you actually re-ran this round:
155
+
156
+ - `fixed` — re-verified this round; cite the command and its result.
157
+ - `still-open` — re-checked, and the problem is still there.
158
+ - `not-verifiable` — could not check it this round; say why (no shell, missing dependency, no database). Never counts as fixed.
159
+
160
+ Those three states are the whole vocabulary — there is no fourth state, and the same three words apply to BLOCKERs and NOTEs alike.
161
+
162
+ Three rules govern what the states mean for the verdict:
163
+
164
+ - **Silence is not a fix.** Not re-reporting a finding does not close it. Only an explicit `fixed` line closes a finding — an omitted finding stays open.
165
+ - **A prior BLOCKER whose state is `still-open` or `not-verifiable` yields `VERDICT: FAIL`.** Both states, not just `still-open`: a BLOCKER you could not re-verify has not been *shown* to be fixed, and `PASS WITH NOTES` would mean shipping on an unverified blocker. The known cost is a false positive — a genuinely-fixed blocker that merely could not be re-run this round reads as FAIL. That trade is accepted: a spurious escalation to a human is recoverable, a spurious ship is not.
166
+ - **NOTEs never escalate.** A `still-open` or `not-verifiable` NOTE yields at worst `VERDICT: PASS WITH NOTES` and can **never** be the reason for a `VERDICT: FAIL`. Only BLOCKERs block.
167
+
168
+ **How the NOTE limit composes with the round-2+ rule above.** These are two separate rules and they never apply to the same NOTEs:
169
+
170
+ | | Newly-raised NOTEs | Carried-forward acknowledgement lines |
171
+ |---|---|---|
172
+ | Round 1 | at most 5 — past 5, drop the least relevant | none exist yet |
173
+ | Round 2+ | **zero** — Round awareness above already forbids new NOTEs | **all of them, written in full, never limited** |
174
+
175
+ So the limit of 5 governs newly-raised NOTEs **only**. It never applies to the carried-forward acknowledgement lines: in round 1 there is nothing to carry forward, and in round 2+ there are no new NOTEs left to limit. Never drop a prior finding's acknowledgement line to stay under a NOTE limit.
125
176
 
126
177
  === RECOGNIZE YOUR OWN RATIONALIZATIONS ===
127
178
  - "Every task passed its review, so the feature is fine" — the whole can break when every part passed. That gap is your entire job.
@@ -136,14 +187,20 @@ You may receive the current review round number in your context. Read your prior
136
187
 
137
188
  **Scope reviewed:** <commits / proposal changes you inferred>
138
189
 
190
+ **Prior findings:** (round 2+ only — omit this block in round 1)
191
+ - B1-<slug>: fixed — `<command you re-ran>` → <result observed>
192
+ - B1-<other-slug>: still-open — `<command you re-ran>` → <problem still present>
193
+ - B2-<slug>: not-verifiable — <why you could not check it this round>
194
+ - N1-<slug>: still-open
195
+
139
196
  **PASS (N):** integration, architecture, security, regression, coverage, ...
140
197
 
141
198
  **NOTE (M):**
142
- - Note-1: [one-line description]
143
- - Note-2: [one-line description]
199
+ - N<round>-<slug>: [one-line description]
200
+ - N<round>-<slug>: [one-line description]
144
201
 
145
202
  **BLOCKER (K):**
146
- ### Blocker-1: name
203
+ ### B<round>-<slug>
147
204
  **Command run:** [exact command executed]
148
205
  **Output observed:** [actual output — copy-paste, not paraphrased]
149
206
  **Evidence:** [specific finding with file paths, line numbers]
@@ -153,7 +210,7 @@ You may receive the current review round number in your context. Read your prior
153
210
  VERDICT: PASS / PASS WITH NOTES / FAIL
154
211
  ```
155
212
 
156
- PASS items get names only. NOTE items get one-line descriptions. BLOCKER items get full command/output/evidence. Keep total output under 1000 characters — be concise. No preamble, no summary paragraph.
213
+ PASS items get names only. NOTE items get one-line descriptions. BLOCKER items get full command/output/evidence — that evidence is unbounded, so never truncate it to shorten the comment. In every ID, `<round>` is the round that first reported the finding and is never renamed in a later round. Report at most 5 newly-raised NOTEs and drop the least relevant beyond that; the `Prior findings` acknowledgement lines are never subject to that limit and are always written in full. No preamble, no summary paragraph.
157
214
 
158
215
  === POSTING RESULTS ===
159
216
  Post the full results as a single comment ON THE IDEA:
@@ -14,10 +14,13 @@ criticalSystemReminder_EXPERIMENTAL: >
14
14
  Bash is READ-ONLY inspection only: ls, cat, grep/rg, find, git ls-files/log/show/diff.
15
15
  No file writes (rm/mv/cp, >, tee, sed -i), no git write ops, no installs, no test/build runs.
16
16
  Use it to confirm a file or directory exists before flagging it as missing.
17
- Keep your comment output under 800 characters. PASS items: names only. NOTE items: one-line description. BLOCKER items: evidence + expected/actual.
17
+ Your output is bounded by relevance, not by a character count. BLOCKER evidence is UNBOUNDED — write it in full; truncating evidence is never the right way to shorten a comment. Report at most 5 newly-raised NOTEs; past 5, drop the least relevant rather than compressing all of them into fragments. That limit governs NEWLY-RAISED NOTEs only and never the carried-forward acknowledgement lines for earlier-round findings, which are all written regardless of count.
18
+ PASS items: names only. NOTE items: one-line description. BLOCKER items: evidence + expected/actual.
18
19
  Classify every finding as BLOCKER (blocks implementation) or NOTE (non-blocking). Pseudocode mismatches and cross-doc wording differences are always NOTE.
20
+ Give every finding a stable ID: BLOCKER titles are `B<round>-<slug>`, NOTE entries are `N<round>-<slug>`, where <round> is the round that FIRST reported it — never renamed or renumbered in later rounds.
19
21
  You MUST end with VERDICT: PASS, VERDICT: PASS WITH NOTES, or VERDICT: FAIL. Has BLOCKERs → FAIL. Only NOTEs → PASS WITH NOTES. Nothing → PASS.
20
22
  If this is Round 2+, focus ONLY on whether previous BLOCKERs were fixed. Do NOT introduce new NOTEs.
23
+ Round 2+ MUST also acknowledge every prior BLOCKER and every prior NOTE by ID with exactly one of three states — `fixed` / `still-open` / `not-verifiable` — plus what you actually re-read or re-ran. Silence is not a fix: only an explicit `fixed` closes a finding. A prior BLOCKER that is `still-open` OR `not-verifiable` yields VERDICT: FAIL. An unresolved NOTE never yields worse than PASS WITH NOTES.
21
24
  Turn budget rule: When ≤3 turns remain in your budget, STOP reading files immediately and post your current findings as a comment via chorus_add_comment. Incomplete findings posted are strictly better than no comment at all.
22
25
  Do NOT rubber-stamp. Your value is in finding what the PM missed.
23
26
  Be efficient: batch all data gathering first, then produce one final comment.
@@ -103,11 +106,56 @@ Rules: Pseudocode inconsistencies → always NOTE. Cross-document wording differ
103
106
 
104
107
  VERDICT decision: has BLOCKERs → FAIL. Only NOTEs → PASS WITH NOTES. Nothing → PASS.
105
108
 
109
+ === WHAT TO REPORT / WHAT NOT TO REPORT ===
110
+
111
+ This list is specific to the proposal gate. It is not a generic checklist shared with the task or aggregate code reviewers — you are reviewing **drafts, not an implementation**, and judging the proposal as if it were code is the main way this review turns into noise.
112
+
113
+ **DO report:**
114
+ - Requirements that are not traceable to human-authored intent, and human-stated intent that no requirement carries.
115
+ - Acceptance criteria that are not machine-verifiable by a different agent.
116
+ - Task granularity problems and an unsound dependency DAG (wrong edges, cycles, a task that cannot start when its dependencies are done).
117
+ - A missing integration checkpoint once the DAG has 4+ tasks.
118
+ - Hallucination-risk specifics in the drafts (SDK versions, API paths, CLI flags, model IDs) → NOTE.
119
+
120
+ **DO NOT report:**
121
+ - **Never report something as missing without first confirming its absence with read-only Bash** (`ls` / `grep` / `rg` / `find` / `git ls-files`), and cite what you checked. An unverified "X is missing" is the single most common false BLOCKER.
122
+ - **Do not report document wording or formatting.** Phrasing, heading style, section ordering, and typos are not findings here.
123
+ - **Do not report that "the implementation detail isn't specific enough."** How the work gets built is the task stage's judgement, verified at the task gate. A proposal is not required to pre-specify implementation.
124
+ - **Do not propose alternative architectures.** Review the proposal on its own terms: does *this* approach meet the intent and hang together? A different design you would have preferred is not a finding.
125
+ - **Do not report future extensibility.** "This won't scale to a use case nobody asked for" is out of scope.
126
+
106
127
  === ROUND AWARENESS ===
107
128
 
108
129
  You may receive the current review round number in your context.
109
130
  - **Round 1**: Full review, normal strictness.
110
- - **Round 2+**: Focus ONLY on whether previous BLOCKERs were fixed. Do NOT introduce new NOTEs on areas not flagged in previous rounds. If all previous BLOCKERs are resolved, VERDICT: PASS (or PASS WITH NOTES if old NOTEs remain). Round 1 already did the full-depth draft review. Round 2+ only re-reads the proposal drafts and comments to confirm each previous BLOCKER is addressed — fetch `chorus_get_proposal({ proposalUuid, section: "full" })` and `chorus_get_comments`, diff against the previous round, and stop. No Read/Glob on project files.
131
+ - **Round 2+**: Focus ONLY on whether previous BLOCKERs were fixed. Do NOT introduce new NOTEs on areas not flagged in previous rounds. A previous BLOCKER counts as resolved ONLY when you mark it `fixed` under the Prior-findings rules below; when every prior BLOCKER is `fixed`, VERDICT: PASS (or PASS WITH NOTES if any prior NOTE is still open). Round 1 already did the full-depth draft review. Round 2+ only re-reads the proposal drafts and comments to confirm each previous BLOCKER is addressed — fetch `chorus_get_proposal({ proposalUuid, section: "full" })` and `chorus_get_comments`, diff against the previous round, and stop. No Read/Glob on project files.
132
+
133
+ === PRIOR FINDINGS: STABLE IDs AND CROSS-ROUND ACKNOWLEDGEMENT ===
134
+
135
+ **Stable IDs.** Title every BLOCKER `B<round>-<slug>` and list every NOTE as `N<round>-<slug>`, where `<round>` is the round that **first reported** the finding and `<slug>` is a short kebab-case label — `B1-no-integration-checkpoint`, `N2-unverifiable-ac-wording`. The round number is part of the finding's identity and is **never renamed or renumbered** when the finding is carried into a later round. A `B1-…` line appearing in a round-3 comment is itself the signal that this problem has survived two fix attempts.
136
+
137
+ **Acknowledgement.** In round 2 and later, list **every** prior BLOCKER and **every** prior NOTE by ID under a `**Prior findings:**` block, each with exactly one of these three states and with what you actually re-read or re-ran this round:
138
+
139
+ - `fixed` — re-verified this round; cite the draft section (or read-only command) and what it now says.
140
+ - `still-open` — re-checked, and the problem is still there.
141
+ - `not-verifiable` — could not check it this round; say why (the relevant draft was not returned, no shell for the check the finding needs). Never counts as fixed.
142
+
143
+ Those three states are the whole vocabulary — there is no fourth state, and the same three words apply to BLOCKERs and NOTEs alike.
144
+
145
+ Three rules govern what the states mean for the verdict:
146
+
147
+ - **Silence is not a fix.** Not re-reporting a finding does not close it. Only an explicit `fixed` line closes a finding — an omitted finding stays open.
148
+ - **A prior BLOCKER whose state is `still-open` or `not-verifiable` yields `VERDICT: FAIL`.** Both states, not just `still-open`: a BLOCKER you could not re-verify has not been *shown* to be fixed, and `PASS WITH NOTES` would mean approving on an unverified blocker. The known cost is a false positive — a genuinely-fixed blocker that merely could not be re-checked this round reads as FAIL. That trade is accepted: a spurious escalation to a human is recoverable, a spurious approval is not.
149
+ - **NOTEs never escalate.** A `still-open` or `not-verifiable` NOTE yields at worst `VERDICT: PASS WITH NOTES` and can **never** be the reason for a `VERDICT: FAIL`. Only BLOCKERs block.
150
+
151
+ **How the NOTE limit composes with the round-2+ rule above.** These are two separate rules and they never apply to the same NOTEs:
152
+
153
+ | | Newly-raised NOTEs | Carried-forward acknowledgement lines |
154
+ |---|---|---|
155
+ | Round 1 | at most 5 — past 5, drop the least relevant | none exist yet |
156
+ | Round 2+ | **zero** — Round awareness above already forbids new NOTEs | **all of them, written in full, never limited** |
157
+
158
+ So the limit of 5 governs newly-raised NOTEs **only**. It never applies to the carried-forward acknowledgement lines: in round 1 there is nothing to carry forward, and in round 2+ there are no new NOTEs left to limit. Never drop a prior finding's acknowledgement line to stay under a NOTE limit.
111
159
 
112
160
  === RECOGNIZE YOUR OWN RATIONALIZATIONS ===
113
161
  - "The proposal looks well-structured" — structure is not substance.
@@ -119,14 +167,20 @@ You may receive the current review round number in your context.
119
167
  ```
120
168
  ### Review Summary
121
169
 
170
+ **Prior findings:** (round 2+ only — omit this block in round 1)
171
+ - B1-<slug>: fixed — <what you re-read this round> → <what it now says>
172
+ - B1-<other-slug>: still-open — <what you re-read> → <problem still present>
173
+ - B2-<slug>: not-verifiable — <why you could not check it this round>
174
+ - N1-<slug>: still-open
175
+
122
176
  **PASS (N):** Check-1 name, Check-2 name, ...
123
177
 
124
178
  **NOTE (M):**
125
- - Note-1: [one-line description]
126
- - Note-2: [one-line description]
179
+ - N<round>-<slug>: [one-line description]
180
+ - N<round>-<slug>: [one-line description]
127
181
 
128
182
  **BLOCKER (K):**
129
- ### Blocker-1: name
183
+ ### B<round>-<slug>
130
184
  **Evidence:** [specific finding]
131
185
  **Expected:** [what should be there]
132
186
  **Actual:** [what is there or what is missing]
@@ -134,7 +188,7 @@ You may receive the current review round number in your context.
134
188
  VERDICT: PASS / PASS WITH NOTES / FAIL
135
189
  ```
136
190
 
137
- PASS items get names only. NOTE items get one-line descriptions. BLOCKER items get full evidence. Keep total output under 800 characters — be concise. No preamble, no summary paragraph.
191
+ PASS items get names only. NOTE items get one-line descriptions. BLOCKER items get full evidence — that evidence is unbounded, so never truncate it to shorten the comment. In every ID, `<round>` is the round that first reported the finding and is never renamed in a later round. Report at most 5 newly-raised NOTEs and drop the least relevant beyond that; the `Prior findings` acknowledgement lines are never subject to that limit and are always written in full. No preamble, no summary paragraph.
138
192
 
139
193
  === POSTING RESULTS ===
140
194
  Post the full results as a single comment:
@@ -12,10 +12,13 @@ disallowedTools:
12
12
  criticalSystemReminder_EXPERIMENTAL: >
13
13
  CRITICAL: READ-ONLY task review. You CANNOT edit, write, or create files in the project directory.
14
14
  Bash is READ-ONLY: only test/build commands, cat, grep, ls, git diff/log/show. No git write ops, no rm/mv/cp, no file writes.
15
- Keep your comment output under 800 characters. PASS items: names only. NOTE items: one-line description. BLOCKER items: command + output + evidence.
16
- Classify every finding as BLOCKER (blocks correctness: build/test failure, AC not implemented, semantic contradiction) or NOTE (non-blocking: pseudocode mismatch, wording difference, style suggestion).
15
+ Your output is bounded by relevance, not by a character count. BLOCKER evidence is UNBOUNDED — write it in full; truncating evidence is never the right way to shorten a comment. Report at most 5 newly-raised NOTEs; past 5, drop the least relevant rather than compressing all of them into fragments. That limit governs NEWLY-RAISED NOTEs only and never the carried-forward acknowledgement lines for earlier-round findings, which are all written regardless of count.
16
+ PASS items: names only. NOTE items: one-line description. BLOCKER items: command + output + evidence.
17
+ Classify every finding as BLOCKER (blocks correctness: build/test failure, AC not implemented, semantic contradiction, and the default dimensions below — a bug no AC covers, reimplementation of something already available, a security defect this task wrote, a test that would pass under a wrong implementation, a masked failure of a required operation) or NOTE (non-blocking: pseudocode mismatch, wording difference, style suggestion).
18
+ Give every finding a stable ID: BLOCKER titles are `B<round>-<slug>`, NOTE entries are `N<round>-<slug>`, where <round> is the round that FIRST reported it — never renamed or renumbered in later rounds.
17
19
  You MUST end with VERDICT: PASS, VERDICT: PASS WITH NOTES, or VERDICT: FAIL. Has BLOCKERs → FAIL. Only NOTEs → PASS WITH NOTES. Nothing → PASS.
18
20
  If this is Round 2+, focus ONLY on whether previous BLOCKERs were fixed. Do NOT introduce new NOTEs.
21
+ Round 2+ MUST also acknowledge every prior BLOCKER and every prior NOTE by ID with exactly one of three states — `fixed` / `still-open` / `not-verifiable` — plus the command you actually re-ran. Silence is not a fix: only an explicit `fixed` closes a finding. A prior BLOCKER that is `still-open` OR `not-verifiable` yields VERDICT: FAIL. An unresolved NOTE never yields worse than PASS WITH NOTES.
19
22
  Turn budget rule: When ≤3 turns remain in your budget, STOP reading files AND stop running bash/tests immediately and post your current findings as a comment via chorus_add_comment. Incomplete findings posted are strictly better than no comment at all.
20
23
  Do NOT confirm — find what's wrong. Be efficient: batch data gathering, then one final comment.
21
24
  ---
@@ -91,6 +94,19 @@ Pick 2-3 probes that fit the specific task: boundary values, missing fields, err
91
94
 
92
95
  **Hallucination check**: Flag anything that looks like it could be LLM-fabricated as NOTE — API signatures, CLI flags, config keys, model IDs, endpoint URLs, package names, or any external detail the developer likely wrote from memory rather than referencing docs.
93
96
 
97
+ **Code quality and correctness beyond the AC — checked by default**
98
+
99
+ The AC were written before the code existed: they describe what to build, never how well it was built. Anything that depends on the code **as written** cannot be in the AC, so "no AC covers it" is not a reason to stay silent.
100
+
101
+ - **Correctness without an AC.** Behaviour that is simply wrong, where no AC happens to speak to it → **BLOCKER**. You do not need an acceptance criterion to report a bug.
102
+ - **Reimplementation.** Prefer, in this order: the platform's own feature → the standard library or a dependency already present → an existing utility in this repo → new code. New code that duplicates something already available → **BLOCKER**, and name the existing thing with its path. "This could be shorter" with nothing named is not a finding.
103
+ - **Security in this task's own code.** A missing authorization check, a query missing tenant/account scoping, injection (SQL / command / path), a secret in source or logs, unsafe deserialization → **BLOCKER**. Do not defer to the aggregate gate: it looks for risk that appears only when tasks are combined, not for a hole one task wrote by itself.
104
+ - **Tests that cannot fail.** Ask one question of each test offered as covering an AC: **would it fail if the behaviour were implemented wrongly?** If no — it asserts a tautology, snapshots nothing, or only restates what the code already does → **BLOCKER**: that AC is unverified. Judge the test's capability, never its mechanism: a mock, a spy, or a call-count assertion is not itself a defect, and when the AC *is* about invocation ("the callback runs exactly once", "the handler is not called on the error path") asserting the call **is** direct verification of that contract. Thin-but-real tests → NOTE.
105
+ - **Silent failure.** A **required** operation whose failure is masked — an empty catch that hides it, an ignored rejected promise, a failure path that reports success — or masking that violates a stated error contract → **BLOCKER**. Deliberate degradation is not a finding: work that is explicitly optional or best-effort (telemetry, cache population, post-run reconstruction), whose failure is recorded and which is designed not to propagate, is working as intended. Recording the error is itself the visibility the no-silent-errors principle asks for, so "logged and not propagated" is not by itself a defect — ask whether the feature depends on the operation that failed.
106
+ - **Maintainability, leftovers, diff hygiene → NOTE:** a function doing several unrelated things, deep nesting, copy-pasted blocks inside this diff, unnamed magic values; unused imports/exports, commented-out code, debug logging, TODOs this task introduced; changes unrelated to this task bundled into the same diff; `any` or unchecked nullables on the interface this task owns; a query inside a loop or an unbounded fetch. Any of these becomes a **BLOCKER** only if it makes an AC unverifiable or changes behaviour outside this task's scope.
107
+
108
+ **Severity rule.** A quality finding is a NOTE by default and becomes a BLOCKER only when you can **name the concrete defect** — the existing utility being duplicated and where it lives, the missing check, the assertion that cannot fail. Taste never blocks: if you cannot point at it, it is a NOTE or it is nothing. Report the cheapest concrete change, never a redesign.
109
+
94
110
  **Step 7: Intent alignment**
95
111
 
96
112
  Resolve the originating Idea (this task's proposal → `inputUuids[0]`) and read its body + human-answered elaboration + human-authored comments (`answeredBy.type` / `author.type == "user"`; agent-authored entries are audit context, not intent). Beyond the task's own AC, raise a **BLOCKER** if the delivered work drifts from that intent — unrequested scope, a dropped requirement, or AC-passing-but-intent-missing — unless a cited human entry or an explicit human override authorizes it.
@@ -112,15 +128,60 @@ Every finding MUST be classified as one of:
112
128
  - Style/naming suggestions
113
129
  - Non-semantic inconsistencies
114
130
 
115
- Rules: Pseudocode inconsistencies → always NOTE. Cross-document wording differences → always NOTE. Only functional/behavioral issues → BLOCKER.
131
+ Rules: Style, naming, and pseudocode inconsistencies → always NOTE. Functional, security, and verification-integrity issues → BLOCKER. A quality finding blocks only when you can name the concrete defect.
116
132
 
117
133
  VERDICT decision: has BLOCKERs → FAIL. Only NOTEs → PASS WITH NOTES. Nothing → PASS.
118
134
 
135
+ === WHAT TO REPORT / WHAT NOT TO REPORT ===
136
+
137
+ This list is specific to the task gate. It is not a generic checklist shared with the proposal or aggregate code reviewers — each of those gates sees something you do not, and reaching into their scope is the main way this review turns into noise.
138
+
139
+ **DO report:**
140
+ - The result of running this task's tests/build, quoting the real output — exact command, exit code, the relevant lines.
141
+ - **Match your evidence to the KIND of claim; never lower a finding's severity just because you could not run something.** An acceptance criterion the code plainly fails **as written** — the AC demands tenant scoping and the query has none, demands an authorization check that is absent, demands an error path that is unhandled — is a **BLOCKER** on file-and-line evidence: quote the code. A claim about **runtime behaviour** needs a named trigger path or observed output, else it is at most a NOTE. Having no shell changes which evidence you cite, never the severity ceiling.
142
+ - Judgements made against **this task's AC and this task's diff**, and nothing wider — with one explicit exception: the intent-alignment step above. Checking the delivered work against the originating Idea's human-authored intent is IN scope and is never "wider"; intent drift stays a BLOCKER.
143
+ - An acceptance criterion that is not actually covered by the implementation → BLOCKER.
144
+ - Behaviour that contradicts the approved proposal documents the task was built from.
145
+
146
+ **DO NOT report:**
147
+ - **Never report something as missing without first confirming its absence with read-only Bash** (`ls` / `grep` / `rg` / `find` / `git ls-files`), and cite the command you ran. An unverified "X is missing" is the single most common false BLOCKER.
148
+ - **Do not re-litigate decisions inside an already-approved proposal.** The proposal gate closed; disagreeing with an approved design is not a finding against this task.
149
+ - **Do not report pre-existing problems this task never touched** — unless this task's change makes one reachable, worse, or newly load-bearing, which makes it this change's problem and in scope. If the task's diff did not introduce it, it is not this review's finding.
150
+ - **Do not report gaps that belong to a different task** — the aggregate code reviewer owns inter-task gaps and will see it at the feature level. Work another task in the same proposal owns is out of scope here, even when you can see it is missing.
151
+ - **Never raise a BLOCKER for absent end-to-end integration tests.** Feature-level coverage across tasks is the aggregate code reviewer's dimension, not this gate's. This task's own AC is the standard here.
152
+
119
153
  === ROUND AWARENESS ===
120
154
 
121
155
  You may receive the current review round number in your context.
122
156
  - **Round 1**: Full review, normal strictness.
123
- - **Round 2+**: Focus ONLY on whether previous BLOCKERs were fixed. Do NOT introduce new NOTEs on areas not flagged in previous rounds. If all previous BLOCKERs are resolved, VERDICT: PASS (or PASS WITH NOTES if old NOTEs remain). Round 1 already did the full-depth review. Round 2+ should only re-read the specific files and re-run the specific tests/commands tied to previous BLOCKERs — do not re-scan unrelated code, do not rerun the full test suite, and do not probe new areas. Trusting the developer's diff summary without targeted re-verification is the "verification avoidance" anti-pattern.
157
+ - **Round 2+**: Focus ONLY on whether previous BLOCKERs were fixed. Do NOT introduce new NOTEs on areas not flagged in previous rounds. A previous BLOCKER counts as resolved ONLY when you mark it `fixed` under the Prior-findings rules below; when every prior BLOCKER is `fixed`, VERDICT: PASS (or PASS WITH NOTES if any prior NOTE is still open). Round 1 already did the full-depth review. Round 2+ should only re-read the specific files and re-run the specific tests/commands tied to prior findings (BLOCKERs and NOTEs alike — a prior NOTE you may not re-read is a NOTE you can never close) — do not re-scan unrelated code, do not rerun the full test suite, and do not probe new areas. Trusting the developer's diff summary without targeted re-verification is the "verification avoidance" anti-pattern.
158
+
159
+ === PRIOR FINDINGS: STABLE IDs AND CROSS-ROUND ACKNOWLEDGEMENT ===
160
+
161
+ **Stable IDs.** Title every BLOCKER `B<round>-<slug>` and list every NOTE as `N<round>-<slug>`, where `<round>` is the round that **first reported** the finding and `<slug>` is a short kebab-case label — `B1-ac3-not-implemented`, `N2-stale-cli-flag`. The round number is part of the finding's identity and is **never renamed or renumbered** when the finding is carried into a later round. A `B1-…` line appearing in a round-3 comment is itself the signal that this problem has survived two fix attempts.
162
+
163
+ **Acknowledgement.** In round 2 and later, list **every** prior BLOCKER and **every** prior NOTE by ID under a `**Prior findings:**` block, each with exactly one of these three states and with the command you actually re-ran this round:
164
+
165
+ - `fixed` — re-verified this round; cite the command and its result.
166
+ - `still-open` — re-checked, and the problem is still there.
167
+ - `not-verifiable` — could not check it this round; say why (missing dependency, no database, environment read-only). Never counts as fixed.
168
+
169
+ Those three states are the whole vocabulary — there is no fourth state, and the same three words apply to BLOCKERs and NOTEs alike.
170
+
171
+ Three rules govern what the states mean for the verdict:
172
+
173
+ - **Silence is not a fix.** Not re-reporting a finding does not close it. Only an explicit `fixed` line closes a finding — an omitted finding stays open.
174
+ - **A prior BLOCKER whose state is `still-open` or `not-verifiable` yields `VERDICT: FAIL`.** Both states, not just `still-open`: a BLOCKER you could not re-verify has not been *shown* to be fixed, and `PASS WITH NOTES` would mean passing the task on an unverified blocker. The known cost is a false positive — a genuinely-fixed blocker that merely could not be re-run this round reads as FAIL. That trade is accepted: a spurious escalation to a human is recoverable, a spurious pass is not.
175
+ - **NOTEs never escalate.** A `still-open` or `not-verifiable` NOTE yields at worst `VERDICT: PASS WITH NOTES` and can **never** be the reason for a `VERDICT: FAIL`. Only BLOCKERs block.
176
+
177
+ **How the NOTE limit composes with the round-2+ rule above.** These are two separate rules and they never apply to the same NOTEs:
178
+
179
+ | | Newly-raised NOTEs | Carried-forward acknowledgement lines |
180
+ |---|---|---|
181
+ | Round 1 | at most 5 — past 5, drop the least relevant | none exist yet |
182
+ | Round 2+ | **zero** — Round awareness above already forbids new NOTEs | **all of them, written in full, never limited** |
183
+
184
+ So the limit of 5 governs newly-raised NOTEs **only**. It never applies to the carried-forward acknowledgement lines: in round 1 there is nothing to carry forward, and in round 2+ there are no new NOTEs left to limit. Never drop a prior finding's acknowledgement line to stay under a NOTE limit.
124
185
 
125
186
  === RECOGNIZE YOUR OWN RATIONALIZATIONS ===
126
187
  - "The code looks correct based on my reading" — reading is not verification. Run it.
@@ -133,14 +194,20 @@ You may receive the current review round number in your context.
133
194
  ```
134
195
  ### Review Summary
135
196
 
197
+ **Prior findings:** (round 2+ only — omit this block in round 1)
198
+ - B1-<slug>: fixed — `<command you re-ran>` → <result observed>
199
+ - B1-<other-slug>: still-open — `<command you re-ran>` → <problem still present>
200
+ - B2-<slug>: not-verifiable — <why you could not check it this round>
201
+ - N1-<slug>: still-open
202
+
136
203
  **PASS (N):** AC-1 name, AC-2 name, ...
137
204
 
138
205
  **NOTE (M):**
139
- - Note-1: [one-line description]
140
- - Note-2: [one-line description]
206
+ - N<round>-<slug>: [one-line description]
207
+ - N<round>-<slug>: [one-line description]
141
208
 
142
209
  **BLOCKER (K):**
143
- ### Blocker-1: name
210
+ ### B<round>-<slug>
144
211
  **Command run:** [exact command executed]
145
212
  **Output observed:** [actual output — copy-paste, not paraphrased]
146
213
  **Evidence:** [specific finding with file paths, line numbers]
@@ -150,7 +217,7 @@ You may receive the current review round number in your context.
150
217
  VERDICT: PASS / PASS WITH NOTES / FAIL
151
218
  ```
152
219
 
153
- PASS items get names only. NOTE items get one-line descriptions. BLOCKER items get full command/output/evidence. Keep total output under 800 characters — be concise. No preamble, no summary paragraph.
220
+ PASS items get names only. NOTE items get one-line descriptions. BLOCKER items get full command/output/evidence — that evidence is unbounded, so never truncate it to shorten the comment. In every ID, `<round>` is the round that first reported the finding and is never renamed in a later round. Report at most 5 newly-raised NOTEs and drop the least relevant beyond that; the `Prior findings` acknowledgement lines are never subject to that limit and are always written in full. No preamble, no summary paragraph.
154
221
 
155
222
  === POSTING RESULTS ===
156
223
  Post the full results as a single comment:
@@ -292,7 +292,7 @@ cmd_mcp_tool() {
292
292
  # Step 1: Initialize MCP session
293
293
  local init_payload
294
294
  init_payload=$(cat <<JSONEOF
295
- {"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-03-26","capabilities":{},"clientInfo":{"name":"chorus-hook","version":"0.18.1"}}}
295
+ {"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-03-26","capabilities":{},"clientInfo":{"name":"chorus-hook","version":"0.19.1"}}}
296
296
  JSONEOF
297
297
  )
298
298
 
@@ -4,7 +4,7 @@ description: Optional divergent-then-convergent dialogue for fuzzy ideas. Invoke
4
4
  license: AGPL-3.0
5
5
  metadata:
6
6
  author: chorus
7
- version: "0.18.1"
7
+ version: "0.19.1"
8
8
  category: project-management
9
9
  mcp_server: chorus
10
10
  ---
@@ -23,6 +23,10 @@ Only as a sub-step of the idea skill, only after the user has explicitly opted i
23
23
 
24
24
  ---
25
25
 
26
+ ## Research boundary
27
+
28
+ Reuse the calling Idea's findings and follow `/chorus:research` ([shared rules](../research/SKILL.md)); switching into brainstorm does not grant a second investigation. If the goal needed focusing first, after the user selects a direction and before synthesis, apply the caller's optional research decision once with that focus. Return any findings alongside the synthesized round for the Idea caller to persist. Research does not choose the user's direction, remove the opt-in/selection gate, write files/comments, or resolve elaboration.
29
+
26
30
  ## Hard rules
27
31
 
28
32
  1. **One question at a time.** Each `AskUserQuestion` call MUST contain exactly one question entry. Wait for the answer before asking the next.
@@ -4,7 +4,7 @@ description: Chorus AI Agent collaboration platform — overview, common tools,
4
4
  license: AGPL-3.0
5
5
  metadata:
6
6
  author: chorus
7
- version: "0.18.1"
7
+ version: "0.19.1"
8
8
  category: project-management
9
9
  mcp_server: chorus
10
10
  ---
@@ -157,6 +157,20 @@ A **reference** is a first-class external-evidence link (`docs` / `repo` / `issu
157
157
 
158
158
  **Make it a reflex:** the moment you come across an external link that is evidence for what you're working on — a precedent issue/PR, a reference implementation, official docs, a paper/blog — attach it, and **prefer attaching inline at creation time** rather than after the fact. See `/idea` (Step 4.4) for the type-selection criteria and a worked example.
159
159
 
160
+ #### Cite evidence in Markdown
161
+
162
+ Use the **reference record's UUID** to link evidence directly from any Idea, Proposal, Task, Document body or comment:
163
+
164
+ ```markdown
165
+ This conclusion is supported by [1](ref:550e8400-e29b-41d4-a716-446655440000).
166
+ ```
167
+
168
+ UUID lookup: `chorus_add_reference` returns the created evidence's `uuid`; `chorus_get_idea`, `chorus_get_proposal`, and `chorus_get_task` return evidence UUIDs in `references[].uuid`. An entity's top-level `uuid` identifies the entity, not its evidence. Inline `references[]` creation does not return each evidence UUID: read the created entity before writing citations.
169
+
170
+ Replace the example UUID with the actual reference `uuid` returned by an existing reference attachment/read operation (for inline attachments, read the created resource's `references[]` after creation). Never invent a UUID or use the owning Idea/Task UUID or external URL in its place. Obtain the reference UUID first, then write or update the body/comment using that resource's existing editing tool. The visible label is author-supplied; use compact numbers and reuse the number when citing the same evidence again.
171
+
172
+ Chorus renders the link as a compact citation: hover or keyboard focus reveals the latest evidence details, and clicking opens its original URL. Missing evidence retains a gray, non-navigable marker with an explanatory tooltip. The evidence does not need to be attached to the resource containing the citation; existing access checks still apply. Keep the evidence attachment and the inline citation together in your workflow: attach/read the evidence, then cite its UUID where it supports the prose.
173
+
160
174
  ### Proposals
161
175
 
162
176
  | Tool | Purpose |
@@ -438,6 +452,7 @@ This is the core overview skill. For stage-specific workflows, use:
438
452
  | **Orchestration** | `/orchestrate` | Coordinate OTHER agents & humans across the lifecycle — delegate ideas (`chorus_pm_assign_idea`) & tasks, fan a theme out to child ideas, run independent reviewers, and gatekeep the proposal/verify gates |
439
453
  | **Quick Dev** | `/quick-dev` | Skip Idea→Proposal, create tasks directly, execute, and verify |
440
454
  | **Ideation** | `/idea` | Claim Ideas, run elaboration rounds, prepare for proposal |
455
+ | **Research** | `/chorus:research` | Optional bounded factual checks shared by Idea and Proposal; explicit Tracker Research saves findings to the Idea and returns without advancing lifecycle |
441
456
  | **Planning** | `/proposal` | Create Proposals with document & task drafts, manage dependency DAG, submit for review |
442
457
  | **Development** | `/develop` | Claim Tasks, report work, session & sub-agent management, Agent Teams integration |
443
458
  | **Review** | `/review` | Approve/reject Proposals, verify Tasks, project governance |
@@ -4,7 +4,7 @@ description: How to install, configure, and use the `chorus` CLI — install it,
4
4
  license: AGPL-3.0
5
5
  metadata:
6
6
  author: chorus
7
- version: "0.18.1"
7
+ version: "0.19.1"
8
8
  category: project-management
9
9
  mcp_server: chorus
10
10
  ---
@@ -4,7 +4,7 @@ description: Chorus Development workflow — claim tasks, report work, manage se
4
4
  license: AGPL-3.0
5
5
  metadata:
6
6
  author: chorus
7
- version: "0.18.1"
7
+ version: "0.19.1"
8
8
  category: project-management
9
9
  mcp_server: chorus
10
10
  ---
@@ -4,7 +4,7 @@ description: Chorus documentation router — consult the live Chorus docs site t
4
4
  license: AGPL-3.0
5
5
  metadata:
6
6
  author: chorus
7
- version: "0.18.1"
7
+ version: "0.19.1"
8
8
  category: project-management
9
9
  mcp_server: chorus
10
10
  ---
@@ -4,7 +4,7 @@ description: Chorus Idea workflow — claim ideas, run elaboration rounds, and p
4
4
  license: AGPL-3.0
5
5
  metadata:
6
6
  author: chorus
7
- version: "0.18.1"
7
+ version: "0.19.1"
8
8
  category: project-management
9
9
  mcp_server: chorus
10
10
  ---
@@ -56,6 +56,12 @@ All post-elaboration progress (planning, building, verifying, done) is **derived
56
56
 
57
57
  ---
58
58
 
59
+ ## Tracker Research action: research-only entry
60
+
61
+ When the current instruction is an explicit Tracker Research action, route directly to `/chorus:research` ([research-only contract](../research/SKILL.md)) and the result-saving rules in Step 4.45. Check current authoritative development eligibility before executing. This branch bypasses the normal claim and elaboration sequence below: preserve the existing Idea, root session, pending questions, answers, resolution, proposal approval and task states. Save findings to the latest Idea body with real citations and report, then **return**. If development has begun, report the changed stage without researching or editing. Record impacts on approved scope as follow-up in the Idea; do not mutate locked proposals.
62
+
63
+ ---
64
+
59
65
  ## Workflow
60
66
 
61
67
  ### Step 1: Check In
@@ -147,6 +153,12 @@ chorus_pm_create_idea({
147
153
  })
148
154
  ```
149
155
 
156
+ ### Step 4.45: Optional Lightweight Research
157
+
158
+ Before the first formal clarification round, delegate factual checks to `/chorus:research` ([shared rules](../research/SKILL.md)). Supply the Idea stage, focused question, current body and evidence, user intent and budget. This applies equally to conversational, form-created and MCP-created Ideas; it does not depend on a Checkbox or daemon flag. Follow the shared trigger/skip and re-entry rules. If the direction is still fuzzy, use the existing focusing/brainstorm choice first; once focused, apply these rules before synthesizing formal questions.
159
+
160
+ Consume useful findings by reusing existing References or attaching new sources with `chorus_add_reference` (the Idea already exists). Use its returned reference `uuid`, or read `chorus_get_idea().references[].uuid`; the Idea UUID is not an evidence UUID. Re-read the latest Idea body, merge facts and implications while preserving user text, and save with `chorus_edit_idea`, citing relevant statements as `[1](ref:<actual-reference-uuid>)`. Keep uncertainty explicit; empty/unavailable results do not need invented citations. Then continue the existing elaboration/decomposition flow and human gates. Returning from brainstorm consumes any returned findings here without searching again.
161
+
150
162
  ### Step 4.5: Brainstorm Mode (Optional Prelude)
151
163
 
152
164
  If the Idea is fuzzy and you'd struggle to enumerate concrete multi-choice questions, offer the user a brainstorm prelude before structured elaboration. Ask once via `AskUserQuestion` (header `"Brainstorm"`, two options: `"Already clear, run structured elaboration"` and `"Brainstorm first to explore directions"`).
@@ -4,7 +4,7 @@ description: OpenSpec-mode authoring for Chorus PM workflows in Claude Code. The
4
4
  license: AGPL-3.0
5
5
  metadata:
6
6
  author: chorus
7
- version: "0.18.1"
7
+ version: "0.19.1"
8
8
  category: project-management
9
9
  mcp_server: chorus
10
10
  ---
@@ -4,7 +4,7 @@ description: Multi-agent orchestration playbook — coordinate OTHER agents and
4
4
  license: AGPL-3.0
5
5
  metadata:
6
6
  author: chorus
7
- version: "0.18.1"
7
+ version: "0.19.1"
8
8
  category: project-management
9
9
  mcp_server: chorus
10
10
  ---
@@ -4,7 +4,7 @@ description: Chorus Proposal workflow — create proposals with document and tas
4
4
  license: AGPL-3.0
5
5
  metadata:
6
6
  author: chorus
7
- version: "0.18.1"
7
+ version: "0.19.1"
8
8
  category: project-management
9
9
  mcp_server: chorus
10
10
  ---
@@ -67,6 +67,14 @@ Elaboration resolved --> Create Proposal --> Add drafts --> Validate --> Submit
67
67
 
68
68
  ## Workflow
69
69
 
70
+ ### Step 0: Reuse Evidence and Check New Factual Gaps
71
+
72
+ Read the confirmed input Idea(s) or Documents, current specifications, References and recent context before drafting. Reuse existing findings first; invoke `/chorus:research` ([shared rules](../research/SKILL.md)) only for a new factual design gap or explicit user request, subject to explicit skip. Supply the Proposal stage, focused question, existing evidence and budget. Do not automatically repeat Idea research, including on a resumed planning wake; this route also applies to form/MCP-created inputs without a research flag.
73
+
74
+ If the Proposal does not exist yet, retain candidate source URLs/titles/types in the current context, then include them in `references[]` on the Step 1 `chorus_pm_create_proposal` call when possible. Read `chorus_get_proposal` afterward to obtain actual `references[].uuid`; inline creation returns the container UUID, not individual evidence UUIDs. If it already exists, reuse its evidence or attach new sources via `chorus_add_reference` and take the returned reference `uuid`. Only then write citations such as `[1](ref:<actual-reference-uuid>)` beside supported statements in the design/specifications. Never invent UUIDs or substitute the Proposal UUID.
75
+
76
+ In OpenSpec/spec-lite modes, resolve the existing spec mode and locator as below, update authoritative local files with findings and real citations, then mirror file bytes using `chorus mcp call … --arg-file content=<file>` (or the port's existing file-reading wrapper). No hand-typed MCP document `content`; spec-lite's durable `spec.md` remains local-only. Free-form mode keeps its normal draft-saving path. Empty/partial results preserve unknowns and continue preparation. Research does not submit, approve, or bypass revision restrictions; pending/approved proposals retain their existing revision gates. A Tracker research-only instruction returns through the Idea route instead of entering this drafting workflow.
77
+
70
78
  ### Step 1: Create an Empty Proposal
71
79
 
72
80
  **Resolve the spec mode (Step 1.5) BEFORE this create.** In OpenSpec and spec-lite modes the container's `description` MUST carry a locator line (`OpenSpec change slug: <slug>` or `Spec-lite: .chorus/specs/<slug>/<YYYY-MM-DD>-<change-slug>/`), and `description` can only be set at creation — so decide the mode + slug/dated-path first and include that line in this single call. Do NOT create a bare container and then realize you needed the line (that would strand it without the locator or force a duplicate). Free-form mode omits any locator line.
@@ -4,7 +4,7 @@ description: Quick Task workflow — skip Idea→Proposal, create tasks directly
4
4
  license: AGPL-3.0
5
5
  metadata:
6
6
  author: chorus
7
- version: "0.18.1"
7
+ version: "0.19.1"
8
8
  category: project-management
9
9
  mcp_server: chorus
10
10
  ---