diff --git a/CLAUDE.md b/CLAUDE.md index 1e607fa..10f3c2b 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -34,10 +34,16 @@ npm run web / web:build # 前端开发 / 构建到 web/dist/ # 测试 npm test # vitest watch npm run test:unit # vitest run (CI 用) +npx vitest run path/to/foo.test.js # 跑单个测试文件 +npx vitest run -t "test name" # 按名称过滤单个测试用例 npm run test:multi-cli # multi-CLI 集成测试 npm run test:browser-logger npm run test:design-validator +# DevLoop 规范 +npm run spec:extract # 从 docs/prd/newfunction/*.html 重新生成 _spec/*.md(改完 HTML 后必须跑) +npm run spec:check # CI/pre-commit 用,校验 _spec/ 与 HTML 是否同步 + # CLI / 工具 npm run example # 单次 auto-dev:实现斐波那契 npm run example-bmi # 单次 auto-dev:BMI 程序 @@ -74,6 +80,11 @@ auto-dev "" # bin 入口 → server/src/cli/auto-dev.js | `server/src/core/` | Agent 引擎核心(orchestrator, master-session, agent-manager, scheduler, session-pool, prompt-builder, runtime-resolver, …) | | `server/src/engine/` | 进程层(command-queue, idle-timer, process-guard, run-registry, failover-error) | | `server/src/plugins/` | 插件系统(plugin-manager, agent-bridge, config-bridge, bootstrap) | +| `server/src/core/devloop/` | DevLoop 编排核心:`loop-controller.js`(createProject / callAgent / runDocsPhase / runUnit) | +| `server/services/devloop/` | DevLoop 支撑服务:path-resolver, git-vault, unit-registry(FSM), timeline-logger, bug-tracker, doc-store, changelog-writer, sse-broker | +| `server/src/tools/devloop/` | DevLoop Agent 可调用工具(coder/tester/integrator/triager/doc/persistence-tools + tool-registry + sandbox) | +| `server/routes/devloop.js` | DevLoop REST:`/api/devloop/projects` | +| `system/templates/devloop-*/` | 六个 DevLoop Agent 的 prompt 模板(pm, architect, coder, tester, integrator, triager) | | `server/src/tools/` | Master Agent 可调用的工具(call-agent, marketplace, orchestrate, train-skill, …) | | `web/src/views/` | 10 个页面:AgentChat, AgentList, CompanyDashboard, JobsPanel, OkrDashboard, PipelineEditor, QuotaMonitor, SkillsMarket, TaskTimeline, TemplateAgents | | `packages/` | `acp-core`, `agent-core`, `evolution`, `plugin-bootstrap` | @@ -94,6 +105,19 @@ auto-dev "" # bin 入口 → server/src/cli/auto-dev.js | `/api/auth/*` | JWT + GitHub OAuth | | `/ws/claude` | Claude 实时对话(仅 `index.js`) | | `/api/health` `/api/plugins` | 健康检查 / 插件状态 | +| `/api/devloop/projects` | DevLoop:创建项目 + 跑 PM/Architect(POST)、列项目 / 查状态(GET,见下) | + +### DevLoop 子系统 + +多 Agent 自动开发流水线(PM → Architect → Coder → Tester → Integrator → Triager),目前处于 P2(单 Unit 循环)阶段,正朝 P3(跨 Unit runProject)推进。 + +- **规格优先**:所有实现以 `docs/prd/newfunction/_spec/*.md` 为准(机器可读,由 `npm run spec:extract` 从同名 `*.html` 自动生成,**不要手改 `_spec/`**;改 HTML 后必须重跑 extract,否则 pre-commit hook 会拦)。跨切约定集中在 `_spec/CONVENTIONS.md`(ID 生成规则、错误响应形态、文件原子写入、并发锁策略、日志分流、命名风格)——写 DevLoop 代码前先读这份。 +- **项目根**:每个 DevLoop 项目是独立 git 仓库,由 `path-resolver.allocateProjectRoot` 分配(`sandbox` 或 `linked-*` 模式),`git-vault` 负责 init/commit,每个 Agent 收尾后自动 commit(`loop-controller.commitAfterAgent`,commit kind 按 agent 名映射:pm→prd, architect→sdd, coder/tester→code, integrator→integ, triager→triage)。 +- **Mock 模式**:P1-P2 阶段 Agent 调用默认走 `ClaudeCliProtocol({mock:true})`(`packages/acp-core/protocol/ClaudeCliProtocol.js`),不真正起 Claude CLI 子进程,而是从 `fixtures/devloop-mock/*.json` 回放固定的 chunks/files/result;显式传 `mock:false` 才会用真实 CLI。 +- **L1 单 Unit 循环**(`runUnit`,P2):Coder(implement) → Tester(test),失败时把上一次 failure + coder.log 摘要打回去重跑(retry-with-reflection),直到 tester 通过或耗尽 `retry_budget`(默认 5)。每次状态转换都过 `unit-registry` 的 FSM(coding → testing → passed/failed → blocked)。 +- **单元产物布局**:项目根下 `units/{unitId}/{spec.json, code/, contract.json, coder.log, runs/{runId}/result.json}`;跨 unit 只能读 `../{otherUnit}/contract.json`,禁止直接读别的 unit 的 `code/`(见 CONVENTIONS.md §12)。 +- **审计轨迹**:`timeline.ndjson`(append-only,永不改已写行)记录所有 Agent 调用 / commit / 状态转换事件,`bugs.ndjson` / `changelog.ndjson` 走同样的追加模式。 +- **测试**:`server/tests/devloop/**/*.test.js`(服务层 + 工具层单测)+ `server/tests/devloop/routes.test.js`(REST 层)。 ### 数据存储(SQLite,无需 PostgreSQL) @@ -119,7 +143,7 @@ auto-dev "" # bin 入口 → server/src/cli/auto-dev.js - `server/index.js` 与 `agent-server.js` 都内置了 **body-sanitizer 中间件**:在 `express.json()` 之前清掉 `\x00-\x1F` 控制字符,避免外部 Agent 通过 `curl` 传未转义换行/制表符导致的 `Bad control character` 报错。修改请求体解析链路前先看这两段。 - 模块别名 `@server` → `server/`(`module-alias` 注册),跨子包 require 时可用。 - Claude CLI 进程默认带 `--dangerously-skip-permissions`,写入受限路径前自己评估风险。 -- DevLoop 规范阅读:Coder/Architect Agent **优先读 `docs/prd/newfunction/_spec/*.md`**(机器可读规范,含 `CONVENTIONS.md` 跨切约定),需要 wireframe / SVG 图表 / 完整人类阅读版时才回查同名 `*.html`。`_spec/` 由 `npm run spec:extract` 从 HTML 自动生成,**不要手改**;改完 HTML 后必须重跑(pre-commit hook 会校验)。 +- DevLoop 详见上方「DevLoop 子系统」一节;需要 wireframe / SVG 图表 / 完整人类阅读版时才回查 `_spec/*.md` 同名的 `*.html`。 > [!WARNING] (Agentic Self-Correction Loop Prevention) > **Master Agent 必读**: 你目前存在一个已知的底层 Tool Calling JSON 解析缺陷。当你试图在 `Bash` tool 中使用带有多重双引号的复杂命令(例如 `curl -d '{"id":"lemonv", "name":"Lemonv"}'`)时,你的 JSON 转义会崩溃并导致你陷入"修复格式"的无限死循环,最终进程会被强制终止退出 (code=143)。 diff --git a/memory/daily/2026-04-02.md b/memory/daily/2026-04-02.md deleted file mode 100644 index 5beb198..0000000 --- a/memory/daily/2026-04-02.md +++ /dev/null @@ -1,119 +0,0 @@ -# 系统状态日报 — 2026-04-02 - -> 生成时间: 2026-04-02 当前 CST -> 生成者: Master Agent - ---- - -## 1. 全局概览 - -| 指标 | 数值 | 状态 | -|------|------|------| -| 存活公司数 | 1 | 正常 | -| 注册 Agent 总数 | 12 | 正常 | -| 活跃/就绪 Agent | 11 | 正常 | -| 活跃全局 Goals | 0 | — | -| 运行中 Pipeline | 0 | — | -| 异常/卡住任务 | 0 | 正常 | - ---- - -## 2. 公司状态 - -| 公司 ID | 名称 | 状态 | Agent 数 | CEO | 备注 | -|---------|------|------|----------|-----|------| -| idearun | idearun.ai | running | 4 | null | 心跳已禁用(维护模式) | -| ~~abc~~ | ~~ABC 内容创作公司~~ | ~~已删除~~ | — | — | 4/1 已关停并清理 | -| ~~ainews~~ | ~~AI News~~ | ~~已删除~~ | — | — | 4/1 已关停并清理 | - -### idearun 内部 Agent 详情 - -| Agent | 类型 | 状态 | 心跳状态 | 最后活跃 | 待办任务 | -|-------|------|------|----------|----------|----------| -| idearrun-create | specialist | active | 已禁用 | 2026-03-30 16:31 | 0 | -| qa-judge | specialist | active | 已禁用 | 2026-03-30 16:53 | 0 | -| weibo-scraper | specialist | active | 已禁用 | 2026-03-30 14:50 | 0 | -| youtube-crawler | specialist | active | 已禁用 | 2026-04-01 16:58 | 0 | - -> 注:idearun 所有 Agent 心跳均处于 `enabled=false` 状态,与全局维护策略(commit `9f15ed3`)保持一致,非异常。活跃 Agent 计数为 0 是因为心跳未启动。 - ---- - -## 3. 系统级 Agent 状态 - -| Agent | 类型 | 状态 | 最后活跃 | 待办/完成 | 备注 | -|-------|------|------|----------|-----------|------| -| master | master | ready | 2026-04-02 当前 | 1 完成 | 无待办 | -| agent-creator | specialist | ready | 2026-03-31 18:24 | 维护暂停 | 系统维护策略 | -| innovator | cxo | ready | 2026-03-31 18:23 | 维护暂停 | 系统维护策略 | -| digester | specialist | ready | 2026-03-31 18:24 | 维护暂停 | 系统维护策略 | -| evolver | specialist | ready | 2026-03-31 18:20 | 维护暂停 | 系统维护策略 | -| hunter | meta | ready | 2026-03-31 18:18 | 34 完成 | 历史任务全部闭环 | -| evolver-youtube-crawler | specialist | undefined | 2026-03-31 17:47 | 0 | youtube-crawler 训练已达标 (95/100) | -| digester-youtube-crawler | meta | ready | 2026-03-31 17:23 | 0 | 训练辅助任务已闭环 | - ---- - -## 4. 任务完成率统计 - -- **master**: 计划 3/3 完成 (100%),todo 0 pending -- **hunter**: 历史 34 项任务全部完成 (100%) - - 本日自主清理 4 项无效遗留任务(abc/trend-hunter x2、hook-editor x1、strategy-reflector x1)因目标 Agent/公司不存在已标记取消。 - - 3 项任务(idearrun-create、trend-hunter、screenwriter)因 hunter 维护暂停保持阻塞,待恢复后处理。 -- **agent-creator / innovator / digester / evolver**: 进入系统维护暂停状态,无活跃任务队列 -- **idearun 全员**: 上一批次(微博热点剧本生成+审核+YouTube爬虫就绪)已全部闭环,无遗留待办 - -**整体任务完成率**: 100%(无 pending/blocking 任务,维护暂停任务属策略性行为) - ---- - -## 5. 异常情况记录 - -| 时间 | 异常类型 | 描述 | 处理状态 | -|------|----------|------|----------| -| 2026-04-02 02:10~02:35 | 日志污染 | `plan.md` 被每 5 分钟触发的外部自动巡检 cron 密集追加 90+ 条完全重复的巡检日志,文件多次膨胀并出现格式损坏 | **已修复根因**:取消 cron job `cfdff31a`,并彻底清理重复日志 | - -### 说明 -- `agent-creator`、`innovator`、`digester`、`evolver` 的 todo.md 显示为 **"系统维护 2026-04-01"**,这是 intentional 的全局维护状态(由 `9f15ed3` 引入,用于禁用 autonomous cron 和 heartbeat 以防止 overnight IO crash),**不属于异常卡住**。 -- `idearun` 心跳全部禁用,同样是上述全局策略的一部分。 - ---- - -## 6. 自主修复/清理动作 - -| 时间 | 动作 | 结果 | -|------|------|------| -| 2026-04-01 16:40 | 关停并删除 `abc` 公司 | 数据目录已清理 | -| 2026-04-01 16:40 | 关停并删除 `ainews` 公司 | 数据目录已清理 | -| 2026-04-01 16:43 | 清理遗留目录 `system/agents/abc/` | 旧架构孤儿数据已删除 | -| 2026-04-02 02:10 | 修复 `plan.md` 末尾格式错误 | 已修正被合并的巡检日志行 | -| 2026-04-02 02:18 | 首次清理 `plan.md` 重复日志 | 去除 40+ 条冗余重复记录 | -| 2026-04-02 02:25 | 再次清理 `plan.md` 重复日志 | 去除新追加的 25+ 条冗余记录 | -| 2026-04-02 02:25 | 清理 hunter 历史遗留无效任务 | 4 项取消、3 项标注维护暂停 | -| 2026-04-02 02:35 | **取消自动巡检 cron** `cfdff31a` | 根因消除,`plan.md` 不再被重复追加 | -| 2026-04-02 当前 | `plan.md` 深度精简 | 去重并保留关键节点,从 100+ 行压缩至 25 行 | - ---- - -## 7. 健康度评估 - -| 维度 | 评分 | 说明 | -|------|------|------| -| 系统稳定性 | 优秀 | 无报错、无崩溃、无资源泄漏 | -| 任务推进度 | 优秀 | 无卡住、无 pending | -| Agent 活跃度 | 维护中 | 核心 Agent 处于策略性暂停 | -| 数据一致性 | 优秀 | 公司/Agent 注册表与文件系统一致 | - ---- - -## 8. 明日关注 - -1. 若老板有新指令,立即 dispatch 到 `idearun` 或 `agent-creator`/`innovator`。 -2. 关注 `agent-creator` / `innovator` 何时退出维护状态(取决于 `9f15ed3` 策略的调整)。 -3. `youtube-crawler` 已训练就绪(benchmark 95/100),可随时派发爬取任务。 -4. `plan.md` 重复日志污染根因已消除(cron `cfdff31a` 已取消),文件已完成深度精简。 -5. 最近一次日报生成时间:当前 CST。系统稳定在 post-maintenance 状态。 - ---- - -**结论**: 系统当前处于稳定、空闲的 post-maintenance 状态。所有历史任务已闭环,`plan.md` 日志污染根因已消除且完成深度精简。无异常需处理。本报告已覆盖至当前的最新状态。 diff --git a/server/routes/agent-chat.js b/server/routes/agent-chat.js index f5d6d97..6bf2979 100644 --- a/server/routes/agent-chat.js +++ b/server/routes/agent-chat.js @@ -1455,7 +1455,7 @@ router.post('/scaffold', async (req, res) => { * } */ // ── Task 元数据持久化目录 ── -const TASK_META_DIR = path.resolve(__dirname, '../../system/agents/.tasks'); +const TASK_META_DIR = path.resolve(__dirname, '../../system/tasklog'); if (!fs.existsSync(TASK_META_DIR)) fs.mkdirSync(TASK_META_DIR, { recursive: true }); function saveTaskMeta(taskId, meta) { diff --git a/server/services/task-service.js b/server/services/task-service.js index e7bc46e..9a143da 100644 --- a/server/services/task-service.js +++ b/server/services/task-service.js @@ -3,7 +3,7 @@ const path = require('path'); const SYSTEM_AGENTS_DIR = path.resolve(__dirname, '../../system/agents'); const COMPANIES_DIR = path.resolve(__dirname, '../../data/companies'); -const TASK_META_DIR = path.resolve(__dirname, '../../system/agents/.tasks'); +const TASK_META_DIR = path.resolve(__dirname, '../../system/tasklog'); /** * 递归扫描并读取系统中所有 Agent 的会话, diff --git a/system/agents/digester-youtube-crawler/>/mnt/lemonboss/system/templates/youtube-crawler/workspace/digest/benchmark.md b/system/agents/digester-youtube-crawler/>/mnt/lemonboss/system/templates/youtube-crawler/workspace/digest/benchmark.md deleted file mode 100644 index 32be845..0000000 --- a/system/agents/digester-youtube-crawler/>/mnt/lemonboss/system/templates/youtube-crawler/workspace/digest/benchmark.md +++ /dev/null @@ -1,261 +0,0 @@ -> # YouTube 爬虫 Skill Benchmark -> -> **版本**: 1.0.0 -> **目标 Skill**: youtube-crawler -> **基准目标**: 总分 ≥ 90 为优秀 -> -> --- -> -> ## 1. 评分维度概览 -> -> | 维度 | 权重 | 说明 | -> |------|------|------| -> | 功能完整性 | 20% | 核心字段覆盖率、数据提取完整性 | -> | API 规范使用 | 15% | YouTube Data API v3 的正确使用 | -> | 代码质量 | 15% | 代码结构、错误处理、可读性 | -> | 数据准确性 | 15% | 字段映射正确性、数据类型转换 | -> | 反爬虫处理 | 15% | 重试机制、延迟策略、错误恢复 | -> | 降级方案支持 | 10% | yt-dlp 备用方案实现 | -> | 配置灵活性 | 5% | 参数可配置性、地区/分类支持 | -> | 性能优化 | 5% | 缓存策略、配额管理 | -> -> **权重总和**: 100% -> -> --- -> -> ## 2. 详细评分标准 -> -> ### 2.1 功能完整性 (20%) -> -> 核心字段: `videoId`, `title`, `viewCount`, `channelTitle`, `thumbnails`, `publishedAt`, `url` -> -> | 分值 | 标准 | -> |------|------| -> | 90-100 | 完整提取 7 个核心字段,额外获取 likeCount、duration 等扩展字段 | -> | 70-89 | 完整提取 7 个核心字段 | -> | 50-69 | 提取 5-6 个核心字段,缺失非关键字段 | -> | 30-49 | 提取 3-4 个字段,影响基础功能 | -> | 0-29 | 提取少于 3 个字段 | -> -> **检查项**: -> - [ ] videoId 正确提取 -> - [ ] title 正确提取 -> - [ ] viewCount 正确提取并转为数字 -> - [ ] channelTitle 正确提取 -> - [ ] thumbnails 提供多个分辨率选项 -> - [ ] publishedAt ISO 8601 格式 -> - [ ] url 完整拼接 -> -> --- -> -> ### 2.2 API 规范使用 (15%) -> -> | 分值 | 标准 | -> |------|------| -> | 90-100 | 正确使用 `part` 参数、配额管理、错误码处理、遵循 rate limit | -> | 70-89 | 正确使用 API 参数,基本错误处理 | -> | 50-69 | 使用 API 但参数配置不当,浪费配额 | -> | 30-49 | API 调用存在明显问题 | -> | 0-29 | 完全错误使用 API | -> -> **检查项**: -> - [ ] 正确设置 `part=snippet,statistics,contentDetails` -> - [ ] 使用 `chart=mostPopular` 获取热门视频 -> - [ ] 支持 `regionCode` 参数 -> - [ ] 支持 `videoCategoryId` 参数 -> - [ ] 正确处理 403/429 错误码 -> -> --- -> -> ### 2.3 代码质量 (15%) -> -> | 分值 | 标准 | -> |------|------| -> | 90-100 | 模块化设计、完善异常处理、清晰注释、类型提示 | -> | 70-89 | 结构清晰、基本错误处理、可读性好 | -> | 50-69 | 功能实现但结构松散 | -> | 30-49 | 代码混乱、难以维护 | -> | 0-29 | 存在严重错误、无法运行 | -> -> **检查项**: -> - [ ] 函数拆分合理(获取/解析/格式化分离) -> - [ ] try-catch 处理网络/API 异常 -> - [ ] 输入参数校验 -> - [ ] 返回数据统一格式 -> -> --- -> -> ### 2.4 数据准确性 (15%) -> -> | 分值 | 标准 | -> |------|------| -> | 90-100 | 字段映射 100% 正确、数据类型转换准确、空值处理完善 | -> | 70-89 | 字段映射正确、基本类型转换 | -> | 50-69 | 存在轻微映射错误或类型问题 | -> | 30-49 | 存在明显数据错误 | -> | 0-29 | 数据完全不可靠 | -> -> **检查项**: -> - [ ] viewCount 转为整数(API 返回字符串) -> - [ ] thumbnails 选择最高可用分辨率 -> - [ ] publishedAt 转为 Date 对象或标准格式 -> - [ ] 处理缺失字段的默认值 -> -> --- -> -> ### 2.5 反爬虫处理 (15%) -> -> | 分值 | 标准 | -> |------|------| -> | 90-100 | 指数退避重试、请求延迟、User-Agent 轮换、429 处理 | -> | 70-89 | 基础重试机制、固定延迟 | -> | 50-69 | 简单错误重试 | -> | 30-49 | 仅捕获异常无重试 | -> | 0-29 | 无异常处理 | -> -> **检查项**: -> - [ ] 实现重试机制(至少 3 次) -> - [ ] 请求间隔 1-3 秒 -> - [ ] 正确处理 429 Too Many Requests -> - [ ] 指数退避策略 -> -> --- -> -> ### 2.6 降级方案支持 (10%) -> -> | 分值 | 标准 | -> |------|------| -> | 90-100 | API + yt-dlp 双方案,自动故障切换 | -> | 70-89 | API 为主,yt-dlp 备选,需手动切换 | -> | 50-69 | 仅实现单一方案但文档说明其他方案 | -> | 30-49 | 方案切换逻辑存在问题 | -> | 0-29 | 无任何降级方案 | -> -> **检查项**: -> - [ ] 支持 yt-dlp 备选 -> - [ ] 分类 trending URL 支持(music/gaming/movies) -> - [ ] 自动检测 API 失败并切换 -> -> --- -> -> ### 2.7 配置灵活性 (5%) -> -> | 分值 | 标准 | -> |------|------| -> | 90-100 | region、category、maxResults 全可配置、环境变量支持 | -> | 70-89 | 主要参数可配置 | -> | 50-69 | 硬编码但关键参数可改 | -> | 30-49 | 部分参数可调 | -> | 0-29 | 完全硬编码 | -> -> **检查项**: -> - [ ] regionCode 参数支持 -> - [ ] videoCategoryId 参数支持 -> - [ ] maxResults 可配置(1-50) -> - [ ] API Key 环境变量读取 -> -> --- -> -> ### 2.8 性能优化 (5%) -> -> | 分值 | 标准 | -> |------|------| -> | 90-100 | 智能缓存、配额监控、批量请求优化 | -> | 70-89 | 基础缓存实现 | -> | 50-69 | 避免重复请求 | -> | 30-49 | 无明显性能问题 | -> | 0-29 | 重复请求、浪费资源 | -> -> **检查项**: -> - [ ] trending 数据缓存(15-30 分钟) -> - [ ] 配额使用监控 -> - [ ] 避免重复 API 调用 -> -> --- -> -> ## 3. 评分阈值 -> -> | 等级 | 总分范围 | 说明 | -> |------|----------|------| -> | **优秀** | 90-100 | 生产就绪,可直接部署 | -> | **良好** | 75-89 | 功能完善,小优化后可上线 | -> | **及格** | 60-74 | 基本可用,需要改进 | -> | **不合格** | < 60 | 无法用于生产 | -> -> **目标**: 总分 ≥ 90(优秀等级) -> -> --- -> -> ## 4. 自动化测试 Checklist -> -> ### 4.1 单元测试覆盖 -> -> - [ ] API 响应解析测试 -> - [ ] yt-dlp 输出解析测试 -> - [ ] 字段映射正确性测试 -> - [ ] 错误处理测试(模拟 429/403) -> - [ ] 参数校验测试 -> -> ### 4.2 集成测试 -> -> - [ ] 端到端 trending 数据获取 -> - [ ] 多地区(US/JP/KR)测试 -> - [ ] 多分类(Music/Gaming)测试 -> - [ ] API 配额超限降级测试 -> -> ### 4.3 边界测试 -> -> - [ ] maxResults=1(最小值) -> - [ ] maxResults=50(最大值) -> - [ ] 空 API Key 处理 -> - [ ] 网络超时处理 -> - [ ] 无效 regionCode 处理 -> -> --- -> -> ## 5. 示例评分计算 -> -> ### 示例 A: 优秀实现 -> -> | 维度 | 得分 | 权重 | 加权分 | -> |------|------|------|--------| -> | 功能完整性 | 95 | 20% | 19.0 | -> | API 规范使用 | 92 | 15% | 13.8 | -> | 代码质量 | 90 | 15% | 13.5 | -> | 数据准确性 | 95 | 15% | 14.25 | -> | 反爬虫处理 | 88 | 15% | 13.2 | -> | 降级方案支持 | 90 | 10% | 9.0 | -> | 配置灵活性 | 95 | 5% | 4.75 | -> | 性能优化 | 85 | 5% | 4.25 | -> | **总分** | - | 100% | **91.75** ✅ | -> -> ### 示例 B: 及格实现 -> -> | 维度 | 得分 | 权重 | 加权分 | -> |------|------|------|--------| -> | 功能完整性 | 70 | 20% | 14.0 | -> | API 规范使用 | 65 | 15% | 9.75 | -> | 代码质量 | 60 | 15% | 9.0 | -> | 数据准确性 | 75 | 15% | 11.25 | -> | 反爬虫处理 | 50 | 15% | 7.5 | -> | 降级方案支持 | 40 | 10% | 4.0 | -> | 配置灵活性 | 50 | 5% | 2.5 | -> | 性能优化 | 40 | 5% | 2.0 | -> | **总分** | - | 100% | **60.0** ⚠️ | -> -> --- -> -> ## 6. 评分工具使用 -> -> ```bash -> # 运行完整评测 -> node bin/lemon.js skill evaluate --skill youtube-crawler --benchmark benchmark.md -> -> # 仅运行特定维度 -> node bin/lemon.js skill evaluate --skill youtube-crawler --dimension "功能完整性" -> ``` -> -> --- -> -> **生成时间**: 2026-04-01 -> **生成者**: digester-youtube-crawler diff --git a/system/agents/master/.claude/scheduled_tasks.json b/system/agents/master/.claude/scheduled_tasks.json index 91f92c1..93aefc7 100644 --- a/system/agents/master/.claude/scheduled_tasks.json +++ b/system/agents/master/.claude/scheduled_tasks.json @@ -5,7 +5,7 @@ "cron": "*/5 * * * *", "prompt": "执行系统巡检:读取 plan.md 和 todo.md,检查所有任务状态。已完成的更新标记,卡住的分析原因后自主处理(重新分发或修复),未开始的按优先级立即分发。不要请示用户,直接行动。", "createdAt": 1776052227208, - "lastFiredAt": 1776236563458, + "lastFiredAt": 1776237140678, "recurring": true }, { @@ -13,7 +13,7 @@ "cron": "*/30 * * * *", "prompt": "生成系统状态日报,统计所有 Agent 任务完成率和异常情况,写入 memory/daily/ 今日文件。", "createdAt": 1776052245083, - "lastFiredAt": 1776235255476, + "lastFiredAt": 1776237066590, "recurring": true }, { @@ -21,7 +21,7 @@ "cron": "*/5 * * * *", "prompt": "执行系统巡检:读取 plan.md 和 todo.md,检查所有任务状态。已完成的更新标记,卡住的分析原因后自主处理(重新分发或修复),未开始的按优先级立即分发。不要请示用户,直接行动。", "createdAt": 1776053193746, - "lastFiredAt": 1776236563458, + "lastFiredAt": 1776237140678, "recurring": true }, { @@ -29,7 +29,7 @@ "cron": "*/30 * * * *", "prompt": "生成系统状态日报,统计所有 Agent 任务完成率和异常情况,写入 memory/daily/ 今日文件。", "createdAt": 1776053222608, - "lastFiredAt": 1776234920433, + "lastFiredAt": 1776236761410, "recurring": true }, { @@ -37,7 +37,7 @@ "cron": "*/5 * * * *", "prompt": "执行系统巡检:读取 plan.md 和 todo.md,检查所有任务状态。已完成的更新标记,卡住的分析原因后自主处理(重新分发或修复),未开始的按优先级立即分发。不要请示用户,直接行动。", "createdAt": 1776053626720, - "lastFiredAt": 1776236563458, + "lastFiredAt": 1776237140678, "recurring": true }, { @@ -61,7 +61,7 @@ "cron": "*/5 * * * *", "prompt": "执行系统巡检:读取 plan.md 和 todo.md,检查所有任务状态。已完成的更新标记,卡住的分析原因后自主处理(重新分发或修复),未开始的按优先级立即分发。不要请示用户,直接行动。", "createdAt": 1776054205658, - "lastFiredAt": 1776236563458, + "lastFiredAt": 1776237140678, "recurring": true }, { @@ -69,7 +69,7 @@ "cron": "*/30 * * * *", "prompt": "生成系统状态日报,统计所有 Agent 任务完成率和异常情况,写入 memory/daily/ 今日文件。", "createdAt": 1776054212905, - "lastFiredAt": 1776235361836, + "lastFiredAt": 1776237167710, "recurring": true }, { @@ -77,7 +77,7 @@ "cron": "*/5 * * * *", "prompt": "执行系统巡检:读取 plan.md 和 todo.md,检查所有任务状态。已完成的更新标记,卡住的分析原因后自主处理(重新分发或修复),未开始的按优先级立即分发。不要请示用户,直接行动。", "createdAt": 1776054895100, - "lastFiredAt": 1776236563458, + "lastFiredAt": 1776237140678, "recurring": true }, { @@ -93,7 +93,7 @@ "cron": "*/5 * * * *", "prompt": "执行系统巡检:读取 plan.md 和 todo.md,检查所有任务状态。已完成的更新标记,卡住的分析原因后自主处理(重新分发或修复),未开始的按优先级立即分发。不要请示用户,直接行动。", "createdAt": 1776059191836, - "lastFiredAt": 1776236563458, + "lastFiredAt": 1776237140678, "recurring": true }, { @@ -101,7 +101,7 @@ "cron": "*/30 * * * *", "prompt": "生成系统状态日报,统计所有 Agent 任务完成率和异常情况,写入 memory/daily/ 今日文件。", "createdAt": 1776059200746, - "lastFiredAt": 1776235226389, + "lastFiredAt": 1776237045568, "recurring": true }, { @@ -109,7 +109,7 @@ "cron": "*/5 * * * *", "prompt": "执行系统巡检:读取 plan.md 和 todo.md,检查所有任务状态。已完成的更新标记,卡住的分析原因后自主处理(重新分发或修复),未开始的按优先级立即分发。不要请示用户,直接行动。", "createdAt": 1776084696837, - "lastFiredAt": 1776236563458, + "lastFiredAt": 1776237140678, "recurring": true }, { @@ -117,7 +117,7 @@ "cron": "*/30 * * * *", "prompt": "生成系统状态日报,统计所有 Agent 任务完成率和异常情况,写入 memory/daily/ 今日文件。", "createdAt": 1776084700624, - "lastFiredAt": 1776235145120, + "lastFiredAt": 1776236938308, "recurring": true }, { @@ -125,7 +125,7 @@ "cron": "*/5 * * * *", "prompt": "执行系统巡检:读取 plan.md 和 todo.md,检查所有任务状态。已完成的更新标记,卡住的分析原因后自主处理(重新分发或修复),未开始的按优先级立即分发。不要请示用户,直接行动。", "createdAt": 1776085832378, - "lastFiredAt": 1776236563458, + "lastFiredAt": 1776237140678, "recurring": true }, { @@ -133,7 +133,7 @@ "cron": "*/30 * * * *", "prompt": "生成系统状态日报,统计所有 Agent 任务完成率和异常情况,写入 memory/daily/ 今日文件。", "createdAt": 1776085832383, - "lastFiredAt": 1776235118052, + "lastFiredAt": 1776236917195, "recurring": true }, { @@ -141,7 +141,7 @@ "cron": "*/5 * * * *", "prompt": "执行系统巡检:读取 plan.md 和 todo.md,检查所有任务状态。已完成的更新标记,卡住的分析原因后自主处理(重新分发或修复),未开始的按优先级立即分发。不要请示用户,直接行动。", "createdAt": 1776118330655, - "lastFiredAt": 1776236563458, + "lastFiredAt": 1776237140678, "recurring": true }, { @@ -149,7 +149,7 @@ "cron": "*/30 * * * *", "prompt": "生成系统状态日报,统计所有 Agent 任务完成率和异常情况,写入 memory/daily/ 今日文件。", "createdAt": 1776118330660, - "lastFiredAt": 1776234858256, + "lastFiredAt": 1776236658152, "recurring": true }, { @@ -157,7 +157,7 @@ "cron": "*/5 * * * *", "prompt": "执行系统巡检:读取 plan.md 和 todo.md,检查所有任务状态。已完成的更新标记,卡住的分析原因后自主处理(重新分发或修复),未开始的按优先级立即分发。不要请示用户,直接行动。", "createdAt": 1776120116893, - "lastFiredAt": 1776236563458, + "lastFiredAt": 1776237140678, "recurring": true }, { @@ -165,7 +165,7 @@ "cron": "*/30 * * * *", "prompt": "生成系统状态日报,统计所有 Agent 任务完成率和异常情况,写入 memory/daily/ 今日文件。", "createdAt": 1776120121001, - "lastFiredAt": 1776235031832, + "lastFiredAt": 1776236831521, "recurring": true }, { @@ -173,7 +173,7 @@ "cron": "*/5 * * * *", "prompt": "执行系统巡检:读取 plan.md 和 todo.md,检查所有任务状态。已完成的更新标记,卡住的分析原因后自主处理(重新分发或修复),未开始的按优先级立即分发。不要请示用户,直接行动。", "createdAt": 1776138190787, - "lastFiredAt": 1776236563458, + "lastFiredAt": 1776237140678, "recurring": true }, { @@ -181,7 +181,7 @@ "cron": "*/5 * * * *", "prompt": "执行系统巡检:读取 plan.md 和 todo.md,检查所有任务状态。已完成的更新标记,卡住的分析原因后自主处理(重新分发或修复),未开始的按优先级立即分发。不要请示用户,直接行动。", "createdAt": 1776220913135, - "lastFiredAt": 1776236385983, + "lastFiredAt": 1776237066590, "recurring": true }, {