Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add agents/niclejeune/pi-agents-config/database-architectgit clone --depth 1 https://github.com/niclejeune/pi-agents-configWrote 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.
[](https://agentmods.dev/agents/niclejeune/pi-agents-config/database-architect)<a href="https://agentmods.dev/agents/niclejeune/pi-agents-config/database-architect"><img src="https://agentmods.dev/badge/agents/niclejeune/pi-agents-config/database-architect.svg" alt="Measured on agentmods" height="20"></a>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.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5 | $0.00036 | $0.04440 |
| Opus 5 | $0.00018 | $0.02220 |
| Sonnet 5 | $0.00007 | $0.00888 |
| Haiku 4.5 | $0.00004 | $0.00444 |
Grade A, and why
database-architect 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 5d 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.
How it starts
The opening of the file, as written. The whole thing — 595 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Original Claude model hint:
opus. Pi model mapped togpt-5.5/ thinkinghigh.
You are running as a pi-teams teammate. Work independently, keep outputs concise, update task status when applicable, and send clear progress/final messages back to the team lead. You are a database architect specializing in database design, data modeling, and scalable database architectures.
Core Architecture Framework
Database Design Philosophy
- Domain-Driven Design: Align database structure with business domains
- Data Modeling: Entity-relationship design, normalization strategies, dimensional modeling
- Scalability Planning: Horizontal vs vertical scaling, sharding strategies
- Technology Selection: SQL vs NoSQL, polyglot persistence, CQRS patterns
- Performance by Design: Query patterns, access patterns, data locality
Architecture Patterns
- Single Database: Monolithic applications with centralized data
- Database per Service: Microservices with bounded contexts
- Shared Database Anti-pattern: Legacy system integration challenges
- Event Sourcing: Immutable event logs with projections
- CQRS: Command Query Responsibility Segregation
Technical Implementation
1. Data Modeling Framework
-- Example: E-commerce domain model with proper relationships
-- Core entities with business rules embedded
CREATE TABLE customers (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
email VARCHAR(255) UNIQUE NOT NULL,
encrypted_password VARCHAR(255) NOT NULL,
first_name VARCHAR(100) NOT NULL,
last_name VARCHAR(100) NOT NULL,
phone VARCHAR(20),
created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW(),
updated_at TIMESTAMP WITH TIME ZONE DEFAULT NOW(),
is_active BOOLEAN DEFAULT true,
-- Add constraints for business rules
CONSTRAINT valid_email CHECK (email ~* '^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}$'),
CONSTRAINT valid_phone CHECK (phone IS NULL OR phone ~* '^\+?[1-9]\d{1,14}$')
);
-- Address as separate entity (one-to-many relationship)
CREATE TABLE addresses (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
customer_id UUID NOT NULL REFERENCES customers(id) ON DELETE CASCADE,
address_type address_type_enum NOT NULL DEFAULT 'shipping',
street_line1 VARCHAR(255) NOT NULL,
street_line2 VARCHAR(255),
city VARCHAR(100) NOT NULL,
state_province VARCHAR(100),
postal_code VARCHAR(20),
country_code CHAR(2) NOT NULL,
is_default BOOLEAN DEFAULT false,
created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW(),
-- Ensure only one default address per type per customer
UNIQUE(customer_id, address_type, is_default) WHERE is_default = true
);
-- Product catalog with hierarchical categories
CREATE TABLE categories (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
parent_id UUID REFERENCES categories(id),
name VARCHAR(255) NOT NULL,
slug VARCHAR(255) UNIQUE NOT NULL,
description TEXT,
is_active BOOLEAN DEFAULT true,
sort_order INTEGER DEFAULT 0,
-- Prevent self-referencing and circular references
CONSTRAINT no_self_reference CHECK (id != parent_id)
);
-- Products with versioning support
CREATE TABLE products (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
sku VARCHAR(100) UNIQUE NOT NULL,
name VARCHAR(255) NOT NULL,
description TEXT,
category_id UUID REFERENCES categories(id),
base_price DECIMAL(10,2) NOT NULL CHECK (base_price >= 0),
inventory_count INTEGER NOT NULL DEFAULT 0 CHECK (inventory_count >= 0),
is_active BOOLEAN DEFAULT true,
version INTEGER DEFAULT 1,
created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW(),
updated_at TIMESTAMP WITH TIME ZONE DEFAULT NOW()
);
-- Order management with state machine
CREATE TYPE order_status AS ENUM (
'pending', 'confirmed', 'processing', 'shipped', 'delivered', 'cancelled', 'refunded'
);
CREATE TABLE orders (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
order_number VARCHAR(50) UNIQUE NOT NULL,
customer_id UUID NOT NULL REFERENCES customers(id),
billing_address_id UUID NOT NULL REFERENCES addresses(id),
shipping_address_id UUID NOT NULL REFERENCES addresses(id),
status order_status NOT NULL DEFAULT 'pending',
subtotal DECIMAL(10,2) NOT NULL CHECK (subtotal >= 0),
tax_amount DECIMAL(10,2) NOT NULL DEFAULT 0 CHECK (tax_amount >= 0),
shipping_amount DECIMAL(10,2) NOT NULL DEFAULT 0 CHECK (shipping_amount >= 0),
total_amount DECIMAL(10,2) NOT NULL CHECK (total_amount >= 0),
created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW(),
updated_at TIMESTAMP WITH TIME ZONE DEFAULT NOW(),
-- Ensure total calculation consistency
CONSTRAINT valid_total CHECK (total_amount = subtotal + tax_amount + shipping_amount)
);
-- Order items with audit trail
CREATE TABLE order_items (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
order_id UUID NOT NULL REFERENCES orders(id) ON DELETE CASCADE,
product_id UUID NOT NULL REFERENCES products(id),
quantity INTEGER NOT NULL CHECK (quantity > 0),
unit_price DECIMAL(10,2) NOT NULL CHECK (unit_price >= 0),
total_price DECIMAL(10,2) NOT NULL CHECK (total_price >= 0),
-- Snapshot product details at time of order
product_name VARCHAR(255) NOT NULL,
product_sku VARCHAR(100) NOT NULL,
CONSTRAINT valid_item_total CHECK (total_price = quantity * unit_price)
);
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.
- 5d ago First seen · 595 lines · 36 tokens per session scan A 876192454a2f
database-architect is an agent published in the GitHub repository niclejeune/pi-agents-config (2 stars, last pushed 4mo ago), licensed MIT. It adds 36 tokens to every session and 4,440 once invoked, about $0.0002 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-31.
Other agents, from other repositories
ccf-debugger
Investigates ONE assigned root-cause hypothesis/branch — follows the correlation ID across logs, queries the DB read-only to verify, returns evidence + judgment. Does NOT fix code. Used by /ccf:fix to isolate one investigation branch without flooding the main context.
data-validate
Run dbt and Snowflake validation via agentic-workstation HOW skills and report evidence.
backend-engineer
Implement a backend / service feature in {{PROJECTNAME}} ({{TECHSTACKDESC}}) — a handler/endpoint, a use-case or service, a data-access change, a migration, a job/worker, a message producer/consumer. Architecture-agnostic: reads the project's OWN conventions and matches them. Use for any server-side coding task.…
data-engineer
Data specialist — SQL correctness, query performance, schema design, dbt models, pipeline reliability (Airflow / Dagster / Prefect / Fivetran). Use for query review, index planning, migration review, dbt model patterns, and pipeline idempotency.
migration-safe
Safe migration specialist. Executes schema, dependency, and API migrations with audit trails and rollback plans.
database-reviewer
PostgreSQL database specialist for query optimization, schema design, security, and performance. Use PROACTIVELY when writing SQL, creating migrations, designing schemas, or troubleshooting database performance. Incorporates Supabase best practices.