代码库探索器Skill codebase-explorer

代码库探索器技能是一个专门用于分析和理解Empathy Ledger项目架构的工具。它帮助开发者快速定位数据库模式、API路由、服务层组件和数据流路径,提供多租户架构解析和系统关系映射。关键词:代码库分析、系统架构、数据流追踪、数据库模式、API路由、多租户隔离、开发文档、Empathy Ledger。

架构设计 0 次安装 0 次浏览 更新于 3/1/2026

name: codebase-explorer description: 探索并理解Empathy Ledger代码库架构、数据流、数据库模式、服务以及组件连接方式。当需要了解事物位置、数据如何流动或系统不同部分如何关联时使用。

代码库探索技能

探索并记录Empathy Ledger代码库架构、数据流和系统关系。

使用说明

当此技能被调用时,帮助用户理解:

  1. 数据库模式 - 表、关系、迁移
  2. 数据流 - Supabase → 服务 → API路由 → 组件
  3. 服务层 - 业务逻辑模式
  4. API路由 - 端点及其用途
  5. 类型定义 - 每个域的类型文件位置
  6. 多租户架构 - 租户隔离工作原理

快速参考文件

数据库与类型

类型文件 关键表
用户/个人资料 src/types/database/user-profile.ts profiles, profile_settings
组织 src/types/database/organization-tenant.ts organisations, organization_members, tenants
项目 src/types/database/project-management.ts projects, project_participants
故事/内容 src/types/database/content-media.ts stories, transcripts, media_assets
分发 src/types/database/story-ownership.ts story_distributions, consent_proofs
文化安全 src/types/database/cultural-sensitivity.ts cultural_safety_moderation
位置 src/types/database/location-events.ts locations, events
分析 src/types/database/analysis-support.ts transcript_analysis, themes, quotes

Supabase客户端

客户端 文件 用途
浏览器 src/lib/supabase/client.ts React组件
服务器SSR src/lib/supabase/client-ssr.ts API路由、服务器组件
服务角色 src/lib/supabase/service-role-client.ts 管理操作(绕过RLS)

核心服务 (src/lib/services/)

服务 用途
consent.service.ts GDPR同意证明系统
distribution.service.ts 带策略执行的故事分发
revocation.service.ts 撤销分发的内容
embed.service.ts 嵌入式故事令牌
organization.service.ts 组织管理和指标
audit.service.ts 合规性日志记录
gdpr.service.ts 数据隐私操作
webhook.service.ts 事件分发到合作伙伴

API路由 (src/app/api/)

路由 用途
/api/stories 故事CRUD
/api/stories/[id]/consent 同意管理
/api/stories/[id]/distributions 分发跟踪
/api/stories/[id]/revoke 撤销
/api/storytellers 故事讲述者个人资料
/api/projects 项目管理
/api/projects/[id]/transcripts 转录本访问
/api/embed/stories/[id] 嵌入式内容
/api/admin/* 管理操作

数据流模式

用户操作 (React组件)
    ↓
fetch('/api/endpoint')
    ↓
API路由 (src/app/api/*)
    ↓
服务层 (src/lib/services/*)
    ↓
Supabase客户端 (RLS强制执行)
    ↓
PostgreSQL (supabase/migrations/*)

多租户隔离

每个查询都按租户过滤:

// 在API路由中
const profile = await supabase.from('profiles').select('tenant_id').eq('id', user.id).single()
query = query.eq('tenant_id', profile.tenant_id)

角色层级 (最高 → 最低)

  1. elder (100) - 文化权威
  2. cultural_keeper (90) - 知识保存
  3. admin (70) - 系统管理
  4. project_leader (60) - 项目管理
  5. storyteller (50) - 内容创作
  6. community_member (40) - 参与者
  7. guest (10) - 只读

常用探索命令

# 查找所有服务
ls src/lib/services/

# 查找功能的API路由
ls src/app/api/stories/

# 检查数据库类型
cat src/types/database/index.ts

# 查看最新迁移
ls -la supabase/migrations/ | tail -5

# 查找表的使用位置
grep -r "from('stories')" src/

# 查找功能的组件
ls src/components/stories/

输出格式

探索时提供:

  1. 文件位置 带可点击链接
  2. 关键关系 表/服务之间
  3. 代码片段 显示模式
  4. 图表 使用ASCII或markdown表格

何时使用此技能

当以下情况时调用:

  • 询问“X在哪里?”
  • 询问“X如何连接到Y?”
  • 需要理解数据关系
  • 寻找正确的服务或API路由
  • 理解数据库模式
  • 查找组件或类型定义

参考文档

有关完整代码示例的全面文档,请参阅:


触发条件: 用户询问代码库结构、数据流或“X如何连接到Y”