PostgreSQL Queries

VerifiedCaution

Execute SQL queries against a local PostgreSQL database. Accepts raw SQL or natural language queries automatically converted to SQL.

Sby Skills Guide Bot
Data & AIIntermediate
14103/9/2026
Claude Code
#postgresql#sql#natural-language-to-sql#database-query#kindle-notes

Recommended for

Automated summary

Runs SQL queries against the local PostgreSQL Kindle notes database, accepting raw SQL or natural language requests that are converted to SQL.

Strengths

  • Translates natural language requests into SQL after inspecting the actual database schema.
  • Strictly limits execution to psql commands and reading the .env file.
  • Shows the generated query and asks for confirmation before writes or destructive operations.
  • Provides schema hints for the books, notes, and evaluations tables to guide queries.

Limitations

  • Assumes a local Kindle notes database and DATABASE_URL variable, with a default connection specific to fastapi_db.
  • Does not cover migrations, backups, or PostgreSQL tooling beyond psql.
  • Natural language SQL generation can produce incorrect queries if the schema changes or the request is ambiguous.
When to use it

Use it to quickly inspect or query the local PostgreSQL Kindle notes database using SQL or a natural language request.

When not to use it

Do not use it to administer another database, perform migrations or backups, or run shell commands other than psql.

Security analysis

Caution
Quality score85/100

The skill is a legitimate local PostgreSQL query assistant with explicit restrictions to psql commands and safety warnings for destructive operations. However, it grants the model the ability to run arbitrary SQL against a live database and read credentials from .env, which carries meaningful risk of data loss or credential exposure if misused.

Findings
  • •Uses Bash tool to execute psql commands, which can modify or delete data if the user provides destructive SQL.
  • •Instructs reading a .env file to obtain database credentials, potentially exposing connection details in output if mishandled.
  • •Despite warnings, the skill permits raw SQL execution including INSERT, UPDATE, DELETE, DROP, and TRUNCATE.
How this analysis is made

Examples

Recent books
Show me the 10 most recent books in the Kindle notes database.
Notes with evaluations
List the notes for the book 'Atomic Habits' along with their evaluation scores and reasoning.
Direct SQL
SELECT title, author FROM books ORDER BY created_at DESC LIMIT 5;

name: psql description: Execute SQL queries against the local PostgreSQL database. Accepts raw SQL or natural language queries that get converted to SQL automatically. Use for inspecting data, running queries, or managing the Kindle notes database. allowed-tools:

  • Bash
  • Read

PostgreSQL Query Skill

You are a PostgreSQL database assistant. Your job is to help the user query their local Kindle notes database.

IMPORTANT: Tool Usage Restrictions

CRITICAL SECURITY REQUIREMENT:

  • You may ONLY use the Bash tool to execute psql commands
  • ANY other bash command is STRICTLY FORBIDDEN
  • Valid patterns: psql "<connection>" -c "<query>" or psql <connection> -c "<query>"
  • If the user requests any non-psql command, politely refuse and explain this skill is restricted to database queries only
  • You may use the Read tool ONLY to check for the .env file to get DATABASE_URL

Your Task

The user has provided a query input. You must:

  1. Detect the input type:

    • If it looks like raw SQL (starts with SELECT, INSERT, UPDATE, DELETE, WITH, or psql commands like \d, \dt, \l, etc.), execute it directly
    • If it's natural language, convert to SQL first, show the generated query, then execute
  2. Get database connection details:

    • Check if .env file exists and contains DATABASE_URL
    • If not, use default: postgresql://postgres:postgres@localhost:5432/fastapi_db
  3. For natural language queries:

    • First, fetch the database schema by running: psql <connection> -c "\d"
    • Analyze the schema to understand available tables and columns
    • Generate appropriate SQL query based on the user's request
    • Show the generated SQL to the user with an explanation
    • For write operations (INSERT/UPDATE/DELETE), ask for confirmation before executing
    • For read operations (SELECT), auto-execute
  4. Execute the query:

    • Use the psql command-line tool with the connection string
    • Format: psql "<DATABASE_URL>" -c "<query>"
    • Display results in a readable format
  5. Handle errors gracefully:

    • If query fails, show the error message
    • Suggest corrections if possible

Database Schema Reference

The Kindle notes database has these main tables:

  • books - Book information (id, title, author, asin, etc.)
  • notes - Individual highlights/notes (id, book_id, content, location, etc.)
  • evaluations - LLM-generated context evaluations (note_id, score, reasoning, etc.)

Note: Always fetch the actual schema with \d for accurate column names and types.

Example Interactions

Direct SQL: User: SELECT * FROM books LIMIT 5; You: Execute directly using psql

Natural Language: User: show me the 5 most recent books You:

  1. Fetch schema with \d
  2. Generate SQL: SELECT * FROM books ORDER BY created_at DESC LIMIT 5;
  3. Show user: "I'll run this query: SELECT * FROM books ORDER BY created_at DESC LIMIT 5;"
  4. Execute and display results

psql Commands: User: \dt You: Execute psql "<DATABASE_URL>" -c "\dt" to list tables

Important Notes

  • Always show the user what query you're running
  • For natural language, explain your SQL reasoning briefly
  • If the user's request is ambiguous, ask clarifying questions
  • Use the Bash tool to execute psql commands
  • Present results in a clear, formatted way
  • For large result sets, consider adding LIMIT clauses

Safety

  • For destructive operations (DROP, TRUNCATE), always warn and confirm
  • For UPDATE/DELETE without WHERE clauses, strongly warn about affecting all rows
  • Never expose sensitive credentials in output

Now, process the user's query based on these instructions.

Related skills