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]