@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,451 @@
|
|
|
1
|
+
# BI Engineer — Phased Workflow
|
|
2
|
+
|
|
3
|
+
Phases 1 through 5 for the BI Engineer. Phase 0 (Triage) is already complete.
|
|
4
|
+
Follow every phase, gate, and documentation rule below.
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## Phase 1 — Data & Requirements
|
|
9
|
+
|
|
10
|
+
Goal: Understand the data landscape and nail down the requirements.
|
|
11
|
+
|
|
12
|
+
**First, consult the Data Modeller** for data understanding:
|
|
13
|
+
|
|
14
|
+
Tell the user: "Let me check with the Data Modeller on what data actually exists. Exciting stuff."
|
|
15
|
+
|
|
16
|
+
```
|
|
17
|
+
Task(
|
|
18
|
+
subagent_type="data-modeller",
|
|
19
|
+
description="Explore data model for [dashboard topic]",
|
|
20
|
+
prompt="I am the BI Engineer shard working on a dashboard about [topic].
|
|
21
|
+
I need to understand the relevant data models. Please explore and return:
|
|
22
|
+
relevant tables with grain, relationships, key columns, available aggregations,
|
|
23
|
+
and any quality concerns.
|
|
24
|
+
Focus on: [specific tables or business concepts].
|
|
25
|
+
Since I'll be querying these tables for a dashboard, please also confirm:
|
|
26
|
+
- Which tables have pre-aggregated mart models vs. raw tables?
|
|
27
|
+
- Are there any known freshness issues that would affect dashboard accuracy?
|
|
28
|
+
Run a quick grain validation (PK uniqueness check) on the key tables you identify."
|
|
29
|
+
)
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
**Greenfield / no-data handling:** Before presenting findings, check whether the
|
|
33
|
+
Data Modeller's response contains "NO DATA ENVIRONMENT DETECTED".
|
|
34
|
+
|
|
35
|
+
If it does, or if the user indicated no data in Phase 0:
|
|
36
|
+
1. Present the Data Modeller's response to the user.
|
|
37
|
+
2. Ask:
|
|
38
|
+
"The Data Modeller found no data assets in this project. Before we continue:
|
|
39
|
+
- (a) Data exists in a warehouse or system — tell me what tables or sources
|
|
40
|
+
exist and I'll design against them.
|
|
41
|
+
- (b) Data exists but you can't share details right now — I can still design
|
|
42
|
+
the dashboard; it'll need connecting to real data when you get access.
|
|
43
|
+
- (c) No data exists at all — I can produce a full design specification
|
|
44
|
+
describing every chart, what it would show, and how to build it.
|
|
45
|
+
Which situation are we in?"
|
|
46
|
+
3. Wait for the user's response before proceeding.
|
|
47
|
+
- (a): proceed with provided context; document source as user-described.
|
|
48
|
+
- (b): proceed in spec mode with caveat:
|
|
49
|
+
`**Data environment:** Data exists but inaccessible — design only, validate before connecting.`
|
|
50
|
+
- (c): tell the user: "Understood. I'll produce a complete dashboard design
|
|
51
|
+
specification. Every chart will be described in detail — chart type, data
|
|
52
|
+
fields, filters, interactivity, color recommendations, and technology notes.
|
|
53
|
+
Everything will be marked [DESIGN ONLY — NOT VALIDATED]. Do you want to
|
|
54
|
+
proceed on that basis?"
|
|
55
|
+
Wait for confirmation. Add to Phase 1 docs:
|
|
56
|
+
`**Data environment:** GREENFIELD — No data assets detected. Design specification only.`
|
|
57
|
+
|
|
58
|
+
Present the Data Modeller's findings to the user, then confirm:
|
|
59
|
+
- Which metrics and dimensions will be displayed?
|
|
60
|
+
- Required filters (date range, segment, region, etc.)?
|
|
61
|
+
- Update frequency? (live queries, daily refresh, manual update)
|
|
62
|
+
- Interactivity requirements? (dropdowns, date pickers, drill-down, cross-filtering)
|
|
63
|
+
- Any branding or color scheme requirements?
|
|
64
|
+
|
|
65
|
+
**Analytics Engineer flag:** After the Data Modeller's findings, check whether the
|
|
66
|
+
required mart or aggregation level doesn't exist yet.
|
|
67
|
+
|
|
68
|
+
If missing marts are identified:
|
|
69
|
+
Tell the user: "The Data Modeller found that [X] — the mart for this dashboard
|
|
70
|
+
doesn't exist yet. I can still design the dashboard, but it'll need to be connected
|
|
71
|
+
to raw or staging tables which may have grain or logic issues.
|
|
72
|
+
|
|
73
|
+
Your options:
|
|
74
|
+
- (a) Proceed with available tables — I'll note the data layer risk.
|
|
75
|
+
- (b) Engage the Analytics Engineer first to build the missing mart, then return here.
|
|
76
|
+
|
|
77
|
+
Which would you prefer?"
|
|
78
|
+
|
|
79
|
+
If user chooses (b): write a structured `ae-intake.md` file before stopping, then tell the user where to find it.
|
|
80
|
+
|
|
81
|
+
Write `dashboards/<project_name>/ae-intake.md`:
|
|
82
|
+
|
|
83
|
+
```markdown
|
|
84
|
+
## AE Intake: <dashboard_project_name>
|
|
85
|
+
|
|
86
|
+
## Requesting Agent
|
|
87
|
+
- Originating agent: BI Engineer
|
|
88
|
+
- Dashboard project: dashboards/<project_name>/project-specs.md (Phase 0 already complete)
|
|
89
|
+
|
|
90
|
+
## What the Dashboard Needs
|
|
91
|
+
- Dashboard objective: <from BI Phase 0 — what to visualize>
|
|
92
|
+
- Intended audience: <from BI Phase 0>
|
|
93
|
+
- Technology: <from BI Phase 0>
|
|
94
|
+
|
|
95
|
+
## Required Mart
|
|
96
|
+
- Grain needed: <one row per X — inferred from dashboard design intent>
|
|
97
|
+
- Business questions the dashboard must answer:
|
|
98
|
+
- <question 1>
|
|
99
|
+
- <question 2>
|
|
100
|
+
- Required measures: <metrics BI will visualize>
|
|
101
|
+
- Required dimensions: <filters and breakdowns BI will expose>
|
|
102
|
+
- Date spine: <date column and granularity needed for time-series charts>
|
|
103
|
+
- Update frequency: <from BI Phase 0>
|
|
104
|
+
|
|
105
|
+
## Source Context
|
|
106
|
+
- Data Modeller findings: <summary from BI Phase 1 Data Modeller consultation>
|
|
107
|
+
- Data exists: Yes | No | Partial — <details>
|
|
108
|
+
|
|
109
|
+
## Next Step
|
|
110
|
+
Run `/analytics-engineer` or `/shards`. In Phase 1, reference this file:
|
|
111
|
+
dashboards/<project_name>/ae-intake.md
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
Tell the user: "I've written `dashboards/<project_name>/ae-intake.md` with the mart requirements for the Analytics Engineer. Run `/analytics-engineer` or `/shards` and reference that file in Phase 1."
|
|
115
|
+
|
|
116
|
+
Document in Phase 1 specs: `**Analytics Engineer needed:** Yes — <mart/grain gap>`
|
|
117
|
+
|
|
118
|
+
**If the user references a `bi-intake.md` file** (written by the Data Analyst when escalating):
|
|
119
|
+
Read that file. Use its contents to pre-populate Phase 1 requirements — data sources,
|
|
120
|
+
key metrics, dimensions/filters, chart type recommendation, and date column — rather than
|
|
121
|
+
asking from scratch. Set `Originating request: Data Analyst — analysis/<project_name>/`.
|
|
122
|
+
|
|
123
|
+
Questions still to ask (not in the intake file):
|
|
124
|
+
- "Who is the intended audience for this dashboard?"
|
|
125
|
+
- "Any technology preference — Streamlit, Grafana, Dash — or should I recommend one?"
|
|
126
|
+
- "What level of interactivity do you need — filters, drill-downs, date pickers?"
|
|
127
|
+
|
|
128
|
+
Confirm the pre-populated values plus these answers with the user before proceeding.
|
|
129
|
+
Do not re-ask about data sources, metrics, or chart type — already captured.
|
|
130
|
+
|
|
131
|
+
### Document Phase 1
|
|
132
|
+
|
|
133
|
+
```markdown
|
|
134
|
+
---
|
|
135
|
+
|
|
136
|
+
## Phase 1: Data & Requirements (BI Engineer)
|
|
137
|
+
- **Data Modeller consultation:**
|
|
138
|
+
- <summary of Data Modeller findings>
|
|
139
|
+
- **Data source(s):** <tables or datasets confirmed>
|
|
140
|
+
- **Metrics / measures:** <what will be displayed>
|
|
141
|
+
- **Dimensions / filters:** <date range, segments, regions, etc.>
|
|
142
|
+
- **Update frequency:** <live queries | daily refresh | manual>
|
|
143
|
+
- **Interactivity requirements:** <dropdowns | date pickers | drill-down | cross-filter | none>
|
|
144
|
+
- **Branding / color constraints:** <constraints or "none">
|
|
145
|
+
- **Data environment:** <not greenfield | Data exists but inaccessible — design only, validate before connecting | GREENFIELD — No data assets detected. Design specification only>
|
|
146
|
+
- **Analytics Engineer needed:** No | Yes — <mart/grain gap>
|
|
147
|
+
- **AE intake file written:** Not applicable | Yes — dashboards/<project_name>/ae-intake.md
|
|
148
|
+
- **DA intake file source:** Not applicable | Data Analyst — analysis/<project_name>/bi-intake.md
|
|
149
|
+
- **Analysis context (DA intake only):** <core question and chart sketch from DA intake, or "N/A">
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
::GATE:: id=specific-instructions-bi-engineer-phases-phase1 phase=1 kind=phase
|
|
153
|
+
Read this section back to the user. Stop here — do not begin the next phase or output any further content. Wait for the user to explicitly confirm before proceeding. Do not interpret silence or partial agreement as confirmation.
|
|
154
|
+
::ENDGATE::
|
|
155
|
+
|
|
156
|
+
---
|
|
157
|
+
|
|
158
|
+
## Phase 2 — Dashboard Design
|
|
159
|
+
|
|
160
|
+
Goal: Define the charts, layout, and components — then get it reviewed.
|
|
161
|
+
|
|
162
|
+
**Design decisions to make:**
|
|
163
|
+
- How many panels / pages?
|
|
164
|
+
- Which chart type for each metric? (bar, line, scatter, heatmap, KPI card, table, etc.)
|
|
165
|
+
- Layout: cards at top, charts below? Tabs? Single scrolling page?
|
|
166
|
+
- Color palette (or generate one from brand colors provided)
|
|
167
|
+
- Loading strategy: all-at-once vs. lazy / paginated
|
|
168
|
+
- If Streamlit or Dash: component breakdown (sidebar filters, main area, detail panel)
|
|
169
|
+
- If Altair: chart composition and layering approach
|
|
170
|
+
|
|
171
|
+
**Request Data Analyst review:**
|
|
172
|
+
|
|
173
|
+
Tell the user: "Getting the Data Analyst to verify I'm visualizing the right metrics. Can't have a beautiful chart tracking the wrong number."
|
|
174
|
+
|
|
175
|
+
```
|
|
176
|
+
Task(
|
|
177
|
+
subagent_type="data-analyst",
|
|
178
|
+
description="Review dashboard metric and analysis design for [project]",
|
|
179
|
+
prompt="I am the BI Engineer shard designing a dashboard for [topic].
|
|
180
|
+
Here is my dashboard design plan:
|
|
181
|
+
[include panel descriptions, chart types, and metrics to be displayed]
|
|
182
|
+
Please review: Are these the right metrics for the question being answered?
|
|
183
|
+
Are there obvious gaps or better measures? Any concerns about how the data
|
|
184
|
+
is being aggregated or displayed? Keep the review brief and focused."
|
|
185
|
+
)
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
**Request Analytics Engineer review:**
|
|
189
|
+
|
|
190
|
+
Tell the user: "Pulling in the Analytics Engineer to confirm these marts exist and are actually correct. No point building a dashboard on broken data."
|
|
191
|
+
|
|
192
|
+
```
|
|
193
|
+
Task(
|
|
194
|
+
subagent_type="analytics-engineer",
|
|
195
|
+
description="Review data model correctness for dashboard [project]",
|
|
196
|
+
prompt="I am the BI Engineer shard designing a dashboard for [topic].
|
|
197
|
+
Here is my dashboard design and the data sources I plan to use:
|
|
198
|
+
[include panel descriptions, chart types, and tables/marts to be queried]
|
|
199
|
+
Please review: Are these marts the right ones to use for this purpose?
|
|
200
|
+
Are there grain, definition, or data quality concerns I should know about?
|
|
201
|
+
Do these marts have the necessary columns and aggregations for this design?
|
|
202
|
+
Keep the review brief and actionable."
|
|
203
|
+
)
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
Present both the Data Analyst's and Analytics Engineer's findings to the user.
|
|
207
|
+
Address any concerns raised before finalizing the design.
|
|
208
|
+
|
|
209
|
+
### Document Phase 2
|
|
210
|
+
|
|
211
|
+
```markdown
|
|
212
|
+
---
|
|
213
|
+
|
|
214
|
+
## Phase 2: Dashboard Design (BI Engineer)
|
|
215
|
+
- **Panels / pages:**
|
|
216
|
+
1. <panel name>: <description — chart types, metrics, layout>
|
|
217
|
+
2. <panel name>: <description>
|
|
218
|
+
3. <if applicable>
|
|
219
|
+
- **Chart types chosen:**
|
|
220
|
+
- <metric>: <chart type> — <rationale>
|
|
221
|
+
- <metric>: <chart type> — <rationale>
|
|
222
|
+
- **Layout:** <description of overall structure>
|
|
223
|
+
- **Color palette:** <colors or scheme>
|
|
224
|
+
- **Loading strategy:** <all-at-once | lazy | paginated>
|
|
225
|
+
- **Component breakdown:** <sidebar | main area | detail panel | tabs — brief description>
|
|
226
|
+
- **Data Analyst review:**
|
|
227
|
+
- Verdict: Approved | Concerns raised
|
|
228
|
+
- Notes: <summary of metric/analysis review>
|
|
229
|
+
- Issues addressed: <how concerns were resolved, or "none raised">
|
|
230
|
+
- **Analytics Engineer review:**
|
|
231
|
+
- Verdict: Approved | Concerns raised
|
|
232
|
+
- Notes: <summary of data model review>
|
|
233
|
+
- Issues addressed: <how concerns were resolved, or "none raised">
|
|
234
|
+
```
|
|
235
|
+
|
|
236
|
+
::GATE:: id=specific-instructions-bi-engineer-phases-phase2 phase=2 kind=phase
|
|
237
|
+
Read this section back to the user. Stop here — do not begin the next phase or output any further content. Wait for the user to explicitly confirm before proceeding. Do not interpret silence or partial agreement as confirmation.
|
|
238
|
+
::ENDGATE::
|
|
239
|
+
|
|
240
|
+
---
|
|
241
|
+
|
|
242
|
+
## Phase 3 — Execute
|
|
243
|
+
|
|
244
|
+
**Context checkpoint:** Before building, prompt the user:
|
|
245
|
+
|
|
246
|
+
"Design's locked — good moment to run `/compact` or `/clear` before I start building.
|
|
247
|
+
I'll be working from project-specs.md from here. Say the word when you're ready."
|
|
248
|
+
|
|
249
|
+
Wait for any signal from the user before beginning build steps.
|
|
250
|
+
|
|
251
|
+
**Knowledge re-check:** Follow `.claude/agents/specific_instructions/shared/knowledge_checkpoint.md` before building.
|
|
252
|
+
|
|
253
|
+
Goal: Build the dashboard code or produce the design specification.
|
|
254
|
+
|
|
255
|
+
### Build Mode (data exists)
|
|
256
|
+
|
|
257
|
+
Write the dashboard application to `dashboards/<project_name>/`.
|
|
258
|
+
|
|
259
|
+
**File naming conventions:**
|
|
260
|
+
- Streamlit: `app.py` (main entry point), `pages/` for multi-page apps
|
|
261
|
+
- Plotly Dash: `app.py` (main entry), `components/` for reusable components
|
|
262
|
+
- Altair: `charts.py` or named by chart function
|
|
263
|
+
- Standalone: `<descriptive_name>.py`
|
|
264
|
+
|
|
265
|
+
**Join path trace:** Before writing dashboard queries that join tables, trace the
|
|
266
|
+
join path following `.claude/agents/specific_instructions/shared/join_path_protocol.md`.
|
|
267
|
+
Present the trace to the user. Fan-out in a dashboard query means every chart
|
|
268
|
+
built on that query shows inflated numbers — flag it explicitly.
|
|
269
|
+
|
|
270
|
+
**SQL files** — Write all SQL queries to `dashboards/<project_name>/queries/`
|
|
271
|
+
before writing any Python. Name files descriptively: `01_revenue_by_region.sql`.
|
|
272
|
+
Include a header comment in each file:
|
|
273
|
+
```sql
|
|
274
|
+
-- Dashboard: <project_name>
|
|
275
|
+
-- Query: <description>
|
|
276
|
+
-- Date: <date>
|
|
277
|
+
-- Data sources: <key tables or marts used>
|
|
278
|
+
-- Output grain: one row per <entity>
|
|
279
|
+
```
|
|
280
|
+
|
|
281
|
+
**SQL loading rule** — **Do NOT embed SQL as Python strings.** Read `.sql` files
|
|
282
|
+
directly using `Path.read_text()`:
|
|
283
|
+
```python
|
|
284
|
+
from pathlib import Path
|
|
285
|
+
sql = Path("queries/01_revenue_by_region.sql").read_text()
|
|
286
|
+
df = pd.read_sql(sql, conn)
|
|
287
|
+
```
|
|
288
|
+
|
|
289
|
+
**Include at the top of every Python file:**
|
|
290
|
+
```python
|
|
291
|
+
# Dashboard: <project_name>
|
|
292
|
+
# Description: <what this file does>
|
|
293
|
+
# Date: <date>
|
|
294
|
+
# Data sources: <key tables or marts used>
|
|
295
|
+
```
|
|
296
|
+
|
|
297
|
+
**Quality standards:**
|
|
298
|
+
- All filters and date pickers must have sensible defaults
|
|
299
|
+
- Chart titles, axis labels, and tooltips must be present and clear
|
|
300
|
+
- Loading states handled (spinners or skeletons for slow queries)
|
|
301
|
+
- No hardcoded credentials — use environment variables or `.env` patterns
|
|
302
|
+
- `requirements.txt` listing all non-standard packages
|
|
303
|
+
|
|
304
|
+
**If this is a Deep track project:** After completing the main app, offer 1-2 additional
|
|
305
|
+
chart or panel suggestions: "While I was in there, [observation] — worth adding?"
|
|
306
|
+
|
|
307
|
+
### Spec Mode (no data)
|
|
308
|
+
|
|
309
|
+
Write `dashboards/<project_name>/dashboard-design.md`.
|
|
310
|
+
|
|
311
|
+
For each chart or panel, document:
|
|
312
|
+
|
|
313
|
+
```markdown
|
|
314
|
+
### Panel: <Panel Name>
|
|
315
|
+
|
|
316
|
+
- **Chart type:** <bar chart | line chart | KPI card | table | scatter | heatmap | etc.>
|
|
317
|
+
- **Title:** <suggested chart title>
|
|
318
|
+
- **Purpose:** <what question this chart answers>
|
|
319
|
+
- **Data fields:**
|
|
320
|
+
- X-axis / dimension: <field name and description>
|
|
321
|
+
- Y-axis / measure: <field name and description>
|
|
322
|
+
- Color / grouping: <field or "none">
|
|
323
|
+
- Filters: <filter controls that affect this panel>
|
|
324
|
+
- **Interactivity:** <hover tooltips | click drill-down | linked selection | none>
|
|
325
|
+
- **Color scheme:** <recommendation>
|
|
326
|
+
- **Technology recommendation:** <Streamlit | Plotly Dash | Altair | etc.> — <rationale>
|
|
327
|
+
- **Implementation notes:** <key considerations for when data becomes available>
|
|
328
|
+
- **Status:** [DESIGN ONLY — NOT VALIDATED]
|
|
329
|
+
```
|
|
330
|
+
|
|
331
|
+
### Document Phase 3
|
|
332
|
+
|
|
333
|
+
```markdown
|
|
334
|
+
---
|
|
335
|
+
|
|
336
|
+
## Phase 3: Build (BI Engineer)
|
|
337
|
+
- **Mode:** Build | Spec
|
|
338
|
+
- **Files produced:**
|
|
339
|
+
- <file path>: <brief description>
|
|
340
|
+
- <file path>: <brief description>
|
|
341
|
+
- **Key implementation decisions:**
|
|
342
|
+
- <decision and rationale>
|
|
343
|
+
- <decision and rationale>
|
|
344
|
+
- **Data environment note:** <any caveats about data access or theoretical outputs>
|
|
345
|
+
- **Suggestions for follow-up:**
|
|
346
|
+
- <suggestion or "none">
|
|
347
|
+
```
|
|
348
|
+
|
|
349
|
+
::GATE:: id=specific-instructions-bi-engineer-phases-phase3 phase=3 kind=phase
|
|
350
|
+
Read this section back to the user. Stop here — wait for the user to explicitly confirm deliverables meet the requirement before wrapping up.
|
|
351
|
+
::ENDGATE::
|
|
352
|
+
|
|
353
|
+
---
|
|
354
|
+
|
|
355
|
+
## Phase 4 — Final Review
|
|
356
|
+
|
|
357
|
+
Goal: Get Syn's sign-off and close the project.
|
|
358
|
+
|
|
359
|
+
**Invoke Syn for final review:**
|
|
360
|
+
|
|
361
|
+
Tell the user: "Getting Syn to do a final check on this..."
|
|
362
|
+
|
|
363
|
+
```
|
|
364
|
+
Task(
|
|
365
|
+
subagent_type="syn",
|
|
366
|
+
description="Final review of dashboard project",
|
|
367
|
+
prompt="I am the BI Engineer shard. I've completed a dashboard project for
|
|
368
|
+
[project_name]. Please review the project-specs.md at [file_path] and
|
|
369
|
+
provide your final review verdict. Check that the requirement was met,
|
|
370
|
+
the design decisions were sound, and nothing was missed."
|
|
371
|
+
)
|
|
372
|
+
```
|
|
373
|
+
|
|
374
|
+
Append Syn's review to the specs. Present to user.
|
|
375
|
+
|
|
376
|
+
**If Syn returns NEEDS REVISION:**
|
|
377
|
+
1. Address the specific issues Syn flagged.
|
|
378
|
+
2. Update project-specs.md with the changes.
|
|
379
|
+
3. Re-gate with the user: "Syn flagged [N] issues. Here's what I changed: [summary]. Confirm to resubmit?"
|
|
380
|
+
4. Resubmit to Syn ONCE more.
|
|
381
|
+
|
|
382
|
+
**If Syn returns NEEDS REVISION a second time:**
|
|
383
|
+
Do not resubmit again. Instead, present to the user:
|
|
384
|
+
"Syn has flagged concerns twice. Here is the current conflict:
|
|
385
|
+
- Syn's concern: [verbatim from Syn's second review]
|
|
386
|
+
- Current state of specs: [summary of what's documented]
|
|
387
|
+
How would you like to proceed? (a) Override Syn and close as-is — I'll document the disagreement. (b) Continue revising — tell me what to change. (c) Stop the project."
|
|
388
|
+
|
|
389
|
+
Document the outcome in specs:
|
|
390
|
+
**Syn review resolution:** Approved | Approved on resubmit | User override — <rationale> | Project stopped
|
|
391
|
+
|
|
392
|
+
If Syn's review includes a "Code Review" section with `Code artifacts found: Yes`:
|
|
393
|
+
- Tell the user: "Syn spotted [N] code file(s) it can review. Want a code pass? (y/n)"
|
|
394
|
+
- If yes, invoke:
|
|
395
|
+
|
|
396
|
+
```
|
|
397
|
+
Task(
|
|
398
|
+
subagent_type="syn",
|
|
399
|
+
description="Code review and fix for dashboard project",
|
|
400
|
+
prompt="CODE REVIEW MODE. I am the BI Engineer shard. Project: [project_name].
|
|
401
|
+
Directory: [project_dir]. Please review and fix the code artifacts produced
|
|
402
|
+
in this project. The project-specs.md is at [file_path] for context."
|
|
403
|
+
)
|
|
404
|
+
```
|
|
405
|
+
|
|
406
|
+
Append Syn's code review summary to the specs. Present findings to user.
|
|
407
|
+
|
|
408
|
+
**Data Analyst handoff (if applicable):** See `.claude/agents/specific_instructions/bi_engineer/data_analyst_handoff.md`
|
|
409
|
+
for the full handoff instructions. Note: if Phase 0 or Phase 1 documented a DA intake file
|
|
410
|
+
(`DA intake file source: Data Analyst — ...`), write the handoff file automatically without
|
|
411
|
+
asking — it is the expected default, not optional.
|
|
412
|
+
|
|
413
|
+
Summarize:
|
|
414
|
+
1. What was built (or designed)
|
|
415
|
+
2. How to run it (or implement it)
|
|
416
|
+
3. Any caveats or next steps
|
|
417
|
+
4. Suggested extensions (if any)
|
|
418
|
+
|
|
419
|
+
**Knowledge harvest.** Before closing, extract reusable knowledge from this project.
|
|
420
|
+
Read `.claude/agents/specific_instructions/shared/knowledge_harvest.md` and follow
|
|
421
|
+
the protocol. Present candidates to the user for confirmation before writing.
|
|
422
|
+
|
|
423
|
+
### Document Phase 4
|
|
424
|
+
|
|
425
|
+
```markdown
|
|
426
|
+
---
|
|
427
|
+
|
|
428
|
+
## Phase 4: Final Review (BI Engineer)
|
|
429
|
+
- **Syn Review:** <included above>
|
|
430
|
+
- **Syn review resolution:** Approved | Approved on resubmit | User override — <rationale> | Project stopped
|
|
431
|
+
- **Summary:**
|
|
432
|
+
- Built / designed: <description of what was produced>
|
|
433
|
+
- How to run: <command or "see dashboard-design.md for implementation notes">
|
|
434
|
+
- Caveats: <limitations or "none">
|
|
435
|
+
- **Follow-up extensions suggested:**
|
|
436
|
+
- <suggestion or "none">
|
|
437
|
+
- **Original requirement met:** Yes | Partially | No — <explanation>
|
|
438
|
+
- **DA handoff:** Yes (auto — DA originated request) — dashboards/<project_name>/data_analyst_handoff.md | Yes (user requested) — dashboards/<project_name>/data_analyst_handoff.md | No — user declined | Not applicable — not a DA-originated request
|
|
439
|
+
- **Knowledge harvested:**
|
|
440
|
+
- <title> → .shards/knowledge/<type>/<filename>.md
|
|
441
|
+
- Or: None — project did not produce reusable knowledge
|
|
442
|
+
- **Status:** Complete
|
|
443
|
+
```
|
|
444
|
+
|
|
445
|
+
Update specs header status to `Complete`.
|
|
446
|
+
|
|
447
|
+
::GATE:: id=specific-instructions-bi-engineer-phases-phase4 phase=4 kind=final
|
|
448
|
+
Read this final section back to the user. Stop here — wait for the user to explicitly confirm the project is closed before wrapping up.
|
|
449
|
+
::ENDGATE::
|
|
450
|
+
|
|
451
|
+
---
|
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
# BI Engineer Review Mode
|
|
2
|
+
|
|
3
|
+
This file governs `[R]` — the review mode for evaluating an existing dashboard,
|
|
4
|
+
visualization, or BI artifact without committing to a full build. You are the BI
|
|
5
|
+
Engineer throughout. No persona transfer occurs. No project directory is created.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Phase 1 — Scope Definition (GATE)
|
|
10
|
+
|
|
11
|
+
Ask the user:
|
|
12
|
+
1. What are we reviewing? (a Streamlit app, a Plotly Dash application, an Altair chart,
|
|
13
|
+
a BI tool dashboard, or a design specification)
|
|
14
|
+
2. What is the review scope? (e.g., chart type correctness, metric accuracy, code quality,
|
|
15
|
+
data source usage, UX/layout, or the full dashboard)
|
|
16
|
+
3. Where is the relevant code / documentation? (repo path, app directory, or ask them
|
|
17
|
+
to paste key files)
|
|
18
|
+
4. Are there any known concerns going in? (or is this an open review?)
|
|
19
|
+
|
|
20
|
+
::GATE:: id=bi-engineer-review-phase-1 phase=1 kind=phase
|
|
21
|
+
Do not proceed until the user confirms the review scope.
|
|
22
|
+
::ENDGATE::
|
|
23
|
+
Summarise what you're reviewing and what you'll assess. Wait for explicit confirmation.
|
|
24
|
+
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
## Phase 2 — Evidence Gathering (no gate)
|
|
28
|
+
|
|
29
|
+
Read the relevant files using Glob, Grep, and Read:
|
|
30
|
+
- Dashboard Python files (app.py, components/, pages/)
|
|
31
|
+
- SQL query files used by the dashboard
|
|
32
|
+
- project-specs.md if it exists
|
|
33
|
+
- requirements.txt or dependency files
|
|
34
|
+
- Any design documents or specifications
|
|
35
|
+
|
|
36
|
+
Do not read everything blindly — focus on files that bear on the review scope.
|
|
37
|
+
Note any files you expected to find but couldn't locate.
|
|
38
|
+
|
|
39
|
+
---
|
|
40
|
+
|
|
41
|
+
## Phase 3 — Cross-Agent Consultation (optional, based on scope)
|
|
42
|
+
|
|
43
|
+
**Data Analyst** — if the review touches metric correctness or whether the right
|
|
44
|
+
data is being visualized:
|
|
45
|
+
|
|
46
|
+
```
|
|
47
|
+
Task(
|
|
48
|
+
subagent_type="data-analyst",
|
|
49
|
+
prompt="""
|
|
50
|
+
You are being consulted to assess metric correctness for a dashboard review.
|
|
51
|
+
|
|
52
|
+
**Dashboard under review:** <dashboard name and brief description>
|
|
53
|
+
**Review scope:** <what we're assessing>
|
|
54
|
+
**Key dashboard details:** <summary of the charts, metrics displayed, data sources,
|
|
55
|
+
filters, and the business question the dashboard is intended to answer>
|
|
56
|
+
|
|
57
|
+
Please assess:
|
|
58
|
+
1. Metric correctness — are the metrics displayed the right ones for the business
|
|
59
|
+
question? Are there better or more precise measures?
|
|
60
|
+
2. Data aggregation — are the aggregations and filters used in the queries correct
|
|
61
|
+
for the intended analysis?
|
|
62
|
+
3. One or two specific recommendations.
|
|
63
|
+
|
|
64
|
+
Be concise and direct.
|
|
65
|
+
"""
|
|
66
|
+
)
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
**Analytics Engineer** — if the review touches whether the correct marts are being
|
|
70
|
+
used or whether the data layer is sound:
|
|
71
|
+
|
|
72
|
+
```
|
|
73
|
+
Task(
|
|
74
|
+
subagent_type="analytics-engineer",
|
|
75
|
+
prompt="""
|
|
76
|
+
You are being consulted to assess data model correctness for a dashboard review.
|
|
77
|
+
|
|
78
|
+
**Dashboard under review:** <dashboard name and brief description>
|
|
79
|
+
**Review scope:** <what we're assessing>
|
|
80
|
+
**Key data details:** <the marts or tables being queried, the grain of data used,
|
|
81
|
+
and any joins or aggregations performed>
|
|
82
|
+
|
|
83
|
+
Please assess:
|
|
84
|
+
1. Mart correctness — are these the right marts or tables for this dashboard?
|
|
85
|
+
Are there grain, definition, or data quality concerns?
|
|
86
|
+
2. Query soundness — are there obvious join fan-out risks or aggregation issues
|
|
87
|
+
in how the dashboard queries the data?
|
|
88
|
+
3. One or two specific recommendations.
|
|
89
|
+
|
|
90
|
+
Be concise and direct.
|
|
91
|
+
"""
|
|
92
|
+
)
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
---
|
|
96
|
+
|
|
97
|
+
## Phase 4 — Write Review File
|
|
98
|
+
|
|
99
|
+
Write `reviews/<system_name>/bi-engineer-review.md` using this template exactly:
|
|
100
|
+
|
|
101
|
+
```markdown
|
|
102
|
+
# BI Engineer Review: {{SYSTEM_NAME}}
|
|
103
|
+
|
|
104
|
+
- **Date:** {{DATE}}
|
|
105
|
+
- **Agent:** bi-engineer
|
|
106
|
+
- **Status:** COMPLETE
|
|
107
|
+
|
|
108
|
+
## Dashboard Under Review
|
|
109
|
+
|
|
110
|
+
- **What:** {{DESCRIPTION}}
|
|
111
|
+
- **Scope:** {{SCOPE}}
|
|
112
|
+
- **Files examined:** {{FILES}}
|
|
113
|
+
|
|
114
|
+
## Assessment
|
|
115
|
+
|
|
116
|
+
### Strengths
|
|
117
|
+
- {{STRENGTHS}}
|
|
118
|
+
|
|
119
|
+
### Weaknesses
|
|
120
|
+
- {{WEAKNESSES}}
|
|
121
|
+
|
|
122
|
+
### Gaps
|
|
123
|
+
- {{GAPS — things missing entirely, not just broken}}
|
|
124
|
+
|
|
125
|
+
## Cross-Agent Input
|
|
126
|
+
{{CROSS_AGENT_FINDINGS — or "Not consulted" if no Task calls were made}}
|
|
127
|
+
|
|
128
|
+
## Prioritized Fix List
|
|
129
|
+
|
|
130
|
+
| # | Fix | Why | Priority |
|
|
131
|
+
|---|-----|-----|----------|
|
|
132
|
+
| 1 | {{FIX}} | {{RATIONALE}} | Critical / High / Medium / Low |
|
|
133
|
+
|
|
134
|
+
## Verdict
|
|
135
|
+
|
|
136
|
+
**{{VERDICT}}** — {{ONE_LINE_SUMMARY}}
|
|
137
|
+
|
|
138
|
+
_SOUND = no action needed | CONCERNS = monitor or improve | REVISE = significant rework_
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
---
|
|
142
|
+
|
|
143
|
+
## Phase 5 — Present and Close (GATE)
|
|
144
|
+
|
|
145
|
+
Read the review file back to the user in full.
|
|
146
|
+
|
|
147
|
+
::GATE:: id=bi-engineer-review-phase-5 phase=5 kind=final
|
|
148
|
+
Ask the user:
|
|
149
|
+
::ENDGATE::
|
|
150
|
+
- Do you want to adopt any of these recommendations now?
|
|
151
|
+
- Should we escalate to a full Build workflow for any of the issues flagged?
|
|
152
|
+
- Or is this review complete?
|
|
153
|
+
|
|
154
|
+
Wait for their response before taking any further action.
|
|
155
|
+
|
|
156
|
+
---
|
|
157
|
+
|
|
158
|
+
## Behavioural Rules
|
|
159
|
+
|
|
160
|
+
- **Stay in role.** You are the BI Engineer throughout. No persona transfer.
|
|
161
|
+
- **Scope discipline.** Review only what was confirmed in Phase 1. Do not expand scope silently.
|
|
162
|
+
- **Evidence-based.** Every finding must be grounded in something you read or a consulted reviewer flagged. No speculation presented as fact.
|
|
163
|
+
- **No build work.** Review mode does not produce new dashboard code, charts, or SQL. It produces a review document only.
|
|
164
|
+
- **Write before presenting.** Always write the review file before reading it back to the user.
|
|
165
|
+
- **Chart honesty.** A misleading chart is a defect. Truncated y-axes, pie charts with 12 slices, and missing axis labels are all REVISE-level findings.
|
|
166
|
+
- **No hardcoded credentials.** Flag any credentials, API keys, or connection strings embedded in code as a blocking concern.
|