平台工程索引
用途:搭建/维护知识库展示站与各类内容平台过程中,沉淀的工程方法、架构模式与踩坑。 与 AIGC 创作线并列——这里记的是「怎么把东西搭起来、部署上线、可持续维护」,不是「怎么创作」。
架构与模式
- 内容子项目构建时同步_独立仓库镜像进public_v1 —— 独立频繁更新的内容仓库:浅克隆→镜像进 public(排.git)→新内容自动上线、主仓不胖
- Git初始化已有工作区并建GitHub仓库_嵌套仓库submodule引入与MCP无权限ghCLI兜底_v1 —— 已有工作区建 GitHub 仓库:嵌套子仓库必须用 submodule 引入(不是 add),MCP connector 无 create_repository 权限时装 gh CLI(zip 解压即用)兜底,凭据走 Windows Credential Manager
- CI从Release抓二进制托管自有服务器_桌面应用国内直连下载_v1 —— CI 从 GitHub Release 抓 exe 进 dist→rsync 到香港服务器,给桌面应用做国内直连、零维护下载;二进制不进 git/Pages,固定文件名自动同步最新版
- ⚠️ 每日定时任务自动更新内容板块_首次自动化生产落地_v1 —— 首次自动化内容生产:定时任务只被允许「新增一个数据文件」,人先手动跑通一遍再交给定时器,并留「宁缺毋滥」不发闸门;后续已迁移云端并首次跑通,见连环坑复盘续篇
- 站内新版块五件套模式_三次复用与起刊两坑_v1 —— 新增内容版块的固定套路(数据源/内容集合/列表详情页/首页速览/全站导航),第三次复用(任务书版块)收敛;附 YAML 裸日期解析成 Date、机器人仓库 push 竞争两坑;07-24 补「状态机演进」:enum 扩容时取反式过滤(
!== 'open')会静默吞掉新状态,分桶一律正向枚举 + 新态穿线所有渲染点 - ⚠️ 赛事状态机到点不切换_写入方不等于推进方_v1 —— 状态字段有人写、有人显示,却没人在到点时推进它(PB Arena 赛事永远停在建赛时的阶段);定位靠问「谁在到点改它」而非 grep 字段名,验收必须写成「不碰任何按钮等它自己变」;附「并列名词要逐项直达」「单用户复现的排版问题多是全员在临界点内侧」「状态机上线会追认存量数据」三条;结论已被同日续篇部分修正
- ⚠️ 零作品的比赛_界面演完不等于链路存在_v1 —— 上篇续篇兼修正(PB Arena):报名/进度条/倒计时全都在,7 场比赛 17 人次报名,
submissions表 0 行——界面演完不等于链路存在,验收要问「这功能跑完数据库该多出什么」再查表;附「补自动推进前先确认触发条件真的是时间(不是就交还给人)」「新链路复用既有实体只改阶段从哪来」「权威方从客户端搬到服务端后本地自算顺带触发的副作用会失灵」「修复被调用方提前赋值绕过(判据恒等)」四条 ⚠️首次 - ⭐ 静态站接账号系统_内容归git状态归库的双源切分_v1 —— 给 SSG 站加账号与「完全动态化」的状态,正解是切数据源不是升级渲染模式:正文归 git 走构建期、只把会变的字段交给数据库,构建期导出一份 JSON 清单给服务定时 upsert,前端客户端注水且失败即回落静态快照(nginx 没接通那段时间站点照常可读);附「视觉差异该由 CSS 承担而非 DOM 结构(否则跨状态重排要重建节点)」「scoped CSS 不覆盖 JS 注入的 DOM,会被注入的类名必须下沉全局」「登录墙架在钱前面不是门口」三条,以及 CI 幂等自举 + 四个只有真部署才现形的坑(
.env.*吞掉.env.example、cp -a重跑套娃、nginxsites-enabled/会加载目录下所有文件致备份撞车、enabled 是实体文件且与 available 早已不同步) ⚠️首次;本轮续篇见下 - 任务系统演进_站内新建管理台拆分首页瘦身_v1 —— 任务书从「写 md 才发」进化到「站内直接发」(
source列分流同步 + 动静两份详情页);调价独立于真相源(fee_override同步不覆盖);管理台六页 + 共用壳 + 调价面板;笔记搬进/notes/,首页 218→30 KB;滚动渐现抽共用模块 ⚠️首次 - ⭐⭐ 成稿链接存进库没人读_写入方不等于展示方_v1 —— 上篇续篇(蛛网之上):成稿链接三条写入路径、零条读路径——列、管理台输入框、接口
deliverableUrl全在 07-28 就位,07-29 管理台拆分还搬过一次那个输入框,第一次有页面读它是 07-30 本轮;跨两轮没暴露是因为人一直在正文里手写「交付情况」替系统兜底;沉淀「写入方不等于展示方(存进库≠看得见;读路径要挂收敛字段tasks.deliverable_url,不挂某条写入口的流水表deliveries)」⭐⭐ 同族第三形态、「手工兜底掩盖系统缺口」⭐⭐、「upsert 两条分支的字段集要对齐(INSERT有而UPDATE没有 = 只有第一次同步生效)」⚠️、「双源字段验收要造出『只有库里有』那一格」⚠️;附本机 chrome-headless-shell +--dump-dom自测姿势(chrome.exe --headless=new同参数会挂死) - ⭐ 账号系统对标一线_多账号抽屉与外部通道半开陷阱_v1 —— 上篇同日续篇(蛛网之上):登录/注册/找回密码各自成页,本机多账号做成**「一柜多抽屉」+ 一个活跃指针**(切号换指针、退出只丢当前那把、令牌失效只丢挂掉那把、退出所有设备是显式动作),自助重置密码全链路;核心律=功能开关要接在「能力被验证过」上,不能接在「配置填了」上——发件域名没验证就填 key,页面照说「信已经发出去了」而一封没发,半开比关着更糟;附「防枚举的沉默与故障的沉默是同一种沉默→对外一句话、对内留全量」「断言测行为、截图测观感(
[hidden]被自写display覆盖、三态硬塞进布尔致「登录中…」显示成红色错误)」「跨会话交接靠边界与判据而非步骤」三条 ⚠️首次 - ⭐ 任务书接AI辅助填写_模型只产草稿与思考额度陷阱_v1 —— 上篇续篇(蛛网之上):发布方与接单人两处入口都换成「说一句大白话 → AI 填表单 → 人过一眼再改」;核心律=AI 接进既有表单,产物必须落在「人还能改」的那一格,且服务端要把模型输出当草稿再洗一遍(截长度/日期洗不成就丢/标识符重新规范化——
strictschema 只保证形状不保证值可用),外加不许替人编事实(没说的写「待补」占位 + 提醒去补,连界面例句都给骨架不给履历——一键就能提交的假经历,发布方一问就穿帮);思考型模型的 reasoning 算在max_tokens里 ⚠️首次(千问不关思考 reasoning 235/completion 285、正文写不完;关掉后 0/951 出完整八小节)、同一份配置被 systemd 与 POSIX shell 两种读法读出不同结果、且解析失败静默退回默认值 ⚠️首次;半开陷阱第三次现形(惯性配成 ofox,aiAssist:true而调用必 401),补一条「探活工序排在写配置之前」;附隐私边界要有断言看着、登录态页面要走 CDP 而非--dump-dom、截图验昼夜看data-theme不看prefers-color-scheme - 内测反馈渠道上线_匿名兜底与422探针验证_v1 —— 内测产品反馈渠道单会话上线(PB Arena):反馈入口必须匿名可用(“登录不了”正是最该被反馈的 bug,滥用靠双层限流不靠登录墙)+ 零迁移建表(全量
CREATE TABLE IF NOT EXISTS惯例下加表=改常量)+ 422 探针线上验证不留脏数据 + 无框架存量库”模式考古先行”零返工 - ⭐ AI问答板块收尾_打通判据与小圆头像构图律_v1 —— 同站(蛛网之上)kb-chat 最后一公里收尾+助手头像五轮迭代:打通的判据是链路上最后一个消费者真正用上(收尾三件套=测试进 npm test/CI 出包前先跑/线上产物 grep);聊天小尺寸圆头像正解=人像带留白(眼睛落画面 38%、脸占三分之一),特写填小圆永远”怼脸诡异”,人脸头像容器装饰要接近无;附 Astro frontmatter 导入 webp 报 Unterminated string literal(位置误导)⚠️首次、滚动容器内浮层必被 overflow 裁剪(body 单例 fixed 正解)⚠️首次、AI 会话构建失败先分流代码/环境(CI 绿=环境问题)
- ⭐⭐ AutoClaw失控删库全链路取证_回收站时间戳与孤本抢救_v1 —— 本机失控自主 agent(微信接入 Electron 应用)无指令删掉知识库两目录并搅乱三仓库的取证→处置→恢复→加固全链路:回收站 $I 索引=免费文件操作审计日志(删除时刻+原路径+去向,删除去向本身是进程指纹:全进回收站=Electron shell.trashItem)⚠️首次;处置顺序律=断进程(连 watchdog)→查自启全位置(注册表空≠没有,藏在计划任务;Get-ScheduledTask 的 Actions 访问异常会静默吞掉整条查询,工具先证伪第三次)→再恢复数据 ⚠️首次;未提交孤本是唯一没有双保险的裸奔层(git 对象/回收站之外=真丢);并发操作同仓库的异常信号(引用假成功/提交被摘/refs 目录被外部删)先 rev-parse 对三角
踩坑与验证陷阱
-
⭐ 自检46条零驳回_同类中的异类才是缺陷藏身处_v1 —— 一句「全项目自检」引出的整轮排查(PB Arena):12 方向 60 个 agent 交回 46 条、驳回 0 条,抽验后纠正了两条最严重的描述偏差(「F5 就正确」实为刷新更糟、退回写死的假优胜者;「大厅永久 500」实为整个进程被打挂),而这两条纠正直接改变了修法;核心律=同类中的异类才是缺陷藏身处——三处最严重的问题全是「三个 sweep 定时器只有一个没包 try/catch」「十几个渲染函数只有这两行没过 escapeHtml」「同一模板里紧挨着的字段一个转义一个没转义」;附「复核全票通过等于没复核」⭐第六次现形、「占位数据必须一眼可辨为占位,假数据比空白更危险(写死的 Mori 68%、从未被填充过的『亚总 VS Mori』)」⚠️、「保活心跳不能搭业务轮询的便车(WS 优化顺手把它关了,房主静置 90 秒房间被悄悄解散)」⚠️、「安全属性只做在渲染层等于没做(匿名投票接口照发 userId)」⭐同族新变体、「反代之后 socket 地址不代表用户,且线下赛整场共用出口网——频控要以账号为主维度」⚠️ 共六条
-
⭐ 零路由补路由_普查要能推翻已写的代码_v1 —— 给一个 5300 行、零路由的老前端补 hash 路由(PB Arena,上一轮自检清单的最后一项)。核心律=普查要能推翻你已经写出来的代码——动手时已写好一版让
switchView自己写 hash 的实现,普查指出它会和函数内的state.currentView赋值互相触发形成回环,整段被替换;判断该不该被推翻,看对方给的是「哪一行和哪一行打架」这种机制,还是「建议重构」这种口号。附「技术选型的探路实验是免费的 bug 探针(为验 History 可行性 curl 一下,撞出静态兜底把.js也回 HTML——写错路径不是 404 而是 200+HTML,报错位置和真正原因完全对不上)」⚠️、「完备方案 ≠ 该做的方案:普查建议收编三十处裸 hidden,实际用一处 popstate 拦截——提建议的一方不承担回归成本」⚠️、「异步修复要问『在途期间会发生什么』:防重入挡住了一个 tick 内的递归,挡不住重新对时在途期间连续几个 tick 各推进一格」⚠️、「初值方不等于渲染方」⭐同族第四形态、「『觉得自己知道于是没查』人肉版第三次现形并固化成动作」⭐ 共六条 -
⭐⭐ 公屏下线只删了界面_删界面不等于关链路_v1 —— 内测反馈 16 条全量收口(PB Arena):「把交流社区去掉」第一版只删前端并上线,实测生产
GET /api/lobby/messages不需要任何凭据就返回全部历史消息与用户名、POST仍 401 可写——删界面不等于关链路,下线深度由「我在防谁」决定(防误点删界面够,防有意为之/合规必须 curl 到 404);是 零作品的比赛_界面演完不等于链路存在_v1 的镜像面;附「反馈与 HEAD 隔 20 个提交,按字面修会把显示错变成静默失败」「序号/字母标号类展示必须眼看输出(indexOf对展开副本恒 −1,印出满屏@,代码里长得完全正确)」「改默认值会把冷门路径变热门,那条路上的坑要一起填(默认 300→1 后运营会去填 0,而||把 0 判成假值静默失败)」「反馈里的矛盾/无主语是待澄清项不是待推断项(我推断错了一次,四处聊天猜成比赛房间)」四条 ⚠️首次 -
⭐ 全站文字截断体检_检测工具本身要先被证伪_v1 —— 体检脚本吐出的「缺陷清单」本身是待验证的假设(PB Arena 全站文字截断排查):判据里一个拍脑袋的箭头宽度常数把 8 个正常元素判成缺陷,还据此改了一处没坏的代码;标定法=先跑已知正常 + 已知损坏两个样本确认工具两端判对;附「能问浏览器就别自己算、且要问对问题」「误报会伪装成顺手修一下混进提交」「找同类问题按写法搜不按页面搜」三条 ⚠️首次
-
⚠️ 录屏假光标被打回_画出来的不算操作与输入送达四处假信号_v1 —— 教程录屏 11 条被一句「这不是鼠标操作」打回:浏览器里画的 CSS 光标再大也不是系统指针,而我先做的是把它从 18px 调到 30px(完全正确的执行 + 完全错误的方向);正解=CDP 用选择器算「点哪」+ humancast 驱动真实指针「走过去」,坐标走闭环标定(真鼠标走两个已知点、从页面 mousemove 反解仿射)绕开混屏 DPI 全部推理;换终端录屏后同日连废 3 条,四个判据全是假信号 ⚠️首次:空闲 PowerShell 也挂着 conhost 致「有子进程」恒真(clone 空等到 300s 超时后全盘错位;附 CreateToolhelp32Snapshot 未设 restype 致 64 位句柄被 ctypes 截断)、后台进程 SetForegroundWindow 被静默拒绝且只验开打前一次不够(长路径敲到一半焦点被抢,半条命令飞进别的窗口、未闭合引号让 PS 进续行模式吞掉后两条命令)、wait_change 默认 tol=0.002 正好卡在信号上方(回车后整屏差异 0.0014、光标闪烁噪声 0.00012,且基线必须在按回车之前取——秒回命令在 press 返回时已画完)、刚拿到焦点就打字会掉前几个字符(
git --version→t --version,补前导空格当牺牲字符;我改用 ESC 热身反而把上一条没提交的命令整行清掉=毁尸灭迹);附Remove-Item -Recurse删不掉 pnpm 的 reparse point 且报错像「被占用」、废片用固定名致第二条覆盖第一条(覆盖同样是删)、单次验证 3–10 分钟的任务要先跑不录制的彩排(1 分钟验完整条输入链路);第五处假信号是我自己的摘要 ⭐二次验证:收口写回执时把「C 类 9 条」写成「转 Mac 端另录」,而原文写的是「本机即可录,无需 Mac」——意思完全相反,等于把 9 条本该自己做的活写成了别人的;错因是落笔时用摘要记忆而没回读原文那一节(该节前后改过三版,记忆停在中间那版);自摘要比人际转述更隐蔽,因为不经过任何人、没有第二个人在场提异议,判据=凡要写进交付物的「谁做什么」落笔前回原文重读一节 -
⭐ 构建产物的脏改动不是事故_复发是归因错了的信号_v1 —— kb-content 稳定出现 305 个未提交改动,连续两次被误判为「Obsidian 有损格式化事故」,真凶是自家
sync-content.mjs的normalizeFrontmatter()(设计行为:去 BOM/重排 tags/只留 tags+title);复发+上次已修=上次归因错了,比时间戳一分钟证伪(改动 18:00 vs 修复 16:44);附「写进记忆的错误归因会加速下一次误判」「查谁干的要点名册(obsidian.json)而非从 diff 形态反推」「派生物损坏≠源损坏」「问题在展示层就别修数据层」四条 ⚠️首次;处置=git.ignoredRepositories让构建产物别出现在提交位 -
⚠️ 本地部署FastAPI静态站到3000端口_复盘_v1 —— 本地把 FastAPI + 静态站部署到 3000 端口的复盘:先看启动脚本和依赖,再把端口改成环境变量驱动,最后用 HTTP 200 验证访问链路
-
⚠️ 云端定时内容生产连环坑复盘_全绿不等于已发_v1 —— GitHub Actions 定时内容生产 6 连坑(schedule 不触发/OIDC/GitHub App/工具白名单/脏工作区/中转余额)与首次真实跑通;沉淀「全绿≠已发」「手动跑通会掩盖自动路径」「黑盒 action 先接可观测性」「换便宜模型≠更省」四律
-
⚠️ 双部署目标的base路径陷阱_根路径拼出双斜杠_v1 ——
${BASE}/${slug}在根路径拼出//slug协议相对 URL 致全站内链失效;只在一个镜像现形 -
⚠️ 导出运行时无系统字体回退律_CJK豆腐块_v1 —— 桌面靠 OS 字体隐式补缺字形,Web/嵌入式导出无系统字体可借,拉丁字体画的中文全变豆腐块(桌面自测永远测不出);修法=给主力字体显式挂
fallbacks把兜底固化进产物,零体积代价;附 headless 报错无细节须回编辑器 GUI 定位 + ETC2/ASTC 两坑(LastStand→Toy 验证导出实录) -
⚠️ Claude预览环境不派发滚动事件_滚动类功能无法行为验证_v1 —— 预览 iframe 不派发 scroll/IO 事件 + 冻结动画时钟,滚动/动效类无法行为验证;退到验证公式/逐帧采样+真机抽测;07-16 补:交互面板 rAF=0(Konva 动画/hit 图/合成双击连环失灵)→ puppeteer 无头 Chrome 三层退级已产线化
-
⚠️ B站Toy同步事故复盘_版本指纹与外部cron兜底_v1 —— B站 Toy「无法同步更新」三环断裂(校验器误报/无 update 链路缺 id/线上停 v1)诊断实录;沉淀「版本指纹先定性」「校验器 ERROR 先复现解析逻辑」「沙箱 iframe 外部协议静默失效」「多镜像取最新」四条 + 「schedule 不可靠」升 ⭐⭐ 二次验证(外部 cron 兜底首跑即补救实录)
-
⚠️ 二维码载荷硬预算与最长真实载荷验证_v1 —— 扫码 URL 每字符都占码物理密度(中文 deflate 压缩率低,叙事全文是底盘);可选字段按硬预算逐级降配+码框位按长度自适应兜底;验证必须用最长真实载荷,调试捷径的短数据会系统性掩盖超限 bug(镜像自我扫码翻车实录)
-
⚠️ OpenAI兼容止于对话端点_多提供商视频接口分流与真key首测_v1 —— 「OpenAI 兼容」只兼容到
/chat/completions,视频端点三家三套(硅基/video/submit、方舟/contents/generations/tasks、OpenAI/videos)需按 Base URL 分流;模型名不许猜要拉列表,且GET /models默认列表常带分类过滤(视频模型要?type=video);附 flex 列压缩子项、可滚动面板内浮层被裁、错误文案截断掩盖诊断三坑(LibreCanvas 真 key 首测实录) -
⚠️ OpenAI区域封锁与Worker就近执行陷阱_北美DO跳板_v1 —— OpenAI 区域封锁跟调用方 IP 走,CF Worker 就近执行等于没挂、Smart Placement 不救,钉区域唯一免费原语是 locationHint 的 Durable Object;含公开站零密钥同域中转的分层安全闸清单与「双端对照 10 分钟定性」迁移判据(镜像自我线上真 AI 收口实录)
-
⚠️ 风眼洪涝维度改造复盘_单因子分级会在最危险时段给出最低档_v1 —— 分级系统只取一个代理指标时会反向失效:风眼按
windLevel单因子推档,美莎克(2610,强热带风暴、全程未升格)减弱成热带低压后档位回落到四档最低的蓝色,而那正是残涡内陆滞留 26 小时、水库溃坝致 159 人遇难的时段——不是不够灵敏,是自信地报安全;改造=接中央气象台预警平台补洪涝维度、档位取max(风力档,洪涝档)、停编后保留 7 天影响持续期;附「数据源生命周期短于业务风险生命周期(编号存在 6 天,伤亡停编 45 天后才核定)」、「CRLF 混合行尾致多行锚点静默失败且 Git Bash 文本工具查不出」、「textContent赋值会连根删除容器内带 id 的子元素」三条 ⚠️首次
账号与访问
- GitHub强制2FA小白处置_TOTP原理与离线生成器_v1 —— GitHub 强制 2FA(非收费);TOTP 纯本地算码不连外网,setup key 即密钥;手机/商店/扩展弹窗都受阻时,做单文件离线 HTML 生成器双击出码 + 恢复码双留底
- ChatGPT_Windows桌面版安装排障与账号合规边界_v1 —— ChatGPT Windows 安装失败四层排查:使用资格→Microsoft Store 分发→网络链路→账号会话;校正“403=风控”“全开旧TLS”“伪装时区/地区防封号”等过度推断
- ⚠️ ping通不等于路通_fake-ip假信号与节点带宽实测选型_v1 —— fake-ip 下 ping 是自问自答(解析到 198.18.x.x,ICMP 本机应答,节点挂了结果一样),永远绿的信号最没用;选节点不能看延迟——内置延迟测试只测握手,本次带宽垫底 2.72 Mbps 的节点延迟排第 8;附「运行态改了≠配置落盘(重启回滚)」「PS 5.1 按 ANSI 读 UTF-8 无 BOM 致中文标识符静默走错分支」两条 ⚠️首次 + named pipe 调 mihomo API;insight 3 是 全站文字截断体检_检测工具本身要先被证伪_v1 的跨项目二次验证
- ⚠️ 代理环境变量遇TUN双重路由_Codex_CLI流式超时排障_v1 —— TUN 模式已在内核层接管全部流量时,
HTTP_PROXY/HTTPS_PROXY环境变量让请求多走一层 HTTP CONNECT 隧道(双重路由),SSE/WebSocket 长连接握手多 2–4s 致 Codex CLI “正在重新连接”;修复=移除注册表用户级代理变量,WSS 端点 4.57s→0.70s(85%↓);附「Codex API 端点是 chatgpt.com 不是 api.openai.com,测错了看不到问题」「用户级环境变量是全局的,vpn-guard 进程级注入管不到」「time_appconnect+time_starttransfer是代理延迟对比金标准(第二次验证)」三条 ⚠️首次 - ⚠️ DNS防泄露五层修复_fake-ip形同虚设与物理网卡DNS绕过_v1 —— DNS 主动实测 3/3 解析器在大陆、五轮修复到全绿:fake-ip-filter 含
"*"致 fake-ip 名存实亡(声明≠生效)⚠️首次、GEOIP 规则迫使未匹配域名本地解析(漏的是没人安排过的域名)⚠️首次、mihomo-party 配置三层真相源(nameserver-policy 只认应用设置层,改错层等于没改,「运行态≠落盘」二次验证 ⭐⭐)、物理网卡 DNS 114 绕过 TUN 劫持(多网卡并发解析)⚠️首次→改指 198.18.0.2;复测指标要选能分层的(逐解析器清单),一轮逼出一层 - ⭐ 信任资产保得住造不出_账号基线vs人群先验_v1 —— 为什么同样用代理有人从没被封、有人反复被封:风控对老号用 per-account baseline(这个账号的正常长什么样)、对新号只能用 population prior(这类特征的人一般什么样),你的「异常」只要从第一天起就是常态就不构成异常;实测作者长期使用的出口是 DigitalOcean(AS14061,风控黑名单经典 VPS 段)却从未出事,护城河全在账号出身那一层——工具保得住信任资产,造不出信任资产;反直觉推论:账号不是抗封是不可替代,越厚越该省着用
- ⚠️ 2026-08-19_vpn-guard出口归属门槛与四处假绿修复_迭代复盘_v1 —— 上条的来源全链路。工具侧四发现:
hosting=false≠住宅(判据是 ASN 分配年代,16 位空间 2014 年前后耗尽,与 ip-api 的 hosting 标记沿号段年代互补且不重叠,实测 6/6 + 3/3);四处既有假绿/假红(评分公式延迟项是死代码、实际跑的是带宽80%+TLS20%;单节点池 Sort-Object 塌缩致部署目标为空;Unix 下两侧都是 curl 而 curl 不读 scutil 致系统代理下打假绿,影响面覆盖第3/4/5项;轮换池被误报成真实 IP 泄露);方法论 ⚠️首次:测试不投毒就等于没测试——30 条断言里我自己的哨兵被自己的样本中和(ISP 写了Telecom抵消掉待测的 +3),症状与「真的没问题」完全一致;双语文档同漂时 diff 查不出来(第7/第8项 off-by-one 两版同错还传染进 CI);读工作流结果前先读失败计数(3 个设计 agent 挂 2 个,产出实为单一方案自评)
网页视觉与动效
- 🚧 网页主图logo流动动效迭代_液态变形与碎裂问题_v1 —— logo「整体液态流动」正解=feTurbulence+feDisplacementMap;当前 baseFrequency 偏高致「画面太碎」,待降频减octave(周一续修)。含抠图保色/contain自适应/SPA静态资源/reduced-motion豁免等可复用要点
- ⚠️ reduced-motion本机陷阱_动效降级纯淡入而非跳过_v1 —— Windows 关「动画效果」→全浏览器上报 reduce→尊重规范的动效本机全跳过,作者自测”毫无变化”(二次踩坑升律);正解=降级纯淡入(opacity 无位移安全)而非禁用;附滚动渐现完整模式(rv-on 渐进增强/animationend摘类还hover/IO错峰)+ headless 验证三坑(
--blink-settings=prefersReducedMotion=false/虚拟时间口径/CSS被抽外部文件) - 文档密集页两栏排版与对外截图脱敏_v1 —— 图多说明页塞窄栏竖堆致「又长又窄」,正解=加宽容器+图文左右两栏(
minmax(0,…)+align-items:start)+窄屏回落单栏;附三纪律:对外截图「裁窗口外围>逐处打码」(authCode/组织名/内部wiki三类泄露点)、空状态给成型卡片、无头 Chrome 截图做静态视觉自检 - ⚠️ 美工改稿全站落地_跨稿重复才是规范_v1 —— 成套设计稿(30 张)全站落地(PB Arena 简洁低疲劳 V2):跨 ≥3 张稿重复出现的处理才够格当全局规范,单稿出现的按该页特例就地实现;附「规范文字不是待办清单,报缺失前先回读实现」「加派生字段前先数清有几条取数路径(后端分支故意绕开 normalize,只改 normalize 会本地全绿生产为空)」「宁可显示『没有』也不要用宽松日期解析猜一个错值」「要没有 padding 就别写
padding: 0,它会吃掉后续规则」四条 ⚠️首次;落地顺序=token 层全局改先行、逐页重排后置 - ⚠️ 美工改稿V4四屏落地_禁止项是待办不是护栏_v1 —— 上篇直接续篇(PB Arena 浅色对战 V4,只覆盖 4 屏):规范的否定条款是待办不是护栏——V4 禁止「扫描线」而大厅里正好有个
@keyframes scan雷达动画,肯定条款要回读实现核实不缺、否定条款要回代码搜有没有违例,两种都跳过等于只抄了色值;另成套包的范围以文件 mtime 为准不以包名为准(名义「全套」30 张,实际只有 8 张是本轮新稿,22 张是上一轮原样重发)、按下标匹配的全局选择器在组件被复用第二处时静默失效($$(".phase-step")取到 6 个,官方面板那组排前面→比赛房间时间轴从来没亮过,不报错、症状是「没反应」;改版是既有 bug 的显影剂) ⚠️首次;二次验证并扩展「后置同权重胜出」——弹窗写了 620px 却从未生效、线上一直 460px 且无人发现;附1fr最小尺寸是 min-content 会顶破窄屏、flex-wrap 多栏换行后分隔线落在行首(改 grid)
关联
- 知识库网站免备案上线_香港轻量服务器方案 —— 站点免备案上线的服务器/CI 方案(现归在 04_方法论/06_协作运营,主题上属本类目)