Data Quality Frameworks
wshobson/agents
Sets up data quality checks with Great Expectations, dbt tests and data contracts, with checkpoints and pass-fail reports for pipelines.
dbt testing strategies using dbtconstraints for database-level enforcement, generic tests, and singular tests.
$ npx skills add Kilo-Org/kilo-marketplace --skill dbt-testing -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install Kilo-Org/kilo-marketplace dbt-testing --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/Kilo-Org/kilo-marketplace.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/dbt-testing .claude/skills/dbt-testing && 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-testing" agent skill from https://github.com/Kilo-Org/kilo-marketplace/tree/main/skills/dbt-testing into .claude/skills/dbt-testing/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "dbt-testing", 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/Kilo-Org/kilo-marketplace/tree/main/skills/dbt-testingType 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 Kilo-Org/kilo-marketplace --skill dbt-testing -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install Kilo-Org/kilo-marketplace dbt-testing --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Kilo-Org/kilo-marketplace.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/dbt-testing .agents/skills/dbt-testing && 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-testing" agent skill from https://github.com/Kilo-Org/kilo-marketplace/tree/main/skills/dbt-testing into .agents/skills/dbt-testing/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "dbt-testing", 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 Kilo-Org/kilo-marketplace --skill dbt-testing -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install Kilo-Org/kilo-marketplace dbt-testing --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Kilo-Org/kilo-marketplace.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/dbt-testing .cursor/skills/dbt-testing && 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-testing" agent skill from https://github.com/Kilo-Org/kilo-marketplace/tree/main/skills/dbt-testing into .cursor/skills/dbt-testing/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "dbt-testing", 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/Kilo-Org/kilo-marketplace.git --path skills/dbt-testing--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 Kilo-Org/kilo-marketplace --skill dbt-testing -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install Kilo-Org/kilo-marketplace dbt-testing --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Kilo-Org/kilo-marketplace.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/dbt-testing .gemini/skills/dbt-testing && 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-testing" agent skill from https://github.com/Kilo-Org/kilo-marketplace/tree/main/skills/dbt-testing into .gemini/skills/dbt-testing/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "dbt-testing", 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 Kilo-Org/kilo-marketplace dbt-testingInstalls 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 Kilo-Org/kilo-marketplace --skill dbt-testing -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/Kilo-Org/kilo-marketplace.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/dbt-testing .github/skills/dbt-testing && 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-testing" agent skill from https://github.com/Kilo-Org/kilo-marketplace/tree/main/skills/dbt-testing into .github/skills/dbt-testing/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "dbt-testing", 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 Kilo-Org/kilo-marketplace --skill dbt-testing -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install Kilo-Org/kilo-marketplace dbt-testing --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Kilo-Org/kilo-marketplace.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/dbt-testing .opencode/skills/dbt-testing && 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-testing" agent skill from https://github.com/Kilo-Org/kilo-marketplace/tree/main/skills/dbt-testing into .opencode/skills/dbt-testing/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "dbt-testing", 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-testingdbt testing strategies using dbtconstraints for database-level enforcement, generic tests, and singular tests.
Dbt Testing is an agent skill from Kilo-Org/kilo-marketplace. dbt testing strategies using dbtconstraints for database-level enforcement, generic tests, and singular tests. Use this skill when implementing data quality checks, adding primary/foreign key constraints, creating custom tests, or establishing comprehensive testing frameworks across bronze/silver/gold layers.
Its SKILL.md is about 4k tokens, which your agent loads only when the skill is triggered. The skill folder holds 1 other file.
It sits in Data & Analytics, covering Data pipelines and ETL, Data cleaning and Test strategy. It works with dbt. The repository describes itself as: Kilo Marketplace - A curated collection of Skills, MCP Servers, and Modes for enhancing AI agent capabilities across the Kilo ecosystem—including Kilo Code (VS Code extension)… The licence is Apache-2.0.
5 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit ff51758. 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.
Links to these hosts (documentation or services it may open):
docs.getdbt.comgithub.comFrom 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 Testing loads about 4k tokens when it runs. Until then it costs about 81 tokens; SKILL.md has 872 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 Kilo-Org/kilo-marketplace at commit ff51758, republished under its Apache-2.0 licence (© Kilo-Org). 872 words, ~3,990 tokens.
.claude/skills/dbt-testing/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.Transform AI agents into experts on dbt testing strategies, providing guidance on implementing comprehensive data quality checks with database-enforced constraints, generic tests, and custom singular tests to ensure data integrity across all layers.
Activate this skill when users ask about:
Official dbt Documentation: Testing
Implement tests in this order for maximum data quality:
The dbt_constraints package provides database-level enforcement (not just dbt tests):
✅ Database Enforcement - Creates actual constraints in the data warehouse ✅ Performance - Database-level constraints improve query optimization ✅ Data Integrity - Prevents invalid data at all access points (not just dbt) ✅ Documentation - Constraints visible in database metadata and BI tools ✅ Query Optimization - Database can use constraints for better execution plans
Standard dbt tests only validate during dbt test runs. dbt_constraints creates real
database constraints that are enforced 24/7.
Official dbt_constraints Documentation: GitHub - Snowflake-Labs/dbt_constraints
# packages.yml
packages:
- package: Snowflake-Labs/dbt_constraints
version: [">=0.8.0", "<1.0.0"]
- package: dbt-labs/dbt_utils
version: [">=1.0.0", "<2.0.0"]Install packages:
dbt depsOfficial dbt Docs: Package Management
Required for every dimension:
# models/gold/_models.yml
models:
- name: dim_customers
columns:
- name: customer_id
tests:
- dbt_constraints.primary_keyWhen primary key spans multiple columns:
models:
- name: fct_order_lines
tests:
- dbt_constraints.primary_key:
column_names:
- order_id
- line_numberNot recommended - no database enforcement:
columns:
- name: product_id
tests:
- not_null
- uniqueLimitation: Only validates during dbt test runs, doesn't prevent bad data from other sources.
Ensures referential integrity:
models:
- name: fct_orders
columns:
- name: customer_id
tests:
- dbt_constraints.foreign_key:
pk_table_name: ref('dim_customers')
pk_column_name: customer_idFor facts with multiple dimension relationships:
models:
- name: fct_order_lines
columns:
- name: order_id
tests:
- dbt_constraints.foreign_key:
pk_table_name: ref('fct_orders')
pk_column_name: order_id
- name: product_id
tests:
- dbt_constraints.foreign_key:
pk_table_name: ref('dim_products')
pk_column_name: product_id
- name: customer_id
tests:
- dbt_constraints.foreign_key:
pk_table_name: ref('dim_customers')
pk_column_name: customer_idNot recommended - no database enforcement:
columns:
- name: customer_id
tests:
- relationships:
to: ref('dim_customers')
field: customer_idFor business keys (non-primary keys that must be unique):
columns:
- name: customer_email
tests:
- dbt_constraints.unique_keyWhen uniqueness spans multiple columns:
models:
- name: stg_orders
tests:
- dbt_constraints.unique_key:
column_names:
- order_number
- order_sourcecolumns:
- name: order_status
tests:
- not_null
- accepted_values:
values: ["pending", "processing", "shipped", "delivered", "cancelled"]
- name: order_amount
tests:
- not_nullPowerful generic tests from dbt_utils package:
columns:
- name: customer_email
tests:
- dbt_utils.not_null_proportion:
at_least: 0.95 # 95% of rows must have email
- name: order_amount
tests:
- dbt_utils.accepted_range:
min_value: 0
max_value: 1000000
- name: customer_status
tests:
- dbt_utils.not_empty_stringOfficial dbt_utils Documentation: dbt_utils - Generic Tests
Create reusable test for common patterns:
-- tests/generic/test_positive_values.sql
{% test positive_values(model, column_name) %}
select count(*)
from {{ model }}
where {{ column_name }} <= 0
{% endtest %}Usage:
columns:
- name: order_total
tests:
- positive_values
- name: quantity
tests:
- positive_valuesAnother Example: Date Range Test
-- tests/generic/test_recent_data.sql
{% test recent_data(model, column_name, days_ago=30) %}
select count(*)
from {{ model }}
where {{ column_name }} < dateadd(day, -{{ days_ago }}, current_date())
{% endtest %}Usage:
columns:
- name: order_date
tests:
- recent_data:
days_ago: 7 # Alert if no orders in last 7 daysFor complex business logic that doesn't fit generic tests:
-- tests/singular/test_order_dates_sequential.sql
with date_validation as (
select
o.order_id,
o.order_date,
c.signup_date
from {{ ref('fct_orders') }} o
join {{ ref('dim_customers') }} c
on o.customer_id = c.customer_id
where o.order_date < c.signup_date -- Order before signup = invalid
)
select * from date_validationTest fails if ANY rows are returned.
Revenue Reconciliation:
-- tests/singular/test_revenue_reconciliation.sql
-- Ensure fact table revenue matches source system
with fact_revenue as (
select sum(order_amount) as total_revenue
from {{ ref('fct_orders') }}
where order_date = current_date() - 1
),
source_revenue as (
select sum(amount) as total_revenue
from {{ source('erp', 'orders') }}
where order_date = current_date() - 1
),
comparison as (
select
f.total_revenue as fact_revenue,
s.total_revenue as source_revenue,
abs(f.total_revenue - s.total_revenue) as difference
from fact_revenue f
cross join source_revenue s
)
select * from comparison
where difference > 0.01 -- Tolerance of 1 centReferential Integrity Check:
-- tests/singular/test_orphaned_orders.sql
-- Find orders with invalid customer_id (not in dim_customers)
select
o.order_id,
o.customer_id
from {{ ref('fct_orders') }} o
left join {{ ref('dim_customers') }} c
on o.customer_id = c.customer_id
where c.customer_id is null
and o.customer_id != -1 -- Exclude ghost keyOfficial dbt Documentation: Singular Tests
Focus: Basic data quality at source
models:
- name: stg_tpc_h__customers
columns:
- name: customer_id
tests:
- dbt_constraints.primary_key
- name: customer_email
tests:
- not_nullKeep it simple - just verify source data integrity.
Focus: Business rule validation, calculated fields
models:
- name: int_customers__with_orders
columns:
- name: customer_id
tests:
- dbt_constraints.primary_key
- name: lifetime_orders
tests:
- not_null
- dbt_utils.accepted_range:
min_value: 0
- name: lifetime_value
tests:
- not_null
- dbt_utils.accepted_range:
min_value: 0Add business logic validation - ensure calculated fields make sense.
Focus: Comprehensive constraint enforcement with dbt_constraints
models:
- name: dim_customers
description: "Customer dimension with full history and metrics"
columns:
- name: customer_id
description: "Unique customer identifier"
tests:
- dbt_constraints.primary_key
- name: customer_tier
description: "Customer value classification"
tests:
- accepted_values:
values: ["bronze", "silver", "gold", "platinum"]
- name: customer_email
tests:
- dbt_constraints.unique_key
- name: fct_orders
description: "Order transactions fact table"
columns:
- name: order_id
tests:
- dbt_constraints.primary_key
- name: customer_id
tests:
- dbt_constraints.foreign_key:
pk_table_name: ref('dim_customers')
pk_column_name: customer_id
- name: product_id
tests:
- dbt_constraints.foreign_key:
pk_table_name: ref('dim_products')
pk_column_name: product_id
- name: order_amount
tests:
- not_null
- dbt_utils.accepted_range:
min_value: 0Maximum enforcement - use all constraint types to ensure production data quality.
Analyze failed test records:
dbt test --store-failures# dbt_project.yml
tests:
+store_failures: true
+schema: dbt_test_failuresQuery failures:
select * from dbt_test_failures.not_null_dim_customers_customer_emailWarn vs Error:
columns:
- name: customer_email
tests:
- dbt_constraints.unique_key:
config:
severity: warn # or 'error' (default)Severity Behavior:
error: Test failure stops dbt execution (exit code 1)warn: Test failure logs warning but continues (exit code 0)Use warn for:
Test specific model:
dbt test --select dim_customersTest by type:
dbt test --select test_type:generic # All generic tests
dbt test --select test_type:singular # All singular testsTest with dependencies:
dbt test --select +dim_customers+ # Test model and all dependenciesOfficial dbt Documentation: Test Selection
# Run all tests
dbt test
# Build models and test together (recommended)
dbt build # Runs models, then tests
# Test specific model
dbt test --select dim_customers
# Test specific column
dbt test --select dim_customers,column:customer_id
# Test by layer
dbt test --select tag:gold
# Test with failures stored
dbt test --store-failures --select fct_ordersBest Practice: Use dbt build instead of dbt run + dbt test separately.
Add tests as you build models, not after deployment.
Database-level constraints provide:
columns:
- name: customer_tier
description: "Customer segmentation based on lifetime value"
tests:
- accepted_values:
values: ["bronze", "silver", "gold", "platinum"]
config:
severity: errorBefore moving to production:
When users ask about testing:
"What tests should I add?"
"Why use dbt_constraints instead of regular tests?"
"How do I debug test failures?"
--store-failures to save failing recordsGoal: Transform AI agents into expert dbt testers who implement comprehensive, database-enforced data quality checks that protect data integrity across all layers and access patterns.
© Kilo-Org, 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
SKILL.md and 1 other file in skills/dbt-testing of Kilo-Org/kilo-marketplace.
Open the folder on GitHubat commit ff51758
Dbt Testing 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 Testing this skillKilo-Org/kilo-marketplace | 189 | — | ~4k | Automated safety check: Pass | Apache-2.0 | |
| Data Quality Frameworkswshobson/agents | 40k | 10 repos | ~1.1k | Automated safety check: Pass | MIT | |
| Dbt Transformation Patternswshobson/agents | 40k | 8 repos | ~781 | Automated safety check: Pass | MIT | |
| Authoring Data Quality ChecksPostHog/posthog-foss | 721 | — | ~2.8k | Automated safety check: Pass | MIT | |
| Data Quality Checksmohitagw15856/pm-claude-skills | 1.4k | — | ~919 | Automated safety check: Pass | MIT | |
| Dbt Model Specmohitagw15856/pm-claude-skills | 1.4k | — | ~939 | Automated safety check: Pass | MIT |
wshobson/agents
Sets up data quality checks with Great Expectations, dbt tests and data contracts, with checkpoints and pass-fail reports for pipelines.
wshobson/agents
Master dbt (data build tool) for analytics engineering with model organization, testing, documentation, and incremental strategies.
PostHog/posthog-foss
Adds and runs data quality checks (dbt-test style assertions) on a project's warehouse tables and saved-query views, and HogQL catalog metrics: not-null, uniqueness, accepted values, referential…
mohitagw15856/pm-claude-skills
Design the data quality checks for a table or pipeline across the standard dimensions.
mohitagw15856/pm-claude-skills
Spec a dbt model — its grain, sources, transformations, tests, and materialization.
revfactory/harness-100
data (accuracy, completeness, timeliness, consistency etc.)per verification rule and Great Expectations, dbt tests etc.of also for guide.
Kilo-Org/kilo-marketplace
Sets up and maintains AzureML-ready Python projects as uv workspaces with devcontainers, a Makefile and job YAML, so local runs match cloud jobs and experiments stay reproducible.
Kilo-Org/kilo-marketplace
Creates, inspects, edits and runs Jupyter notebooks, scaffolding experiment or tutorial notebooks from templates and preferring a Jupyter MCP server over raw JSON edits.
Kilo-Org/kilo-marketplace
Takes a plain-language dashboard request through brand setup, data exploration, planning, an interactive HTML mock and a Tableau implementation spec.
Kilo-Org/kilo-marketplace
Ingest and transform data files (CSV/JSON/Parquet/Arrow IPC) into Elasticsearch with stream processing and custom transforms.
Kilo-Org/kilo-marketplace
A skill your agent uses when arranging Apache NiFi processors, process groups, ports, comments, numbering, crossing connections, dense fan-in/fan-out, or reusable readable canvas layouts.
Kilo-Org/kilo-marketplace
Render Cisco Data Fabric ingest-time routing workflows and Splunk Cloud Platform Ingest Processor setup plans with SPL2 pipelines, source types, destinations, lifecycle handoffs, queue and…
Works with
Categories
dbt testing strategies using dbtconstraints for database-level enforcement, generic tests, and singular tests. Dbt Testing is an agent skill from Kilo-Org/kilo-marketplace. dbt testing strategies using dbtconstraints for database-level enforcement, generic tests, and singular tests.
Dbt Testing fits situations like: implementing data quality checks; adding primary/foreign key constraints; creating custom tests; establishing comprehensive testing frameworks across bronze/silver/gold layers.
Run `npx skills add Kilo-Org/kilo-marketplace --skill dbt-testing -a claude-code`. Or copy the skill folder (skills/dbt-testing in Kilo-Org/kilo-marketplace) into .claude/skills/dbt-testing in your project. Claude Code loads it when a task matches its description.
Run `npx skills add Kilo-Org/kilo-marketplace --skill dbt-testing -a codex`. Or copy the skill folder (skills/dbt-testing in Kilo-Org/kilo-marketplace) into .agents/skills/dbt-testing 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 Kilo-Org/kilo-marketplace --skill dbt-testing -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-testing, .gemini/skills/dbt-testing, .github/skills/dbt-testing and .opencode/skills/dbt-testing in your project.
Going by SKILL.md and its folder, Dbt Testing needs the command-line tools its instructions call (dbt).
SKILL.md names 2 domains. As links in the text: docs.getdbt.com and github.com. 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 Testing is published under the Apache-2.0 licence (from the LICENSE file in the skill folder). It allows redistribution, so the full SKILL.md is shown on this page.
About 4k tokens (SKILL.md is roughly 16k 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 Testing: Data Quality Frameworks (wshobson/agents, 40k stars), Dbt Transformation Patterns (wshobson/agents, 40k stars), Authoring Data Quality Checks (PostHog/posthog-foss, 721 stars) and Data Quality Checks (mohitagw15856/pm-claude-skills, 1.4k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
Kilo-Org (a GitHub organization) maintains it in Kilo-Org/kilo-marketplace, which has 189 GitHub stars. The repository holds 87 skills in this directory. The repository was last updated on September 28, 2026.
Source: Kilo-Org/kilo-marketplace on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.