• system/templates/ 已在 28 号文档的合并里并入 system/agents/,「模板」作为独立
    数据概念已经消失;确认后手工 CRUD 页面(创建/改名/删除骨架、触发生成与训练、
    传 skill 文件、provision)也已经没人用,一并下线:
    
    - 前端:删 AppNav「Templates」菜单项、/templates 路由、TemplateAgents.vue
    - 后端:company.js 删掉只服务于该页面的写接口(PATCH/DELETE/POST /templates、
      generate/train/skills-upload/provision/files 系列),保留 GET /templates
      (CompanyDashboard 招聘弹窗和 CLI `company templates` 命令仍依赖它列出可招角色)
    - CLI:bin/lemon.js 删 `template create`/`template train`(调用的是被删接口)
    - 修正两处过时注释(company-service.js / graph-service.js):不再声称
      buildAgentDefinitionBrief 有两个调用方,/hire 是唯一派单点
    - work-layer-body-paths.test.js 同步更新断言(2 处调用方 → 1 处)
    
    Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
    yibo authored
     
    Browse Dir »

  • 代码层:
    - server/services/goals.js → okr-service.js;GoalsService → OkrService
      · this.goalsDir → okrDir,目录 goals/ → okr/
      · ID 前缀 G- → O-;落盘文件 goal.json → objective.json
      · updateGoal → updateObjective,_nextGoalId/_saveGoal 等同步改名
      · parseNodeId 层级名 ['Goal','Objective','KeyResult','SubTask']
        → ['Objective','KeyResult','SubTask','SubTask'](OKR 无 Goal 这一层)
    - server/routes/goals.js → okr.js;:goalId → :objectiveId
    - 7 处调用点同步:index.js / agent-server.js / agent-chat.js / company.js /
      company-heartbeat-service.js / prompt-builder.js / test-company-e2e.js
    - 前端 OkrDashboard.vue / CompanyDashboard.vue 切到 /api/okr(前后端命名终于一致)
    - bin/lemon.js 新增 okr create/add-node/list/status
    
    向后兼容(不破坏任何现有调用方):
    - /api/goals/* 与 /api/company/:cid/goals/* 全部保留为别名,与新路径同时挂载
    - task dispatch/report 同时接受 objectiveId(新) 与 goalId(旧),写入时两字段都留
    - bin/lemon.js 保留 goal * 命令别名
    
    迁移脚本 scripts/migrate-goals-to-okr.js(npm run okr:migrate):
    - 目录 data/{,companies/*/}goals/ → okr/;条目 G-xxx → O-xxx
    - 改写 objective.json 的 id / nodes 的 key / children 数组、_index.json、
      progress.json 的 goalId、history.log 文本、system/tasklog/*.json 的 goalId+nodeId
    - --dry-run 预演;幂等;迁移前自动备份为 *.bak-goals(已加入 .gitignore)
    - 处理一个反直觉边界:OkrService 构造函数会自动 mkdir 目标目录,"okr/ 已存在"
      不等于"已迁移过"——只要服务被 require 过一次就留下空壳。用 isEmptyOkrDir()
      区分空壳与真实数据,空壳移除后继续迁移。这个 bug 是在 fixture 上验证时发现的。
    - 同样在 fixture 上发现并修掉:nodeId 的值漏改写、tasklog 迁移不幂等
    
    验证:新增 server/tests/unit/okr-service.test.js(7 例,覆盖新命名工作正常 +
    迁移纯函数的 ID 改写);全量 npm run test:unit 652 例全绿。
    
    范围说明:NAMING §五 的 benchmark 三分(skill-/agent-/goal-)本轮未动代码——
    该节自身的建议就是存量保持现状、只对新增代码强制前缀,因为 benchmark_runs 等表
    服务于线上 Arena 排行榜,改表名/路由是另一次独立迁移。
    §二-四 的新 agent id 尚不存在实体,待 P2/P3 实现时按规范创建。
    
    已知遗留(非本次引入):server/scripts/test-company-e2e.js 早已失效——它按
    data/{id}/ 找公司,而 company-service 用的是 data/companies/{id}/,在 HEAD 版本
    同样全部断言失败。本次只同步了其中的 OKR 命名,未修这个路径问题。
    
    Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
    yibo authored
     
    Browse Dir »

  • Templates with new train data (hunt/digest/evolve):
    - agent-creator, auto-publisher, clickbait-copywriter
    - community-manager, competitor-spy, data-harvester
    - digester, weibo-scraper, interactive-video-selector
    - lemonv_drama, reddit-scraper, story-architect
    
    Updated configs & plans for all active templates.
    Updated agent states (master, innovator, hunter, evolver, digester).
    Added CLAUDE_EFFORT=low to .env (global disable thinking).
    Updated bin/lemon.js CLI tool.
    
    .gitignore: exclude evolve intermediate artifacts (FRAUDULENT, batch/eval
    scripts, iteration logs/scores, scorer versions, SKILL versions, .env)
    yibo authored
     
    Browse Dir »


  • - Add TaskTimeline.vue: two-pane dashboard with task list + message timeline
    - Add task-service.js: aggregate cross-agent conversations into task tree
      - 4-strategy parent-child inference (explicit meta, time-overlap, conv→tpl, master→T)
      - Read messages.log for full tool call details (not just history.json)
    - Add tasks.js API routes: GET /api/tasks, GET /api/tasks/:taskId/timeline
    - Mount /api/tasks in agent-server.js
    - Add 'Task Logs' nav entry in AppNav.vue after Templates
    - Support taskId in URL (/tasks/:taskId?) for sharing/bookmarking
    - Add --parent flag to CLI task dispatch for explicit parentTaskId
    - Auto-detect parentTaskId in task/dispatch from sender's active task
    - Add --instructions flag to template train CLI command
    - Update master tools.md with new parameters
    yibo authored
     
    Browse Dir »


  • - Add task transition CLI and API for Context Flush & Hot Swap
    - Enforce strict bash-only tool policy for Base Agents
    - Inject  into system prompt for self-retrying loop
    - Implement Goal node updates on transitions
    - Add P0 Execute pre-approval block (Human-in-the-loop)
    - Track token metrics to billing.log
    yibo authored
     
    Browse Dir »

  • Phase A - Company Bootstrap 自举:
    - 新增 _company_bootstrap/manifest.json 模板
    - company create 时自动部署 CEO/CTO/COO/HR 四名核心骨干
    - 自动启动公司 + 2s后向CEO dispatch战略启动令
    - 支持 skipBootstrap 参数跳过自举
    
    Phase B - HR 大一统 (招留管退):
    - 新增 hr 模板(agent_creator 的进化体)
    - HR 具备完整生命周期管理:招聘/技能装配/监控/辞退
    - HR 具备模板发现能力(lemon company templates 查看可用模板如 scrapling_crawler)
    - CTO 模板重写:不再亲自 hire,全部通过 task dispatch 向 HR 下发招聘需求单
    - CEO 模板更新:确认 Bootstrap 已部署骨干,委派时强调 CTO→HR 招聘链
    - 新增 POST /company/:id/fire API(停心跳→归档→更新名单)
    - 新增 CLI: lemon company fire / lemon company templates
    yibo authored
     
    Browse Dir »
  • Phase 4 人机流转机制打通:
    
    1. 新增 API 与 CLI:
       - POST /api/agent/human-request 支持 Agent 求助
       - `node bin/lemon.js human request` CLI 暴露给 Agent 使用
       - 请求将自动追加至根目录 .env 文件并带有时间戳注释
       - 同时将记录追加至 Master 的 workspace/human_todo.md 待办清单
       - 触发实时通知事件给 Master Agent
    
    2. `agent_creator` 人事专员模板创建:
       - 专门负责使用 `skill_search` (或自述构建) 并在新员工的 .claude/skills/ 下写武器代码
       - 强制为技能预留 .env 读取代码,并当 key 不存在时使用 human request
       - 强制在装配初版后将该技能推入 innovator-001 队列进行强化学习训练
    
    3. 架构优化:
       - 修改 CTO Agent 模板指令:在 hire 底层员工的同时,强制 hire 一名 agent_creator
       - CTO 不再亲自绑定技能,全部通过 `task dispatch` 给 agent_creator 完成装配
    yibo authored
     
    Browse Dir »
  • 解决 CTO 无法自动把 CEO 设计图转化为系统流水线的问题:
    - bin/lemon.js: 新增 pipeline create / pipeline list 命令行接口
    - templates/cto/agent.md: 重写 4 步强制工作流, 明确用 json 注册流水线及循环 hire 工具
    - templates/cto/tools.md: 新增 pipeline 注册命令与环境初始化命令
    - templates/cto/soul.md & identity.md: 泛化架构师角色设定, 移除写死的旧业务名
    yibo authored
     
    Browse Dir »
  • Phase 2 改进:
    
    1. 工作日历系统 (ScheduleService):
       - 新增 schedule-service.js: 公司级日程管理
       - 支持按小时调度、按周几过滤、时区感知
       - 心跳触发时自动检查到期 slots 并触发 Agent
       - 执行去重(同日同 slot 不重复触发)
       - CRUD API: GET/POST/PUT/DELETE /api/company/:id/schedule/slots
       - CLI: schedule add / schedule list
    
    2. 告警通道 (Alert Channel):
       - Pipeline 步骤超时自动告警 Master Agent
       - 心跳异常自动告警 Master Agent
       - _sendAlertToMaster() 统一告警接口
    
    3. CEO → Pipeline 自动生成:
       - CEO 模板从 3 步升级为 5 步工作流
       - 新增 Step 2: Pipeline JSON 设计(含 loop/cron/steps 结构)
       - 新增 Step 4: OKR 创建
       - Pipeline 设计输出为 CTO 搭建流水线的蓝图
    
    4. Master 晨会日报:
       - 每天 08:00 自动生成全公司运营日报
       - 包含公司状态、Pipeline 运行、OKR 进度、Agent 活跃度
       - 自动推送给 Master Agent
       - 防重复机制(每天只生成一次)
    
    5. Pipeline 驳回信息注入:
       - 驳回步骤被心跳重新触发时,__rejection 信息注入 prompt
       - 让 Agent 知道被驳回的原因和重做次数
       - 替换原有 curl 汇报指令为 task report CLI
    yibo authored
     
    Browse Dir »
  • Phase 1 核心改进:
    
    1. Pipeline↔Task 系统打通:
       - task/report 回调自动推进 Pipeline 步骤
       - findActiveRunStep() 按 agentId 定位活跃步骤
       - 扫描所有公司的 Pipeline Runs 实现跨公司桥接
    
    2. Pipeline 循环执行:
       - 新增 pipeline.loop 配置项
       - Run 完成后自动启动下一轮 (最大 maxLoops=365)
       - loopCount 计数器追踪循环轮次
    
    3. COO 质量门控:
       - 新增 rejectStep() 驳回方法,含驳回历史记录
       - POST /api/agent/task/reject API 端点
       - POST /api/company/:id/pipelines/runs/:runId/reject 路由
       - node bin/lemon.js task reject CLI 命令
       - 驳回后自动唤醒 Agent 重做,注入改进意见
    
    4. COO 模板全面强化:
       - agent.md: 4维度评分体系、质量审核流程图
       - soul.md: 性格、价值观、决策原则
       - tools.md: 新增 task reject 核心工具
       - heartbeat.md: 结构化巡检清单 + 升级规则
    yibo authored
     
    Browse Dir »
  • - company.js: call heartbeatService._setupAgentHeartbeat after hire
    - CEO agent.md: enforce 3-step continuous execution in same turn
    - All CXO heartbeat intervals: 5 minutes
    - task dispatch message: self-drive directive, use lemon CLI
    - bin/lemon.js: add 'task report' command
    yibo authored
     
    Browse Dir »
  • …ter Agent cognitive auto-recovery loop
    
    - Refactored CompanyDashboard into read-only Observer UI
    - Enforced strict companyId:roleId namespacing across Node APIs and AgentManager
    - Added dynamic <env_status> injection to PromptBuilder for robust context
    - Introduced bin/lemon.js CLI for structured LLM tool execution
    - Implemented in-stream error interceptors for implicit silent retry loop
    yibo authored
     
    Browse Dir »