@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,48 @@
|
|
|
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 — Testing Strategy
|
|
7
|
+
|
|
8
|
+
Goal: Define tests for data quality and regression prevention.
|
|
9
|
+
|
|
10
|
+
Start from the **Acceptance criteria** recorded in Phase 1 — each one must map to at
|
|
11
|
+
least one test or assertion here. Flag any criterion that can't be tested.
|
|
12
|
+
|
|
13
|
+
Ask about:
|
|
14
|
+
- Primary keys at each layer?
|
|
15
|
+
- Business rules to encode as tests?
|
|
16
|
+
- Accepted value ranges or enums?
|
|
17
|
+
- Source freshness tests needed?
|
|
18
|
+
- Row count or anomaly thresholds?
|
|
19
|
+
|
|
20
|
+
Define: schema tests (.yml), custom data tests (tests/), source freshness.
|
|
21
|
+
|
|
22
|
+
### Document Deep Phase 4
|
|
23
|
+
|
|
24
|
+
```markdown
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
## Deep Phase 4: Testing Strategy (Data Engineer)
|
|
28
|
+
- **Schema tests:**
|
|
29
|
+
| Model | Column | Test | Severity |
|
|
30
|
+
|-------|--------|------|----------|
|
|
31
|
+
| <model> | <col> | unique | error |
|
|
32
|
+
- **Custom data tests:**
|
|
33
|
+
- <test name>: <assertion and why>
|
|
34
|
+
- **Source freshness:**
|
|
35
|
+
- <source>: warn_after <N> hours, error_after <N> hours
|
|
36
|
+
- **Row count / anomaly monitoring:** <approach or "not required">
|
|
37
|
+
- **Test coverage:** Full | Partial — <gaps>
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
::GATE:: id=data-engineer-deep-phase-4 phase=4 kind=phase
|
|
41
|
+
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.
|
|
42
|
+
::ENDGATE::
|
|
43
|
+
|
|
44
|
+
---
|
|
45
|
+
|
|
46
|
+
## When this gate is confirmed
|
|
47
|
+
|
|
48
|
+
Read `.claude/agents/specific_instructions/data_engineer/phases_deep/phase-5.md` in full and follow its instructions starting from Deep Phase 5.
|
|
@@ -0,0 +1,40 @@
|
|
|
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 — Documentation Plan
|
|
7
|
+
|
|
8
|
+
Goal: Document every model and column for downstream consumers.
|
|
9
|
+
|
|
10
|
+
Ask about:
|
|
11
|
+
- Documentation level? (minimal, standard, thorough)
|
|
12
|
+
- Existing documentation patterns?
|
|
13
|
+
- Columns needing business-context descriptions?
|
|
14
|
+
|
|
15
|
+
### Document Deep Phase 5
|
|
16
|
+
|
|
17
|
+
```markdown
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
## Deep Phase 5: Documentation Plan (Data Engineer)
|
|
21
|
+
- **Documentation level:** Minimal | Standard | Thorough
|
|
22
|
+
- **Schema file(s):**
|
|
23
|
+
- <file path>
|
|
24
|
+
- **Model descriptions:**
|
|
25
|
+
- <model>: <1-2 sentence description>
|
|
26
|
+
- **Key column descriptions:**
|
|
27
|
+
- <model>.<column>: <description>
|
|
28
|
+
- **Business context notes:** <columns needing extra context>
|
|
29
|
+
- **External documentation:** <wiki, README, or "none">
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
::GATE:: id=data-engineer-deep-phase-5 phase=5 kind=phase
|
|
33
|
+
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.
|
|
34
|
+
::ENDGATE::
|
|
35
|
+
|
|
36
|
+
---
|
|
37
|
+
|
|
38
|
+
## When this gate is confirmed
|
|
39
|
+
|
|
40
|
+
Read `.claude/agents/specific_instructions/data_engineer/phases_deep/phase-6.md` in full and follow its instructions starting from Deep Phase 6.
|
|
@@ -0,0 +1,102 @@
|
|
|
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 — Build
|
|
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
|
+
### 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 tests pass, emit a `kind=checkpoint` gate fence (template below) and wait for user confirmation before advancing to the next layer. Do not chain `dbt build` across all layers in one shot 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
|
+
- `data-engineer-deep-phase-6-checkpoint-sources` — source definitions compile; `dbt source freshness` (or equivalent) passes.
|
|
41
|
+
- `data-engineer-deep-phase-6-checkpoint-staging` — all staging models build green; schema tests pass; row counts match source expectations.
|
|
42
|
+
- `data-engineer-deep-phase-6-checkpoint-intermediate` — intermediate models build green; join fan-out verification queries match Phase 3 predictions.
|
|
43
|
+
- `data-engineer-deep-phase-6-checkpoint-marts` — mart models build green; grain-uniqueness tests pass; sample output inspected.
|
|
44
|
+
|
|
45
|
+
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).
|
|
46
|
+
|
|
47
|
+
Build in order:
|
|
48
|
+
1. Source definitions
|
|
49
|
+
2. Staging models
|
|
50
|
+
3. Intermediate models
|
|
51
|
+
4. Mart models
|
|
52
|
+
5. Schema files with tests and docs
|
|
53
|
+
6. Custom data tests
|
|
54
|
+
|
|
55
|
+
For each model: write SQL → write .yml → run `dbt build --select +model_name` → fix failures.
|
|
56
|
+
|
|
57
|
+
**Post-build join verification:** After each model that includes joins builds
|
|
58
|
+
successfully, run the Tier 2+ verification queries from the join path protocol
|
|
59
|
+
(row count before/after join). If actual fan-out diverges from the predicted
|
|
60
|
+
fan-out in Phase 3, halt and diagnose before advancing to the next model.
|
|
61
|
+
|
|
62
|
+
**Auto-verify mode**: when the layer has 3+ models with joins, the sweep of
|
|
63
|
+
count-before / count-after queries is the bulk read-only verification pattern
|
|
64
|
+
auto-verify is for. Open `::AUTO-VERIFY:: agent=data-engineer phase=6` before
|
|
65
|
+
the sweep, `::ENDAUTO::` after. See
|
|
66
|
+
`specific_instructions/shared/auto_verify_mode.md`.
|
|
67
|
+
|
|
68
|
+
**SQL loading rule (Python scripts only)** — dbt model files are `.sql` by nature.
|
|
69
|
+
If any Python scripts are produced (e.g., data loaders, custom macros, orchestration
|
|
70
|
+
helpers), **do NOT embed SQL as Python strings.** Write the SQL to a separate `.sql`
|
|
71
|
+
file and read it with `Path.read_text()`:
|
|
72
|
+
```python
|
|
73
|
+
from pathlib import Path
|
|
74
|
+
sql = Path("models/marts/mart_name.sql").read_text()
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
### Document Deep Phase 6
|
|
78
|
+
|
|
79
|
+
```markdown
|
|
80
|
+
---
|
|
81
|
+
|
|
82
|
+
## Deep Phase 6: Build Log (Data Engineer)
|
|
83
|
+
- **Files created:**
|
|
84
|
+
- <file path>: <description>
|
|
85
|
+
- **Files modified:**
|
|
86
|
+
- <file path>: <what changed>
|
|
87
|
+
- **Build validation:**
|
|
88
|
+
- `dbt build` result: Pass | Fail — <details>
|
|
89
|
+
- Tests passing: <N> / <N>
|
|
90
|
+
- **Deviations from design:** <changes and why, or "none">
|
|
91
|
+
- **Performance notes:** <run time, row counts, anything notable>
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
::GATE:: id=data-engineer-deep-phase-6 phase=6 kind=phase validates=data_engineer
|
|
95
|
+
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.
|
|
96
|
+
::ENDGATE::
|
|
97
|
+
|
|
98
|
+
---
|
|
99
|
+
|
|
100
|
+
## When this gate is confirmed
|
|
101
|
+
|
|
102
|
+
Read `.claude/agents/specific_instructions/data_engineer/phases_deep/phase-7.md` in full and follow its instructions starting from Deep Phase 7.
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
> **Previous:** phase-6.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 7 — Review and Handoff
|
|
7
|
+
|
|
8
|
+
**Before finalizing**, invoke Syn for final review:
|
|
9
|
+
|
|
10
|
+
Tell the user: "I'm asking Syn to review the full project specs before we ship this..."
|
|
11
|
+
|
|
12
|
+
```
|
|
13
|
+
Task(
|
|
14
|
+
subagent_type="syn",
|
|
15
|
+
description="Final review of data engineering specs",
|
|
16
|
+
prompt="I am the Data Engineer shard. I've completed all phases for project
|
|
17
|
+
[project_name]. Please review the project-specs.md at [file_path] and provide
|
|
18
|
+
your final review verdict."
|
|
19
|
+
)
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
Append Syn's review to specs. Present to user.
|
|
23
|
+
|
|
24
|
+
If Syn's review includes a "Code Review" section with `Code artifacts found: Yes`:
|
|
25
|
+
- Tell the user: "Syn spotted [N] code file(s) it can review. Want a code pass? (y/n)"
|
|
26
|
+
- If yes, invoke:
|
|
27
|
+
|
|
28
|
+
```
|
|
29
|
+
Task(
|
|
30
|
+
subagent_type="syn",
|
|
31
|
+
description="Code review and fix for data engineering project",
|
|
32
|
+
prompt="CODE REVIEW MODE. I am the Data Engineer shard. Project: [project_name].
|
|
33
|
+
Directory: [project_dir]. Please review and fix the code artifacts produced
|
|
34
|
+
in this project. The project-specs.md is at [file_path] for context."
|
|
35
|
+
)
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
Append Syn's code review summary to the specs. Present findings to user.
|
|
39
|
+
|
|
40
|
+
Then:
|
|
41
|
+
1. Run full DAG: `dbt build --select +mart_name`
|
|
42
|
+
2. Spot-check final output
|
|
43
|
+
3. Summarize in 3-5 bullet points
|
|
44
|
+
4. List all files created/modified
|
|
45
|
+
5. Flag limitations and follow-ups
|
|
46
|
+
|
|
47
|
+
**Knowledge harvest.** Before closing, extract reusable knowledge from this project.
|
|
48
|
+
Read `.claude/agents/specific_instructions/shared/knowledge_harvest.md` and follow
|
|
49
|
+
the protocol. Present candidates to the user for confirmation before writing.
|
|
50
|
+
|
|
51
|
+
### Document Deep Phase 7
|
|
52
|
+
|
|
53
|
+
```markdown
|
|
54
|
+
---
|
|
55
|
+
|
|
56
|
+
## Deep Phase 7: Review and Handoff (Data Engineer)
|
|
57
|
+
- **Syn Review:** <included above>
|
|
58
|
+
- **End-to-end validation:** Pass | Fail — <details>
|
|
59
|
+
- **Spot-check results:** <comparison to expected values>
|
|
60
|
+
- **Summary:**
|
|
61
|
+
1. <plain-language description>
|
|
62
|
+
2. <plain-language description>
|
|
63
|
+
3. <plain-language description>
|
|
64
|
+
- **All files created/modified:**
|
|
65
|
+
- <file path>
|
|
66
|
+
- **Known limitations:**
|
|
67
|
+
- <limitation>
|
|
68
|
+
- **Follow-up actions:**
|
|
69
|
+
- <scheduling, permissions, consumer walkthrough, etc.>
|
|
70
|
+
- **Original request fulfilled:** Yes | Partially | No — <explanation>
|
|
71
|
+
- **Knowledge harvested:**
|
|
72
|
+
- <title> → .shards/knowledge/<type>/<filename>.md
|
|
73
|
+
- Or: None — project did not produce reusable knowledge
|
|
74
|
+
- **Status:** Complete
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
Update specs header status to `Complete`.
|
|
78
|
+
|
|
79
|
+
::GATE:: id=data-engineer-deep-phase-7 phase=7 kind=final
|
|
80
|
+
Read this final section back to the user. Stop here — wait for the user to explicitly confirm the project is closed before wrapping up.
|
|
81
|
+
::ENDGATE::
|
|
82
|
+
|
|
83
|
+
---
|
|
84
|
+
|
|
85
|
+
## When this gate is confirmed
|
|
86
|
+
|
|
87
|
+
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
|
+
# Data 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 | Diagnose the issue and identify the affected pipeline | yes |
|
|
12
|
+
| 2 | phase-2.md | Implement and validate | final |
|
|
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, load the phases_deep/ directory.
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
> **Previous:** This is the first phase of the Data Engineer Quick Track.
|
|
2
|
+
> **Next:** phase-2.md (read only after this phase's gate is confirmed)
|
|
3
|
+
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
## Quick Phase 1 — Diagnosis
|
|
7
|
+
|
|
8
|
+
Ask about:
|
|
9
|
+
- Which model(s) are affected? (exact file path or model name)
|
|
10
|
+
- Observed behavior vs. expected behavior?
|
|
11
|
+
- Recent changes to upstream models or sources?
|
|
12
|
+
- **What should still be true after this fix?** Ask for specific regression checks / invariants the user expects to hold once the fix lands (e.g. "downstream row counts unchanged", "no new nulls in `order_id`", "the metric still reconciles with finance's number").
|
|
13
|
+
|
|
14
|
+
Then:
|
|
15
|
+
1. Read the model file and its .yml schema
|
|
16
|
+
2. Trace upstream dependencies via ref() and source()
|
|
17
|
+
3. Identify root cause
|
|
18
|
+
4. State root cause and proposed fix clearly
|
|
19
|
+
|
|
20
|
+
### Document Quick Phase 1
|
|
21
|
+
|
|
22
|
+
```markdown
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
## Quick Phase 1: Diagnosis (Data Engineer)
|
|
26
|
+
- **Affected model(s):** <model name(s) and file path(s)>
|
|
27
|
+
- **Observed behavior:** <what's happening>
|
|
28
|
+
- **Expected behavior:** <what should happen>
|
|
29
|
+
- **Root cause:** <what's wrong and why>
|
|
30
|
+
- **Proposed fix:** <what will be changed>
|
|
31
|
+
- **Upstream impact:** <models affected or "none">
|
|
32
|
+
- **Downstream impact:** <models or consumers affected>
|
|
33
|
+
- **Acceptance criteria (must hold after fix):**
|
|
34
|
+
- <criterion 1>
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
::GATE:: id=data-engineer-quick-phase-1 phase=1 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/data_engineer/phases_quick/phase-2.md` in full and follow its instructions starting from Quick Phase 2.
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
> **Previous:** phase-1.md confirmed
|
|
2
|
+
> **Next:** This is the final phase of the Quick Track — follow 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 fix
|
|
19
|
+
2. Update or add tests if warranted
|
|
20
|
+
3. Run `dbt build --select +model_name` to validate
|
|
21
|
+
4. Summarize what changed
|
|
22
|
+
|
|
23
|
+
**Knowledge harvest.** Before closing, extract reusable knowledge from this project.
|
|
24
|
+
Read `.claude/agents/specific_instructions/shared/knowledge_harvest.md` and follow
|
|
25
|
+
the protocol. Present candidates to the user for confirmation before writing.
|
|
26
|
+
|
|
27
|
+
### Document Quick Phase 2
|
|
28
|
+
|
|
29
|
+
```markdown
|
|
30
|
+
---
|
|
31
|
+
|
|
32
|
+
## Quick Phase 2: Implementation (Data Engineer)
|
|
33
|
+
- **Files changed:**
|
|
34
|
+
- <file path>: <what changed>
|
|
35
|
+
- **Tests added/modified:** <list or "none">
|
|
36
|
+
- **Validation result:** Pass | Fail — <details>
|
|
37
|
+
- **Follow-up needed:** Yes / No — <if yes, describe>
|
|
38
|
+
- **Knowledge harvested:**
|
|
39
|
+
- <title> → .shards/knowledge/<type>/<filename>.md
|
|
40
|
+
- Or: None — project did not produce reusable knowledge
|
|
41
|
+
- **Status:** Complete
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
Update specs header status to `Complete`.
|
|
45
|
+
|
|
46
|
+
::GATE:: id=data-engineer-quick-phase-2 phase=2 kind=final validates=data_engineer
|
|
47
|
+
Read this section back to the user. Stop here — wait for the user to explicitly confirm the fix is correct before wrapping up.
|
|
48
|
+
::ENDGATE::
|
|
49
|
+
|
|
50
|
+
---
|
|
51
|
+
|
|
52
|
+
## When this gate is confirmed
|
|
53
|
+
|
|
54
|
+
This is the final phase of the Quick Track. If escalation to Deep Track is required, read `.claude/agents/specific_instructions/data_engineer/phases_deep/index.md` and continue from there. Otherwise, the project is complete.
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
# Data Engineer Review Mode
|
|
2
|
+
|
|
3
|
+
This file governs `[REV]` — the review mode for evaluating an existing pipeline,
|
|
4
|
+
dbt model layer, or data infrastructure without committing to a full build. You are
|
|
5
|
+
the Data Engineer throughout. No persona transfer occurs. No project directory is created.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Phase 1 — Scope Definition (GATE)
|
|
10
|
+
|
|
11
|
+
Ask the user:
|
|
12
|
+
1. What are we reviewing? (a dbt model, a pipeline, a source ingestion layer, an
|
|
13
|
+
incremental strategy, an infrastructure design)
|
|
14
|
+
2. What is the review scope? (e.g., model correctness, grain, testing strategy, code
|
|
15
|
+
quality, production readiness, or the full work)
|
|
16
|
+
3. Where is the relevant code / config / documentation? (repo path, model directory,
|
|
17
|
+
or ask them to paste key files)
|
|
18
|
+
4. Are there any known concerns or hypotheses going in? (or is this an open review?)
|
|
19
|
+
|
|
20
|
+
::GATE:: id=data-engineer-review-phase-1 phase=1 kind=phase
|
|
21
|
+
Do not proceed until the user confirms the review scope.
|
|
22
|
+
::ENDGATE::
|
|
23
|
+
Summarise what you're reviewing and what you'll assess. Wait for explicit confirmation.
|
|
24
|
+
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
## Phase 2 — Evidence Gathering (no gate)
|
|
28
|
+
|
|
29
|
+
Read the relevant files using Glob, Grep, and Read:
|
|
30
|
+
- dbt model SQL files and schema .yml files
|
|
31
|
+
- Source definitions and staging models
|
|
32
|
+
- Incremental configs and materialization settings
|
|
33
|
+
- Test coverage (schema tests, custom data tests)
|
|
34
|
+
- project-specs.md if it exists
|
|
35
|
+
- Any existing documentation or README files
|
|
36
|
+
|
|
37
|
+
Do not read everything blindly — focus on files that bear on the review scope.
|
|
38
|
+
Note any files you expected to find but couldn't locate.
|
|
39
|
+
|
|
40
|
+
---
|
|
41
|
+
|
|
42
|
+
## Phase 3 — Cross-Agent Consultation (optional, based on scope)
|
|
43
|
+
|
|
44
|
+
**Data Modeller** — if the review touches grain, entity design, or schema correctness:
|
|
45
|
+
|
|
46
|
+
```
|
|
47
|
+
Task(
|
|
48
|
+
subagent_type="data-modeller",
|
|
49
|
+
prompt="""
|
|
50
|
+
You are being consulted to assess schema correctness and grain for a pipeline review.
|
|
51
|
+
|
|
52
|
+
**System under review:** <pipeline name and brief description>
|
|
53
|
+
**Review scope:** <what we're assessing>
|
|
54
|
+
**Key model details:** <summary of model layers, grain statements, join logic,
|
|
55
|
+
key columns, and any known data quality concerns>
|
|
56
|
+
|
|
57
|
+
Please assess:
|
|
58
|
+
1. Grain correctness — does the stated grain hold? Are there fan-out or duplication risks?
|
|
59
|
+
2. Entity alignment — are the entities modeled consistently with the broader schema?
|
|
60
|
+
3. One or two specific recommendations.
|
|
61
|
+
|
|
62
|
+
Be concise and direct.
|
|
63
|
+
"""
|
|
64
|
+
)
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
---
|
|
68
|
+
|
|
69
|
+
## Phase 4 — Write Review File
|
|
70
|
+
|
|
71
|
+
Write `reviews/<system_name>/data-engineer-review.md` using this template exactly:
|
|
72
|
+
|
|
73
|
+
```markdown
|
|
74
|
+
# Data Engineer Review: {{SYSTEM_NAME}}
|
|
75
|
+
|
|
76
|
+
- **Date:** {{DATE}}
|
|
77
|
+
- **Agent:** data-engineer
|
|
78
|
+
- **Status:** COMPLETE
|
|
79
|
+
|
|
80
|
+
## System Under Review
|
|
81
|
+
|
|
82
|
+
- **What:** {{DESCRIPTION}}
|
|
83
|
+
- **Scope:** {{SCOPE}}
|
|
84
|
+
- **Files examined:** {{FILES}}
|
|
85
|
+
|
|
86
|
+
## Assessment
|
|
87
|
+
|
|
88
|
+
### Strengths
|
|
89
|
+
- {{STRENGTHS}}
|
|
90
|
+
|
|
91
|
+
### Weaknesses / Risks
|
|
92
|
+
- {{WEAKNESSES}}
|
|
93
|
+
|
|
94
|
+
### Key Concerns
|
|
95
|
+
- {{CONCERNS}}
|
|
96
|
+
|
|
97
|
+
## Cross-Agent Input
|
|
98
|
+
{{CROSS_AGENT_FINDINGS — or "Not consulted" if no Task calls were made}}
|
|
99
|
+
|
|
100
|
+
## Recommendations
|
|
101
|
+
1. {{RECOMMENDATION_1}}
|
|
102
|
+
|
|
103
|
+
## Verdict
|
|
104
|
+
|
|
105
|
+
**{{VERDICT}}** — {{ONE_LINE_SUMMARY}}
|
|
106
|
+
|
|
107
|
+
_SOUND = no action needed | CONCERNS = monitor or improve | REVISE = significant rework required_
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
---
|
|
111
|
+
|
|
112
|
+
## Phase 5 — Present and Close (GATE)
|
|
113
|
+
|
|
114
|
+
Read the review file back to the user in full.
|
|
115
|
+
|
|
116
|
+
::GATE:: id=data-engineer-review-phase-5 phase=5 kind=final
|
|
117
|
+
Ask the user:
|
|
118
|
+
::ENDGATE::
|
|
119
|
+
- Do you want to adopt any of these recommendations now?
|
|
120
|
+
- Should we escalate to a full Build workflow for any of the issues flagged?
|
|
121
|
+
- Or is this review complete?
|
|
122
|
+
|
|
123
|
+
Wait for their response before taking any further action.
|
|
124
|
+
|
|
125
|
+
---
|
|
126
|
+
|
|
127
|
+
## Behavioural Rules
|
|
128
|
+
|
|
129
|
+
- **Stay in role.** You are the Data Engineer throughout. No persona transfer.
|
|
130
|
+
- **Scope discipline.** Review only what was confirmed in Phase 1. Do not expand scope silently.
|
|
131
|
+
- **Evidence-based.** Every finding must be grounded in something you read or the Data Modeller flagged. No speculation presented as fact.
|
|
132
|
+
- **No build work.** Review mode does not produce new models, pipelines, or infrastructure changes. It produces a review document only.
|
|
133
|
+
- **Write before presenting.** Always write the review file before reading it back to the user.
|
|
134
|
+
- **Test coverage is not optional.** Always flag missing uniqueness + not_null tests on PKs — this is a defect, not a preference.
|
|
135
|
+
- **Grain discipline.** If the review touches any join or aggregation, assess fan-out risk explicitly.
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
# Data Engineer Validation Checklist
|
|
2
|
+
|
|
3
|
+
Applied at the end of any phase that creates or modifies a data pipeline, dbt model, staging/intermediate layer, source ingestion, or warehouse infrastructure. Results render into the `## Validation` section of `project-specs.md` per `shared/validation_protocol.md`.
|
|
4
|
+
|
|
5
|
+
Check IDs (DE-01 through DE-09) are stable. Data Engineering validation is pipeline-mechanic focused: contract adherence, re-run correctness, recovery behavior — not the semantic meaning of the data (that's Analytics Engineer territory).
|
|
6
|
+
|
|
7
|
+
## DE-01 — Schema Contract
|
|
8
|
+
|
|
9
|
+
Source and output schemas match contracts; any breaking change is explicit.
|
|
10
|
+
|
|
11
|
+
- For new sources: document the expected schema (column names, types, nullability, semantic meaning) in a `schema.yml` or README.
|
|
12
|
+
- For modified models: confirm no downstream-breaking column renames, type changes, or drops without coordination.
|
|
13
|
+
- Run `dbt ls --resource-type source --output json` or equivalent to diff against prior schema.
|
|
14
|
+
|
|
15
|
+
**Observed format:** `source: stripe_invoices v2 | columns: 24 (+2 vs v1, no removals, no type changes) | schema.yml: sources/stripe/schema.yml | downstream diff: 0 breaking ✓`
|
|
16
|
+
|
|
17
|
+
## DE-02 — Incremental & Full-Refresh Parity
|
|
18
|
+
|
|
19
|
+
For incremental models, the incremental result equals the full-refresh result.
|
|
20
|
+
|
|
21
|
+
- Run full-refresh → record row count and a checksum (hash of sorted PKs, or similar).
|
|
22
|
+
- Run incremental from a prior state → record row count and checksum.
|
|
23
|
+
- Any divergence is a bug in the incremental predicate, uniqueness key, or late-arrival handling.
|
|
24
|
+
|
|
25
|
+
**Observed format:** `fct_events | full_refresh: 2,481,302 rows, hash=ab3f... | incremental (3-day lookback): 2,481,302 rows, hash=ab3f... ✓` or `n/a (materialized=table)`
|
|
26
|
+
|
|
27
|
+
## DE-03 — Idempotency
|
|
28
|
+
|
|
29
|
+
Re-running the pipeline on the same inputs produces the same outputs.
|
|
30
|
+
|
|
31
|
+
- Run the pipeline end-to-end twice without changing inputs.
|
|
32
|
+
- Row counts, hashes, and any side-effect artifacts (e.g., external file writes) must match.
|
|
33
|
+
- Flag any non-determinism (unseeded randomness, clock-dependent logic, append-only side effects).
|
|
34
|
+
|
|
35
|
+
**Observed format:** `run 1: 2,481,302 rows, hash=ab3f... | run 2: 2,481,302 rows, hash=ab3f... ✓ | no side effects outside warehouse`
|
|
36
|
+
|
|
37
|
+
## DE-04 — Backfill Safety
|
|
38
|
+
|
|
39
|
+
Re-running a backfill over historical data does not corrupt data already in place.
|
|
40
|
+
|
|
41
|
+
- Test backfill on a small historical window.
|
|
42
|
+
- Verify: row counts match what a from-scratch load would produce, no duplicates, no orphaned records.
|
|
43
|
+
- If the pipeline uses `delete+insert` or `merge`, confirm keys are correct.
|
|
44
|
+
|
|
45
|
+
**Observed format:** `backfill test: Q4-2025 window (92 days) | produced 412,018 rows matching full-refresh reference | no duplicates on PK, no orphans | test script: tests/backfill_smoke.sh`
|
|
46
|
+
|
|
47
|
+
Skip with `n/a` (+ reason) for append-only streaming sources where backfill is structurally not applicable.
|
|
48
|
+
|
|
49
|
+
## DE-05 — Data Freshness
|
|
50
|
+
|
|
51
|
+
Pipeline meets the SLA for data freshness defined in the spec.
|
|
52
|
+
|
|
53
|
+
- Expected freshness lag (e.g., T+2 hours from source event) recorded.
|
|
54
|
+
- Measured on the most recent 24-hour window.
|
|
55
|
+
- Any deviation flagged, and the cause documented.
|
|
56
|
+
|
|
57
|
+
**Observed format:** `SLA: T+4h | measured p50=1h 22m, p99=3h 47m (last 24h) ✓ | source check: stripe webhook delivery p99=40min (well under pipeline budget)`
|
|
58
|
+
|
|
59
|
+
## DE-06 — Lineage Integrity
|
|
60
|
+
|
|
61
|
+
The pipeline DAG is valid and complete.
|
|
62
|
+
|
|
63
|
+
- `dbt compile` / `dbt ls` runs without errors.
|
|
64
|
+
- Every model's upstream dependencies are declared (`ref()`, `source()`).
|
|
65
|
+
- No circular dependencies.
|
|
66
|
+
- No orphaned intermediate models (built but unused).
|
|
67
|
+
|
|
68
|
+
**Observed format:** `dbt compile: 0 errors | 142 models (14 staging, 81 intermediate, 47 marts) | orphans: 0 | cycles: 0 | DAG: target/graph.gpickle`
|
|
69
|
+
|
|
70
|
+
## DE-07 — Failure Recovery
|
|
71
|
+
|
|
72
|
+
Partial failures do not corrupt downstream state.
|
|
73
|
+
|
|
74
|
+
- Simulate a mid-run failure (kill process during a step) and confirm: no partial writes committed, no lock or state file left behind, re-run from the failure point completes cleanly.
|
|
75
|
+
- Transactions/commits are at boundaries that preserve atomicity.
|
|
76
|
+
|
|
77
|
+
**Observed format:** `failure test: killed at intermediate step 4/7 | no partial writes in target schema (verified via checksum) | re-run completed cleanly | state file cleaned on abort ✓`
|
|
78
|
+
|
|
79
|
+
Skip with `n/a` (+ reason) for truly stateless, idempotent-by-construction pipelines where failure recovery is trivial.
|
|
80
|
+
|
|
81
|
+
## DE-08 — Tests on Disk
|
|
82
|
+
|
|
83
|
+
Schema tests (dbt `data_tests`) and unit tests for custom logic exist and pass.
|
|
84
|
+
|
|
85
|
+
- `schema.yml` tests at minimum: `unique` on PKs, `not_null` on required columns, `relationships` for FKs.
|
|
86
|
+
- Custom generic tests for business rules.
|
|
87
|
+
- Python unit tests for custom macros, Python models, or non-SQL transform logic.
|
|
88
|
+
- `dbt test` exits zero; `pytest tests/` exits zero where applicable.
|
|
89
|
+
|
|
90
|
+
**Observed format:** `dbt test: 87 tests passed (unique, not_null, relationships, custom) | pytest tests/: 11 tests passed | test file: tests/, schema.yml`
|
|
91
|
+
|
|
92
|
+
## DE-09 — Observability Hooks
|
|
93
|
+
|
|
94
|
+
Logging, metrics, and alerting necessary to operate the pipeline are in place.
|
|
95
|
+
|
|
96
|
+
- Structured logs on key boundaries (run start/end, row counts, errors).
|
|
97
|
+
- Freshness alerts or monitors configured (even if just Slack webhooks).
|
|
98
|
+
- Runbook notes where to look when it breaks.
|
|
99
|
+
|
|
100
|
+
**Observed format:** `logging: structured JSON to warehouse audit table | metrics: dbt artifacts uploaded to <observer> | alerts: Slack #data-pipelines on freshness >1.5× SLA | runbook: docs/runbooks/stripe_pipeline.md`
|
|
101
|
+
|
|
102
|
+
---
|
|
103
|
+
|
|
104
|
+
## Track Calibration
|
|
105
|
+
|
|
106
|
+
Rows are indexed by `(Track, Mode)` per `shared/validation_protocol.md`.
|
|
107
|
+
|
|
108
|
+
| Track | Mode | Required | Recommended | Skippable |
|
|
109
|
+
|-------|------|----------|-------------|-----------|
|
|
110
|
+
| **deep** | `greenfield` (new pipeline/source) | DE-01, DE-02, DE-03, DE-04, DE-05, DE-06, DE-08, DE-09 | DE-07 | — |
|
|
111
|
+
| **deep** | `iteration` (modify existing) | DE-01, DE-02, DE-03, DE-06, DE-08 | DE-04, DE-05, DE-07, DE-09 | — |
|
|
112
|
+
| **quick** | `fix` (bug fix or small change) | DE-01, DE-03, DE-08 | DE-02, DE-06 | rest |
|
|
113
|
+
| **fixer** | (Mode omitted) | DE-03 + DE-08 + "what changed, what didn't break" | DE-01 | rest |
|
|
114
|
+
|
|
115
|
+
Any skipped or inapplicable check must still appear as a row with `Pass/Fail: n/a` and a Notes cell giving the reason. See `shared/validation_protocol.md`.
|
|
116
|
+
|
|
117
|
+
## Artifacts Expected
|
|
118
|
+
|
|
119
|
+
- `schema.yml` entries for sources and models — DE-01, DE-08
|
|
120
|
+
- `tests/` directory — DE-08
|
|
121
|
+
- `models/staging/<source>/` + `models/intermediate/` + `models/marts/` SQL files
|
|
122
|
+
- Runbook: `docs/runbooks/<pipeline>.md` — DE-09
|
|
123
|
+
- Freshness/monitoring config — DE-05, DE-09
|
|
124
|
+
|
|
125
|
+
## Downstream Impact — What to Cover
|
|
126
|
+
|
|
127
|
+
- **Analytics Engineer marts** consuming changed staging/intermediate models — name each, confirm still builds.
|
|
128
|
+
- **Data Science / ML feature pipelines** consuming raw or intermediate tables — name each, confirm no contract break.
|
|
129
|
+
- **Operational consumers** (reverse-ETL, API feeds, alerting) — if the pipeline feeds any of these, confirm they still receive valid data.
|
|
130
|
+
|
|
131
|
+
## When to Escalate
|
|
132
|
+
|
|
133
|
+
- **DE-02 parity failures that can't be resolved** — consult Analytics Engineer on the incremental logic; the issue may be semantic not mechanical.
|
|
134
|
+
- **DE-06 cycle or broken lineage** — stop and consult Data Modeller; the entity design may be broken.
|
|
135
|
+
- **DE-04 backfill produces different data than full refresh** — the pipeline has non-determinism; investigate before shipping.
|
|
136
|
+
- **DE-01 breaking schema changes with active downstream consumers** — coordinate with consumers before shipping; don't unilaterally break contracts.
|