CGL SCRM  /  assets

资产清单

数据量、二维码、模板、交付物

这一页讲「手上有什么」

数据、文件、账号、二维码——这四样东西现在各有多少、放在哪、谁能拿。

69
数据表
1,129 个字段
6
可交付的文件
手册、技能包、字典…
56
页面模板
后台 + 手机端
8
前端资源
样式、脚本、图

可以拿给别人的文件

体积和文件数是现场读磁盘算出来的,不是写在这一页上的—— 这类数字最容易过期(本项目的安装手册就出过「写着 10 页、实际 11 页」)。

东西 版本 实际体积 在哪 说明
AI 接入安装手册 v1.3 1,952,951 B(单个文件) dist/manual/CGL-SCRM-AI-Access-Handbook-v1.3.pdf 发给市场部与同事,可直接转发;不含任何人的 Key
出厂技能包 — 50,200 B(4 个文件) skill/cgl-scrm/ SKILL.md + CLI + MCP 桥 + API 清单;给 WorkBuddy / 豆包 用
本展示站(源) — 133,434 B(20 个文件) deploy/showcase/ 模板 + 样式 + facts.json;渲染产物在 dist/showcase/。由 scripts/gen_showcase.py 从代码生成
模型列名字典 — 17,716 B(单个文件) docs/MODEL_REFERENCE.md 第 9 道闸门 check_generated_docs 守着
服务层接口字典 — 34,914 B(单个文件) docs/SERVICE_REFERENCE.md 同上
模板上下文契约 — 9,416 B(单个文件) docs/TEMPLATE_CONTRACT.md 同上
手册里为什么不写「多少页」: 装订页数会随着重新排版变化,写死了就一定会有一天对不上。 所以发给同事时干脆不提页数—— 会在多个地方重复出现的数字,要么立一道检查守着,要么干脆不说。

运行时真正在用的东西

这些东西不在代码仓库里,但它们决定了系统能不能正常跑。

类别在哪说明
后台账号 deploy/seed_accounts.json 生产账号唯一来源(只存 bcrypt 哈希,不含明文口令)
API Key 体系 api_token 表 服务端只存 sha256;明文只在签发那一刻打印一次
二维码 永久码(QR_LIMIT_STR_SCENE) 不可撤销;指向 scrm.jxccwx.com(自有域名)
海报模板 / 海报 wechat_poster + COS 生成物落 COS 桶
微信服务号配置 wechat_config 回调 /wechat 与 /video/index/index(与原站一致)

数据现状

本地那列是开发库的读数(跑完自检后复原的状态);生产那列从线上自报取。

数据本地(复原后)生产
lead 11,352 11,348
event_signup 9,927 9,924
event 160 160
content_item 27 25
content_tag 14 10
questionnaire 4 3
traffic_source 61 61
lead_tag_rel 1,464 —

开发库里一共 69 张表(含数据库自己建的内部表), 业务表是 69 张。

页面模板都在哪

分组文件数管什么
(根) 4 公共骨架与错误页:每个页面都套用的外壳、404、500
auth 1 登录页
h5 8 客户在手机上看到的页面:活动落地、报名、问卷、分享
manager 43 后台页面:看板、线索、活动、问卷、内容、账号、审计、报表

前端资源(样式 / 脚本 / 图)

文件体积
css/app.css15,502 B
css/h5.css6,956 B
img/cgl-logo.png5,988 B
img/favicon.ico8,156 B
img/material-sample.png21,538 B
img/poster-sample.png15,024 B
js/app.js7,307 B
js/h5.js7,865 B

前端一共 8 个文件、88,336 字节—— 刻意保持很小:页面主要是服务器拼好发过来的,前端只负责一点点交互。

自动生成、且有人守着的文档

docs/ 下这几份是从代码生成的。 它们的风险是「代码改了、文档没跟着改」——所以项目里专门有一道关卡每天检查它们新不新鲜。

文件行数体积
docs/MCP与技能包-使用说明.md2239,064 B
docs/MODEL_REFERENCE.md46517,716 B
docs/SERVICE_REFERENCE.md47534,914 B
docs/TEMPLATE_CONTRACT.md3629,416 B
docs/attribution_match.md1074,914 B
docs/部署-子域名隧道.md1657,432 B
docs/顾问归因-操作手册.md1536,788 B

二维码:一个不可逆的细节

线上用的是「永久码」。 微信的二维码分两种:临时的(有有效期、可以重新生成)和永久的(一旦生成就不能撤销)。 我们选了永久码——因为活动物料、印刷品上的码一旦发出去就收不回来, 临时码过期会造成「印着码的海报全部作废」。

代价是:码里的内容一旦定下来就改不了。 所以生成之前必须先确认好地址——这是为什么「到底该用哪个域名」这件事在本项目里被反复核对, 甚至专门做了自动检查(交付物里出现那个打不开的默认域名,会把检查弄红)。

每条码扫了多少次也有记录,方便看哪个渠道真的有效。这些码挂在 wechat_qrcode 这张表里,图片本身存在对象存储。