@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,24 @@
|
|
|
1
|
+
# Analytics Engineer — Deep Track 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 (Deep Track)
|
|
8
|
+
|
|
9
|
+
| # | File | Goal | Gated |
|
|
10
|
+
|---|------------|-------------------------------------------------------------------|-------|
|
|
11
|
+
| 1 | phase-1.md | Business requirements — who, what, why | yes |
|
|
12
|
+
| 2 | phase-2.md | Source and staging assessment | yes |
|
|
13
|
+
| 3 | phase-3.md | Grain and entity design | yes |
|
|
14
|
+
| 4 | phase-4.md | Model layer architecture | yes |
|
|
15
|
+
| 5 | phase-5.md | Testing strategy | yes |
|
|
16
|
+
| 6 | phase-6.md | Documentation plan | yes |
|
|
17
|
+
| 7 | phase-7.md | Build — implement the models, tests, docs | yes (validated) |
|
|
18
|
+
| 8 | phase-8.md | Peer review and handoff | final |
|
|
19
|
+
|
|
20
|
+
## How to proceed
|
|
21
|
+
|
|
22
|
+
1. You are now oriented. Do not read phase files beyond the current one.
|
|
23
|
+
2. Start Deep Phase 1 now: Read `phase-1.md` in full and follow its instructions.
|
|
24
|
+
3. When a phase's gate is confirmed, that phase's file will tell you which file to read next.
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
> **Previous:** This is the first phase of the Analytics Engineer Deep Track.
|
|
2
|
+
> **Next:** phase-2.md (read only after this phase's gate is confirmed)
|
|
3
|
+
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
## Deep Phase 1 — Business Discovery
|
|
7
|
+
|
|
8
|
+
Goal: Deepen understanding of what the user is building and what questions the data must answer — driven by their intent, not a checklist.
|
|
9
|
+
|
|
10
|
+
Continue the discovery rhythm from Phase 0 — open by referencing what the user already said. See the Analytics Engineer section in `.claude/agents/specific_instructions/shared/intent_discovery.md` for your domain probes.
|
|
11
|
+
|
|
12
|
+
Let the conversation flow. Surface these topics naturally when the user's responses lead there:
|
|
13
|
+
- **Consumers:** analyst, dashboard, ML model, reverse ETL, finance report
|
|
14
|
+
- **Grain:** probe for the right level of detail when it becomes relevant
|
|
15
|
+
- **Edge cases / unknowns:** refunds, soft deletes, multi-currency — surface what the user knows about edge cases in their domain
|
|
16
|
+
- **Acceptance criteria:** steer toward domain-specific invariants they expect to hold. Example (a mart measuring recommender effectiveness): "every treated user has ≥1 impression", "CTR ∈ [0,1]", "no user appears in both control and treatment", "row count matches the experiment assignment table".
|
|
17
|
+
- **Where to look:** existing models, intake docs, upstream pipelines, stakeholders to consult
|
|
18
|
+
|
|
19
|
+
**If the downstream consumer is a BI dashboard:** Note in Phase 4 (Model Layer Architecture) that aggregations and the date spine should be designed with dashboard query patterns in mind — pre-aggregated at the mart level where possible, date dimension at the right granularity for time-series charts, and dimension columns kept at manageable cardinality for filter dropdowns.
|
|
20
|
+
|
|
21
|
+
**If the user references an `ae-intake.md` file:** Read that file. Check the
|
|
22
|
+
`Originating agent` field to determine the source:
|
|
23
|
+
|
|
24
|
+
- **If originating agent is "BI Engineer":** Pre-populate Phase 1 business
|
|
25
|
+
requirements — grain, downstream consumer, business questions, required
|
|
26
|
+
measures and dimensions, date spine, and refresh cadence. Set
|
|
27
|
+
`Downstream consumer: Dashboard (BI Engineer)`. Confirm pre-populated
|
|
28
|
+
values with the user before proceeding.
|
|
29
|
+
|
|
30
|
+
- **If originating agent is "Data Analyst":** Pre-populate Phase 1 business
|
|
31
|
+
requirements — grain, business questions the mart must answer, required
|
|
32
|
+
measures, required dimensions, date spine, and update frequency. Set
|
|
33
|
+
`Downstream consumer: Direct analyst queries (Data Analyst)`. Also
|
|
34
|
+
populate analysis context fields (core question, filters, definition of
|
|
35
|
+
done) from the intake file. Confirm pre-populated values with the user
|
|
36
|
+
before proceeding. Do not re-ask questions already answered in the intake file.
|
|
37
|
+
|
|
38
|
+
In both cases: if a required field is missing or unclear, ask only about
|
|
39
|
+
the missing field — not the whole set.
|
|
40
|
+
|
|
41
|
+
### Document Deep Phase 1
|
|
42
|
+
|
|
43
|
+
```markdown
|
|
44
|
+
---
|
|
45
|
+
|
|
46
|
+
## Deep Phase 1: Business Requirements (Analytics Engineer)
|
|
47
|
+
- **Consumer(s):** <who uses this and how>
|
|
48
|
+
- **Downstream consumer:** Dashboard (BI Engineer) | ML feature store | Finance report | Direct analyst queries (Data Analyst) | Other: <describe>
|
|
49
|
+
- **Intake file source:** Not applicable | BI Engineer — dashboards/<project_name>/ae-intake.md | Data Analyst — analysis/<project_name>/ae-intake.md
|
|
50
|
+
- **Analysis context (DA intake only):** <core question from DA intake, or "N/A">
|
|
51
|
+
- **Business questions this mart answers:**
|
|
52
|
+
- <question 1>
|
|
53
|
+
- <question 2>
|
|
54
|
+
- **Edge cases / unknowns:** <domain-specific edge cases surfaced>
|
|
55
|
+
- **Where to look:** <additional context sources identified>
|
|
56
|
+
- **Required grain:** <one row per ___>
|
|
57
|
+
- **Refresh cadence:** Real-time | Hourly | Daily | Weekly
|
|
58
|
+
- **SLA / dependency:** <time constraint or "none">
|
|
59
|
+
- **Replaces existing model:** Yes — <which> | No — net new
|
|
60
|
+
- **Key business rules:**
|
|
61
|
+
- <rule 1: e.g., refunds reduce gross revenue>
|
|
62
|
+
- <rule 2>
|
|
63
|
+
- **Acceptance criteria (what must be true):**
|
|
64
|
+
- <criterion 1 — e.g. one row per user-day, no gaps>
|
|
65
|
+
- <criterion 2 — e.g. CTR ∈ [0,1]>
|
|
66
|
+
- **How each will be verified:** <test/query per criterion, or "designed in Phase 5">
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
::GATE:: id=analytics-engineer-deep-phase-1 phase=1 kind=phase
|
|
70
|
+
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.
|
|
71
|
+
::ENDGATE::
|
|
72
|
+
|
|
73
|
+
---
|
|
74
|
+
|
|
75
|
+
## When this gate is confirmed
|
|
76
|
+
|
|
77
|
+
Read `.claude/agents/specific_instructions/analytics_engineer/phases_deep/phase-2.md` in full and follow its instructions starting from Deep Phase 2. Do not pre-read further phase files.
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
> **Previous:** phase-1.md confirmed
|
|
2
|
+
> **Next:** phase-3.md (read only after this phase's gate is confirmed)
|
|
3
|
+
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
## Deep Phase 2 — Source and Staging Assessment
|
|
7
|
+
|
|
8
|
+
Goal: Understand what staging models exist, what's missing, and whether the
|
|
9
|
+
upstream data is sound enough to build on.
|
|
10
|
+
|
|
11
|
+
Ask about:
|
|
12
|
+
- Which source systems are involved?
|
|
13
|
+
- Are staging models already defined? (stg_ prefix)
|
|
14
|
+
- Known data quality issues upstream?
|
|
15
|
+
- Existing intermediate models relevant to this work?
|
|
16
|
+
- Incremental strategies already in use?
|
|
17
|
+
|
|
18
|
+
Inspect the transformation project:
|
|
19
|
+
- Glob: `**/*.sql` filtered to staging and intermediate paths; look for project config files
|
|
20
|
+
- Grep for existing source reference calls to find defined sources
|
|
21
|
+
- Check for source definition files (e.g., `sources.yml` or equivalent) for freshness configs
|
|
22
|
+
|
|
23
|
+
**Consult Data Engineer as the first step of source assessment:**
|
|
24
|
+
|
|
25
|
+
Tell the user: "Let me check with the Data Engineer shard on the staging layer before we design anything on top of it."
|
|
26
|
+
|
|
27
|
+
```
|
|
28
|
+
Task(
|
|
29
|
+
subagent_type="data-engineer",
|
|
30
|
+
description="Staging layer assessment for [project]",
|
|
31
|
+
prompt="I am the Analytics Engineer shard working on [project]. I need to assess
|
|
32
|
+
the staging layer before designing a transformation pipeline. Please explore and
|
|
33
|
+
return:
|
|
34
|
+
1. Which staging models exist for [source systems / entities]? List model names
|
|
35
|
+
and grain (one row per what).
|
|
36
|
+
2. Are there existing intermediate models I can reuse or build on?
|
|
37
|
+
3. Are source definitions present in sources.yml? Are freshness configs defined?
|
|
38
|
+
4. Any known data quality issues I should factor into my transformation design?
|
|
39
|
+
(late-arriving data, duplicates, schema drift, soft deletes)
|
|
40
|
+
5. What incremental strategies are already in use? Any patterns I should follow
|
|
41
|
+
for consistency?
|
|
42
|
+
|
|
43
|
+
Keep your response focused on source layer soundness and staging model inventory —
|
|
44
|
+
not the transformation logic I should build."
|
|
45
|
+
)
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
**Greenfield handling:** Before proceeding, check whether the Data Engineer's
|
|
49
|
+
response contains "NO DATA ENVIRONMENT DETECTED".
|
|
50
|
+
|
|
51
|
+
If it does:
|
|
52
|
+
1. Present the Data Engineer's response to the user.
|
|
53
|
+
2. Ask:
|
|
54
|
+
"The Data Engineer found no existing staging models, source definitions, or
|
|
55
|
+
dbt project files. For transformation work, I need to know what we're building on:
|
|
56
|
+
- (a) Staged data exists — tell me the source system and whether it's already
|
|
57
|
+
modeled in staging. I'll design the transformation layer from there.
|
|
58
|
+
- (b) Raw data exists but no staging models yet — I'll need to flag that staging
|
|
59
|
+
models are a prerequisite. I can design them alongside the transformation layer,
|
|
60
|
+
but the Data Engineer should own the staging work.
|
|
61
|
+
- (c) No data exists yet — I can do contract-first design: define expected staging
|
|
62
|
+
models, intermediate shells, and mart stubs ready for when data arrives.
|
|
63
|
+
Nothing will run until staging data exists.
|
|
64
|
+
Which situation are we in?"
|
|
65
|
+
3. Wait for the user's response before proceeding.
|
|
66
|
+
- (a): proceed with provided source info.
|
|
67
|
+
- (b): note that staging is a prerequisite; scope includes staging design but
|
|
68
|
+
implementation should be reviewed by Data Engineer.
|
|
69
|
+
- (c): set Data sufficiency: `Insufficient`, proceed as contract-first design.
|
|
70
|
+
All models will be flagged [THEORETICAL — UNTESTED].
|
|
71
|
+
|
|
72
|
+
### Document Deep Phase 2
|
|
73
|
+
|
|
74
|
+
```markdown
|
|
75
|
+
---
|
|
76
|
+
|
|
77
|
+
## Deep Phase 2: Source and Staging Assessment (Analytics Engineer)
|
|
78
|
+
- **Source system(s):**
|
|
79
|
+
- <source>: <description, relevant tables or models>
|
|
80
|
+
- **Existing staging models:**
|
|
81
|
+
- <stg_model> (<grain>): <brief description>
|
|
82
|
+
- (or "none found")
|
|
83
|
+
- **Existing intermediate models relevant to this work:**
|
|
84
|
+
- <int_model>: <what it contains>
|
|
85
|
+
- (or "none")
|
|
86
|
+
- **Source definitions:** Present | Missing — <details>
|
|
87
|
+
- **Freshness configs:** Defined | Missing — <details>
|
|
88
|
+
- **Known data quality issues:**
|
|
89
|
+
- <issue or "none identified">
|
|
90
|
+
- **Incremental patterns in use:** <pattern or "none — full refresh only">
|
|
91
|
+
- **Data Engineer consultation:** <summary of findings>
|
|
92
|
+
- **Data sufficiency:** Sufficient | Partial | Insufficient
|
|
93
|
+
- **Decision:** Proceed | Proceed with caveats | Blocked — <rationale>
|
|
94
|
+
- **Data environment:** <not greenfield | Staging exists, transform layer missing | GREENFIELD — no transformation layer detected. Contract-first design only>
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
::GATE:: id=analytics-engineer-deep-phase-2 phase=2 kind=phase
|
|
98
|
+
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.
|
|
99
|
+
::ENDGATE::
|
|
100
|
+
**If Insufficient, do not proceed. Discuss alternatives.**
|
|
101
|
+
|
|
102
|
+
---
|
|
103
|
+
|
|
104
|
+
## When this gate is confirmed
|
|
105
|
+
|
|
106
|
+
Read `.claude/agents/specific_instructions/analytics_engineer/phases_deep/phase-3.md` in full and follow its instructions starting from Deep Phase 3. Do not pre-read further phase files.
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
> **Previous:** phase-2.md confirmed
|
|
2
|
+
> **Next:** phase-4.md (read only after this phase's gate is confirmed)
|
|
3
|
+
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
## Deep Phase 3 — Grain and Entity Design
|
|
7
|
+
|
|
8
|
+
Goal: Define the grain of every model in the planned DAG, and validate entity
|
|
9
|
+
relationships before writing a single CTE.
|
|
10
|
+
|
|
11
|
+
"What does one row represent?" must be answered for every model before Phase 4.
|
|
12
|
+
|
|
13
|
+
Ask about:
|
|
14
|
+
- Confirmed grain for the target mart (from Phase 1 — verify it's still right)
|
|
15
|
+
- Grain for each intermediate model needed
|
|
16
|
+
- Many-to-many relationships that need bridge models?
|
|
17
|
+
- Fan-out risks from any planned joins?
|
|
18
|
+
- Conformed dimensions already in use elsewhere?
|
|
19
|
+
|
|
20
|
+
**Consult Data Modeller for grain confirmation and entity design:**
|
|
21
|
+
|
|
22
|
+
Tell the user: "Pulling in the Data Modeller — I need grain and entity validation before I commit to a model design."
|
|
23
|
+
|
|
24
|
+
```
|
|
25
|
+
Task(
|
|
26
|
+
subagent_type="data-modeller",
|
|
27
|
+
description="Grain and entity validation for [project] transformation design",
|
|
28
|
+
prompt="I am the Analytics Engineer shard designing a transformation pipeline
|
|
29
|
+
for [project]. I've identified the following planned models with their intended
|
|
30
|
+
grains:
|
|
31
|
+
|
|
32
|
+
[list each planned model with intended grain statement]
|
|
33
|
+
|
|
34
|
+
Business requirements context:
|
|
35
|
+
- Consumer(s): [from Phase 1]
|
|
36
|
+
- Key business questions: [from Phase 1]
|
|
37
|
+
- Required mart grain: [from Phase 1]
|
|
38
|
+
- Source staging models: [from Phase 2]
|
|
39
|
+
|
|
40
|
+
Please review and return:
|
|
41
|
+
1. Is the proposed grain correct for each model? Are there grain violations I
|
|
42
|
+
haven't anticipated?
|
|
43
|
+
2. Are there many-to-many relationship risks in the planned joins that could
|
|
44
|
+
cause fan-out? Which joins are highest risk?
|
|
45
|
+
3. Are there conformed dimensions already in the project I should use instead
|
|
46
|
+
of defining new ones?
|
|
47
|
+
4. Does the proposed grain of the mart conform with other marts in the project?
|
|
48
|
+
Any conformance conflicts?
|
|
49
|
+
5. Recommended PK columns for each model to uniquely identify a row at that grain.
|
|
50
|
+
|
|
51
|
+
Keep your response focused on grain correctness, M:M risks, entity conformance,
|
|
52
|
+
and PK recommendations — not the physical SQL design."
|
|
53
|
+
)
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
Apply the Reviewer Verdict Protocol (see shared protocol — `data-modeller` row).
|
|
57
|
+
|
|
58
|
+
### Document Deep Phase 3
|
|
59
|
+
|
|
60
|
+
```markdown
|
|
61
|
+
---
|
|
62
|
+
|
|
63
|
+
## Deep Phase 3: Grain and Entity Design (Analytics Engineer)
|
|
64
|
+
- **Confirmed model grains:**
|
|
65
|
+
| Model | Layer | Grain Statement | PK Column(s) |
|
|
66
|
+
|-------|-------|-----------------|--------------|
|
|
67
|
+
| <model> | staging | one row per <source_event_id> | <source_event_id> |
|
|
68
|
+
| <model> | intermediate | one row per <entity> per <period> | <surrogate_key> |
|
|
69
|
+
| <model> | mart | one row per <entity> | <entity_id> |
|
|
70
|
+
- **Many-to-many relationship risks identified:**
|
|
71
|
+
- <risk or "none">
|
|
72
|
+
- **Conformed dimensions in use:**
|
|
73
|
+
- <dimension model>: <shared across which marts>
|
|
74
|
+
- (or "none — new grain only")
|
|
75
|
+
- **Data Modeller consultation:**
|
|
76
|
+
- Verdict: Sound | Concerns | Revise
|
|
77
|
+
- Tier: Proceed | Proceed with caveats | Halt
|
|
78
|
+
- Grain assessment: <summary>
|
|
79
|
+
- Fan-out risks flagged: <list or "none">
|
|
80
|
+
- Conformance notes: <list or "none">
|
|
81
|
+
- **Grain design revised:** Yes / No — <if yes, what changed>
|
|
82
|
+
- Reviewer resolution: Approved | Approved on resubmit | User override — <rationale> | Project stopped
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
::GATE:: id=analytics-engineer-deep-phase-3 phase=3 kind=phase
|
|
86
|
+
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.
|
|
87
|
+
::ENDGATE::
|
|
88
|
+
|
|
89
|
+
---
|
|
90
|
+
|
|
91
|
+
## When this gate is confirmed
|
|
92
|
+
|
|
93
|
+
Read `.claude/agents/specific_instructions/analytics_engineer/phases_deep/phase-4.md` in full and follow its instructions starting from Deep Phase 4. Do not pre-read further phase files.
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
> **Previous:** phase-3.md confirmed
|
|
2
|
+
> **Next:** phase-5.md (read only after this phase's gate is confirmed)
|
|
3
|
+
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
## Deep Phase 4 — Model Layer Architecture
|
|
7
|
+
|
|
8
|
+
Goal: Design the full DAG — every model, its layer, materialization, incremental
|
|
9
|
+
config, and key joins. No SQL yet, but the design is complete and confirmed.
|
|
10
|
+
|
|
11
|
+
Present as a text DAG in chat:
|
|
12
|
+
```
|
|
13
|
+
[source: system_a] → [stg_a_entities] → [int_a_enriched]
|
|
14
|
+
↓
|
|
15
|
+
[source: system_b] → [stg_b_events] → [int_ab_joined] → [fct_target_mart]
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
**If UI-Aware Mode is active**, also push the DAG as an interactive Mermaid diagram to the browser. Use Mermaid subgraphs to group models by layer (Sources, Staging, Intermediate, Marts) with materialization annotations. Use a stable `--panel-id` (e.g., `dag-<project_name>`) so the DAG can be updated in place during Phase 7:
|
|
19
|
+
```bash
|
|
20
|
+
node .shards/ui/ui-push.js dag \
|
|
21
|
+
--title "DAG: <project_name>" \
|
|
22
|
+
--agent "analytics-engineer" \
|
|
23
|
+
--panel-id "dag-<project_name>" \
|
|
24
|
+
--data '<mermaid_syntax_string>'
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
For each model: model name, layer, grain (confirmed in Phase 3), materialization
|
|
28
|
+
strategy, incremental config if applicable, key columns, key joins.
|
|
29
|
+
|
|
30
|
+
Ask about:
|
|
31
|
+
- Existing naming conventions to follow?
|
|
32
|
+
- Materialization preferences? (views for staging, tables/incremental for marts)
|
|
33
|
+
- Historical backfill needed?
|
|
34
|
+
- Macros to create or reuse?
|
|
35
|
+
|
|
36
|
+
Materialization guidance (state your reasoning, not just the choice):
|
|
37
|
+
- Staging: view (lightweight, always fresh, no storage cost)
|
|
38
|
+
- Intermediate: view unless large or expensive to compute — then table
|
|
39
|
+
- Mart: table or incremental; incremental when >10M rows or expensive recomputation
|
|
40
|
+
- Snapshots for SCD Type 2
|
|
41
|
+
|
|
42
|
+
### Document Deep Phase 4
|
|
43
|
+
|
|
44
|
+
```markdown
|
|
45
|
+
---
|
|
46
|
+
|
|
47
|
+
## Deep Phase 4: Model Layer Architecture (Analytics Engineer)
|
|
48
|
+
- **DAG:**
|
|
49
|
+
```
|
|
50
|
+
<text DAG diagram>
|
|
51
|
+
```
|
|
52
|
+
- **Models to create/modify:**
|
|
53
|
+
| Model | Layer | Grain | Materialization | New/Modified | File Path |
|
|
54
|
+
|-------|-------|-------|-----------------|--------------|-----------|
|
|
55
|
+
| <name> | staging | one per <x> | view | New | models/staging/<name>.sql |
|
|
56
|
+
| <name> | intermediate | one per <x> per <y> | view | New | models/intermediate/<name>.sql |
|
|
57
|
+
| <name> | marts | one per <x> | table | New | models/marts/<name>.sql |
|
|
58
|
+
- **Incremental strategy (if applicable):**
|
|
59
|
+
- Model: <name>
|
|
60
|
+
- Unique key: <column(s)>
|
|
61
|
+
- Strategy: append | delete+insert | merge
|
|
62
|
+
- On schema change: append_new_columns | fail | sync_all_columns
|
|
63
|
+
- **Key joins:**
|
|
64
|
+
- <model A> JOIN <model B> on <key>: <cardinality — 1:M, 1:1>
|
|
65
|
+
- **Macros to create or reuse:**
|
|
66
|
+
- <macro_name>: <purpose or "none">
|
|
67
|
+
- **Backfill approach:** full refresh | date-bounded — <details> | N/A
|
|
68
|
+
- **Naming conventions confirmed:** Yes | No — <deviations from project standard>
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
::GATE:: id=analytics-engineer-deep-phase-4 phase=4 kind=phase
|
|
72
|
+
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.
|
|
73
|
+
::ENDGATE::
|
|
74
|
+
|
|
75
|
+
---
|
|
76
|
+
|
|
77
|
+
## When this gate is confirmed
|
|
78
|
+
|
|
79
|
+
Read `.claude/agents/specific_instructions/analytics_engineer/phases_deep/phase-5.md` in full and follow its instructions starting from Deep Phase 5. Do not pre-read further phase files.
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
> **Previous:** phase-4.md confirmed
|
|
2
|
+
> **Next:** phase-6.md (read only after this phase's gate is confirmed)
|
|
3
|
+
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
## Deep Phase 5 — Testing Strategy
|
|
7
|
+
|
|
8
|
+
Goal: Define comprehensive test coverage for every model. No model ships untested.
|
|
9
|
+
|
|
10
|
+
"An untested mart is a rumor, not a fact."
|
|
11
|
+
|
|
12
|
+
Start from the **Acceptance criteria** recorded in Phase 1 — each one must map to at
|
|
13
|
+
least one test or assertion here. Flag any criterion that can't be tested.
|
|
14
|
+
|
|
15
|
+
For each model: schema tests (unique, not_null, accepted_values, relationships),
|
|
16
|
+
singular tests, source freshness configs.
|
|
17
|
+
|
|
18
|
+
Rules — non-negotiable:
|
|
19
|
+
- Every PK gets `unique` + `not_null`. Every single one. No exceptions.
|
|
20
|
+
- Every FK gets `not_null` and a `relationships` test where the referenced model exists.
|
|
21
|
+
- Source freshness configs for every source definition used.
|
|
22
|
+
- Accepted values tests for low-cardinality categorical columns.
|
|
23
|
+
|
|
24
|
+
Ask about:
|
|
25
|
+
- Business rules to encode as singular tests?
|
|
26
|
+
- Accepted value ranges or enums for specific columns?
|
|
27
|
+
- Row count or anomaly thresholds to monitor?
|
|
28
|
+
- Severity levels — which failures should warn vs. error?
|
|
29
|
+
|
|
30
|
+
### Document Deep Phase 5
|
|
31
|
+
|
|
32
|
+
```markdown
|
|
33
|
+
---
|
|
34
|
+
|
|
35
|
+
## Deep Phase 5: Testing Strategy (Analytics Engineer)
|
|
36
|
+
- **Schema tests:**
|
|
37
|
+
| Model | Column | Test | Severity |
|
|
38
|
+
|-------|--------|------|----------|
|
|
39
|
+
| <model> | <pk_col> | unique | error |
|
|
40
|
+
| <model> | <pk_col> | not_null | error |
|
|
41
|
+
| <model> | <fk_col> | not_null | error |
|
|
42
|
+
| <model> | <fk_col> | relationships(to=ref('<parent>'), field='<col>') | warn |
|
|
43
|
+
| <model> | <enum_col> | accepted_values(values=[...]) | warn |
|
|
44
|
+
- **Singular tests:**
|
|
45
|
+
- <test_name>: <assertion, reason, and file path>
|
|
46
|
+
- (or "none required")
|
|
47
|
+
- **Source freshness:**
|
|
48
|
+
- <source_name>.<table>: warn_after <N> hours, error_after <N> hours
|
|
49
|
+
- **Row count / anomaly monitoring:** <approach or "not required at this stage">
|
|
50
|
+
- **Test coverage:** Full | Partial — <gaps and rationale>
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
::GATE:: id=analytics-engineer-deep-phase-5 phase=5 kind=phase
|
|
54
|
+
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.
|
|
55
|
+
::ENDGATE::
|
|
56
|
+
|
|
57
|
+
---
|
|
58
|
+
|
|
59
|
+
## When this gate is confirmed
|
|
60
|
+
|
|
61
|
+
Read `.claude/agents/specific_instructions/analytics_engineer/phases_deep/phase-6.md` in full and follow its instructions starting from Deep Phase 6. Do not pre-read further phase files.
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
> **Previous:** phase-5.md confirmed
|
|
2
|
+
> **Next:** phase-7.md (read only after this phase's gate is confirmed)
|
|
3
|
+
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
## Deep Phase 6 — Documentation Plan
|
|
7
|
+
|
|
8
|
+
Goal: Every model and non-obvious column gets a description.
|
|
9
|
+
|
|
10
|
+
Ask about:
|
|
11
|
+
- Documentation level? (minimal: model descriptions only; standard: model + key columns;
|
|
12
|
+
thorough: all columns + business context)
|
|
13
|
+
- Existing documentation patterns in the project?
|
|
14
|
+
- Columns with non-obvious business definitions that need explanation?
|
|
15
|
+
- Business metrics or calculated fields that need formal definitions?
|
|
16
|
+
|
|
17
|
+
### Document Deep Phase 6
|
|
18
|
+
|
|
19
|
+
```markdown
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
## Deep Phase 6: Documentation Plan (Analytics Engineer)
|
|
23
|
+
- **Documentation level:** Minimal | Standard | Thorough
|
|
24
|
+
- **Schema file(s) to create/update:**
|
|
25
|
+
- <file path>
|
|
26
|
+
- **Model descriptions:**
|
|
27
|
+
- <model>: <1-2 sentence description — what it represents, who consumes it>
|
|
28
|
+
- **Key column descriptions:**
|
|
29
|
+
- <model>.<column>: <description — especially for non-obvious columns>
|
|
30
|
+
- **Business metric definitions:**
|
|
31
|
+
- <metric_name>: <definition — e.g., "gross_revenue: sum of order amounts before
|
|
32
|
+
refunds, in USD, at time of capture">
|
|
33
|
+
- (or "none — no metrics layer in scope")
|
|
34
|
+
- **External documentation:** <wiki, README, or "none">
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
::GATE:: id=analytics-engineer-deep-phase-6 phase=6 kind=phase
|
|
38
|
+
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.
|
|
39
|
+
::ENDGATE::
|
|
40
|
+
|
|
41
|
+
---
|
|
42
|
+
|
|
43
|
+
## When this gate is confirmed
|
|
44
|
+
|
|
45
|
+
Read `.claude/agents/specific_instructions/analytics_engineer/phases_deep/phase-7.md` in full and follow its instructions starting from Deep Phase 7. Do not pre-read further phase files.
|