{"owner":"jackc","repo":"pgx","hasSkills":true,"totalSkillsCount":1,"totalTokensCount":1443,"categories":["claude-rule"],"hasMcp":false,"mcpConfig":null,"found":["CLAUDE.md"],"skills":{"CLAUDE.md":"# CLAUDE.md\n\nThis file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.\n\n## Project Overview\n\npgx is a PostgreSQL driver and toolkit for Go (`github.com/jackc/pgx/v5`). It provides both a native PostgreSQL interface and a `database/sql` compatible driver. Requires Go 1.25+ and supports PostgreSQL 14+ and CockroachDB.\n\n## Build & Test Commands\n\nEvery checkout has its own PostgreSQL 14-18 and CockroachDB instances, supervised by\nprocess-compose. `mise run dev` starts PostgreSQL 18; tests start other targets on demand and stop\nthem afterwards unless they were explicitly prewarmed. See DEVELOPMENT.md.\n\n```bash\nmise run dev                        # start PostgreSQL 18 and the database supervisor\nmise run dev:all                    # eagerly start every available database\nmise run dev -- -D                  # ... detached; then `mise run dev:wait`, and\n                                    # `mise run dev:down` when finished. Agents must do this.\n\n./test.sh                           # Full suite against PostgreSQL 18 (the default target)\n./test.sh pg16                      # Against PostgreSQL 16\n./test.sh crdb                      # Against CockroachDB\n./test.sh all                       # Every target (pg14-18 + crdb)\n./test.sh pg16 -run TestConnect     # Trailing arguments are passed to `go test`\n\ngo test ./...                       # Also works: mise loads the default target's PGX_TEST_*\ngo test -race ./...                 # With the race detector\n\ngoimports -w .                      # Format (always run after making changes)\ngolangci-lint run ./...             # Lint\n\nmise run dev:ports                  # This checkout's ports and where each server's data lives\nmise run db:start pg16 crdb         # Prewarm targets; tests then leave them running\nmise run db:stop pg16 crdb          # Stop prewarmed targets\nmise run db:psql                    # psql against PostgreSQL 18; `mise run db:psql 16` for another\nprocess-compose process logs pg16   # One server's output\n```\n\nDo not hardcode database ports. They are allocated per checkout by port-tamer and read from the\nenvironment (`PGPORT`, `PGPORT_16`, `CRDB_PORT`) or `.dev/ports.env`; 5432 and 26257 mean nothing\nhere.\n\nThe `PGX_TEST_*` connection strings have one definition, `scripts/lib/test_targets.rb`. Add or\nchange a target there, never in a second copy.\n\n## Test Database Setup\n\nThe lifecycle scripts handle setup: a PostgreSQL server initializes its cluster on first start and\ncreates `pgx_test` with the extensions and auth roles from `testsetup/postgresql_setup.sql`.\nCockroachDB recreates `pgx_test` after each in-memory restart. Nothing needs to be set up by hand.\n\nContributors who would rather point pgx at a PostgreSQL server they already have can set\n`PGX_TEST_DATABASE` themselves; see CONTRIBUTING.md. Many tests are skipped unless additional\n`PGX_TEST_*` variables are set (for TLS, SCRAM, MD5, unix socket, PgBouncer testing).\n\n## Reference Material\n\n`references/` holds read-only reference checkouts used when building pgx — currently the PostgreSQL source tree pinned to `REL_18_STABLE`. It is gitignored and provisioned on demand: bare mirrors are cached at a machine-level path (`/persist/shared/references` in a devcontainer, `~/.local/share/pgx/references` natively; `REFERENCES_MIRROR_DIR` overrides) and lightweight local checkouts are created in `references/` with `rake references:setup`. Each checkout has per-instance Git metadata while borrowing the shared mirror's object store. Related tasks: `rake references:update`, `rake references:status`, `rake references:clean`.\n\n- Do not automatically provision or update `references/`.\n- Never run `rake references:setup`, `rake references:update`, or any large download on your own initiative.\n- If reference sources are missing, work without them or ask the user.\n\n## Architecture\n\nThe codebase is a layered architecture, bottom-up:\n\n- **pgproto3/** — PostgreSQL wire protocol v3 encoder/decoder. Defines `FrontendMessage` and `BackendMessage` types for every protocol message.\n- **pgconn/** — Low-level connection layer (roughly libpq-equivalent). Handles authentication, TLS, query execution, COPY protocol, and notifications. `PgConn` is the core type.\n- **pgx** (root package) — High-level query interface built on `pgconn`. Provides `Conn`, `Rows`, `Tx`, `Batch`, `CopyFrom`, and generic helpers like `CollectRows`/`ForEachRow`. Includes automatic statement caching (LRU).\n- **pgtype/** — Type system mapping between Go and PostgreSQL types (70+ types). Key interfaces: `Codec`, `Type`, `TypeMap`. Custom types (enums, composites, domains) are registered through `TypeMap`.\n- **pgxpool/** — Concurrency-safe connection pool built on `puddle/v2`. `Pool` is the main type; wraps `pgx.Conn`.\n- **stdlib/** — `database/sql` compatibility adapter.\n\nSupporting packages:\n- **internal/stmtcache/** — Prepared statement cache with LRU eviction\n- **internal/sanitize/** — SQL query sanitization\n- **tracelog/** — Logging adapter that implements tracer interfaces\n- **multitracer/** — Composes multiple tracers into one\n- **pgxtest/** — Test helpers for running tests across connection types\n\n## Key Design Conventions\n\n- **Semantic versioning** — strictly followed. Do not break the public API (no removing or renaming exported types, functions, methods, or fields; no changing function signatures).\n- **Minimal dependencies** — adding new dependencies is strongly discouraged (see CONTRIBUTING.md).\n- **Context-based** — all blocking operations take `context.Context`.\n- **Tracer interfaces** — observability via `QueryTracer`, `BatchTracer`, `CopyFromTracer`, `PrepareTracer` on `ConnConfig.Tracer`.\n- **Formatting** — always run `goimports -w .` after making changes to ensure code is properly formatted. CI checks formatting via `gofmt -l -s -w . && git diff --exit-code`. `gofumpt` with extra rules is also enforced via `golangci-lint`.\n- **Linters** — `govet`, `ineffassign`, and `unconvert` only (configured in `.golangci.yml`).\n- **CI matrix** — tests run against Go 1.25/1.26 × PostgreSQL 14-18 + CockroachDB, on Linux and Windows. Race detector enabled on Linux only.\n"},"files":{"CLAUDE.md":"# CLAUDE.md\n\nThis file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.\n\n## Project Overview\n\npgx is a PostgreSQL driver and toolkit for Go (`github.com/jackc/pgx/v5`). It provides both a native PostgreSQL interface and a `database/sql` compatible driver. Requires Go 1.25+ and supports PostgreSQL 14+ and CockroachDB.\n\n## Build & Test Commands\n\nEvery checkout has its own PostgreSQL 14-18 and CockroachDB instances, supervised by\nprocess-compose. `mise run dev` starts PostgreSQL 18; tests start other targets on demand and stop\nthem afterwards unless they were explicitly prewarmed. See DEVELOPMENT.md.\n\n```bash\nmise run dev                        # start PostgreSQL 18 and the database supervisor\nmise run dev:all                    # eagerly start every available database\nmise run dev -- -D                  # ... detached; then `mise run dev:wait`, and\n                                    # `mise run dev:down` when finished. Agents must do this.\n\n./test.sh                           # Full suite against PostgreSQL 18 (the default target)\n./test.sh pg16                      # Against PostgreSQL 16\n./test.sh crdb                      # Against CockroachDB\n./test.sh all                       # Every target (pg14-18 + crdb)\n./test.sh pg16 -run TestConnect     # Trailing arguments are passed to `go test`\n\ngo test ./...                       # Also works: mise loads the default target's PGX_TEST_*\ngo test -race ./...                 # With the race detector\n\ngoimports -w .                      # Format (always run after making changes)\ngolangci-lint run ./...             # Lint\n\nmise run dev:ports                  # This checkout's ports and where each server's data lives\nmise run db:start pg16 crdb         # Prewarm targets; tests then leave them running\nmise run db:stop pg16 crdb          # Stop prewarmed targets\nmise run db:psql                    # psql against PostgreSQL 18; `mise run db:psql 16` for another\nprocess-compose process logs pg16   # One server's output\n```\n\nDo not hardcode database ports. They are allocated per checkout by port-tamer and read from the\nenvironment (`PGPORT`, `PGPORT_16`, `CRDB_PORT`) or `.dev/ports.env`; 5432 and 26257 mean nothing\nhere.\n\nThe `PGX_TEST_*` connection strings have one definition, `scripts/lib/test_targets.rb`. Add or\nchange a target there, never in a second copy.\n\n## Test Database Setup\n\nThe lifecycle scripts handle setup: a PostgreSQL server initializes its cluster on first start and\ncreates `pgx_test` with the extensions and auth roles from `testsetup/postgresql_setup.sql`.\nCockroachDB recreates `pgx_test` after each in-memory restart. Nothing needs to be set up by hand.\n\nContributors who would rather point pgx at a PostgreSQL server they already have can set\n`PGX_TEST_DATABASE` themselves; see CONTRIBUTING.md. Many tests are skipped unless additional\n`PGX_TEST_*` variables are set (for TLS, SCRAM, MD5, unix socket, PgBouncer testing).\n\n## Reference Material\n\n`references/` holds read-only reference checkouts used when building pgx — currently the PostgreSQL source tree pinned to `REL_18_STABLE`. It is gitignored and provisioned on demand: bare mirrors are cached at a machine-level path (`/persist/shared/references` in a devcontainer, `~/.local/share/pgx/references` natively; `REFERENCES_MIRROR_DIR` overrides) and lightweight local checkouts are created in `references/` with `rake references:setup`. Each checkout has per-instance Git metadata while borrowing the shared mirror's object store. Related tasks: `rake references:update`, `rake references:status`, `rake references:clean`.\n\n- Do not automatically provision or update `references/`.\n- Never run `rake references:setup`, `rake references:update`, or any large download on your own initiative.\n- If reference sources are missing, work without them or ask the user.\n\n## Architecture\n\nThe codebase is a layered architecture, bottom-up:\n\n- **pgproto3/** — PostgreSQL wire protocol v3 encoder/decoder. Defines `FrontendMessage` and `BackendMessage` types for every protocol message.\n- **pgconn/** — Low-level connection layer (roughly libpq-equivalent). Handles authentication, TLS, query execution, COPY protocol, and notifications. `PgConn` is the core type.\n- **pgx** (root package) — High-level query interface built on `pgconn`. Provides `Conn`, `Rows`, `Tx`, `Batch`, `CopyFrom`, and generic helpers like `CollectRows`/`ForEachRow`. Includes automatic statement caching (LRU).\n- **pgtype/** — Type system mapping between Go and PostgreSQL types (70+ types). Key interfaces: `Codec`, `Type`, `TypeMap`. Custom types (enums, composites, domains) are registered through `TypeMap`.\n- **pgxpool/** — Concurrency-safe connection pool built on `puddle/v2`. `Pool` is the main type; wraps `pgx.Conn`.\n- **stdlib/** — `database/sql` compatibility adapter.\n\nSupporting packages:\n- **internal/stmtcache/** — Prepared statement cache with LRU eviction\n- **internal/sanitize/** — SQL query sanitization\n- **tracelog/** — Logging adapter that implements tracer interfaces\n- **multitracer/** — Composes multiple tracers into one\n- **pgxtest/** — Test helpers for running tests across connection types\n\n## Key Design Conventions\n\n- **Semantic versioning** — strictly followed. Do not break the public API (no removing or renaming exported types, functions, methods, or fields; no changing function signatures).\n- **Minimal dependencies** — adding new dependencies is strongly discouraged (see CONTRIBUTING.md).\n- **Context-based** — all blocking operations take `context.Context`.\n- **Tracer interfaces** — observability via `QueryTracer`, `BatchTracer`, `CopyFromTracer`, `PrepareTracer` on `ConnConfig.Tracer`.\n- **Formatting** — always run `goimports -w .` after making changes to ensure code is properly formatted. CI checks formatting via `gofmt -l -s -w . && git diff --exit-code`. `gofumpt` with extra rules is also enforced via `golangci-lint`.\n- **Linters** — `govet`, `ineffassign`, and `unconvert` only (configured in `.golangci.yml`).\n- **CI matrix** — tests run against Go 1.25/1.26 × PostgreSQL 14-18 + CockroachDB, on Linux and Windows. Race detector enabled on Linux only.\n"},"items":[{"name":"CLAUDE.md","path":"CLAUDE.md","rawUrl":"https://raw.githubusercontent.com/jackc/pgx/HEAD/CLAUDE.md","title":"Claude Agent Guidelines & System Prompt","category":"claude-rule","format":"markdown","content":"# CLAUDE.md\n\nThis file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.\n\n## Project Overview\n\npgx is a PostgreSQL driver and toolkit for Go (`github.com/jackc/pgx/v5`). It provides both a native PostgreSQL interface and a `database/sql` compatible driver. Requires Go 1.25+ and supports PostgreSQL 14+ and CockroachDB.\n\n## Build & Test Commands\n\nEvery checkout has its own PostgreSQL 14-18 and CockroachDB instances, supervised by\nprocess-compose. `mise run dev` starts PostgreSQL 18; tests start other targets on demand and stop\nthem afterwards unless they were explicitly prewarmed. See DEVELOPMENT.md.\n\n```bash\nmise run dev                        # start PostgreSQL 18 and the database supervisor\nmise run dev:all                    # eagerly start every available database\nmise run dev -- -D                  # ... detached; then `mise run dev:wait`, and\n                                    # `mise run dev:down` when finished. Agents must do this.\n\n./test.sh                           # Full suite against PostgreSQL 18 (the default target)\n./test.sh pg16                      # Against PostgreSQL 16\n./test.sh crdb                      # Against CockroachDB\n./test.sh all                       # Every target (pg14-18 + crdb)\n./test.sh pg16 -run TestConnect     # Trailing arguments are passed to `go test`\n\ngo test ./...                       # Also works: mise loads the default target's PGX_TEST_*\ngo test -race ./...                 # With the race detector\n\ngoimports -w .                      # Format (always run after making changes)\ngolangci-lint run ./...             # Lint\n\nmise run dev:ports                  # This checkout's ports and where each server's data lives\nmise run db:start pg16 crdb         # Prewarm targets; tests then leave them running\nmise run db:stop pg16 crdb          # Stop prewarmed targets\nmise run db:psql                    # psql against PostgreSQL 18; `mise run db:psql 16` for another\nprocess-compose process logs pg16   # One server's output\n```\n\nDo not hardcode database ports. They are allocated per checkout by port-tamer and read from the\nenvironment (`PGPORT`, `PGPORT_16`, `CRDB_PORT`) or `.dev/ports.env`; 5432 and 26257 mean nothing\nhere.\n\nThe `PGX_TEST_*` connection strings have one definition, `scripts/lib/test_targets.rb`. Add or\nchange a target there, never in a second copy.\n\n## Test Database Setup\n\nThe lifecycle scripts handle setup: a PostgreSQL server initializes its cluster on first start and\ncreates `pgx_test` with the extensions and auth roles from `testsetup/postgresql_setup.sql`.\nCockroachDB recreates `pgx_test` after each in-memory restart. Nothing needs to be set up by hand.\n\nContributors who would rather point pgx at a PostgreSQL server they already have can set\n`PGX_TEST_DATABASE` themselves; see CONTRIBUTING.md. Many tests are skipped unless additional\n`PGX_TEST_*` variables are set (for TLS, SCRAM, MD5, unix socket, PgBouncer testing).\n\n## Reference Material\n\n`references/` holds read-only reference checkouts used when building pgx — currently the PostgreSQL source tree pinned to `REL_18_STABLE`. It is gitignored and provisioned on demand: bare mirrors are cached at a machine-level path (`/persist/shared/references` in a devcontainer, `~/.local/share/pgx/references` natively; `REFERENCES_MIRROR_DIR` overrides) and lightweight local checkouts are created in `references/` with `rake references:setup`. Each checkout has per-instance Git metadata while borrowing the shared mirror's object store. Related tasks: `rake references:update`, `rake references:status`, `rake references:clean`.\n\n- Do not automatically provision or update `references/`.\n- Never run `rake references:setup`, `rake references:update`, or any large download on your own initiative.\n- If reference sources are missing, work without them or ask the user.\n\n## Architecture\n\nThe codebase is a layered architecture, bottom-up:\n\n- **pgproto3/** — PostgreSQL wire protocol v3 encoder/decoder. Defines `FrontendMessage` and `BackendMessage` types for every protocol message.\n- **pgconn/** — Low-level connection layer (roughly libpq-equivalent). Handles authentication, TLS, query execution, COPY protocol, and notifications. `PgConn` is the core type.\n- **pgx** (root package) — High-level query interface built on `pgconn`. Provides `Conn`, `Rows`, `Tx`, `Batch`, `CopyFrom`, and generic helpers like `CollectRows`/`ForEachRow`. Includes automatic statement caching (LRU).\n- **pgtype/** — Type system mapping between Go and PostgreSQL types (70+ types). Key interfaces: `Codec`, `Type`, `TypeMap`. Custom types (enums, composites, domains) are registered through `TypeMap`.\n- **pgxpool/** — Concurrency-safe connection pool built on `puddle/v2`. `Pool` is the main type; wraps `pgx.Conn`.\n- **stdlib/** — `database/sql` compatibility adapter.\n\nSupporting packages:\n- **internal/stmtcache/** — Prepared statement cache with LRU eviction\n- **internal/sanitize/** — SQL query sanitization\n- **tracelog/** — Logging adapter that implements tracer interfaces\n- **multitracer/** — Composes multiple tracers into one\n- **pgxtest/** — Test helpers for running tests across connection types\n\n## Key Design Conventions\n\n- **Semantic versioning** — strictly followed. Do not break the public API (no removing or renaming exported types, functions, methods, or fields; no changing function signatures).\n- **Minimal dependencies** — adding new dependencies is strongly discouraged (see CONTRIBUTING.md).\n- **Context-based** — all blocking operations take `context.Context`.\n- **Tracer interfaces** — observability via `QueryTracer`, `BatchTracer`, `CopyFromTracer`, `PrepareTracer` on `ConnConfig.Tracer`.\n- **Formatting** — always run `goimports -w .` after making changes to ensure code is properly formatted. CI checks formatting via `gofmt -l -s -w . && git diff --exit-code`. `gofumpt` with extra rules is also enforced via `golangci-lint`.\n- **Linters** — `govet`, `ineffassign`, and `unconvert` only (configured in `.golangci.yml`).\n- **CI matrix** — tests run against Go 1.25/1.26 × PostgreSQL 14-18 + CockroachDB, on Linux and Windows. Race detector enabled on Linux only.\n","isInternal":false,"tokens":1443,"sizeBytes":6215}],"systemPromptSnippet":"<yakaai_skills repo=\"jackc/pgx\">\n<!-- File: CLAUDE.md (Tokens: ~1443 | Category: claude-rule) -->\n# CLAUDE.md\n\nThis file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.\n\n## Project Overview\n\npgx is a PostgreSQL driver and toolkit for Go (`github.com/jackc/pgx/v5`). It provides both a native PostgreSQL interface and a `database/sql` compatible driver. Requires Go 1.25+ and supports PostgreSQL 14+ and CockroachDB.\n\n## Build & Test Commands\n\nEvery checkout has its own PostgreSQL 14-18 and CockroachDB instances, supervised by\nprocess-compose. `mise run dev` starts PostgreSQL 18; tests start other targets on demand and stop\nthem afterwards unless they were explicitly prewarmed. See DEVELOPMENT.md.\n\n```bash\nmise run dev                        # start PostgreSQL 18 and the database supervisor\nmise run dev:all                    # eagerly start every available database\nmise run dev -- -D                  # ... detached; then `mise run dev:wait`, and\n                                    # `mise run dev:down` when finished. Agents must do this.\n\n./test.sh                           # Full suite against PostgreSQL 18 (the default target)\n./test.sh pg16                      # Against PostgreSQL 16\n./test.sh crdb                      # Against CockroachDB\n./test.sh all                       # Every target (pg14-18 + crdb)\n./test.sh pg16 -run TestConnect     # Trailing arguments are passed to `go test`\n\ngo test ./...                       # Also works: mise loads the default target's PGX_TEST_*\ngo test -race ./...                 # With the race detector\n\ngoimports -w .                      # Format (always run after making changes)\ngolangci-lint run ./...             # Lint\n\nmise run dev:ports                  # This checkout's ports and where each server's data lives\nmise run db:start pg16 crdb         # Prewarm targets; tests then leave them running\nmise run db:stop pg16 crdb          # Stop prewarmed targets\nmise run db:psql                    # psql against PostgreSQL 18; `mise run db:psql 16` for another\nprocess-compose process logs pg16   # One server's output\n```\n\nDo not hardcode database ports. They are allocated per checkout by port-tamer and read from the\nenvironment (`PGPORT`, `PGPORT_16`, `CRDB_PORT`) or `.dev/ports.env`; 5432 and 26257 mean nothing\nhere.\n\nThe `PGX_TEST_*` connection strings have one definition, `scripts/lib/test_targets.rb`. Add or\nchange a target there, never in a second copy.\n\n## Test Database Setup\n\nThe lifecycle scripts handle setup: a PostgreSQL server initializes its cluster on first start and\ncreates `pgx_test` with the extensions and auth roles from `testsetup/postgresql_setup.sql`.\nCockroachDB recreates `pgx_test` after each in-memory restart. Nothing needs to be set up by hand.\n\nContributors who would rather point pgx at a PostgreSQL server they already have can set\n`PGX_TEST_DATABASE` themselves; see CONTRIBUTING.md. Many tests are skipped unless additional\n`PGX_TEST_*` variables are set (for TLS, SCRAM, MD5, unix socket, PgBouncer testing).\n\n## Reference Material\n\n`references/` holds read-only reference checkouts used when building pgx — currently the PostgreSQL source tree pinned to `REL_18_STABLE`. It is gitignored and provisioned on demand: bare mirrors are cached at a machine-level path (`/persist/shared/references` in a devcontainer, `~/.local/share/pgx/references` natively; `REFERENCES_MIRROR_DIR` overrides) and lightweight local checkouts are created in `references/` with `rake references:setup`. Each checkout has per-instance Git metadata while borrowing the shared mirror's object store. Related tasks: `rake references:update`, `rake references:status`, `rake references:clean`.\n\n- Do not automatically provision or update `references/`.\n- Never run `rake references:setup`, `rake references:update`, or any large download on your own initiative.\n- If reference sources are missing, work without them or ask the user.\n\n## Architecture\n\nThe codebase is a layered architecture, bottom-up:\n\n- **pgproto3/** — PostgreSQL wire protocol v3 encoder/decoder. Defines `FrontendMessage` and `BackendMessage` types for every protocol message.\n- **pgconn/** — Low-level connection layer (roughly libpq-equivalent). Handles authentication, TLS, query execution, COPY protocol, and notifications. `PgConn` is the core type.\n- **pgx** (root package) — High-level query interface built on `pgconn`. Provides `Conn`, `Rows`, `Tx`, `Batch`, `CopyFrom`, and generic helpers like `CollectRows`/`ForEachRow`. Includes automatic statement caching (LRU).\n- **pgtype/** — Type system mapping between Go and PostgreSQL types (70+ types). Key interfaces: `Codec`, `Type`, `TypeMap`. Custom types (enums, composites, domains) are registered through `TypeMap`.\n- **pgxpool/** — Concurrency-safe connection pool built on `puddle/v2`. `Pool` is the main type; wraps `pgx.Conn`.\n- **stdlib/** — `database/sql` compatibility adapter.\n\nSupporting packages:\n- **internal/stmtcache/** — Prepared statement cache with LRU eviction\n- **internal/sanitize/** — SQL query sanitization\n- **tracelog/** — Logging adapter that implements tracer interfaces\n- **multitracer/** — Composes multiple tracers into one\n- **pgxtest/** — Test helpers for running tests across connection types\n\n## Key Design Conventions\n\n- **Semantic versioning** — strictly followed. Do not break the public API (no removing or renaming exported types, functions, methods, or fields; no changing function signatures).\n- **Minimal dependencies** — adding new dependencies is strongly discouraged (see CONTRIBUTING.md).\n- **Context-based** — all blocking operations take `context.Context`.\n- **Tracer interfaces** — observability via `QueryTracer`, `BatchTracer`, `CopyFromTracer`, `PrepareTracer` on `ConnConfig.Tracer`.\n- **Formatting** — always run `goimports -w .` after making changes to ensure code is properly formatted. CI checks formatting via `gofmt -l -s -w . && git diff --exit-code`. `gofumpt` with extra rules is also enforced via `golangci-lint`.\n- **Linters** — `govet`, `ineffassign`, and `unconvert` only (configured in `.golangci.yml`).\n- **CI matrix** — tests run against Go 1.25/1.26 × PostgreSQL 14-18 + CockroachDB, on Linux and Windows. Race detector enabled on Linux only.\n</yakaai_skills>"}