mcpField
R
replica-architect

replica-architect

github.com/jakeschincariol开发6.3k710 次安装4 周前更新
代码仓库

关于 replica-architect

replica-architect 是将仿制应用的调研图和功能清单转化为架构方案、数据模型、API 路由及构建顺序的 Skill。它指导技术栈、数据结构、接口和实现风险方面的规划。

主要功能

  1. 01选择技术栈
  2. 02设计 SQL 表和访问规则
  3. 03规划 API 路由与后台任务
  4. 04识别实现风险
  5. 05安排开发里程碑

适用场景

  1. 01根据调研规划应用架构
  2. 02将功能流程转化为数据模型
  3. 03定义路由和 Webhook 处理方式
  4. 04安排仿制应用的构建顺序

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/jakeschincariol/replica-skill --skill replica-architect

安装后在 Claude Code 中输入/replica-architect确认已加载。

附带文件architecture.md

详细介绍

replica-architect

读取 replica/recon.md 和 replica/features.csv。写入 replica/architecture.md(模板:本文件夹中的 architecture.md)。

如果没有 recon map,请停止并先运行 /replica-recon。凭记忆规划应用的功能, 会让你漏掉一半内容。

Step 1:技术栈

如果用户已有技术栈,就沿用他们熟悉的技术。否则采用默认方案,因为各部分都由托管服务管理、文档齐全,而且在用户数为零时成本低:

层默认方案可替换为
Web 应用Next.js (App Router) + TypeScriptRemix、SvelteKit、Rails
样式Tailwind,使用 replica-design 中的令牌CSS modules
移动端Expo (React Native)SwiftUI、Kotlin
数据库Supabase 或 Neon 上的 PostgresPlanetScale、SQLite (Turso)
ORMDrizzle 或 Prisma原始 SQL
身份验证Supabase Auth 或 Auth.jsClerk
支付Stripe Checkout + BillingLemon Squeezy、Paddle
电子邮件Resend 或 PostmarkSES
任务Vercel Cron、Inngest 或 Trigger.devFly 上的 worker
文件Supabase Storage 或 Cloudflare R2S3
托管VercelNetlify、Fly、Render

为每个选择用一句话说明原因。只用一个数据库,不要用微服务。克隆版不需要复刻原应用的架构,需要复刻的是原应用的功能。

Step 2:架构

将推断出的数据模型转换为 SQL。对每张表:

  • id uuid primary key default gen_random_uuid()、created_at、updated_at
  • 为所有归用户所有的数据添加所有者列(user_id 或 org_id)
  • 明确决定外键的 on delete 规则,不要使用默认值
  • 为每个外键以及每个用于筛选或排序的列建立索引
  • 为状态字段使用枚举或检查约束
  • 时间始终使用 timestamptz,并以 UTC 存储
  • 金额以整数分存储,并添加货币列
  • 访问规则:在 Supabase 上使用 Postgres 行级安全,或在数据层的每个查询中执行一次授权检查。写明采用哪种方式。

例如,预订应用:

create table bookings (
  id uuid primary key default gen_random_uuid(),
  event_type_id uuid not null references event_types(id) on delete cascade,
  host_id uuid not null references users(id) on delete cascade,
  start_at timestamptz not null,
  end_at timestamptz not null,
  guest_name text not null,
  guest_email text not null,
  guest_timezone text not null,
  status text not null default 'confirmed'
    check (status in ('confirmed','cancelled','rescheduled')),
  answers jsonb not null default '{}',
  created_at timestamptz not null default now(),
  constraint no_zero_length check (end_at > start_at)
);
create index on bookings (host_id, start_at);

然后列出 recon 发现的硬性约束。两位客人预订同一时段是数据库问题(需要排除约束或唯一索引),不是 UI 问题。

Step 3:API

为 recon map 中的每个流程列一张表。对每个路由或服务端操作:

method path | 功能 | 可调用者 | 输入 | 输出 | 流程

还要列出传入和传出的 webhook(Stripe、日历服务提供商),以及后台任务(提醒、同步、清理)和对应的执行计划。

只使用官方公开 API,并使用用户自己的密钥。绝不要使用原应用的私有端点,即使它们能在浏览器中看到。

Step 4:容易出问题的部分

对适用的每一项写一行:时区和夏令时、幂等性(webhook 可能重复到达)、竞态条件、速率限制、文件大小限制、搜索、实时功能、离线功能、电子邮件送达率、多租户、GDPR 删除。

Step 5:构建顺序

  1. 垂直切片。 端到端实现核心循环,先不考虑美观:注册、完成一件事、查看结果。用于验证技术栈。
  2. 按领域实现 features.csv 中的必备项。
  3. 然后实现应该有的功能,再实现可以有的功能。
  4. 实现 replica-entrepreneur 运行后发现的修复项。

每个里程碑都列出对应的屏幕(S-ID)、表和路由。

输出

replica/architecture.md,以及 replica/schema.sql 中的 SQL 或首个迁移文件,并附上摘要:用一行说明技术栈、表的数量、路由的数量、风险最高的三项,以及下一步:/replica-design。

评论

支持 Markdown