Code Wiki openqa-cn/codexqa@leviacicig-dev — 架构知识图谱 生成于 2026-09-21 22:29

核心架构

相关源文件
怎么读:先看「关键发现」:本仓不是一条总线,而是三条互不连通的技能簇。测试数据从 p06 进 p02 再到 p04;缺陷扫描走 p01↔p03;用例生成走 p07↔p08。p05 审查扫描器没有跨社区依赖,后看。
8个模块本报告收录
7 个有依赖 · 1 个独立 · 图上共 12 个社区(按规模截到 8)
模块社区
12
图上全部社区
本报告收录
8
按规模选取
独立模块
1
没有列出的依赖
依赖关系
8
社区之间的有向边

关键发现 先看这些,再下钻

8/12
报告按规模截断
图上有 12 个模块社区,本页只收录规模最大的 8 个。根因诊断里的 ensure_codexqa.ts / draft_report.ts 以及 smoke.mjs 等不在这 8 页里,不要把本图当成全仓地图。
p02
p02 测试数据适配存储是枢纽
它同时依赖 p06 和 p04;p04 工具绑定流水线对它有最重的调用边。改适配器、配置存储或 HTTP 客户端,会同时碰到绑定流水线和校验套件。先读它对外的 JsonObject 用法和 store/adapter。
3
三条互不连通的技能簇
收录页之间没有一条能从「所有入口」走到「所有存储」的边。缺陷扫描(p01↔p03)、测试数据(p06↔p02↔p04)、用例生成(p07↔p08)是三张子图。按你要改的技能选一条路径,不要指望有总总线。
p06
测试数据主链路走得通
校验套件 p06 依赖 p02,p02 再依赖领域流水线 p04(反向也成立)。要读测试数据生成,从 _verify_enterprise_onboard.ts 进适配层,再进 bind_action.ts / selectTool。
p05
p05 审查扫描器是独立模块
scan_file 扇入很高,但这次导出没有列出跨社区依赖。它是 code-reviewer 的规则扫描脚本簇,不进入口/应用/领域/存储四层,后看即可。

系统怎么运转 一句话定位 + 主链路

这是 CodexQA 技能仓库:若干可单独安装的技能脚本(缺陷扫描、测试数据、用例生成、代码审查、根因诊断等),外加文档预览与发布脚本。它不是一个统一进程里的「请求进来再落库」产品,社区检测也按类型/符号簇切开,而不是按技能目录一一对应。

主协作落在三处。测试数据技能:校验套件(p06)进出适配与存储(p02),再和工具绑定流水线(p04)互调,其中 p04→p02 的调用最重。缺陷扫描技能:Python 编排(p03,render_html_report / ensure_scan_tools)与仓库脚本入口(p01,含 scan_full、cmd_submit、文档预览重建)双向依赖。用例生成技能:知识库与 HTML 报告(p07,render_html / ingest_one)和增量拉取/冻结(p08,fetch_pr / archive)互指。

入口层是「人怎么把任务跑起来」:p01 里的 CLI/扫描/预览脚本,以及 p06 的验证套件 main。应用层是两条编排:p03 缺陷扫描、p07 用例知识与报告。领域层是 p04 的 selectTool / runPipeline / invokeEntity。存储层是 p02 的配置/数据/API 适配,以及 p08 对远程代码的拉取与归档。

索引质量:本地节点约 2467、占位约 366(约 13%),无碰撞组。社区边界和跨技能边可以信方向,但 p01 把文档预览、根因 CLI、测试数据 mock 和需求解析捆在同一页,标题 rebuild_previews · ZipReader 只是规则名,不要当成单一产品模块。

模块地图 入口 → 应用 → 领域 → 存储

p01 仓库脚本入口████████████████████████████████████████████████354
p02 测试数据适配存储██████████████████████████████████████████░░░░░░312
p03 缺陷扫描编排███████████████████████████████████████░░░░░░░░░292
p04 工具绑定流水线████████████████████████████████████░░░░░░░░░░░░271
p07 用例知识与报告█████████████████████████░░░░░░░░░░░░░░░░░░░░░░░185
编号 分层 模块 规模 依赖谁
p01入口仓库脚本入口 · CLI / 预览 / 扫描启动354p03
p06入口测试数据校验套件 · 企业接入与场景验证207p02
p03应用缺陷扫描编排 · 工具、范围、HTML 报告292p01
p07应用用例知识与报告 · 入库、门禁、HTML185p08
p04领域工具绑定流水线 · selectTool / runPipeline271p02
p02存储测试数据适配存储 · 配置、目录、HTTP312p06,p04
p08存储增量拉取与冻结 · fetch_pr / archive129p07

分层 入口 → 应用 → 领域 → 存储

架构图 分层与真实依赖

%%{init: {'theme':'base','themeVariables':{'background':'#f0f3f6','primaryColor':'#ffffff','primaryTextColor':'#1a2332','primaryBorderColor':'#d5dde8','lineColor':'#5a6578','secondaryColor':'#e6f4ee','tertiaryColor':'#f0f3f6','clusterBkg':'#f8fafc','clusterBorder':'#d5dde8','fontFamily':'Segoe UI,PingFang SC,sans-serif'}}}%%
flowchart TB
  subgraph entry["Entry"]
    P01["p01 仓库脚本入口"]
    P06["p06 测试数据校验套件"]
  end
  subgraph app["Application"]
    P03["p03 缺陷扫描编排"]
    P07["p07 用例知识与报告"]
  end
  subgraph domain["Domain"]
    P04["p04 工具绑定流水线"]
  end
  subgraph store["Storage"]
    P02["p02 测试数据适配存储"]
    P08["p08 增量拉取与冻结"]
  end
  P01 -->|deps| P03
  P03 -->|deps| P01
  P06 -->|deps| P02
  P02 -->|deps| P06
  P02 -->|deps| P04
  P04 -->|deps| P02
  P07 -->|deps| P08
  P08 -->|deps| P07
classDef add fill:#e6f4ee,stroke:#0f6b4c,color:#1a2332
classDef change fill:#ffedd5,stroke:#c2410c,color:#1a2332
classDef risk fill:#fde8e4,stroke:#b42318,color:#1a2332
  class P02 risk
  class P01 change
  class P04 change
          
依据:wiki inputs --kind architecture --limit 8 的社区依赖;分层按签名(CLI/校验套件 → 编排 → 绑定流水线 → 适配存储/远程拉取)。
是否截断:是。12 个社区只画规模最大的 8 个;独立页 p05 未进四层。
图在说明:三条互不连通的双向依赖簇,没有总入口接到所有存储。赤陶 p02 是测试数据枢纽。
%%{init: {'theme':'base','themeVariables':{'background':'#f0f3f6','primaryColor':'#ffffff','primaryTextColor':'#1a2332','primaryBorderColor':'#d5dde8','lineColor':'#5a6578','secondaryColor':'#e6f4ee','tertiaryColor':'#f0f3f6','clusterBkg':'#f8fafc','clusterBorder':'#d5dde8','fontFamily':'Segoe UI,PingFang SC,sans-serif'}}}%%
flowchart LR
  G1["p06 校验套件"]
  G2["p02 适配存储"]
  G3["p04 绑定流水线"]
  G1 -->|deps| G2
  G2 -->|deps| G3
classDef add fill:#e6f4ee,stroke:#0f6b4c,color:#1a2332
classDef change fill:#ffedd5,stroke:#c2410c,color:#1a2332
classDef risk fill:#fde8e4,stroke:#b42318,color:#1a2332
  class G2 risk
          
依据:architecture 中 p06→p02、p02→p04;page 交叉边上 p04 对 p02 的 calls/uses 最重。
是否截断:否(只画测试数据这一条真实路径)。
图在说明:要改测试数据生成时的阅读顺序:校验入口 → 适配存储 → 工具绑定。

数据流与存储 主链路怎么穿过各层

测试数据:人从 p06 的验证 main / runEnterpriseOnboardSuite 进来,落到 p02 的配置、目录和 HTTP 适配(loadConfig、JsonObject),再进入 p04 的 selectTool → runPipeline → invokeEntity。反向边也存在:绑定流水线大量调用适配层。

缺陷扫描:p01 的 scan_full / scan_incremental / cmd_submit 与 p03 的 ensure_scan_tools、build_scope_plan、render_html_report 互相调用。没有再连到 p02 存储簇。

用例生成:p07 的 ingest_one / render_html 调用 p08 的拉取与归档(fetch_pr、archive);p08 再指回 p07。这是第二条存储出口,只服务用例技能。

p05 不出现在上述任何边上。

阅读路径 按这个顺序读源码

1. p06 测试数据校验套件 — 入口;runEnterpriseOnboardSuite / runPipelineScenarioSuite 把场景跑起来,下一步是它列出的依赖 p02。
2. p02 测试数据适配存储 — 从 p06 列有依赖;配置、目录、收藏和 HTTP 都在这里,先搞清 JsonObject 和 store。p04 对它的调用最重,改这里会同时碰到绑定流水线。
3. p04 工具绑定流水线 — 从 p02 列有依赖;读 selectTool、runPipeline、invokeEntity,看一次实体怎么被绑到工具。
路径 B · 缺陷扫描:p01 → p03 — p01 有 scan_full / cmd_submit,且依赖 p03;到 p03 读 ensure_scan_tools 与 render_html_report。两条之间有真实双向依赖,不要跳到 p02。
路径 C · 用例生成:p07 → p08 — p07 的 ingest_one / render_html 依赖 p08 的 fetch_pr / archive。只在改增量用例时走这条。

模块笔记 点开看接口和谁在往来

p01 仓库脚本入口 规模最大 354 个符号 · 依赖 p03 · 37 个文件

职责:把「人怎么启动任务」捆在一起:文档预览重建、缺陷扫描 CLI、根因 diagnose.ts、需求解析、测试数据 mock。规则标题是 rebuild_previews · ZipReader。

对外接口:scan_full、scan_incremental、cmd_submit、cmd_write_report、convertFile、runParse。

内部调用:多条命令落到 run_script(scan_full / cmd_finalize / cmd_agent_stage2)。

跨模块:与 p03 双向依赖。不要假设它会调用 p02。

p02 测试数据适配存储 枢纽 312 个符号 · 依赖 p06、p04 · 被 p04 高扇入调用

职责:测试数据技能的适配层:配置、数据存储、API 目录、收藏、HTTP、slot 脚手架。

对外接口:loadConfig、main、cmdAdd、scaffold,以及多处 executorStub 构造。

内部调用:loadPinned / loadFavorites / search / listByService 都 uses JsonObject。

跨模块:依赖 p06、p04;p04 以 calls/uses 大量指向这里。改 store 或 HTTP 客户端影响绑定流水线。

p03 缺陷扫描编排 292 个符号 · 依赖 p01 · Python

职责:缺陷分析技能的编排:选场景、拉 CodexQA、收集增量/全量、SAST 适配、合并 HTML 报告。

对外接口:render_html_report、ensure_scan_tools、build_scope_plan、rag_related_snippets、main。

内部调用:扫描主流程把工具就绪、范围计划和报告渲染串起来。

跨模块:只与 p01 双向依赖(扫描入口脚本)。

p04 工具绑定流水线 高扇出 271 个符号 · 依赖 p02

职责:把用例实体绑到测试数据工具:选工具、跑流水线、调 HTTP、写回。

对外接口:selectTool、runPipeline、invokeEntity、callHttp。

内部调用:main / runWriteback / runDataTrack 都进 dumpManifest。

跨模块:对 p02 有最重的 calls/uses;自身也出现在 p02 的依赖列表里。

p06 测试数据校验套件 207 个符号 · 依赖 p02 · 6 个文件

职责:企业接入、扩场景、流水线、改写、用户旅程的验证,以及 pack_skills.ts。

对外接口:runEnterpriseOnboardSuite、runExtendSceneSuite、runPipelineScenarioSuite、runUserJourneySuite、main。

内部调用:打包校验 uses work(verifyPackSkills / writeConfig / openapiDir)。

跨模块:依赖 p02,并被 p02 回指。

p07 用例知识与报告 185 个符号 · 依赖 p08

职责:用例生成技能的知识入库、门禁、HTML 报告(generate_case_report)。

对外接口:render_html、ingest_one、initialize、check_stage_artifacts。

内部调用:render_html → 双语/_esc;close_stage → _result。

跨模块:依赖 p08(增量拉取),p08 回指本页。

p08 增量拉取与冻结 129 个符号 · 依赖 p07

职责:增量用例:拉 PR/远程代码、冻结输入与标准、写任务状态。

对外接口:fetch_pr、archive、parse_source_url、resolve_run_context、update。

内部调用:路径/git 辅助在失败时构造 SkillError。

跨模块:被 p07 调用,并依赖 p07。

独立模块 不在主链上,后看或不看

p05 审查规则扫描器 271 个符号 · 无跨社区依赖 · 可后看

为什么可以后看:本次导出 deps 为空,也不在其他收录页的依赖列表里。它是 code-reviewer 的 scan_file / 规则体脚本(注解边、复杂度、隐私、韧性等),自己内部 scan_file→hit 很密,但不参与测试数据、缺陷扫描或用例生成主链。做审查规则时再打开。

图例 怎么读图和分层

  • 入口 / 应用 / 领域 / 存储:图上的四层。没有依赖的页不进这四层。
  • risk(赤陶):枢纽或高扇入,改这里影响面最宽。
  • change(陶土):规模或依赖偏多的页。
  • 独立模块:本次导出没有列出依赖,后看或不看。

术语 本报告用词

  • 模块 / 社区:编号 p01 起,对应一次导出里的一页。
  • 依赖:社区之间的有向边,阅读路径只沿这条边走。
  • 枢纽:依赖多或被调用多,先读对外接口。
  • 规模:该页收录的符号数量,用来排序,不是质量分。
生成于 2026-09-21 22:29 codexqa-code-wiki · wiki inputs architecture/overview/page --limit 8 · openqa-cn/codexqa@leviacicig-dev · 未调用模型