Dbt Testing
Kilo-Org/kilo-marketplace
dbt testing strategies using dbtconstraints for database-level enforcement, generic tests, and singular tests.
Deep expertise in dbt (data build tool) covering model design, testing strategies, documentation, materialization selection, custom macros, incremental patterns, package management, CI/CD…
$ npx skills add FerroxLabs/wayland --skill dbt-engineer -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install FerroxLabs/wayland dbt-engineer --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/FerroxLabs/wayland.git skills-src && mkdir -p .claude/skills && cp -r skills-src/src/process/resources/skills-library/bodies/skills/data-engineering/dbt-engineer .claude/skills/dbt-engineer && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "dbt-engineer" agent skill from https://github.com/FerroxLabs/wayland/tree/main/src/process/resources/skills-library/bodies/skills/data-engineering/dbt-engineer into .claude/skills/dbt-engineer/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "dbt-engineer", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/FerroxLabs/wayland/tree/main/src/process/resources/skills-library/bodies/skills/data-engineering/dbt-engineerType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add FerroxLabs/wayland --skill dbt-engineer -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install FerroxLabs/wayland dbt-engineer --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/FerroxLabs/wayland.git skills-src && mkdir -p .agents/skills && cp -r skills-src/src/process/resources/skills-library/bodies/skills/data-engineering/dbt-engineer .agents/skills/dbt-engineer && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "dbt-engineer" agent skill from https://github.com/FerroxLabs/wayland/tree/main/src/process/resources/skills-library/bodies/skills/data-engineering/dbt-engineer into .agents/skills/dbt-engineer/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "dbt-engineer", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add FerroxLabs/wayland --skill dbt-engineer -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install FerroxLabs/wayland dbt-engineer --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/FerroxLabs/wayland.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/src/process/resources/skills-library/bodies/skills/data-engineering/dbt-engineer .cursor/skills/dbt-engineer && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "dbt-engineer" agent skill from https://github.com/FerroxLabs/wayland/tree/main/src/process/resources/skills-library/bodies/skills/data-engineering/dbt-engineer into .cursor/skills/dbt-engineer/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "dbt-engineer", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/FerroxLabs/wayland.git --path src/process/resources/skills-library/bodies/skills/data-engineering/dbt-engineer--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add FerroxLabs/wayland --skill dbt-engineer -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install FerroxLabs/wayland dbt-engineer --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/FerroxLabs/wayland.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/src/process/resources/skills-library/bodies/skills/data-engineering/dbt-engineer .gemini/skills/dbt-engineer && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "dbt-engineer" agent skill from https://github.com/FerroxLabs/wayland/tree/main/src/process/resources/skills-library/bodies/skills/data-engineering/dbt-engineer into .gemini/skills/dbt-engineer/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "dbt-engineer", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install FerroxLabs/wayland dbt-engineerInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add FerroxLabs/wayland --skill dbt-engineer -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/FerroxLabs/wayland.git skills-src && mkdir -p .github/skills && cp -r skills-src/src/process/resources/skills-library/bodies/skills/data-engineering/dbt-engineer .github/skills/dbt-engineer && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "dbt-engineer" agent skill from https://github.com/FerroxLabs/wayland/tree/main/src/process/resources/skills-library/bodies/skills/data-engineering/dbt-engineer into .github/skills/dbt-engineer/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "dbt-engineer", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add FerroxLabs/wayland --skill dbt-engineer -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install FerroxLabs/wayland dbt-engineer --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/FerroxLabs/wayland.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/src/process/resources/skills-library/bodies/skills/data-engineering/dbt-engineer .opencode/skills/dbt-engineer && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "dbt-engineer" agent skill from https://github.com/FerroxLabs/wayland/tree/main/src/process/resources/skills-library/bodies/skills/data-engineering/dbt-engineer into .opencode/skills/dbt-engineer/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "dbt-engineer", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
dbt-engineerDeep expertise in dbt (data build tool) covering model design, testing strategies, documentation, materialization selection, custom macros, incremental patterns, package management, CI/CD…
Dbt Engineer is an agent skill from FerroxLabs/wayland. Deep expertise in dbt (data build tool) covering model design, testing strategies, documentation, materialization selection, custom macros, incremental patterns, package management, CI/CD integration, and performance optimization for building reliable, maintainable transformation layers in modern data stacks. Use when the user asks about dbt engineer, dbt engineer best practices, or needs guidance on dbt engineer implementation. Do NOT use when the user needs a different specialized skill or is asking about an…
Its SKILL.md is about 2.9k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Data & Analytics, covering Data pipelines and ETL and Test strategy. It works with dbt. The repository describes itself as: Wayland - The AI Agent That Perceives. Reasons. Acts. Evolves. The licence is Apache-2.0.
Read from SKILL.md and the folder at commit 4c030c7. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
dbtFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Dbt Engineer loads about 2.9k tokens when it runs. Until then it costs about 139 tokens; SKILL.md has 430 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from FerroxLabs/wayland at commit 4c030c7, republished under its Apache-2.0 licence (© FerroxLabs). 430 words, ~2,883 tokens.
.claude/skills/dbt-engineer/SKILL.md (or your agent's skills folder).You are an expert dbt engineer specializing in building production-grade transformation layers. You design well-structured dbt projects with rigorous testing, comprehensive documentation, and optimized materializations. You apply software engineering best practices to analytics code, ensuring every model is version-controlled, tested, and documented.
dbt_project/
dbt_project.yml
packages.yml
models/
staging/ # 1:1 with source tables
_staging__sources.yml
_staging__models.yml
stg_salesforce__accounts.sql
stg_stripe__charges.sql
intermediate/ # Business logic transforms
_int__models.yml
int_opportunities_joined_to_accounts.sql
marts/ # Final business entities
finance/
_finance__models.yml
fct_monthly_revenue.sql
dim_subscription.sql
macros/
generate_schema_name.sql
cents_to_dollars.sql
tests/
generic/
test_accepted_range.sql
singular/
assert_total_revenue_positive.sql
seeds/
country_codes.csv
snapshots/
snap_accounts.sqlname: 'company_analytics'
version: '1.0.0'
config-version: 2
profile: 'company_analytics'
models:
company_analytics:
staging:
+materialized: view
+schema: staging
intermediate:
+materialized: ephemeral
marts:
+materialized: table
finance:
+schema: finance
+grants:
select: ['finance_analyst_role']| Criteria | View | Table | Incremental | Ephemeral |
|---|---|---|---|---|
| Source rows < 100K | Best | OK | Overkill | OK |
| Source rows 100K-10M | Slow | Best | Good | Avoid |
| Source rows > 10M | Avoid | OK | Best | Avoid |
| Queried by BI tools | Avoid | Best | Best | N/A |
| Referenced by many models | OK | Best | Best | Good |
| Staging layer | Best | Fallback | Avoid | OK |
| Intermediate layer | OK | Fallback | Avoid | Best |
| Marts layer | Avoid | Best | Best for large | Avoid |
-- Pattern 1: Append-only with watermark
{{
config(
materialized='incremental',
unique_key='event_id',
incremental_strategy='merge',
on_schema_change='append_new_columns'
)
}}
SELECT event_id, user_id, event_type, occurred_at, _loaded_at
FROM {{ ref('stg_segment__events') }}
{% if is_incremental() %}
WHERE _loaded_at > (SELECT MAX(_loaded_at) FROM {{ this }})
{% endif %}
-- Pattern 2: Late-arriving data with lookback window
{{
config(
materialized='incremental',
unique_key='order_id',
incremental_strategy='merge'
)
}}
SELECT order_id, customer_id, order_status, total_amount, updated_at
FROM {{ ref('stg_shopify__orders') }}
{% if is_incremental() %}
WHERE updated_at >= (SELECT DATEADD('day', -3, MAX(updated_at)) FROM {{ this }})
{% endif %}
-- Pattern 3: Insert-overwrite with partitioning
{{
config(
materialized='incremental',
unique_key='surrogate_key',
incremental_strategy='insert_overwrite',
partition_by={'field': 'event_date', 'data_type': 'date', 'granularity': 'day'},
cluster_by=['event_type', 'user_id']
)
}}
SELECT
{{ dbt_utils.generate_surrogate_key(['event_id', 'event_date']) }} AS surrogate_key,
event_id, event_date, event_type, user_id
FROM {{ ref('stg_amplitude__events') }}
{% if is_incremental() %}
WHERE event_date >= _dbt_max_partition
{% endif %}version: 2
models:
- name: fct_monthly_revenue
description: Monthly revenue by subscription and product line
columns:
- name: revenue_month
data_tests:
- not_null
- dbt_utils.not_constant
- name: subscription_id
data_tests:
- not_null
- relationships:
to: ref('dim_subscription')
field: subscription_id
- name: mrr_amount
data_tests:
- not_null
- dbt_utils.accepted_range:
min_value: 0
max_value: 1000000
- name: currency_code
data_tests:
- accepted_values:
values: ['USD', 'EUR', 'GBP', 'CAD', 'AUD']-- tests/generic/test_row_count_within_range.sql
{% test row_count_within_range(model, min_count, max_count) %}
WITH row_count AS (SELECT COUNT(*) AS cnt FROM {{ model }})
SELECT cnt FROM row_count
WHERE cnt < {{ min_count }} OR cnt > {{ max_count }}
{% endtest %}
-- tests/singular/assert_revenue_reconciles.sql
WITH source_total AS (
SELECT SUM(amount_cents) / 100.0 AS total
FROM {{ source('stripe', 'charges') }}
WHERE status = 'succeeded' AND created >= '2024-01-01'
),
mart_total AS (
SELECT SUM(charge_amount) AS total
FROM {{ ref('fct_charges') }} WHERE charge_date >= '2024-01-01'
)
SELECT s.total AS source, m.total AS mart, ABS(s.total - m.total) AS diff
FROM source_total s CROSS JOIN mart_total m
WHERE ABS(s.total - m.total) > 1.00-- macros/generate_schema_name.sql
{% macro generate_schema_name(custom_schema_name, node) %}
{% set default_schema = target.schema %}
{% if custom_schema_name is not none and target.name == 'prod' %}
{{ custom_schema_name | trim }}
{% else %}
{{ default_schema }}_{{ custom_schema_name | trim }}
{% endif %}
{% endmacro %}
-- macros/safe_divide.sql
{% macro safe_divide(numerator, denominator, default_value=0) %}
CASE WHEN {{ denominator }} = 0 OR {{ denominator }} IS NULL
THEN {{ default_value }}
ELSE {{ numerator }}::FLOAT / {{ denominator }} END
{% endmacro %}
-- macros/cents_to_dollars.sql
{% macro cents_to_dollars(column_name, precision=2) %}
ROUND({{ column_name }}::NUMERIC / 100, {{ precision }})
{% endmacro %}# Source freshness configuration
sources:
- name: salesforce
database: raw
schema: salesforce
freshness:
warn_after: {count: 12, period: hour}
error_after: {count: 24, period: hour}
loaded_at_field: _fivetran_synced
tables:
- name: account
columns:
- name: id
data_tests: [unique, not_null]
- name: opportunity
freshness:
error_after: {count: 6, period: hour}# .github/workflows/dbt-ci.yml
name: dbt CI
on:
pull_request:
paths: ['models/**', 'macros/**', 'tests/**', 'dbt_project.yml']
jobs:
dbt-check:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- run: install via pip: dbt-snowflake==1.7.*
- run: dbt deps
- run: dbt compile --target ci
- run: |
dbt run --select state:modified+ --defer --state ./prod-manifest
dbt test --select state:modified+ --defer --state ./prod-manifest
- run: sqlfluff lint models/ --dialect snowflake# Enforce column types and prevent breaking changes
models:
- name: fct_orders
config:
contract:
enforced: true
columns:
- name: order_id
data_type: varchar(36)
- name: customer_id
data_type: varchar(36)
- name: order_date
data_type: date
- name: total_amount
data_type: number(12,2)[ ] Profile slow models with EXPLAIN / query plan
[ ] Convert large views to tables or incremental
[ ] Use ephemeral for models only referenced once
[ ] Partition by date column (BigQuery, Snowflake, Databricks)
[ ] Cluster by high-cardinality filter columns
[ ] Push filters early (filter in CTEs, not final SELECT)
[ ] Avoid SELECT * in production models
[ ] Replace correlated subqueries with JOINs
[ ] Use approximate functions for large aggregations| Symptom | Likely Cause | Fix |
|---|---|---|
| Data wrong after incremental | Incorrect watermark logic | dbt run --full-refresh -s model_name |
| CI "relation does not exist" | Missing defer state | Ensure prod manifest artifact available |
| Compilation error in Jinja | Macro syntax issue | dbt compile -s model_name to isolate |
| Source freshness warning | Upstream pipeline delay | Check ingestion tool status |
| Tests pass but BI wrong | Stale cache in BI tool | Refresh BI extract; verify grain |
| Slow incremental run | Too many merge keys | Check unique_key cardinality |
| Schema drift errors | Source changed columns | Update source YAML; use on_schema_change |
Use this skill when:
Do NOT use this skill when:
# Dbt Engineer Analysis
## Context Assessment
[Situation summary and constraints]
## Recommended Approach
[Primary recommendation with rationale]
## Implementation Steps
1. [Step with specific details]
2. [Step with specific details]
3. [Step with specific details]
## Trade-offs and Considerations
- [Key trade-off 1]
- [Key trade-off 2]
## Next Steps
- [Immediate action item]
- [Follow-up action item]Input: "Help me implement dbt engineer for a medium-scale production application"
Output: A structured analysis covering current state assessment, recommended dbt engineer approach with specific patterns, implementation roadmap with milestones, and risk mitigation strategies tailored to the application scale and constraints.
© FerroxLabs, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in src/process/resources/skills-library/bodies/skills/data-engineering/dbt-engineer of FerroxLabs/wayland.
Open the folder on GitHubat commit 4c030c7
Dbt Engineer next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Dbt Engineer this skillFerroxLabs/wayland | 608 | — | ~2.9k | Automated safety check: Pass | Apache-2.0 | |
| Dbt TestingKilo-Org/kilo-marketplace | 189 | — | ~4k | Automated safety check: Pass | Apache-2.0 | |
| Dbt Databricks PR Readydatabricks/dbt-databricks | 379 | — | ~2.8k | Automated safety check: Pass | Apache-2.0 | |
| Mz Dbt ReleaseMaterializeInc/materialize | 6.4k | — | ~1.2k | Automated safety check: Pass | Custom licence | |
| Erd Studio Setupliam-machine/erd-studio | 165 | — | ~8.5k | Automated safety check: Pass | Custom licence | |
| PR Verifydocglow/docglow | 147 | — | ~1.5k | Automated safety check: Pass | MIT |
Kilo-Org/kilo-marketplace
dbt testing strategies using dbtconstraints for database-level enforcement, generic tests, and singular tests.
databricks/dbt-databricks
A skill your agent uses for an open dbt-databricks pull request, including your own PR or a fork PR, to assess merge readiness and optionally repair selected gaps on the PR head branch.
MaterializeInc/materialize
Cut a dbt-materialize PyPI release: bump the version in version.py and setup.py, date the Unreleased CHANGELOG entry, and open the release PR with a Ship: <url body.
liam-machine/erd-studio
Friendly, step-by-step setup for ERD Studio in an existing dbt project, for people who may be new to dbt or data modelling.
docglow/docglow
Verify a Docglow change actually works before submitting or merging a PR.
astronomer/agents
Guide for migrating Dagster projects to Apache Airflow 3 on Astro.
FerroxLabs/wayland
Install, start, connect, and troubleshoot visualization companion projects for Aion/OpenClaw, with Star-Office-UI as the default recommendation.
FerroxLabs/wayland
OpenClaw usage expert: Helps you install, deploy, configure, and use OpenClaw personal AI assistant.
FerroxLabs/wayland
Set up TVControl end to end: install the connector, start TradingView Desktop with its control port open, load a watchlist export, add the indicators they use, and leave a working chart.
FerroxLabs/wayland
End-to-end guide for designing, running, and analyzing A/B tests including experiment design, statistical significance, sample size calculation, common pitfalls, and advanced testing patterns.
FerroxLabs/wayland
Complete academic writing guide covering thesis and dissertation structure, journal article format using IMRaD, literature review methodology, citation management, the peer review process, and…
FerroxLabs/wayland
Web accessibility expertise covering WCAG 2.2 conformance, audit methodology, ARIA patterns, keyboard navigation, screen reader testing, focus management, form accessibility, and automated vs manual…
Works with
Categories
Deep expertise in dbt (data build tool) covering model design, testing strategies, documentation, materialization selection, custom macros, incremental patterns, package management, CI/CD…. Dbt Engineer is an agent skill from FerroxLabs/wayland. Deep expertise in dbt (data build tool) covering model design, testing strategies, documentation, materialization selection, custom macros, incremental patterns, package management, CI/CD integration, and performance optimization for building reliable, maintainable transformation layers in modern data stacks.
Dbt Engineer fits situations like: the user asks about dbt engineer; dbt engineer best practices; needs guidance on dbt engineer implementation; the user needs a different specialized skill.
Run `npx skills add FerroxLabs/wayland --skill dbt-engineer -a claude-code`. Or copy the skill folder (src/process/resources/skills-library/bodies/skills/data-engineering/dbt-engineer in FerroxLabs/wayland) into .claude/skills/dbt-engineer in your project. Claude Code loads it when a task matches its description.
Run `npx skills add FerroxLabs/wayland --skill dbt-engineer -a codex`. Or copy the skill folder (src/process/resources/skills-library/bodies/skills/data-engineering/dbt-engineer in FerroxLabs/wayland) into .agents/skills/dbt-engineer in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add FerroxLabs/wayland --skill dbt-engineer -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/dbt-engineer, .gemini/skills/dbt-engineer, .github/skills/dbt-engineer and .opencode/skills/dbt-engineer in your project.
Going by SKILL.md and its folder, Dbt Engineer needs the command-line tools its instructions call (dbt).
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Dbt Engineer is published under the Apache-2.0 licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.9k tokens (SKILL.md is roughly 12k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Dbt Engineer: Dbt Testing (Kilo-Org/kilo-marketplace, 189 stars), Dbt Databricks PR Ready (databricks/dbt-databricks, 379 stars), Mz Dbt Release (MaterializeInc/materialize, 6.4k stars) and Erd Studio Setup (liam-machine/erd-studio, 165 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
FerroxLabs (a GitHub user) maintains it in FerroxLabs/wayland, which has 608 GitHub stars. The repository holds 1,194 skills in this directory. The repository was last updated on October 6, 2026.
Source: FerroxLabs/wayland on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.