# New Column

> conventions for new columns

- Skill: `majiayu000/new-column` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds add majiayu000/new-column`
- Raw SKILL.md: https://api.skillmd.com/api/skills/majiayu000/new-column/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: majiayu000 (https://skillmd.com/u/majiayu000)
- Updated: 2026-09-09
- Page: https://skillmd.com/skills/majiayu000/new-column

---



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
