--- name: empathy-ledger-dev description: "Invoke this skill when: - Starting work on any Empathy Ledger feature - Need quick reference to project patterns" --- # Empathy Ledger Development Skill This skill provides comprehensive context for developing the Empathy Ledger v2 platform - a multi-tenant storytelling platform for Indigenous communities with cultural safety protocols. ## Quick Reference ### Project Structure ``` src/ ├── app/ # Next.js 15 App Router │ ├── api/ # API routes │ ├── vault/ # Story Vault dashboard │ └── stories/ # Story pages ├── components/ # React components │ ├── ui/ # shadcn/ui base │ ├── vault/ # Story Vault components │ └── cultural/ # Cultural protocol UI ├── lib/ # Utilities and services │ ├── services/ # Business logic services │ ├── hooks/ # React hooks │ └── ai/ # AI integration └── types/ # TypeScript types └── database/ # Supabase types by domain ``` ### Key Concepts **OCAP Principles** (Indigenous Data Sovereignty): - **Ownership**: Storytellers own their narratives - **Control**: Users control who accesses their stories - **Access**: Tiered access based on cultural sensitivity - **Possession**: Data can be exported/deleted anytime **Multi-Tenant Architecture**: - All tables have `tenant_id` for isolation - RLS policies enforce tenant boundaries - Organizations = tenants **Cultural Sensitivity Levels**: - `standard` - General sharing allowed - `medium` - Community context required - `high` - Elder review recommended - `sacred` - Elder approval mandatory, no external sharing ### Common Patterns **API Route Authentication**: ```typescript const supabase = createRouteHandlerClient({ cookies }) const { data: { user }, error } = await supabase.auth.getUser() if (error || !user) { return NextResponse.json({ error: 'Unauthorized' }, { status: 401 }) } ``` **Story Ownership Check**: ```typescript const isOwner = story.author_id === user.id || story.storyteller_id === user.id ``` **Cultural Color Palette**: - `clay-*` - Primary, storyteller elements - `sage-*` - Community, elder approval - `sky-*` - Organization, trust - `ember-*` - Warnings, sensitivity ### Database Domains | Domain | File | Contents | |--------|------|----------| | User/Profile | `user-profile.ts` | Profiles, preferences | | Organization | `organization-tenant.ts` | Tenants, memberships | | Projects | `project-management.ts` | Projects, milestones | | Content | `content-media.ts` | Stories, media | | Cultural | `cultural-protocols.ts` | Sensitivity, approvals | | Legal | `consent-legal.ts` | Consent, GDPR | | Story Ownership | `story-ownership.ts` | Distributions, embeds | ### Key Services - `EmbedService` - Manage story embeds with domain restrictions - `DistributionService` - Track external shares - `RevocationService` - Cascade revocation - `GDPRService` - Anonymization, data export - `AuditService` - Action logging ### Slash Commands - `/design-component [description]` - Create React component - `/database-migration [description]` - Create Supabase migration - `/review-cultural [code/feature]` - Cultural sensitivity review - `/review-security [code/endpoint]` - Security audit - `/generate-e2e-test [feature]` - Create Playwright test - `/api-endpoint [description]` - Create API route ### Specialized Agents - `frontend-designer` - UI/UX with cultural design - `database-architect` - Supabase/PostgreSQL - `cultural-reviewer` - OCAP compliance - `security-auditor` - GDPR and security - `testing-automation` - Playwright E2E ## When to Use This Skill Invoke this skill when: - Starting work on any Empathy Ledger feature - Need quick reference to project patterns - Reviewing code for compliance - Creating new components/endpoints ## Reference Files The following files provide detailed context: - `CLAUDE.md` - Project instructions - `.claude/agents/*.md` - Specialized agent prompts - `.claude/commands/*.md` - Slash command definitions - `src/types/database/` - Database type definitions