@proflandrigan/shards 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (397) hide show
  1. package/README.md +475 -0
  2. package/package.json +37 -0
  3. package/src/agents/academic.md +276 -0
  4. package/src/agents/ai-engineer.md +377 -0
  5. package/src/agents/analytics-engineer.md +364 -0
  6. package/src/agents/applied-ml-scientist.md +410 -0
  7. package/src/agents/backend-engineer.md +255 -0
  8. package/src/agents/bi-engineer.md +333 -0
  9. package/src/agents/data-analyst.md +343 -0
  10. package/src/agents/data-engineer.md +260 -0
  11. package/src/agents/data-modeller.md +386 -0
  12. package/src/agents/data-scientist.md +366 -0
  13. package/src/agents/deep-learning-engineer.md +389 -0
  14. package/src/agents/ml-engineer.md +424 -0
  15. package/src/agents/mlops-engineer.md +339 -0
  16. package/src/agents/researcher.md +187 -0
  17. package/src/agents/specific_instructions/academic/critical_review.md +263 -0
  18. package/src/agents/specific_instructions/academic/report.md +113 -0
  19. package/src/agents/specific_instructions/ai_engineer/advise.md +162 -0
  20. package/src/agents/specific_instructions/ai_engineer/bi_engineer_handoff.md +86 -0
  21. package/src/agents/specific_instructions/ai_engineer/experiment.md +471 -0
  22. package/src/agents/specific_instructions/ai_engineer/experiment_ui_mode.md +44 -0
  23. package/src/agents/specific_instructions/ai_engineer/phases/index.md +45 -0
  24. package/src/agents/specific_instructions/ai_engineer/phases/phase-1.md +55 -0
  25. package/src/agents/specific_instructions/ai_engineer/phases/phase-2.md +86 -0
  26. package/src/agents/specific_instructions/ai_engineer/phases/phase-3.md +96 -0
  27. package/src/agents/specific_instructions/ai_engineer/phases/phase-4.md +138 -0
  28. package/src/agents/specific_instructions/ai_engineer/phases/phase-5.md +157 -0
  29. package/src/agents/specific_instructions/ai_engineer/phases/phase-6.md +196 -0
  30. package/src/agents/specific_instructions/ai_engineer/phases/phase-7.md +313 -0
  31. package/src/agents/specific_instructions/ai_engineer/phases.md +1011 -0
  32. package/src/agents/specific_instructions/ai_engineer/prompt_lab.md +161 -0
  33. package/src/agents/specific_instructions/ai_engineer/prompt_lab_ui_mode.md +28 -0
  34. package/src/agents/specific_instructions/ai_engineer/research.md +393 -0
  35. package/src/agents/specific_instructions/ai_engineer/research_ui_mode.md +66 -0
  36. package/src/agents/specific_instructions/ai_engineer/review.md +159 -0
  37. package/src/agents/specific_instructions/ai_engineer/validation_checklist.md +182 -0
  38. package/src/agents/specific_instructions/analytics_engineer/advise.md +155 -0
  39. package/src/agents/specific_instructions/analytics_engineer/bi_engineer_handoff.md +91 -0
  40. package/src/agents/specific_instructions/analytics_engineer/data_analyst_handoff.md +84 -0
  41. package/src/agents/specific_instructions/analytics_engineer/deep_phases.md +818 -0
  42. package/src/agents/specific_instructions/analytics_engineer/phases_deep/index.md +24 -0
  43. package/src/agents/specific_instructions/analytics_engineer/phases_deep/phase-1.md +77 -0
  44. package/src/agents/specific_instructions/analytics_engineer/phases_deep/phase-2.md +106 -0
  45. package/src/agents/specific_instructions/analytics_engineer/phases_deep/phase-3.md +93 -0
  46. package/src/agents/specific_instructions/analytics_engineer/phases_deep/phase-4.md +79 -0
  47. package/src/agents/specific_instructions/analytics_engineer/phases_deep/phase-5.md +61 -0
  48. package/src/agents/specific_instructions/analytics_engineer/phases_deep/phase-6.md +45 -0
  49. package/src/agents/specific_instructions/analytics_engineer/phases_deep/phase-7.md +235 -0
  50. package/src/agents/specific_instructions/analytics_engineer/phases_deep/phase-8.md +221 -0
  51. package/src/agents/specific_instructions/analytics_engineer/phases_quick/index.md +19 -0
  52. package/src/agents/specific_instructions/analytics_engineer/phases_quick/phase-1.md +47 -0
  53. package/src/agents/specific_instructions/analytics_engineer/phases_quick/phase-2.md +78 -0
  54. package/src/agents/specific_instructions/analytics_engineer/quick_phases.md +112 -0
  55. package/src/agents/specific_instructions/analytics_engineer/review.md +167 -0
  56. package/src/agents/specific_instructions/analytics_engineer/service_mode.md +369 -0
  57. package/src/agents/specific_instructions/analytics_engineer/ui_mode.md +45 -0
  58. package/src/agents/specific_instructions/analytics_engineer/update.md +162 -0
  59. package/src/agents/specific_instructions/analytics_engineer/validation_checklist.md +121 -0
  60. package/src/agents/specific_instructions/applied_ml_scientist/advise.md +143 -0
  61. package/src/agents/specific_instructions/applied_ml_scientist/phases/index.md +21 -0
  62. package/src/agents/specific_instructions/applied_ml_scientist/phases/phase-1.md +51 -0
  63. package/src/agents/specific_instructions/applied_ml_scientist/phases/phase-2.md +66 -0
  64. package/src/agents/specific_instructions/applied_ml_scientist/phases/phase-3.md +113 -0
  65. package/src/agents/specific_instructions/applied_ml_scientist/phases/phase-4.md +104 -0
  66. package/src/agents/specific_instructions/applied_ml_scientist/phases/phase-5.md +156 -0
  67. package/src/agents/specific_instructions/applied_ml_scientist/phases.md +428 -0
  68. package/src/agents/specific_instructions/applied_ml_scientist/research.md +379 -0
  69. package/src/agents/specific_instructions/applied_ml_scientist/review.md +142 -0
  70. package/src/agents/specific_instructions/applied_ml_scientist/validation_checklist.md +136 -0
  71. package/src/agents/specific_instructions/backend_engineer/clean.md +149 -0
  72. package/src/agents/specific_instructions/backend_engineer/review.md +91 -0
  73. package/src/agents/specific_instructions/backend_engineer/review_checklist.md +54 -0
  74. package/src/agents/specific_instructions/backend_engineer/service_mode.md +67 -0
  75. package/src/agents/specific_instructions/bi_engineer/advise.md +137 -0
  76. package/src/agents/specific_instructions/bi_engineer/data_analyst_handoff.md +77 -0
  77. package/src/agents/specific_instructions/bi_engineer/incoming_handoff.md +45 -0
  78. package/src/agents/specific_instructions/bi_engineer/phases/index.md +20 -0
  79. package/src/agents/specific_instructions/bi_engineer/phases/phase-1.md +164 -0
  80. package/src/agents/specific_instructions/bi_engineer/phases/phase-2.md +92 -0
  81. package/src/agents/specific_instructions/bi_engineer/phases/phase-3.md +121 -0
  82. package/src/agents/specific_instructions/bi_engineer/phases/phase-4.md +106 -0
  83. package/src/agents/specific_instructions/bi_engineer/phases.md +451 -0
  84. package/src/agents/specific_instructions/bi_engineer/review.md +166 -0
  85. package/src/agents/specific_instructions/bi_engineer/update.md +147 -0
  86. package/src/agents/specific_instructions/bi_engineer/validation_checklist.md +124 -0
  87. package/src/agents/specific_instructions/data_analyst/advise.md +138 -0
  88. package/src/agents/specific_instructions/data_analyst/explain.md +221 -0
  89. package/src/agents/specific_instructions/data_analyst/incoming_handoff.md +40 -0
  90. package/src/agents/specific_instructions/data_analyst/phases/index.md +20 -0
  91. package/src/agents/specific_instructions/data_analyst/phases/phase-1.md +159 -0
  92. package/src/agents/specific_instructions/data_analyst/phases/phase-2.md +112 -0
  93. package/src/agents/specific_instructions/data_analyst/phases/phase-3.md +265 -0
  94. package/src/agents/specific_instructions/data_analyst/phases/phase-4.md +100 -0
  95. package/src/agents/specific_instructions/data_analyst/phases.md +501 -0
  96. package/src/agents/specific_instructions/data_analyst/review.md +138 -0
  97. package/src/agents/specific_instructions/data_analyst/ui_mode.md +26 -0
  98. package/src/agents/specific_instructions/data_analyst/update.md +144 -0
  99. package/src/agents/specific_instructions/data_analyst/validation_checklist.md +95 -0
  100. package/src/agents/specific_instructions/data_engineer/advise.md +137 -0
  101. package/src/agents/specific_instructions/data_engineer/phases.md +466 -0
  102. package/src/agents/specific_instructions/data_engineer/phases_deep/index.md +23 -0
  103. package/src/agents/specific_instructions/data_engineer/phases_deep/phase-1.md +49 -0
  104. package/src/agents/specific_instructions/data_engineer/phases_deep/phase-2.md +93 -0
  105. package/src/agents/specific_instructions/data_engineer/phases_deep/phase-3.md +55 -0
  106. package/src/agents/specific_instructions/data_engineer/phases_deep/phase-4.md +48 -0
  107. package/src/agents/specific_instructions/data_engineer/phases_deep/phase-5.md +40 -0
  108. package/src/agents/specific_instructions/data_engineer/phases_deep/phase-6.md +102 -0
  109. package/src/agents/specific_instructions/data_engineer/phases_deep/phase-7.md +87 -0
  110. package/src/agents/specific_instructions/data_engineer/phases_quick/index.md +19 -0
  111. package/src/agents/specific_instructions/data_engineer/phases_quick/phase-1.md +45 -0
  112. package/src/agents/specific_instructions/data_engineer/phases_quick/phase-2.md +54 -0
  113. package/src/agents/specific_instructions/data_engineer/review.md +135 -0
  114. package/src/agents/specific_instructions/data_engineer/validation_checklist.md +136 -0
  115. package/src/agents/specific_instructions/data_modeller/advise.md +137 -0
  116. package/src/agents/specific_instructions/data_modeller/phases.md +581 -0
  117. package/src/agents/specific_instructions/data_modeller/phases_deep/index.md +23 -0
  118. package/src/agents/specific_instructions/data_modeller/phases_deep/phase-1.md +52 -0
  119. package/src/agents/specific_instructions/data_modeller/phases_deep/phase-2.md +113 -0
  120. package/src/agents/specific_instructions/data_modeller/phases_deep/phase-3.md +47 -0
  121. package/src/agents/specific_instructions/data_modeller/phases_deep/phase-4.md +51 -0
  122. package/src/agents/specific_instructions/data_modeller/phases_deep/phase-5.md +45 -0
  123. package/src/agents/specific_instructions/data_modeller/phases_deep/phase-6.md +105 -0
  124. package/src/agents/specific_instructions/data_modeller/phases_deep/phase-7.md +136 -0
  125. package/src/agents/specific_instructions/data_modeller/phases_quick/index.md +19 -0
  126. package/src/agents/specific_instructions/data_modeller/phases_quick/phase-1.md +47 -0
  127. package/src/agents/specific_instructions/data_modeller/phases_quick/phase-2.md +65 -0
  128. package/src/agents/specific_instructions/data_modeller/review.md +141 -0
  129. package/src/agents/specific_instructions/data_modeller/service_mode.md +218 -0
  130. package/src/agents/specific_instructions/data_modeller/validation_checklist.md +125 -0
  131. package/src/agents/specific_instructions/data_scientist/advise.md +158 -0
  132. package/src/agents/specific_instructions/data_scientist/bi_engineer_handoff.md +63 -0
  133. package/src/agents/specific_instructions/data_scientist/experiment.md +482 -0
  134. package/src/agents/specific_instructions/data_scientist/experiment_ui_mode.md +44 -0
  135. package/src/agents/specific_instructions/data_scientist/explain.md +247 -0
  136. package/src/agents/specific_instructions/data_scientist/greenfield_data.md +35 -0
  137. package/src/agents/specific_instructions/data_scientist/ml_engineer_handoff.md +52 -0
  138. package/src/agents/specific_instructions/data_scientist/notebook_walkthrough.md +76 -0
  139. package/src/agents/specific_instructions/data_scientist/phases/index.md +24 -0
  140. package/src/agents/specific_instructions/data_scientist/phases/phase-1.md +45 -0
  141. package/src/agents/specific_instructions/data_scientist/phases/phase-2.md +67 -0
  142. package/src/agents/specific_instructions/data_scientist/phases/phase-3.md +89 -0
  143. package/src/agents/specific_instructions/data_scientist/phases/phase-4.md +143 -0
  144. package/src/agents/specific_instructions/data_scientist/phases/phase-5.md +71 -0
  145. package/src/agents/specific_instructions/data_scientist/phases/phase-6.md +239 -0
  146. package/src/agents/specific_instructions/data_scientist/phases/phase-7.md +207 -0
  147. package/src/agents/specific_instructions/data_scientist/phases.md +651 -0
  148. package/src/agents/specific_instructions/data_scientist/research.md +345 -0
  149. package/src/agents/specific_instructions/data_scientist/research_ui_mode.md +52 -0
  150. package/src/agents/specific_instructions/data_scientist/review.md +136 -0
  151. package/src/agents/specific_instructions/data_scientist/service_mode.md +247 -0
  152. package/src/agents/specific_instructions/data_scientist/validation_checklist.md +183 -0
  153. package/src/agents/specific_instructions/deep_learning_engineer/advise.md +145 -0
  154. package/src/agents/specific_instructions/deep_learning_engineer/phases/index.md +21 -0
  155. package/src/agents/specific_instructions/deep_learning_engineer/phases/phase-1.md +74 -0
  156. package/src/agents/specific_instructions/deep_learning_engineer/phases/phase-2.md +98 -0
  157. package/src/agents/specific_instructions/deep_learning_engineer/phases/phase-3.md +76 -0
  158. package/src/agents/specific_instructions/deep_learning_engineer/phases/phase-4.md +128 -0
  159. package/src/agents/specific_instructions/deep_learning_engineer/phases/phase-5.md +292 -0
  160. package/src/agents/specific_instructions/deep_learning_engineer/phases.md +567 -0
  161. package/src/agents/specific_instructions/deep_learning_engineer/research.md +389 -0
  162. package/src/agents/specific_instructions/deep_learning_engineer/review.md +155 -0
  163. package/src/agents/specific_instructions/deep_learning_engineer/validation_checklist.md +147 -0
  164. package/src/agents/specific_instructions/ml_engineer/advise.md +174 -0
  165. package/src/agents/specific_instructions/ml_engineer/bi_engineer_handoff.md +71 -0
  166. package/src/agents/specific_instructions/ml_engineer/experiment.md +474 -0
  167. package/src/agents/specific_instructions/ml_engineer/experiment_ui_mode.md +44 -0
  168. package/src/agents/specific_instructions/ml_engineer/notebook_walkthrough.md +75 -0
  169. package/src/agents/specific_instructions/ml_engineer/phases/index.md +25 -0
  170. package/src/agents/specific_instructions/ml_engineer/phases/phase-1.md +49 -0
  171. package/src/agents/specific_instructions/ml_engineer/phases/phase-2.md +75 -0
  172. package/src/agents/specific_instructions/ml_engineer/phases/phase-3.md +124 -0
  173. package/src/agents/specific_instructions/ml_engineer/phases/phase-4.md +279 -0
  174. package/src/agents/specific_instructions/ml_engineer/phases/phase-5.md +160 -0
  175. package/src/agents/specific_instructions/ml_engineer/phases/phase-6-5.md +170 -0
  176. package/src/agents/specific_instructions/ml_engineer/phases/phase-6.md +295 -0
  177. package/src/agents/specific_instructions/ml_engineer/phases/phase-7.md +337 -0
  178. package/src/agents/specific_instructions/ml_engineer/phases.md +1068 -0
  179. package/src/agents/specific_instructions/ml_engineer/research.md +437 -0
  180. package/src/agents/specific_instructions/ml_engineer/research_ui_mode.md +71 -0
  181. package/src/agents/specific_instructions/ml_engineer/review.md +187 -0
  182. package/src/agents/specific_instructions/ml_engineer/service_mode.md +273 -0
  183. package/src/agents/specific_instructions/ml_engineer/validation_checklist.md +185 -0
  184. package/src/agents/specific_instructions/mlops_engineer/advise.md +139 -0
  185. package/src/agents/specific_instructions/mlops_engineer/phases/index.md +23 -0
  186. package/src/agents/specific_instructions/mlops_engineer/phases/phase-1.md +52 -0
  187. package/src/agents/specific_instructions/mlops_engineer/phases/phase-2.md +86 -0
  188. package/src/agents/specific_instructions/mlops_engineer/phases/phase-3.md +105 -0
  189. package/src/agents/specific_instructions/mlops_engineer/phases/phase-4.md +128 -0
  190. package/src/agents/specific_instructions/mlops_engineer/phases/phase-5.md +106 -0
  191. package/src/agents/specific_instructions/mlops_engineer/phases/phase-6.md +128 -0
  192. package/src/agents/specific_instructions/mlops_engineer/phases/phase-7.md +144 -0
  193. package/src/agents/specific_instructions/mlops_engineer/phases.md +671 -0
  194. package/src/agents/specific_instructions/mlops_engineer/review.md +164 -0
  195. package/src/agents/specific_instructions/mlops_engineer/service_mode.md +81 -0
  196. package/src/agents/specific_instructions/mlops_engineer/validation_checklist.md +151 -0
  197. package/src/agents/specific_instructions/researcher/critical_review.md +292 -0
  198. package/src/agents/specific_instructions/researcher/review_checklist.md +67 -0
  199. package/src/agents/specific_instructions/researcher/service_mode.md +224 -0
  200. package/src/agents/specific_instructions/shared/auto_verify_mode.md +141 -0
  201. package/src/agents/specific_instructions/shared/autonomous_research.md +1289 -0
  202. package/src/agents/specific_instructions/shared/behavioral_rules.md +36 -0
  203. package/src/agents/specific_instructions/shared/diverge_protocol.md +387 -0
  204. package/src/agents/specific_instructions/shared/engineering_guidelines.md +136 -0
  205. package/src/agents/specific_instructions/shared/experiment_versioning.md +184 -0
  206. package/src/agents/specific_instructions/shared/goal_mode.md +187 -0
  207. package/src/agents/specific_instructions/shared/incremental_testing.md +139 -0
  208. package/src/agents/specific_instructions/shared/intent_discovery.md +223 -0
  209. package/src/agents/specific_instructions/shared/join_path_protocol.md +168 -0
  210. package/src/agents/specific_instructions/shared/knowledge_checkpoint.md +83 -0
  211. package/src/agents/specific_instructions/shared/knowledge_harvest.md +220 -0
  212. package/src/agents/specific_instructions/shared/knowledge_retrieval.md +100 -0
  213. package/src/agents/specific_instructions/shared/notebook_walkthrough_protocol.md +367 -0
  214. package/src/agents/specific_instructions/shared/reviewer_verdict_protocol.md +74 -0
  215. package/src/agents/specific_instructions/shared/swarm_protocol.md +97 -0
  216. package/src/agents/specific_instructions/shared/validation_protocol.md +139 -0
  217. package/src/agents/specific_instructions/syn/arbiter.md +140 -0
  218. package/src/agents/specific_instructions/syn/brainstorm.md +550 -0
  219. package/src/agents/specific_instructions/syn/code_review.md +232 -0
  220. package/src/agents/specific_instructions/syn/diff.md +239 -0
  221. package/src/agents/specific_instructions/syn/final_review.md +65 -0
  222. package/src/agents/specific_instructions/syn/fixer.md +240 -0
  223. package/src/agents/specific_instructions/syn/free_form.md +130 -0
  224. package/src/agents/specific_instructions/syn/knowledge.md +468 -0
  225. package/src/agents/specific_instructions/syn/notebook_walkthrough.md +78 -0
  226. package/src/agents/specific_instructions/syn/panel_review.md +634 -0
  227. package/src/agents/specific_instructions/syn/pm.md +453 -0
  228. package/src/agents/specific_instructions/syn/pr_review.md +255 -0
  229. package/src/agents/specific_instructions/syn/slides.md +417 -0
  230. package/src/agents/syn.md +729 -0
  231. package/src/commands/academic.md +41 -0
  232. package/src/commands/ai-engineer.md +45 -0
  233. package/src/commands/analytics-engineer.md +48 -0
  234. package/src/commands/applied-ml-scientist.md +45 -0
  235. package/src/commands/backend-engineer.md +35 -0
  236. package/src/commands/bi-engineer.md +40 -0
  237. package/src/commands/brainstorm.md +24 -0
  238. package/src/commands/data-analyst.md +38 -0
  239. package/src/commands/data-engineer.md +37 -0
  240. package/src/commands/data-modeller.md +38 -0
  241. package/src/commands/data-scientist.md +38 -0
  242. package/src/commands/deep-learning-engineer.md +47 -0
  243. package/src/commands/end.md +49 -0
  244. package/src/commands/knowledge.md +24 -0
  245. package/src/commands/ml-engineer.md +42 -0
  246. package/src/commands/mlops-engineer.md +47 -0
  247. package/src/commands/notebook-walkthrough.md +58 -0
  248. package/src/commands/researcher.md +40 -0
  249. package/src/commands/resume.md +57 -0
  250. package/src/commands/review-pr.md +26 -0
  251. package/src/commands/shards-guide.md +41 -0
  252. package/src/commands/shards-ui.md +32 -0
  253. package/src/commands/shards.md +41 -0
  254. package/src/docs/01-getting-started/concepts.md +109 -0
  255. package/src/docs/01-getting-started/first-session.md +79 -0
  256. package/src/docs/01-getting-started/install.md +61 -0
  257. package/src/docs/02-agents/academic.md +71 -0
  258. package/src/docs/02-agents/ai-engineer.md +78 -0
  259. package/src/docs/02-agents/analytics-engineer.md +58 -0
  260. package/src/docs/02-agents/applied-ml-scientist.md +59 -0
  261. package/src/docs/02-agents/backend-engineer.md +58 -0
  262. package/src/docs/02-agents/bi-engineer.md +65 -0
  263. package/src/docs/02-agents/data-analyst.md +67 -0
  264. package/src/docs/02-agents/data-engineer.md +57 -0
  265. package/src/docs/02-agents/data-modeller.md +51 -0
  266. package/src/docs/02-agents/data-scientist.md +78 -0
  267. package/src/docs/02-agents/deep-learning-engineer.md +64 -0
  268. package/src/docs/02-agents/ml-engineer.md +80 -0
  269. package/src/docs/02-agents/mlops-engineer.md +59 -0
  270. package/src/docs/02-agents/overview.md +62 -0
  271. package/src/docs/02-agents/researcher.md +73 -0
  272. package/src/docs/02-agents/syn.md +88 -0
  273. package/src/docs/03-protocols/auto-verify.md +82 -0
  274. package/src/docs/03-protocols/autonomous-research.md +59 -0
  275. package/src/docs/03-protocols/behavioral-rules.md +35 -0
  276. package/src/docs/03-protocols/diverge.md +50 -0
  277. package/src/docs/03-protocols/engineering-guidelines.md +56 -0
  278. package/src/docs/03-protocols/experiment-versioning.md +38 -0
  279. package/src/docs/03-protocols/gate-pattern.md +65 -0
  280. package/src/docs/03-protocols/incremental-testing.md +68 -0
  281. package/src/docs/03-protocols/join-path.md +46 -0
  282. package/src/docs/03-protocols/knowledge-ledger.md +70 -0
  283. package/src/docs/03-protocols/reviewer-verdicts.md +39 -0
  284. package/src/docs/03-protocols/swarm.md +40 -0
  285. package/src/docs/03-protocols/validation.md +174 -0
  286. package/src/docs/04-ui/activity-bar.md +70 -0
  287. package/src/docs/04-ui/chat-pane.md +80 -0
  288. package/src/docs/04-ui/code-intel.md +62 -0
  289. package/src/docs/04-ui/file-editing.md +61 -0
  290. package/src/docs/04-ui/git.md +54 -0
  291. package/src/docs/04-ui/keybindings.md +79 -0
  292. package/src/docs/04-ui/knowledge-map.md +76 -0
  293. package/src/docs/04-ui/overview.md +93 -0
  294. package/src/docs/04-ui/panels.md +49 -0
  295. package/src/docs/04-ui/pinboard-selection.md +66 -0
  296. package/src/docs/04-ui/quick-open-palette.md +56 -0
  297. package/src/docs/04-ui/sessions.md +81 -0
  298. package/src/docs/04-ui/settings-permissions.md +56 -0
  299. package/src/docs/05-commands/reference.md +59 -0
  300. package/src/docs/06-outputs/directory-map.md +116 -0
  301. package/src/docs/07-workflows/ai-eval-first.md +57 -0
  302. package/src/docs/07-workflows/deep-study-to-production.md +76 -0
  303. package/src/docs/07-workflows/diverge-exploration.md +77 -0
  304. package/src/docs/07-workflows/quick-analysis.md +45 -0
  305. package/src/docs/08-integrations/claude-code-auto-mode.md +191 -0
  306. package/src/docs/08-integrations/google-slides.md +175 -0
  307. package/src/docs/README.md +30 -0
  308. package/src/docs/manifest.json +108 -0
  309. package/src/templates/analysis-template.md +20 -0
  310. package/src/templates/branch-report.md +46 -0
  311. package/src/templates/diff-report.md +88 -0
  312. package/src/templates/knowledge-index.md +7 -0
  313. package/src/templates/model-card-schema.json +186 -0
  314. package/src/templates/model-card-schema.md +88 -0
  315. package/src/templates/model-card.md +124 -0
  316. package/src/templates/project-plan.md +47 -0
  317. package/src/templates/project-specs.md +81 -0
  318. package/src/templates/report-template.md +43 -0
  319. package/src/templates/study-template.md +25 -0
  320. package/src/ui/cc-readonly.js +181 -0
  321. package/src/ui/chat-session.js +466 -0
  322. package/src/ui/css/base.css +136 -0
  323. package/src/ui/css/brainstorm.css +525 -0
  324. package/src/ui/css/chat.css +1405 -0
  325. package/src/ui/css/editor.css +546 -0
  326. package/src/ui/css/eval-dashboard.css +157 -0
  327. package/src/ui/css/experiment.css +237 -0
  328. package/src/ui/css/guide.css +186 -0
  329. package/src/ui/css/knowledge-map.css +383 -0
  330. package/src/ui/css/layout.css +431 -0
  331. package/src/ui/css/model-card.css +161 -0
  332. package/src/ui/css/notebook-walkthrough.css +271 -0
  333. package/src/ui/css/pr-review.css +403 -0
  334. package/src/ui/css/prompt-lab.css +325 -0
  335. package/src/ui/css/sessions.css +258 -0
  336. package/src/ui/css/sidebar.css +661 -0
  337. package/src/ui/css/terminal.css +113 -0
  338. package/src/ui/css/theme-light.css +542 -0
  339. package/src/ui/index.html +389 -0
  340. package/src/ui/js/agents.js +32 -0
  341. package/src/ui/js/bookmarks.js +230 -0
  342. package/src/ui/js/chat.js +1776 -0
  343. package/src/ui/js/code-intel.js +328 -0
  344. package/src/ui/js/command-palette.js +142 -0
  345. package/src/ui/js/events.js +591 -0
  346. package/src/ui/js/explorer.js +317 -0
  347. package/src/ui/js/file-view.js +477 -0
  348. package/src/ui/js/git.js +536 -0
  349. package/src/ui/js/guide.js +198 -0
  350. package/src/ui/js/hud.js +75 -0
  351. package/src/ui/js/init.js +351 -0
  352. package/src/ui/js/knowledge-map.js +906 -0
  353. package/src/ui/js/markdown.js +114 -0
  354. package/src/ui/js/monaco.js +164 -0
  355. package/src/ui/js/notebook-walkthrough.js +272 -0
  356. package/src/ui/js/notebook.js +448 -0
  357. package/src/ui/js/panels.js +2681 -0
  358. package/src/ui/js/pinboard.js +186 -0
  359. package/src/ui/js/quick-open.js +164 -0
  360. package/src/ui/js/selection-context.js +131 -0
  361. package/src/ui/js/sessions.js +256 -0
  362. package/src/ui/js/settings.js +476 -0
  363. package/src/ui/js/split-view.js +82 -0
  364. package/src/ui/js/state.js +343 -0
  365. package/src/ui/js/table.js +161 -0
  366. package/src/ui/js/tabs.js +284 -0
  367. package/src/ui/js/tabular.js +125 -0
  368. package/src/ui/js/terminal.js +354 -0
  369. package/src/ui/js/timeline.js +137 -0
  370. package/src/ui/js/utils.js +293 -0
  371. package/src/ui/notebook-kernel.py +790 -0
  372. package/src/ui/open-browser.js +55 -0
  373. package/src/ui/permission-pattern.js +42 -0
  374. package/src/ui/relay.js +513 -0
  375. package/src/ui/server.js +3072 -0
  376. package/src/ui/session-index.js +225 -0
  377. package/src/ui/shards_icon.png +0 -0
  378. package/src/ui/spawn-server.js +41 -0
  379. package/src/ui/symbol-index.js +813 -0
  380. package/src/ui/ui-push.js +177 -0
  381. package/tools/gate-hook/VALIDATION_SPEC.md +273 -0
  382. package/tools/gate-hook/__tests__/auto-verify.test.js +343 -0
  383. package/tools/gate-hook/auto-allowlist.js +179 -0
  384. package/tools/gate-hook/auto-state.js +68 -0
  385. package/tools/gate-hook/classify.js +21 -0
  386. package/tools/gate-hook/log.js +57 -0
  387. package/tools/gate-hook/parser.js +205 -0
  388. package/tools/gate-hook/sql-guard.js +230 -0
  389. package/tools/gate-hook/state.js +170 -0
  390. package/tools/gate-hook/sweep.js +139 -0
  391. package/tools/gate-hook/transcript.js +45 -0
  392. package/tools/gate-hook/validation.js +321 -0
  393. package/tools/gate-hook.js +475 -0
  394. package/tools/install.js +914 -0
  395. package/tools/shards-gates.js +311 -0
  396. package/tools/shards-sessions.js +261 -0
  397. package/tools/shards-ui.js +377 -0
@@ -0,0 +1,164 @@
1
+ > **Previous:** This is the first phase of the BI Engineer workflow.
2
+ > **Next:** phase-2.md (read only after this phase's gate is confirmed)
3
+
4
+ ---
5
+
6
+ ## Phase 1 — Data Discovery
7
+
8
+ Goal: Deepen understanding of what the user is building and what data exists to support it — driven by their intent, not a checklist.
9
+
10
+ **First, consult the Data Modeller** for data understanding:
11
+
12
+ Tell the user: "Let me check with the Data Modeller on what data actually exists. Exciting stuff."
13
+
14
+ ```
15
+ Task(
16
+ subagent_type="data-modeller",
17
+ description="Explore data model for [dashboard topic]",
18
+ prompt="I am the BI Engineer shard working on a dashboard about [topic].
19
+ I need to understand the relevant data models. Please explore and return:
20
+ relevant tables with grain, relationships, key columns, available aggregations,
21
+ and any quality concerns.
22
+ Focus on: [specific tables or business concepts].
23
+ Since I'll be querying these tables for a dashboard, please also confirm:
24
+ - Which tables have pre-aggregated mart models vs. raw tables?
25
+ - Are there any known freshness issues that would affect dashboard accuracy?
26
+ Run a quick grain validation (PK uniqueness check) on the key tables you identify."
27
+ )
28
+ ```
29
+
30
+ **Greenfield / no-data handling:** Before presenting findings, check whether the
31
+ Data Modeller's response contains "NO DATA ENVIRONMENT DETECTED".
32
+
33
+ If it does, or if the user indicated no data in Phase 0:
34
+ 1. Present the Data Modeller's response to the user.
35
+ 2. Ask:
36
+ "The Data Modeller found no data assets in this project. Before we continue:
37
+ - (a) Data exists in a warehouse or system — tell me what tables or sources
38
+ exist and I'll design against them.
39
+ - (b) Data exists but you can't share details right now — I can still design
40
+ the dashboard; it'll need connecting to real data when you get access.
41
+ - (c) No data exists at all — I can produce a full design specification
42
+ describing every chart, what it would show, and how to build it.
43
+ Which situation are we in?"
44
+ 3. Wait for the user's response before proceeding.
45
+ - (a): proceed with provided context; document source as user-described.
46
+ - (b): proceed in spec mode with caveat:
47
+ `**Data environment:** Data exists but inaccessible — design only, validate before connecting.`
48
+ - (c): tell the user: "Understood. I'll produce a complete dashboard design
49
+ specification. Every chart will be described in detail — chart type, data
50
+ fields, filters, interactivity, color recommendations, and technology notes.
51
+ Everything will be marked [DESIGN ONLY — NOT VALIDATED]. Do you want to
52
+ proceed on that basis?"
53
+ Wait for confirmation. Add to Phase 1 docs:
54
+ `**Data environment:** GREENFIELD — No data assets detected. Design specification only.`
55
+
56
+ Present the Data Modeller's findings to the user. Let their questions and reactions guide the follow-ups rather than running a checklist. Surface these topics naturally:
57
+
58
+ Open by referencing the data: "Given this data, what metrics matter most to you?"
59
+
60
+ Let the conversation flow to cover:
61
+ - **Metrics and dimensions:** the actual numbers and breakdowns they care about
62
+ - **Filters:** date range, segment, region — how they want to slice the data
63
+ - **Update frequency:** live, daily, manual — how fresh it needs to be
64
+ - **Interactivity:** dropdowns, drill-down, cross-filter — how they want to explore
65
+ - **Branding / colors:** any visual constraints to match
66
+
67
+ **Analytics Engineer flag:** After the Data Modeller's findings, check whether the
68
+ required mart or aggregation level doesn't exist yet.
69
+
70
+ If missing marts are identified:
71
+ Tell the user: "The Data Modeller found that [X] — the mart for this dashboard
72
+ doesn't exist yet. I can still design the dashboard, but it'll need to be connected
73
+ to raw or staging tables which may have grain or logic issues.
74
+
75
+ Your options:
76
+ - (a) Proceed with available tables — I'll note the data layer risk.
77
+ - (b) Engage the Analytics Engineer first to build the missing mart, then return here.
78
+
79
+ Which would you prefer?"
80
+
81
+ If user chooses (b): write a structured `ae-intake.md` file before stopping, then tell the user where to find it.
82
+
83
+ Write `dashboards/<project_name>/ae-intake.md`:
84
+
85
+ ```markdown
86
+ ## AE Intake: <dashboard_project_name>
87
+
88
+ ## Requesting Agent
89
+ - Originating agent: BI Engineer
90
+ - Dashboard project: dashboards/<project_name>/project-specs.md (Phase 0 already complete)
91
+
92
+ ## What the Dashboard Needs
93
+ - Dashboard objective: <from BI Phase 0 — what to visualize>
94
+ - Intended audience: <from BI Phase 0>
95
+ - Technology: <from BI Phase 0>
96
+
97
+ ## Required Mart
98
+ - Grain needed: <one row per X — inferred from dashboard design intent>
99
+ - Business questions the dashboard must answer:
100
+ - <question 1>
101
+ - <question 2>
102
+ - Required measures: <metrics BI will visualize>
103
+ - Required dimensions: <filters and breakdowns BI will expose>
104
+ - Date spine: <date column and granularity needed for time-series charts>
105
+ - Update frequency: <from BI Phase 0>
106
+
107
+ ## Source Context
108
+ - Data Modeller findings: <summary from BI Phase 1 Data Modeller consultation>
109
+ - Data exists: Yes | No | Partial — <details>
110
+
111
+ ## Next Step
112
+ Run `/analytics-engineer` or `/shards`. In Phase 1, reference this file:
113
+ dashboards/<project_name>/ae-intake.md
114
+ ```
115
+
116
+ Tell the user: "I've written `dashboards/<project_name>/ae-intake.md` with the mart requirements for the Analytics Engineer. Run `/analytics-engineer` or `/shards` and reference that file in Phase 1."
117
+
118
+ Document in Phase 1 specs: `**Analytics Engineer needed:** Yes — <mart/grain gap>`
119
+
120
+ **If the user references a `bi-intake.md` file** (written by the Data Analyst when escalating):
121
+ Read that file. Use its contents to pre-populate Phase 1 requirements — data sources,
122
+ key metrics, dimensions/filters, chart type recommendation, and date column — rather than
123
+ asking from scratch. Set `Originating request: Data Analyst — analysis/<project_name>/`.
124
+
125
+ Questions still to ask (not in the intake file):
126
+ - "Who is the intended audience for this dashboard?"
127
+ - "Any technology preference — Streamlit, Grafana, Dash — or should I recommend one?"
128
+ - "What level of interactivity do you need — filters, drill-downs, date pickers?"
129
+
130
+ Confirm the pre-populated values plus these answers with the user before proceeding.
131
+ Do not re-ask about data sources, metrics, or chart type — already captured.
132
+
133
+ ### Document Phase 1
134
+
135
+ ```markdown
136
+ ---
137
+
138
+ ## Phase 1: Data & Requirements (BI Engineer)
139
+ - **Data Modeller consultation:**
140
+ - <summary of Data Modeller findings>
141
+ - **Data source(s):** <tables or datasets confirmed>
142
+ - **Edge cases / unknowns:** <domain-specific edge cases surfaced>
143
+ - **Where to look:** <additional context sources identified>
144
+ - **Metrics / measures:** <what will be displayed>
145
+ - **Dimensions / filters:** <date range, segments, regions, etc.>
146
+ - **Update frequency:** <live queries | daily refresh | manual>
147
+ - **Interactivity requirements:** <dropdowns | date pickers | drill-down | cross-filter | none>
148
+ - **Branding / color constraints:** <constraints or "none">
149
+ - **Data environment:** <not greenfield | Data exists but inaccessible — design only, validate before connecting | GREENFIELD — No data assets detected. Design specification only>
150
+ - **Analytics Engineer needed:** No | Yes — <mart/grain gap>
151
+ - **AE intake file written:** Not applicable | Yes — dashboards/<project_name>/ae-intake.md
152
+ - **DA intake file source:** Not applicable | Data Analyst — analysis/<project_name>/bi-intake.md
153
+ - **Analysis context (DA intake only):** <core question and chart sketch from DA intake, or "N/A">
154
+ ```
155
+
156
+ ::GATE:: id=bi-engineer-phase-1 phase=1 kind=phase
157
+ Read this section back to the user. Stop here — do not begin the next phase or output any further content. Wait for the user to explicitly confirm before proceeding. Do not interpret silence or partial agreement as confirmation.
158
+ ::ENDGATE::
159
+
160
+ ---
161
+
162
+ ## When this gate is confirmed
163
+
164
+ Read `.claude/agents/specific_instructions/bi_engineer/phases/phase-2.md` in full and follow its instructions starting from Phase 2. Do not pre-read further phase files.
@@ -0,0 +1,92 @@
1
+ > **Previous:** phase-1.md confirmed
2
+ > **Next:** phase-3.md (read only after this phase's gate is confirmed)
3
+
4
+ ---
5
+
6
+ ## Phase 2 — Dashboard Design
7
+
8
+ Goal: Define the charts, layout, and components — then get it reviewed.
9
+
10
+ **Design decisions to make:**
11
+ - How many panels / pages?
12
+ - Which chart type for each metric? (bar, line, scatter, heatmap, KPI card, table, etc.)
13
+ - Layout: cards at top, charts below? Tabs? Single scrolling page?
14
+ - Color palette (or generate one from brand colors provided)
15
+ - Loading strategy: all-at-once vs. lazy / paginated
16
+ - If Streamlit or Dash: component breakdown (sidebar filters, main area, detail panel)
17
+ - If Altair: chart composition and layering approach
18
+
19
+ **Request Data Analyst review:**
20
+
21
+ Tell the user: "Getting the Data Analyst to verify I'm visualizing the right metrics. Can't have a beautiful chart tracking the wrong number."
22
+
23
+ ```
24
+ Task(
25
+ subagent_type="data-analyst",
26
+ description="Review dashboard metric and analysis design for [project]",
27
+ prompt="I am the BI Engineer shard designing a dashboard for [topic].
28
+ Here is my dashboard design plan:
29
+ [include panel descriptions, chart types, and metrics to be displayed]
30
+ Please review: Are these the right metrics for the question being answered?
31
+ Are there obvious gaps or better measures? Any concerns about how the data
32
+ is being aggregated or displayed? Keep the review brief and focused."
33
+ )
34
+ ```
35
+
36
+ **Request Analytics Engineer review:**
37
+
38
+ Tell the user: "Pulling in the Analytics Engineer to confirm these marts exist and are actually correct. No point building a dashboard on broken data."
39
+
40
+ ```
41
+ Task(
42
+ subagent_type="analytics-engineer",
43
+ description="Review data model correctness for dashboard [project]",
44
+ prompt="I am the BI Engineer shard designing a dashboard for [topic].
45
+ Here is my dashboard design and the data sources I plan to use:
46
+ [include panel descriptions, chart types, and tables/marts to be queried]
47
+ Please review: Are these marts the right ones to use for this purpose?
48
+ Are there grain, definition, or data quality concerns I should know about?
49
+ Do these marts have the necessary columns and aggregations for this design?
50
+ Keep the review brief and actionable."
51
+ )
52
+ ```
53
+
54
+ Present both the Data Analyst's and Analytics Engineer's findings to the user.
55
+ Address any concerns raised before finalizing the design.
56
+
57
+ ### Document Phase 2
58
+
59
+ ```markdown
60
+ ---
61
+
62
+ ## Phase 2: Dashboard Design (BI Engineer)
63
+ - **Panels / pages:**
64
+ 1. <panel name>: <description — chart types, metrics, layout>
65
+ 2. <panel name>: <description>
66
+ 3. <if applicable>
67
+ - **Chart types chosen:**
68
+ - <metric>: <chart type> — <rationale>
69
+ - <metric>: <chart type> — <rationale>
70
+ - **Layout:** <description of overall structure>
71
+ - **Color palette:** <colors or scheme>
72
+ - **Loading strategy:** <all-at-once | lazy | paginated>
73
+ - **Component breakdown:** <sidebar | main area | detail panel | tabs — brief description>
74
+ - **Data Analyst review:**
75
+ - Verdict: Approved | Concerns raised
76
+ - Notes: <summary of metric/analysis review>
77
+ - Issues addressed: <how concerns were resolved, or "none raised">
78
+ - **Analytics Engineer review:**
79
+ - Verdict: Approved | Concerns raised
80
+ - Notes: <summary of data model review>
81
+ - Issues addressed: <how concerns were resolved, or "none raised">
82
+ ```
83
+
84
+ ::GATE:: id=bi-engineer-phase-2 phase=2 kind=phase
85
+ Read this section back to the user. Stop here — do not begin the next phase or output any further content. Wait for the user to explicitly confirm before proceeding. Do not interpret silence or partial agreement as confirmation.
86
+ ::ENDGATE::
87
+
88
+ ---
89
+
90
+ ## When this gate is confirmed
91
+
92
+ Read `.claude/agents/specific_instructions/bi_engineer/phases/phase-3.md` in full and follow its instructions starting from Phase 3. Do not pre-read further phase files.
@@ -0,0 +1,121 @@
1
+ > **Previous:** phase-2.md confirmed
2
+ > **Next:** phase-4.md (read only after this phase's gate is confirmed)
3
+
4
+ ---
5
+
6
+ ## Phase 3 — Execute
7
+
8
+ **Context checkpoint:** Before building, prompt the user:
9
+
10
+ "Design's locked — good moment to run `/compact` or `/clear` before I start building.
11
+ I'll be working from project-specs.md from here. Say the word when you're ready."
12
+
13
+ Wait for any signal from the user before beginning build steps.
14
+
15
+ **Knowledge re-check:** Follow `.claude/agents/specific_instructions/shared/knowledge_checkpoint.md` before building.
16
+
17
+ Goal: Build the dashboard code or produce the design specification.
18
+
19
+ ### Build Mode (data exists)
20
+
21
+ Write the dashboard application to `dashboards/<project_name>/`.
22
+
23
+ **File naming conventions:**
24
+ - Streamlit: `app.py` (main entry point), `pages/` for multi-page apps
25
+ - Plotly Dash: `app.py` (main entry), `components/` for reusable components
26
+ - Altair: `charts.py` or named by chart function
27
+ - Standalone: `<descriptive_name>.py`
28
+
29
+ **Join path trace:** Before writing dashboard queries that join tables, trace the
30
+ join path following `.claude/agents/specific_instructions/shared/join_path_protocol.md`.
31
+ Present the trace to the user. Fan-out in a dashboard query means every chart
32
+ built on that query shows inflated numbers — flag it explicitly.
33
+
34
+ **SQL files** — Write all SQL queries to `dashboards/<project_name>/queries/`
35
+ before writing any Python. Name files descriptively: `01_revenue_by_region.sql`.
36
+ Include a header comment in each file:
37
+ ```sql
38
+ -- Dashboard: <project_name>
39
+ -- Query: <description>
40
+ -- Date: <date>
41
+ -- Data sources: <key tables or marts used>
42
+ -- Output grain: one row per <entity>
43
+ ```
44
+
45
+ **SQL loading rule** — **Do NOT embed SQL as Python strings.** Read `.sql` files
46
+ directly using `Path.read_text()`:
47
+ ```python
48
+ from pathlib import Path
49
+ sql = Path("queries/01_revenue_by_region.sql").read_text()
50
+ df = pd.read_sql(sql, conn)
51
+ ```
52
+
53
+ **Include at the top of every Python file:**
54
+ ```python
55
+ # Dashboard: <project_name>
56
+ # Description: <what this file does>
57
+ # Date: <date>
58
+ # Data sources: <key tables or marts used>
59
+ ```
60
+
61
+ **Quality standards:**
62
+ - All filters and date pickers must have sensible defaults
63
+ - Chart titles, axis labels, and tooltips must be present and clear
64
+ - Loading states handled (spinners or skeletons for slow queries)
65
+ - No hardcoded credentials — use environment variables or `.env` patterns
66
+ - `requirements.txt` listing all non-standard packages
67
+
68
+ **If this is a Deep track project:** After completing the main app, offer 1-2 additional
69
+ chart or panel suggestions: "While I was in there, [observation] — worth adding?"
70
+
71
+ ### Spec Mode (no data)
72
+
73
+ Write `dashboards/<project_name>/dashboard-design.md`.
74
+
75
+ For each chart or panel, document:
76
+
77
+ ```markdown
78
+ ### Panel: <Panel Name>
79
+
80
+ - **Chart type:** <bar chart | line chart | KPI card | table | scatter | heatmap | etc.>
81
+ - **Title:** <suggested chart title>
82
+ - **Purpose:** <what question this chart answers>
83
+ - **Data fields:**
84
+ - X-axis / dimension: <field name and description>
85
+ - Y-axis / measure: <field name and description>
86
+ - Color / grouping: <field or "none">
87
+ - Filters: <filter controls that affect this panel>
88
+ - **Interactivity:** <hover tooltips | click drill-down | linked selection | none>
89
+ - **Color scheme:** <recommendation>
90
+ - **Technology recommendation:** <Streamlit | Plotly Dash | Altair | etc.> — <rationale>
91
+ - **Implementation notes:** <key considerations for when data becomes available>
92
+ - **Status:** [DESIGN ONLY — NOT VALIDATED]
93
+ ```
94
+
95
+ ### Document Phase 3
96
+
97
+ ```markdown
98
+ ---
99
+
100
+ ## Phase 3: Build (BI Engineer)
101
+ - **Mode:** Build | Spec
102
+ - **Files produced:**
103
+ - <file path>: <brief description>
104
+ - <file path>: <brief description>
105
+ - **Key implementation decisions:**
106
+ - <decision and rationale>
107
+ - <decision and rationale>
108
+ - **Data environment note:** <any caveats about data access or theoretical outputs>
109
+ - **Suggestions for follow-up:**
110
+ - <suggestion or "none">
111
+ ```
112
+
113
+ ::GATE:: id=bi-engineer-phase-3 phase=3 kind=phase validates=bi_engineer
114
+ Read this section back to the user. Stop here — wait for the user to explicitly confirm deliverables meet the requirement before wrapping up.
115
+ ::ENDGATE::
116
+
117
+ ---
118
+
119
+ ## When this gate is confirmed
120
+
121
+ Read `.claude/agents/specific_instructions/bi_engineer/phases/phase-4.md` in full and follow its instructions starting from Phase 4. Do not pre-read further phase files.
@@ -0,0 +1,106 @@
1
+ > **Previous:** phase-3.md confirmed
2
+ > **Next:** This is the final phase — follow the Syn sign-off instructions in this phase to close the project.
3
+
4
+ ---
5
+
6
+ ## Phase 4 — Final Review
7
+
8
+ Goal: Get Syn's sign-off and close the project.
9
+
10
+ **Invoke Syn for final review:**
11
+
12
+ Tell the user: "Getting Syn to do a final check on this..."
13
+
14
+ ```
15
+ Task(
16
+ subagent_type="syn",
17
+ description="Final review of dashboard project",
18
+ prompt="I am the BI Engineer shard. I've completed a dashboard project for
19
+ [project_name]. Please review the project-specs.md at [file_path] and
20
+ provide your final review verdict. Check that the requirement was met,
21
+ the design decisions were sound, and nothing was missed."
22
+ )
23
+ ```
24
+
25
+ Append Syn's review to the specs. Present to user.
26
+
27
+ **If Syn returns NEEDS REVISION:**
28
+ 1. Address the specific issues Syn flagged.
29
+ 2. Update project-specs.md with the changes.
30
+ 3. Re-gate with the user: "Syn flagged [N] issues. Here's what I changed: [summary]. Confirm to resubmit?"
31
+ 4. Resubmit to Syn ONCE more.
32
+
33
+ **If Syn returns NEEDS REVISION a second time:**
34
+ Do not resubmit again. Instead, present to the user:
35
+ "Syn has flagged concerns twice. Here is the current conflict:
36
+ - Syn's concern: [verbatim from Syn's second review]
37
+ - Current state of specs: [summary of what's documented]
38
+ How would you like to proceed? (a) Override Syn and close as-is — I'll document the disagreement. (b) Continue revising — tell me what to change. (c) Stop the project."
39
+
40
+ Document the outcome in specs:
41
+ **Syn review resolution:** Approved | Approved on resubmit | User override — <rationale> | Project stopped
42
+
43
+ If Syn's review includes a "Code Review" section with `Code artifacts found: Yes`:
44
+ - Tell the user: "Syn spotted [N] code file(s) it can review. Want a code pass? (y/n)"
45
+ - If yes, invoke:
46
+
47
+ ```
48
+ Task(
49
+ subagent_type="syn",
50
+ description="Code review and fix for dashboard project",
51
+ prompt="CODE REVIEW MODE. I am the BI Engineer shard. Project: [project_name].
52
+ Directory: [project_dir]. Please review and fix the code artifacts produced
53
+ in this project. The project-specs.md is at [file_path] for context."
54
+ )
55
+ ```
56
+
57
+ Append Syn's code review summary to the specs. Present findings to user.
58
+
59
+ **Data Analyst handoff (if applicable):** See `.claude/agents/specific_instructions/bi_engineer/data_analyst_handoff.md`
60
+ for the full handoff instructions. Note: if Phase 0 or Phase 1 documented a DA intake file
61
+ (`DA intake file source: Data Analyst — ...`), write the handoff file automatically without
62
+ asking — it is the expected default, not optional.
63
+
64
+ Summarize:
65
+ 1. What was built (or designed)
66
+ 2. How to run it (or implement it)
67
+ 3. Any caveats or next steps
68
+ 4. Suggested extensions (if any)
69
+
70
+ **Knowledge harvest.** Before closing, extract reusable knowledge from this project.
71
+ Read `.claude/agents/specific_instructions/shared/knowledge_harvest.md` and follow
72
+ the protocol. Present candidates to the user for confirmation before writing.
73
+
74
+ ### Document Phase 4
75
+
76
+ ```markdown
77
+ ---
78
+
79
+ ## Phase 4: Final Review (BI Engineer)
80
+ - **Syn Review:** <included above>
81
+ - **Syn review resolution:** Approved | Approved on resubmit | User override — <rationale> | Project stopped
82
+ - **Summary:**
83
+ - Built / designed: <description of what was produced>
84
+ - How to run: <command or "see dashboard-design.md for implementation notes">
85
+ - Caveats: <limitations or "none">
86
+ - **Follow-up extensions suggested:**
87
+ - <suggestion or "none">
88
+ - **Original requirement met:** Yes | Partially | No — <explanation>
89
+ - **DA handoff:** Yes (auto — DA originated request) — dashboards/<project_name>/data_analyst_handoff.md | Yes (user requested) — dashboards/<project_name>/data_analyst_handoff.md | No — user declined | Not applicable — not a DA-originated request
90
+ - **Knowledge harvested:**
91
+ - <title> → .shards/knowledge/<type>/<filename>.md
92
+ - Or: None — project did not produce reusable knowledge
93
+ - **Status:** Complete
94
+ ```
95
+
96
+ Update specs header status to `Complete`.
97
+
98
+ ::GATE:: id=bi-engineer-phase-4 phase=4 kind=final
99
+ Read this final section back to the user. Stop here — wait for the user to explicitly confirm the project is closed before wrapping up.
100
+ ::ENDGATE::
101
+
102
+ ---
103
+
104
+ ## When this gate is confirmed
105
+
106
+ This is the final phase. Once Syn returns APPROVED sign-off, the project is complete. Do not read further files.