[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6CQKGS9NGA49JNGFQXPQCMG":3,"skill-same:01M6CQKGS9NGA49JNGFQXPQCMG":84},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":26,"publishedAt":43,"linkOnly":44,"markdownContent":45,"markdownBody":46,"frontMatter":47,"refName":55,"commitSha":56,"skillDirectory":57,"forksCount":14,"repositoryHtmlUrl":58,"repositoryHomepageUrl":59,"ownerHtmlUrl":60,"ownerBlogUrl":61,"ownerDescription":62,"updatedAt":63,"install":64,"resources":77},"01M6CQKGS9NGA49JNGFQXPQCMG","database",null,"PostgreSQL, Supabase, Firebase, schema design, migrations, RLS.","Trollz1004\u002FANTIGRAVITY","Trollz1004","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F132442315?v=4","01M6CQ4Z97ERZA2CXR388F6NZ1","Joshua Coleman","01M6CQ4ZCYE67QPNWBBV8H9DBE",0,"MIT","https:\u002F\u002Fgithub.com\u002FTrollz1004\u002FANTIGRAVITY\u002Fblob\u002Fmain\u002Fhermes\u002Ffrontend-react\u002Fdatabase\u002FSKILL.md",[18,23],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000010","后端与接口","SCENARIO","使用场景",{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000015","视觉设计",[5,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42],"nextjs","rls","postgres","migrations","schema design","schema","hermes agent","hermes","firebase","testing","supabase","postgresql","windows","linux","macos","design","2026-11-10 10:12:30",false,"---\nname: database\ndescription: \"PostgreSQL, Supabase, Firebase, schema design, migrations, RLS.\"\nversion: 1.0.0\nauthor: Joshua (joshlcoleman), Hermes Agent\nlicense: MIT\nplatforms: [linux, macos, windows]\nmetadata:\n  hermes:\n    tags: [database, postgres, supabase, firebase, schema, rls]\n    related_skills: [nextjs, testing]\n---\n\n# Database\n\n## When to Use\n\n- Schema design and migrations\n- Writing queries or RLS policies\n- Setting up Supabase\u002FFirebase\n- Performance optimization\n\n## Quick Reference\n\n| Task | Tool |\n|------|------|\n| Migrations | Prisma \u002F Drizzle \u002F Supabase CLI |\n| ORM | Prisma (type-safe) \u002F Drizzle (SQL-like) |\n| Real-time | Supabase Realtime \u002F Firebase RTDB |\n| Storage | Supabase Storage \u002F Firebase Storage |\n| Auth | Supabase Auth \u002F Firebase Auth |\n\n## Schema Design\n\n### Prisma Example\n\n```prisma\nmodel User {\n  id        String   @id @default(cuid())\n  email     String   @unique\n  name      String?\n  posts     Post[]\n  createdAt DateTime @default(now())\n  updatedAt DateTime @updatedAt\n}\n\nmodel Post {\n  id       String @id @default(cuid())\n  title    String\n  body     String\n  author   User   @relation(fields: [authorId], references: [id])\n  authorId String\n  published Boolean @default(false)\n  tags     Tag[]  @relation(\"PostTags\")\n}\n\nmodel Tag {\n  id    String @id @default(cuid())\n  name  String @unique\n  posts Post[] @relation(\"PostTags\")\n}\n```\n\n### Indexing Strategy\n\n```sql\n-- Always index foreign keys\nCREATE INDEX idx_post_author ON \"Post\"(\"authorId\");\n\n-- Index for common filters\nCREATE INDEX idx_post_published ON \"Post\"(\"published\") WHERE published = true;\n\n-- GIN index for JSONB \u002F full-text\nCREATE INDEX idx_post_search ON \"Post\" USING GIN(to_tsvector('english', title || ' ' || body));\n```\n\n## Row Level Security (Supabase)\n\n```sql\n-- Enable RLS\nALTER TABLE posts ENABLE ROW LEVEL SECURITY;\n\n-- Users can read their own posts\nCREATE POLICY \"Users can read own posts\"\n  ON posts FOR SELECT\n  USING (auth.uid() = author_id);\n\n-- Users can update own posts\nCREATE POLICY \"Users can update own posts\"\n  ON posts FOR UPDATE\n  USING (auth.uid() = author_id)\n  WITH CHECK (auth.uid() = author_id);\n\n-- Public can read published posts\nCREATE POLICY \"Public can read published\"\n  ON posts FOR SELECT\n  USING (published = true);\n```\n\n## Pitfalls\n\n- **N+1 queries** → Use `include`\u002F`select` in Prisma or JOINs\n- **Missing indexes** → Index foreign keys, filter columns, sort columns\n- **No soft delete** → Add `deletedAt` timestamp\n- **Over-normalizing** → Sometimes JSONB is better than 6th normal form\n- **Forgetting RLS** → Always enable, test with anon key\n\n## Verification\n\n- [ ] Schema migrated successfully\n- [ ] Indexes created for common queries\n- [ ] RLS policies tested (owner, admin, public)\n- [ ] No N+1 in API routes\n- [ ] Backups configured (automated)\n","# Database\n\n## When to Use\n\n- Schema design and migrations\n- Writing queries or RLS policies\n- Setting up Supabase\u002FFirebase\n- Performance optimization\n\n## Quick Reference\n\n| Task | Tool |\n|------|------|\n| Migrations | Prisma \u002F Drizzle \u002F Supabase CLI |\n| ORM | Prisma (type-safe) \u002F Drizzle (SQL-like) |\n| Real-time | Supabase Realtime \u002F Firebase RTDB |\n| Storage | Supabase Storage \u002F Firebase Storage |\n| Auth | Supabase Auth \u002F Firebase Auth |\n\n## Schema Design\n\n### Prisma Example\n\n```prisma\nmodel User {\n  id        String   @id @default(cuid())\n  email     String   @unique\n  name      String?\n  posts     Post[]\n  createdAt DateTime @default(now())\n  updatedAt DateTime @updatedAt\n}\n\nmodel Post {\n  id       String @id @default(cuid())\n  title    String\n  body     String\n  author   User   @relation(fields: [authorId], references: [id])\n  authorId String\n  published Boolean @default(false)\n  tags     Tag[]  @relation(\"PostTags\")\n}\n\nmodel Tag {\n  id    String @id @default(cuid())\n  name  String @unique\n  posts Post[] @relation(\"PostTags\")\n}\n```\n\n### Indexing Strategy\n\n```sql\n-- Always index foreign keys\nCREATE INDEX idx_post_author ON \"Post\"(\"authorId\");\n\n-- Index for common filters\nCREATE INDEX idx_post_published ON \"Post\"(\"published\") WHERE published = true;\n\n-- GIN index for JSONB \u002F full-text\nCREATE INDEX idx_post_search ON \"Post\" USING GIN(to_tsvector('english', title || ' ' || body));\n```\n\n## Row Level Security (Supabase)\n\n```sql\n-- Enable RLS\nALTER TABLE posts ENABLE ROW LEVEL SECURITY;\n\n-- Users can read their own posts\nCREATE POLICY \"Users can read own posts\"\n  ON posts FOR SELECT\n  USING (auth.uid() = author_id);\n\n-- Users can update own posts\nCREATE POLICY \"Users can update own posts\"\n  ON posts FOR UPDATE\n  USING (auth.uid() = author_id)\n  WITH CHECK (auth.uid() = author_id);\n\n-- Public can read published posts\nCREATE POLICY \"Public can read published\"\n  ON posts FOR SELECT\n  USING (published = true);\n```\n\n## Pitfalls\n\n- **N+1 queries** → Use `include`\u002F`select` in Prisma or JOINs\n- **Missing indexes** → Index foreign keys, filter columns, sort columns\n- **No soft delete** → Add `deletedAt` timestamp\n- **Over-normalizing** → Sometimes JSONB is better than 6th normal form\n- **Forgetting RLS** → Always enable, test with anon key\n\n## Verification\n\n- [ ] Schema migrated successfully\n- [ ] Indexes created for common queries\n- [ ] RLS policies tested (owner, admin, public)\n- [ ] No N+1 in API routes\n- [ ] Backups configured (automated)\n",{"name":5,"author":48,"license":15,"version":49,"metadata":50,"platforms":54,"description":7},"Joshua (joshlcoleman), Hermes Agent","1.0.0",{"hermes":51},{"tags":52,"related_skills":53},[5,29,37,35,32,28],[27,36],[40,41,39],"main","6deb42cc8c67a99d7613cb5802f8bbe01a0f3d12","hermes\u002Ffrontend-react\u002Fdatabase","https:\u002F\u002Fgithub.com\u002FTrollz1004\u002FANTIGRAVITY","https:\u002F\u002Fwww.ai-solutions.store","https:\u002F\u002Fgithub.com\u002FTrollz1004","https:\u002F\u002Fyouandinotai.com","Founder building YouAndINotAI, OnlineRecycle, and AIDoesItAll through Trash Or Treasure Online Recycler LLC.","2026-11-11 18:41:12",{"source":8,"skillName":5,"commands":65,"prompt":75,"zipAvailable":76},[66,69,72],{"tool":67,"command":68},"npx","npx skills add Trollz1004\u002FANTIGRAVITY --skill database",{"tool":70,"command":71},"bunx","bunx skills add Trollz1004\u002FANTIGRAVITY --skill database",{"tool":73,"command":74},"pnpm","pnpm dlx skills add Trollz1004\u002FANTIGRAVITY --skill database","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FTrollz1004\u002FANTIGRAVITY\u002Fblob\u002Fmain\u002Fhermes\u002Ffrontend-react\u002Fdatabase\u002FSKILL.md",true,[78],{"path":79,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":82,"sourceHtmlUrl":83},"references\u002Fscar-template.md","REFERENCE","参考文档",24481,"https:\u002F\u002Fgithub.com\u002Fhashgraph-online\u002Fawesome-codex-plugins\u002Fblob\u002Fmain\u002Fplugins\u002FRBraga01\u002FQuality-Engineering-Skills\u002Fskills\u002Fsupplier-quality\u002Fsupplier-scar\u002Freferences\u002Fscar-template.md",[85,113,148,174,200,226],{"skillNo":86,"name":87,"nameZh":6,"description":88,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":89,"sourceHtmlUrl":90,"categories":91,"keywords":92,"publishedAt":43},"01M6M5BT49KEBHJM9D0P5NM8ED","security-audit","Security guidance and vulnerability review for codebases, APIs, services, CLI tools, libraries, and daemons. Use for security questions, focused reviews, vulnerability research, security audits, or pen tests. Run the complete workflow only for explicit codebase audit or pen-test requests, full\u002Fcomprehensive\u002Fend-to-end reviews, or requested report artifacts.","https:\u002F\u002Fgithub.com\u002FTrollz1004\u002FANTIGRAVITY\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fsecurity-audit\u002FLICENSE","https:\u002F\u002Fgithub.com\u002FTrollz1004\u002FANTIGRAVITY\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fsecurity-audit\u002FSKILL.md",[],[93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112],"security audit","audit","security","reviews","end","only","workflow","vulnerability","review","libraries","cli","run","Tools","full","for","complete","security guidance","codebase audit","tests","use",{"skillNo":114,"name":115,"nameZh":6,"description":116,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":117,"licenseFileUrl":118,"sourceHtmlUrl":119,"categories":120,"keywords":130,"publishedAt":43},"01M6M5B16Q534MKFHKBHRZ2773","impeccable","Use when the user wants to design, redesign, shape, critique, audit, polish, simplify, harden, animate, or otherwise improve a frontend interface: websites, landing pages, dashboards, product UI, components, forms, settings, onboarding, empty states, and native iOS or Android screens. Handles UX review, hierarchy, layout, typography, color, motion, UX copy, accessibility, responsive behavior, edge cases, and capturing or documenting design systems (DESIGN.md, tokens). Also for making bland UI bolder, loud UI quieter, or ambitious visual effects. Not for backend-only or non-UI tasks.","Apache-2.0","https:\u002F\u002Fgithub.com\u002FTrollz1004\u002FANTIGRAVITY\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fimpeccable\u002FLICENSE","https:\u002F\u002Fgithub.com\u002FTrollz1004\u002FANTIGRAVITY\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fimpeccable\u002FSKILL.md",[121,124,125],{"categoryNo":122,"categoryName":123,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000009","前端开发",{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":126,"categoryName":127,"taxonomyType":128,"taxonomyTypeDesc":129},"01JBSEEDCAT000000000000032","设计师","PROFESSION","适用职业",[115,131,132,133,134,135,42,136,98,137,138,139,140,141,101,142,143,144,145,146,147],"ux copy","states","quieter","frontend","improve","interface","design systems","effects","simplify","tasks","components","hierarchy","critique","native","product","layout","when",{"skillNo":149,"name":150,"nameZh":6,"description":151,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":152,"sourceHtmlUrl":153,"categories":154,"keywords":159,"publishedAt":43},"01M6M5AHHV2NPZYVMW48HP7A6H","hallmark","Design skill for websites and new pages that look designed, not generated. Use when the user asks to build or design something new, or names Hallmark. Never use it on an existing design unless the user names Hallmark, as in `\u002Fhallmark redesign \u003Cpath>`.","https:\u002F\u002Fgithub.com\u002FTrollz1004\u002FANTIGRAVITY\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fhallmark\u002FLICENSE","https:\u002F\u002Fgithub.com\u002FTrollz1004\u002FANTIGRAVITY\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fhallmark\u002FSKILL.md",[155,156],{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":157,"categoryName":158,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发",[150,160,161,107,162,163,42,164,112,165,166,167,94,168,169,170,171,172,173,147],"as","never","true","pages","generated","Existing","prompt","build","redesign","look","it","user","path","new",{"skillNo":175,"name":176,"nameZh":6,"description":177,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":117,"licenseFileUrl":178,"sourceHtmlUrl":179,"categories":180,"keywords":185,"publishedAt":43},"01M6CQDXJ785JCD5PMKYD239ZZ","webapp-testing","Toolkit for interacting with and testing local web applications using Playwright. Supports verifying frontend functionality, debugging UI behavior, capturing browser screenshots, and viewing browser logs.","https:\u002F\u002Fgithub.com\u002FTrollz1004\u002FANTIGRAVITY\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fwebapp-testing\u002FLICENSE.txt","https:\u002F\u002Fgithub.com\u002FTrollz1004\u002FANTIGRAVITY\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fwebapp-testing\u002FSKILL.md",[181,184],{"categoryNo":182,"categoryName":183,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000008","测试与质量",{"categoryNo":122,"categoryName":123,"taxonomyType":21,"taxonomyTypeDesc":22},[186,36,187,188,134,189,190,191,192,193,194,195,196,197,107,198,199],"webapp","webapp testing","applications","debugging","toolkit","logs","browser","playwright","web","behavior","ui","screenshots","local","with",{"skillNo":201,"name":202,"nameZh":6,"description":203,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":204,"sourceHtmlUrl":205,"categories":206,"keywords":207,"publishedAt":43},"01M6CQ5HBDE9Q5WJZXQ7G72MYD","appinsights-instrumentation","Guidance for instrumenting webapps with Azure Application Insights. Provides telemetry patterns, SDK setup, and configuration references. USE FOR: how to instrument app, App Insights SDK, telemetry patterns, what is App Insights, Application Insights guidance, instrumentation examples, APM best practices. DO NOT USE FOR: adding App Insights to my app (use azure-prepare), add telemetry to my project (use azure-prepare), add monitoring (use azure-prepare). This skill provides guidance—azure-prepare orchestrates component changes.","https:\u002F\u002Fgithub.com\u002FTrollz1004\u002FANTIGRAVITY\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fappinsights-instrumentation\u002FLICENSE.txt","https:\u002F\u002Fgithub.com\u002FTrollz1004\u002FANTIGRAVITY\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fappinsights-instrumentation\u002FSKILL.md",[],[208,209,210,211,212,112,213,214,215,216,217,218,219,220,221,222,223,224,225,107],"appinsights instrumentation","instrumentation","do","azure","telemetry","monitoring","references","component","how","patterns","apm","sdk setup","app","project","insights","how to","my","add",{"skillNo":227,"name":228,"nameZh":6,"description":229,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":230,"categories":231,"keywords":245,"publishedAt":43},"01M6CQNQ5FNDP6K32RKXQ9X157","youtube-automation","YouTube automation: upload, SEO, thumbnails, scheduling, analytics.","https:\u002F\u002Fgithub.com\u002FTrollz1004\u002FANTIGRAVITY\u002Fblob\u002Fmain\u002Fops\u002Fskills\u002Fyoutube-automation\u002FSKILL.md",[232,235,238,239,242],{"categoryNo":233,"categoryName":234,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000013","分析与可视化",{"categoryNo":236,"categoryName":237,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000019","营销推广",{"categoryNo":157,"categoryName":158,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":240,"categoryName":241,"taxonomyType":128,"taxonomyTypeDesc":129},"01JBSEEDCAT000000000000033","数据分析师",{"categoryNo":243,"categoryName":244,"taxonomyType":128,"taxonomyTypeDesc":129},"01JBSEEDCAT000000000000035","市场营销",[246,247,248,39,249,40,250,251,34,252,33,253,41,254],"automation","youtube","youtube automation","seo","scheduling","thumbnails","analytics","content","upload"]