Files
uroma 5889d3428b Add comprehensive skills, agents, commands collection
- Added 44 external skills from obra/superpowers, ui-ux-pro-max-skill, claude-codex-settings
- Added 8 autonomous agents (commit-creator, pr-creator, pr-reviewer, etc.)
- Added 23 slash commands for Git/GitHub, setup, and plugin development
- Added hooks for code formatting, notifications, and validation
- Added MCP configurations for Azure, GCloud, Supabase, MongoDB, etc.
- Added awesome-openclaw-skills registry (3,002 skills referenced)
- Updated comprehensive README with full documentation

Sources:
- github.com/obra/superpowers (14 skills)
- github.com/nextlevelbuilder/ui-ux-pro-max-skill (1 skill)
- github.com/fcakyon/claude-codex-settings (29 skills, 8 agents, 23 commands)
- github.com/VoltAgent/awesome-openclaw-skills (registry)
- skills.sh (reference)
- buildwithclaude.com (reference)
2026-02-13 10:30:11 +00:00

1.8 KiB

Table Relationships

Foreign Key Setup

-- One-to-many: user has many posts
create table posts (
  id serial primary key,
  user_id uuid references auth.users on delete cascade,
  title text,
  content text
);

-- Many-to-many: posts have many tags
create table tags (
  id serial primary key,
  name text unique
);

create table post_tags (
  post_id int references posts on delete cascade,
  tag_id int references tags on delete cascade,
  primary key (post_id, tag_id)
);

Querying Relationships (JavaScript)

Supabase auto-detects relationships from foreign keys:

// One-to-many: get posts with author
const { data: posts } = await supabase.from("posts").select(`
    id, title, content,
    author:users!user_id(id, email, full_name)
  `);

// Nested relations: posts with author and comments
const { data: posts } = await supabase.from("posts").select(`
    id, title,
    author:users!user_id(id, email),
    comments(id, content, user:users(email))
  `);

// Many-to-many: posts with tags
const { data: posts } = await supabase.from("posts").select(`
    id, title,
    tags:post_tags(tag:tags(name))
  `);

// Specify foreign key with !hint when ambiguous
const { data } = await supabase.from("messages").select(`
    sender:users!sender_id(name),
    receiver:users!receiver_id(name)
  `);

Querying Relationships (Python)

# One-to-many with nested select
response = supabase.table("posts").select("id, title, author:users!user_id(id, email)").execute()

# Multiple nested relations
response = supabase.table("posts").select("id, title, comments(id, content, user:users(email))").execute()

# Many-to-many through junction table
response = supabase.table("posts").select("id, title, tags:post_tags(tag:tags(name))").execute()