CLAUDE.md 3.99 KB

CLAUDE.md

This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.

项目概述

ArenaSK — AI Skill 竞技平台 + 多智能体自主开发系统。使用 Node.js + Claude CLI 实现 Skill 的创建、评测、进化和管理。

快速启动

# 安装
npm install && cd server && npm install && cd ../web && npm install

# 开发模式 (前后端分离)
npm run dev
# 后端: localhost:3000 | 前端: localhost:5173

# 生产启动
bash start.sh

常用命令

npm run dev              # 启动后端 + 前端 (开发)
npm run server:dev       # 仅后端 (localhost:3000)
npm run web              # 仅前端 (localhost:5173, proxy→3000)
npm run web:build        # 编译前端 → web/dist/
npm test                 # 运行 vitest
npm run skills:sync      # 同步 Skill 到 CLI 配置目录

架构

技术栈

  • 后端: Node.js + Express + WebSocket + SQLite (better-sqlite3)
  • 前端: Vue 3 + Vite + vue-router + vue-i18n (6 语言)
  • 数据: SQLite FTS5 全文搜索, 无 PostgreSQL
  • AI: Claude CLI (本地进程)
  • 包管理: pnpm workspace (monorepo)

目录结构

目录 说明
server/index.js Express 入口 (API + WS + Plugin)
server/routes/ 11 个 API 路由模块
server/services/ 16 个业务服务 (skill-db, job-manager 等)
server/src/core/ 核心引擎 (orchestrator, master-session, agent-manager)
server/src/plugins/ 插件系统 (PluginManager, channel monitor)
web/src/views/ 21 个 Vue 页面组件
skills/ 系统级 Skill 定义 (19 个)
scripts/ 运维脚本
packages/ 子包 (acp-core, evolution 等)

关键 API 路由

路径 说明
/api/open/skills Open API: Skill 搜索/下载
/api/open/arena/leaderboard Arena 排行榜
/api/innovator/skills Skill 管理 (Admin)
/api/master/chat Master Agent 对话 (SSE)
/api/auth/* 认证 (JWT + GitHub OAuth)
/ws/claude Claude 对话 (WebSocket)

数据存储

  • data/skills/ — 27,000+ Skill 目录
  • data/skills.sqlite — Skill 主数据库 (FTS5)
  • data/benchmark.sqlite — Benchmark 运行数据
  • data/users.sqlite — 用户数据

配置文件

文件 说明
.env 环境变量 (密钥、目录、CORS)
server/config.js 服务器配置
server/config/taxonomy.js 三维标签分类

注意事项

  • 数据库使用 SQLite (better-sqlite3),无需 PostgreSQL
  • 生产环境 Express 同时提供 API 和 web/dist/ 静态文件
  • start.sh 一键启动: 同步 Skill → 编译前端 → 启动 Server → 启动 Bot
  • Claude CLI 使用 --dangerously-skip-permissions 自动批准模式
  • Skill 目录在 data/skills/(代码仓库外部),通过 config.skillsDataDir 配置

!WARNING Master Agent 必读: 你目前存在一个已知的底层 Tool Calling JSON 解析缺陷。当你试图在 Bash tool 中使用带有多重双引号的复杂命令(例如 curl -d '{"id":"lemonv", "name":"Lemonv"}')时,你的 JSON 转义会崩溃并导致你陷入"修复格式"的无限死循环,最终进程会被强制终止退出 (code=143)。 解决方案: 任何需要提交复杂 Payload (如 JSON) 的操作,绝对禁止直接在 Bash 的 command 参数里写 inline JSON 字符串。 如果你要创建公司或执行类似 API 请求,必须先通过写入简单的 shell 脚本将 JSON 写入一个 /tmp/ 目录下的 .json 文件(确保你的 JSON 是单行紧凑格式/严格转义换行符,不要包含真回车换行 \n,以免引起 SyntaxError: Bad control character 崩溃),然后再通过 curl -d @/tmp/payload.json 发送。

【创建公司/招聘的正确方式示例】 创建 /tmp/lemonv.json,然后执行 Bash: curl -X POST http://localhost:3000/api/company/create -H "Content-Type: application/json" -d @/tmp/lemonv.json