5.3 KiB
5.3 KiB
内部 OA 使用度普查与减法路线图:执行计划
0. 启动门禁
- 用户已审查并明确批准本版
prd.md、design.md和implement.md。 - 批准后运行
task.py start;在此之前未查询生产。 - 重新确认工作区只有当前 task 规划改动,不夹带产品、部署或历史任务变更。
- 读取
project-governance.md、当前 backend spec、生产运维事实源和 07-30 组合盘点。
1. 建立模块 allowlist
research/module-catalog.md逐项列出表、时间字段、actor/审计信号、导航、feature flag 和历史建议。- 仅纳入用户可见业务、低频必要后台和明确退役候选;session/challenge、迁移、投递 item 等并入所属模块或系统活动。
- 对照
schema.prisma验证每个表/字段真实存在,对照 workspace/flag registry 验证模块键和开关键。 - 固定 smoke-like 规则和 system action allowlist;未知来源进入
unknown。
2. 实现 task-scoped 只读查询合同
- 在当前 task 下新增审阅用查询器和 runner,未修改
client/src、server/src、部署配置或 migration。 - 查询显式
BEGIN TRANSACTION READ ONLY,设置 statement/lock timeout 并断言transaction_read_only=on。 - 所有表和列来自静态 allowlist;无动态 schema 扫描、DML/DDL、锁行、临时表和存储过程。
- 只返回模块级聚合字段;敏感原始字段均不出事务。
- 输出包含
queryStatus,合同错误统一QUERY_FAILED,不会补成 0。
3. 本地验证
- 合同测试静态拒绝写 SQL/锁行,并验证固定 module/字段白名单。
- 本地真实 schema 的 read-only 执行验证 20 个模块、30 个输出字段、空表与时间聚合。
- synthetic fixture 覆盖 smoke、真人、system 和 unknown 四分桶。
- 模块数/字段合同错误 fail-closed;不存在“缺失当零”的结果路径。
- 敏感字段白名单与
check-sensitive-content通过。
4. 生产只读执行(需启动批准)
- PRE 复用 identity bootstrap,确认唯一 trialrun;运行 SHA 精确等于
origin/main、产品差异 0、migration pending=none、rollback window OPEN/0。 - workspace setting 与有效 feature flag 由生产运行代码在同一 read-only 事务内计算。
- 查询器通过 stdin 送入现有 server 容器;未复制/落盘、未重建镜像、未部署。
- 唯一有效执行严格一次、零 retry。一次 stdin 入口拦截发生在
run()前,证明普查事务执行数为 0 后才修正;最终effectiveQueryExecutions=1。 - 脱敏快照保存为
research/production-usage-snapshot.json;不保存个人/业务明细。 - POST 证据由同一事务的
transactionReadOnly=true、source build match 和全模块queryStatus=PASS构成;本任务无并发归因。
5. 分析与路线图
research/portfolio-decision-matrix.md合并生产快照与 07-30 历史建议。- 先区分真人/smoke/system/unknown,再判断真实人工活跃度;未按总行数或审计总量排序。
- 输出四类矩阵,并逐项说明理由和触发条件。
- 结论收敛为“整体采用度极低”;A/B 采用模式明确前冻结产品功能开发,财务闭环不再被预设为下一项开发。
- 对仓库外业务事实只列负责人确认项,不替业务方回答。
- 显隐、退役或产品优化均为独立后续 task 候选,本任务未实施。
6. 只读 review
- Codex inline 模式由主会话执行只读 reviewer;review 阶段未修改产品代码或生产状态,结论记录在
research/read-only-review.md。 - reviewer 复核生产身份、只读事务、严格一次、输出白名单和失败处理。
- reviewer 抽查真人、smoke、system 和 unknown 各一项归因。
- reviewer 复核零行/flag off/自动审计没有被机械用于隐藏或退役。
- reviewer 复核原 30 天路线图没有扩建零使用模块;用户复核后进一步收紧为 A/B 定位决策门。
7. 验证与收口
python3 ./.trellis/scripts/task.py validate 08-11-internal-oa-usage-census-and-simplificationnode scripts/qa/check-process-contract.mjs --baseline --jsonnode scripts/qa/audit-docs.mjs --check-registry(0 error;仓库既有 22 个未登记 docs warning)node scripts/qa/check-trellis-governance.mjs- 项目敏感内容扫描 findingCount=0,
git diff --check与 task 文件尾随空白检查通过。 - 用户已接受分类矩阵;已将“整体采用度极低”、A/B 采用模式决策门和共同导航减法方向更新到现有事实源与治理 spec,未另建平行路线图文档或导航 task。
- 已使用中文 commit message 并引用
08-11-internal-oa-usage-census-and-simplification;本步交由 Trellis 归档 task,不自动推送。
风险点与停止条件
- 生产身份或运行 SHA 不清楚:停止。
- 查询不是只读、SQL 合同超出 allowlist:停止并回滚事务。
- 输出包含敏感明细:销毁现场输出,修正合同并重新审查;不得降低扫描器。
- 第一次执行状态不确定:不连续重跑。
- 发现真实认证、权限、财务或数据缺陷:只记录并停下,另建相应任务。
- 分类需要业务负责人确认:标记
保持冻结/待确认,不代替决定。