Setting Up a Claude Code Project with a Development Workflow and Database — the Open Starter Kit Explained

An empty repo and Claude Code, Anthropic’s coding agent in the terminal — that’s all it takes to get going. And that is exactly the problem: the model writes code immediately, but by default nothing ensures that a specification exists first, that a review happens afterwards, or that the database schema deploys reproducibly. A Claude … Read more

Maximal Template Over Empty Repo — a Claude Code Setup That Prunes Itself via /init

Every new project starts with the same ritual: create an empty repo, then hunt down the folder structure, the conventions and the workflow files from the last project — and forget half of them. A Claude Code project template can invert that reflex: instead of starting with nothing and building up piece by piece, you … Read more

Skills vs. Rules in Claude Code — What Auto-Loads, What Loads on Demand, and the Context Cost

Inside a Claude Code project’s .claude/ folder, rules and skills sit side by side: Markdown files that look almost identical — and behave in exactly opposite ways. That contrast is what Claude Code skills vs rules comes down to: rules are fully in context at every session start; a skill costs next to nothing until someone invokes it. Get … Read more

Deploying a SQL Schema Without a Migration Tool — Directory Convention Instead of Flyway or Liquibase

The schema is done — now what? The reflex answer is Flyway or Liquibase. But for a small, database-centric project, a migration tool is often more machinery than the task calls for: its own version table, a runtime dependency, a file format you commit to. There is another way. Deploying a Postgres schema without a migration … Read more

PL/pgSQL Table-Returning Functions — RETURNS TABLE, SETOF and When a View Is Better

A view is the most elegant way to encapsulate a recurring query — right up to the moment the query needs an argument from outside. A view has no parameters. As soon as a value belongs in the WHERE that the caller supplies, the table-valued function is the tool of choice: a function that returns an entire result set … Read more

PL/pgSQL Function Conventions — Volatility, RETURNS and the Boundary to Procedures

A PL/pgSQL function without a volatility marker is VOLATILE by default. That sounds harmless but has a real cost: the planner calls the function again for every row, never pre-computes it once, and excludes it from every functional index. The damage is invisible — until the same query suddenly takes seconds instead of milliseconds. Good PL/pgSQL function conventions start … Read more

Postgres Table Conventions — Naming, Keys and Audit Columns for a Consistent Schema

Creating a table takes thirty seconds – being annoyed about its name, its key, and its column types then takes two years. Postgres table conventions take that annoyance off the table up front: consistent names, a predictable primary key, data types without surprises, and audit columns that explain every row. Without them, a schema drifts further apart … Read more

Deriving SQL Conventions with Claude Code — the Generate-Refine-Derive Loop

An AI writes you a stored procedure in seconds. It compiles, it runs – and it looks like a stranger wrote it. The next artifact looks different again. Generated SQL is technically correct but stylistically arbitrary – and without an enforced convention, a generated collection drifts apart just like one five developers write by hand. The obvious … Read more

AI-Assisted SQL Development with Claude Code — Rules, Skills and Agents That Enforce Conventions

A stored procedure, a migration script, a complex report — Claude Code writes them in seconds. That’s the easy part. The hard part starts afterwards: generated SQL that belongs to no one drifts apart just like hand-written code — only faster, because the AI produces hundreds of lines on demand. AI-assisted SQL development only pays off when the … Read more