SKILL.md
SQL Params Query Author
Use this skill when the user asks to:
- create SQL queries with parameters
- refactor raw SQL + manual args into go-sqlparams
- build dynamic filters (optional clauses) safely
- implement pagination, sorting, and query composition
Mandatory references (read in order)
references/nonnegotiables.mdreferences/doterr.mdreferences/clearpath.md(production code only)references/sqlparams-package-notes.md(go-sqlparams catalog notes)
Hard constraints
- Never build SQL by concatenating untrusted values.
- Use parameter binding patterns from go-sqlparams; do not invent your own.
- Preserve behavior when refactoring unless the user explicitly asks to change semantics.
- Return errors via doterr.
Composition approach (default)
- Keep SQL text readable (multi-line raw string literals).
- Use go-sqlparams to manage:
- named parameters / argument lists - optional predicates - IN lists / repeated parameters (as supported by the package)
- Build query pieces (SELECT, FROM, WHERE, ORDER, LIMIT/OFFSET) in a small number of clear steps.
Deliverables
When asked to implement a query:
- Provide the query builder function(s)
- Show the execution call site (db.Query / db.QueryContext etc. as appropriate)
- Include row scanning code (or mapping helpers) if relevant
- Include a short note on indexes/constraints if the query implies them (optional)
Self-check
- No compound init-if.
- No ignored errors.
- No string concatenation for untrusted SQL values.
- Uses go-sqlparams for parameter management and doterr for errors.