Agent skill

Postgres Health Check

by fmflurry in fmflurry/settings-opencode

Read-only PostgreSQL instance health battery: connectivity/uptime, cache hit ratio, dead tuples & autovacuum hotspots, XID wraparound distance, long-running & idle-in-transaction sessions, unused…

MITAuto-check passedDatabases

Install Postgres Health Check

skills CLI
$ npx skills add fmflurry/settings-opencode --skill postgres-health-check -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install fmflurry/settings-opencode postgres-health-check --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/fmflurry/settings-opencode.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/postgres-health-check .claude/skills/postgres-health-check && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
postgres-health-check
GitHub stars
171
Token cost
~3.3k tokens
SKILL.md length
985 words
Files
2
Skills in repo
20
Repo updated
First seen
Licence
MIT

At a glance

Read-only PostgreSQL instance health battery: connectivity/uptime, cache hit ratio, dead tuples & autovacuum hotspots, XID wraparound distance, long-running & idle-in-transaction sessions, unused…

  • Works in 10 steps: Connectivity & uptime → Cache hit ratio → Dead tuples & autovacuum hotspots → …
  • Asked about db health
  • SKILL.md covers 1. Connectivity & uptime, 2. Cache hit ratio, 3. Dead tuples & autovacuum… and 4. XID wraparound distance, plus 7 more sections
  • Calls docker

What it does

Postgres Health Check is an agent skill from fmflurry/settings-opencode. Read-only PostgreSQL instance health battery: connectivity/uptime, cache hit ratio, dead tuples & autovacuum hotspots, XID wraparound distance, long-running & idle-in-transaction sessions, unused indexes, checkpoint stats, archiver health, connection count vs maxconnections, and docker container/volume checks. Use when asked about db health, postgres check, vacuum, bloat, wraparound, autovacuum, database slow, or connection count. Target: postgres:16-alpine (container gc-platform-postgres). Read alongside the…

Its SKILL.md is about 3.3k tokens, which your agent loads only when the skill is triggered. The skill folder holds 1 other file (for example `reference-migration-ops.md`).

It sits in Databases, covering Database administration and Containers. It works with PostgreSQL and Docker. The repository describes itself as: Custom OpenCode settings. The licence is MIT.

When your agent uses it

  • Asked about db health
  • Connection count

Example prompts

  • “/postgres-health-check”

Requirements

  • Docker

Workflow steps

10 steps, taken from the step headings in SKILL.md.

  1. Connectivity & uptime
  2. Cache hit ratio
  3. Dead tuples & autovacuum hotspots
  4. XID wraparound distance
  5. Long-running & idle-in-transaction sessions
  6. Unused indexes
  7. Checkpoint stats
  8. Archiver health
  9. Connection count vs max_connections
  10. Container layer

What it can do on your machine

Read from SKILL.md and the folder at commit 0e6c33c. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • docker

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Links to these hosts (documentation or services it may open):

    • postgresql.org

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Postgres Health Check loads about 3.3k tokens when it runs. Until then it costs about 139 tokens; SKILL.md has 985 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~139
When it runs · the whole SKILL.md, loaded when a task matches
~3.3k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from fmflurry/settings-opencode at commit 0e6c33c, republished under its MIT licence (© fmflurry). 985 words, ~3,347 tokens.

Download SKILL.mdSave it as .claude/skills/postgres-health-check/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.
name
postgres-health-check
description
Read-only PostgreSQL instance health battery: connectivity/uptime, cache hit ratio, dead tuples & autovacuum hotspots, XID wraparound distance, long-running & idle-in-transaction sessions, unused indexes, checkpoint stats, archiver health, connection count vs max_connections, and docker container/volume checks. Use when asked about db health, postgres check, vacuum, bloat, wraparound, autovacuum, database slow, or connection count. Target: postgres:16-alpine (container gc-platform-postgres). Read alongside the postgres-dba agent.

PostgreSQL Instance Health Check

Target version: postgres:16-alpine — this repository's gc-platform-postgres container (db gcplatform, owner role gcplatform, runtime role gc_kourou_app_login).

Contract: every check below is a read-only diagnostic (SELECT against pg_stat_*/pg_catalog, pg_isready, docker read commands). Each check gives: query → interpretation → severity → remediation. Remediations that mutate state are emitted ONLY as ⚠️ HUMAN CONFIRMATION REQUIRED blocks — the postgres-dba agent never executes them.

Connection:

bash
docker exec gc-platform-postgres psql -U gcplatform -d gcplatform -c "<query>"

Progressive disclosure: for the OPS side of applying EF Core migrations (lock windows at apply time, CREATE INDEX CONCURRENTLY vs the migration transaction, post-migration bloat/vacuum watch, live model-drift check), load reference-migration-ops.md in this skill's directory; code-side migration/schema correctness stays with database-reviewer.


1. Connectivity & uptime

sql
SELECT version();
SELECT now() - pg_postmaster_start_time() AS uptime;
SELECT pg_is_in_recovery();
bash
docker exec gc-platform-postgres pg_isready -U gcplatform -d gcplatform

Interpretation: pg_isready non-zero exit = server not accepting connections (CRITICAL). Very short uptime + no deploy = crash-loop (check docker logs --tail 200 gc-platform-postgres). pg_is_in_recovery() = true on the primary = unexpected (this stack has no replicas).

Severity: CRITICAL if unreachable; LOW note if uptime < 1h (statistics views were reset — treat other checks' counters cautiously).


2. Cache hit ratio

sql
SELECT
  datname,
  blks_hit,
  blks_read,
  ROUND(blks_hit::numeric / NULLIF(blks_hit + blks_read, 0) * 100, 2) AS cache_hit_ratio_pct
FROM pg_stat_database
WHERE datname = current_database();

Interpretation: ratio = shared-buffer hits / (hits + disk reads). Healthy OLTP ≥ 99%. < 95% on a warm instance means working set exceeds shared_buffers (default 128MB here — no command: override in compose) or queries do large sequential scans. Stats accumulate since last reset — judge the trend, not a snapshot.

Severity: MEDIUM (< 95%), HIGH (< 90% with user-visible latency).

Remediation: size shared_buffers per the postgres-performance-tuning skill; first confirm with EXPLAIN that low ratio is not just batch analytics scans.


3. Dead tuples & autovacuum hotspots

sql
SELECT
  schemaname, relname,
  n_live_tup, n_dead_tup,
  ROUND(n_dead_tup::numeric / NULLIF(n_live_tup + n_dead_tup, 0) * 100, 2) AS dead_pct,
  last_vacuum, last_autovacuum, last_analyze, last_autoanalyze,
  autovacuum_count
FROM pg_stat_user_tables
ORDER BY n_dead_tup DESC
LIMIT 20;

Interpretation: n_dead_tup grows with UPDATE/DELETE; autovacuum reclaims them. Hotspots: high dead_pct (> 20%) AND (last_autovacuum NULL or old) = autovacuum not keeping up (long transactions hold back the xmin horizon; check check 5). n_dead_tup is an estimate from the stats collector, not an exact count. Bloat also lives in indexes — compare pg_total_relation_size vs pg_relation_size.

Severity: HIGH (dead_pct > 50% on a hot table, or never autovacuumed); MEDIUM (20–50%).

Remediation:

⚠️ HUMAN CONFIRMATION REQUIRED

sql
-- Reclaim space without the exclusive lock of VACUUM FULL (safe online):
VACUUM (ANALYZE, VERBOSE) <schema>.<table>;

-- For tables that bloat repeatedly, tighten per-table autovacuum:
ALTER TABLE <schema>.<table> SET (
  autovacuum_vacuum_scale_factor = 0.05,
  autovacuum_analyze_scale_factor = 0.02
);

VACUUM FULL rewrites the whole table under an ACCESS EXCLUSIVE lock — only as last resort, off-hours, with a fresh backup. Source: https://www.postgresql.org/docs/16/routine-vacuuming.html


4. XID wraparound distance

sql
-- Per-database age:
SELECT datname, age(datfrozenxid) AS xid_age,
       ROUND(age(datfrozenxid)::numeric / 2147483647 * 100, 2) AS pct_to_wraparound
FROM pg_database WHERE datname = current_database();

-- Oldest per-table age (finds the table holding the horizon back):
SELECT schemaname, relname, age(relfrozenxid) AS rel_xid_age
FROM pg_stat_user_tables
ORDER BY age(relfrozenxid) DESC LIMIT 10;

Interpretation: transaction IDs are 32-bit; at age ≈ 2^31 (≈ 2.147 billion) the database stops accepting writes to prevent wraparound data loss. PostgreSQL warns when a database comes within 40 million XIDs of wraparound and refuses new transactions when only 3 million remain. Autovacuum normally prevents this (autovacuum_freeze_max_age, default 200M, triggers aggressive freeze vacuums) — except when autovacuum is blocked (long-lived transactions, stuck replication slots, idle in transaction sessions). Source: https://www.postgresql.org/docs/16/routine-vacuuming.html

Severity: CRITICAL (age > 2.1B, i.e. within 40M of wraparound); HIGH (> 1B); MEDIUM (> 500M — investigate why freeze vacuums lag).

Remediation:

⚠️ HUMAN CONFIRMATION REQUIRED

sql
-- First remove whatever holds the xmin horizon back (check 5): kill the stuck session/slot.
-- Then database-wide freeze vacuum (I/O-heavy; run off-hours):
VACUUM (FREEZE, VERBOSE) <schema>.<table>;   -- per worst table
-- or, full database (long):
-- VACUUMFREEZE via: VACUUM (FREEZE); on each database

5. Long-running & idle-in-transaction sessions

sql
SELECT pid, usename, state, wait_event_type, wait_event,
       now() - xact_start AS tx_duration,
       now() - query_start AS query_duration,
       LEFT(query, 120) AS query
FROM pg_stat_activity
WHERE datname = current_database()
  AND pid <> pg_backend_pid()
  AND (state = 'idle in transaction'
       OR now() - xact_start > interval '5 minutes')
ORDER BY xact_start NULLS LAST;

Interpretation: idle in transaction holds locks AND holds back the xmin horizon → blocks autovacuum → feeds checks 3 and 4. A 10-minute idle in transaction from the backend (gc_kourou_app_login) usually means an undisposed EF Core transaction or a debugger paused mid-transaction. wait_event explains blocked sessions (e.g. relation, transactionid = lock waits).

Severity: HIGH (> 30 min, or blocking autovacuum on hot tables); MEDIUM (5–30 min).

Remediation:

⚠️ HUMAN CONFIRMATION REQUIRED

sql
-- Prefer cancel (graceful) before terminate (force):
SELECT pg_cancel_backend(<pid>);
SELECT pg_terminate_backend(<pid>);

App-side fix (uncommitted transactions, missing await using on transactions) → dispatch coder via conductor.


6. Unused indexes

sql
SELECT s.schemaname, s.relname, s.indexrelname,
       s.idx_scan, pg_size_pretty(pg_relation_size(s.indexrelid)) AS index_size
FROM pg_stat_user_indexes s
JOIN pg_index i ON s.indexrelid = i.indexrelid
WHERE s.idx_scan = 0
  AND NOT i.indisunique      -- unique indexes enforce constraints: never drop on scan count alone
  AND NOT i.indisprimary
ORDER BY pg_relation_size(s.indexrelid) DESC;

Interpretation: idx_scan = 0 since the last statistics reset (check uptime / pg_stat_reset history) — a rarely-used but load-bearing index (month-end job) can look unused. Write-heavy tables pay INSERT/UPDATE cost for every unused index. Statistics are per-index-scan, not per-query.

Severity: MEDIUM (large unused indexes on write-heavy tables); LOW otherwise.

Remediation: dropping an index defined in an EF Core migration is a code change → recommend database-reviewer (review) + coder (migration). Ad-hoc drop, if ever:

⚠️ HUMAN CONFIRMATION REQUIRED

sql
DROP INDEX CONCURRENTLY <schema>.<index_name>;

Show full SKILL.md (406 more words)Show less

7. Checkpoint stats

sql
SELECT checkpoints_timed, checkpoints_req,
       ROUND(checkpoints_req::numeric / NULLIF(checkpoints_timed + checkpoints_req, 0) * 100, 2) AS req_pct,
       buffers_checkpoint, buffers_clean, buffers_backend,
       ROUND(checkpoint_write_time / NULLIF(checkpoints_timed + checkpoints_req, 0)) AS avg_write_ms,
       ROUND(checkpoint_sync_time  / NULLIF(checkpoints_timed + checkpoints_req, 0)) AS avg_sync_ms
FROM pg_stat_checkpointer;   -- PG14+: split out of pg_stat_bgwriter

Interpretation: checkpoints flush dirty buffers to disk. checkpoints_req (forced, because max_wal_size filled) should be a small fraction of checkpoints_timed (scheduled). req_pct > 10–20% = WAL generation outpaces max_wal_size (default 1GB) → I/O spikes. High buffers_backend = backends flushing pages themselves because the checkpointer can't keep up. Source: https://www.postgresql.org/docs/16/wal-configuration.html

Severity: HIGH (req_pct > 50% with latency symptoms); MEDIUM (10–50%).

Remediation: raise max_wal_size / tune completion target per the postgres-performance-tuning skill (compose command: change → coder + human restart).


8. Archiver health

sql
SHOW archive_mode;
SHOW archive_command;
SELECT archived_count, failed_count,
       last_archived_wal, last_archived_time,
       last_failed_wal, last_failed_time
FROM pg_stat_archiver;

Interpretation: if archive_mode = on, the archiver copies completed WAL segments for PITR. failed_count increasing (or last_failed_time recent) is CRITICAL: failed archives are retried and pile up in pg_wal; when pg_wal fills the disk the server PANICs and shuts down ("could not write to file"). A failing archive_command (bad path, full destination) also silently breaks any PITR strategy. With archive_mode = off (the current compose default) there is no PITR — see postgres-backup-restore. Source: https://www.postgresql.org/docs/16/continuous-archiving.html

Severity: CRITICAL (archiver failing); HIGH (archiving off AND no dump strategy); else OK.

Remediation: fix the archive destination (human), then:

⚠️ HUMAN CONFIRMATION REQUIRED

sql
SELECT pg_stat_reset_shared('archiver');  -- only AFTER the destination is fixed, to clear counters

9. Connection count vs max_connections

sql
SHOW max_connections;
SELECT state, count(*) FROM pg_stat_activity
WHERE datname = current_database() GROUP BY state ORDER BY 2 DESC;
SELECT count(*) AS total,
       (SELECT setting::int FROM pg_settings WHERE name = 'max_connections') AS max
FROM pg_stat_activity WHERE datname = current_database();

Interpretation: default max_connections = 100. Each connection costs ≈ 5–10MB of backend memory — with mem_limit: 1g the container OOMs long before 100 busy backends. Sustained usage > 80% of max → add pgbouncer (see postgres-performance-tuning) rather than raising max_connections. Many idle connections from gc_kourou_app_login = Npgsql pool sized too large or multiple app instances.

Severity: CRITICAL (≥ 95% — new connections will fail); HIGH (80–95%); MEDIUM (idle connections ≫ active).


10. Container layer

bash
docker stats --no-stream gc-platform-postgres
docker inspect --format '{{.State.Health.Status}} | started={{.State.StartedAt}} | restarts={{.RestartCount}}' gc-platform-postgres
docker volume inspect "$(docker inspect --format '{{range .Mounts}}{{if eq .Destination "/var/lib/postgresql/data"}}{{.Name}}{{end}}{{end}}' gc-platform-postgres)"
docker inspect --format '{{.HostConfig.ShmSize}}' gc-platform-postgres
docker inspect --format '{{.Config.Image}}' gc-platform-postgres

Interpretation:

  • Volume: data MUST live on the named volume postgres-data (/var/lib/postgresql/data). Anonymous/missing volume = data loss on container removal → CRITICAL.
  • Healthcheck: anything but healthy (compose runs pg_isready every 5s) → investigate logs.
  • Restarts: RestartCount climbing = crash-loop (OOM or PANIC — check docker logs).
  • ShmSize: this compose sets no shm_size, so Docker defaults /dev/shm to 64MB. PostgreSQL uses POSIX shared memory for parallel query coordination; the official postgres image documents 64MB as a known pitfall (parallel workers can fail with "could not resize shared memory segment"). ⚠️ Heuristic: raise to ≥ 256MB for parallel workloads.
  • Image: confirm postgres:16-alpine; a drifting tag breaks upgrade planning.

Severity: CRITICAL (volume not persisted; crash-loop); MEDIUM (shm_size 64MB on a parallel workload).

Remediation (compose change → coder + human docker compose up -d):

⚠️ HUMAN CONFIRMATION REQUIRED

yaml
# docker-compose.yml, postgres service
shm_size: 256m

Battery order (for /db-health)

Run checks 1 → 10 in order; stop the write-up early only if check 1 fails (unreachable). Cross-link findings: 5 feeds 3 feeds 4 (stuck sessions → dead tuples → wraparound risk); 7 feeds the tuning skill; 8 feeds the backup skill.

© fmflurry, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 1 other file in skills/postgres-health-check of fmflurry/settings-opencode.

  • SKILL.md
  • reference-migration-ops.md

Open the folder on GitHubat commit 0e6c33c

Compare with similar skills

Postgres Health Check next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Postgres Health Check compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Postgres Health Check this skillfmflurry/settings-opencode171—~3.3kAutomated safety check: PassMIT
Cloudrun DevelopmentTencentCloudBase/CloudBase-AI-Toolkit1.1k1 repos~7.2kAutomated safety check: PassMIT
Monstermq Broker Configvogler75/monster-mq143—~2.2kAutomated safety check: PassGPL-3.0
Local Platform E2Ecomputesdk/benchmarks126—~3kAutomated safety check: NotesMIT
Fly Io DeployerLeoYeAI/openclaw-master-skills2.2k—~6.3kAutomated safety check: NotesMIT
SQL Database Support for pRESTprest/prest4.6k—~1.6kAutomated safety check: PassMIT

Similar skills

  • Cloudrun Development

    TencentCloudBase/CloudBase-AI-Toolkit

    CloudBase Run backend development rules (Function mode/Container mode).

    1.1k GitHub starsUsed in 1 repo~7.2k tokens
    DatabasesAuto-check passed
  • Monstermq Broker Config

    vogler75/monster-mq

    Guide for configuring, deploying, and operating the MonsterMQ broker.

    143 GitHub stars~2.2k tokensUpdated today
    DevOps & CloudAuto-check passed
  • Local Platform E2E

    computesdk/benchmarks

    Stand up benchmarks-platform locally (Postgres + MinIO + ClickHouse in docker) and run a real @benchsdk/runner benchmark against it, with no cloud or provider credentials.

    126 GitHub stars~3k tokensUpdated yesterday
    DatabasesAuto-check: notes
  • Fly Io Deployer

    LeoYeAI/openclaw-master-skills

    Deploy and operate Node, Python, Go, Rust, Elixir, and Docker apps on Fly.io with production-grade fly.toml authoring, Machines API orchestration, region selection (latency vs sovereignty vs…

    2.2k GitHub stars~6.3k tokensUpdated 2 mo ago
    DevOps & CloudAuto-check: notes
  • Guides classifying, gap-analyzing and scaffolding support for a new SQL database in pREST, from Postgres-compatible variants to entirely new dialects.

    4.6k GitHub stars~1.6k tokensUpdated yesterday
    DatabasesAuto-check passed
  • Cb Build Test

    BlkLeg/CircuitBreaker

    How Circuit Breaker is built, tested, packaged, and kept secret-safe — the make dev/verify/test targets, the PostgreSQL integration test database and its fixtures, the mono Docker image and native…

    201 GitHub stars~1.9k tokensUpdated 5 days ago
    DevOps & CloudAuto-check passed

More from fmflurry/settings-opencode

All 20 skills in this repo
  • Show Your Work

    fmflurry/settings-opencode

    Keep a reviewable decision trail for long-running or unattended work: a TSV log with one row per decision (what, why, evidence, result).

    171 GitHub stars~1.8k tokensUpdated 3 days ago
    Auto-check passed
  • Playwright E2E Authoring

    fmflurry/settings-opencode

    Scaffold and extend Playwright E2E tests for the gc.platform suite (tests/playwright), wiring every artifact to the real frontend (localhost:4200) + real .NET backend — never mocks.

    171 GitHub stars~2.4k tokensUpdated 3 days ago
    Auto-check passed
  • Why

    fmflurry/settings-opencode

    A skill your agent uses for 'why does X work this way', 'why we picked Y', design rationale, regressions, postmortems, or data-backed thresholds.

    171 GitHub stars~2k tokensUpdated 3 days ago
    Auto-check passed
  • Angular Accessibility

    fmflurry/settings-opencode

    Audit and fix common accessibility issues in Angular templates and Angular Material components.

    171 GitHub stars~2.7k tokensUpdated 3 days ago
    Auto-check passed
  • Angular Clean Architecture

    fmflurry/settings-opencode

    Scaffolds and extends Angular standalone feature MODULES under src/app/modules/{name} using Clean Architecture layering (presentation/application/core/infrastructure), a self-registering module…

    171 GitHub stars~3.6k tokensUpdated 3 days ago
    Auto-check passed
  • Angular Cop

    fmflurry/settings-opencode

    Pre-merge code review for Angular + TypeScript pull requests.

    171 GitHub stars~1.4k tokensUpdated 3 days ago
    Auto-check passed

Questions about Postgres Health Check

What does Postgres Health Check do?

Read-only PostgreSQL instance health battery: connectivity/uptime, cache hit ratio, dead tuples & autovacuum hotspots, XID wraparound distance, long-running & idle-in-transaction sessions, unused…. Postgres Health Check is an agent skill from fmflurry/settings-opencode. Read-only PostgreSQL instance health battery: connectivity/uptime, cache hit ratio, dead tuples & autovacuum hotspots, XID wraparound distance, long-running & idle-in-transaction sessions, unused indexes, checkpoint stats, archiver health, connection count vs maxconnections, and docker container/volume checks.

When should I use Postgres Health Check?

Postgres Health Check fits situations like: asked about db health; connection count.

How do I install Postgres Health Check in Claude Code?

Run `npx skills add fmflurry/settings-opencode --skill postgres-health-check -a claude-code`. Or copy the skill folder (skills/postgres-health-check in fmflurry/settings-opencode) into .claude/skills/postgres-health-check in your project. Claude Code loads it when a task matches its description.

How do I install Postgres Health Check in Codex?

Run `npx skills add fmflurry/settings-opencode --skill postgres-health-check -a codex`. Or copy the skill folder (skills/postgres-health-check in fmflurry/settings-opencode) into .agents/skills/postgres-health-check in your project. Codex loads it when a task matches its description.

Can I use Postgres Health Check in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add fmflurry/settings-opencode --skill postgres-health-check -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/postgres-health-check, .gemini/skills/postgres-health-check, .github/skills/postgres-health-check and .opencode/skills/postgres-health-check in your project.

What does Postgres Health Check need to run?

Going by SKILL.md and its folder, Postgres Health Check needs the command-line tools its instructions call (docker). Our summary lists: Docker.

Does Postgres Health Check access the network?

SKILL.md names 1 domain. As links in the text: postgresql.org. This is read from the text; nothing was executed.

Is Postgres Health Check safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Postgres Health Check use?

Postgres Health Check is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Postgres Health Check use?

About 3.3k tokens (SKILL.md is roughly 13k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Postgres Health Check?

Skills that share tags, products or a category with Postgres Health Check: Cloudrun Development (TencentCloudBase/CloudBase-AI-Toolkit, 1.1k stars), Monstermq Broker Config (vogler75/monster-mq, 143 stars), Local Platform E2E (computesdk/benchmarks, 126 stars) and Fly Io Deployer (LeoYeAI/openclaw-master-skills, 2.2k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Postgres Health Check?

fmflurry (a GitHub user) maintains it in fmflurry/settings-opencode, which has 171 GitHub stars. The repository holds 20 skills in this directory. The repository was last updated on October 7, 2026.

Source: fmflurry/settings-opencode on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.