fix:更新skill和rules
This commit is contained in:
@@ -0,0 +1,51 @@
|
||||
---
|
||||
description: 杜康好客 NestJS 后端编码规范
|
||||
globs: server/**/*.ts
|
||||
alwaysApply: false
|
||||
---
|
||||
|
||||
# 后端规范
|
||||
|
||||
## 模块目录
|
||||
|
||||
```
|
||||
server/dukang-api/src/
|
||||
├── modules/{iam,trade,benefit,catalog,store,redeem,settlement,ops,analytics,health}/
|
||||
├── common/{guards,decorators,interceptors,filters,prisma,redis}/
|
||||
├── integrations/{pay,sms,delivery}/
|
||||
└── jobs/
|
||||
```
|
||||
|
||||
## 新接口流程
|
||||
|
||||
1. 在 **OWNER 模块** 建 `dto/`、`*.service.ts`、`*.controller.ts`
|
||||
2. Service 只写本模块 Prisma 表
|
||||
3. 跨域 inject 其他 Module 的 exported Service
|
||||
4. Controller 加对应 Guard(`JwtAuthGuard`、`PhoneVerifiedGuard` 等)
|
||||
5. 响应 `{ code: 0, message: 'ok', data }`
|
||||
6. 同步 `packages/shared-types`
|
||||
|
||||
## Controller 示例
|
||||
|
||||
```typescript
|
||||
@Controller('trade/orders')
|
||||
@UseGuards(JwtAuthGuard)
|
||||
export class TradeController {
|
||||
constructor(private readonly tradeService: TradeService) {}
|
||||
}
|
||||
```
|
||||
|
||||
## 鉴权路由前缀
|
||||
|
||||
| 端 | 前缀 |
|
||||
|----|------|
|
||||
| C 端 | `/auth`, `/user`, `/catalog`, `/trade`, `/benefit`, `/redeem`, `/stores` |
|
||||
| 门店 | `/shop/auth`, `/shop/redeem`, `/shop/store` |
|
||||
| 合伙人 | `/partner/*` |
|
||||
| 总部 | `/admin/*` |
|
||||
|
||||
## 数据约定
|
||||
|
||||
- 埋点 → `log_user_analytics`;业务审计 → `common_event`
|
||||
- 支付 → `log_third_party` + `user_order.pay_*`(无 payments 表)
|
||||
- 核销码 → Redis 5min(无 DB 表)
|
||||
@@ -0,0 +1,48 @@
|
||||
---
|
||||
description: 杜康好客前端 H5 / Admin 编码规范
|
||||
globs: apps/**/*.{tsx,ts}
|
||||
alwaysApply: false
|
||||
---
|
||||
|
||||
# 前端规范
|
||||
|
||||
## 目录约定
|
||||
|
||||
```
|
||||
src/
|
||||
├── components/ # PascalCase(AppToast.tsx)
|
||||
├── pages/ # *Page.tsx
|
||||
├── layouts/ # *Layout.tsx
|
||||
├── contexts/ # *Context.tsx
|
||||
├── lib/ # kebab-case(api.ts, client-location.ts)
|
||||
├── App.tsx
|
||||
└── main.tsx
|
||||
```
|
||||
|
||||
## 四 App 与样式
|
||||
|
||||
| App | 端口 | 样式 |
|
||||
|-----|------|------|
|
||||
| h5-user | 5173 | shared-ui tokens |
|
||||
| h5-shop | 5174 | shared-ui tokens |
|
||||
| h5-partner | 5175 | shared-ui tokens |
|
||||
| admin-web | 5175 | Ant Design 5 |
|
||||
|
||||
H5 三端通过 Vite alias 引用 `@dukang/shared-ui`;admin-web 独立 Ant Design。
|
||||
|
||||
## API 请求
|
||||
|
||||
```typescript
|
||||
export const apiBase = '/api/v1';
|
||||
// 请求头:Authorization + X-Client-App
|
||||
// preV1 值:USER_H5 | SHOP_H5 | PARTNER_H5 | HQ_WEB
|
||||
```
|
||||
|
||||
Vite dev 代理 `/api` → `localhost:3000`。
|
||||
|
||||
## 新页面
|
||||
|
||||
1. 对照 `pages/{user,shop,partner,hq}/` 原型命名
|
||||
2. 类型从 `@dukang/shared-types` 导入
|
||||
3. C 端订单列表 **5 Tab**(含 `pending_ship`)
|
||||
4. 单引号 + 分号,与现有文件保持一致
|
||||
@@ -0,0 +1,32 @@
|
||||
---
|
||||
description: Git 提交与 PR 协作规范
|
||||
alwaysApply: true
|
||||
---
|
||||
|
||||
# Git 规范
|
||||
|
||||
## 提交格式
|
||||
|
||||
Conventional Commits,scope = 端或模块名:
|
||||
|
||||
```
|
||||
feat(trade): add order preview API
|
||||
fix(redeem): enforce 500 yuan cap
|
||||
chore(shared-types): add OrderStatus enum
|
||||
```
|
||||
|
||||
## 禁止提交
|
||||
|
||||
- `.env`、`.env.local` 等敏感配置
|
||||
- `node_modules/`、`dist/`(已在 .gitignore)
|
||||
|
||||
## PR 与 Review
|
||||
|
||||
- feature 分支 + 小步 PR
|
||||
- 跨模块改动需相关双 Owner Review
|
||||
- Prisma 迁移必须多 Owner Review
|
||||
|
||||
## Agent 行为
|
||||
|
||||
- **仅用户明确要求时** 才执行 git commit / push
|
||||
- 不 amend 已推送的 commit,不 force push main/master
|
||||
@@ -0,0 +1,36 @@
|
||||
---
|
||||
description: 杜康好客共享包(shared-types / domain / shared-ui)规范
|
||||
globs: packages/**/*.{ts,tsx}
|
||||
alwaysApply: false
|
||||
---
|
||||
|
||||
# 共享包规范
|
||||
|
||||
## 包职责
|
||||
|
||||
| 包 | 用途 | 约束 |
|
||||
|----|------|------|
|
||||
| `@dukang/shared-types` | DTO、枚举、错误码、JWT Payload | 前后端唯一契约 |
|
||||
| `@dukang/domain` | 纯函数业务规则 | **禁止 IO**,含 Vitest 单测 |
|
||||
| `@dukang/shared-ui` | H5 共享组件 + `tokens.css` | 仅 H5 三端使用 |
|
||||
|
||||
## shared-types
|
||||
|
||||
- 枚举用 `SCREAMING_SNAKE_CASE`(如 `OrderStatus.PENDING_PAY`)
|
||||
- API Tab 查询用 snake_case(`pending_pay`)
|
||||
- **加法优先**:新字段 optional;删除/改名先 deprecated
|
||||
- 改 API 必须同步 V2 手册 §六 与 shared-types
|
||||
|
||||
## domain
|
||||
|
||||
纯规则示例(无数据库/HTTP):
|
||||
|
||||
```typescript
|
||||
const benefitAmount = product.benefitAmount ?? product.price;
|
||||
// 同城起购 2 瓶 / 跨城 6 瓶
|
||||
// 核销上限 ¥500
|
||||
```
|
||||
|
||||
## 破坏性改动
|
||||
|
||||
`packages/*` 改动需全员 + tech-lead Review;Prisma schema 迁移需全部 Owner Review。
|
||||
@@ -0,0 +1,48 @@
|
||||
---
|
||||
description: 杜康好客 Monorepo 核心规范、事实源与模块边界
|
||||
alwaysApply: true
|
||||
---
|
||||
|
||||
# 杜康好客 · 项目核心
|
||||
|
||||
## Monorepo 布局
|
||||
|
||||
- `apps/` — 前端(preV1:`h5-user`、`h5-shop`、`h5-partner`、`admin-web`)
|
||||
- `packages/` — `shared-types`、`domain`、`shared-ui`
|
||||
- `server/dukang-api/` — NestJS 单体 API
|
||||
- `pages/` — UI 原型(**只读参照**,勿改)
|
||||
|
||||
> V2 目标为 Taro 四端(`mini-user` 等),编码以 **当前实际目录** 为准。
|
||||
|
||||
## 事实源优先级
|
||||
|
||||
1. preV1 联调 → `杜康好客-preV1编码手册.md`
|
||||
2. PRD / DB / API 权威 → `杜康好客-V2编码手册.md`
|
||||
3. 协作边界 → `conventions.md`
|
||||
4. Agent 流程 → `agent.md` + `skills.md`
|
||||
|
||||
**禁止**:编码时修改业务规则;需求变更只改 V2 手册。
|
||||
|
||||
## 模块边界(硬约束)
|
||||
|
||||
- 任一 `apps/*` **禁止** import 其他 app 或 `server/*` 源码
|
||||
- 后端 Module **禁止** 跨模块直写 Prisma 表,只 inject 对方 `exports` 的 Service
|
||||
- 新枚举/DTO → `packages/shared-types`;纯规则 → `packages/domain`(无 IO)
|
||||
|
||||
## 核心业务常量
|
||||
|
||||
- 权益额 = `benefit_amount ?? price`
|
||||
- 核销:0 < amount ≤ min(balance, **500**)
|
||||
- 订单 Tab:`all | pending_pay | pending_ship | pending_receive | completed`
|
||||
- API:`/api/v1`,响应 `{ code, message, data }`
|
||||
- JWT:`actorType` + `actorId` + `clientApp`
|
||||
|
||||
## 模块 OWNER
|
||||
|
||||
| Owner | App / Module |
|
||||
|-------|-------------|
|
||||
| A | h5-user → iam, trade, benefit, analytics |
|
||||
| B | h5-partner → store |
|
||||
| C | admin-web → catalog, settlement, ops |
|
||||
| D | h5-shop → redeem |
|
||||
| Lead | packages/*, callbacks/, jobs/ |
|
||||
@@ -0,0 +1,98 @@
|
||||
---
|
||||
name: dukang-coding
|
||||
description: >-
|
||||
Implements 杜康好客 features following preV1/V2 specs: NestJS API, H5 pages,
|
||||
Prisma schema, shared-types. Use when implementing task cards, writing API/page
|
||||
code, fixing bugs, or when the user says start coding or @dukang-coding.
|
||||
disable-model-invocation: true
|
||||
---
|
||||
|
||||
# 杜康好客 · 编码 Skill
|
||||
|
||||
## 何时启用
|
||||
|
||||
- 实现任务卡(`M2-BE-TRD-002`、`P1-M2-002` 等)
|
||||
- 写 API、页面、数据库逻辑
|
||||
- 用户说「开始 coding」或 @dukang-coding
|
||||
- 修复 V1 范围 Bug
|
||||
|
||||
**不用于**:写 PRD、评审需求(用 @dukang-project)
|
||||
|
||||
## 文档读取顺序
|
||||
|
||||
1. `杜康好客-preV1编码手册.md` — preV1 联调范围
|
||||
2. `杜康好客-V2编码手册.md` — PRD、DB v3.1、API(最高权威)
|
||||
3. `agent.md` — Agent 流程与 DoD
|
||||
4. `conventions.md` — 模块边界
|
||||
5. `pages/{端}/` — UI 原型
|
||||
6. [reference-backend.md](reference-backend.md) / [reference-frontend.md](reference-frontend.md) — 路径速查
|
||||
|
||||
**需求变更** → 只改 V2 手册,编码时不改业务规则。
|
||||
|
||||
## 编码前检查清单
|
||||
|
||||
```
|
||||
- [ ] 已确认任务卡 ID 与 OWNER 模块
|
||||
- [ ] 已读手册 PRD 对应 § 与 pages/ 原型
|
||||
- [ ] 已知 API 路径与 Guard
|
||||
- [ ] 已知 Prisma model(v3.1 表名)
|
||||
- [ ] 不跨模块直写他人表
|
||||
- [ ] 新枚举/DTO → packages/shared-types
|
||||
- [ ] 纯规则 → packages/domain(无 IO)
|
||||
```
|
||||
|
||||
## 后端工作流
|
||||
|
||||
1. OWNER 模块建 `dto/`、`controller`、`service`
|
||||
2. Service 只写本模块表;跨域 inject exported Service
|
||||
3. Controller 加 Guard;响应 `{ code, message, data }`
|
||||
4. 同步 `packages/shared-types`
|
||||
|
||||
## 前端工作流
|
||||
|
||||
1. 对照 `pages/{端}/` 原型命名页面与 Tab
|
||||
2. 使用 `shared-types`;请求带 `X-Client-App`
|
||||
3. preV1 App:`h5-user` / `h5-shop` / `h5-partner` / `admin-web`
|
||||
4. C 端订单 **5 Tab**(含 `pending_ship`)
|
||||
|
||||
## 数据库变更
|
||||
|
||||
1. 改 `server/dukang-api/prisma/schema.prisma` 对齐手册 §五
|
||||
2. 迁移需 OWNER Review
|
||||
3. 初始化 SQL:`server/dukang-api/prisma/init_v3.sql`
|
||||
|
||||
## 核心业务(勿偏离)
|
||||
|
||||
```typescript
|
||||
// packages/domain
|
||||
const benefitAmount = product.benefitAmount ?? product.price;
|
||||
|
||||
// 核销上限 ¥500
|
||||
if (amount <= 0 || amount > coupon.balance || amount > 500) throw ...
|
||||
|
||||
// 订单 Tab: all | pending_pay | pending_ship | pending_receive | completed
|
||||
|
||||
// 支付成功 → log_third_party + user_order.pay_status=PAID
|
||||
// → user_benefit_coupon + common_event(BENEFIT_LEDGER, GRANT)
|
||||
|
||||
// 埋点 → log_user_analytics;业务审计 → common_event
|
||||
```
|
||||
|
||||
## 核销并发(必须)
|
||||
|
||||
- Redis:`redeem:token:{token}` EX 300
|
||||
- 事务:扣券 balance + version 乐观锁
|
||||
- 写 `user_redeem_record` + `store_payout`(PENDING) + `common_event(BENEFIT_LEDGER, REDEEM)`
|
||||
|
||||
## 完成定义
|
||||
|
||||
- 任务卡验收项全部满足
|
||||
- `packages/domain` 相关单测通过
|
||||
- 无跨模块 Prisma 直写
|
||||
- 改了 API/表 → 同步手册与 shared-types
|
||||
|
||||
## 延伸阅读
|
||||
|
||||
- 后端路径速查:[reference-backend.md](reference-backend.md)
|
||||
- 前端页面速查:[reference-frontend.md](reference-frontend.md)
|
||||
- 详细清单:根目录 `skills.md`
|
||||
@@ -0,0 +1,113 @@
|
||||
# 后端路径速查
|
||||
|
||||
> Base: `/api/v1` · 响应: `{ code, message, data }`
|
||||
|
||||
## JWT clientApp(preV1 实际值)
|
||||
|
||||
| clientApp | actorType | 账号表 |
|
||||
|-----------|-----------|--------|
|
||||
| USER_H5 | USER | user_user |
|
||||
| SHOP_H5 | STORE | store_account |
|
||||
| PARTNER_H5 | PARTNER | partner_account |
|
||||
| HQ_WEB | HQ | hq_account |
|
||||
|
||||
Token 含 `actorType` + `actorId` + `clientApp`。请求头:`Authorization`、`X-Client-App`。
|
||||
|
||||
## 表前缀
|
||||
|
||||
| 前缀 | 域 |
|
||||
|------|-----|
|
||||
| user_ | C 端用户、订单、权益、核销 |
|
||||
| store_ | 门店、门店账号、结算 |
|
||||
| partner_ | 合伙人 |
|
||||
| hq_ | 总部账号 |
|
||||
| common_ | 商品、资源、事件、工单 |
|
||||
| log_ | 第三方、埋点 |
|
||||
|
||||
## Guard 对照
|
||||
|
||||
| Guard | 用途 |
|
||||
|-------|------|
|
||||
| JwtAuthGuard | 需登录 |
|
||||
| PhoneVerifiedGuard | C 端需绑定手机(下单/支付) |
|
||||
| OptionalJwtAuthGuard | 可选登录(bootstrap) |
|
||||
|
||||
Admin 路由在 `modules/ops/` 下,前缀 `/admin/*`。
|
||||
|
||||
## Controller 路由(当前实现)
|
||||
|
||||
### iam
|
||||
|
||||
| 路径 | Controller |
|
||||
|------|-----------|
|
||||
| `POST /auth/session/bootstrap` | UserAuthController |
|
||||
| `POST /auth/sms/send` | UserAuthController |
|
||||
| `POST /auth/sms/login` | UserAuthController |
|
||||
| `GET /user/me` | UserAuthController |
|
||||
| `GET/POST/PUT/DELETE /user/addresses` | UserAddressController |
|
||||
| `POST /shop/auth/*` | ShopAuthController |
|
||||
| `POST /partner/auth/*` | PartnerAuthController |
|
||||
| `POST /admin/auth/login` | AdminAuthController |
|
||||
|
||||
### catalog / trade / benefit / redeem
|
||||
|
||||
| 路径 | Module |
|
||||
|------|--------|
|
||||
| `GET /catalog/*` | catalog |
|
||||
| `POST/GET /trade/orders` | trade |
|
||||
| `GET/POST /benefit/*` | benefit |
|
||||
| `POST /redeem/*` | redeem(C 端) |
|
||||
| `POST /shop/redeem/*` | redeem(门店) |
|
||||
|
||||
### store / settlement
|
||||
|
||||
| 路径 | Module |
|
||||
|------|--------|
|
||||
| `GET /stores` | store(C 端门店列表) |
|
||||
| `GET/POST /partner/stores` | store |
|
||||
| `GET /partner/dashboard` | store |
|
||||
| `GET /shop/store` | store |
|
||||
| `GET /shop/dashboard` | store |
|
||||
| `GET /partner/settlement/*` | settlement |
|
||||
| `GET /partner/me` | settlement |
|
||||
| `GET /partner/orders` | trade |
|
||||
|
||||
### ops(admin-web)
|
||||
|
||||
| 路径 | 说明 |
|
||||
|------|------|
|
||||
| `/admin/dashboard` | 看板 |
|
||||
| `/admin/users` | C 端用户 |
|
||||
| `/admin/orders` | 订单 |
|
||||
| `/admin/stores` | 门店 |
|
||||
| `/admin/store-accounts` | 门店账号 |
|
||||
| `/admin/store-media` | 门店媒体 |
|
||||
| `/admin/partners` | 合伙人 |
|
||||
| `/admin/partner-accounts` | 合伙人账号 |
|
||||
| `/admin/cities` | 开城 |
|
||||
| `/admin/hq-accounts` | 总部账号 |
|
||||
| `/admin/benefit/coupons` | 权益券 |
|
||||
| `/admin/benefit/ledgers` | 权益流水 |
|
||||
| `/admin/redeem-records` | 核销记录 |
|
||||
| `/admin/deliveries` | 配送 |
|
||||
|
||||
### analytics / health
|
||||
|
||||
| 路径 | Module |
|
||||
|------|--------|
|
||||
| `POST /analytics/*` | analytics |
|
||||
| `GET /health` | health |
|
||||
|
||||
## 模块 → OWNER
|
||||
|
||||
| Module | Owner | 主责 |
|
||||
|--------|-------|------|
|
||||
| iam, trade, benefit, analytics | A | 交易与权益 |
|
||||
| store | B | 门店域 |
|
||||
| catalog, settlement, ops | C | 开城与结算 |
|
||||
| redeem | D | 核销域 |
|
||||
|
||||
## 禁止
|
||||
|
||||
- Module A 直写 Module B 的 Prisma 表
|
||||
- apps import server 源码
|
||||
@@ -0,0 +1,100 @@
|
||||
# 前端页面速查
|
||||
|
||||
## 四 App 概览
|
||||
|
||||
| App | 目录 | 端口 | CLIENT_APP | 原型 |
|
||||
|-----|------|------|------------|------|
|
||||
| h5-user | apps/h5-user | 5173 | USER_H5 | pages/user/ |
|
||||
| h5-shop | apps/h5-shop | 5174 | SHOP_H5 | pages/shop/ |
|
||||
| h5-partner | apps/h5-partner | 5175 | PARTNER_H5 | pages/partner/ |
|
||||
| admin-web | apps/admin-web | 5175 | HQ_WEB | pages/hq/ |
|
||||
|
||||
> h5-partner 与 admin-web 端口同为 5175,勿同时 dev。
|
||||
|
||||
Vite 代理:`/api` → `localhost:3000`。
|
||||
|
||||
## h5-user 路由(C 端)
|
||||
|
||||
| 路由 | Page | 主要 API |
|
||||
|------|------|----------|
|
||||
| /login | LoginPage | /auth/* |
|
||||
| / | HomePage | /catalog |
|
||||
| /product/:id | ProductDetailPage | /catalog |
|
||||
| /order/confirm | OrderConfirmPage | /trade/orders/preview |
|
||||
| /pay | PayPage | /trade/orders/:id/pay |
|
||||
| /orders | OrderListPage | /trade/orders?tab= |
|
||||
| /orders/:id | OrderDetailPage | /trade/orders/:id |
|
||||
| /stores | StoreListPage | /stores |
|
||||
| /stores/:id | StoreDetailPage | /stores/:id |
|
||||
| /benefit | BenefitPage | /benefit |
|
||||
| /benefit/:id | BenefitDetailPage | /benefit/:id |
|
||||
| /redeem | RedeemPage | /redeem |
|
||||
| /redeem/code | RedeemCodePage | /redeem |
|
||||
| /redeem/success | RedeemSuccessPage | — |
|
||||
| /addresses | AddressListPage | /user/addresses |
|
||||
| /mine | MinePage | /user/me |
|
||||
|
||||
### 订单 5 Tab
|
||||
|
||||
```
|
||||
all | pending_pay | pending_ship | pending_receive | completed
|
||||
```
|
||||
|
||||
## h5-shop 路由(门店)
|
||||
|
||||
| 路由 | Page | 主要 API |
|
||||
|------|------|----------|
|
||||
| /login | LoginPage | /shop/auth/* |
|
||||
| / | HomePage | /shop/dashboard |
|
||||
| /redeem | RedeemConfirmPage | /shop/redeem/* |
|
||||
| /redeem/success | RedeemSuccessPage | — |
|
||||
| /records | RecordsPage | /shop/redeem/records |
|
||||
| /status | StatusPage | /shop/store |
|
||||
| /mine | MinePage | /shop/store |
|
||||
|
||||
## h5-partner 路由(合伙人)
|
||||
|
||||
| 路由 | Page | 主要 API |
|
||||
|------|------|----------|
|
||||
| /login | LoginPage | /partner/auth/* |
|
||||
| / | HomePage | /partner/dashboard |
|
||||
| /stores | StoreListPage | /partner/stores |
|
||||
| /stores/new | StoreCreatePage | /partner/stores |
|
||||
| /stores/:id | StoreDetailPage | /partner/stores/:id |
|
||||
| /orders | OrderListPage | /partner/orders |
|
||||
| /orders/:id | OrderDetailPage | /partner/orders/:id |
|
||||
| /center | CenterPage | /partner/me |
|
||||
| /center/bills | BillsPage | /partner/settlement/* |
|
||||
|
||||
## admin-web 路由(总部)
|
||||
|
||||
| 路由 | Page | 主要 API |
|
||||
|------|------|----------|
|
||||
| /login | LoginPage | /admin/auth/login |
|
||||
| / | DashboardPage | /admin/dashboard |
|
||||
| /users | UsersPage | /admin/users |
|
||||
| /orders | OrdersPage | /admin/orders |
|
||||
| /stores | StoresPage | /admin/stores |
|
||||
| /store-accounts | StoreAccountsPage | /admin/store-accounts |
|
||||
| /store-media | StoreMediaPage | /admin/store-media |
|
||||
| /partners | PartnersPage | /admin/partners |
|
||||
| /partner-accounts | PartnerAccountsPage | /admin/partner-accounts |
|
||||
| /cities | CitiesPage | /admin/cities |
|
||||
| /hq-accounts | HqAccountsPage | /admin/hq-accounts |
|
||||
| /benefit/coupons | BenefitCouponsPage | /admin/benefit/coupons |
|
||||
| /benefit/ledgers | BenefitLedgersPage | /admin/benefit/ledgers |
|
||||
| /redeem-records | RedeemRecordsPage | /admin/redeem-records |
|
||||
| /deliveries | DeliveriesPage | /admin/deliveries |
|
||||
|
||||
## 端 → API 前缀(V2 附录 B)
|
||||
|
||||
| 端 | API 前缀 | NestJS Module |
|
||||
|----|----------|---------------|
|
||||
| C 端 | /auth, /user, /catalog, /trade, /benefit, /redeem, /stores | iam, catalog, trade, benefit, redeem, store |
|
||||
| 门店 | /shop/auth, /shop/redeem, /shop/store | iam, redeem, store |
|
||||
| 合伙人 | /partner/* | iam, store, trade, settlement |
|
||||
| 总部 | /admin/* | iam, catalog, store, trade, settlement, ops |
|
||||
|
||||
## 共享 UI
|
||||
|
||||
H5 三端引用 `@dukang/shared-ui`(设计令牌 `tokens.css`)。admin-web 使用 Ant Design 5,不引用 shared-ui。
|
||||
@@ -0,0 +1,68 @@
|
||||
---
|
||||
name: dukang-project
|
||||
description: >-
|
||||
Manages 杜康好客 PRD, requirements review, prototype mapping, and task card
|
||||
planning. Use when writing PRD, reviewing requirements, mapping prototypes to
|
||||
features, or splitting task cards. Not for daily coding (use @dukang-coding).
|
||||
disable-model-invocation: true
|
||||
---
|
||||
|
||||
# 杜康好客 · 项目/需求 Skill
|
||||
|
||||
## 何时启用
|
||||
|
||||
- 写或改 PRD、业务规则
|
||||
- 评审需求、对照原型
|
||||
- 拆分或规划任务卡
|
||||
- 用户 @dukang-project
|
||||
|
||||
**不用于**:日常编码、修 Bug(用 @dukang-coding)
|
||||
|
||||
## 文档阅读顺序
|
||||
|
||||
| 优先级 | 文档 | 用途 |
|
||||
|--------|------|------|
|
||||
| 1 | `杜康好客-V2编码手册.md` §二 | **做什么**(业务规则、状态、边界) |
|
||||
| 2 | `conventions.md` | **怎么协作**(模块边界、提交) |
|
||||
| 3 | V2 手册 §四 | **怎么架构**(NestJS 模块) |
|
||||
| 4 | V2 手册 §五 | **表结构**(Prisma / SQL) |
|
||||
| 5 | V2 手册 §六 | **接口契约**(四端 JWT) |
|
||||
| 6 | `pages/{user,shop,partner,hq}/` | **UI 参照** |
|
||||
| 7 | `杜康好客-preV1编码手册.md` | preV1 联调范围 |
|
||||
|
||||
## 需求变更规则
|
||||
|
||||
- **只改** `杜康好客-V2编码手册.md` 作为业务事实源
|
||||
- 编码 Agent **不得**边写代码边改业务规则
|
||||
- 改 API/表结构 → 同步手册 §五/§六 + `packages/shared-types`
|
||||
|
||||
## 原型 → 模块映射
|
||||
|
||||
| 端 | 原型目录 | 主要 API 前缀 | NestJS Module |
|
||||
|----|----------|---------------|---------------|
|
||||
| C 端 | pages/user/ | /auth, /user, /catalog, /trade, /benefit, /redeem, /stores | iam, catalog, trade, benefit, redeem, store |
|
||||
| 门店 | pages/shop/ | /shop/auth, /shop/redeem, /shop/store | iam, redeem, store |
|
||||
| 合伙人 | pages/partner/ | /partner/* | iam, store, trade, settlement |
|
||||
| 总部 | pages/hq/ | /admin/* | iam, catalog, store, trade, settlement, ops |
|
||||
|
||||
## 任务卡格式
|
||||
|
||||
- ID 格式:`Mx-LAYER-NNN`(如 `M2-BE-TRD-002`)
|
||||
- 任务卡全集:V2 手册 §七 附录 A
|
||||
- preV1 任务卡:preV1 手册 §9
|
||||
|
||||
## 团队 OWNER
|
||||
|
||||
| OWNER | 前端 | 后端 Module |
|
||||
|-------|------|-------------|
|
||||
| A | h5-user | iam, trade, benefit, analytics |
|
||||
| B | h5-partner | store |
|
||||
| C | admin-web | catalog, settlement, ops |
|
||||
| D | h5-shop | redeem |
|
||||
| Lead | packages/* | callbacks, jobs, common |
|
||||
|
||||
## 输出要求
|
||||
|
||||
- 需求文档变更需标注影响模块与 Owner
|
||||
- 新任务卡需含:PRD §、API 路径、DB 表、原型路径、验收标准
|
||||
- 跨模块 PR 需相关双 Owner Review
|
||||
@@ -0,0 +1,40 @@
|
||||
# 杜康好客 Agent 入口
|
||||
|
||||
> Cursor 标准入口,详细流程见 [`agent.md`](agent.md)。
|
||||
|
||||
## 会话启动
|
||||
|
||||
1. [`agent.md`](agent.md) — Agent 流程与 DoD
|
||||
2. [`skills.md`](skills.md) — 编码检查清单
|
||||
3. [`conventions.md`](conventions.md) — 模块边界与协作
|
||||
4. [`杜康好客-preV1编码手册.md`](杜康好客-preV1编码手册.md) — preV1 联调范围
|
||||
5. [`杜康好客-V2编码手册.md`](杜康好客-V2编码手册.md) — PRD / DB / API 权威
|
||||
|
||||
## Cursor 规范
|
||||
|
||||
| 类型 | 路径 | 说明 |
|
||||
|------|------|------|
|
||||
| Rules | `.cursor/rules/` | 自动加载的编码规范 |
|
||||
| 编码 Skill | `.cursor/skills/dukang-coding/` | @dukang-coding |
|
||||
| 需求 Skill | `.cursor/skills/dukang-project/` | @dukang-project |
|
||||
|
||||
## 快速指令
|
||||
|
||||
- 实现任务卡:`@dukang-coding 实现 M2-BE-TRD-002`
|
||||
- 需求评审:`@dukang-project 对照 pages/user/ 评审 PRD`
|
||||
- 原型参照:`pages/{user,shop,partner,hq}/`(只读)
|
||||
|
||||
## preV1 实际 App
|
||||
|
||||
```
|
||||
apps/h5-user → C 端 H5(5173)
|
||||
apps/h5-shop → 门店 H5(5174)
|
||||
apps/h5-partner → 合伙人 H5(5175)
|
||||
apps/admin-web → 总部后台(5175)
|
||||
```
|
||||
|
||||
## 硬约束
|
||||
|
||||
- 编码时不改业务规则;需求变更只改 V2 手册
|
||||
- apps 禁止 import 其他 app 或 server 源码
|
||||
- 后端禁止跨模块直写 Prisma 表
|
||||
Reference in New Issue
Block a user