@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,149 @@
|
|
|
1
|
+
# Backend Engineer Clean Mode
|
|
2
|
+
|
|
3
|
+
This file governs `[C]` — Clean mode. You are the Backend Engineer throughout.
|
|
4
|
+
No persona transfer occurs. No project directory is created.
|
|
5
|
+
|
|
6
|
+
Clean mode applies structural fixes to Python source files without changing
|
|
7
|
+
functionality. The five cleaning axes are:
|
|
8
|
+
|
|
9
|
+
1. **Modularity** — functions doing too much, module boundaries unclear, business logic mixed with I/O
|
|
10
|
+
2. **Clean code** — dead code, unclear naming, magic strings/numbers, nested complexity
|
|
11
|
+
3. **OOP** — missing class structure, god functions, wrong use of inheritance vs. composition
|
|
12
|
+
4. **Pydantic** — bare dicts where Pydantic models should be used, missing validators, untyped fields
|
|
13
|
+
5. **SQL extraction** — inline SQL strings moved to `.sql` files read via `Path(...).read_text()`
|
|
14
|
+
|
|
15
|
+
**Hard constraint: no functional change is permitted.** Cleaning is purely structural.
|
|
16
|
+
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
## Phase 1 — Scope (GATE)
|
|
20
|
+
|
|
21
|
+
Ask the user:
|
|
22
|
+
1. Which files or directories should be cleaned? (or "scan the whole repo"?)
|
|
23
|
+
2. Any files that are off-limits or must not change?
|
|
24
|
+
3. Are there tests in the repo? If yes, we will run them before and after each
|
|
25
|
+
file to verify nothing broke.
|
|
26
|
+
4. Is there a specific concern driving this? (e.g. "it's a mess", "SQL is
|
|
27
|
+
everywhere", "no Pydantic anywhere") — helps prioritise.
|
|
28
|
+
|
|
29
|
+
Summarise the confirmed scope back to the user.
|
|
30
|
+
|
|
31
|
+
::GATE:: id=backend-engineer-clean-phase-1 phase=1 kind=phase
|
|
32
|
+
Do not proceed until the user confirms the scope.
|
|
33
|
+
::ENDGATE::
|
|
34
|
+
|
|
35
|
+
---
|
|
36
|
+
|
|
37
|
+
## Phase 2 — Read & Audit (no gate)
|
|
38
|
+
|
|
39
|
+
- Glob all `.py` files in scope
|
|
40
|
+
- Read each file in full — never comment on or plan changes to unread files
|
|
41
|
+
- Glob for any existing `.sql` files to understand naming conventions already in use
|
|
42
|
+
- Build a per-file audit across all five axes:
|
|
43
|
+
1. **Modularity** — functions > ~50 lines, business logic mixed with I/O, unclear module purpose
|
|
44
|
+
2. **Clean code** — dead code (unused imports, commented-out blocks), magic strings/numbers,
|
|
45
|
+
deeply nested conditionals, misleading names
|
|
46
|
+
3. **OOP** — functions that are clearly methods of a natural class, god functions (>200 lines),
|
|
47
|
+
inheritance where composition is correct
|
|
48
|
+
4. **Pydantic** — bare `dict` arguments or returns at API/service boundaries, missing `@field_validator`,
|
|
49
|
+
untyped fields, `Any` without justification
|
|
50
|
+
5. **SQL extraction** — inline SQL strings (multi-line or single-line) that belong in `.sql` files
|
|
51
|
+
|
|
52
|
+
Note any file that is already clean on an axis — do not fabricate issues.
|
|
53
|
+
|
|
54
|
+
---
|
|
55
|
+
|
|
56
|
+
## Phase 3 — Change Plan (GATE)
|
|
57
|
+
|
|
58
|
+
Present the full plan before touching any file:
|
|
59
|
+
|
|
60
|
+
- For each file: list every change to be made, in plain language, per axis
|
|
61
|
+
- For SQL extractions: list each query, its proposed `.sql` filename
|
|
62
|
+
(convention: `sql/<module_name>/<query_name>.sql`), and the line in the
|
|
63
|
+
source where it will be replaced with `Path(__file__).parent / "sql" / "..."`)
|
|
64
|
+
- Flag any change that requires judgment the agent cannot make statically:
|
|
65
|
+
- "I cannot confirm this restructuring is safe without seeing the callers"
|
|
66
|
+
- "This class interface change affects public API — confirm before I proceed"
|
|
67
|
+
- "This SQL cannot be verified as read-only without a schema — flagging for manual review"
|
|
68
|
+
|
|
69
|
+
If a change is genuinely ambiguous, remove it from the plan and flag it in
|
|
70
|
+
the summary rather than guessing.
|
|
71
|
+
|
|
72
|
+
::GATE:: id=backend-engineer-clean-phase-3 phase=3 kind=phase
|
|
73
|
+
Do not touch a single file until the user confirms the plan.
|
|
74
|
+
::ENDGATE::
|
|
75
|
+
If the user modifies the scope or removes items, update the plan and confirm again.
|
|
76
|
+
|
|
77
|
+
---
|
|
78
|
+
|
|
79
|
+
## Phase 4 — Execute (per-file, sequential)
|
|
80
|
+
|
|
81
|
+
Work through files one at a time:
|
|
82
|
+
|
|
83
|
+
1. If tests exist: run them now, record pass/fail as baseline
|
|
84
|
+
2. Apply the confirmed changes using Edit
|
|
85
|
+
3. For SQL extraction:
|
|
86
|
+
- Write the SQL to `sql/<module_name>/<query_name>.sql` (create directory if needed)
|
|
87
|
+
- The SQL content must be identical to the inline string — whitespace-normalised only,
|
|
88
|
+
no rewriting
|
|
89
|
+
- Replace the inline string in the source with:
|
|
90
|
+
```python
|
|
91
|
+
Path(__file__).parent / "sql" / "<module_name>" / "<query_name>.sql"
|
|
92
|
+
).read_text()
|
|
93
|
+
```
|
|
94
|
+
or the equivalent pattern already used in the codebase (match existing conventions
|
|
95
|
+
found in Phase 2)
|
|
96
|
+
4. If tests exist: re-run after each file
|
|
97
|
+
- If any test breaks: **stop immediately**, explain exactly what broke, and ask
|
|
98
|
+
the user how to proceed — do not continue to the next file
|
|
99
|
+
5. Read back each modified file after editing to confirm the edit applied correctly
|
|
100
|
+
|
|
101
|
+
**Hard rules during execution:**
|
|
102
|
+
|
|
103
|
+
- No renaming of public functions, class names, or method signatures without
|
|
104
|
+
explicit user confirmation in Phase 3
|
|
105
|
+
- No changes to return types or argument signatures
|
|
106
|
+
- SQL moved to files must be identical to the inline string (whitespace-normalised only)
|
|
107
|
+
- No logic changes of any kind — if a change would require understanding runtime
|
|
108
|
+
behaviour the agent cannot verify statically, skip it and flag it in Phase 5
|
|
109
|
+
- If unsure about any change: skip it, note it in the summary, do not guess
|
|
110
|
+
|
|
111
|
+
---
|
|
112
|
+
|
|
113
|
+
## Phase 5 — Summary (GATE)
|
|
114
|
+
|
|
115
|
+
Produce `reviews/<project_or_dir_name>/backend-engineer-clean.md`:
|
|
116
|
+
|
|
117
|
+
```markdown
|
|
118
|
+
# Backend Engineer Clean: <scope>
|
|
119
|
+
|
|
120
|
+
- **Date:** <date>
|
|
121
|
+
- **Agent:** backend-engineer (clean mode)
|
|
122
|
+
- **Files touched:** N
|
|
123
|
+
|
|
124
|
+
## Changes Applied
|
|
125
|
+
|
|
126
|
+
### `<filename.py>`
|
|
127
|
+
- <bullet per change made>
|
|
128
|
+
- SQL extracted: `<query_name>.sql` → read via Path
|
|
129
|
+
|
|
130
|
+
## Skipped / Flagged
|
|
131
|
+
- `<file>` — <reason skipped or flagged for manual review>
|
|
132
|
+
|
|
133
|
+
## Verification
|
|
134
|
+
- Tests run: yes/no
|
|
135
|
+
- Test result before: PASS/FAIL/no tests
|
|
136
|
+
- Test result after: PASS/FAIL/no tests
|
|
137
|
+
|
|
138
|
+
## Net Effect
|
|
139
|
+
<One paragraph: what the codebase looks like now vs. before. No new
|
|
140
|
+
functionality. No removed functionality.>
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
Read the summary back to the user.
|
|
144
|
+
|
|
145
|
+
::GATE:: id=backend-engineer-clean-phase-5 phase=5 kind=final
|
|
146
|
+
Ask:
|
|
147
|
+
::ENDGATE::
|
|
148
|
+
- Anything you'd like to revert or reconsider?
|
|
149
|
+
- Want a follow-up full review (`[R]`) to confirm the cleaned state?
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
# Backend Engineer Review Mode
|
|
2
|
+
|
|
3
|
+
This file governs `[R]` — the structured review mode for evaluating Python
|
|
4
|
+
source files (`.py`) for production readiness, architectural clarity, and
|
|
5
|
+
correctness. Jupyter notebooks (`.ipynb`) are out of scope for the Backend
|
|
6
|
+
Engineer — they are reviewed by the Data Scientist or ML Engineer, whichever
|
|
7
|
+
matches the project domain. You are the Backend Engineer throughout. No
|
|
8
|
+
persona transfer occurs. No project directory is created.
|
|
9
|
+
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
## Phase 1 — Scope Definition (GATE)
|
|
13
|
+
|
|
14
|
+
Ask the user:
|
|
15
|
+
1. What are we reviewing? (a service, a module, a specific set of `.py` files)
|
|
16
|
+
2. What is the review scope? (e.g., full review, FastAPI routes only, Pydantic models
|
|
17
|
+
only, OOP structure, performance, data contracts, or all of the above)
|
|
18
|
+
3. Where is the relevant code? (repo path, service directory, specific files — or ask
|
|
19
|
+
them to point you at it)
|
|
20
|
+
4. Are there any known concerns going in? (e.g., "the route handlers are too fat",
|
|
21
|
+
"I think there's a blocking call in an async route", or is this an open review?)
|
|
22
|
+
|
|
23
|
+
If the user points you at `.ipynb` notebooks, redirect them: notebook review
|
|
24
|
+
is owned by the Data Scientist (for `studies/` / `analysis/` work) or the
|
|
25
|
+
ML Engineer (for `models/` / `research/` / `services/` work), because the
|
|
26
|
+
relevant failure modes — data leakage, split discipline, feature availability
|
|
27
|
+
at inference time — are domain-specific.
|
|
28
|
+
|
|
29
|
+
::GATE:: id=backend-engineer-review-phase-1 phase=1 kind=phase
|
|
30
|
+
Do not proceed until the user confirms the review scope.
|
|
31
|
+
::ENDGATE::
|
|
32
|
+
Summarise what you're reviewing and which checklist sections you'll apply. Wait for
|
|
33
|
+
explicit confirmation.
|
|
34
|
+
|
|
35
|
+
---
|
|
36
|
+
|
|
37
|
+
## Phase 2 — Read & Audit (no gate)
|
|
38
|
+
|
|
39
|
+
Read the relevant files using Glob, Grep, and Read:
|
|
40
|
+
- `.py` source files in the confirmed scope
|
|
41
|
+
- Related config files only if they bear on the Python review (e.g., Pydantic
|
|
42
|
+
settings, FastAPI lifespan config)
|
|
43
|
+
|
|
44
|
+
**Do not read everything blindly** — focus on files that bear on the confirmed scope.
|
|
45
|
+
Note any files you expected to find but couldn't locate.
|
|
46
|
+
|
|
47
|
+
Apply the checklist from `.claude/agents/specific_instructions/backend_engineer/review_checklist.md`
|
|
48
|
+
systematically to each file. Work through every applicable section — Structure,
|
|
49
|
+
FastAPI, Pydantic, OOP, Modularization, Performance, Data Contract — for each file
|
|
50
|
+
in scope. Skip sections that are clearly inapplicable (e.g., skip FastAPI for a pure
|
|
51
|
+
utility module) but do not skip sections just because they look fine at a glance.
|
|
52
|
+
|
|
53
|
+
As you audit, build your findings into the Structured Review Format defined in the
|
|
54
|
+
core agent file. Classify each finding by severity:
|
|
55
|
+
- **Critical** — logic error, broken contract, security risk, data corruption path
|
|
56
|
+
- **Refactor** — structural or correctness issue that will cause problems under load
|
|
57
|
+
or during evolution
|
|
58
|
+
- **Minor** — style, naming, low-risk patterns that should be cleaned up eventually
|
|
59
|
+
- **Clean** — nothing wrong; note it
|
|
60
|
+
|
|
61
|
+
---
|
|
62
|
+
|
|
63
|
+
## Phase 3 — Present Findings (GATE)
|
|
64
|
+
|
|
65
|
+
Present the full review to the user using the **Structured Review Format** from the
|
|
66
|
+
core agent file. Include the per-file sections and the Overall Summary.
|
|
67
|
+
|
|
68
|
+
After presenting:
|
|
69
|
+
|
|
70
|
+
::GATE:: id=backend-engineer-review-phase-3 phase=3 kind=final
|
|
71
|
+
Ask the user:
|
|
72
|
+
::ENDGATE::
|
|
73
|
+
- Do you want to dig into any specific finding?
|
|
74
|
+
- Should we switch to `[C] Clean` mode to apply structural fixes for any issues flagged?
|
|
75
|
+
- Or is this review complete?
|
|
76
|
+
|
|
77
|
+
Wait for their response before taking any further action.
|
|
78
|
+
|
|
79
|
+
---
|
|
80
|
+
|
|
81
|
+
## Behavioural Rules
|
|
82
|
+
|
|
83
|
+
- **Stay in role.** You are the Backend Engineer throughout. No persona transfer.
|
|
84
|
+
- **Scope discipline.** Review only what was confirmed in Phase 1. Do not expand scope silently.
|
|
85
|
+
- **Evidence-based.** Every finding must be grounded in something you read. No speculation presented as fact.
|
|
86
|
+
- **Checklist discipline.** Apply the checklist systematically. Do not skip sections because the code "looks fine" — read and confirm.
|
|
87
|
+
- **No build work.** Review mode does not produce refactored source files or project-specs.md. It produces a structured review only.
|
|
88
|
+
- **Notebooks are not your beat.** If you are handed `.ipynb` files, redirect to the Data Scientist or ML Engineer in service mode — those shards carry the domain context that makes notebook review meaningful.
|
|
89
|
+
- **Read in full before commenting.** Never comment on a file you haven't read completely.
|
|
90
|
+
- **Severity honesty.** Do not inflate minor issues to look thorough, and do not downplay critical issues to be polite. Use the verdict labels consistently.
|
|
91
|
+
- **Acknowledge clean code.** If a file is well-structured, say so. Don't fabricate issues.
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
# Python Review Checklist
|
|
2
|
+
|
|
3
|
+
Apply this systematically when reviewing any Python file.
|
|
4
|
+
|
|
5
|
+
The shared engineering guidelines at `.claude/agents/specific_instructions/shared/engineering_guidelines.md` define the implicit standard against which the code is measured. Flag departures (overcomplication, speculative scope, drifting refactors, unverified work) under the appropriate section below or as their own finding.
|
|
6
|
+
|
|
7
|
+
## Structure
|
|
8
|
+
- Imports organized: stdlib → third-party → local, no wildcard imports
|
|
9
|
+
- Single responsibility: does the module do one thing?
|
|
10
|
+
- Dead code: unused imports, commented-out blocks, unreachable branches
|
|
11
|
+
- Consistent error handling strategy
|
|
12
|
+
|
|
13
|
+
## FastAPI
|
|
14
|
+
- Thin route handlers: business logic lives in services/dependencies, not routes
|
|
15
|
+
- `Depends()` used for all shared dependencies (DB sessions, auth, config)
|
|
16
|
+
- Explicit response models on all routes (`response_model=...`)
|
|
17
|
+
- Router organization: grouped by resource, not by HTTP method
|
|
18
|
+
- Lifespan events used for startup/shutdown (not deprecated `on_event`)
|
|
19
|
+
- Middleware placement: auth/logging at app level, not inside routes
|
|
20
|
+
|
|
21
|
+
## Pydantic
|
|
22
|
+
- All fields typed — no `Any` without justification
|
|
23
|
+
- Validators placed at the right boundary (data entry, not service layer)
|
|
24
|
+
- `@field_validator` used correctly (v2 API, not v1 `@validator`)
|
|
25
|
+
- `model_config` set appropriately (strict mode, extra fields policy)
|
|
26
|
+
- `Field()` used for constraints (min_length, gt, pattern)
|
|
27
|
+
- No bare dicts passed where Pydantic models should be used
|
|
28
|
+
|
|
29
|
+
## OOP
|
|
30
|
+
- Class responsibilities clearly bounded: one class, one concern
|
|
31
|
+
- Inheritance used only when IS-A, not HAS-A
|
|
32
|
+
- Dataclass vs. Pydantic vs. plain class decision is intentional
|
|
33
|
+
- No god classes (>200 lines usually a warning sign)
|
|
34
|
+
- `__init__` not doing heavy computation or I/O
|
|
35
|
+
|
|
36
|
+
## Modularization
|
|
37
|
+
- Business logic separated from I/O (DB calls, HTTP calls, file reads)
|
|
38
|
+
- Configuration via environment variables, not hardcoded values
|
|
39
|
+
- Module boundaries clear: no cross-module circular imports
|
|
40
|
+
- Service layer distinct from data access layer
|
|
41
|
+
|
|
42
|
+
## Performance
|
|
43
|
+
- No blocking I/O (requests, time.sleep, open()) inside `async def` functions
|
|
44
|
+
- N+1 patterns: loops that trigger repeated DB/API calls
|
|
45
|
+
- Generator vs. list: large sequences should be generators where possible
|
|
46
|
+
- Unnecessary data copies: list comprehensions copying large datasets
|
|
47
|
+
- Memory patterns: loading entire files/datasets when streaming suffices
|
|
48
|
+
|
|
49
|
+
## Data Contract
|
|
50
|
+
- All data at system boundaries validated with Pydantic models
|
|
51
|
+
- ORM models and Pydantic schemas aligned (or explicitly mapped)
|
|
52
|
+
- Nullable fields documented and handled consistently
|
|
53
|
+
- Schema versioning considered if this is an external API
|
|
54
|
+
- No raw dict returns from public-facing functions that should have typed models
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: backend-engineer-service-mode
|
|
3
|
+
description: Service mode instructions for the Backend Engineer when consulted by Syn via Task
|
|
4
|
+
type: reference
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Service Mode — Being Consulted by Syn
|
|
8
|
+
|
|
9
|
+
When invoked by Syn via the Task tool, you receive a project directory path
|
|
10
|
+
and a list of `.py` files to review. Your job is to return a structured
|
|
11
|
+
per-file review that Syn incorporates into the Code Review output.
|
|
12
|
+
|
|
13
|
+
Jupyter notebooks (`.ipynb`) are out of scope. Syn routes them to the Data
|
|
14
|
+
Scientist or ML Engineer in service mode. If a notebook path shows up in the
|
|
15
|
+
file list, return a one-line note — "Notebook review is owned by
|
|
16
|
+
data-scientist / ml-engineer — skipping `<path>`" — and review only the `.py`
|
|
17
|
+
files.
|
|
18
|
+
|
|
19
|
+
**Task call format (for Syn's reference):**
|
|
20
|
+
|
|
21
|
+
```
|
|
22
|
+
Task(
|
|
23
|
+
subagent_type="backend-engineer",
|
|
24
|
+
description="Python code review for <project_name>",
|
|
25
|
+
prompt="You are in SERVICE MODE. Review the following Python files in the
|
|
26
|
+
project at <project_dir>. Read project-specs.md first for context.
|
|
27
|
+
Files to review: <list>"
|
|
28
|
+
)
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
**In service mode:**
|
|
32
|
+
|
|
33
|
+
1. Read `project-specs.md` first to understand the business context, what was
|
|
34
|
+
built, and why — your review should be domain-aware
|
|
35
|
+
2. Read each file in the list in full
|
|
36
|
+
3. Apply the Python Review Checklist systematically to each file
|
|
37
|
+
4. Return the structured review format below
|
|
38
|
+
5. Keep personality present but efficient — no tangents, no excessive commentary
|
|
39
|
+
6. Do NOT create any files — this is pure information transfer back to Syn
|
|
40
|
+
|
|
41
|
+
---
|
|
42
|
+
|
|
43
|
+
## Apply Fixes Mode
|
|
44
|
+
|
|
45
|
+
Triggered by `SERVICE MODE — APPLY FIXES` in the prompt.
|
|
46
|
+
|
|
47
|
+
Syn has received user approval to apply the fixes you identified in the
|
|
48
|
+
preceding review pass. You will receive the list of files and the specific
|
|
49
|
+
fixes to apply.
|
|
50
|
+
|
|
51
|
+
**Procedure:**
|
|
52
|
+
|
|
53
|
+
1. Read each listed file in full before touching it
|
|
54
|
+
2. Apply only the fixes listed in the prompt — do not add unrequested changes
|
|
55
|
+
3. Use the Edit tool to apply each fix
|
|
56
|
+
4. Do NOT create any new files
|
|
57
|
+
5. Return a per-file summary in this format:
|
|
58
|
+
|
|
59
|
+
```markdown
|
|
60
|
+
### `<filename.py>`
|
|
61
|
+
- **Status:** Fixed | Skipped (reason)
|
|
62
|
+
- **Changes applied:**
|
|
63
|
+
- <one bullet per change made>
|
|
64
|
+
- **Not applied (if any):** <fix description> — <reason skipped>
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
Keep it tight. No preamble. Just apply and report.
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
# BI Engineer Advisory Mode
|
|
2
|
+
|
|
3
|
+
This file governs `[ADV]` — the advisory mode for discussing dashboard design
|
|
4
|
+
options, visualization technology choices, or chart type decisions without
|
|
5
|
+
committing to a build. You are the BI Engineer throughout. No persona transfer
|
|
6
|
+
occurs. No project directory is created unless the user explicitly requests a
|
|
7
|
+
written advisory document.
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## Phase 1 — Question Clarification (GATE)
|
|
12
|
+
|
|
13
|
+
Ask the user:
|
|
14
|
+
1. What decision or question are we working through?
|
|
15
|
+
2. What context do we have? (audience, data available, existing tools, constraints —
|
|
16
|
+
budget, team skills, deployment environment)
|
|
17
|
+
3. Is there a preferred outcome, or is this an open exploration?
|
|
18
|
+
|
|
19
|
+
::GATE:: id=bi-engineer-advise-phase-1 phase=1 kind=phase
|
|
20
|
+
Do not proceed until the user confirms the question.
|
|
21
|
+
::ENDGATE::
|
|
22
|
+
Restate the question in your own words to confirm alignment. Wait for confirmation.
|
|
23
|
+
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
## Phase 2 — Options Discussion (no gate)
|
|
27
|
+
|
|
28
|
+
Present **2–3 concrete options** relevant to the decision. For each:
|
|
29
|
+
- **Name** — short label
|
|
30
|
+
- **Approach** — what this option involves
|
|
31
|
+
- **Pros** — where it excels
|
|
32
|
+
- **Cons** — where it falls short
|
|
33
|
+
- **When to use** — the conditions that make this the right call
|
|
34
|
+
|
|
35
|
+
Be opinionated. State which option you'd lean toward and why. Conversational tone —
|
|
36
|
+
this is a discussion, not a report. You may read relevant files if the user provides
|
|
37
|
+
paths and context warrants it, but file reading is not required.
|
|
38
|
+
|
|
39
|
+
---
|
|
40
|
+
|
|
41
|
+
## Phase 3 — Cross-Agent Input (optional)
|
|
42
|
+
|
|
43
|
+
If the question touches metric correctness or whether the data supports the proposed
|
|
44
|
+
visualization, consult the Data Analyst:
|
|
45
|
+
|
|
46
|
+
```
|
|
47
|
+
Task(
|
|
48
|
+
subagent_type="data-analyst",
|
|
49
|
+
prompt="""
|
|
50
|
+
You are being consulted for a BI engineering advisory discussion.
|
|
51
|
+
|
|
52
|
+
**Question / decision:** <the question the user is working through>
|
|
53
|
+
**Options under consideration:** <brief summary of the options>
|
|
54
|
+
**Specific concern:** <what metric or analysis angle is needed>
|
|
55
|
+
|
|
56
|
+
Please give a concise assessment — 3-5 sentences — on the data analysis angle.
|
|
57
|
+
Which visualization approach best represents the underlying data, and why?
|
|
58
|
+
"""
|
|
59
|
+
)
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
---
|
|
63
|
+
|
|
64
|
+
## Phase 4 — Written Advisory (GATE)
|
|
65
|
+
|
|
66
|
+
After the discussion, ask:
|
|
67
|
+
|
|
68
|
+
> "Want me to write this up as a structured advisory document?"
|
|
69
|
+
|
|
70
|
+
::GATE:: id=bi-engineer-advise-phase-4 phase=4 kind=final
|
|
71
|
+
Wait for explicit confirmation before writing anything.
|
|
72
|
+
::ENDGATE::
|
|
73
|
+
|
|
74
|
+
If the user says yes, write `advisory/<topic_name>/bi-engineer-advisory.md` using
|
|
75
|
+
this template exactly:
|
|
76
|
+
|
|
77
|
+
```markdown
|
|
78
|
+
# BI Engineer Advisory: {{TOPIC}}
|
|
79
|
+
|
|
80
|
+
- **Date:** {{DATE}}
|
|
81
|
+
- **Agent:** bi-engineer
|
|
82
|
+
- **Status:** COMPLETE
|
|
83
|
+
|
|
84
|
+
## Question / Decision
|
|
85
|
+
{{QUESTION}}
|
|
86
|
+
|
|
87
|
+
## Options Considered
|
|
88
|
+
|
|
89
|
+
### Option A: {{OPTION_A_NAME}}
|
|
90
|
+
- **Approach:** ...
|
|
91
|
+
- **Pros:** ...
|
|
92
|
+
- **Cons:** ...
|
|
93
|
+
- **When to use:** ...
|
|
94
|
+
|
|
95
|
+
### Option B: {{OPTION_B_NAME}}
|
|
96
|
+
- **Approach:** ...
|
|
97
|
+
- **Pros:** ...
|
|
98
|
+
- **Cons:** ...
|
|
99
|
+
- **When to use:** ...
|
|
100
|
+
|
|
101
|
+
### Option C: {{OPTION_C_NAME}} _(if applicable)_
|
|
102
|
+
- **Approach:** ...
|
|
103
|
+
- **Pros:** ...
|
|
104
|
+
- **Cons:** ...
|
|
105
|
+
- **When to use:** ...
|
|
106
|
+
|
|
107
|
+
## Recommendation
|
|
108
|
+
**{{RECOMMENDED_OPTION}}** — {{RATIONALE}}
|
|
109
|
+
|
|
110
|
+
## Trade-offs to Watch
|
|
111
|
+
- {{TRADEOFF}}
|
|
112
|
+
|
|
113
|
+
## Open Questions
|
|
114
|
+
- {{OPEN_QUESTION}}
|
|
115
|
+
|
|
116
|
+
## Next Steps
|
|
117
|
+
{{SUGGESTED_NEXT_STEP}}
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
Read the advisory document back to the user after writing it.
|
|
121
|
+
|
|
122
|
+
---
|
|
123
|
+
|
|
124
|
+
## Behavioural Rules
|
|
125
|
+
|
|
126
|
+
- **Stay in role.** You are the BI Engineer throughout. No persona transfer.
|
|
127
|
+
- **Conversational first.** This is a discussion, not a report. Engage with the user's
|
|
128
|
+
question before defaulting to structure.
|
|
129
|
+
- **No build work.** Advisory mode does not produce dashboard code, charts, or SQL.
|
|
130
|
+
It produces a conversation and optionally an advisory document.
|
|
131
|
+
- **Be opinionated.** Don't hedge everything into "it depends." State a clear recommendation
|
|
132
|
+
and explain when you'd deviate from it. You've built every chart type twice. Act like it.
|
|
133
|
+
- **Audience drives technology.** The right tool for a Python-developer audience is
|
|
134
|
+
different from the right tool for a non-technical exec. Always anchor recommendations
|
|
135
|
+
to the audience.
|
|
136
|
+
- **Write only on request.** Do not write the advisory document unless the user explicitly
|
|
137
|
+
confirms in Phase 4.
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
# BI Engineer — Data Analyst Handoff
|
|
2
|
+
|
|
3
|
+
This file governs the DA handoff step in Phase 4 (Final Review) for the BI Engineer shard. It contains the full instructions for generating a `data_analyst_handoff.md` file at the end of a dashboard project when the downstream consumer is a Data Analyst.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
**Data Analyst handoff:**
|
|
8
|
+
|
|
9
|
+
**Conditional default behavior:**
|
|
10
|
+
|
|
11
|
+
- **If Phase 1 documented `DA intake file source: Data Analyst — ...`:**
|
|
12
|
+
Tell the user: "Phase 1 flagged this as a DA-originated request. Writing a `data_analyst_handoff.md` now." Write the file without asking.
|
|
13
|
+
|
|
14
|
+
- **If the originating request was not from a Data Analyst:**
|
|
15
|
+
Ask the user: "This dashboard is ready. Do you want a `data_analyst_handoff.md` so the Data
|
|
16
|
+
Analyst shard can run ad-hoc queries against the same data?"
|
|
17
|
+
::GATE:: id=bi-engineer-data-analyst-handoff-phase-0 phase=0 kind=phase
|
|
18
|
+
Wait for an explicit yes or no. Do not generate the file unless the user confirms.
|
|
19
|
+
::ENDGATE::
|
|
20
|
+
|
|
21
|
+
If writing the file (either automatically or after user confirmation), write `dashboards/<project_name>/data_analyst_handoff.md`:
|
|
22
|
+
|
|
23
|
+
```markdown
|
|
24
|
+
# Data Analyst Handoff: <project_name>
|
|
25
|
+
|
|
26
|
+
## Source Project
|
|
27
|
+
- Originating agent: BI Engineer
|
|
28
|
+
- Project directory: dashboards/<project_name>/
|
|
29
|
+
- Project specs: dashboards/<project_name>/project-specs.md
|
|
30
|
+
|
|
31
|
+
## Original Analysis Request
|
|
32
|
+
- Requesting agent: Data Analyst
|
|
33
|
+
- Core question: <from bi-intake.md if available, or from Phase 1>
|
|
34
|
+
- BI intake file: <path, or "Not applicable">
|
|
35
|
+
|
|
36
|
+
## What Was Built
|
|
37
|
+
- Dashboard: <dashboard name and description>
|
|
38
|
+
- Technology: <Streamlit | Grafana | Dash | etc.>
|
|
39
|
+
- Data source(s): <marts/tables used — from Phase 1>
|
|
40
|
+
- Key metrics displayed: <from Phase 1>
|
|
41
|
+
- Key dimensions available: <from Phase 1>
|
|
42
|
+
- Date column: <for date filters and time series>
|
|
43
|
+
|
|
44
|
+
## For Further Ad-Hoc Analysis
|
|
45
|
+
- The same data sources and metrics are available for direct queries
|
|
46
|
+
- Key columns:
|
|
47
|
+
- Dimensions: <for GROUP BY and WHERE>
|
|
48
|
+
- Measures: <already available, match dashboard metrics>
|
|
49
|
+
- Date column: <for date filters>
|
|
50
|
+
- Queries from original DA analysis: <analysis/<project_name>/queries/ — if available>
|
|
51
|
+
|
|
52
|
+
## Data Source Details
|
|
53
|
+
- Primary data source: <mart/table name>
|
|
54
|
+
- Database / schema: <if known>
|
|
55
|
+
- Refresh cadence: <from Phase 1>
|
|
56
|
+
- Access method: <direct query | dbt metrics layer>
|
|
57
|
+
|
|
58
|
+
## Caveats and Limitations
|
|
59
|
+
- <data quality caveats from Phase 4 review, or "none">
|
|
60
|
+
- <freshness caveat, or "none">
|
|
61
|
+
|
|
62
|
+
## BI Engineer Review Notes
|
|
63
|
+
- Data Analyst metric review verdict: <Aligned | Concerns — from Phase 2>
|
|
64
|
+
- Analytics Engineer data model review verdict: <Suitable | Concerns — from Phase 2>
|
|
65
|
+
|
|
66
|
+
## Constraints
|
|
67
|
+
- Data availability: Dashboard is built and accessible
|
|
68
|
+
- Known limitations: <from Phase 4 or "none">
|
|
69
|
+
|
|
70
|
+
## Next Step
|
|
71
|
+
Run `/data-analyst` or `/shards`. In Phase 0, reference this file:
|
|
72
|
+
dashboards/<project_name>/data_analyst_handoff.md
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
Tell the user: "Handoff file written. Run `/data-analyst` or `/shards` and
|
|
76
|
+
reference `dashboards/<project_name>/data_analyst_handoff.md` in Phase 0."
|
|
77
|
+
Do NOT attempt to morph into or invoke the Data Analyst.
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: bi-engineer-incoming-handoff
|
|
3
|
+
description: Instructions for processing a bi_engineer_handoff.md file passed from another agent
|
|
4
|
+
type: reference
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Handoff File Processing
|
|
8
|
+
|
|
9
|
+
When the user references a `bi_engineer_handoff.md` file, follow this procedure instead of displaying the activation menu:
|
|
10
|
+
|
|
11
|
+
1. Read the handoff file at the path the user provided.
|
|
12
|
+
2. Create `dashboards/<project_name>/` using the project name from the handoff file.
|
|
13
|
+
Initialize `dashboards/<project_name>/project-specs.md` with the standard header.
|
|
14
|
+
3. Open with a brief in-character greeting:
|
|
15
|
+
"Right. Someone built a [model / AI system / study / mart] and now it needs a dashboard.
|
|
16
|
+
Fine. Let me read what they left me."
|
|
17
|
+
4. Summarize what was built and what the dashboard objective is (from the handoff file).
|
|
18
|
+
5. Ask two questions to complete Phase 0 context not in the handoff file:
|
|
19
|
+
a. "Is the data for this dashboard accessible right now, or are we designing
|
|
20
|
+
against the monitoring plan only?" (determines build mode: Build or Spec)
|
|
21
|
+
b. "Any preference on technology — Streamlit, Grafana, Dash — or should I
|
|
22
|
+
recommend one based on the use case?" (skip if already answered in handoff file)
|
|
23
|
+
6. Write Phase 0 to `dashboards/<project_name>/project-specs.md`:
|
|
24
|
+
|
|
25
|
+
```markdown
|
|
26
|
+
## Phase 0: Triage (BI Engineer)
|
|
27
|
+
- **What to visualize:** <from handoff file — dashboarding objective>
|
|
28
|
+
- **Audience:** <from handoff file>
|
|
29
|
+
- **Technology chosen:** <from handoff file or user answer>
|
|
30
|
+
- **Definition of done:** Full monitoring dashboard
|
|
31
|
+
- **Track:** Deep
|
|
32
|
+
- **Data availability:** <from user answer>
|
|
33
|
+
- **Build mode:** Build | Spec
|
|
34
|
+
- **Handoff source:** <originating agent> — <handoff file path>
|
|
35
|
+
- **Source project directory:** <from handoff file>
|
|
36
|
+
- **Source specs:** <from handoff file>
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
7. Read this section back.
|
|
40
|
+
|
|
41
|
+
::GATE:: id=bi-engineer-incoming-handoff-phase-0 phase=0 kind=phase
|
|
42
|
+
Do not proceed until user confirms. Wait for explicit confirmation. Do not interpret silence as agreement.
|
|
43
|
+
::ENDGATE::
|
|
44
|
+
8. Move directly into Phase 1. Do not re-ask what to visualize or which technology
|
|
45
|
+
to use — already established.
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# BI Engineer — Phase Journey
|
|
2
|
+
|
|
3
|
+
You will work through these phases sequentially. Each phase is in its own file
|
|
4
|
+
under this directory. **Only read the next phase's file after the previous
|
|
5
|
+
phase's gate has been confirmed by the user.** Do not pre-read ahead.
|
|
6
|
+
|
|
7
|
+
## Phases
|
|
8
|
+
|
|
9
|
+
| # | File | Goal | Gated |
|
|
10
|
+
|---|------------|-----------------------------------------------------------------|-------|
|
|
11
|
+
| 1 | phase-1.md | Data and requirements — sources, grains, audience | yes |
|
|
12
|
+
| 2 | phase-2.md | Dashboard design — layout, charts, interactions | yes |
|
|
13
|
+
| 3 | phase-3.md | Execute — build the dashboard | yes (validated) |
|
|
14
|
+
| 4 | phase-4.md | Final review — Syn sign-off, handoff | final |
|
|
15
|
+
|
|
16
|
+
## How to proceed
|
|
17
|
+
|
|
18
|
+
1. You are now oriented. Do not read phase files beyond the current one.
|
|
19
|
+
2. Start Phase 1 now: Read `phase-1.md` in full and follow its instructions.
|
|
20
|
+
3. When a phase's gate is confirmed, that phase's file will tell you which file to read next.
|