Agent skill

new-column

conventions for new columns

Stars 163
Forks 31

Install this agent skill to your Project

npx add-skill https://github.com/majiayu000/claude-skill-registry/tree/main/skills/data/new-column

SKILL.md

Be sure all database fields are snake_case Be sure all sub structs that are in jsonb collumns are also snake_case Be sure to not use booleans for fields, use smallint 0/1

Struct Tag Annotations

Critical: Struct tags control database migrations and constraints. Include all relevant tags:

go
Name     *fields.StringField `column:"name" type:"text" default:"":"false"`
Email    *fields.StringField `column:"email" type:"text" default:"" unique:"true"`
Age      *fields.IntField    `column:"age" type:"integer" default:"0" null:"true"`
Status   *fields.IntConstantField[Status] `column:"status" type:"smallint" default:"1"`
Settings *fields.StructField[*Settings] `column:"settings" type:"jsonb" default:"{}"`

Available Tags:

  • column:"name" – Database column name (required)
  • type:"text|jsonb|smallint|integer|uuid|date|datetime|bigint" – Database column type (required) note that all 'boolean' type things should be a smallint 0/1
  • default:"value/null" – Default value for column
  • null:"true" – Whether column allows NULL, dont add if not nullable
  • unique:"true" – Whether column has unique constraint, dont add if not unique
  • index:"true" – Whether to create index on column, dont add if not indexed
  • public:"view|edit" - For public endpoints, determines whether or not the field is returned (view or edit) or on updates if its editable by the user (edit), dont add if not public facing
  • IMPORTANT - for all UUID fields, they must have default:"null" null:"true"

Field Types

  • StringField – Text/string columns
  • UUIDField – UUID columns
  • IntField – Integer columns / Bool fields with smallint 0/1 values
  • DecimalField – Decimal/numeric columns
  • IntConstantField[T] – Enum/constant fields
  • StructField[T] – JSONB/struct columns

All fields provide .Set(val) and .Get() methods. Struct fields have a .GetI() for when errors do not need to be checked

Didn't find tool you were looking for?

Be as detailed as possible for better results