From e41f20ea6a6ca599b0d704140f41790df6fa44d1 Mon Sep 17 00:00:00 2001 From: Yep_Q Date: Mon, 8 Sep 2025 05:00:37 +0800 Subject: [PATCH] =?UTF-8?q?docs:=20=E6=B7=BB=E5=8A=A0=20Git=20=E8=87=AA?= =?UTF-8?q?=E5=8A=A8=E6=8F=90=E4=BA=A4=E8=A7=84=E8=8C=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 任务详情: - 在 CLAUDE.md 中添加了 Git 提交规范章节 - 定义了每次任务完成后的自动提交流程 - 规范了提交信息格式(包含任务类型、描述和详细说明) - 提供了自动化脚本示例 - 修改文件: CLAUDE.md - 新增文件: .claude/, .mcp.json - 影响功能: 项目文档和开发流程规范 --- .claude/settings.local.json | 68 +++++++++++++++ .mcp.json | 71 ++++++++++++++++ CLAUDE.md | 161 ++++++++++++++++++++++++++++++++++++ 3 files changed, 300 insertions(+) create mode 100644 .claude/settings.local.json create mode 100644 .mcp.json create mode 100644 CLAUDE.md diff --git a/.claude/settings.local.json b/.claude/settings.local.json new file mode 100644 index 00000000..73a602e7 --- /dev/null +++ b/.claude/settings.local.json @@ -0,0 +1,68 @@ +{ + "permissions": { + "allow": [ + "Bash(mkdir:*)", + "Bash(rm:*)", + "Bash(pip install:*)", + "Bash(python3:*)", + "Bash(source:*)", + "Bash(/usr/bin/python3:*)", + "Bash(python:*)", + "Bash(cat:*)", + "mcp__promptx__promptx_init", + "mcp__claude-code-mcp__claude_code", + "mcp__serena__activate_project", + "mcp__serena__check_onboarding_performed", + "mcp__serena__onboarding", + "mcp__serena__list_dir", + "mcp__serena__read_file", + "mcp__serena__search_for_pattern", + "mcp__serena__execute_shell_command", + "mcp__serena__think_about_collected_information", + "mcp__serena__write_memory", + "mcp__serena__list_memories", + "Bash(pip3 install:*)", + "Bash(chmod:*)", + "Bash(grep:*)", + "Bash(pip install pymysql pyyaml requests)", + "Bash(python3:*)", + "Bash(grep:*)", + "Bash(cat:*)", + "Bash(mv:*)", + "Bash(timeout 120 python src/test/2025-08-14_模型对比测试/model_comparison_test.py)", + "Bash(timeout 60 python src/test/2025-08-14_模型对比测试/test_deepseek_professional.py)", + "mcp__serena__create_text_file", + "mcp__serena__replace_regex", + "Bash(mysql:*)", + "Bash(tree:*)", + "Bash(pkill:*)", + "mcp__serena__replace_symbol_body", + "Bash(timeout 600 python3 src/就业管家首页/main.py)", + "mcp__serena__find_file", + "Bash(/Users/xiaoqi/Documents/Dev/Project/2025-08-12_Saas数据生成/venv/bin/python3 /Users/xiaoqi/Documents/Dev/Project/2025-08-12_Saas数据生成/src/就业管家首页/main.py)", + "Bash(/Users/xiaoqi/Documents/Dev/Project/2025-08-12_Saas数据生成/venv/bin/python3 run_full_generation.py)", + "Bash(/Users/xiaoqi/Documents/Dev/Project/2025-08-12_Saas数据生成/run.sh)", + "Bash(. venv/bin/activate)", + "Bash(./venv/bin/python3:*)", + "Bash(/Users/xiaoqi/Documents/Dev/Project/2025-08-12_Saas数据生成/venv/bin/python3 src/就业管家首页/main.py)", + "Bash(/Users/xiaoqi/Documents/Dev/Project/2025-08-12_Saas数据生成/venv/bin/python3:*)", + "mcp__sequential-thinking__sequentialthinking", + "Bash(test:*)" + ], + "defaultMode": "acceptEdits", + "additionalDirectories": [ + "/Users/xiaoqi/Documents" + ] + }, + "enableAllProjectMcpServers": true, + "enabledMcpjsonServers": [ + "context7", + "browser-tools", + "claude-code-mcp", + "promptx", + "playwright", + "sequential-thinking", + "feishu-api", + "shadcn-ui-server" + ] +} \ No newline at end of file diff --git a/.mcp.json b/.mcp.json new file mode 100644 index 00000000..7ca0501f --- /dev/null +++ b/.mcp.json @@ -0,0 +1,71 @@ +{ + "mcpServers": { + "context7": { + "type": "stdio", + "command": "npx", + "args": [ + "-y", + "@upstash/context7-mcp" + ], + "env": {} + }, + "browser-tools": { + "command": "npx", + "args": [ + "-y", + "@agentdeskai/browser-tools-mcp@latest" + ], + "enabled": true + }, + "claude-code-mcp": { + "command": "npx", + "args": [ + "-y", + "@steipete/claude-code-mcp@latest" + ] + }, + "promptx": { + "command": "npx", + "args": [ + "-y", + "-f", + "--registry", + "https://registry.npmjs.org", + "dpml-prompt@beta", + "mcp-server" + ] + }, + "playwright": { + "command": "npx", + "args": [ + "-y", + "@playwright/mcp@latest" + ], + "env": {} + }, + "sequential-thinking": { + "command": "npx", + "args": [ + "-y", + "@modelcontextprotocol/server-sequential-thinking" + ] + }, + "feishu-api": { + "command": "npx", + "args": [ + "-y", + "apifox-mcp-server@latest", + "--project-id=6808546" + ], + "env": { + "APIFOX_ACCESS_TOKEN": "APS-unMJRsbd0NZeaqd99nAIhdN63mVPUkzX" + } + }, + "shadcn-ui-server": { + "command": "npx", + "args": [ + "@heilgar/shadcn-ui-mcp-server" + ] + } + } +} \ No newline at end of file diff --git a/CLAUDE.md b/CLAUDE.md new file mode 100644 index 00000000..8d92a870 --- /dev/null +++ b/CLAUDE.md @@ -0,0 +1,161 @@ +# CLAUDE.md + +This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository. + +## 项目概述 + +这是一个 n8n 工作流自动化平台的演示项目。n8n 源代码位于 `n8n-n8n-1.109.2/` 目录下。 + +## 常用命令 + +### 开发环境设置 +```bash +cd n8n-n8n-1.109.2 +pnpm install # 安装依赖 +``` + +### 构建项目 +```bash +cd n8n-n8n-1.109.2 +pnpm build > build.log 2>&1 # 构建所有包并重定向输出到日志文件 +tail -n 20 build.log # 查看构建日志的最后几行 +``` + +### 运行 n8n +```bash +cd n8n-n8n-1.109.2 +pnpm start # 启动 n8n 服务器 +# 或使用 npx +npx n8n +# 或使用 Docker +docker run -it --rm --name n8n -p 5678:5678 -v n8n_data:/home/node/.n8n docker.n8n.io/n8nio/n8n +``` + +### 测试 +```bash +cd n8n-n8n-1.109.2 +pnpm test # 运行所有测试 +pnpm test:affected # 运行受影响的测试 +pnpm dev:e2e # 开发模式下的 E2E 测试 +``` + +### 代码质量检查 +```bash +cd n8n-n8n-1.109.2 +pnpm lint # 代码检查 +pnpm typecheck # 类型检查 +pnpm format # 格式化代码 +``` + +## 项目结构 + +``` +. +├── n8n-n8n-1.109.2/ # n8n 源代码目录 +│ ├── packages/ # monorepo 包结构 +│ │ ├── cli/ # CLI 和后端服务器 +│ │ ├── core/ # 工作流执行引擎 +│ │ ├── editor-ui/ # Vue 3 前端应用 +│ │ ├── nodes-base/ # 内置节点集成 +│ │ ├── workflow/ # 核心工作流接口 +│ │ └── @n8n/ # 共享包 +│ ├── docker/ # Docker 相关配置 +│ └── cypress/ # E2E 测试 +├── .git/ # Git 仓库 +└── .vscode/ # VSCode 配置 +``` + +## 技术栈 + +- **后端**: Node.js + TypeScript + Express + TypeORM +- **前端**: Vue 3 + TypeScript + Vite + Pinia +- **包管理**: pnpm workspaces + Turbo +- **测试**: Jest (单元测试) + Playwright (E2E) +- **数据库**: SQLite/PostgreSQL/MySQL (通过 TypeORM) + +## 开发注意事项 + +1. **始终使用 pnpm** 而不是 npm 或 yarn +2. **在 n8n-n8n-1.109.2 目录下执行命令** +3. **运行测试前先进入对应的包目录** +4. **提交代码前运行 lint 和 typecheck** +5. **构建命令输出重定向到日志文件以便查看错误** + +## Git 提交规范 + +### 自动提交要求 +**重要**: 每次完成任务后,必须自动执行 Git 提交到 `My_N8N` 分支。 + +#### 提交流程 +1. **确保在正确分支** + ```bash + git checkout My_N8N + ``` + +2. **添加所有更改** + ```bash + git add . + ``` + +3. **提交更改**(使用规范化的提交信息) + ```bash + git commit -m "[任务类型]: 任务描述 + + 详细说明: + - 完成的具体工作内容 + - 修改的文件列表 + - 影响的功能模块" + ``` + +#### 提交信息格式 +提交信息必须包含以下要素: +- **任务类型**: `feat`(新功能)、`fix`(修复)、`docs`(文档)、`style`(格式)、`refactor`(重构)、`test`(测试)、`chore`(杂项) +- **任务描述**: 简洁明了的任务概述(50字符以内) +- **详细说明**: 具体完成的工作内容 + +#### 示例提交信息 +```bash +git commit -m "feat: 添加用户认证模块 + +详细说明: +- 实现了登录/注册功能 +- 添加了JWT令牌验证 +- 修改文件: auth.controller.ts, auth.service.ts +- 影响模块: 用户认证系统" +``` + +### 自动化脚本 +每次任务完成后,执行以下命令序列: +```bash +# 切换到项目根目录 +cd /Users/xiaoqi/Documents/Dev/Project/2025-09-08_n8nDEMO演示 + +# 确保在正确的分支 +git checkout My_N8N + +# 查看当前状态 +git status + +# 添加所有更改 +git add . + +# 提交更改(根据实际任务内容修改提交信息) +git commit -m "[任务类型]: [任务描述] + +任务详情: +- [具体完成的工作] +- [修改的文件] +- [影响的功能]" + +# 查看提交历史 +git log --oneline -5 +``` + +## n8n 特定指南 + +参考 `n8n-n8n-1.109.2/CLAUDE.md` 获取更详细的 n8n 开发指南,包括: +- TypeScript 最佳实践 +- 错误处理规范 +- 前端开发约定 +- 测试编写指南 +- Git 工作流程 \ No newline at end of file