AI 副驾驶定位成型 · v1 发布准备
阶段1.1 · 根目录大扫除
- 删 Finder 复制产物
ysn-brand-v1和ysn-brand-v1 2(保留 v3 最新版) - 删 IDE 残留
.codebuddy/ - 归档
NAVIGATION_IA_audit.md和NAV_REFACTOR_PROPOSAL.md到docs/history/ - 两大素材目录(ysn-badges-3d / ysn-ps-cutout)补 README · 说明源文件与成品关系
.gitignore去重 ·CLAUDE.md子目录表从 5 个扩展到 8 个
阶段1.2 · 生长日记三分离
三份日志分工明确:
docs/CHANGELOG.md· 技术事实源 · AI/工程师随改yisinan-pages/updates.html· AI 可改 · 用户可见技术页 · 从 CHANGELOG.md 自动生成yisinan-pages/changelog.html· coral 起源故事 · AI 禁改 · 私物
新增 tools/updates-gen/build.mjs · 纯 Node 零依赖 · 每次发布前跑一次同步。 docs/ONBOARDING.md 第七·补章升级为三份分工 + 发布三步流程。
阶段1.3 · 清理重定向兜底页
删除 03-vendor-detail.html(29 行纯重定向 · 已标弃用) · 清理三处代码引用。 放弃原定"合并 04 详情页"的激进方案 · 因为现有页面内容差异大(华为 2239 行 · 鸿蒙 853 行 · 游戏 393 行) · 强行合并会破坏精装修。
阶段1.4 · AI 副驾驶设计纲领 + 占位组件
核心基建 · 后续所有工作的地基:
- 新建
docs/AI_COPILOT_SPEC.md· 产品定位 + 5 条设计原则 + 数据源状态表 + - 新建
assets/ai-placeholder.js/css· 全站空数据区统一组件 - 新建
_ai-placeholder-demo.html· 9 种场景样板 · 带主题切换按钮 - 深色模式适配: 硬编码色拆为
--aiph-*变量 · light/dark 各一份
空数据三策略(estimate/pending/disabled) + AI 交互样板 + v1 发布范围
AIPlaceholder.render(el, {label, aiValue, confidence, source, onConfirm, onEdit, onExplain})
阶段1.5 · 占位组件全站落地
01-frontline-home4 个 KPI ·02-lead-home4 个 hero KPI 全部升级19-vendor-preview补 § 04.5 TRAFFIC(曝光/点击/下载 pending 态) +- 后端 API 失败时降级为 AI 估算态 · 不再显示"—"
§ 04.6 TEAM(从 q1.contacts 渲染人员架构 · 或 pending 引导补填)
阶段A · 账号动态权限视图制
原"9 个硬编码角色"升级为"一个账号可挂多家厂商":
- 新表
account_vendor_bindings(account_rtx/vendor/role_in_vendor/is_primary) - 后端 5 个 endpoint(GET/POST/PATCH/DELETE bindings + /me/bindings)
- 迁移自动从
accounts.vendor为 fl-* 补建 primary binding(向后兼容) - 前端
vendor-switcher.js/css· 顶栏下拉 · 只挂 1 家不显示 - 暴露
window.YSN_VENDOR = { active, setActive, bindings, refresh } - 已挂到 01/02 首页
阶段2 · AI 副驾驶主动脉 · 仲裁与策略草稿
"Hermes 扫 → AI 估算 → 人 yes/no → 自动策略草稿"的骨架:
market_intel_conflicts新增 `ai_recommended_source / ai_confidence /POST /api/market-intel/conflicts/ai-arbitrate-all· 一键批量判决POST /api/market-intel/conflicts/:id/accept-ai· 一键采纳- 新表
strategy_drafts(AI 起草 + 人工编辑 + 提交 + 审核全流程) - 新建
strategy-routes.ts· 5 endpoint(generate/get/patch/submit/review) - 05-market-intel 页加"✨ AI 批量判决"按钮
ai_reasoning / ai_decided_at` 字段
算法: 加权中位数偏离法(v1 不调 LLM · 有基线再升级)
阶段3 · Delphi 深研委托真派单
sinan/graph.ts 的 delphiNode 从 stub 重写为真派单:
- 从
state.userText/messages取研究问题 - 从
state.auth拿身份 · 注入research_requests表 - 频控逻辑同
/api/research/requests(每小时 5 次) - 失败降级: fallback 文案 + 引导去 16-research-center 手工建
- 成功回显研究编号 + 跳转链接 + emit status 事件
阶段4 · Hermes 规则自进化
AI 看历史数据自动推荐新规则候选 · coral 只点启用/驳回:
- 新表
hermes_rule_candidates(proposed_* 字段 + ai_rationale + POST /api/insights/rules/candidates/generate· 触发 AI 推荐- 11-governance 新增"Hermes 规则候选"tab · 卡片式展示 · 逐条审决
ai_confidence + supporting_events + status + 审决字段)
策略 A · 高采纳率规则跨厂商复用 策略 B · 低权重规则建议停用
v1 发布 checklist(2026-05)
- [x] AI 占位组件全站应用
- [x] 账号视图制上线
- [x] 仲裁队列 AI 自动判决
- [x] 策略草稿 AI 自动起草
- [x] Delphi 委托闭环
- [x] 厂商专属页 TRAFFIC + TEAM 区
- [x] Hermes 规则自进化
- [x] 生长日记 updates.html 自动化
- [ ] 端到端冒烟走一遍 · 下周重点
- [ ] 移动端验证 · coral review UI
- [ ] 真实数据源接入节奏对齐
2026-04-26 晚 · logo Phase 2 · 弈字 mark 全站化
结论:放弃 AI 生图 + final 三版(势司系列写错了字,是"势"非"弈";几何/印章方案小尺寸都糊)。直接用登录页已验证的手写"弈"字 mark 做全站 logo。
实现路径
- 新增
tools/logo-export/· Puppeteer 无头浏览器渲染 + 截图导出(用本机 Chrome,跳过 Chromium 下载) render.html定义两版 mark:- full 版(带 -4° 旋转 + 蓝光阴影)· 用于大尺寸 / header
- flat 版(无旋转无阴影 + 小尺寸描边)· 用于 favicon 小尺寸保证辨识度
- 字号永远和方块 0.58 比,16px/32px 用 18% 圆角(大尺寸 22%)
- 等比导出 11 张 PNG:
- favicon/(7 张):16/32/48/64/128 + apple-touch-icon (180) + 512
- logo/(4 张):ysn-mark-yi-96/256/512/1024(带旋转阴影版)
全站接入
assets/ysn-logo.png直接覆盖成 128px flat 弈字 → 22+ 页面<link rel="icon">零改动全部自动更新assets/shell.js:.ysn-topbar左侧面包屑前插入 32×32 的.yt-brand弈字 mark,hover -4° 旋转 + scale 1.06assets/shell.css:73新增.yt-brand样式,窄屏(≤720)自动隐藏assets/shell.css:159侧栏.side-brand .logo-mark从旧阶梯brand/logo/ysn-mark-only.svg切到ysn-logo.png
保留
- login.html 原版
.brand-mark(48×48 带旋转阴影)保留不动,是设计"仪式感" - 00-boss-brief 报头"弈·司南"纯文字 masthead 保留,不加 mark(报纸气质)
- final/ 三版势司 SVG 素材保留,作为未来宣传物料 / 封面彩蛋用
2026-04-26 · logo Phase 1 落地 + 第七次体检 YOLO 修
logo Phase 1(过渡方案 · 等 Phase 2 主 mark 定稿再完整替换)
- 正式 wordmark 就位:
assets/brand/logo/ysn-wordmark.png("弈·司南 / YI SINAN" 手工字标) - 原
ysn-wordmark.png(contact-sheet 总览图)改名ysn-contact-sheet.png避免混淆 - 4 个子品牌横排就位:
assets/brand/agents/{sinan,xingxiang,hermes,delphi}-horizontal.png - 05-market-intel 页 xingxiang 切到新横排版(
xingxiang-full.png→xingxiang-horizontal.png) - 主 mark(阶梯造型)维持现状,AI 生图方向已出 prompt 包在
docs/design-prompts/ysn-mark-ai-prompts.md
第七次体检 · P0/P1/P2 快修
- P0
03-vendor-detail.html:重定向兜底页移除无用的sinan-agent.js/css/propose.js引用 - P0
ysn-backend/src/research/routes.ts:171checkWorkerany→Request/Response类型保护 - P0
ysn-backend/src/vendor-profiles/routes.ts:59(req as any).auth→req.auth!(类型扩展已有) - P1
yisinan-pages/403-blocked.html:49渐变#0B3EA3→var(--ysn-brand-deep) - P1
12-account-admin.html:1025状态色硬编码加 TODO 注释(和"涨红跌绿"品牌规则冲突,等设计系统统一 status token 再改) - P2
ysn-backend/src/db/index.ts连接池补idleTimeoutMillis=30s / acquireTimeoutMillis=10s - P2
sync.shSSH 补ConnectTimeout=10 / ServerAliveInterval=30防网络抖动卡死 - P2
.gitignore补archive/+ 6 个素材临时目录 - P2
.claudeignore/.cursorignore对齐,补齐缺项(*.egg-info/ *.pyo *.swp *.tar.gz *.zip /tmp/ backups/ build/等) - 文档订正
docs/PROJECT_MAP.md:业务编号页数字 "21+8" → "25+4";根目录名"未命名文件夹" →yisinan;03-vendor-detail.html从"旧版参考"改为"纯重定向兜底"