ContentForge 体检表重新梳理 · 第 0 步(现算,不手抄)· 2026-10-09 21:38

红 1 黄 5 绿 13
结论 红着,不能开新活
HEAD 871b148
未提交 0 项
未推远端 9 个提交
重跑 ~15 秒 花钱 0 元

一、体检表(每条都有重跑命令)

项判定实测读数现算命令这条意味着什么
预算闸门(make budgets)绿通过;15 个目录齐cd <仓> && make budgets
余量顶死:app红6200/6200 = 余量 0make budgets只许降不许升;任何碰它的改动都要先腾行数
余量将死(≤棘轮缓冲)黄business/01-recon-study/replace 余 1、business/06-analytics/analytics 余 4、hub 余 26make budgets还能加的行数比棘轮缓冲还少 —— 下一笔功能改动八成要先腾行数
空格子(还没长东西)黄business/04-dist/dist(上限 1200)、business/05-cs/cs(上限 1200)make budgets按规矩新建格子应该有原型/方案书在先
全量闸门(make ci)绿最近一次 10-09 19:46|7 步:通过 7cd <仓> && make ci(日志落 ~/contentforge/ci-logs/)日志 1.9 小时前|make ci 不含体积预算,预算在 make gate-fast
工作树干净绿0 项未提交git status --porcelain
本地领先远端(读远端真值)黄未推 9 个提交|落后 0 个git ls-remote origin refs/heads/master远端真值 origin=43ca75c4|推送仍只在 04:00 窗口
仓库卫生守卫(tests/test_arch_t07)绿...... [100%]pytest tests/test_arch_t07_no_sketches_in_repo.py -q
服务单元(systemd --user)绿active 23 个|failed 0 个(内部运维细节已隐去)
定时器绿10 个(内部运维细节已隐去)
上线后巡检(patrol)绿最近一次 systemd 结论 success|Finished (内部服务) - 上线后巡检(探本机服务,只在状态变化时通知).(内部运维细节已隐去)
现状入口页(一页纸)绿79 行 / 上限 120|流水正本 docs/status.md 3957 行(不设上限)wc -l docs/现状.md
真源体量(同一件事的数字住的处数)黄docs/status.md(仓内现状) 3957 行|任务记录.md(交付流水) 1668 行|开发规矩.md(流程全文) 266 行|总表数据.json(跨项目) 16374 字节 / 10 行项目|docs/现状.md(入口页) 79 行wc -l docs/status.md ~/contentforge/任务记录.md这些是流水(体量大是设计):别拿它们当现状读 —— 现状看 docs/现状.md
偏差记账(规矩第 19 条)绿3 条python3 catalog/偏差.py list
本机入口探活绿中枢门 401|IAM 含凭据面 401|复刻 200|视频 200|管理面 (登记例外) 200|控制台 200python3 -c 'urllib…'(见脚本)
子服务自检闸门是否已在线上生效绿匿名直连 /iam/v1/accounts → 401(09-22 审查时是 200 并吐账号清单)python3 -c 'urllib.request.urlopen("http://(内网地址)/iam/v1/accounts")'W1 纵深改造「未提交但已生效」(服务直跑工作树代码)
「未提交」是否已在生产生效绿服务工作目录 { path=主仓/ContentForge/.venv/bin/python ; argv[]=主仓/ContentForge/.venv/bin/python -m uvicorn iam.serve:app --app-dir 主仓/ContentForge/platform --host (内网地址) --port 8110 ; ignore_errors=no ; start_time=[n/a] ; stop_time=[n/a] ; pid=0 ; code=(null) ; status=0/0 } ≠ 仓 主仓/ContentForge(内部运维细节已隐去)
真身仓所在卷黄/dev/nvme0n1p5 ntfs3 @ 外部数据盘findmnt -no SOURCE,FSTYPE <仓>外挂 NTFS:盘脱挂载会让服务卡 activating;体检/提交前先确认它在
仓所在盘余量绿87.3 GB 可用df -h <仓>

二、第 0 步收口:那 0 项未提交的到底是什么

不是垃圾堆,是两条在建成品,而且已经在生产上跑着。按改动时刻分:

批次文件

09-23 批次 = 中台四路审查(W1–W4)的实施,四份报告与红证都在 http://(内网地址)/review-20260922/ 的 impl/ 下:

09-24 批次 = 一条真实故障的修复:W1 给 IAM 装了 fail-closed 的闸门后,中枢问 IAM 的内部调用 一个头都不带 → IAM 一律回 401 → 中枢翻成 iam_error → 任何会话都过不了鉴权(真会话也一样), 控制台壳拿到非 401 就落进「本机调试模式」、首页入口全不渲染。hub/identity.py 的修法就是补上 X-Internal-Token(净 −11 行)。tests/test_hub_t07_iam_door_token.py 钉住它。

三、hub 超预算的精确根因(不是「代码变多了」)

时点hub 行数怎么来的
HEAD(= 871b148,绿)976git show HEAD:hub/*.py | wc -l
W2 交活时(09-23 00:21,绿)992W2 自报;+16 = 新增 retry.py 85 + store.py +112,减掉把各模块文档串搬进 hub/README.md 省下的行
现在(红)102409-24 的 IAM 门牌修复把 hub/identity.py 从 88 写回 115(+27)→ 越线

可选的两条路(要你勾):

另一件事要你知道:预算按「行数」记,于是文档串也算代码行。W2 为了不越线把模块文档串搬去了 README(AST 逐文件核对相同)。 这条口径是不是你想要的,值得在后面对账那一步一起定。

四、全量闸门(make ci)最近一次实跑

日志 ~/contentforge/ci-logs/make-ci-20261009-1934.log(1.9 小时前)|用例摘要:(没读到 failed 汇总行)

步骤结论耗时
依赖安装绿0 秒
数据库运行时与库结构绿1 秒
迁移基线与漂移检测绿5 秒
验收测试 (pytest)绿698 秒
测试规模棘轮绿1 秒
检索质量阈值回归绿1 秒
运维自检(清理/权限姿态)绿1 秒

失败用例(7 条,取前 40):

五、现算工具(这一页怎么来的)

/usr/bin/python3 ~/contentforge/catalog/体检-cf.py —— 12 项体检全部跑真命令; 跑不动的项判黄并写明原因,绝不猜数。数据同时落 体检-CF.json,下次重跑可逐项比对。

它同时就是「梳理」这件事唯一的现算命令:跑一下应输出「全绿」;跑不通不算交付。