@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,235 @@
|
|
|
1
|
+
> **Previous:** phase-6.md confirmed
|
|
2
|
+
> **Next:** phase-8.md (read only after this phase's gate is confirmed)
|
|
3
|
+
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
## Deep Phase 7 — Build
|
|
7
|
+
|
|
8
|
+
**Context checkpoint:** Before building, prompt the user:
|
|
9
|
+
|
|
10
|
+
"Planning's confirmed — good moment to run `/compact` or `/clear` before we start
|
|
11
|
+
executing. I'll be working from project-specs.md from here. Say the word when
|
|
12
|
+
you're ready."
|
|
13
|
+
|
|
14
|
+
Wait for any signal from the user before beginning build steps.
|
|
15
|
+
|
|
16
|
+
**Knowledge re-check:** Follow `.claude/agents/specific_instructions/shared/knowledge_checkpoint.md` before building.
|
|
17
|
+
|
|
18
|
+
### Incremental testing — checkpoint gates between layers
|
|
19
|
+
|
|
20
|
+
Follow `.claude/agents/specific_instructions/shared/incremental_testing.md` during this build. Each layer below is a checkpoint seam — after a layer's models all build green and their post-build validation (grain, fan-out, nulls, sample) passes, emit a `kind=checkpoint` gate fence (template below) and wait for user confirmation before advancing to the next layer. Do not batch the entire DAG into a single build and eyeball a pass/fail at the end.
|
|
21
|
+
|
|
22
|
+
Checkpoint gate fence — emit exactly this shape. Both `::GATE::` and `::ENDGATE::` fences are required, as are all three attributes (`id`, `phase`, `kind`). No prose outside the fence.
|
|
23
|
+
|
|
24
|
+
```
|
|
25
|
+
::GATE:: id=<agent-name>-phase-<N>-checkpoint-<component> phase=<N> kind=checkpoint
|
|
26
|
+
Component: <human-readable name>
|
|
27
|
+
Test command: <exact command you ran>
|
|
28
|
+
Evidence:
|
|
29
|
+
- <measured fact 1, e.g. "df.shape = (48211, 47)">
|
|
30
|
+
- <measured fact 2, e.g. "null rate on join key = 0.00%">
|
|
31
|
+
- <measured fact 3, e.g. "sample head matches expected schema">
|
|
32
|
+
Status: PASS | FAIL — <one-line summary>
|
|
33
|
+
Next: <what you'll build after this is confirmed>
|
|
34
|
+
Stop here — await explicit confirmation before writing the next component.
|
|
35
|
+
::ENDGATE::
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
Expected checkpoint gate IDs for this phase (emit in order as you build):
|
|
39
|
+
|
|
40
|
+
- `analytics-engineer-deep-phase-7-checkpoint-sources` — sources.yml updates validate; source freshness passes.
|
|
41
|
+
- `analytics-engineer-deep-phase-7-checkpoint-staging` — all staging models build green; grain + sample inspection pass per the post-build rubric.
|
|
42
|
+
- `analytics-engineer-deep-phase-7-checkpoint-intermediate` — intermediate models build green; fan-out verification matches Phase 3 predictions.
|
|
43
|
+
- `analytics-engineer-deep-phase-7-checkpoint-marts` — mart/fact models build green; grain / fan-out / PK-FK null / sample checks all pass.
|
|
44
|
+
- `analytics-engineer-deep-phase-7-checkpoint-tests` — singular tests and snapshot models (if present) run green.
|
|
45
|
+
|
|
46
|
+
The hook blocks all non-read tools while a checkpoint is open. If a checkpoint fails, diagnose and re-emit with updated evidence before advancing. Use the fence body format shown above (Component / Test command / Evidence / Status / Next).
|
|
47
|
+
|
|
48
|
+
Build in this order:
|
|
49
|
+
1. Source definitions (sources.yml updates)
|
|
50
|
+
2. Staging models
|
|
51
|
+
3. Intermediate models
|
|
52
|
+
4. Mart models
|
|
53
|
+
5. Snapshot models (if SCD Type 2)
|
|
54
|
+
6. Schema files with tests and documentation
|
|
55
|
+
7. Singular test files
|
|
56
|
+
|
|
57
|
+
For each model:
|
|
58
|
+
- **Join path trace (models with joins):** Before writing SQL for any model that
|
|
59
|
+
joins tables, trace the join path following
|
|
60
|
+
`.claude/agents/specific_instructions/shared/join_path_protocol.md`. Compare the
|
|
61
|
+
predicted output grain against the grain confirmed in Phase 3. If they diverge,
|
|
62
|
+
fix the design before writing SQL.
|
|
63
|
+
- Write the SQL (CTEs from source to final; use parameterized model references — never hardcoded table names)
|
|
64
|
+
- Write the schema file (model description, column descriptions, all required tests)
|
|
65
|
+
- Run the stack's build/validate command (e.g., `dbt build --select +model_name`) — fix any failures before next model
|
|
66
|
+
- Do not advance to the next model until the current one is green
|
|
67
|
+
- **If UI-Aware Mode is active**: after each model passes validation, re-push the DAG with the completed model highlighted. Use the same `--panel-id` from Phase 4 (e.g., `dag-<project_name>`) so it updates in place. Apply a Mermaid `style` to mark green models (e.g., `style stg_orders fill:#1a3a1a,stroke:#2a6a2a,color:#60a060`)
|
|
68
|
+
- **Post-build validation (per model, after `dbt build` passes):** Run the
|
|
69
|
+
applicable checks below using `dbt show` or the warehouse CLI. If any check
|
|
70
|
+
fails, halt and diagnose before advancing to the next model. In a contract-first
|
|
71
|
+
/ no-data environment (Phase 2 Data sufficiency: Insufficient), skip validation
|
|
72
|
+
queries and note "THEORETICAL — no data to validate" in the build log.
|
|
73
|
+
|
|
74
|
+
**Auto-verify mode**: each layer's post-build sweep is a bulk read-only
|
|
75
|
+
verification stretch. Open `::AUTO-VERIFY:: agent=analytics-engineer phase=7 tool_budget=<N>`
|
|
76
|
+
at the start of the layer's validation pass and `::ENDAUTO::` before
|
|
77
|
+
emitting the layer's checkpoint gate. The hook will auto-approve `dbt show`
|
|
78
|
+
and SELECT-only warehouse-CLI queries while the block is open; `dbt build`
|
|
79
|
+
and writes still prompt. See `specific_instructions/shared/auto_verify_mode.md`.
|
|
80
|
+
|
|
81
|
+
1. **Grain validation** (every model with a stated PK):
|
|
82
|
+
```sql
|
|
83
|
+
select count(*) as total_rows, count(distinct <pk_columns>) as distinct_pks
|
|
84
|
+
from <model>
|
|
85
|
+
-- FAIL if total_rows != distinct_pks
|
|
86
|
+
```
|
|
87
|
+
2. **Join fan-out verification** (models with joins — Tier 2+ from
|
|
88
|
+
`join_path_protocol.md`):
|
|
89
|
+
```sql
|
|
90
|
+
select 'before_join' as stage, count(*) as row_count from <left_model>
|
|
91
|
+
union all
|
|
92
|
+
select 'after_join', count(*)
|
|
93
|
+
from <left_model> join <right_model> on <join_condition>
|
|
94
|
+
-- FAIL if after > before and diverges from predicted fan-out in Phase 3
|
|
95
|
+
```
|
|
96
|
+
3. **PK/FK null check** (mart and fact models):
|
|
97
|
+
```sql
|
|
98
|
+
select '<column>' as col, count(*) as total,
|
|
99
|
+
count(<column>) as non_null,
|
|
100
|
+
round(100.0 * (count(*) - count(<column>)) / nullif(count(*), 0), 2) as null_pct
|
|
101
|
+
from <model>
|
|
102
|
+
-- FAIL if PK has any nulls; WARN if FK null_pct > 5%
|
|
103
|
+
```
|
|
104
|
+
4. **Sample output inspection** (every model):
|
|
105
|
+
`dbt show --select <model> --limit 5` — visually confirm column names,
|
|
106
|
+
types, and values look correct before moving on.
|
|
107
|
+
|
|
108
|
+
Scale to model importance: staging models need only grain + sample; intermediate
|
|
109
|
+
models add fan-out checks if they contain joins; mart/fact models get the full
|
|
110
|
+
suite.
|
|
111
|
+
|
|
112
|
+
**SQL template for staging model** (adapt reference syntax to your stack):
|
|
113
|
+
```sql
|
|
114
|
+
with source as (
|
|
115
|
+
select * from <source_ref('schema', 'table')>
|
|
116
|
+
-- e.g., {{ source('schema', 'table') }} in dbt
|
|
117
|
+
),
|
|
118
|
+
|
|
119
|
+
renamed as (
|
|
120
|
+
select
|
|
121
|
+
-- primary key
|
|
122
|
+
<source_pk_col> as <entity_id>,
|
|
123
|
+
|
|
124
|
+
-- attributes
|
|
125
|
+
<col_a> as <standardized_name>,
|
|
126
|
+
<col_b>::<type> as <standardized_name>,
|
|
127
|
+
|
|
128
|
+
-- metadata
|
|
129
|
+
_loaded_at
|
|
130
|
+
from source
|
|
131
|
+
)
|
|
132
|
+
|
|
133
|
+
select * from renamed
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
**SQL template for intermediate model** (adapt reference syntax to your stack):
|
|
137
|
+
```sql
|
|
138
|
+
with <left_model> as (
|
|
139
|
+
select * from <model_ref('stg_or_int_model')>
|
|
140
|
+
-- e.g., {{ ref('model') }} in dbt
|
|
141
|
+
),
|
|
142
|
+
|
|
143
|
+
<right_model> as (
|
|
144
|
+
select * from <model_ref('stg_or_int_model')>
|
|
145
|
+
),
|
|
146
|
+
|
|
147
|
+
joined as (
|
|
148
|
+
select
|
|
149
|
+
-- grain: one row per <statement>
|
|
150
|
+
<surrogate_key(col_a, col_b)> as <model>_id,
|
|
151
|
+
-- e.g., {{ dbt_utils.generate_surrogate_key(['col_a', 'col_b']) }} in dbt
|
|
152
|
+
|
|
153
|
+
-- dimensions
|
|
154
|
+
l.<col>,
|
|
155
|
+
r.<col>,
|
|
156
|
+
|
|
157
|
+
-- measures
|
|
158
|
+
l.<measure_col>
|
|
159
|
+
from <left_model> as l
|
|
160
|
+
left join <right_model> as r
|
|
161
|
+
on l.<join_key> = r.<join_key>
|
|
162
|
+
),
|
|
163
|
+
|
|
164
|
+
final as (
|
|
165
|
+
select * from joined
|
|
166
|
+
)
|
|
167
|
+
|
|
168
|
+
select * from final
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
**SQL template for mart model** (adapt reference syntax to your stack):
|
|
172
|
+
```sql
|
|
173
|
+
with <source_model> as (
|
|
174
|
+
select * from <model_ref('int_model')>
|
|
175
|
+
),
|
|
176
|
+
|
|
177
|
+
<dimension_model> as (
|
|
178
|
+
select * from <model_ref('dim_model')>
|
|
179
|
+
),
|
|
180
|
+
|
|
181
|
+
-- <add any other CTEs needed>
|
|
182
|
+
|
|
183
|
+
final as (
|
|
184
|
+
select
|
|
185
|
+
-- grain: one row per <statement>
|
|
186
|
+
<surrogate_key(col_a, col_b)> as <mart>_id,
|
|
187
|
+
|
|
188
|
+
-- dimensions
|
|
189
|
+
s.<dim_col>,
|
|
190
|
+
d.<dim_col>,
|
|
191
|
+
|
|
192
|
+
-- measures
|
|
193
|
+
s.<measure_col>,
|
|
194
|
+
|
|
195
|
+
-- metadata
|
|
196
|
+
current_timestamp as _updated_at
|
|
197
|
+
from <source_model> as s
|
|
198
|
+
left join <dimension_model> as d
|
|
199
|
+
on s.<fk_col> = d.<pk_col>
|
|
200
|
+
)
|
|
201
|
+
|
|
202
|
+
select * from final
|
|
203
|
+
```
|
|
204
|
+
|
|
205
|
+
### Document Deep Phase 7
|
|
206
|
+
|
|
207
|
+
```markdown
|
|
208
|
+
---
|
|
209
|
+
|
|
210
|
+
## Deep Phase 7: Build Log (Analytics Engineer)
|
|
211
|
+
- **Files created:**
|
|
212
|
+
- <file path>: <description>
|
|
213
|
+
- **Files modified:**
|
|
214
|
+
- <file path>: <what changed>
|
|
215
|
+
- **Build validation:**
|
|
216
|
+
- Build result: Pass | Fail — <details>
|
|
217
|
+
- Tests passing: <N> / <N>
|
|
218
|
+
- **Post-build validation:**
|
|
219
|
+
| Model | Grain Check | Fan-Out Check | PK/FK Nulls | Sample OK | Notes |
|
|
220
|
+
|-------|-------------|---------------|-------------|-----------|-------|
|
|
221
|
+
| <model> | PASS / FAIL | PASS / FAIL / N/A | PASS / WARN / FAIL | Yes / No | <details or "clean"> |
|
|
222
|
+
- (or "THEORETICAL — no data to validate" if contract-first design)
|
|
223
|
+
- **Deviations from design:** <changes from Phases 4-6 and why, or "none">
|
|
224
|
+
- **Performance notes:** <run time, row counts, anything notable>
|
|
225
|
+
```
|
|
226
|
+
|
|
227
|
+
::GATE:: id=analytics-engineer-deep-phase-7 phase=7 kind=phase validates=analytics_engineer
|
|
228
|
+
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.
|
|
229
|
+
::ENDGATE::
|
|
230
|
+
|
|
231
|
+
---
|
|
232
|
+
|
|
233
|
+
## When this gate is confirmed
|
|
234
|
+
|
|
235
|
+
Read `.claude/agents/specific_instructions/analytics_engineer/phases_deep/phase-8.md` in full and follow its instructions starting from Deep Phase 8. Do not pre-read further phase files.
|
|
@@ -0,0 +1,221 @@
|
|
|
1
|
+
> **Previous:** phase-7.md confirmed
|
|
2
|
+
> **Next:** This is the final phase — follow the Syn sign-off instructions in this phase to close the project.
|
|
3
|
+
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
## Deep Phase 8 — Peer Review and Handoff
|
|
7
|
+
|
|
8
|
+
**Before finalizing**, invoke peer reviews in parallel, then Syn for sign-off.
|
|
9
|
+
|
|
10
|
+
**If Phase 1 documented "Downstream consumer: Dashboard (BI Engineer)"**, invoke four peer reviews in parallel — Data Analyst, Data Modeller, Data Engineer, and BI Engineer. Otherwise, invoke three (Data Analyst, Data Modeller, Data Engineer).
|
|
11
|
+
|
|
12
|
+
Tell the user: "Sending this out for peer review before we call it done. Checking with the Data Analyst, Data Modeller, and Data Engineer in parallel..." (add "and BI Engineer" if applicable).
|
|
13
|
+
|
|
14
|
+
Invoke all applicable reviews in parallel:
|
|
15
|
+
|
|
16
|
+
```
|
|
17
|
+
Task(
|
|
18
|
+
subagent_type="data-analyst",
|
|
19
|
+
description="Business requirements review for [project] mart",
|
|
20
|
+
prompt="I am the Analytics Engineer shard. I've built the [mart_name] mart for
|
|
21
|
+
project [project_name]. The project-specs.md is at [file_path].
|
|
22
|
+
|
|
23
|
+
Please review and return:
|
|
24
|
+
1. Does the mart answer the business questions stated in Phase 1? List each
|
|
25
|
+
question and whether the mart supports it.
|
|
26
|
+
2. Is the grain ([grain_statement]) usable for the analyst queries that will
|
|
27
|
+
run against this mart? Is the grain too fine, too coarse, or correct?
|
|
28
|
+
3. Are there any missing metrics, calculated fields, or dimensions that analysts
|
|
29
|
+
will immediately need and that are not present?
|
|
30
|
+
4. Any naming or column conventions that don't match what analysts expect from
|
|
31
|
+
this project?
|
|
32
|
+
|
|
33
|
+
Keep your response focused on business requirements alignment and analyst usability —
|
|
34
|
+
not implementation details."
|
|
35
|
+
)
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
```
|
|
39
|
+
Task(
|
|
40
|
+
subagent_type="data-modeller",
|
|
41
|
+
description="Grain and entity conformance review for [project] mart",
|
|
42
|
+
prompt="I am the Analytics Engineer shard. I've built the [mart_name] mart for
|
|
43
|
+
project [project_name]. The project-specs.md is at [file_path].
|
|
44
|
+
|
|
45
|
+
Please review and return:
|
|
46
|
+
REVIEW mode — run the full validation suite:
|
|
47
|
+
1. Does the implemented mart match the designed grain from Phase 3?
|
|
48
|
+
Run a PK uniqueness check on [pk_column] in [mart_model].
|
|
49
|
+
2. Do the FK relationships hold? Run null checks on [fk_columns].
|
|
50
|
+
3. Are there any join fan-out issues? Check [specific joins flagged in Phase 3].
|
|
51
|
+
4. Does the mart conform with other marts in the project? Are there
|
|
52
|
+
entity conformance issues?
|
|
53
|
+
|
|
54
|
+
Return in the standard Data Model Review format."
|
|
55
|
+
)
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
```
|
|
59
|
+
Task(
|
|
60
|
+
subagent_type="data-engineer",
|
|
61
|
+
description="Staging and infrastructure review for [project] mart",
|
|
62
|
+
prompt="I am the Analytics Engineer shard. I've built the [mart_name] mart for
|
|
63
|
+
project [project_name]. The project-specs.md is at [file_path].
|
|
64
|
+
|
|
65
|
+
Please review and return:
|
|
66
|
+
1. Are the staging models used by this mart correctly defined? Are there any
|
|
67
|
+
staging layer issues I've inherited?
|
|
68
|
+
2. Are the freshness configs sufficient for the mart's refresh cadence requirement
|
|
69
|
+
([cadence from Phase 1])?
|
|
70
|
+
3. Is the incremental strategy appropriate for the expected data volume and
|
|
71
|
+
query patterns?
|
|
72
|
+
4. Any pipeline concerns I should flag to the user before we ship this?
|
|
73
|
+
|
|
74
|
+
Keep your response focused on staging soundness and infrastructure fit — not
|
|
75
|
+
the transformation logic itself."
|
|
76
|
+
)
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
**BI Engineer mart-usability review (only if Phase 1 downstream consumer is "Dashboard (BI Engineer)"):**
|
|
80
|
+
|
|
81
|
+
```
|
|
82
|
+
Task(
|
|
83
|
+
subagent_type="bi-engineer",
|
|
84
|
+
description="Mart usability review for dashboard consumption — [project]",
|
|
85
|
+
prompt="I am the Analytics Engineer shard. I've built [mart_name] for project [project_name].
|
|
86
|
+
Grain: [grain statement from Phase 3].
|
|
87
|
+
Key columns: [column list from Phase 4 model design].
|
|
88
|
+
Business questions it answers: [from Phase 1].
|
|
89
|
+
Dashboard consumer: [from Phase 1].
|
|
90
|
+
|
|
91
|
+
Please review from a dashboard design perspective:
|
|
92
|
+
1. Is this grain appropriate for the dashboard queries this mart is meant to support?
|
|
93
|
+
2. Are the measure columns pre-aggregated at the right level, or will the dashboard
|
|
94
|
+
need to re-aggregate in ways that create performance or accuracy risk?
|
|
95
|
+
3. Is there a date dimension / date spine suitable for time-series charts?
|
|
96
|
+
4. Are there cardinality concerns in the dimension columns (too many values for
|
|
97
|
+
filter dropdowns)?
|
|
98
|
+
5. Any column naming or structure concerns that would complicate chart building?
|
|
99
|
+
|
|
100
|
+
Keep the review brief and actionable. Return verdict: Suitable | Concerns | Redesign."
|
|
101
|
+
)
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
Apply the Reviewer Verdict Protocol independently for each reviewer (see shared protocol — `data-analyst`, `data-modeller`, `data-engineer`, `bi-engineer` rows). Address all Halt-tier verdicts before invoking Syn.
|
|
105
|
+
|
|
106
|
+
**Then invoke Syn for final sign-off:**
|
|
107
|
+
|
|
108
|
+
Tell the user: "I'm asking Syn to review the full project specs before we ship this..."
|
|
109
|
+
|
|
110
|
+
```
|
|
111
|
+
Task(
|
|
112
|
+
subagent_type="syn",
|
|
113
|
+
description="Final review of analytics engineering specs",
|
|
114
|
+
prompt="I am the Analytics Engineer shard. I've completed all phases for project
|
|
115
|
+
[project_name]. Please review the project-specs.md at [file_path] and provide
|
|
116
|
+
your final review verdict. Peer reviews from Data Analyst, Data Modeller, and
|
|
117
|
+
Data Engineer are appended to the specs."
|
|
118
|
+
)
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
Append Syn's review to specs. Present to user.
|
|
122
|
+
|
|
123
|
+
If Syn's review includes a "Code Review" section with `Code artifacts found: Yes`:
|
|
124
|
+
- Tell the user: "Syn spotted [N] code file(s) it can review. Want a code pass? (y/n)"
|
|
125
|
+
- If yes, invoke:
|
|
126
|
+
|
|
127
|
+
```
|
|
128
|
+
Task(
|
|
129
|
+
subagent_type="syn",
|
|
130
|
+
description="Code review for analytics engineering project",
|
|
131
|
+
prompt="CODE REVIEW MODE. I am the Analytics Engineer shard. Project: [project_name].
|
|
132
|
+
Directory: [project_dir]. Please review and fix the code artifacts produced in
|
|
133
|
+
this project. The project-specs.md is at [file_path] for context."
|
|
134
|
+
)
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
Append Syn's code review summary to the specs. Present findings to user.
|
|
138
|
+
|
|
139
|
+
Then:
|
|
140
|
+
1. Run the full DAG using the stack's build command
|
|
141
|
+
2. Spot-check final mart output (row count, spot-check key metrics)
|
|
142
|
+
3. Summarize in 3-5 bullet points
|
|
143
|
+
4. List all files created/modified
|
|
144
|
+
5. Flag limitations and follow-ups
|
|
145
|
+
|
|
146
|
+
6. **BI dashboard handoff:** See `.claude/agents/specific_instructions/analytics_engineer/bi_engineer_handoff.md` for the full handoff instructions. Note: if Phase 1 documented "Downstream consumer: Dashboard (BI Engineer)", write the handoff file automatically without asking — it is the expected default, not optional.
|
|
147
|
+
|
|
148
|
+
7. **Data Analyst handoff:** See `.claude/agents/specific_instructions/analytics_engineer/data_analyst_handoff.md` for the full handoff instructions. Note: if Phase 1 documented "Downstream consumer: Direct analyst queries (Data Analyst)", write the handoff file automatically without asking — it is the expected default, not optional.
|
|
149
|
+
|
|
150
|
+
**Knowledge harvest.** Before closing, extract reusable knowledge from this project.
|
|
151
|
+
Read `.claude/agents/specific_instructions/shared/knowledge_harvest.md` and follow
|
|
152
|
+
the protocol. Present candidates to the user for confirmation before writing.
|
|
153
|
+
|
|
154
|
+
### Document Deep Phase 8
|
|
155
|
+
|
|
156
|
+
```markdown
|
|
157
|
+
---
|
|
158
|
+
|
|
159
|
+
## Deep Phase 8: Peer Review and Handoff (Analytics Engineer)
|
|
160
|
+
- **Data Analyst review:** <summary of findings>
|
|
161
|
+
- Verdict: Aligned | Concerns raised
|
|
162
|
+
- Tier: Proceed | Proceed with caveats
|
|
163
|
+
- Business requirements met: Yes | Partially | No — <gaps>
|
|
164
|
+
- Grain usability: Correct | Too fine | Too coarse — <notes>
|
|
165
|
+
- Missing elements: <list or "none">
|
|
166
|
+
- Reviewer resolution: Approved | User override — <rationale>
|
|
167
|
+
- **Data Modeller review:** <summary of validation results>
|
|
168
|
+
- Verdict: Sound | Concerns | Revise
|
|
169
|
+
- Tier: Proceed | Proceed with caveats | Halt
|
|
170
|
+
- Grain validation: PASS | FAIL — <details>
|
|
171
|
+
- FK null checks: PASS | FAIL — <details>
|
|
172
|
+
- Conformance: Sound | Issues — <details>
|
|
173
|
+
- Reviewer resolution: Approved | Approved on resubmit | User override — <rationale> | Project stopped
|
|
174
|
+
- **Data Engineer review:** <summary of findings>
|
|
175
|
+
- Verdict: Sound | Concerns
|
|
176
|
+
- Tier: Proceed | Proceed with caveats
|
|
177
|
+
- Staging soundness: Sound | Concerns — <details>
|
|
178
|
+
- Freshness configs: Sufficient | Insufficient — <details>
|
|
179
|
+
- Incremental strategy: Appropriate | Concerns — <details>
|
|
180
|
+
- Reviewer resolution: Approved | User override — <rationale>
|
|
181
|
+
- **BI Engineer mart-usability review:** Not applicable — downstream consumer is not a BI dashboard | <summary of findings>
|
|
182
|
+
- Verdict: Suitable | Concerns | Redesign
|
|
183
|
+
- Date spine: Present | Missing — <notes>
|
|
184
|
+
- Aggregation level: Appropriate | Too fine | Too coarse — <notes>
|
|
185
|
+
- Dimension cardinality: OK | High-cardinality concerns — <details>
|
|
186
|
+
- Reviewer resolution: Approved | User override — <rationale>
|
|
187
|
+
- **Syn Review:** <included above>
|
|
188
|
+
- **Peer review issues addressed:**
|
|
189
|
+
- <issue and fix, or "none — all reviews clean">
|
|
190
|
+
- **End-to-end validation:** Pass | Fail — <details>
|
|
191
|
+
- **Spot-check results:** <mart row count, key metric spot-check>
|
|
192
|
+
- **Summary:**
|
|
193
|
+
1. <plain-language description>
|
|
194
|
+
2. <plain-language description>
|
|
195
|
+
3. <plain-language description>
|
|
196
|
+
- **All files created/modified:**
|
|
197
|
+
- <file path>
|
|
198
|
+
- **Known limitations:**
|
|
199
|
+
- <limitation>
|
|
200
|
+
- **Follow-up actions:**
|
|
201
|
+
- <consumer walkthrough, downstream consumer notification, metrics layer, etc.>
|
|
202
|
+
- **Original request fulfilled:** Yes | Partially | No — <explanation>
|
|
203
|
+
- **BI dashboard handoff:** Yes (auto — BI downstream consumer) — data_models/<project_name>/bi_engineer_handoff.md | Yes (user requested) — data_models/<project_name>/bi_engineer_handoff.md | No — user declined | Not applicable — downstream consumer is not a BI dashboard
|
|
204
|
+
- **DA handoff:** Yes (auto — Data Analyst downstream consumer) — data_models/<project_name>/data_analyst_handoff.md | Yes (user requested) — data_models/<project_name>/data_analyst_handoff.md | No — user declined | Not applicable — downstream consumer is not a Data Analyst
|
|
205
|
+
- **Knowledge harvested:**
|
|
206
|
+
- <title> → .shards/knowledge/<type>/<filename>.md
|
|
207
|
+
- Or: None — project did not produce reusable knowledge
|
|
208
|
+
- **Status:** Complete
|
|
209
|
+
```
|
|
210
|
+
|
|
211
|
+
Update specs header status to `Complete`.
|
|
212
|
+
|
|
213
|
+
::GATE:: id=analytics-engineer-deep-phase-8 phase=8 kind=final
|
|
214
|
+
Read this final section back to the user. Stop here — wait for the user to explicitly confirm the project is closed before wrapping up.
|
|
215
|
+
::ENDGATE::
|
|
216
|
+
|
|
217
|
+
---
|
|
218
|
+
|
|
219
|
+
## When this gate is confirmed
|
|
220
|
+
|
|
221
|
+
This is the final phase. Once Syn returns APPROVED sign-off, the project is complete. Do not read further files.
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# Analytics Engineer — Quick 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 (Quick Track)
|
|
8
|
+
|
|
9
|
+
| # | File | Goal | Gated |
|
|
10
|
+
|---|------------|-----------------------------------------------------------------|-------|
|
|
11
|
+
| 1 | phase-1.md | Scope the change — affected models, blast radius | yes |
|
|
12
|
+
| 2 | phase-2.md | Implement and validate | final (validated) |
|
|
13
|
+
|
|
14
|
+
## How to proceed
|
|
15
|
+
|
|
16
|
+
1. You are now oriented. Do not read phase files beyond the current one.
|
|
17
|
+
2. Start Quick Phase 1 now: Read `phase-1.md` in full and follow its instructions.
|
|
18
|
+
3. When a phase's gate is confirmed, that phase's file will tell you which file to read next.
|
|
19
|
+
4. If the Quick track escalates to Deep (per the escalation rules in phase-2.md), load the phases_deep/ directory.
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
> **Previous:** This is the first phase of the Analytics Engineer Quick Track.
|
|
2
|
+
> **Next:** phase-2.md (read only after this phase's gate is confirmed)
|
|
3
|
+
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
## Quick Phase 1 — Scope the Change
|
|
7
|
+
|
|
8
|
+
Goal: Understand which models are affected and what specifically changes.
|
|
9
|
+
|
|
10
|
+
Ask about:
|
|
11
|
+
- Which model(s) are affected? (exact file path or model name)
|
|
12
|
+
- Current state vs. desired state?
|
|
13
|
+
- Downstream models that depend on affected columns?
|
|
14
|
+
- **What should still be true after this change?** Ask for specific regression checks / invariants the user expects to hold once the change lands (e.g. "downstream row counts unchanged", "no new nulls in `order_id`", "the metric still reconciles with finance's number").
|
|
15
|
+
|
|
16
|
+
Then:
|
|
17
|
+
1. Read the model file and its .yml schema
|
|
18
|
+
2. Trace downstream dependencies via ref()
|
|
19
|
+
3. Assess blast radius of the change
|
|
20
|
+
4. Present the change plan
|
|
21
|
+
|
|
22
|
+
### Document Quick Phase 1
|
|
23
|
+
|
|
24
|
+
```markdown
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
## Quick Phase 1: Change Scope (Analytics Engineer)
|
|
28
|
+
- **Affected model(s):** <model name(s) and file path(s)>
|
|
29
|
+
- **Current state:** <what exists now>
|
|
30
|
+
- **Desired state:** <what should exist after>
|
|
31
|
+
- **Downstream dependencies:** <models referencing affected columns or "none">
|
|
32
|
+
- **Blast radius:** Isolated | Minor (<3 models) | Significant (3+)
|
|
33
|
+
- **Change plan:**
|
|
34
|
+
- <file>: <what changes>
|
|
35
|
+
- **Acceptance criteria (must hold after change):**
|
|
36
|
+
- <criterion 1>
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
::GATE:: id=analytics-engineer-quick-phase-1 phase=1 kind=phase validates=analytics_engineer
|
|
40
|
+
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.
|
|
41
|
+
::ENDGATE::
|
|
42
|
+
|
|
43
|
+
---
|
|
44
|
+
|
|
45
|
+
## When this gate is confirmed
|
|
46
|
+
|
|
47
|
+
Read `.claude/agents/specific_instructions/analytics_engineer/phases_quick/phase-2.md` in full and follow its instructions starting from Quick Phase 2. Do not pre-read further phase files.
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
> **Previous:** phase-1.md confirmed
|
|
2
|
+
> **Next:** This is the final phase of the Quick Track — follow the escalation rules if scope grew, otherwise close the project.
|
|
3
|
+
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
## Quick Phase 2 — Implement and Validate
|
|
7
|
+
|
|
8
|
+
**Context checkpoint:** Before building, prompt the user:
|
|
9
|
+
|
|
10
|
+
"Planning's locked — good moment to run `/compact` or `/clear` before we start
|
|
11
|
+
executing. I'll be working from project-specs.md from here. Say the word when
|
|
12
|
+
you're ready."
|
|
13
|
+
|
|
14
|
+
Wait for any signal from the user before beginning build steps.
|
|
15
|
+
|
|
16
|
+
**Knowledge re-check:** Follow `.claude/agents/specific_instructions/shared/knowledge_checkpoint.md` before building.
|
|
17
|
+
|
|
18
|
+
1. Implement the change in the model SQL and schema file
|
|
19
|
+
2. Update downstream models if column names or types changed
|
|
20
|
+
3. Run the stack's build/validate command to validate
|
|
21
|
+
4. **Post-build validation:** After the build passes, run grain validation
|
|
22
|
+
(`count(*) vs count(distinct pk)`) on each changed model. For models with
|
|
23
|
+
joins, run the fan-out check from `join_path_protocol.md` Tier 2+. Run
|
|
24
|
+
`dbt show --select <model> --limit 5` to confirm output looks right.
|
|
25
|
+
If any check fails, fix before proceeding. Skip if no-data environment.
|
|
26
|
+
5. Summarize what changed
|
|
27
|
+
|
|
28
|
+
**Knowledge harvest.** Before closing, extract reusable knowledge from this project.
|
|
29
|
+
Read `.claude/agents/specific_instructions/shared/knowledge_harvest.md` and follow
|
|
30
|
+
the protocol. Present candidates to the user for confirmation before writing.
|
|
31
|
+
|
|
32
|
+
### Document Quick Phase 2
|
|
33
|
+
|
|
34
|
+
```markdown
|
|
35
|
+
---
|
|
36
|
+
|
|
37
|
+
## Quick Phase 2: Implementation (Analytics Engineer)
|
|
38
|
+
- **Files changed:**
|
|
39
|
+
- <file path>: <what changed>
|
|
40
|
+
- **Downstream updates:** <files updated or "none needed">
|
|
41
|
+
- **Validation result:** Pass | Fail — <details>
|
|
42
|
+
- **Tests passing:** <N> / <N>
|
|
43
|
+
- **Post-build validation:** PASS | FAIL | SKIPPED (no data) — <details>
|
|
44
|
+
- **Follow-up needed:** Yes / No — <if yes, describe>
|
|
45
|
+
- **Knowledge harvested:**
|
|
46
|
+
- <title> → .shards/knowledge/<type>/<filename>.md
|
|
47
|
+
- Or: None — project did not produce reusable knowledge
|
|
48
|
+
- **Status:** Complete
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
Update specs header status to `Complete`.
|
|
52
|
+
|
|
53
|
+
::GATE:: id=analytics-engineer-quick-phase-2 phase=2 kind=final
|
|
54
|
+
Read this section back to the user. Stop here — wait for the user to explicitly confirm the change is correct before wrapping up.
|
|
55
|
+
::ENDGATE::
|
|
56
|
+
|
|
57
|
+
---
|
|
58
|
+
|
|
59
|
+
## Quick-to-Deep Escalation
|
|
60
|
+
|
|
61
|
+
If during Quick Phase 1 or Quick Phase 2 the scope grows beyond a quick change (e.g., blast radius is Significant, new models are needed, or the change requires a full redesign), escalate to the Deep track:
|
|
62
|
+
|
|
63
|
+
1. **Announce:** Tell the user exactly what triggered the escalation and why the Quick track can't handle it.
|
|
64
|
+
2. **Propose:** Recommend switching to the Deep track within the same Analytics Engineer session.
|
|
65
|
+
3. **Preserve context:** Write an `## Escalation Brief` section to `project-specs.md` following the format defined in `.claude/agents/specific_instructions/shared/behavioral_rules.md`. Set the **Target agent** to `Analytics Engineer (Deep Track)`.
|
|
66
|
+
4. **Hand off:** Tell the user:
|
|
67
|
+
|
|
68
|
+
> "This has grown beyond a quick change — [specific trigger]. I recommend switching to the **Deep track** for a full pipeline design.
|
|
69
|
+
>
|
|
70
|
+
> I've written an Escalation Brief to `project-specs.md` so nothing is lost. I'll load the Deep track phases now and pick up from the brief."
|
|
71
|
+
|
|
72
|
+
After the user confirms, read `.claude/agents/specific_instructions/analytics_engineer/phases_deep/index.md` to orient on the Deep Track phases, then read `.claude/agents/specific_instructions/analytics_engineer/phases_deep/phase-1.md` and resume from Deep Phase 1, treating the Escalation Brief as prior context.
|
|
73
|
+
|
|
74
|
+
---
|
|
75
|
+
|
|
76
|
+
## When this gate is confirmed
|
|
77
|
+
|
|
78
|
+
This is the final phase of the Quick Track. If escalation to Deep Track is required (per the Quick-to-Deep Escalation section in this phase), read `.claude/agents/specific_instructions/analytics_engineer/phases_deep/index.md` and continue from there. Otherwise, the project is complete.
|