Marketplace empathy-ledger-dev
Invoke this skill when: - Starting work on any Empathy Ledger feature - Need quick reference to project patterns
install
source · Clone the upstream repo
git clone https://github.com/aiskillstore/marketplace
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/aiskillstore/marketplace "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/acurioustractor/empathy-ledger-dev" ~/.claude/skills/aiskillstore-marketplace-empathy-ledger-dev && rm -rf "$T"
manifest:
skills/acurioustractor/empathy-ledger-dev/SKILL.mdsource content
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
for isolationtenant_id - RLS policies enforce tenant boundaries
- Organizations = tenants
Cultural Sensitivity Levels:
- General sharing allowedstandard
- Community context requiredmedium
- Elder review recommendedhigh
- Elder approval mandatory, no external sharingsacred
Common Patterns
API Route Authentication:
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:
const isOwner = story.author_id === user.id || story.storyteller_id === user.id
Cultural Color Palette:
- Primary, storyteller elementsclay-*
- Community, elder approvalsage-*
- Organization, trustsky-*
- Warnings, sensitivityember-*
Database Domains
| Domain | File | Contents |
|---|---|---|
| User/Profile | | Profiles, preferences |
| Organization | | Tenants, memberships |
| Projects | | Projects, milestones |
| Content | | Stories, media |
| Cultural | | Sensitivity, approvals |
| Legal | | Consent, GDPR |
| Story Ownership | | Distributions, embeds |
Key Services
- Manage story embeds with domain restrictionsEmbedService
- Track external sharesDistributionService
- Cascade revocationRevocationService
- Anonymization, data exportGDPRService
- Action loggingAuditService
Slash Commands
- Create React component/design-component [description]
- Create Supabase migration/database-migration [description]
- Cultural sensitivity review/review-cultural [code/feature]
- Security audit/review-security [code/endpoint]
- Create Playwright test/generate-e2e-test [feature]
- Create API route/api-endpoint [description]
Specialized Agents
- UI/UX with cultural designfrontend-designer
- Supabase/PostgreSQLdatabase-architect
- OCAP compliancecultural-reviewer
- GDPR and securitysecurity-auditor
- Playwright E2Etesting-automation
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:
- Project instructionsCLAUDE.md
- Specialized agent prompts.claude/agents/*.md
- Slash command definitions.claude/commands/*.md
- Database type definitionssrc/types/database/