@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.
- package/README.md +475 -0
- package/package.json +37 -0
- package/src/agents/academic.md +276 -0
- package/src/agents/ai-engineer.md +377 -0
- package/src/agents/analytics-engineer.md +364 -0
- package/src/agents/applied-ml-scientist.md +410 -0
- package/src/agents/backend-engineer.md +255 -0
- package/src/agents/bi-engineer.md +333 -0
- package/src/agents/data-analyst.md +343 -0
- package/src/agents/data-engineer.md +260 -0
- package/src/agents/data-modeller.md +386 -0
- package/src/agents/data-scientist.md +366 -0
- package/src/agents/deep-learning-engineer.md +389 -0
- package/src/agents/ml-engineer.md +424 -0
- package/src/agents/mlops-engineer.md +339 -0
- package/src/agents/researcher.md +187 -0
- package/src/agents/specific_instructions/academic/critical_review.md +263 -0
- package/src/agents/specific_instructions/academic/report.md +113 -0
- package/src/agents/specific_instructions/ai_engineer/advise.md +162 -0
- package/src/agents/specific_instructions/ai_engineer/bi_engineer_handoff.md +86 -0
- package/src/agents/specific_instructions/ai_engineer/experiment.md +471 -0
- package/src/agents/specific_instructions/ai_engineer/experiment_ui_mode.md +44 -0
- package/src/agents/specific_instructions/ai_engineer/phases/index.md +45 -0
- package/src/agents/specific_instructions/ai_engineer/phases/phase-1.md +55 -0
- package/src/agents/specific_instructions/ai_engineer/phases/phase-2.md +86 -0
- package/src/agents/specific_instructions/ai_engineer/phases/phase-3.md +96 -0
- package/src/agents/specific_instructions/ai_engineer/phases/phase-4.md +138 -0
- package/src/agents/specific_instructions/ai_engineer/phases/phase-5.md +157 -0
- package/src/agents/specific_instructions/ai_engineer/phases/phase-6.md +196 -0
- package/src/agents/specific_instructions/ai_engineer/phases/phase-7.md +313 -0
- package/src/agents/specific_instructions/ai_engineer/phases.md +1011 -0
- package/src/agents/specific_instructions/ai_engineer/prompt_lab.md +161 -0
- package/src/agents/specific_instructions/ai_engineer/prompt_lab_ui_mode.md +28 -0
- package/src/agents/specific_instructions/ai_engineer/research.md +393 -0
- package/src/agents/specific_instructions/ai_engineer/research_ui_mode.md +66 -0
- package/src/agents/specific_instructions/ai_engineer/review.md +159 -0
- package/src/agents/specific_instructions/ai_engineer/validation_checklist.md +182 -0
- package/src/agents/specific_instructions/analytics_engineer/advise.md +155 -0
- package/src/agents/specific_instructions/analytics_engineer/bi_engineer_handoff.md +91 -0
- package/src/agents/specific_instructions/analytics_engineer/data_analyst_handoff.md +84 -0
- package/src/agents/specific_instructions/analytics_engineer/deep_phases.md +818 -0
- package/src/agents/specific_instructions/analytics_engineer/phases_deep/index.md +24 -0
- package/src/agents/specific_instructions/analytics_engineer/phases_deep/phase-1.md +77 -0
- package/src/agents/specific_instructions/analytics_engineer/phases_deep/phase-2.md +106 -0
- package/src/agents/specific_instructions/analytics_engineer/phases_deep/phase-3.md +93 -0
- package/src/agents/specific_instructions/analytics_engineer/phases_deep/phase-4.md +79 -0
- package/src/agents/specific_instructions/analytics_engineer/phases_deep/phase-5.md +61 -0
- package/src/agents/specific_instructions/analytics_engineer/phases_deep/phase-6.md +45 -0
- package/src/agents/specific_instructions/analytics_engineer/phases_deep/phase-7.md +235 -0
- package/src/agents/specific_instructions/analytics_engineer/phases_deep/phase-8.md +221 -0
- package/src/agents/specific_instructions/analytics_engineer/phases_quick/index.md +19 -0
- package/src/agents/specific_instructions/analytics_engineer/phases_quick/phase-1.md +47 -0
- package/src/agents/specific_instructions/analytics_engineer/phases_quick/phase-2.md +78 -0
- package/src/agents/specific_instructions/analytics_engineer/quick_phases.md +112 -0
- package/src/agents/specific_instructions/analytics_engineer/review.md +167 -0
- package/src/agents/specific_instructions/analytics_engineer/service_mode.md +369 -0
- package/src/agents/specific_instructions/analytics_engineer/ui_mode.md +45 -0
- package/src/agents/specific_instructions/analytics_engineer/update.md +162 -0
- package/src/agents/specific_instructions/analytics_engineer/validation_checklist.md +121 -0
- package/src/agents/specific_instructions/applied_ml_scientist/advise.md +143 -0
- package/src/agents/specific_instructions/applied_ml_scientist/phases/index.md +21 -0
- package/src/agents/specific_instructions/applied_ml_scientist/phases/phase-1.md +51 -0
- package/src/agents/specific_instructions/applied_ml_scientist/phases/phase-2.md +66 -0
- package/src/agents/specific_instructions/applied_ml_scientist/phases/phase-3.md +113 -0
- package/src/agents/specific_instructions/applied_ml_scientist/phases/phase-4.md +104 -0
- package/src/agents/specific_instructions/applied_ml_scientist/phases/phase-5.md +156 -0
- package/src/agents/specific_instructions/applied_ml_scientist/phases.md +428 -0
- package/src/agents/specific_instructions/applied_ml_scientist/research.md +379 -0
- package/src/agents/specific_instructions/applied_ml_scientist/review.md +142 -0
- package/src/agents/specific_instructions/applied_ml_scientist/validation_checklist.md +136 -0
- package/src/agents/specific_instructions/backend_engineer/clean.md +149 -0
- package/src/agents/specific_instructions/backend_engineer/review.md +91 -0
- package/src/agents/specific_instructions/backend_engineer/review_checklist.md +54 -0
- package/src/agents/specific_instructions/backend_engineer/service_mode.md +67 -0
- package/src/agents/specific_instructions/bi_engineer/advise.md +137 -0
- package/src/agents/specific_instructions/bi_engineer/data_analyst_handoff.md +77 -0
- package/src/agents/specific_instructions/bi_engineer/incoming_handoff.md +45 -0
- package/src/agents/specific_instructions/bi_engineer/phases/index.md +20 -0
- package/src/agents/specific_instructions/bi_engineer/phases/phase-1.md +164 -0
- package/src/agents/specific_instructions/bi_engineer/phases/phase-2.md +92 -0
- package/src/agents/specific_instructions/bi_engineer/phases/phase-3.md +121 -0
- package/src/agents/specific_instructions/bi_engineer/phases/phase-4.md +106 -0
- package/src/agents/specific_instructions/bi_engineer/phases.md +451 -0
- package/src/agents/specific_instructions/bi_engineer/review.md +166 -0
- package/src/agents/specific_instructions/bi_engineer/update.md +147 -0
- package/src/agents/specific_instructions/bi_engineer/validation_checklist.md +124 -0
- package/src/agents/specific_instructions/data_analyst/advise.md +138 -0
- package/src/agents/specific_instructions/data_analyst/explain.md +221 -0
- package/src/agents/specific_instructions/data_analyst/incoming_handoff.md +40 -0
- package/src/agents/specific_instructions/data_analyst/phases/index.md +20 -0
- package/src/agents/specific_instructions/data_analyst/phases/phase-1.md +159 -0
- package/src/agents/specific_instructions/data_analyst/phases/phase-2.md +112 -0
- package/src/agents/specific_instructions/data_analyst/phases/phase-3.md +265 -0
- package/src/agents/specific_instructions/data_analyst/phases/phase-4.md +100 -0
- package/src/agents/specific_instructions/data_analyst/phases.md +501 -0
- package/src/agents/specific_instructions/data_analyst/review.md +138 -0
- package/src/agents/specific_instructions/data_analyst/ui_mode.md +26 -0
- package/src/agents/specific_instructions/data_analyst/update.md +144 -0
- package/src/agents/specific_instructions/data_analyst/validation_checklist.md +95 -0
- package/src/agents/specific_instructions/data_engineer/advise.md +137 -0
- package/src/agents/specific_instructions/data_engineer/phases.md +466 -0
- package/src/agents/specific_instructions/data_engineer/phases_deep/index.md +23 -0
- package/src/agents/specific_instructions/data_engineer/phases_deep/phase-1.md +49 -0
- package/src/agents/specific_instructions/data_engineer/phases_deep/phase-2.md +93 -0
- package/src/agents/specific_instructions/data_engineer/phases_deep/phase-3.md +55 -0
- package/src/agents/specific_instructions/data_engineer/phases_deep/phase-4.md +48 -0
- package/src/agents/specific_instructions/data_engineer/phases_deep/phase-5.md +40 -0
- package/src/agents/specific_instructions/data_engineer/phases_deep/phase-6.md +102 -0
- package/src/agents/specific_instructions/data_engineer/phases_deep/phase-7.md +87 -0
- package/src/agents/specific_instructions/data_engineer/phases_quick/index.md +19 -0
- package/src/agents/specific_instructions/data_engineer/phases_quick/phase-1.md +45 -0
- package/src/agents/specific_instructions/data_engineer/phases_quick/phase-2.md +54 -0
- package/src/agents/specific_instructions/data_engineer/review.md +135 -0
- package/src/agents/specific_instructions/data_engineer/validation_checklist.md +136 -0
- package/src/agents/specific_instructions/data_modeller/advise.md +137 -0
- package/src/agents/specific_instructions/data_modeller/phases.md +581 -0
- package/src/agents/specific_instructions/data_modeller/phases_deep/index.md +23 -0
- package/src/agents/specific_instructions/data_modeller/phases_deep/phase-1.md +52 -0
- package/src/agents/specific_instructions/data_modeller/phases_deep/phase-2.md +113 -0
- package/src/agents/specific_instructions/data_modeller/phases_deep/phase-3.md +47 -0
- package/src/agents/specific_instructions/data_modeller/phases_deep/phase-4.md +51 -0
- package/src/agents/specific_instructions/data_modeller/phases_deep/phase-5.md +45 -0
- package/src/agents/specific_instructions/data_modeller/phases_deep/phase-6.md +105 -0
- package/src/agents/specific_instructions/data_modeller/phases_deep/phase-7.md +136 -0
- package/src/agents/specific_instructions/data_modeller/phases_quick/index.md +19 -0
- package/src/agents/specific_instructions/data_modeller/phases_quick/phase-1.md +47 -0
- package/src/agents/specific_instructions/data_modeller/phases_quick/phase-2.md +65 -0
- package/src/agents/specific_instructions/data_modeller/review.md +141 -0
- package/src/agents/specific_instructions/data_modeller/service_mode.md +218 -0
- package/src/agents/specific_instructions/data_modeller/validation_checklist.md +125 -0
- package/src/agents/specific_instructions/data_scientist/advise.md +158 -0
- package/src/agents/specific_instructions/data_scientist/bi_engineer_handoff.md +63 -0
- package/src/agents/specific_instructions/data_scientist/experiment.md +482 -0
- package/src/agents/specific_instructions/data_scientist/experiment_ui_mode.md +44 -0
- package/src/agents/specific_instructions/data_scientist/explain.md +247 -0
- package/src/agents/specific_instructions/data_scientist/greenfield_data.md +35 -0
- package/src/agents/specific_instructions/data_scientist/ml_engineer_handoff.md +52 -0
- package/src/agents/specific_instructions/data_scientist/notebook_walkthrough.md +76 -0
- package/src/agents/specific_instructions/data_scientist/phases/index.md +24 -0
- package/src/agents/specific_instructions/data_scientist/phases/phase-1.md +45 -0
- package/src/agents/specific_instructions/data_scientist/phases/phase-2.md +67 -0
- package/src/agents/specific_instructions/data_scientist/phases/phase-3.md +89 -0
- package/src/agents/specific_instructions/data_scientist/phases/phase-4.md +143 -0
- package/src/agents/specific_instructions/data_scientist/phases/phase-5.md +71 -0
- package/src/agents/specific_instructions/data_scientist/phases/phase-6.md +239 -0
- package/src/agents/specific_instructions/data_scientist/phases/phase-7.md +207 -0
- package/src/agents/specific_instructions/data_scientist/phases.md +651 -0
- package/src/agents/specific_instructions/data_scientist/research.md +345 -0
- package/src/agents/specific_instructions/data_scientist/research_ui_mode.md +52 -0
- package/src/agents/specific_instructions/data_scientist/review.md +136 -0
- package/src/agents/specific_instructions/data_scientist/service_mode.md +247 -0
- package/src/agents/specific_instructions/data_scientist/validation_checklist.md +183 -0
- package/src/agents/specific_instructions/deep_learning_engineer/advise.md +145 -0
- package/src/agents/specific_instructions/deep_learning_engineer/phases/index.md +21 -0
- package/src/agents/specific_instructions/deep_learning_engineer/phases/phase-1.md +74 -0
- package/src/agents/specific_instructions/deep_learning_engineer/phases/phase-2.md +98 -0
- package/src/agents/specific_instructions/deep_learning_engineer/phases/phase-3.md +76 -0
- package/src/agents/specific_instructions/deep_learning_engineer/phases/phase-4.md +128 -0
- package/src/agents/specific_instructions/deep_learning_engineer/phases/phase-5.md +292 -0
- package/src/agents/specific_instructions/deep_learning_engineer/phases.md +567 -0
- package/src/agents/specific_instructions/deep_learning_engineer/research.md +389 -0
- package/src/agents/specific_instructions/deep_learning_engineer/review.md +155 -0
- package/src/agents/specific_instructions/deep_learning_engineer/validation_checklist.md +147 -0
- package/src/agents/specific_instructions/ml_engineer/advise.md +174 -0
- package/src/agents/specific_instructions/ml_engineer/bi_engineer_handoff.md +71 -0
- package/src/agents/specific_instructions/ml_engineer/experiment.md +474 -0
- package/src/agents/specific_instructions/ml_engineer/experiment_ui_mode.md +44 -0
- package/src/agents/specific_instructions/ml_engineer/notebook_walkthrough.md +75 -0
- package/src/agents/specific_instructions/ml_engineer/phases/index.md +25 -0
- package/src/agents/specific_instructions/ml_engineer/phases/phase-1.md +49 -0
- package/src/agents/specific_instructions/ml_engineer/phases/phase-2.md +75 -0
- package/src/agents/specific_instructions/ml_engineer/phases/phase-3.md +124 -0
- package/src/agents/specific_instructions/ml_engineer/phases/phase-4.md +279 -0
- package/src/agents/specific_instructions/ml_engineer/phases/phase-5.md +160 -0
- package/src/agents/specific_instructions/ml_engineer/phases/phase-6-5.md +170 -0
- package/src/agents/specific_instructions/ml_engineer/phases/phase-6.md +295 -0
- package/src/agents/specific_instructions/ml_engineer/phases/phase-7.md +337 -0
- package/src/agents/specific_instructions/ml_engineer/phases.md +1068 -0
- package/src/agents/specific_instructions/ml_engineer/research.md +437 -0
- package/src/agents/specific_instructions/ml_engineer/research_ui_mode.md +71 -0
- package/src/agents/specific_instructions/ml_engineer/review.md +187 -0
- package/src/agents/specific_instructions/ml_engineer/service_mode.md +273 -0
- package/src/agents/specific_instructions/ml_engineer/validation_checklist.md +185 -0
- package/src/agents/specific_instructions/mlops_engineer/advise.md +139 -0
- package/src/agents/specific_instructions/mlops_engineer/phases/index.md +23 -0
- package/src/agents/specific_instructions/mlops_engineer/phases/phase-1.md +52 -0
- package/src/agents/specific_instructions/mlops_engineer/phases/phase-2.md +86 -0
- package/src/agents/specific_instructions/mlops_engineer/phases/phase-3.md +105 -0
- package/src/agents/specific_instructions/mlops_engineer/phases/phase-4.md +128 -0
- package/src/agents/specific_instructions/mlops_engineer/phases/phase-5.md +106 -0
- package/src/agents/specific_instructions/mlops_engineer/phases/phase-6.md +128 -0
- package/src/agents/specific_instructions/mlops_engineer/phases/phase-7.md +144 -0
- package/src/agents/specific_instructions/mlops_engineer/phases.md +671 -0
- package/src/agents/specific_instructions/mlops_engineer/review.md +164 -0
- package/src/agents/specific_instructions/mlops_engineer/service_mode.md +81 -0
- package/src/agents/specific_instructions/mlops_engineer/validation_checklist.md +151 -0
- package/src/agents/specific_instructions/researcher/critical_review.md +292 -0
- package/src/agents/specific_instructions/researcher/review_checklist.md +67 -0
- package/src/agents/specific_instructions/researcher/service_mode.md +224 -0
- package/src/agents/specific_instructions/shared/auto_verify_mode.md +141 -0
- package/src/agents/specific_instructions/shared/autonomous_research.md +1289 -0
- package/src/agents/specific_instructions/shared/behavioral_rules.md +36 -0
- package/src/agents/specific_instructions/shared/diverge_protocol.md +387 -0
- package/src/agents/specific_instructions/shared/engineering_guidelines.md +136 -0
- package/src/agents/specific_instructions/shared/experiment_versioning.md +184 -0
- package/src/agents/specific_instructions/shared/goal_mode.md +187 -0
- package/src/agents/specific_instructions/shared/incremental_testing.md +139 -0
- package/src/agents/specific_instructions/shared/intent_discovery.md +223 -0
- package/src/agents/specific_instructions/shared/join_path_protocol.md +168 -0
- package/src/agents/specific_instructions/shared/knowledge_checkpoint.md +83 -0
- package/src/agents/specific_instructions/shared/knowledge_harvest.md +220 -0
- package/src/agents/specific_instructions/shared/knowledge_retrieval.md +100 -0
- package/src/agents/specific_instructions/shared/notebook_walkthrough_protocol.md +367 -0
- package/src/agents/specific_instructions/shared/reviewer_verdict_protocol.md +74 -0
- package/src/agents/specific_instructions/shared/swarm_protocol.md +97 -0
- package/src/agents/specific_instructions/shared/validation_protocol.md +139 -0
- package/src/agents/specific_instructions/syn/arbiter.md +140 -0
- package/src/agents/specific_instructions/syn/brainstorm.md +550 -0
- package/src/agents/specific_instructions/syn/code_review.md +232 -0
- package/src/agents/specific_instructions/syn/diff.md +239 -0
- package/src/agents/specific_instructions/syn/final_review.md +65 -0
- package/src/agents/specific_instructions/syn/fixer.md +240 -0
- package/src/agents/specific_instructions/syn/free_form.md +130 -0
- package/src/agents/specific_instructions/syn/knowledge.md +468 -0
- package/src/agents/specific_instructions/syn/notebook_walkthrough.md +78 -0
- package/src/agents/specific_instructions/syn/panel_review.md +634 -0
- package/src/agents/specific_instructions/syn/pm.md +453 -0
- package/src/agents/specific_instructions/syn/pr_review.md +255 -0
- package/src/agents/specific_instructions/syn/slides.md +417 -0
- package/src/agents/syn.md +729 -0
- package/src/commands/academic.md +41 -0
- package/src/commands/ai-engineer.md +45 -0
- package/src/commands/analytics-engineer.md +48 -0
- package/src/commands/applied-ml-scientist.md +45 -0
- package/src/commands/backend-engineer.md +35 -0
- package/src/commands/bi-engineer.md +40 -0
- package/src/commands/brainstorm.md +24 -0
- package/src/commands/data-analyst.md +38 -0
- package/src/commands/data-engineer.md +37 -0
- package/src/commands/data-modeller.md +38 -0
- package/src/commands/data-scientist.md +38 -0
- package/src/commands/deep-learning-engineer.md +47 -0
- package/src/commands/end.md +49 -0
- package/src/commands/knowledge.md +24 -0
- package/src/commands/ml-engineer.md +42 -0
- package/src/commands/mlops-engineer.md +47 -0
- package/src/commands/notebook-walkthrough.md +58 -0
- package/src/commands/researcher.md +40 -0
- package/src/commands/resume.md +57 -0
- package/src/commands/review-pr.md +26 -0
- package/src/commands/shards-guide.md +41 -0
- package/src/commands/shards-ui.md +32 -0
- package/src/commands/shards.md +41 -0
- package/src/docs/01-getting-started/concepts.md +109 -0
- package/src/docs/01-getting-started/first-session.md +79 -0
- package/src/docs/01-getting-started/install.md +61 -0
- package/src/docs/02-agents/academic.md +71 -0
- package/src/docs/02-agents/ai-engineer.md +78 -0
- package/src/docs/02-agents/analytics-engineer.md +58 -0
- package/src/docs/02-agents/applied-ml-scientist.md +59 -0
- package/src/docs/02-agents/backend-engineer.md +58 -0
- package/src/docs/02-agents/bi-engineer.md +65 -0
- package/src/docs/02-agents/data-analyst.md +67 -0
- package/src/docs/02-agents/data-engineer.md +57 -0
- package/src/docs/02-agents/data-modeller.md +51 -0
- package/src/docs/02-agents/data-scientist.md +78 -0
- package/src/docs/02-agents/deep-learning-engineer.md +64 -0
- package/src/docs/02-agents/ml-engineer.md +80 -0
- package/src/docs/02-agents/mlops-engineer.md +59 -0
- package/src/docs/02-agents/overview.md +62 -0
- package/src/docs/02-agents/researcher.md +73 -0
- package/src/docs/02-agents/syn.md +88 -0
- package/src/docs/03-protocols/auto-verify.md +82 -0
- package/src/docs/03-protocols/autonomous-research.md +59 -0
- package/src/docs/03-protocols/behavioral-rules.md +35 -0
- package/src/docs/03-protocols/diverge.md +50 -0
- package/src/docs/03-protocols/engineering-guidelines.md +56 -0
- package/src/docs/03-protocols/experiment-versioning.md +38 -0
- package/src/docs/03-protocols/gate-pattern.md +65 -0
- package/src/docs/03-protocols/incremental-testing.md +68 -0
- package/src/docs/03-protocols/join-path.md +46 -0
- package/src/docs/03-protocols/knowledge-ledger.md +70 -0
- package/src/docs/03-protocols/reviewer-verdicts.md +39 -0
- package/src/docs/03-protocols/swarm.md +40 -0
- package/src/docs/03-protocols/validation.md +174 -0
- package/src/docs/04-ui/activity-bar.md +70 -0
- package/src/docs/04-ui/chat-pane.md +80 -0
- package/src/docs/04-ui/code-intel.md +62 -0
- package/src/docs/04-ui/file-editing.md +61 -0
- package/src/docs/04-ui/git.md +54 -0
- package/src/docs/04-ui/keybindings.md +79 -0
- package/src/docs/04-ui/knowledge-map.md +76 -0
- package/src/docs/04-ui/overview.md +93 -0
- package/src/docs/04-ui/panels.md +49 -0
- package/src/docs/04-ui/pinboard-selection.md +66 -0
- package/src/docs/04-ui/quick-open-palette.md +56 -0
- package/src/docs/04-ui/sessions.md +81 -0
- package/src/docs/04-ui/settings-permissions.md +56 -0
- package/src/docs/05-commands/reference.md +59 -0
- package/src/docs/06-outputs/directory-map.md +116 -0
- package/src/docs/07-workflows/ai-eval-first.md +57 -0
- package/src/docs/07-workflows/deep-study-to-production.md +76 -0
- package/src/docs/07-workflows/diverge-exploration.md +77 -0
- package/src/docs/07-workflows/quick-analysis.md +45 -0
- package/src/docs/08-integrations/claude-code-auto-mode.md +191 -0
- package/src/docs/08-integrations/google-slides.md +175 -0
- package/src/docs/README.md +30 -0
- package/src/docs/manifest.json +108 -0
- package/src/templates/analysis-template.md +20 -0
- package/src/templates/branch-report.md +46 -0
- package/src/templates/diff-report.md +88 -0
- package/src/templates/knowledge-index.md +7 -0
- package/src/templates/model-card-schema.json +186 -0
- package/src/templates/model-card-schema.md +88 -0
- package/src/templates/model-card.md +124 -0
- package/src/templates/project-plan.md +47 -0
- package/src/templates/project-specs.md +81 -0
- package/src/templates/report-template.md +43 -0
- package/src/templates/study-template.md +25 -0
- package/src/ui/cc-readonly.js +181 -0
- package/src/ui/chat-session.js +466 -0
- package/src/ui/css/base.css +136 -0
- package/src/ui/css/brainstorm.css +525 -0
- package/src/ui/css/chat.css +1405 -0
- package/src/ui/css/editor.css +546 -0
- package/src/ui/css/eval-dashboard.css +157 -0
- package/src/ui/css/experiment.css +237 -0
- package/src/ui/css/guide.css +186 -0
- package/src/ui/css/knowledge-map.css +383 -0
- package/src/ui/css/layout.css +431 -0
- package/src/ui/css/model-card.css +161 -0
- package/src/ui/css/notebook-walkthrough.css +271 -0
- package/src/ui/css/pr-review.css +403 -0
- package/src/ui/css/prompt-lab.css +325 -0
- package/src/ui/css/sessions.css +258 -0
- package/src/ui/css/sidebar.css +661 -0
- package/src/ui/css/terminal.css +113 -0
- package/src/ui/css/theme-light.css +542 -0
- package/src/ui/index.html +389 -0
- package/src/ui/js/agents.js +32 -0
- package/src/ui/js/bookmarks.js +230 -0
- package/src/ui/js/chat.js +1776 -0
- package/src/ui/js/code-intel.js +328 -0
- package/src/ui/js/command-palette.js +142 -0
- package/src/ui/js/events.js +591 -0
- package/src/ui/js/explorer.js +317 -0
- package/src/ui/js/file-view.js +477 -0
- package/src/ui/js/git.js +536 -0
- package/src/ui/js/guide.js +198 -0
- package/src/ui/js/hud.js +75 -0
- package/src/ui/js/init.js +351 -0
- package/src/ui/js/knowledge-map.js +906 -0
- package/src/ui/js/markdown.js +114 -0
- package/src/ui/js/monaco.js +164 -0
- package/src/ui/js/notebook-walkthrough.js +272 -0
- package/src/ui/js/notebook.js +448 -0
- package/src/ui/js/panels.js +2681 -0
- package/src/ui/js/pinboard.js +186 -0
- package/src/ui/js/quick-open.js +164 -0
- package/src/ui/js/selection-context.js +131 -0
- package/src/ui/js/sessions.js +256 -0
- package/src/ui/js/settings.js +476 -0
- package/src/ui/js/split-view.js +82 -0
- package/src/ui/js/state.js +343 -0
- package/src/ui/js/table.js +161 -0
- package/src/ui/js/tabs.js +284 -0
- package/src/ui/js/tabular.js +125 -0
- package/src/ui/js/terminal.js +354 -0
- package/src/ui/js/timeline.js +137 -0
- package/src/ui/js/utils.js +293 -0
- package/src/ui/notebook-kernel.py +790 -0
- package/src/ui/open-browser.js +55 -0
- package/src/ui/permission-pattern.js +42 -0
- package/src/ui/relay.js +513 -0
- package/src/ui/server.js +3072 -0
- package/src/ui/session-index.js +225 -0
- package/src/ui/shards_icon.png +0 -0
- package/src/ui/spawn-server.js +41 -0
- package/src/ui/symbol-index.js +813 -0
- package/src/ui/ui-push.js +177 -0
- package/tools/gate-hook/VALIDATION_SPEC.md +273 -0
- package/tools/gate-hook/__tests__/auto-verify.test.js +343 -0
- package/tools/gate-hook/auto-allowlist.js +179 -0
- package/tools/gate-hook/auto-state.js +68 -0
- package/tools/gate-hook/classify.js +21 -0
- package/tools/gate-hook/log.js +57 -0
- package/tools/gate-hook/parser.js +205 -0
- package/tools/gate-hook/sql-guard.js +230 -0
- package/tools/gate-hook/state.js +170 -0
- package/tools/gate-hook/sweep.js +139 -0
- package/tools/gate-hook/transcript.js +45 -0
- package/tools/gate-hook/validation.js +321 -0
- package/tools/gate-hook.js +475 -0
- package/tools/install.js +914 -0
- package/tools/shards-gates.js +311 -0
- package/tools/shards-sessions.js +261 -0
- package/tools/shards-ui.js +377 -0
|
@@ -0,0 +1,550 @@
|
|
|
1
|
+
# Syn Brainstorm Mode
|
|
2
|
+
|
|
3
|
+
This file is read by Syn when the user selects `[B]` from the activation menu or
|
|
4
|
+
runs `/brainstorm` directly. Follow every phase and gate below exactly.
|
|
5
|
+
|
|
6
|
+
You remain Syn throughout — no persona transfer, no specialist handoff. This is
|
|
7
|
+
facilitated exploration, not execution.
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## Phase 0 — Problem Intake
|
|
12
|
+
|
|
13
|
+
Ask for the user's initial idea or problem statement first — one question, nothing more.
|
|
14
|
+
As soon as they respond with any description (even vague), do three things immediately:
|
|
15
|
+
|
|
16
|
+
1. Derive a short `<project_name>` slug from their response (lowercase, hyphens, no spaces).
|
|
17
|
+
2. Create `brainstorm/brainstorm_<project_name>.md` with this header:
|
|
18
|
+
|
|
19
|
+
```markdown
|
|
20
|
+
# Brainstorm: {{PROJECT_NAME}}
|
|
21
|
+
- **Created:** {{DATE}}
|
|
22
|
+
- **Status:** Exploring
|
|
23
|
+
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
## Initial Idea
|
|
27
|
+
|
|
28
|
+
<paste the user's exact words here>
|
|
29
|
+
|
|
30
|
+
---
|
|
31
|
+
|
|
32
|
+
## Context
|
|
33
|
+
|
|
34
|
+
<!-- filled in as Syn gathers intake -->
|
|
35
|
+
|
|
36
|
+
---
|
|
37
|
+
|
|
38
|
+
## Domain Input
|
|
39
|
+
|
|
40
|
+
<!-- Syn appends each specialist's response here as it arrives -->
|
|
41
|
+
|
|
42
|
+
---
|
|
43
|
+
|
|
44
|
+
## Synthesis
|
|
45
|
+
|
|
46
|
+
<!-- Syn appends synthesis here after all Task calls complete -->
|
|
47
|
+
|
|
48
|
+
---
|
|
49
|
+
|
|
50
|
+
## Outcome
|
|
51
|
+
|
|
52
|
+
<!-- filled in if a project is started from this session -->
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
3. Create `brainstorm/brainstorm_<project_name>.state.json` — the live state file
|
|
56
|
+
that powers the Shards UI brainstorm panel. Schema:
|
|
57
|
+
|
|
58
|
+
```json
|
|
59
|
+
{
|
|
60
|
+
"mode": "brainstorm",
|
|
61
|
+
"project": "<project_name>",
|
|
62
|
+
"created": "<ISO 8601 timestamp>",
|
|
63
|
+
"phase": "intake",
|
|
64
|
+
"problem": "<initial user idea, verbatim>",
|
|
65
|
+
"context": {
|
|
66
|
+
"environment": null,
|
|
67
|
+
"data": null,
|
|
68
|
+
"compute": null,
|
|
69
|
+
"openness": null
|
|
70
|
+
},
|
|
71
|
+
"specialists": [],
|
|
72
|
+
"synthesis": null,
|
|
73
|
+
"facilitation_log": [],
|
|
74
|
+
"outcome": null
|
|
75
|
+
}
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
This file is rewritten in full at each phase transition and after each specialist
|
|
79
|
+
Task returns. Keep it small (<5 KB) — `headline` fields are one-line previews,
|
|
80
|
+
not full responses. Writes are fire-and-forget: never gate user-visible output
|
|
81
|
+
on the write succeeding, and never surface write errors to the user. If a write
|
|
82
|
+
fails, continue — the brainstorm doc remains the source of truth.
|
|
83
|
+
|
|
84
|
+
All timestamps in the state file are ISO 8601. Generic event timestamps use the
|
|
85
|
+
field name `ts` (e.g., facilitation log entries). Lifecycle timestamps preserve
|
|
86
|
+
their semantic name: `created` (project), `started_at` / `responded_at`
|
|
87
|
+
(specialists), `decided_at` (outcome).
|
|
88
|
+
|
|
89
|
+
Then continue intake — ask the remaining context questions in batches of 2–3:
|
|
90
|
+
|
|
91
|
+
1. **Environment** — What does your team/org look like? (size, infra, cloud vs. on-prem, existing data stack)
|
|
92
|
+
2. **Data availability** — Do you have data? What kind? Rough volume estimate?
|
|
93
|
+
3. **Compute constraints** — GPU access? Cloud budget? Any hard limits?
|
|
94
|
+
4. **Open-endedness** — Should agents stay close to the stated problem, or go completely wild?
|
|
95
|
+
|
|
96
|
+
As each answer arrives, append it to the `## Context` section of the brainstorm doc
|
|
97
|
+
AND update the corresponding field under `context` in the state JSON.
|
|
98
|
+
|
|
99
|
+
After all context is gathered, read the full Context section back to the user.
|
|
100
|
+
|
|
101
|
+
::GATE:: id=specific-instructions-syn-brainstorm-phase0 phase=0 kind=phase
|
|
102
|
+
Do not proceed to Phase 1 until the user confirms the context is right.
|
|
103
|
+
::ENDGATE::
|
|
104
|
+
|
|
105
|
+
---
|
|
106
|
+
|
|
107
|
+
## Phase 1 — Domain Gathering
|
|
108
|
+
|
|
109
|
+
### Specialist selection
|
|
110
|
+
|
|
111
|
+
Select which specialists to call based on problem relevance:
|
|
112
|
+
- **Always call**: data-analyst, data-scientist, ml-engineer, ai-engineer (broad coverage, idea-dense)
|
|
113
|
+
- **Call if data-heavy**: analytics-engineer, data-engineer, data-modeller
|
|
114
|
+
- **Call if visualization/BI**: bi-engineer
|
|
115
|
+
- **Call if novel/research**: applied-ml-scientist, researcher
|
|
116
|
+
- **Call if deployment-focused**: mlops-engineer
|
|
117
|
+
- **Default (open-ended / hack day)**: call ALL specialists
|
|
118
|
+
|
|
119
|
+
### Pre-spawn setup
|
|
120
|
+
|
|
121
|
+
Before issuing any Task calls, do all three steps in a single assistant turn:
|
|
122
|
+
|
|
123
|
+
1. **Update state file** — rewrite `brainstorm/brainstorm_<project_name>.state.json`
|
|
124
|
+
with `phase: "gathering"` and seed the `specialists` array with one entry per
|
|
125
|
+
selected specialist:
|
|
126
|
+
```json
|
|
127
|
+
{
|
|
128
|
+
"id": "data-scientist",
|
|
129
|
+
"name": "data-scientist",
|
|
130
|
+
"kind": "primary",
|
|
131
|
+
"status": "thinking",
|
|
132
|
+
"started_at": "<ISO 8601>",
|
|
133
|
+
"responded_at": null,
|
|
134
|
+
"headline": null,
|
|
135
|
+
"ideas_count": 0
|
|
136
|
+
}
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
The `id` field is the stable key (used for in-place updates); `name` is the
|
|
140
|
+
display label. For the initial primary spawn, `id` and `name` are identical.
|
|
141
|
+
Deep-dive entries (Phase 3) use a distinct `id` and `kind: "deep-dive"` — see
|
|
142
|
+
Phase 3 for the schema.
|
|
143
|
+
|
|
144
|
+
2. **Push the brainstorm panel to the UI** via Bash:
|
|
145
|
+
```
|
|
146
|
+
node .shards/ui/ui-push.js brainstorm \
|
|
147
|
+
--title "Brainstorm: <project_name>" \
|
|
148
|
+
--agent syn \
|
|
149
|
+
--panel-id brainstorm-<project_name> \
|
|
150
|
+
--source brainstorm/brainstorm_<project_name>.state.json
|
|
151
|
+
```
|
|
152
|
+
`ui-push.js` exits silently if the UI isn't running — never gate on its
|
|
153
|
+
success and never surface its output to the user.
|
|
154
|
+
|
|
155
|
+
3. **Announce to the user** (use this verbatim, or a paraphrase that preserves
|
|
156
|
+
the UI-aware framing and the no-panel fallback):
|
|
157
|
+
> "Opening the brainstorm panel and polling every relevant shard in parallel.
|
|
158
|
+
> Watch the room fill up as each one checks in. No panel running? They'll
|
|
159
|
+
> still land in the brainstorm doc as they return."
|
|
160
|
+
|
|
161
|
+
If the previous installation predates the Shards UI, the bash push in step 2
|
|
162
|
+
will no-op silently — the announcement still reads fine because the doc-write
|
|
163
|
+
fallback is real.
|
|
164
|
+
|
|
165
|
+
### Parallel Task spawn
|
|
166
|
+
|
|
167
|
+
**Spawn all selected specialists in parallel.** Issue a single assistant message
|
|
168
|
+
that contains one Task tool call per specialist, all in the same `tool_calls`
|
|
169
|
+
block — i.e., multiple Task invocations emitted together so the runtime executes
|
|
170
|
+
them concurrently (same pattern as PM Mode's execution groups). Do NOT split
|
|
171
|
+
them across multiple assistant turns and do NOT await one before issuing the
|
|
172
|
+
next. The chorus framing requires genuine parallel fan-out; sequential calls
|
|
173
|
+
break the UI experience and the brainstorm semantics.
|
|
174
|
+
|
|
175
|
+
Per-specialist Task call:
|
|
176
|
+
|
|
177
|
+
```
|
|
178
|
+
Task(
|
|
179
|
+
subagent_type="<specialist>",
|
|
180
|
+
prompt="""
|
|
181
|
+
SYN BRAINSTORM CONSULT — Skip your activation menu, skip Phase 0, do not ask
|
|
182
|
+
clarifying questions, do not invoke Syn for review. You are contributing ideas
|
|
183
|
+
to a brainstorm Syn is facilitating, not executing a project.
|
|
184
|
+
|
|
185
|
+
**Problem**: <problem statement>
|
|
186
|
+
**Environment**: <env context>
|
|
187
|
+
**Data available**: <data context>
|
|
188
|
+
**Compute**: <compute context>
|
|
189
|
+
|
|
190
|
+
From your domain's perspective, give 2–3 ideas that could address this problem.
|
|
191
|
+
For each idea:
|
|
192
|
+
- **Name**: short label
|
|
193
|
+
- **Approach**: what you'd actually do
|
|
194
|
+
- **Data/resources needed**: what's required to start
|
|
195
|
+
- **Complexity**: Low / Medium / High
|
|
196
|
+
- **Your push**: why you'd personally advocate for this angle
|
|
197
|
+
|
|
198
|
+
Then give one **Wildcard**: something unexpected or non-obvious from your domain
|
|
199
|
+
that the user probably hasn't considered.
|
|
200
|
+
|
|
201
|
+
Keep it tight. No preamble. Just ideas.
|
|
202
|
+
|
|
203
|
+
At the very end of your response, on a single line, emit:
|
|
204
|
+
HEADLINE: <one-line preview of your strongest idea, ≤120 chars>
|
|
205
|
+
|
|
206
|
+
Syn parses this line to populate the brainstorm UI panel — do not omit it.
|
|
207
|
+
"""
|
|
208
|
+
)
|
|
209
|
+
```
|
|
210
|
+
|
|
211
|
+
### As each specialist Task returns
|
|
212
|
+
|
|
213
|
+
For **every** specialist response, immediately do both:
|
|
214
|
+
|
|
215
|
+
1. Append the full response to `brainstorm/brainstorm_<project_name>.md` under
|
|
216
|
+
`## Domain Input`:
|
|
217
|
+
```markdown
|
|
218
|
+
### <Specialist Name>
|
|
219
|
+
|
|
220
|
+
<specialist response verbatim>
|
|
221
|
+
```
|
|
222
|
+
|
|
223
|
+
2. Rewrite `brainstorm/brainstorm_<project_name>.state.json` with that
|
|
224
|
+
specialist's entry (matched by `id`) updated:
|
|
225
|
+
- `status: "responded"`
|
|
226
|
+
- `responded_at: "<ISO 8601>"`
|
|
227
|
+
- `headline: "<value parsed from the HEADLINE: line>"`
|
|
228
|
+
- `ideas_count: <count of named ideas, integer>`
|
|
229
|
+
|
|
230
|
+
Other specialists' entries stay as-is. The file watcher in the UI server
|
|
231
|
+
re-renders the panel on every write.
|
|
232
|
+
|
|
233
|
+
**HEADLINE parsing rules:**
|
|
234
|
+
- Look for the last line matching `^HEADLINE:\s*(.+)$`. Strip and trim to ≤120 chars.
|
|
235
|
+
- If absent or empty, derive a fallback headline by taking the first idea's
|
|
236
|
+
**Name** field, truncated to ≤120 chars. Set `headline` to that fallback
|
|
237
|
+
and do NOT re-task the specialist over a missing HEADLINE — the response is
|
|
238
|
+
still valid.
|
|
239
|
+
- If no named idea can be parsed either, set `headline: "(response received — see brainstorm doc)"`.
|
|
240
|
+
- `ideas_count` counts lines or sections matching the `**Name**:` pattern.
|
|
241
|
+
If parsing is ambiguous, default to `1` rather than `0`.
|
|
242
|
+
|
|
243
|
+
Do not wait for all specialists to finish before updating — the brainstorm doc
|
|
244
|
+
and state file are the living memory of the session.
|
|
245
|
+
|
|
246
|
+
---
|
|
247
|
+
|
|
248
|
+
## Phase 2 — Synthesis
|
|
249
|
+
|
|
250
|
+
Read all domain inputs and synthesize across them. Structure your synthesis as:
|
|
251
|
+
|
|
252
|
+
- **Quick wins** — low complexity, data-ready ideas that could ship fast
|
|
253
|
+
- **Bold bets** — high-complexity, high-payoff approaches
|
|
254
|
+
- **Wild cards** — novel directions that reframe the problem entirely
|
|
255
|
+
- **Emerging themes** — patterns that appeared across multiple specialists
|
|
256
|
+
|
|
257
|
+
Append the synthesis to `brainstorm/brainstorm_<project_name>.md` under `## Synthesis`.
|
|
258
|
+
|
|
259
|
+
Then rewrite `brainstorm/brainstorm_<project_name>.state.json` with
|
|
260
|
+
`phase: "synthesis"` and the `synthesis` field populated:
|
|
261
|
+
|
|
262
|
+
```json
|
|
263
|
+
"synthesis": {
|
|
264
|
+
"quick_wins": [{"title": "...", "rationale": "..."}],
|
|
265
|
+
"bold_bets": [{"title": "...", "rationale": "..."}],
|
|
266
|
+
"wildcards": [{"title": "...", "rationale": "..."}],
|
|
267
|
+
"themes": ["..."],
|
|
268
|
+
"recommended_start": "<idea title>",
|
|
269
|
+
"recommendation_rationale": "<one sentence>"
|
|
270
|
+
}
|
|
271
|
+
```
|
|
272
|
+
|
|
273
|
+
Present the synthesis to the user. End with Syn's own recommended starting point
|
|
274
|
+
and a one-sentence rationale for it.
|
|
275
|
+
|
|
276
|
+
No gate after Phase 2 — move directly into Phase 3.
|
|
277
|
+
|
|
278
|
+
---
|
|
279
|
+
|
|
280
|
+
## Phase 3 — Facilitation
|
|
281
|
+
|
|
282
|
+
Open the floor. The user drives from here — this is exploratory conversation,
|
|
283
|
+
not phased execution.
|
|
284
|
+
|
|
285
|
+
**State file maintenance during facilitation.** On entering Phase 3, set
|
|
286
|
+
`phase: "facilitation"` in the state file. As facilitation proceeds, append a
|
|
287
|
+
new entry to `facilitation_log` after each meaningful turn:
|
|
288
|
+
|
|
289
|
+
```json
|
|
290
|
+
{"ts": "<ISO 8601>", "actor": "user|syn|<specialist>", "text": "<≤200 chars summary>"}
|
|
291
|
+
```
|
|
292
|
+
|
|
293
|
+
Keep entries short — this is a summary log for the UI panel, not the full
|
|
294
|
+
transcript. The brainstorm doc remains the source of truth for full content.
|
|
295
|
+
|
|
296
|
+
Respond to any of the following naturally:
|
|
297
|
+
|
|
298
|
+
- **"Tell me more about [idea]"** → Call that specialist via Task for a deeper dive.
|
|
299
|
+
Use the same problem context but ask them to elaborate on the specific idea.
|
|
300
|
+
Append their response to the `## Domain Input` section under a subsection
|
|
301
|
+
`### <Specialist Name> — Deep Dive: <idea name>`.
|
|
302
|
+
|
|
303
|
+
Also append a new entry to `specialists` in the state file:
|
|
304
|
+
```json
|
|
305
|
+
{
|
|
306
|
+
"id": "<specialist>-deep-<short-slug-of-idea>",
|
|
307
|
+
"name": "<specialist> (deep dive)",
|
|
308
|
+
"kind": "deep-dive",
|
|
309
|
+
"parent_id": "<specialist>",
|
|
310
|
+
"status": "responded",
|
|
311
|
+
"started_at": "<ISO 8601>",
|
|
312
|
+
"responded_at": "<ISO 8601>",
|
|
313
|
+
"headline": "Deep dive: <idea name>",
|
|
314
|
+
"ideas_count": 1
|
|
315
|
+
}
|
|
316
|
+
```
|
|
317
|
+
This makes the deep dive visible in the UI panel without overwriting the
|
|
318
|
+
original specialist card. The stable `id` prevents collisions when the same
|
|
319
|
+
specialist is asked for multiple deep dives.
|
|
320
|
+
|
|
321
|
+
- **"I want to pursue this"** → First, ask one clarifying question before acting:
|
|
322
|
+
|
|
323
|
+
> "Are you thinking one focused project, or does this feel like multiple workstreams
|
|
324
|
+
> (e.g., a data pipeline AND a model on top of it)?"
|
|
325
|
+
|
|
326
|
+
**If single workstream:** existing behavior unchanged —
|
|
327
|
+
1. Append to `## Outcome` in the brainstorm doc:
|
|
328
|
+
```markdown
|
|
329
|
+
**Decision:** Escalated to execution
|
|
330
|
+
**Chosen direction:** <idea name>
|
|
331
|
+
**Date:** {{DATE}}
|
|
332
|
+
**Target directory:** <expected project directory>
|
|
333
|
+
```
|
|
334
|
+
2. Update the state file `outcome` field:
|
|
335
|
+
```json
|
|
336
|
+
"outcome": {
|
|
337
|
+
"decision": "single",
|
|
338
|
+
"direction": "<idea name>",
|
|
339
|
+
"target_dir": "<expected project directory>",
|
|
340
|
+
"decided_at": "<ISO 8601>"
|
|
341
|
+
}
|
|
342
|
+
```
|
|
343
|
+
3. Move `brainstorm/brainstorm_<project_name>.md` AND the
|
|
344
|
+
`brainstorm/brainstorm_<project_name>.state.json` sidecar into the project
|
|
345
|
+
directory once it is created during Project Initialization. If the project
|
|
346
|
+
directory does not exist yet, leave both files in place and note the move
|
|
347
|
+
as a TODO in the Outcome section — move them after Syn creates the directory.
|
|
348
|
+
4. Then treat this as a fresh `[T]` request. Route to the appropriate specialist
|
|
349
|
+
and begin Project Initialization.
|
|
350
|
+
|
|
351
|
+
**If multiple workstreams:** proceed with the multi-workstream flow:
|
|
352
|
+
|
|
353
|
+
**Step 1 — identify all workstreams.** For each component the user names, fill in:
|
|
354
|
+
- **Workstream name** (short label)
|
|
355
|
+
- **Chosen idea** (which brainstorm idea it maps to)
|
|
356
|
+
- **Specialist** (which shard owns it)
|
|
357
|
+
- **Dependency** (does it depend on another workstream completing first?)
|
|
358
|
+
- **Definition of done** (one sentence — what does shipped look like?)
|
|
359
|
+
|
|
360
|
+
Derive these from the brainstorm synthesis and confirm with the user before writing.
|
|
361
|
+
|
|
362
|
+
**Step 2 — append a structured multi-workstream Outcome section:**
|
|
363
|
+
```markdown
|
|
364
|
+
## Outcome
|
|
365
|
+
|
|
366
|
+
**Decision:** Escalated to execution (multi-workstream)
|
|
367
|
+
**Date:** {{DATE}}
|
|
368
|
+
|
|
369
|
+
### Workstreams
|
|
370
|
+
|
|
371
|
+
#### 1. <Workstream Name>
|
|
372
|
+
- **Specialist:** <shard>
|
|
373
|
+
- **Direction:** <idea from brainstorm>
|
|
374
|
+
- **Directory:** <expected project dir>
|
|
375
|
+
- **Definition of done:** <one sentence>
|
|
376
|
+
- **Depends on:** <workstream name, or "none">
|
|
377
|
+
|
|
378
|
+
#### 2. <Workstream Name>
|
|
379
|
+
- **Specialist:** <shard>
|
|
380
|
+
- **Direction:** <idea from brainstorm>
|
|
381
|
+
- **Directory:** <expected project dir>
|
|
382
|
+
- **Definition of done:** <one sentence>
|
|
383
|
+
- **Depends on:** <workstream name, or "none">
|
|
384
|
+
|
|
385
|
+
### Sequencing
|
|
386
|
+
|
|
387
|
+
<Syn's recommended order to tackle workstreams, with a 1–2 sentence rationale.
|
|
388
|
+
Dependency-blocked workstreams are listed after their prerequisites.>
|
|
389
|
+
```
|
|
390
|
+
|
|
391
|
+
**Step 2b — update the state file `outcome` field**:
|
|
392
|
+
```json
|
|
393
|
+
"outcome": {
|
|
394
|
+
"decision": "multi-workstream",
|
|
395
|
+
"workstream_count": <int>,
|
|
396
|
+
"workstreams": [
|
|
397
|
+
{"name": "...", "specialist": "...", "directory": "...", "depends_on": [...]}
|
|
398
|
+
],
|
|
399
|
+
"decided_at": "<ISO 8601>"
|
|
400
|
+
}
|
|
401
|
+
```
|
|
402
|
+
|
|
403
|
+
**Step 3 — create `workstreams.json`.** After writing the Outcome section, also
|
|
404
|
+
write a machine-readable `workstreams.json` file to `brainstorm/` (alongside the
|
|
405
|
+
brainstorm doc). This is the structured companion used by Syn's Status Check Mode.
|
|
406
|
+
|
|
407
|
+
Schema:
|
|
408
|
+
```json
|
|
409
|
+
{
|
|
410
|
+
"project": "<brainstorm project name>",
|
|
411
|
+
"created": "<date>",
|
|
412
|
+
"workstreams": [
|
|
413
|
+
{
|
|
414
|
+
"name": "<workstream name>",
|
|
415
|
+
"specialist": "<shard name>",
|
|
416
|
+
"directory": "<expected project dir>",
|
|
417
|
+
"status": "initialized",
|
|
418
|
+
"depends_on": ["<workstream name>"],
|
|
419
|
+
"definition_of_done": "<one sentence>"
|
|
420
|
+
}
|
|
421
|
+
]
|
|
422
|
+
}
|
|
423
|
+
```
|
|
424
|
+
|
|
425
|
+
Use an empty array `[]` for `depends_on` when a workstream has no dependencies.
|
|
426
|
+
Initial `status` for all workstreams is `"initialized"`.
|
|
427
|
+
|
|
428
|
+
**Step 4 — brainstorm doc and state file stay in `brainstorm/`.** For
|
|
429
|
+
multi-workstream projects, the brainstorm doc and its `.state.json` sidecar
|
|
430
|
+
are shared origin artifacts across multiple project directories. Do NOT move
|
|
431
|
+
either of them. Instead, when initializing each workstream's `project-specs.md`,
|
|
432
|
+
populate the `Dependencies` and `Brainstorm origin` fields in the template header:
|
|
433
|
+
```
|
|
434
|
+
- **Dependencies:** <workstream name(s) this depends on, or "none">
|
|
435
|
+
- **Brainstorm origin:** brainstorm/brainstorm_<project_name>.md
|
|
436
|
+
```
|
|
437
|
+
|
|
438
|
+
**Step 5 — route to workstreams sequentially in dependency order.** For each workstream:
|
|
439
|
+
1. Perform a full `[T]` triage (create directory, create `project-specs.md`, route to specialist)
|
|
440
|
+
2. Surface the Phase 0 section of its `project-specs.md` to the user for confirmation
|
|
441
|
+
3. After confirmation, update that workstream's `status` in `workstreams.json` to `"active"`
|
|
442
|
+
4. Wait for confirmation before initializing the next workstream
|
|
443
|
+
|
|
444
|
+
When all workstreams are initialized, surface the full list of created project
|
|
445
|
+
directories and specialists assigned.
|
|
446
|
+
|
|
447
|
+
- **"What would you combine?"** → Propose 1–2 hybrid approaches synthesized from
|
|
448
|
+
the domain inputs, with a concrete rationale for the combination.
|
|
449
|
+
|
|
450
|
+
- **"What if we..."** → Engage freely. Explore the angle, then offer to loop in
|
|
451
|
+
the relevant specialist if the user wants grounded domain input.
|
|
452
|
+
|
|
453
|
+
- **"Just try everything, push the metric as far as you can"** (or the
|
|
454
|
+
domain inputs surfaced 2–3 fundamentally different approach families that
|
|
455
|
+
all look viable for the same metric-bounded problem) → Propose
|
|
456
|
+
**Syn-initiated Autonomous Research (`[AR]`) fan-out** per
|
|
457
|
+
`.claude/agents/specific_instructions/shared/autonomous_research.md`
|
|
458
|
+
Section H.
|
|
459
|
+
|
|
460
|
+
Preconditions (inherit from DIVERGE Section A):
|
|
461
|
+
- A clear primary metric with direction and baseline.
|
|
462
|
+
- A budget the user accepts (iterations × K branches × per-branch cost).
|
|
463
|
+
- 2–3 mutually exclusive approach families that are genuinely viable.
|
|
464
|
+
- AR-capable specialists identified for the approaches (ML Engineer,
|
|
465
|
+
AI Engineer, Data Scientist, Applied ML Scientist, Deep Learning
|
|
466
|
+
Engineer).
|
|
467
|
+
|
|
468
|
+
Flow:
|
|
469
|
+
|
|
470
|
+
1. **Ask confirming questions** — get the primary metric, baseline, total
|
|
471
|
+
budget, mutable/immutable scope, cost ceiling. Capture these in a
|
|
472
|
+
transient brief.
|
|
473
|
+
|
|
474
|
+
2. **Propose the fan-out** using DIVERGE proposal format, with the AR
|
|
475
|
+
gate ID namespace
|
|
476
|
+
(`specific-instructions-shared-diverge-protocol-ar-<project>`):
|
|
477
|
+
|
|
478
|
+
```
|
|
479
|
+
**AR FAN-OUT PROPOSED — Time-Travel across approach families**
|
|
480
|
+
|
|
481
|
+
| Branch | Specialist | Approach | Budget | Risk |
|
|
482
|
+
|--------|-----------|----------|--------|------|
|
|
483
|
+
| `ml-xgboost` | ml-engineer | Tree-based (XGBoost/LightGBM) | <N iter> | Low |
|
|
484
|
+
| `ai-rag-prompt` | ai-engineer | RAG with prompt tuning | <N iter> | Medium |
|
|
485
|
+
| `dle-transformer` | deep-learning-engineer | Custom transformer backbone | <N iter> | High |
|
|
486
|
+
|
|
487
|
+
Each branch runs its own autonomous research loop against the same
|
|
488
|
+
metric. Syn arbitrates the results. Total cost: <sum of per-branch
|
|
489
|
+
ceilings>.
|
|
490
|
+
|
|
491
|
+
Proceed, or pick one approach and go solo?
|
|
492
|
+
```
|
|
493
|
+
|
|
494
|
+
3. **Gate on user confirmation** using the AR fan-out gate ID.
|
|
495
|
+
|
|
496
|
+
4. **On confirm:**
|
|
497
|
+
- Create project directory and `project-specs.md` with an AR fan-out
|
|
498
|
+
Phase 0 section (metric, baseline, budget, branches, mutable/immutable
|
|
499
|
+
scope, cost ceiling).
|
|
500
|
+
- Create `<project_dir>/.shards/branches/<slug>/` for each branch.
|
|
501
|
+
- Spawn each specialist in parallel via Task, using the Section H.3
|
|
502
|
+
branch prompt template from `autonomous_research.md`. Each branch
|
|
503
|
+
prompt carries inherited Phase 0 setup (metric, budget, scope, cost
|
|
504
|
+
ceiling, git strategy — default `branch-local`) so the specialist
|
|
505
|
+
skips its own Phase 0 gate.
|
|
506
|
+
- All branch Tasks are called in **a single message with multiple Task
|
|
507
|
+
content blocks** (parallel).
|
|
508
|
+
|
|
509
|
+
5. **After all branches return:** invoke Syn Arbiter Mode via Task per
|
|
510
|
+
`diverge_protocol.md` Section F. Present the leaderboard to the user
|
|
511
|
+
at the Phase 3 arbitration gate. Promote the winner per
|
|
512
|
+
`diverge_protocol.md` Section G (with AR git strategy handling).
|
|
513
|
+
Syn writes the consolidated summary and runs `knowledge_harvest.md`
|
|
514
|
+
per `autonomous_research.md` Section H.10 (only winner's candidates
|
|
515
|
+
plus cross-branch patterns surfaced by the arbiter).
|
|
516
|
+
|
|
517
|
+
If the user declines fan-out but still wants AR, route them to the single
|
|
518
|
+
specialist best matching the most promising approach family and suggest
|
|
519
|
+
they select `[AR]` from that specialist's menu (solo AR).
|
|
520
|
+
|
|
521
|
+
No mandatory gate in Phase 3 — this is conversation, not execution.
|
|
522
|
+
|
|
523
|
+
Session ends when the user is satisfied, decides to escalate to execution, or
|
|
524
|
+
explicitly closes it.
|
|
525
|
+
|
|
526
|
+
---
|
|
527
|
+
|
|
528
|
+
## Behavioral rules for Brainstorm Mode
|
|
529
|
+
|
|
530
|
+
- Stay as Syn for the entire session. Do not transfer persona.
|
|
531
|
+
- Create the brainstorm doc AND its `.state.json` sidecar immediately on first
|
|
532
|
+
user response — do not wait for full intake to complete before opening either file.
|
|
533
|
+
- Append to the doc continuously throughout the session. Every specialist response,
|
|
534
|
+
deep-dive, and synthesis goes in. The file is the memory of the session.
|
|
535
|
+
- Rewrite the state JSON in full at every phase transition and after every
|
|
536
|
+
specialist Task return. The Shards UI brainstorm panel watches this file and
|
|
537
|
+
re-renders on each change — the state file IS the UI experience. Keep the
|
|
538
|
+
rewrites cheap by storing only headlines and counts, not full responses.
|
|
539
|
+
- Keep Task prompts focused — specialists should feel constrained to brainstorm,
|
|
540
|
+
not start scoping a full project.
|
|
541
|
+
- In Phase 2, synthesize across all responses — do not just list them. Identify
|
|
542
|
+
the through-lines, tensions, and surprises.
|
|
543
|
+
- Your recommended starting point should be opinionated. Don't hedge with "it depends."
|
|
544
|
+
- If the user's problem is extremely vague, that's fine — lean toward calling all
|
|
545
|
+
specialists and letting the diversity of ideas reveal what's actually interesting.
|
|
546
|
+
- When a **single** project is kicked off, the brainstorm doc travels with it —
|
|
547
|
+
move it into the project directory so the team has full context on how the idea
|
|
548
|
+
originated. For **multi-workstream** escalations, the brainstorm doc stays in
|
|
549
|
+
`brainstorm/` as a shared origin artifact; each workstream's `project-specs.md`
|
|
550
|
+
carries a `Brainstorm origin:` field pointing back to it.
|