Table agent_skills {
  id bigserial [pk]
  guid uuid [unique, not null, default: `gen_random_uuid()`]
  name text [unique, not null]
  description text [not null, default: '']
  content text [not null]
  tags "text[]" [not null, default: `'{}'`]
  created_at timestamptz [not null, default: `now()`]
  updated_at timestamptz [not null, default: `now()`]
}

Table agent_guardrails {
  id bigserial [pk]
  guid uuid [unique, not null, default: `gen_random_uuid()`]
  name text [unique, not null]
  description text [not null, default: '']
  content text [not null]
  severity text [not null, default: 'medium']
  tags "text[]" [not null, default: `'{}'`]
  created_at timestamptz [not null, default: `now()`]
  updated_at timestamptz [not null, default: `now()`]
}

Table project_skills {
  id bigserial [pk]
  project_id bigint [not null, ref: > projects.id]
  skill_id bigint [not null, ref: > agent_skills.id]
  created_at timestamptz [not null, default: `now()`]

  indexes {
    (project_id, skill_id) [pk]
    project_id
  }
}

Table project_guardrails {
  id bigserial [pk]
  project_id bigint [not null, ref: > projects.id]
  guardrail_id bigint [not null, ref: > agent_guardrails.id]
  created_at timestamptz [not null, default: `now()`]

  indexes {
    (project_id, guardrail_id) [pk]
    project_id
  }
}

// Cross-file refs (for relspecgo merge)
Ref: project_skills.project_id > projects.id [delete: cascade]
Ref: project_skills.skill_id > agent_skills.id [delete: cascade]
Ref: project_guardrails.project_id > projects.id [delete: cascade]
Ref: project_guardrails.guardrail_id > agent_guardrails.id [delete: cascade]
