agents-standards
Standards for authoring SDD plugin agents — frontmatter, self-containment, skill references, and no-user-interaction rules.
PostgreSQL database agent: deploy locally (Docker/K8s), manage schemas, run queries, analyze performance, configure permissions, and seed data.
Claude Code
$ npx -y skills add LiorCohen/sdd --skill postgresql --agent claude-code
Codex
$ npx skills add LiorCohen/sdd --skill postgresql -a codex -y
Cursor
$ npx skills add LiorCohen/sdd --skill postgresql -a cursor -y
Gemini CLI
$ npx skills add LiorCohen/sdd --skill postgresql -a gemini-cli -y
GitHub Copilot
$ npx skills add LiorCohen/sdd --skill postgresql -a github-copilot -y
OpenCode
$ npx skills add LiorCohen/sdd --skill postgresql -a opencode -y
Windsurf
$ npx skills add LiorCohen/sdd --skill postgresql -a windsurf -y
name: postgresql description: "PostgreSQL database agent: deploy locally (Docker/K8s), manage schemas, run queries, analyze performance, configure permissions, and seed data." user-invocable: false
SQL-native PostgreSQL operations via `psql`. No Python dependencies required.
---
| Feature | Minimum Version | |---------|-----------------| | Core functionality | PostgreSQL 12+ | | `pg_blocking_pids()` | 9.6+ | | `REINDEX CONCURRENTLY` | 12+ | | `pg_stat_progress_*` views | 12+ | | `VACUUM PARALLEL` | 13+ | | `pg_stat_wal` | 14+ | | `pg_stat_checkpointer` | 17+ |
**Recommended**: PostgreSQL 14+
---
export PGHOST=localhost export PGPORT=5432 export PGUSER=app export PGPASSWORD=secret export PGDATABASE=myapp
# Using environment variables psql # Using connection string psql "postgresql://app:secret@localhost:5432/myapp" # Docker docker exec -it postgres psql -U app -d myapp # Kubernetes kubectl exec -it postgres -- psql -U postgres
---
INSERT INTO app.users (email, name) VALUES
('alice@example.com', 'Alice'),
('bob@example.com', 'Bob')
RETURNING id, email;INSERT INTO app.users (email, name)
VALUES ('alice@example.com', 'Alice Updated')
ON CONFLICT (email) DO UPDATE SET
name = EXCLUDED.name,
updated_at = NOW();INSERT INTO app.users (email, name)
SELECT
'user' || n || '@example.com',
'User ' || n
FROM generate_series(1, 1000) AS n;\copy app.users (email, name) FROM 'users.csv' WITH (FORMAT csv, HEADER true);
---
**CRITICAL**: Always use parameterized queries to prevent SQL injection.
-- In psql with variables
\set user_id 123
SELECT * FROM app.users WHERE id = :user_id;
-- Prepared statements
PREPARE get_user(bigint) AS
SELECT * FROM app.users WHERE id = $1;
EXECUTE get_user(123);BEGIN;
UPDATE app.accounts SET balance = balance - 100 WHERE id = 1;
UPDATE app.accounts SET balance = balance + 100 WHERE id = 2;
COMMIT;
-- With savepoint
BEGIN;
INSERT INTO app.orders (user_id, total) VALUES (1, 99.99);
SAVEPOINT before_items;
INSERT INTO app.order_items (order_id, product_id) VALUES (1, 999);
-- Oops, rollback just the items
ROLLBACK TO before_items;
COMMIT;---
**CRITICAL**: Follow these rules to prevent data loss and security issues.
1. **Always use parameterized queries** - Never concatenate user input into SQL strings 2. **Wrap modifications in transactions** - Use BEGIN/COMMIT for multi-statement changes 3. **Always include WHERE clause** - Never run UPDATE/DELETE without WHERE 4. **Test on non-production first** - Validate queries on dev/staging before production 5. **Use CONCURRENTLY for indexes** - Avoid locking tables during index operations 6. **Backup before migrations** - Always have a restore point before schema changes 7. **Limit query results** - Use LIMIT during exploration to avoid memory issues
---
| Command | Description | |---------|-------------| | `\l` | List databases | | `\c dbname` | Connect to database | | `\dt` | List tables | | `\dt schema.*` | List tables in schema | | `\d tablename` | Describe table | | `\di` | List indexes | | `\df` | List functions | | `\du` | List roles/users | | `\dn` | List schemas | | `\x` | Toggle expanded display | | `\timing` | Toggle query timing | | `\i file.sql` | Execute SQL file | | `\copy` | Import/export CSV | | `\q` | Quit |
---
For detailed guidance, read these on-demand:
---
This skill defines no input parameters or structured output.
Structure for AI-assisted development AI coding assistants are powerful but chaotic. You prompt, you get code, but then what?
Standards for authoring SDD plugin agents — frontmatter, self-containment, skill references, and no-user-interaction rules.
Standards for authoring SDD plugin commands — frontmatter, user interaction, skill/agent invocation, CLI integration, and output…
Create a commit following repository guidelines with proper versioning and changelog updates.
Two-step self-review at every task lifecycle phase. Step 1 (this skill) runs in-context to gather session signals — files read vs…
D2 diagramming language reference for architecture diagrams, sequence diagrams, grid layouts, SQL tables, and class diagrams.…
Writes and maintains user-facing documentation for the SDD plugin. Proactively detects when docs are out of sync with plugin…
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…
Ask which skill or flow fits your situation. A router over the skills in this repo.