dbt_duckdb_demo_public: Agent for Claude Code

.claude/agents/writer.md

writer is an agent for Claude Code from edwinweber/dbt_duckdb_demo_public. It costs 54 tokens per session (935 once invoked), scanned A, original, MIT.

A technical-writing role for documenting dbt_duckdb_demo, a learning project that moves public data through processing stages into DuckDB, a database designed for analytics. It covers documentation, tutorials, architecture explanations, and reviews against the code.

In plain words
What is it for?
Writing or updating technical documentation, explaining Python and database pipelines, documenting dbt transformations, describing infrastructure, and checking existing prose against the codebase.
Why use it?
It keeps project explanations accurate, clear, and consistent with the actual implementation. It also helps readers understand why the tools and data-processing stages were chosen.

Agent for Claude Code

Written for Claude Code: installed under .claude/. Also seen: model in frontmatter; mentions CLAUDE.md.

This is edwinweber/dbt_duckdb_demo_public's own configuration. It tells Claude Code how to work on dbt_duckdb_demo_public itself, so it is not a mod to install elsewhere. Copy it as a starting point and replace the rules that are about this project. Everything dbt_duckdb_demo_public configures →

Reuse

Borrowing it

Nothing to install: this file belongs to edwinweber/dbt_duckdb_demo_public. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.

Copy the file
curl -O https://raw.githubusercontent.com/edwinweber/dbt_duckdb_demo_public/main/.claude/agents/writer.md
Clone the repo
git clone --depth 1 https://github.com/edwinweber/dbt_duckdb_demo_public

Made for: Claude Code.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for writer

README.md
[![agentmods](https://agentmods.dev/badge/agents/edwinweber/dbt_duckdb_demo_public/writer/github.svg)](https://agentmods.dev/agents/edwinweber/dbt_duckdb_demo_public/writer)
Your own site
<a href="https://agentmods.dev/agents/edwinweber/dbt_duckdb_demo_public/writer"><img src="https://agentmods.dev/badge/agents/edwinweber/dbt_duckdb_demo_public/writer/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for writer

Your own site · 80×15
<a href="https://agentmods.dev/agents/edwinweber/dbt_duckdb_demo_public/writer"><img src="https://agentmods.dev/badge/agents/edwinweber/dbt_duckdb_demo_public/writer.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 54 Only the description is in the session, so the agent can decide to use it. The body loads when it is invoked.
When invoked 935 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00054 $0.00935
Opus 5 $0.00027 $0.00467
Sonnet 5 $0.00011 $0.00187
Haiku 4.5 $0.00005 $0.00093

Measured 10d ago against content hash afb8f89a9ec0, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-09, from the pricing page.

Security

Grade A, and why

writer scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 10d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

.claude/agents/writer.md · 51 lines

How it starts

The opening of the file, as written. The whole thing — 51 lines — stays where its author put it; the contents beside it link to each section on GitHub.

You are a technical writer for Danish Democracy Data (dbt_duckdb_demo), a data engineering learning project. Your audience is data engineers and developers who want to understand or replicate this stack. You write clear, precise, accurate prose — no fluff, no marketing language.

Project in one paragraph

A Python pipeline that ingests open data from the Danish Parliament OData API (18 entities) and the Rfam public MySQL database (7 tables), transforms it through a Bronze → Silver → Gold medallion architecture inside DuckDB, and optionally exports the result as Delta Lake tables to Microsoft Fabric OneLake. Orchestrated by Dagster, extracted by dlt, transformed by dbt. A learning/reference project — honest about its scope.

Documentation structure (in documentation/)

  • python_code_explained.md — per-module guide: purpose, design choices, worked examples, how to make common changes. Primary developer reference.
  • dbt_macros.md — CDC logic, SCD2, SHA-256 hashing, pre/post hooks.
  • silver_model_logic.md — the Silver layer in depth.
  • python_libraries.md — why each library was chosen.
  • hetzner_infrastructure.md — hosting setup.
  • management-summary.md — executive overview.

Key facts to get right (verify against code before writing)

  • CLAUDE.md is the authoritative source of truth for architecture, naming, env vars, and design patterns. Read it before writing anything about the project.
  • Silver storage has two modes: SILVER_STORAGE_FORMAT=duckdb (default, tables in the .duckdb file) or ducklake (Parquet + catalog file). This is independent of STORAGE_TARGET, which only governs the Delta Lake export destination.
  • configuration_variables.py is the single source of truth for entity lists. Adding an entity = one-file change + regen. Make this clear in any "how to extend" section.
  • DuckDB is single-writer. Dagster stops Metabase around dbt runs. Always mention this constraint when writing about concurrency.
  • LKHS_ prefix on all tracking columns — not meta_, not _dbt_, not anything else.
  • Danish character normalisation: ø→oe, æ→ae, å→aa. Always use the correct mapping; don't guess.
  • No MotherDuck. Transform is local DuckDB. Do not mention MotherDuck.
  • DuckDB version pinned: ≥1.5.1, <1.6. Delta write uses deltalake + PyArrow (not the DuckDB delta extension, which is read-only at this version).

Read the full file on GitHub · 51 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 10d ago First seen · 51 lines · 54 tokens per session scan A afb8f89a9ec0

Subscribe to this mod's changes

writer is an agent published in the GitHub repository edwinweber/dbt_duckdb_demo_public (49 stars, last pushed 2mo ago), licensed MIT. It adds 54 tokens to every session and 935 once invoked, about $0.0003 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.

Related

Other agents, from other repositories

flux

Designs schemas, writes migrations, and builds data pipelines that model reality and evolve without pain. Use when designing a database schema, planning a zero-downtime migration, or building ETL/ELT pipelines. Trigger with "design database schema", "write zero-downtime migration".

jeremylongshore/tons-of-skills-marketplace · 60 tokens

data-wrangler

Use when the user asks to clean, transform, reshape, dedupe, join, concatenate, sort, replace, or convert tabular data and produce new output files — e.g., "remove duplicates", "join these two CSVs", "convert to Parquet", "fix encoding". Prefer data-analyst for read-only profiling, statistics, or exploratory queries.

dathere/qsv · 79 tokens

data-engineer

Expert in data engineering, ETL/ELT pipelines, Medallion architecture (Bronze/Silver/Gold), Databricks, PySpark, and orchestration. Triggers on pipeline, ingestion, spark, databricks, medallion, etl, elt, orchestration, airflow, dagster.

luccapinto/agentic-data-kit · 69 tokens

Demonstrate

Agent for demonstrating VS Code features.

microsoft/vscode · 10 tokens

playwright-test-generator

Use this agent when you need to create automated browser tests using Playwright Examples: Context: User wants to generate a test for the test plan item.

microsoft/playwright · 151 tokens

AVM Owner Triage

Triage open GitHub issues across the Azure Verified Modules (AVM) repos an owner maintains. Splits the backlog into a Copilot-delegatable pile and a human pile, produces a report with a delegation ratio, and never comments or assigns without explicit user approval.

github/awesome-copilot · 61 tokens