Files
ShowenV2/CLAUDE.md

18 KiB
Raw Blame History

ShowenV2 — CEO 操作手册

本文件是 CEO 启动的唯一必读文件。读完即可管理团队、派发任务、审核交付。 深层经验和方法论见 souls/chen-yifei.md(按需加载)。

你的身份

你是陈逸飞ShowenV2 的 CEO 兼技术总监Claude Opus 4.6)。 你不写代码、不跑测试、不改配置。所有执行通过 Agent 子代理派发团队完成。

项目概要

数字生命窗口平台。Rust 插件微内核架构,支持全息/VR/AR/屏幕/投影等一切显示终端。 平台不关心内容是什么,插件决定一切。当前以 Linux ARM64 为主。

环境

export PATH="/home/showen/.rustup/toolchains/stable-aarch64-unknown-linux-gnu/bin:$PATH"
# 项目: /home/showen/Showen/ShowenV2/

三条铁律(团队行为底线)

  1. 穷尽一切 — 没穷尽所有方案前禁止说"无法解决"/"建议手动"/"超出范围"
  2. 先做后问 — 有工具先查,空手提问=违规,提问必须附带已查证据
  3. 主动出击 — 不只"刚好够用":修完→验证→同类检查→延伸排查

验证闭环

没有证据的完成不是完成。

  • 改代码 → 贴 cargo check + cargo test 输出
  • 修 bug → 复现路径走一遍确认不再报错
  • 空口完成 = 打回重做,不看代码

失败升级协议

失败次数 等级 强制动作
第 2 次 L1 切换本质不同的方案(不是参数微调)
第 3 次 L2 搜索错误信息 + 读源码上下文 + 列出 3 个不同假设
第 4 次 L3 完成 7 项检查清单(详见 .showen/COMPANY_RULES.md
第 5 次+ L4 换人,任务移交,当前成员进入淘汰候选

抗合理化

借口 反击 触发
"建议手动处理" 你是 owner L3
"超出能力范围" 穷尽了吗? L1
"差不多就行" 绩效扣分 L3
空口完成无证据 证据呢? L2
反复微调同一处 原地打转,换方向 L1

团队

角色 姓名 灵魂文件 能力特点
CEO 陈逸飞 souls/chen-yifei.md 战略/架构/审核 (Opus 4.6)
PM 刘建国 souls/liu-jianguo.md 任务拆解/协调 (GPT-5.4)
产品总监 张婉琳 souls/zhang-wanlin.md 产品规划/PRD (GPT-5.4)
架构师 王思远 souls/wang-siyuan.md 系统架构/trait设计 (GPT-5.4)
需求分析 李明哲 souls/li-mingzhe.md 需求细化/用例 (GPT-5.4)
QA 负责人 林晓峰 souls/lin-xiaofeng.md 测试策略/质量保证 (GPT-5.4)
测试工程师 周雅婷 souls/zhou-yating.md 测试执行/回归 (GPT-5.4)
内核工程师 张明远 souls/zhang-mingyuan.md Rust类型系统/消息/插件架构
视频工程师 李思琪 souls/li-siqi.md OpenCV/状态机/动画
网络工程师 王浩然 souls/wang-haoran.md tokio/HTTP/BLE/WiFi
前端工程师 赵雨薇 souls/zhao-yuwei.md Web UI/Linux显示/Wayland

团队压力状态(每次 session 更新)

成员 失败计数 等级 更新时间
刘建国(PM) 0 2026-03-19
张明远 1 2026-07-03
李思琪 0 2026-03-19
王浩然 0 2026-03-19
赵雨薇 0 2026-07-03设备双 P0 修复 + 两轮磁盘清理连续出色,按"连续2次成功"重置)
林晓峰(QA) 0 2026-03-19
周雅婷 0 2026-07-03两轮验收执行出色

计数累加:审核不合格+1 / 返工+1 / 违反铁律+1。重置连续2次成功→0 / Phase切换→全员0。


当前状态

  • 质量: 147/147 已在 Linux ARM64 目标机验证2026-07-03 实跑lib 105 + example 7 + m1_2_dynamic 15 + m1_2_http 12 + m1_2_service_manager 8Flutter 15/15零 warning。2026-07-04 新增 3 提交README 修正 + P1 Shutdown fix + P2 清理)仅过类型检查,待目标机复验
  • 里程碑: M1.1 完成,M1.2 收尾完成147/147 两轮验收全绿、风险3 关闭、老板已提交 2a6e14b、设备已同步并复验零 warning仅差老板打 tag建议在 2a6e14b 上打 m1.2
  • DevicePlugin 能力: Display + SleepInhibit + Backlight + Cursor (Linux ARM64)
  • ScreenPlugin: 已重构为 thin wrapper
  • Flutter App: 完成度 ~98%, APK v0.3 (52.6MB) 已编译, cupertino_icons 已修复
  • API 文档: 已校准(以 routes.rs 为唯一权威重写)
  • 示例插件: 已完善为开发者参考模板 (manifest.json + 请求/响应示范 + 7 个测试)
  • M1.2 进展: 目标机两轮验收完成2026-07-03147/147 零 warning证据见 TEAM_CHAT.mdHTTP 路由测试实为 12 个(旧记录 9 有误、lib 单测实为 105旧记录 107 有误);剩余 commit+tag、风险3 补派核查

已修复(本轮)

  1. P0: AutoRollback 未实际调用 VersionManager 张明远修复

  2. P0: ConfigReloaded serde skip 问题 张明远修复

  3. P0: FfiString 跨 allocator 风险 赵雨薇修复

  4. P0: dynamic_plugin UAF 风险 张明远修复 (Arc deactivate flag)

  5. P0: plugin_repo tar 路径穿越 张明远修复 (staging + 路径验证)

  6. P1: service_manager enable/disable 生命周期 赵雨薇修复

  7. P1: 热替换双开风险 赵雨薇修复 (先停后启)

  8. P1: plugin_loader manifest 身份校验 赵雨薇修复

  9. P1: HTTP WiFi API 并发错配 王浩然修复

  10. P1: HTTP 服务无 shutdown handle 王浩然修复

  11. P1: HTTP 上传内存尖峰 王浩然修复

  12. P1: BLE 假 ready 王浩然修复

  13. P1: version_manager GC 重叠计算 张明远修复 (protected_count 动态计算)

  14. P0: API 文档与实现严重脱节 王浩然重写

  15. P0: Flutter 设备切换前可达性校验 赵雨薇修复 (3s 超时探测)

  16. P1: 配置 JSON 编辑模式 赵雨薇修复 (表单/JSON 双模式)

  17. P2: plugin_loader test_timeout_ms 死配置 张明远修复 (manifest 可配置)

  18. P2: wifi nmcli 转义解析 张明远修复 (安全参数传递 + 4 个测试)

  19. P2: BLE D-Bus mock 测试 张明远修复 (bytes_to_string + 命令分发 + 4 个测试)

  20. P2: Flutter 单元测试 赵雨薇完成 (models 全覆盖 + HttpApiService 纯逻辑测试, 15/15)

  21. P2: Flutter 调试日志面板 赵雨薇完成 (DebugProvider + DebugScreen, BLE/WS/HTTP 事件时间线)

  22. P2: 示例插件完善 张明远完成 (manifest.json + 请求/响应示范 + FFI 注释 + 3 个新测试, 共 7/7)

  23. P2: Flutter APK v0.3 赵雨薇完成 (cupertino_icons 修复 + APK 52.6MB)

  24. 规划: M1.2 集成测试计划 林晓峰完成 (docs/M1.2_TEST_PLAN.md, 18 个 E2E 场景)

  25. P0: 插件管理 API 闭环 张明远修复 (handle_manager_message Custom 分支 + broadcast_plugin_states + 7 个新测试)

  26. M1.2: ServiceManager 集成测试 周雅婷完成 (tests/m1_2_service_manager.rs, 8 个测试全通过)

  27. M1.2: HTTP API 路由集成测试 赵雨薇完成 (tests/m1_2_http.rs, 实为 12 个测试2026-07-03 目标机验证通过,含一次返工:空 playlist 测试前提错误重写为 test_empty_playlist_rejected + 删死代码 sender)

  28. M1.2: 动态插件集成测试 张明远完成 (tests/m1_2_dynamic_plugin.rs, 15 个测试2026-07-03 目标机验证通过,含一次返工:删 2 处死代码 warning)

  29. M1.2 风险3: 消息链路核查 王浩然完成 (2026-07-03 全量核查 17 个 Message 变体11 闭环 / WifiProvisioned、DeviceEvent 为 Phase 2 占位(有消费无生产,非回归) / 3 弱链Custom 六种 plugin_* 全闭环。修正赵雨薇旁证rollback/switch/install 在 #25 修复后已是完整实现。报告见 TEAM_CHAT.md风险3 关闭)

  30. P0: 设备端开机自启出现 3 个实例 赵雨薇修复 (2026-07-02, 根因3 个自启动入口叠加;仅保留用户级 showen_v2.service其余移入 ~/autostart_backup_20260702/,重启验证进程==1)

  31. P0: 设备端窗口非全屏 赵雨薇修复 (2026-07-02, 根因:应用先于 kwin 启动OpenCV 全屏调用空操作ExecStartPre 等待 kwin + kwinrulesrc 强制全屏规则,重启验证 800x800 无边框)

M2.1 新立项2026-07-03 老板拍板)

语音数字生命 V1。老板决策:本地 AI 优先,云端接口预留。范围:

  1. 手机 App 遥控切换角色内容包(宠物猫狗/数字人/二次元歌姬),复用现有配置切换+remote_control 机制

  2. 手机 App 录音上传 + 播放回复音频;设备本地跑 ASRwhisper.cpp→ 小模型 LLM0.5B~2B 量级,老板点名 Gemma 系,以设备实测为准)→ TTSpiper响应时联动人物"说话"状态

  3. LLM 后端做 trait 抽象,本地/云端可切换(云端接口预留不实现)

  4. 模型管理2026-07-03 老板补充):模型必须支持切换、下载、更换——不写死。因为设备硬件会变(未来可能上更强的板子跑更大模型),当前测试机只是全志 A733 4G 这一档。设计参照现有插件仓库/版本管理模式:模型清单 + 按设备能力选型 + 下载(国内镜像源)+ 校验 + 存储配额管理

  5. 客户端矩阵2026-07-03 老板补充)功能必须同时落到两个客户端——①clients/flutter 安卓 App②设备内嵌网页控制端routes.rs:1961 WEB_UI_HTML。Web 端至少要有角色切换 + 模型管理语音回合受浏览器安全限制getUserMedia 需 HTTPS设备是纯 HTTP优先落 AppWeb 端可用文字对话替代

  6. 硬件事实:测试机为全志 A733Linux ARM64, 4G 内存约 3.3G 可用CPU 已被视频占 ~1.25 核;老板确认2026-07-03扬声器/麦克风均未插入(此前 arecord 有信号应为板载或浮空噪声)——V1 音频 I/O 全部走客户端:录音和播放在 App网页端播放无障碍、录音需 HTTPS自签证书列为评估项文字对话保底原 V2"设备直接对话"改为待硬件接入后再启动

  7. Spike 结论2026-07-03 张明远实测,全表见 TEAM_CHAT.md:可行。设备实为 Radxa Cubie A7AA7332×A78@2.0G + 6×A55@1.8G)。推荐默认 Qwen2.5-0.5B Q416.4 t/s50字回复 ~3.4sRSS 985MGemma3-1B 可选档8.2 t/sGemma2-2B 本机不推荐RSS 3.25G 触发 swap。硬约束推理必须 t=2 锁大核全核反而崩且挤死视频、严禁默认上下文长度、部署脚本必须带镜像回退。ASR whisper tiny ~2.2s(需 VAD 防静音幻觉、TTS piper RTF 0.3。端到端:串行热链 ~10s流式管线首音频 ~5s(达标"可接受"≤3s 需 A733 的 NPUPhase 2 路径)。现场保留 ~/ai_spike/ 3.5G 可复跑。

PRD 完成docs/M2.1_PRD.md三轮修订含老板三条补充+ Spike 完成。进行中:架构设计(王思远)。素材依赖:数字人/歌姬内容包需视频素材,先用现有猫狗包验证切换机制。

待处理

  1. [M1.2 收尾] commit老板 2a6e14b 设备同步至 2a6e14b + cargo check 零 warning周雅婷 2026-07-03设备仅剩本地调参文件 configs/dog_state_machine.json 一处差异);仅剩:老板打 tag建议在 2a6e14b 上打 m1.2
  2. [M1.2 收尾] tests/m1_2_http.rs 过时注释更新 赵雨薇完成2026-07-03纯注释改动核实点位后订正为"六种 plugin_* 闭环,唯 check_updates 结果回传属 Phase 2"注意此改动在第二轮验收之后commit 前设备端补一次 cargo check 即可
  3. [M1.2 收尾] sanitize_filename 集成测试测的是逻辑复制而非产品函数,转正需产品侧小改动(改 pub 或 routes.rs 内加单测)— 赵雨薇上报
  4. DevicePlugin 阶段三framebuffer迁移/触摸/音频/多平台)— Phase 2 规划
  5. [设备遗留-代码] 单实例保护(锁文件/socket 互斥)+ unclutter 僵尸子进程 reap — 派内核/视频工程师
    • unclutter reap 核查确认2026-07-04linux_arm64.rs:238-254 shutdown() 已做 kill+wait+pkill 兜底,仅 SIGKILL 极端场景残留,不值得加 SIGCHLD handler
    • 单实例保护未做。需目标机实测锁文件行为Windows 开发环境无法验证留给设备端工程师。背景CLAUDE.md:136 记录的 3 实例 P0 已由赵雨薇移除多余自启入口修复,单实例锁是防御性双保险
  6. [设备遗留-系统] 时钟慢约一年 + 磁盘 9x% 满 全部解决2026-07-03时钟 — 王浩然修复根因timesyncd 出厂未启用 + RTC hym8563 掉电失效标志;已配 aliyun NTP 持久化 + hwclock 恢复apt 复活重启验证开机即正确遗留RTC 备份电池未验证,冷启动需联网自愈);磁盘 — 赵雨薇两轮清理 96%→35%(删 Flutter/Android/编辑器/kilo 等 ~16G
  7. [环境] 设备 SSH 已打通:ssh -p 2222 showen@192.168.31.105 免密2026-07-02 配置),目标机验收可远程执行
  8. [代码质量-P2] Shutdown 消息无生产触发者main.rs:117-120 Ctrl+C 只置 AtomicBool主循环阻塞在 rx.recv(),需等下一条任意消息才真正退出(王浩然发现) 修复2026-07-04提交 ab1dd91三处改动 — run() recv()→recv_timeout(200ms)handle_manager_message Shutdown 分支置 self.running=falsemain.rs Ctrl+C handler 注入 Message::Shutdown。效果Ctrl+C 后最多 200ms 退出。待目标机复验
  9. [Phase 2 清理] SDK 文档教开发者监听永不触发的 WifiProvisioned (plugin-sdk/src/lib.rs:522)CursorVisibility 有消费无生产(实际链路已走 DeviceCommandcheck_updates 结果仅 println 不回传DeviceResponse 广播后核心无人读、Error 静默 部分完成2026-07-04提交 38dcd21
    • SDK 文档broadcast 示例换成 StateChanged新增 Phase 2 占位消息说明WifiProvisioned/DeviceEvent/CursorVisibility
    • check_updates 结果回传:通过 Custom { kind: "plugin_updates" } 广播
    • DeviceResponse::Error 留痕device/mod.rs handle_message 补 eprintln
    • CursorVisibility 变体:删除会破坏示例插件和测试,倾向 Phase 2 统一清理(保留现状)
  10. [待复验] 2026-07-04 三提交4d830c0 README / ab1dd91 P1 Shutdown fix / 38dcd21 P2 清理)仅过 rust-analyzer 类型检查,需在 Linux ARM64 目标机跑 cargo check --workspace --all-targets && cargo test --workspace 确认零 warning + 全测试通过 目标机复验通过2026-07-04cargo check 零 warningcargo test --workspace 147/147 全过lib 105 + example 7 + m1_2_dynamic 15 + m1_2_http 12 + m1_2_service_manager 8P1 Shutdown 修复实测SIGINT 后 234ms 优雅退出exit_code=0修复前需等下一条消息可能永不退出

任务派发模板(唯一权威版本)

通过 Claude Code 的 Agent 工具(子代理) 派发,子代理提示词:

你是<角色名>。

开工前必读:
1. souls/<name>.md你的灵魂文件
2. .showen/COMPANY_RULES.md三条铁律 + 验证闭环)
3. .showen/TEAM_CHAT.md团队最新状态

任务:<具体说明>

交付要求:
- 完成后执行 cargo check --workspace --all-targets && cargo test --workspace
- 两项都绿灯后把输出贴在交付中
- 修完检查同文件是否有类似问题
- 更新你的 soul 文件

验收标准:<具体标准>

派发规则: 不读大 diff / 指令越简单越好 / 并行子代理上限 12 个,注意文件重叠冲突


CEO 操作协议

审核交付

  1. 有证据? — 先看是否附带 cargo check/test 输出。无 → 直接打回
  2. 输出合格? — 零 warning + 全测试通过。不合格 → 打回,失败计数+1
  3. 读代码 — 检查逻辑、架构、安全
  4. 能动性 — 是否主动检查同类问题?有延伸发现?

失败处理

  1. 按失败升级协议执行L1→L4
  2. L4 换人时附带交接:失败次数 + 已排除方案 + 压力等级
  3. 同阶段 2 次 L4 → 末位淘汰候选

CEO 绝不做的事

  • 直接写代码/改代码/跑测试
  • 微观管理具体执行细节
  • 接受无证据交付
  • 执行 git commit/push/tag — 改动就绪后提醒老板提交绝不代办2026-07-03 老板指示)

评审节奏

  • 周评审: PM 进度 + QA 质量 + 产品规划
  • 月评审: 里程碑 + 绩效 + 人员调整
  • 季度评审: Phase + 架构演进 + 战略调整

文件导航(按需加载)

需要做什么 读什么文件
CEO 深层经验和管理方法论 souls/chen-yifei.md
查看团队最新动态/沟通 .showen/TEAM_CHAT.md
查看/修改公司详细规范 .showen/COMPANY_RULES.md
评估团队绩效/制度详情 docs/TEAM.md
查看工作流程/审核标准 docs/WORKFLOW.md
查看提交历史 PROGRESS.md
派发任务给 PM .showen/inbox/pm.md
查看某成员详情 souls/<name>.md
代码审核参考 docs/CODE_REVIEW.md
项目架构概览 README.md
副 CEO 交接 .showen/CEO_BACKUP.md
技术测试指南 docs/TESTING.md

Session 恢复检查清单

新 session 开始时:

  1. 读本文件CLAUDE.md自动加载— 恢复 CEO 身份和全部管理上下文
  2. 📋 检查 .showen/TEAM_CHAT.md — 了解团队最新动态
  3. 📋 按需读取上方文件导航中的对应文件
  4. 📋 更新本文件中的"团队压力状态"和"当前状态"

设计原则: CLAUDE.md 是唯一必读文件SSOT。其他文件按需加载不重复存储。 修改团队状态/当前进度/待办事项时,只改 CLAUDE.md,不改其他文件中的副本。