CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

check-dbt-conventions

Audit dbt models and connector configurations against the data-flow conventions in .cf-studio/config/rules/architecture.md. Verifies engine=ReplacingMergeTree, order_by=['unique_key'], silver delete+insert, read-time dedup of every RMT read (FINAL/QUALIFY/LIMIT 1 BY/union_by_tag), unique_key formula, absence of promotion machinery, ephemeral usage for Rust-owned tables, and Airbyte append_dedup sync mode. Reports deviations with file paths and line numbers.

Quality

78%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide
SecuritybySnyk

Passed

No findings from the security scan

Fix and improve this skill with Tessl

tessl review fix ./.claude/skills/check-dbt-conventions/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

75%Weight 40%Scale 1-5

Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.

A well-engineered audit skill: eight precisely-specified checks with discovery commands, explicit PASS/FAIL conditions, a validation-gated workflow, and a concrete output template. The recurring weakness is unresolved references — the unnamed '5 spec docs' and the fragile relative link to architecture.md — which slightly dent actionability, workflow clarity, and navigation.

Suggestions

List the exact paths of the '5 spec docs (DESIGN.md + 4 ADRs)' in the Source of truth / How to run sections so step 1 is executable without searching.

Replace the fragile relative link ../../../.cf-studio/config/rules/architecture.md with an explicit repo-relative path and state what to do if the file is absent.

Trim mechanism-level rationale (e.g. the RMT merge-semantics paragraph and incident anecdotes) into a short 'Why these rules' note or the external rules file to tighten the body.

DimensionReasoningScore

Conciseness

The body is dense and operational — discovery commands, exact config values, FAIL conditions — with nearly every token earning its place; padding is limited to a few explain-heavy asides ("RMT only collapses duplicates on background merge (never guaranteed at query time)... e.g. the slack_active_days = 42 incident" and the long inline fix template in Check 7). This fits anchor 4 ('efficient; minor instances of over-explanation that could be trimmed') better than anchor 5, since some rationale could be moved out or shortened without loss.

4 / 5

Actionability

Concrete, executable guidance dominates: `find src/ingestion/silver -name "*.sql" -not -path "*disabled*"`, grep patterns, exact expected config strings, a runnable audit script (`audit_rmt_read_dedup.py`), and a literal output template. It falls short of anchor 5 only because key references are unresolvable as written — "Read all 5 spec docs (DESIGN.md + 4 ADRs)" gives no paths, and the architecture.md link is a fragile relative path — leaving minor gaps the model must fill.

4 / 5

Workflow Clarity

"How to run" gives a clear numbered sequence (read specs → run 8 checks → per-check PASS/FAIL with paths/lines → summarize → suggest minimal fixes) with explicit checkpoints ("Refuse to report PASS without having read each spec doc this turn"; the deterministic script plus "confirm each by reading" loop in Check 8) and an output-format checklist. It sits at anchor 4 rather than 5 because the first step's inputs (which 5 spec docs, located where) are ambiguous, a minor validation gap.

4 / 5

Progressive Disclosure

No bundle files (references/, scripts/, assets/) exist, and the body correctly externalizes the rules to one clearly signaled one-level-deep source (architecture.md) while keeping the operational checks inline; section-per-check organization is good. Anchor 4 ('good structure; most content appropriately placed; references mostly clear; minor organization gaps') fits — the gap being the unspecified spec-doc paths and the deep relative link, which keep navigation from being fully clean.

4 / 5

Total

16

/

20

Passed

Description

75%Weight 40%Scale 1-5

Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.

A highly specific, distinctive description that comprehensively enumerates what the skill verifies, anchored to a concrete rules file and reporting format. Its single material weakness is the absence of any explicit 'Use when...' trigger guidance, which caps completeness and leaves invocation conditions implicit.

Suggestions

Append an explicit trigger clause, e.g. "Use when reviewing a connector PR, refactoring silver models, or before running dbt build in CI to surface convention drift."

Add natural user-side synonyms/phrases users would actually say (e.g. 'dbt conventions', 'connector PR review', 'silver model audit') to broaden trigger coverage beyond the technical enumeration.

Optionally trim the long parenthetical list of mechanisms (FINAL/QUALIFY/LIMIT 1 BY/union_by_tag) to keep the description scannable while retaining the 'when' clause.

DimensionReasoningScore

Specificity

Quotes like "Verifies engine=ReplacingMergeTree, order_by=['unique_key'], silver delete+insert, read-time dedup of every RMT read (FINAL/QUALIFY/LIMIT 1 BY/union_by_tag), unique_key formula, absence of promotion machinery, ephemeral usage..., and Airbyte append_dedup sync mode" plus "Reports deviations with file paths and line numbers" enumerate multiple concrete, comprehensive actions with no vague filler. It clearly exceeds anchor 4 ('several specific actions; minor gaps') because coverage of the audit's checks is essentially exhaustive, matching anchor 5.

5 / 5

Completeness

The 'what' is explicit and detailed (audits dbt models/connectors against named conventions and reports deviations with paths and line numbers), but there is no 'Use when...' clause or equivalent explicit trigger guidance anywhere in the description. Per the judging guidelines, a missing 'Use when...' clause caps completeness at 3, which matches the anchor 'clear what but when is missing or only weakly implied'.

3 / 5

Trigger Term Quality

Natural terms a user of this stack would say are present — "dbt models", "connector configurations", "silver", "Airbyte", "dedup", "audit" — giving good keyword coverage. Not anchor 5 because it lacks common variations/synonyms and when-to-say-it phrases (e.g. 'connector PR', 'before dbt build', 'convention drift'), and not anchor 3 since the domain keywords go beyond a bare minimum.

4 / 5

Distinctiveness Conflict Risk

The niche is unambiguous — dbt/ClickHouse pipeline-convention auditing keyed to ReplacingMergeTree, silver models, Airbyte append_dedup, and a specific rules file path — so it is clearly distinguishable from any generic linting or dbt skill and unlikely to trigger the wrong skill. It matches anchor 5 ('clear niche with distinct triggers; minimal conflict risk') rather than anchor 4, which admits overlap with closely related skills.

5 / 5

Total

17

/

20

Passed

Validation

81%

Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.

Validation — 13 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

allowed_tools_field

'allowed-tools' contains unusual tool name(s)

Warning

relative_links

Relative link issues: 1 suspicious

Warning

referenced_paths_exist

Referenced path issues: 2 missing

Warning

Total

13

/

16

Passed

Repository

constructorfabric/insight

Path

.claude/skills/check-dbt-conventions/SKILL.md

Reviewed

Table of Contents

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.