When to Use This Workflow
Use new-project-setup when starting an analytics engineering project from zero: no dbt project exists yet, you're onboarding a new team, or you're rebuilding a project from scratch. If a dbt project already exists, use individual skills instead of this workflow.
Overview
This workflow sequences six skills in order. Each phase builds on the previous one. Complete each phase before moving to the next.
Phase 1: Capture Stack Context
Skill: data-stack-context
Before writing any code, capture the team's full analytics stack. This file drives all subsequent skill decisions.
What to do:
- Check if
.claude/data-stack-context.mdalready exists. If it does, skip to Phase 2. - Invoke the
data-stack-contextskill. - Use Path A (auto-draft) if
dbt_project.ymlorprofiles.ymlalready exist. Use Path B (conversational) if starting from zero. - Confirm the context file is written to
.claude/data-stack-context.md.
Phase complete when: .claude/data-stack-context.md exists and covers warehouse, dbt version, orchestrator, and BI layer.
Phase 2: Scaffold the dbt Project
Skill: dbt-project-setup
Set up the project structure, profiles, packages, and schema naming conventions.
What to do:
- Invoke the
dbt-project-setupskill. - Generate
dbt_project.yml,profiles.yml,packages.yml, and thegenerate_schema_namemacro. - Run
dbt deps && dbt debugto confirm connectivity.
Phase complete when: dbt debug passes and dbt parse returns no errors.
Phase 3: Establish SQL Style Guide
Skill: sql-style-guide
Lock in formatting and naming standards before writing any models — it's much harder to enforce retroactively.
What to do:
- Invoke the
sql-style-guideskill. - Generate a
.sqlfluffconfig tailored to the team's warehouse dialect. - Document key conventions (CTE naming, column aliasing, join style).
Phase complete when: .sqlfluff config exists and sqlfluff lint runs without configuration errors.
Phase 4: Design the Data Model Architecture
Skill: data-modeling
Plan the layer structure and identify initial domains before writing the first model.
What to do:
- Invoke the
data-modelingskill. - Identify 2-3 initial data domains (e.g., customers, orders, events).
- Sketch the staging → intermediate → mart flow for each domain.
- Run
node tools/clis/schema-introspect.jsif source schemas are already accessible.
Phase complete when: An entity-relationship sketch and initial model list exist for the first domain.
Phase 5: Set Up Testing Strategy
Skill: data-quality-testing
Establish the testing standard before writing models — define what "good" means.
What to do:
- Invoke the
data-quality-testingskill. - Define the minimum test set per model tier (staging, intermediate, marts).
- Add Elementary or Soda if the stack includes an observability tool.
Phase complete when: Testing standards are documented and at least one example schema.yml with tests is written.
Phase 6: Configure CI/CD
Skill: dbt-ci-cd
Automate testing and deployment so the project is production-ready from day one.
What to do:
- Invoke the
dbt-ci-cdskill. - Set up a CI workflow that runs
dbt build --select state:modified+on PRs. - Configure production job scheduling in dbt Cloud or the orchestrator.
Phase complete when: A CI pipeline exists and a test PR triggers a dbt build automatically.
Final Verification
dbt debug # Confirm warehouse connectivity
dbt parse # Confirm no compilation errors
dbt deps # Confirm packages installed
sqlfluff lint models/ # Confirm style rules enforced
Verify Your Work
Do not present output from this skill as complete until every command below passes without error. If a command fails, consult "If Something Goes Wrong" before asking the user.
- Run
dbt debugto confirm warehouse connectivity and thatprofiles.ymlis correctly configured for your target environment. - Run
dbt parseto confirm no compilation errors exist across all model paths defined indbt_project.yml. - Run
dbt depsto confirm all packages inpackages.ymlresolved and installed without version conflicts. - Run
sqlfluff lint models/to confirm the.sqlfluffconfig is valid and style rules are enforced without configuration errors. - Open a test PR and confirm the CI pipeline triggers automatically and runs
dbt build --select state:modified+.
If Something Goes Wrong
dbt debugfails: checkprofiles.ymlpath and warehouse credentials. Ensure env vars are set for the correct target.dbt parsefails: usually a missingref()or misconfigured model path indbt_project.yml. Checkmodel-pathssetting.dbt depsfails: checkpackages.ymlfor version conflicts. Rundbt deps --upgradeto resolve.- CI never triggers: confirm the workflow file is in
.github/workflows/and the branch protection rule runs the check.
Source: nrakow/ae-skills-dev — distributed by TomeVault.