feat: add Project Health Check (six dbt-project-evaluator dimensions)#2
Merged
Conversation
15e2663 to
991044c
Compare
991044c to
fa99a4b
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What & why
Adds a Project Health Check to dbdocs, derived from the static dbt artifacts
we already load — no extra dbt package, no warehouse. The manifest drives a rule
engine covering the six dbt-project-evaluator
dimensions (testing, modeling, documentation, structure, performance,
governance); an optional
run_results.jsonadds per-test pass/fail detail. TheSPA surfaces a scorecard + collapsible dimensions page and per-model test
results on each node page. It's always built and fail-soft: a
missing/malformed
run_results.jsonnever sinksgenerate, and the SPA onlysurfaces the section when it holds findings.
This PR also carries the supporting tooling:
.githubPR + issue templates, a/dbdocs-prskill/command, and a new UX & accessibility dimension ondbdocs-code-review.Type of change
Area
generate/serve/deploy) — new--run-resultsoverrideextract/(nodes / erd / graph / column_lineage / health) — newextract/health/sub-packagesite/(data dict / builder / 3-tier SPA / deploy) — health key + SPA pagesfrontend/(React Flow graph bundle) — DAG type/schema filter round-trips through the hashdbdocs.yml) / packaging / CI / docs —run_results/healthknobs,artifact-parserdep, docsHow to test
Checklist
task lintpasses (ruff format --check+ruff check).task testpasses at 100% coverage (310 passed, TOTAL 100%)..claude/design_patterns.md(extended an existing seam, didn't fork one). Added the "always-built artifact-derived data-dict section (Health Check)" pattern + its TOC entry in this PR.healthkey ⇄data.js/service.js/ui.js) and don't re-inline the payload.task frontend:build) and I committeddbdocs/site/bundle/assets/graph/.dbdocs/site/bundle/**(assets/css/icons.css) are covered by thepyproject.tomlartifacts glob (dbdocs/site/bundle/**/*).dbdocs.yml.exampleupdated for the newrun_results/healthknobs and the--run-resultsflag.Screenshots / notes
dbt build/dbt test— no extra dbtpackage. Without
run_results.json, the manifest-derived dimensions stillrender; only the per-test pass/fail detail is skipped (a
noterecords it).--status-*CSS custom properties (onesource of truth across pills/badges/scorecard, light + dark).
#/healthpage and a modelpage's Tests section here.