Skip to main content

auto-develop

OPC-Starter 智能开发技能。AI 亲和的 React Boilerplate 项目开发规范,支持动态上下文感知、TDD 驱动开发、Agent Studio 扩展。适用于认证系统、组织架构、Agent 工具、数据同步等模块的迭代开发。

Informations de source

Dépôt
alibaba/opc-starter
Dernière activité de la source
6 mars 2026 à 09:36
Langue détectée de SKILL.md
chinois
Étoiles
87
Forks
15

Options d'installation

Le prompt qui vérifie d'abord la source est sélectionné par défaut. Vous pouvez passer à une commande directe ou télécharger une copie locale.

Vérifiez les fichiers source

Lisez SKILL.md et les fichiers associés affichés par SkillsMP avant de décider de l'installer.

Explorateur de fichiers
8 fichiers

Affichage de SKILL.md

SKILL.md
Instructions source · Aperçu en lecture seule
name
auto-develop
description
OPC-Starter 智能开发技能。AI 亲和的 React Boilerplate 项目开发规范,支持动态上下文感知、TDD 驱动开发、Agent Studio 扩展。适用于认证系统、组织架构、Agent 工具、数据同步等模块的迭代开发。
# OPC-Starter 智能开发技能 > **项目定位**: OPC-Starter (一人公司启动器) 是一个 AI 亲和的 React Boilerplate,专为使用 Cursor、Qoder 等 AI Coding 工具的开发者设计。 > > **核心理念**: 像高级研发专家 Amelia 一样执行 —— 测试即规范,代码即实现,精准定位,无冗余输出。 --- ## 🎯 动态上下文系统 ### 上下文感知规则 根据任务类型自动加载相关文档和约束,避免无关信息干扰。 | 任务关键词 | 触发上下文 | 加载文档 | |------------|------------|----------| | `Agent`、`工具`、`Tool`、`A2UI` | Agent Studio 开发 | `AGENTS.md` → Agent 规范章节 | | `组件`、`页面`、`UI`、`样式` | 前端 UI 开发 | `references/coding-constraints.md` → 设计系统 | | `数据库`、`SQL`、`表`、`字段` | 数据库变更 | `references/db-sync-checklist.md` | | `Supabase`、`MCP`、`后端` | Supabase 后端操作 | SKILL.md → Supabase MCP 规范章节 | | `测试`、`TDD`、`Cypress`、`Vitest` | 测试开发 | `references/tdd-workflow.md` | | `Bug`、`修复`、`异常`、`报错` | 问题排查 | `references/troubleshooting.md` | | `架构`、`模块`、`服务` | 系统设计 | `docs/Architecture.md` | ### 执行前自检 开始任务前,检测以下条件并动态加载规则: ```yaml context_check: - keyword_match: 检测任务描述关键词 - file_scope: 检测涉及的文件路径 - change_type: 判断是新功能/Bug修复/重构 auto_load: agent_module: "app/src/components/agent/**" | "app/src/lib/agent/**" ui_module: "app/src/components/**" | "app/src/pages/**" data_module: "app/src/services/data/**" | "app/supabase/**" test_module: "**/*.test.ts" | "**/*.spec.ts" | "cypress/**" ``` --- ## 📊 项目核心架构 ### 技术栈 | 技术 | 版本 | 注意事项 | |------|------|----------| | React | 19.1 | 最新稳定版 | | TypeScript | 5.9 | 严格类型 | | Vite | 7.1 | 构建工具 | | **Tailwind CSS** | **4.1** | ⚠️ 必须使用 v4 语法 | | Supabase | 2.80 | Auth + Storage + Realtime + Edge Functions | | Zustand | 5.0 | 状态管理 | | **Vitest** | **4.0** | 单元测试框架 | | **Cypress** | **15.7** | E2E 测试框架 | | **Qwen-Plus** | via 百炼 API | Agent LLM(通义千问) | | **A2UI** | v0.8 | Agent 动态 UI 协议 | ### 目录结构 ``` opc-starter/ ├── app/ # 主应用 │ ├── src/ │ │ ├── auth/ # 认证模块 │ │ ├── components/ │ │ │ ├── agent/ # Agent Studio ⭐ │ │ │ │ └── a2ui/ # A2UI 渲染系统 │ │ │ ├── business/ # 业务组件 │ │ │ ├── layout/ # 布局组件 │ │ │ ├── organization/ # 组织架构 │ │ │ └── ui/ # 基础 UI (shadcn) │ │ ├── pages/ # 页面组件 │ │ ├── services/ │ │ │ └── data/ # DataService (核心) ⭐ │ │ ├── stores/ # Zustand Store │ │ ├── lib/ │ │ │ ├── agent/ # Agent 客户端 ⭐ │ │ │ │ └── tools/ # 前端工具执行器 │ │ │ └── supabase/ # Supabase 客户端 │ │ ├── hooks/ # 自定义 Hooks │ │ ├── types/ # TypeScript 类型 │ │ └── mocks/ # MSW Mock │ └── supabase/ │ ├── functions/ │ │ └── ai-assistant/ # Agent SSE 网关 ⭐ │ └── setup.sql # 数据库脚本 (所有变更集中于此) ├── docs/ │ ├── Architecture.md # 系统架构 │ └── Epics.yaml # 项目进度 ├── _bmad/ # BMAD 方法论 (可选参考) └── AGENTS.md # AI Coding 快速指南 ``` ### 核心能力模块 | 模块 | 关键文件 | 说明 | |------|----------|------| | 认证系统 | `app/src/auth/` | Supabase Auth + JWT | | 组织架构 | `app/src/components/organization/` | 多层级团队、成员、角色 | | **Agent Studio** | `app/src/components/agent/` | 自然语言 AI 助手 ⭐ | | 数据同步 | `app/src/services/data/DataService.ts` | IndexedDB + Realtime | | 个人中心 | `app/src/pages/ProfilePage.tsx` | 用户信息、头像 | --- ## 🔴🟢🔵 TDD 核心原则 ### 红-绿-重构循环 ``` ┌─────────────────────────────────────────────────────────────┐ │ TDD 循环 (每个功能点) │ │ │ │ 🔴 RED 🟢 GREEN 🔵 REFACTOR │ │ ┌─────────┐ ┌─────────┐ ┌─────────┐ │ │ │ 写失败 │────▶│ 写最小 │────▶│ 优化 │──┐ │ │ │ 的测试 │ │ 实现代码 │ │ 重构 │ │ │ │ └─────────┘ └─────────┘ └─────────┘ │ │ │ ▲ │ │ │ └────────────────────────────────────────┘ │ │ (下一个功能点) │ └─────────────────────────────────────────────────────────────┘ ``` | 阶段 | 目标 | 规则 | |------|------|------| | 🔴 RED | 编写失败的测试 | 测试必须明确表达需求意图 | | 🟢 GREEN | 写最小代码通过测试 | 只写刚好让测试通过的代码 | | 🔵 REFACTOR | 优化代码结构 | 测试保持通过,消除重复 | ### 测试先行原则 ⚠️ MANDATORY ``` ❌ 禁止:先写代码再补测试 ❌ 禁止:提交没有测试覆盖的新功能 ❌ 禁止:修改代码后不运行测试就提交 ✅ 必须:新功能先写测试用例 ✅ 必须:Bug 修复先写复现测试 ✅ 必须:每次提交前运行完整测试套件 ``` ### 测试金字塔 | 层级 | 测试类型 | 覆盖目标 | 运行频率 | |------|----------|----------|----------| | 底层 | 单元测试 (Vitest) | 工具函数、Services、Hooks | 每次保存 | | 中层 | 集成测试 (Vitest) | DataService、Store 交互 | 每次提交 | | 顶层 | E2E 测试 (Cypress) | 登录、核心用户流程 | PR 合并前 | --- ## 🤖 Agent Studio 开发规范 > 当任务涉及 Agent 相关开发时,自动加载此章节。 ### 架构流程 ``` 用户 ←→ AgentWindow (悬浮对话框) ↓ useAgentChat Hook ↓ SSE Client ←→ ai-assistant (Edge Function) ↓ ↓ Tool Executor Qwen-Plus (百炼 API) ↓ A2UI Renderer (动态 UI) ``` ### 核心文件 | 文件 | 职责 | |------|------| | `app/src/components/agent/AgentWindow.tsx` | 悬浮对话窗口 | | `app/src/hooks/useAgentChat.ts` | Agent 对话状态管理 | | `app/src/lib/agent/sseClient.ts` | SSE 流式客户端 | | `app/src/lib/agent/toolExecutor.ts` | 本地工具执行器 | | `app/src/components/agent/a2ui/A2UIRenderer.tsx` | A2UI 组件渲染器 | | `app/src/components/agent/a2ui/registry.ts` | 组件白名单注册表 | | `app/supabase/functions/ai-assistant/` | Agent 后端网关 | ### 添加新 Agent Tool 1. **后端**: 在 `ai-assistant/tools.ts` 添加工具定义 (OpenAI 格式) 2. **前端**: 在 `app/src/lib/agent/tools/` 创建工具目录 3. **注册**: 在 `app/src/lib/agent/tools/registry.ts` 注册 4. **System Prompt**: 在 `ai-assistant/prompts/` 添加使用说明 ```typescript // 工具定义示例 (OpenAI 格式) { type: "function", function: { name: "myNewTool", description: "工具描述", parameters: { type: "object", properties: { /* ... */ }, required: ["param1"], }, }, } ``` ### 添加新 A2UI 组件 1. 在 `app/src/components/agent/a2ui/components/` 创建组件 2. 在 `registry.ts` 注册组件 (白名单模式) 3. 在 `app/src/types/a2ui.ts` 添加类型定义 ```typescript // registry.ts 注册示例 export const A2UI_REGISTRY: A2UIComponentRegistry = { 'my-component': MyComponent, }; ``` ### A2UI Action ID 规范 | 类别 | Action ID 格式 | 示例 | |------|---------------|------| | 导航 | `navigation.*` | `navigation.goTo` | | 用户 | `user.*` | `user.updateProfile` | | 组织 | `org.*` | `org.createTeam` | ### Mock LLM 测试 使用 MSW 模拟 Agent 响应: ```typescript // app/src/mocks/handlers/agentHandlers.ts http.post('*/functions/v1/ai-assistant', async ({ request }) => { // 返回 SSE 流式响应 }); ``` --- ## 🎨 设计系统规范 > 当任务涉及 UI 组件开发时,自动加载此章节。 ### Tailwind CSS v4 语法 (Mandatory) ```tsx // ❌ 禁止:v2/v3 语法 className="bg-opacity-50 bg-gradient-to-r" // ✅ 正确:v4 语法 className="bg-black/50 bg-linear-to-r" ``` | 禁止 (v2/v3) | 使用 (v4) | |--------------|-----------| | `bg-opacity-*` | `bg-color/opacity` | | `bg-gradient-to-*` | `bg-linear-to-*` | ### 语义化颜色 (暗色模式适配) **核心原则**: 使用语义化颜色,禁止硬编码颜色值。 | 语义化颜色 | 用途 | ❌ 禁止使用 | |------------|------|-------------| | `bg-background` | 页面背景 | `bg-gray-50`, `bg-white` | | `bg-card` | 卡片/容器背景 | `bg-white` | | `text-foreground` | 主要文字 | `text-gray-900`, `text-black` | | `text-muted-foreground` | 次要文字 | `text-gray-500` | | `border` | 边框 | `border-gray-200` | | `bg-primary` | 主色按钮 | `bg-blue-600` | | `bg-destructive` | 危险操作 | `bg-red-600` | ```tsx // ❌ 禁止:硬编码颜色 <div className="bg-white text-gray-900 border-gray-200"> // ✅ 正确:语义化颜色 <div className="bg-card text-foreground border"> ``` ### 移动端覆盖组件 ⚠️ CRITICAL **Sidebar、Modal、Dropdown 等覆盖层必须使用显式颜色 + `dark:` 前缀** ```tsx // ❌ 错误:CSS 变量在移动端覆盖层可能失效 <aside className="bg-card text-foreground"> // ✅ 正确:显式颜色 <aside className="bg-white dark:bg-slate-900 text-gray-900 dark:text-gray-100"> ``` --- ## 💾 数据访问规范 ### DataService 统一访问 ```typescript // ✅ 正确:通过 DataService 访问 import { dataService } from '@/services/data/DataService' await dataService.getAll('profiles') // ❌ 禁止:直接访问 import { supabase } from '@/lib/supabase/client' // 禁止 ``` ### 数据流架构 ``` ┌─────────────────────────────────────────────────┐ │ UI Layer → Zustand Stores → DataService │ │ │ │ │ ┌──────────────┼──────────┐ │ │ │ IndexedDB │ │ │ │ • 读: 100% 本地 │ │ │ │ • 写: 乐观更新 │ │ │ │ • 同步: Realtime │ │ │ └──────────────┼──────────┘ │ │ │ │ │ ┌──────────────┼──────────┐ │ │ │ Supabase │ │ │ │ • Postgres Changes │ │ │ └─────────────────────────┘ │ └─────────────────────────────────────────────────┘ ``` ### SQL 变更集中管理 所有数据库变更 → `app/supabase/setup.sql`(禁止创建独立 SQL 文件) --- ## 🔌 Supabase MCP 操作规范 > 开发过程中对 Supabase 后端的状态读取和写入,**默认使用 MCP 提供的 supabase 工具**。 ### 核心原则 1. **实时状态操作** → 使用 MCP `mcp__supabase__*` 系列工具 2. **持久化变更同步** → 所有结构性变更必须同步到 `app/supabase/` 目录 ### MCP 工具使用场景 | 场景 | MCP 工具 | 说明 | |------|----------|------| | 查询表结构 | `mcp__supabase__list_table` | 获取数据库表列表 | | 查询列信息 | `mcp__supabase__list_columns` | 获取表字段详情 | | 执行 SQL | `mcp__supabase__execute_sql` | 查询/修改数据 | | 用户管理 | `mcp__supabase__list_auth_users` | 认证用户列表 | | Edge Functions | `mcp__supabase__list_edge_functions` | 查看部署的函数 | | Storage 管理 | `mcp__supabase__list_storage_buckets` | 存储桶管理 | ### 变更同步规范 ``` ┌────────────────────────────────────────────────────────────┐ │ Supabase 变更同步流程 │ │ │ │ MCP 执行变更 ──┬──▶ DDL (表/RLS/函数) │ │ │ └──▶ 同步到 app/supabase/setup.sql │ │ │ │ │ └──▶ Edge Function 部署 │ │ └──▶ 同步到 app/supabase/functions/ │ └────────────────────────────────────────────────────────────┘ ``` ### 同步检查清单 | 变更类型 | 需同步位置 | 操作 |
Voir sur GitHub
Ce SKILL.md est tres volumineux, SkillsMP affiche donc ici seulement la premiere section. Voir sur GitHub