--- name: feature-docs description: '功能文档索引。查阅 listing/钱包/配送/主题/i18n/账号绑定/settings 等模块的设计文档。触发词:"功能文档", "feature docs", "功能设计", "这个模块是怎么设计的".' --- # 功能文档索引(Feature Docs Index) ## 触发条件 当用户提到以下内容时使用: - "功能文档"、"feature docs"、"功能设计"、"feature design" - "查看 listing/商品/钱包/配送/主题/i18n/账号绑定/settings 的设计文档" - "这个模块是怎么设计的" - 开发新功能或修改现有功能时需要了解设计背景 ## 概述 `docs/features/` 目录下维护着各核心模块的详细设计文档,包含架构设计、数据结构、API 接口、组件清单、i18n 键、迁移状态等信息。开发前应先查阅相关文档,确保实现与整体设计一致。 ## 文档索引 ### 核心功能模块 | 文档 | 路径 | 涵盖内容 | 关联 Skill | | ----------------- | ----------------------------------------------- | --------------------------------------------------------------------------------------------------------- | ------------------------------------------- | | **商品模块** | `docs/features/listing-module.md` | 商品创建/编辑、表单架构、5 种商品类型、TokenInput、分类自动补全 | `component-dev`, `ecommerce-ux` | | **配送档案** | `docs/features/shipping-profiles.md` | Shopify 风格的 Profile→Zone→Rate 架构、后端 Protobuf、数据迁移 | `component-dev` | | **钱包集成** | `docs/features/wallet-integration.md` | Reown AppKit、useWallet Hook、多链支持、Escrow 合约 | `web3-guide` | | **账号绑定** | `docs/features/account-binding.md` | 多 OAuth 账号绑定(Discord/Telegram/Google 等)、Casdoor 集成 | `security-guide` | | **Settings 重构** | `docs/features/settings-redesign.md` | Shopify 风格页面模式重构、5 Phase 改造计划、AI-Ready 设计 | `component-dev`, `desktop-ux-guide` | | **店铺品牌化** | `docs/features/PG-201_STORE_BRANDING_DESIGN.md` | Section-based 店铺定制、StoreConfig Schema(Discriminated Union)、SSR 渲染引擎、Admin 编辑器、5 预设模板 | `pg-tier2-differentiation`, `design-tokens` | ### 基础设施模块 | 文档 | 路径 | 涵盖内容 | 关联 Skill | | ------------ | -------------------------------- | -------------------------------------------------- | --------------- | | **国际化** | `docs/features/i18n.md` | useI18n Hook、9 种语言、翻译键规范、新语言添加流程 | `i18n-guide` | | **主题系统** | `docs/features/theme-system.md` | 6 种预设主题、亮暗模式、CSS 变量、防闪烁 | `design-tokens` | | **UI 组件** | `docs/features/ui-components.md` | shadcn/ui 组件清单、自定义组件、导入路径 | `component-dev` | ### 元文件 | 文档 | 路径 | 说明 | | ------------ | ---------------------------- | -------------------- | | **文档模板** | `docs/features/_template.md` | 新功能文档的标准模板 | | **迁移状态** | `docs/migrations/status.md` | 各模块迁移完成度追踪 | ## 使用指南 ### 1. 开发新功能前 ``` 1. 检查 docs/features/ 是否有对应文档 2. 有 → 阅读文档,了解架构设计和已有实现 3. 无 → 使用 _template.md 创建新文档,在开发完成后补充 ``` ### 2. 修改现有功能时 ``` 1. 阅读对应的 feature doc,确认修改不偏离设计意图 2. 完成修改后,同步更新文档中的: - 文件路径(如有新增/移动) - 数据结构(如有字段变更) - API 接口(如有新增/修改) - 迁移状态(如有进展) - 版本号和更新日期 ``` ### 3. 文档与 Skill 的关系 Feature docs 提供**模块级详细设计**(具体到文件路径、数据结构、API 端点),而 Skills 提供**跨模块开发规范**(如代码风格、组件开发模式、安全实践)。两者互补: - **Feature docs** → "这个模块怎么实现的,涉及哪些文件" - **Skills** → "实现时应遵循什么规范和最佳实践" ### 4. 创建新文档 使用模板 `docs/features/_template.md`,确保包含: - 功能 ID、版本、状态 - 架构设计和数据流 - 核心文件路径清单 - 关键数据结构 - API 接口 - i18n 翻译键 - 迁移检查清单 ## 各文档关键信息速查 ### listing-module.md 要点 - **核心 Hook**: `packages/core/hooks/useListingForm.ts`(表单状态、验证、提交) - **商品类型**: PHYSICAL_GOOD、DIGITAL_GOOD、SERVICE、RWA_TOKEN、CRYPTOCURRENCY - **页面**: `apps/web/src/app/listing/new/page.tsx` 和 `edit/[slug]/page.tsx` - **注意**: `buildRequestData()` 是 `useListingForm` 内部函数,不对外暴露 ### shipping-profiles.md 要点 - **类型定义**: `packages/core/types/shippingConfig.ts`(不是 shipping.ts) - **核心 Hook**: `packages/core/hooks/useShippingProfiles.ts` - **组件目录**: `apps/web/src/components/Shipping/`(12 个组件) - **后端**: Protobuf 定义在 `pkg/orders/mbzpb/listing.proto` ### wallet-integration.md 要点 - **核心 Hook**: `packages/core/hooks/useWallet.ts`(基于 AppKit) - **服务目录**: `packages/core/services/payment/`(不是 wallet/) - **Escrow**: 独立在 `escrow.ts`,不在 useWallet 中 - **Provider**: 必须在 `AppKitProvider` 内使用 ### account-binding.md 要点 - **服务**: `packages/core/services/auth/accountBinding.ts` - **支持的 OAuth**: Discord、Telegram、Google、GitHub、Apple、WeChat - **认证中心**: Casdoor ### i18n.md 要点 - **核心 Hook**: `packages/core/hooks/useI18n.ts` - **翻译文件**: `packages/core/i18n/locales/{en,zh,ja,ko,es,fr,de,ru,pt}.ts` - **额外导出**: `language`/`setLanguage`(locale 别名)、`supportedLocales`、`localeInfo` ### theme-system.md 要点 - **核心模块**: `packages/core/theme/`(types.ts, themes.ts, useTheme.ts) - **6 种主题**: classic, crypto, business, cyberpunk, nature, luxury - **防闪烁**: 内联脚本在 layout.tsx 中 ### ui-components.md 要点 - **shadcn/ui**: `apps/web/src/components/ui/`(20+ 组件) - **自定义组件**: `@mobazha/ui` 包 - **导入**: `import { Button } from '@/components/ui'` ### PG-201_STORE_BRANDING_DESIGN.md 要点 - **核心类型**: `packages/core/types/storeConfig.ts`(Discriminated Union,`StoreSection` 严格绑定 Props) - **渲染引擎**: `apps/web/src/components/store-sections/SectionRenderer.tsx`(Server Component,SSR) - **主题提供者**: `apps/web/src/components/store-sections/StoreThemeProvider.tsx`(WCAG AA 对比度安全) - **Admin 编辑器**: `apps/web/src/components/store-editor/`(拖拽排序、调色板、实时预览) - **后端 API**: `GET/PUT /v1/settings/storefront` (owner) + `GET /v1/settings/storefront/{peerID}` (public) - **存储**: NodeSettings key-value(key=`store_config`) - **注意**: RichTextSection 必须是 `'use client'`(DOMPurify 需要 DOM) - **注意**: store-tabs 是系统级 Section,不可删除,只可排序和隐藏 - **工作分支**: `feature/pg-tier2-branding` | Worktree: `mobazha-unified-tier2` ### settings-redesign.md 要点 - **核心变更**: 从 SettingsDrawer 弹框模式迁移到 `/settings/*` 页面路由模式 - **布局**: Shopify Settings Layout — `SettingsSection` 组件,左列描述(2fr) + 右列表单卡片(5fr) - **组件目录**: `apps/web/src/components/SettingsContent/`(各 Section 的内容组件) - **布局组件**: `apps/web/src/components/SettingsLayout/`(SettingsSection, SaveBar, PageHeader) - **Hooks**: `packages/core/hooks/use{Section}Settings.ts`(每个 Section 的业务逻辑) - **5 Phase 改造**: P0 基础组件 → P1 General 样板 → P2 全部迁移 → P3 切换入口+清理 → P4 打磨 → P5 AI - **Cursor Rule**: `.cursor/rules/settings-redesign.mdc`(改动 settings 文件时自动应用) - **禁止**: 在 SettingsDrawer 中新增功能、使用 `openSettings()` 弹框