postgis-query-patterns

postgis-query-patterns is a skill for Claude Code, Codex from buildmoonshot/skillpacks. It costs 59 tokens per session (445 once invoked), scanned A, original, MIT.

A set of patterns for writing PostGIS queries, which use SQL to work with geographic shapes stored in PostgreSQL databases.

In plain words
What is it for?
Use it for storing geographic data, finding nearby or intersecting features, choosing distance units, adding spatial indexes, and checking shapes before overlays.
Why use it?
It helps keep distance and location queries accurate and avoid slow database scans caused by incorrect coordinate systems or unused spatial indexes.

Skill for Claude CodeCodex

Install

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.

agentmods
npx agentmods add skills/buildmoonshot/skillpacks/postgis-query-patterns
Any agent
npx skills add buildmoonshot/skillpacks --skill postgis-query-patterns
Clone the repo
git clone --depth 1 https://github.com/buildmoonshot/skillpacks

Made for: Claude Code, Codex.

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 postgis-query-patterns

README.md
[![agentmods](https://agentmods.dev/badge/skills/buildmoonshot/skillpacks/postgis-query-patterns.svg)](https://agentmods.dev/skills/buildmoonshot/skillpacks/postgis-query-patterns)
Your own site
<a href="https://agentmods.dev/skills/buildmoonshot/skillpacks/postgis-query-patterns"><img src="https://agentmods.dev/badge/skills/buildmoonshot/skillpacks/postgis-query-patterns.svg" alt="Measured on agentmods" height="20"></a>
Per session 59 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 445 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. Scan, not verified.
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 $0.00059 $0.00445
Opus 5 $0.00030 $0.00222
Sonnet 5 $0.00012 $0.00089
Haiku 4.5 $0.00006 $0.00044

Measured 3d ago against content hash f978737b48da, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

postgis-query-patterns 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 3d 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.

skills/gis/intermediate/postgis-query-patterns/SKILL.md · 30 lines

What it actually says

PostGIS Query Patterns

PostGIS rewards correct spatial SQL and quietly punishes the rest with wrong answers or full table scans. Follow the patterns.

Storage & SRID

  • Store geometry with a known SRID (typmod like geometry(Point, 4326) or ST_SetSRID). Operations between different SRIDs error or mislead — ST_Transform to align.
  • Choose geography for accurate distances over large/global areas (meters on a sphere); geometry in an appropriate projected CRS for fast planar math.

Make queries use the index

  • Put a GiST index on every geometry column you query.
  • Use index-assisted operators/functions: &&, ST_Intersects, ST_DWithin. These hit the index.
  • Avoid ST_Distance(a, b) < x in a WHERE clause — it can't use the index and forces a full scan. Use ST_DWithin(a, b, x) instead.

Correctness gotchas

  • && is bounding-box only — fast but approximate. Use it as a prefilter, then ST_Intersects for the exact test.
  • Validate geometry before overlays (ST_IsValid / ST_MakeValid) — see validate-geometry.
  • ST_DWithin distance units follow the type: meters for geography, CRS units for geometry (degrees if you left it in 4326 — usually not what you want for a distance).

Why this matters

Spatial SQL fails quietly in two directions: wrong SRID or wrong function gives a confident wrong answer, and a missing index turns a sub-second query into a minutes-long table scan that still "works" in testing and falls over in production. The patterns above keep queries both correct and fast.

Files

What ships with it

1 file beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.

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. 3d ago First seen · 30 lines · 59 tokens per session scan A f978737b48da

Subscribe to this mod's changes

postgis-query-patterns is a skill published in the GitHub repository buildmoonshot/skillpacks (2 stars, last pushed 2mo ago), licensed MIT. It adds 59 tokens to every session and 445 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-31.

Related

Other skills, from other repositories

safe-sql-execution

Use whenever code will build, return, fetch, or execute SQL that runs against a user's real Postgres database — even when the request reads like an ordinary feature or bug fix and never says "security," "injection," or "SafeSqlFragment." This covers: writing or editing any pg-meta function, query builder, or endpoint…

supabase/supabase · 221 tokens

studio-e2e-tests

Write and run Playwright E2E tests for Supabase Studio (e2e/studio). Use when asked to run e2e tests, write new E2E tests, or debug flaky or failing Playwright tests. Covers running commands, avoiding race conditions, waiting strategies, selectors, helper functions, and CI vs local differences.

supabase/supabase · 74 tokens

studio-queries

React Query conventions for data fetching in Supabase Studio. Use when writing or reviewing query hooks, mutation hooks, or query keys in apps/studio/data/ — including adding the first fetch or mutation for a new API endpoint or resource. Covers queryOptions pattern, keys.ts structure, mutation hook template, and…

supabase/supabase · 68 tokens

upgrading-chart

Upgrades Helm chart dependencies (PostgreSQL, Vault) in the Chainloop project, including vendorized charts, container images, and CI/CD workflows. Use when the user mentions upgrading Helm charts, Bitnami dependencies, PostgreSQL chart, or Vault chart. CRITICAL - Major version upgrades are FORBIDDEN and must be…

chainloop-dev/chainloop · 73 tokens

payload-cms

Install and wire Payload CMS into this Next.js 16 app, backed by Supabase Postgres and Supabase Storage — packages, payload.config.ts, the (payload) route group, collections derived from the actual page views, type generation, migrations, and proving the read loop end-to-end. Use when the user asks to "add a CMS"…

textura-agency/next16-claude-starter · 101 tokens

dump-schema

Dump clean Postgres schema to a file and copy path to clipboard.

macro-inc/macro · 17 tokens