Next-Gen Zoning Extractor / V2.0
文件、GitHub 与云端架构
一份面向组员和非技术协作者的结构说明:代码在哪里、项目文件放哪里、GitHub 如何协作、Cloud 如何在电脑关机后继续工作,以及各目录到底负责什么。
代码与规则
GitHub 仓库V2 源码、Schema、协议、测试、Agent 规则、文档与流程图
→
PR + GitHub Actions每次改动独立分支;确定性测试通过后合入 main
真实项目数据
外置 V2_RUNTIME法规 PDF、报批/审批文件、Gold、运行回执、模型答案与 HTML 报告
↔
Google Drive团队共享的 projects 镜像;不保存缓存和凭据
云端执行
Codex Cloud / Codespaces手机发起任务、写代码、跑确定性测试、提交 PR
→
A100 / Qwen(后续)真实 12 次 Answerer、批量城市与重计算;结果冻结后回传 Judge
最重要的边界:GitHub 管“程序如何工作”;Drive 和 V2_RUNTIME 管“程序在什么项目上工作”。法规、Gold、答案、凭据和缓存不进入 Git。
01. GitHub 仓库根目录
团队首先需要认清的文件地图
| 目录 | 主要职责 | 谁会使用 |
app/ | 现役、按版本冻结的应用包。当前只看 app/2.0.0/;新功能应进入后续版本,而不是散落在根目录。 | 开发者 / Agent |
AGENT/ | 团队 AI 协作说明、路径规则、Cloud/手机说明和接力单。队友的 Codex 先读根 AGENTS.md,再读这里点名的接力单。 | Codex / Claude |
docs/ | 论文、汇报、历史研究交付、项目动态地图与 docs 台账。它是知识和状态说明,不是运行代码仓库。 | 全组 |
archive/ | 旧 V1 的归档索引、冻结 Git tag 和回放说明。旧代码不在现役目录重复保存,需要时通过 tag 恢复。 | 复现 / 审计 |
config/ | 外置 workspace 的示例配置:Windows、Codespaces、Codex Cloud 各有一份路径合同;真实凭据不放这里。 | 环境配置 |
governance/ | 架构政策和边界规则,防止 V1 旧目录、运行数据或错误 Skill 重新混入 V2。 | CI / 审查 |
probes/ | 小型、数据化的验收样例与城市探针定义;不保存大型 PDF、缓存或城市专用程序。 | 测试 |
tools/ | 架构检查、Drive 同步等跨版本工具。应保持通用,不承载某个城市的答案。 | 开发 / CI |
visualization/ | 架构图、流程图及其 SVG/PNG/HTML 说明,用于演示和论文表达。 | 汇报 / 产品 |
.github/ | GitHub Actions。验证架构、release lock、Cloud 脚本和 62 项确定性测试。 | GitHub |
.devcontainer/ | GitHub Codespaces 启动环境:安装 V2、rclone、外置 runtime 并自动测试。 | Codespaces |
.codex/ | Codex Cloud 的 setup/maintenance 脚本。云端每次创建或恢复容器时复现同一 V2 环境。 | Codex Cloud |
tmp/ | 本地临时区。可重建、不属于正式交付;不应提交到 GitHub。 | 本机临时 |
入口顺序:00_START_HERE.md → AGENTS.md → docs/项目动态地图.md → 任务接力单 → app/2.0.0/README.md。不要从文件数量最多的目录开始扫。
02. app/2.0.0:现役程序内部
版本包、三条业务链与公共底座
app/2.0.0/
├─ components/ 组件注册表、迁移锁
├─ protocols/ A-F 等实验协议
├─ schemas/ Question/Gold/Answer/Judge 合同
├─ skills/ 仅 Gold 与 Report 两份权威 Skill
├─ input/ 三类 PDF 的角色与访问规则
├─ tests/ 确定性、边界和集成测试
└─ src/zoning_v2/
├─ application/ CLI 与跨域编排
├─ platform/ 输入、Artifact、Provider、缓存
└─ domains/
├─ d01_question_gold/
├─ d02_answer_modules/
└─ d03_judge_evaluation/
components / protocols / schemas / input
前三类分别登记组件、实验流程与数据合同;input 规定法规、报批/审批材料和 Gold reference 的角色与读取权限。代码、合同和 release lock 必须同步。
skills
V2 只保留两份可复用工作流:结构化 Gold 与评测报告。Question、Answerer、Judge 是注册组件,不再伪装成 Skill。
tests / pyproject / release.lock
tests 验证合同与边界;pyproject.toml 定义安装和命令;release.lock.json 锁定版本构成。现行基线为 57 通过、5 跳过、0 失败。
01 Question / Gold
fact_extractor:从报批/审批材料抽事实question_generator:由 LLM 把事实编译成问题question_builder:生成并校验 QuestionSpecgold_builder:绑定私有标准答案gold_regulation_crosswalk:对应法规页码、章节和 chunkgold_legal_reconciler:处理适用性、冲突和映射失败
02 Answer / Modules
module_1_extract:PDF 转 chunk/tablemodule_2_retrieve:相关性检索module_3_legal_priority:法律优先级fusion:合并 2+3slot_router:按 required slots 逐槽检索module_4_evidence_gate:检查证据闭合evidence_pack_compiler:物化 A-F 证据包answer_job_compiler:编译可恢复作答任务answerer:Gold-blind 作答
03 Judge / Evaluation
primary_judge:读取冻结答案与 sealed Goldmetric_compiler:编译五项指标report_renderer:输出论文式 HTMLdag.py / workflow.py:顺序、检查点与失败恢复- A-F 是六种证据输入,不是六个 Module
- Gate、Answer 和 Judge 结论必须分开显示
源码入口:application 负责 CLI 与跨域编排,platform 提供输入、Artifact、Provider 与缓存,__main__.py 启动程序;__pycache__ 只是自动缓存,可忽略。Module 2/4 的冻结核心只能通过新适配组件扩展。
03. V2_RUNTIME:真实项目与运行数据
仓库外、可同步、不能混入 Git
V2_RUNTIME/
├─ workspace/
│ ├─ artifact_store/ 内容寻址公共产物
│ └─ projects/
│ ├─ fremont-centerville-plaza/
│ └─ livermore-3541-east/
├─ cache/ 可重建缓存
├─ temp/ 临时目录
├─ config/ 私有运行配置
├─ handoff(s)/ 跨机器冻结包与接力资料
├─ source_staging/ 原始资料暂存
└─ reference_library/ 城市/项目参考索引
为什么必须外置
PDF、Gold、模型答案和回执会快速膨胀仓库,也可能包含私有项目事实。外置后,代码可以公开审计,数据仍按项目权限管理。
- Git:版本、逻辑、合同
- Drive:团队项目资料与报告
- 本地/A100:缓存、模型和重计算
每个项目的标准目录
workspace/projects/<project_id>/
├─ inputs/
│ ├─ files/ 人工投放原始 PDF
│ │ ├─ zoning document/ 法规原文
│ │ ├─ project document/ 申请书、图纸、项目说明
│ │ └─ gold reference/ Staff Report、批准文件、人工核对资料
│ ├─ regulations/ 程序生成的法规 hash 冻结副本
│ ├─ application/ 程序生成的项目材料冻结副本
│ ├─ gold_sources/ 程序生成的私有参考冻结副本
│ └─ manifests/ 输入清单与 SHA-256
├─ cases/ 问题、事实台账、私有 Gold 绑定
└─ runs/ Module、A-F、Answer、Judge、Metrics、Report
| 输入角色 | Question / Gold | Module 1-4 / Answerer | Judge |
| 法规原文 | 可读 | 可读 | 可读 |
| 项目报批材料 | 可读 | 仅题目公开事实 | 可读 |
| Gold reference | 私有可读 | 禁止 | 答案 hash 冻结后 |
一次预处理,多次答题:同一法规的 Module 1 结果和 Module 3 可复用;换题时只重跑与问题相关的 Module 2、Fusion、Router/Module 4 与 Answerer。
04. GitHub 与云端协作
电脑关机后,任务仍可继续
手机 / 桌面选择 Cloud 环境,写任务提示词
Codex Cloud从 main 克隆;读 AGENTS 与接力单
独立分支只修改白名单;提交 Draft PR
GitHub Actions架构、锁、Cloud 脚本、测试
main通过审查后合并,成为团队真源
Codex Cloud:Agent 主导
- 环境:Zoning V2 Cloud
- Setup:
bash .codex/cloud/setup.sh - Maintenance:
bash .codex/cloud/maintenance.sh - Agent 阶段网络默认关闭
- 适合手机发任务、看 diff、审 PR
GitHub Codespaces:终端主导
- 从
main 创建 .devcontainer/ 自动安装 V2 和 rclone- 适合交互终端、Drive 同步、手动检查
- 手机浏览器可用,但不如 Cloud 对话直观
Google Drive:团队数据
- 路径:
Zoning Code Archive/V2_RUNTIME/workspace/projects - 保存法规、报批/审批、私有 Gold、报告
- 按 project_id 与本地目录一一对应
- 只用 copy 同步,避免误删
A100 / Qwen:高算力执行
- Module 结果只生成一次并冻结
- Qwen 分别读取 A-F,运行 12 次 Answerer
- 答案 hash 后回传 Codex Judge
- 模型、embedding 和大缓存不进 Git/Drive
Module 2 接力
AGENT/handoffs/260802_V2_Module2混合检索_Kaiwen-to-Team.md
新建混合检索适配器;保留 BM25 保底与 cross-reference,不改冻结核心。
Module 4 接力
AGENT/handoffs/260802_V2_Module4证据闭合_Kaiwen-to-Team.md
新建逐义务 Gate Adapter 与定向补检索;Gate PASS 不冒充 Judge Coverage。
飞机上的现实边界:有网络时可从手机继续 Cloud;没有网络时只能提前启动任务,恢复联网后再审查。Remote 依赖本机保持开机,不等同于 Cloud。
05. 当前状态、权限与下一步
哪些已经可用,哪些仍是下一阶段
| 内容 | GitHub | Drive | Cloud 临时盘 | A100 本地盘 |
| V2 源码 / Schema / 测试 | 真源 | 不需要 | 克隆副本 | 部署副本 |
| 法规 / 报批 / 审批 PDF | 禁止 | 共享真源 | 按项目复制 | 按批次复制 |
| 私有 Gold / Judge 材料 | 禁止 | 受控保存 | Judge 阶段 | Answerer 禁止 |
| 答案 / 回执 / HTML | 一般不入库 | 选定结果 | 任务产物 | 批次产物 |
| 缓存 / embedding / 模型 | 禁止 | 不建议 | 临时可重建 | 主要位置 |
| API Key / OAuth / rclone | 禁止 | 禁止 | Secrets | 系统密钥 |
已完成V2 文件分层、三业务域、Module 1-4 接线、A-F/Answer/Judge/Report 合同、Codespaces、Codex Cloud、Drive 桥、手机入口、PR #12 云端验证。
正在接力Module 2 混合检索;Module 4 逐义务证据闭合。二者必须独立分支开发,并保留 migration lock。
下一重点最终交互产品:三类 PDF 导入、快速/研究模式、进度与错误解释、答案/Gold/Judge 对照、批次与报告入口。
后续接入A100 双卡与 Qwen Answerer、真实多城市压力测试、非技术 Launcher/EXE、正式人工 Gold 审核界面。
组员第一次打开仓库
- 读
00_START_HERE.md - 读根
AGENTS.md - 在动态地图确认任务卡号
- 只读对应接力单列出的文件
- 独立分支 + Draft PR + CI
明天从手机研究交互产品
- 打开 Zoning V2 Cloud
- 从
main 新建 Cloud 任务 - 使用
AGENT/CODEX_CLOUD_MOBILE.zh-CN.md 中的提示词 - 先做流程、页面、状态机和验收范围
- 不调用真实模型,不改冻结 Module
判断架构是否清楚的标准:任何人都能回答四个问题 - 代码在哪里、数据在哪里、谁能读取 Gold、一次修改怎样经过 PR 与 CI 进入 main。
相关入口:GitHub cogco1/next-gen-zoning-extractor;Codex Cloud 环境 Zoning V2 Cloud;Google Drive Zoning Code Archive/V2_RUNTIME/workspace/projects。
06. 文件夹层级导读
对应截图 1-4:从仓库外壳走到三条业务链
next-gen-zoning-extractor-v2/ 仓库:代码、合同、协作规则
└─ app/2.0.0/ 当前可发布版本包
├─ components / input / protocols / schemas 版本构成与机器合同
├─ skills / tests 工作流说明与验证
└─ src/zoning_v2/ Python 源码包
├─ application/ CLI 与流程编排
├─ platform/ 输入、Artifact、Provider、缓存
└─ domains/ 三条业务链
├─ d01_question_gold/
├─ d02_answer_modules/
└─ d03_judge_evaluation/
截图 1 · 仓库根目录
最外层是团队协作外壳。app 放现役应用;AGENT 放接力单;docs 放正式说明;archive 放 V1 历史;governance 和 .github 负责边界与 CI。根目录不是堆放城市 PDF 的地方。
截图 2 · app/2.0.0
这是一个可安装、可测试、可锁定的完整版本。components 登记组件,input 定义三类输入,protocols/schemas 定义流程和数据合同,release.lock.json 锁定版本。
截图 3 · src/zoning_v2
application 决定先后顺序;platform 提供公共基础设施;domains 才是业务功能。__main__.py 是启动入口,__pycache__ 只是自动生成的缓存。
截图 4 · domains
这里不是三个版本,而是三个职责域:d01 生产问题与私有 Gold;d02 只看法规并作答;d03 在答案冻结后评价。三者通过 Schema 交接,不能直接互读内部文件。
最短寻找路径:想改问题或 Gold,进 d01;想改 Module 或 Answerer,进 d02;想改指标、Judge 或报告,进 d03。想改跨域顺序,才去 application。
07. 三个业务文件夹
对应截图 5-7:逐项解释
截图 6 · d01_question_gold
fact_extractor:从报批/审批材料抽取项目事实question_generator:由 LLM 把事实编译成自然语言问题question_builder:生成并校验 QuestionSpecgold_builder:建立私有 Gold 候选与封存答案gold_regulation_crosswalk:把 Gold 对应到法规页码、章节和 chunkgold_legal_reconciler:处理版本、适用性、冲突和缺失证据
截图 7 · d03_judge_evaluation
primary_judge:答案 hash 冻结后读取 sealed Gold,逐槽裁决metric_compiler:将裁决编译为五项指标report_renderer:生成论文式 HTML 报告dag.py:描述评价任务之间的依赖关系workflow.py:执行顺序、检查点和失败恢复
这里不检索法规、不生产答案;它只负责独立对账和呈现。
截图 5 · d02_answer_modules
module_1_extract:PDF 转 chunk/table,同一法规通常只跑一次module_2_retrieve:按问题做相关性检索,换题时重排module_3_legal_priority:法规效力与优先级,可跨问题复用
fusion:融合 Module 2 与 3slot_router:把问题拆成 required slots 并逐槽检索module_4_evidence_gate:检查各槽证据是否闭合
evidence_pack_compiler:从公共产物物化 A-F 六套证据包answer_job_compiler:绑定问题、证据、provider、重复次数和预算answerer:调用 Codex、Claude 或 Qwen 做 Gold-blind 作答
复用原则:Module 1、3 与公共 chunk 只生成一次;Module 2、Fusion、Router、Module 4 随问题重算;A-F 的 Answerer 必须分别运行,不能用同一答案冒充六组实验。
06. 截图导读:仓库根目录
从这里进入,但不要逐层盲扫

截图 01 · 本地 Git 仓库根目录。程序、协作规则、文档和历史归档在这里分层。
01 app现役、可发布的 V2 应用包。当前正式入口是 app/2.0.0。
02 AGENT团队与 AI 的协作说明、任务边界和接力单;队友动手前先读。
03 docs论文、汇报、动态地图和正式说明。它解释项目,但不承载运行代码。
04 archiveV1 历史快照与迁移说明,仅用于复现和审计,不参与 V2 主链。
05 config不同运行环境的示例配置;真实密钥与真实项目数据不得放入仓库。
06 governance目录、迁移锁和边界检查,防止旧结构或运行数据重新混入 V2。
07 probes小型验收样例与城市探针,只证明特定边界,不代表总体准确率。
08 tools / visualization通用检查、Drive 同步、架构图和报告展示工具。
09 .github / .devcontainer / .codex分别管理 CI、Codespaces 和 Codex Cloud 的可复现环境。
10 tmp可删除、可重建的本地临时文件,不应提交。
根目录文件:00_START_HERE.md 是入口;AGENTS.md 是执行规则;README.md 是项目概览;提交台账.md 记录正式变更。
07. 截图导读:app/2.0.0
一个自洽、可锁定的应用版本

截图 02 · 当前版本包。新增正式能力应进入后续版本,而不是散落到仓库根目录。
01 components组件登记与迁移来源;回答“当前版本到底包含哪些组件”。
02 input定义法规、报批/审批材料与 Gold reference 三种输入角色及权限。
03 protocolsA-F、Gold 隔离、Answer/Judge 顺序等实验协议。
04 schemasQuestion、Gold、Answer、Judge 等 JSON 合同,是组件之间的接口。
05 skills只保留 Gold 和 Report 两项可复用工作流。
06 src真正的 Python 源码,分为应用编排、公共平台和三条业务链。
07 tests合同、边界、迁移锁和集成测试;与真实城市准确率分开报告。
三个根文件:pyproject.toml 定义安装与命令;README.md 给人读;release.lock.json 锁定版本构成与哈希。
08. 截图导读:src/zoning_v2
程序代码的三层分工

截图 03 · Python 包入口。这里按职责分层,不按城市或实验版本堆文件。
01 applicationCLI 与跨业务链编排。决定“先做什么、后做什么”,但不实现检索或 Judge 细节。
02 domains三条核心业务链:Question/Gold、Answer/Modules、Judge/Evaluation。
03 platform输入管理、Artifact 存储、Provider 接口、缓存等公共基础设施。
04 __main__.py允许以 Python 模块方式启动 V2;它把命令转交给 application。
可忽略:__pycache__ 是 Python 自动生成的字节码缓存,不是源码,也不应进入 Git。
09. 截图导读:domains
生产、作答、评价彼此分离

截图 04 · 三条业务链。编号表示流程顺序,不表示耦合成一个大文件。
01 d01_question_gold读取项目报批/审批材料,抽取公开事实,生成问题,并在私有路径建立带法规交叉引用的 Gold。
02 d02_answer_modules只依据法规运行 Module 1-4、物化 A-F 证据包,并让 Answerer 在看不到 Gold 的情况下回答。
03 d03_judge_evaluation答案冻结后才读取 sealed Gold,生成 Judge 裁决、五项指标与 HTML 报告。
隔离原则:d01 的私有 Gold 不得流入 d02;d03 只能在答案文件完成哈希冻结后启动。
10. 截图导读:Question / Gold
先有项目事实,再编问题与私有答案

截图 05 · 问题与 Gold 属于同一业务域,但生成物必须分权限保存。
01 fact_extractor从 Staff Report、审批意见和报批材料提取经人工筛选的项目事实。
02 question_generator由 LLM 把项目事实编译成开发商式、条件明确的自然语言问题。
03 question_builder确定性地生成 QuestionSpec、question_id、task_type 和 required slots。
04 gold_builder把已确认事实绑定为 Gold 候选与封存答案,不允许 Answerer 读取。
05 gold_regulation_crosswalk在法规里寻找对应页码、章节和 canonical chunk,使项目事实与法规答案对得上。
06 gold_legal_reconciler处理版本、适用性、例外和冲突;无法确认的项目不进入正式准确率分母。
关键输出:公开的 QuestionSpec 与私有的 sealed Gold 成对,但保存在不同权限路径。
11. 截图导读:Answer / Modules
模块只跑必要部分,答案按 A-F 隔离

截图 06 · 现役作答链。Module 结果可复用,六组 Answerer 调用不能互相冒充。
01 module_1_extract法规 PDF 转稳定 chunk 与 table;同一法规通常只运行一次。
02 module_2_retrieve按问题做相关性检索;换题时需要重新排序。
03 module_3_legal_priority判断法律效力和条文优先级,通常可跨问题复用。
04 fusion合并 Module 2 与 3 的排序结果,生成 E 组候选。
05 slot_router把问题拆成 required slots,逐槽检索,避免多个答案挤在一个 Top-k 中。
06 module_4_evidence_gate检查每个槽位的证据是否闭合,形成 F 组;Gate PASS 不等于 Judge 正确。
07 evidence_pack_compiler从同一份公共产物物化 A-F 六套 Gold-free 证据包。
08 answer_job_compiler绑定问题、证据组、provider、重复次数和预算,形成可恢复作答任务。
09 answerer调用 Codex、Claude 或 Qwen,仅依据当前证据包生成结构化答案。
12. 截图导读:Judge / Evaluation
答案冻结后,独立评价

截图 07 · 评价链。这里不生产法规答案,只比较、计分和呈现。
01 metric_compiler把 Judge 的结构化裁决编译为 Correctness、Coverage、Faithfulness、Uncertainty F1 与 Consistency;不合法标签显示 N/A,不伪造零分。
02 primary_judge读取冻结答案、证据与 sealed Gold,逐槽判断缺项、错值、错单位和引用缺口。
03 report_renderer把城市、问题、Gold、A-F、Judge、耗时和 token 回执渲染成论文式 HTML。
04 dag.py / workflow.py负责评价顺序、检查点和失败恢复;它们是编排器,不是第四个评价指标。
完整闭环:项目材料生成 Question/Gold - 法规生成 A-F 答案 - 答案 hash 冻结 - Judge 对账 - 指标编译 - HTML 报告。
← MonkeyHub Institute · People