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…
PostgreSQL container operations for the docker instance: volume persistence audit (PGDATA layout and the PG18 version-specific data-directory change), /dev/shm sizing (shmsize), pgisready…
$ npx skills add fmflurry/settings-opencode --skill postgres-container-ops -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install fmflurry/settings-opencode postgres-container-ops --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/fmflurry/settings-opencode.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/postgres-container-ops .claude/skills/postgres-container-ops && rm -rf skills-srcUse ~/.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/
Install the "postgres-container-ops" agent skill from https://github.com/fmflurry/settings-opencode/tree/master/skills/postgres-container-ops into .claude/skills/postgres-container-ops/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "postgres-container-ops", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/fmflurry/settings-opencode/tree/master/skills/postgres-container-opsType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add fmflurry/settings-opencode --skill postgres-container-ops -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install fmflurry/settings-opencode postgres-container-ops --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/fmflurry/settings-opencode.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/postgres-container-ops .agents/skills/postgres-container-ops && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "postgres-container-ops" agent skill from https://github.com/fmflurry/settings-opencode/tree/master/skills/postgres-container-ops into .agents/skills/postgres-container-ops/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "postgres-container-ops", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add fmflurry/settings-opencode --skill postgres-container-ops -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install fmflurry/settings-opencode postgres-container-ops --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/fmflurry/settings-opencode.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/postgres-container-ops .cursor/skills/postgres-container-ops && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "postgres-container-ops" agent skill from https://github.com/fmflurry/settings-opencode/tree/master/skills/postgres-container-ops into .cursor/skills/postgres-container-ops/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "postgres-container-ops", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/fmflurry/settings-opencode.git --path skills/postgres-container-ops--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add fmflurry/settings-opencode --skill postgres-container-ops -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install fmflurry/settings-opencode postgres-container-ops --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/fmflurry/settings-opencode.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/postgres-container-ops .gemini/skills/postgres-container-ops && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "postgres-container-ops" agent skill from https://github.com/fmflurry/settings-opencode/tree/master/skills/postgres-container-ops into .gemini/skills/postgres-container-ops/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "postgres-container-ops", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install fmflurry/settings-opencode postgres-container-opsInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add fmflurry/settings-opencode --skill postgres-container-ops -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/fmflurry/settings-opencode.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/postgres-container-ops .github/skills/postgres-container-ops && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "postgres-container-ops" agent skill from https://github.com/fmflurry/settings-opencode/tree/master/skills/postgres-container-ops into .github/skills/postgres-container-ops/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "postgres-container-ops", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add fmflurry/settings-opencode --skill postgres-container-ops -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install fmflurry/settings-opencode postgres-container-ops --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/fmflurry/settings-opencode.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/postgres-container-ops .opencode/skills/postgres-container-ops && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "postgres-container-ops" agent skill from https://github.com/fmflurry/settings-opencode/tree/master/skills/postgres-container-ops into .opencode/skills/postgres-container-ops/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "postgres-container-ops", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
postgres-container-opsPostgreSQL container operations for the docker instance: volume persistence audit (PGDATA layout and the PG18 version-specific data-directory change), /dev/shm sizing (shmsize), pgisready…
Postgres Container Ops is an agent skill from fmflurry/settings-opencode. PostgreSQL container operations for the docker instance: volume persistence audit (PGDATA layout and the PG18 version-specific data-directory change), /dev/shm sizing (shmsize), pgisready healthcheck tuning, minor-version pin policy (16-alpine to explicit 16.x-alpine), the major-version upgrade runbook (pgupgrade --link vs pgdump/restore fallback), and the /docker-entrypoint-initdb.d init-scripts caveat. Use when asked about container upgrade, pgupgrade, postgres version bump, volume persistence, shmsize…
Its SKILL.md is about 4.4k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in DevOps & Cloud, covering Containers, Code migrations and Runbooks and postmortems. It works with PostgreSQL and Docker. The repository describes itself as: Custom OpenCode settings. The licence is MIT.
6 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit f0dcb5a. It shows what the files ask for, not the result of running them.
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.
Shell commands in SKILL.md call:
dockerFrom the folder's file list and the shell code blocks in SKILL.md.
Links to these hosts (documentation or services it may open):
postgresql.orggithub.comFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Postgres Container Ops loads about 4.4k tokens when it runs. Until then it costs about 171 tokens; SKILL.md has 1,772 words of instructions outside code blocks.
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.
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.
The full file from fmflurry/settings-opencode at commit f0dcb5a, republished under its MIT licence (© fmflurry). 1,772 words, ~4,434 tokens.
.claude/skills/postgres-container-ops/SKILL.md (or your agent's skills folder).Target version: postgres:16-alpine — this repository's gc-platform-postgres container (db gcplatform, owner role gcplatform, data on named volume postgres-data → /var/lib/postgresql/data). The second Postgres, gc-platform-langfuse-postgres (Langfuse observability tier), is out of scope for this skill unless explicitly asked.
Contract: auditing is read-only (docker volume inspect, docker inspect, docker ps, pg_isready). Every upgrade, dump/restore, volume, or server-config command below is emitted ONLY as a ⚠️ HUMAN CONFIRMATION REQUIRED block — the postgres-dba agent never executes upgrades, restores, or config changes. Image-layout facts marked (verified) are confirmed against the official docker-library postgres README; facts marked ⚠️ are established guidance to verify before acting.
Source of truth for image behaviour: https://github.com/docker-library/docs/blob/master/postgres/README.md (verified). pg_upgrade mechanics: https://www.postgresql.org/docs/current/pgupgrade.html ⚠️.
Connection / inspection:
docker exec gc-platform-postgres psql -U gcplatform -d gcplatform -c "<query>"
docker exec gc-platform-postgres pg_isready -U gcplatform -d gcplatformWhere the data physically lives is the single most important container fact. Get it wrong and a container re-create silently loses the database.
# Named volume + its host mountpoint:
docker volume inspect postgres-data
# What is actually mounted inside the container, and where:
docker inspect --format '{{range .Mounts}}{{.Type}} {{.Name}} -> {{.Destination}}{{println}}{{end}}' gc-platform-postgres
# Restart-survival probe (read-only): the data dir must be on the named volume, not an anonymous one:
docker inspect --format '{{range .Mounts}}{{if eq .Destination "/var/lib/postgresql/data"}}{{.Name}} ({{.Type}}){{end}}{{end}}' gc-platform-postgresInterpretation:
VOLUME at /var/lib/postgresql/data, and PGDATA defaults there. The data volume must be mounted at /var/lib/postgresql/data. (verified) Mounting at /var/lib/postgresql on PG ≤ 17 WILL NOT PERSIST data: the runtime auto-creates an anonymous volume at the declared path and data is written there instead, lost on container deletion. (verified)PGDATA version-specific — /var/lib/postgresql/<major>/docker (e.g. /var/lib/postgresql/18/docker) — and moves the declared VOLUME up to /var/lib/postgresql. Mounts/volumes must target the new location. (verified) This is precisely what enables the fast pg_upgrade --link path (see §5): old and new data directories coexist under one mounted /var/lib/postgresql. (verified)PGDATA explicitly (PGDATA=/var/lib/postgresql/17/docker) and mounting the volume at /var/lib/postgresql — but to migrate pre-existing data you must first move all database files into a <PG_MAJOR>/docker subdirectory of the volume. (verified) Treat that move as a mutation (human-only, with a fresh backup).docker compose down; repo-tree bind-mounts corrupt on macOS Docker file-sharing. docker volume rm postgres-data is on the postgres-dba never-execute list — deletion is a human decision taken with a verified backup in hand.Severity: CRITICAL (data not on the named volume postgres-data; anonymous volume; restart loses data); HIGH (bind-mount into repo tree); else OK.
Remediation: a volume/mount fix is a compose change → dispatch coder with a precise brief, then a human applies it. Never re-point or delete a volume without a verified restorable backup (see postgres-backup-restore §5 restore-drill).
/dev/shm sizing (shm_size)docker inspect --format '{{.HostConfig.ShmSize}}' gc-platform-postgres # bytes; 67108864 = 64MBInterpretation: Docker defaults a container's /dev/shm to 64MB. PostgreSQL uses POSIX shared memory for parallel-query coordination; when /dev/shm is exhausted, parallel workers fail with ERROR: could not resize shared memory segment ... : No space left on device. The official postgres image documents 64MB as a known pitfall and recommends raising it (its compose example uses shm_size: 128mb; ⚠️ heuristic: ≥ 256MB for parallel workloads). (verified re: the 64MB default + the error; the 256MB figure is a heuristic.) This compose sets no shm_size, so the container is on the 64MB default.
Severity: MEDIUM (64MB on a workload that uses parallel query); LOW (no parallel query observed).
Remediation (compose change → coder + human docker compose up -d; restart required):
⚠️ HUMAN CONFIRMATION REQUIRED
# docker-compose.yml, postgres service
shm_size: 256mbVerify after restart: docker inspect --format '{{.HostConfig.ShmSize}}' gc-platform-postgres (expect 268435456).
Current compose healthcheck: pg_isready -U gcplatform -d gcplatform. Read the live config:
docker inspect --format '{{json .Config.Healthcheck}}' gc-platform-postgres
docker inspect --format '{{.State.Health.Status}} | failing={{.State.Health.FailingStreak}} | restarts={{.RestartCount}}' gc-platform-postgresInterpretation: pg_isready only confirms the server accepts connections — it does NOT prove the database is usable (it can return success mid-recovery, or while a hot table is lock-blocked). Tune the four knobs, not the probe command:
| Knob | ⚠️ Heuristic | Why |
|---|---|---|
interval | 5–10s | How often to probe. Too tight = needless load; too loose = slow failure detection. |
timeout | 5s | Per-probe budget; must exceed a normal pg_isready round-trip or healthy-but-busy servers flap. |
retries | 3–5 | Consecutive failures before unhealthy. Guards against a single slow probe. |
start_period | 30–60s | Grace window while the server initialises; probes inside it don't count toward retries. This repo runs EF migrations + IdentitySchemaMigrator on backend boot, but Postgres itself starts fast — keep start_period modest. |
Anything but healthy (or a climbing FailingStreak/RestartCount) → read docker logs --tail 200 gc-platform-postgres before touching the healthcheck. A flapping healthcheck is usually a symptom (crash-loop, OOM, PANIC), not a misconfigured probe.
Severity: MEDIUM (no start_period and the stack falsely reports unhealthy during boot); LOW (cosmetic tuning); the underlying cause of an unhealthy container is rated on its own merits (CRITICAL for crash-loop/PANIC).
Remediation (compose change → coder + human restart):
⚠️ HUMAN CONFIRMATION REQUIRED
# docker-compose.yml, postgres service
healthcheck:
test: ["CMD-SHELL", "pg_isready -U gcplatform -d gcplatform"]
interval: 10s
timeout: 5s
retries: 5
start_period: 30sdocker inspect --format '{{.Config.Image}}' gc-platform-postgres # confirm the running tag
docker image inspect --format '{{index .RepoDigests 0}}' postgres:16-alpine 2>/dev/null # pinned digest, if pulledInterpretation: the compose pins 16-alpine — a floating major-version tag that tracks the latest 16.x. Minor releases (16.x → 16.x+1) are backward-compatible bugfix/security drops; pulling a newer 16.x and restarting is the supported upgrade path and needs only a container restart (brief downtime). The risk with a floating tag is surprise: a docker compose pull + up -d silently moves the minor version.
⚠️ Heuristic pin policy:
16.x-alpine (replace x with the current tested minor — 16.14 at the time of writing per the docker-library tag list), and bump it deliberately after reading the release notes.16-alpine is acceptable for dev; pin the digest or explicit minor for anything you must reproduce.Severity: LOW (floating tag in dev); MEDIUM (floating tag where reproducibility matters).
Remediation (compose change → coder; the pull + restart is human-executed):
⚠️ HUMAN CONFIRMATION REQUIRED
# After pinning the explicit minor in docker-compose.yml:
docker compose pull postgres
docker compose up -d postgres # brief downtime: the server restarts on the new minor
docker exec gc-platform-postgres psql -U gcplatform -d gcplatform -c "SELECT version();"A minor bump is NOT a major upgrade — no pg_upgrade, no dump/restore.
A major upgrade (16 → 17/18) changes the on-disk catalog format; the new server will not start on the old data directory until it is upgraded. Two paths:
| Path | How | When |
|---|---|---|
(a) pg_upgrade --link | In-place, hard-links the old data files into the new cluster — fast, near-constant disk overhead | Both major versions' binaries available; data layout supports it (the PG18 /var/lib/postgresql volume is designed for this) |
(b) pg_dump / restore | Logical dump on the old, restore into the new | Cross-version safety net; slower; the fallback when pg_upgrade is blocked |
pg_upgrade mechanics: https://www.postgresql.org/docs/current/pgupgrade.html ⚠️. Image layout facts: docker-library README (verified).
pg_restore -l (see postgres-backup-restore §2/§5). No verified backup → no upgrade. This is the rollback of last resort.pg_upgrade --check dry run — runs every pre-flight check WITHOUT modifying anything; fix every error it reports before the real run. ⚠️\dx) must exist for the target major version. Alpine/musl caveat: on -alpine images, any extension not in postgres-contrib must be compiled into a custom image (musl libc, not glibc); confirm the target Alpine image actually ships each extension you use. (verified re: the contrib/compile-in caveat)idle in transaction sessions block the upgrade.image: tag and restart on the old data.pg_upgrade --linkThe PG18 image layout (PGDATA /var/lib/postgresql/<major>/docker, volume /var/lib/postgresql, verified §1) is what makes --link practical in Docker: the old and new data directories live side-by-side under the one mounted volume, and --link hard-links the relation files instead of copying them. On the current PG ≤ 17 layout (/var/lib/postgresql/data) you would first have to restructure the volume (§1 opt-in) before --link is ergonomic.
⚠️ HUMAN CONFIRMATION REQUIRED — every step below is human-executed; the agent only emits it.
# 0. Backup verified (§5a). Stop the app + the server; keep the old volume.
docker compose stop postgres
# 1. Dry run — must come back clean before anything else (run inside an image that has BOTH majors' binaries):
pg_upgrade --check \
--old-datadir=/var/lib/postgresql/16/docker \
--new-datadir=/var/lib/postgresql/18/docker \
--old-bindir=/usr/lib/postgresql/16/bin \
--new-bindir=/usr/lib/postgresql/18/bin \
--link
# 2. Real upgrade (only after --check is clean and connections are drained):
pg_upgrade \
--old-datadir=/var/lib/postgresql/16/docker \
--new-datadir=/var/lib/postgresql/18/docker \
--old-bindir=/usr/lib/postgresql/16/bin \
--new-bindir=/usr/lib/postgresql/18/bin \
--link
# 3. Post-upgrade: run the generated analyze script to refresh planner stats,
# then start the new server and verify:
# ./analyze_new_cluster.sh
docker compose up -d postgres
docker exec gc-platform-postgres psql -U gcplatform -d gcplatform -c "SELECT version();"⚠️ The exact --bindir/--datadir paths and the "image with both majors' binaries" depend on how you stage the upgrade (a throwaway upgrade container is the common pattern); the stock single-major image does not ship the other major's binaries. Verify the staging approach before running. The pg_upgrade flags above follow https://www.postgresql.org/docs/current/pgupgrade.html ⚠️.
pg_dump / restore fallbackUse when pg_upgrade is blocked (extension unavailable on the target, awkward layout, or you want the logical-snapshot safety net). Do not duplicate the recipes here — the dump, the globals dump, the fresh-database restore, and the restore-drill checklist all live in the postgres-backup-restore skill (§2 logical dumps, §4 restore, §5 drill). The major-upgrade-specific ordering is:
postgres-backup-restore §2), globals included.postgres-backup-restore §4); roles re-provision on backend boot via EF migrations + IdentitySchemaMigrator.SELECT version();, row counts within RPO).All dump/restore commands remain ⚠️ HUMAN CONFIRMATION REQUIRED and are emitted by postgres-backup-restore, never executed by this agent.
Severity (for audits): no documented major-upgrade runbook + a floating tag = MEDIUM; an upgrade attempted without a verified backup or a --check dry run = CRITICAL (data-loss exposure).
/docker-entrypoint-initdb.d)The single most common container-ops mistake: expecting /docker-entrypoint-initdb.d scripts to run on an existing instance. They run ONLY when the container starts with an empty data directory. Any pre-existing database is left untouched on startup — so init scripts are useless for tuning or migrating the live gc-platform-postgres instance. (verified) A related trap: if an init script fails and the orchestrator restarts the container against the now-initialised data dir, the scripts do NOT resume. (verified)
# Read-only: is anything even mounted into the init dir?
docker inspect --format '{{range .Mounts}}{{if eq .Destination "/docker-entrypoint-initdb.d"}}{{.Name}} -> {{.Destination}}{{end}}{{end}}' gc-platform-postgresWhere runtime configuration actually goes (existing instance):
command: ["postgres", "-c", "<flag>=<value>", ...] in compose (see postgres-performance-tuning for shared_buffers/max_wal_size/pg_stat_statements). Any option valid in postgresql.conf can be set via -c. (verified)postgresql.conf and point at it with -c config_file=...; the sample lives at /usr/local/share/postgresql/postgresql.conf.sample in the Alpine image. You must keep listen_addresses = '*' or other containers lose connectivity. (verified)POSTGRES_INITDB_ARGS (e.g. --data-checksums) and the other POSTGRES_* env vars are initdb-time only — they apply solely at first initialisation of an empty data dir, never to a running instance. (verified)Interpretation for audits: a request to "add an init script to enable X on the live DB" is a category error — route runtime tuning to command:/mounted conf (compose change → coder + human restart), and schema/extension changes to an EF Core migration (database-reviewer + coder). Init scripts are only for bootstrapping a brand-new instance.
Severity: LOW (documentation/guidance); the misapplied-init-script itself causes no harm (it simply never runs) but signals a misunderstood change path.
Remediation (runtime tuning via compose → coder + human restart):
⚠️ HUMAN CONFIRMATION REQUIRED
# docker-compose.yml, postgres service — runtime flags, NOT an init script:
command: ["postgres", "-c", "listen_addresses=*", "-c", "<flag>=<value>"]Run 1 → 6 in order. §1 (volume) and §5 (upgrade) are the data-safety core: never recommend an upgrade (§5) without first confirming §1 (data persisted on the named volume) and a verified backup (postgres-backup-restore). §2/§3/§6 are hygiene; §4 is policy. Cross-links: §2/§3/§6 remediations are compose changes → coder; §5 dump/restore recipes live in postgres-backup-restore; runtime server flags live in postgres-performance-tuning.
© fmflurry, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in skills/postgres-container-ops of fmflurry/settings-opencode.
Open the folder on GitHubat commit f0dcb5a
Postgres Container Ops 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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Postgres Container Ops this skillfmflurry/settings-opencode | 171 | — | ~4.4k | Automated safety check: Pass | MIT | |
| Cb Build TestBlkLeg/CircuitBreaker | 201 | — | ~1.9k | Automated safety check: Pass | MIT | |
| Monstermq Broker Configvogler75/monster-mq | 142 | — | ~2.2k | Automated safety check: Pass | GPL-3.0 | |
| Docker Deploymentfossasia/eventyay | 1.7k | — | ~574 | Automated safety check: Notes | Apache-2.0 | |
| Code PatternsAedelon/claude-code-blueprint | 120 | — | ~1.2k | Automated safety check: Pass | Custom licence | |
| Mg Local DB Restoremodelguide/modelguide | 108 | — | ~645 | Automated safety check: Pass | MIT |
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…
vogler75/monster-mq
Guide for configuring, deploying, and operating the MonsterMQ broker.
fossasia/eventyay
Docker Compose, container services, deployment. An agent skill from fossasia/eventyay.
Aedelon/claude-code-blueprint
Reference patterns for REST APIs, pytest/vitest testing, Docker multi-stage builds, GitHub Actions CI/CD, PostgreSQL, TypeScript generics, Python async, and React Server Components.
modelguide/modelguide
Trigger phrases - "reset local db", "recreate local postgres", "restore dump to local", "reset local database", "load backup locally"
FreakStudioCN/mpy-hardware-extension
用本地前端插件连云端后端做端到端测试 / test the local VS Code extension against the deployed cloud backend.
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).
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.
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.
fmflurry/settings-opencode
Audit and fix common accessibility issues in Angular templates and Angular Material components.
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…
fmflurry/settings-opencode
Pre-merge code review for Angular + TypeScript pull requests.
Works with
Categories
PostgreSQL container operations for the docker instance: volume persistence audit (PGDATA layout and the PG18 version-specific data-directory change), /dev/shm sizing (shmsize), pgisready…. Postgres Container Ops is an agent skill from fmflurry/settings-opencode.d init-scripts caveat.
Postgres Container Ops fits situations like: asked about container upgrade; postgres version bump; volume persistence; healthcheck tuning.
Run `npx skills add fmflurry/settings-opencode --skill postgres-container-ops -a claude-code`. Or copy the skill folder (skills/postgres-container-ops in fmflurry/settings-opencode) into .claude/skills/postgres-container-ops in your project. Claude Code loads it when a task matches its description.
Run `npx skills add fmflurry/settings-opencode --skill postgres-container-ops -a codex`. Or copy the skill folder (skills/postgres-container-ops in fmflurry/settings-opencode) into .agents/skills/postgres-container-ops in your project. Codex loads it when a task matches its description.
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-container-ops -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-container-ops, .gemini/skills/postgres-container-ops, .github/skills/postgres-container-ops and .opencode/skills/postgres-container-ops in your project.
Going by SKILL.md and its folder, Postgres Container Ops needs the command-line tools its instructions call (docker). Our summary lists: Docker.
SKILL.md names 2 domains. As links in the text: postgresql.org and github.com. This is read from the text; nothing was executed.
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.
Postgres Container Ops is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 4.4k tokens (SKILL.md is roughly 18k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Postgres Container Ops: Cb Build Test (BlkLeg/CircuitBreaker, 201 stars), Monstermq Broker Config (vogler75/monster-mq, 142 stars), Docker Deployment (fossasia/eventyay, 1.7k stars) and Code Patterns (Aedelon/claude-code-blueprint, 120 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
fmflurry (a GitHub user) maintains it in fmflurry/settings-opencode, which has 171 GitHub stars. The repository holds 37 skills in this directory. The repository was last updated on October 5, 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.