# 软著源代码原创性归类 · 双层复核报告(Codex × Opus) - 日期:2026-06-15 - 方法:按**文件类型**分桶,每桶 **Codex 层(gpt-5.5)+ Opus 层** 各自独立只读审计同一对象,再交叉对账;分歧由复核者用主证据裁决。 - 范围:`docs/ip/` 下 6 个软著包的 `源文件清单.md` + `源代码鉴别材料.txt` vs 真实仓库源码。 - 性质:只读审计,**未修改任何文件**;本报告是整改依据,材料本体改动待批。 --- ## 一、总结论 **经双层只读复核:6 件软著鉴别材料均未发现第三方源码混入。** 无一处把 yudao / LittleJS / 生成物当原创 claim: - Java(ru-3/4):claimed 文件 `^package` 声明 100% `com.wanxiang.huijing.game.*`(自研业务包);芋道上游包(`com.wanxiang.huijing.{framework,module(非 game),server,gateway}.*`)在 claimed 材料中 = **0**;无 `pom.xml`(未 claim)、`src/test`、`target`、生成物混入。 - 前端(ru-1/2):import 仅 `vue/vant/pinia/axios` 等框架依赖;ru-2 的 admin 基座(huijing-ui-admin-vue3,MIT)干净排除,`` 系全局注册模板用法,非复制源码。 - 运行时(ru-5):LittleJS 仅经注入面 `ctx.getEngine()`/`LJS.*` 调用,未复制引擎源码体;license banner 只在未纳入的 `.md`。 - Python(ru-6):`.venv`/site-packages 已 gitignore 排除。 **唯一系统性问题不是原创性,而是"材料快照冻结后源码继续演进 → 材料陈旧/漂移"**,集中在 **2026-06-14 W-G1 worker 派发集成**新增/改动的代码(及本轮"九门"注释)。 --- ## 一bis、整改进度(2026-06-15 已执行) > findings 的整改落实(均已改材料 + 验证;改动只在对应 `ruanzhu-*` 目录内;旧材料备份于 `/tmp/ru{1,3,6}_old_backup.txt`)。 | 包 | 整改 | 验证证据 | |---|---|---| | **ru-3** | 补 2 漏纳文件 + 重生成 `.txt`(修逐字不符)+ 刷新统计→**123/10186**;同步申请表 | §3 实算 123/10186;清单/`.txt`/申请表三处一致;AigcExecutorConfiguration 提交段=当前 128 行版(含 W-G1 import/@Bean) | | **ru-6** | 补 `service.py`(300 行)入清单+`.txt`;总量→**12/1650**;`.txt` 头+申请表同步;根级 2 脚本未显式排除(见下) | 清单合计 12/1650/1411;`.txt` 1718 行、service.py 块 byte 一致;无残留旧计数 | | **ru-1** | 重生成 `.txt` 修截断边界(前段第 1500 行空行→真实 `.game-card__stat {`)+ 标注;清单 60/9939 不变 | front[1500]=真实源码行;App.vue/Share.vue 块 byte 一致;总行 3016→3017(修 off-by-one) | | **ru-4** | FeedServiceImpl 531→534;feed 小计/合计/`.txt` 头/中略标注/申请表 同步→**12841** | §三 实算 210/12841;`.txt` 13051/12841/11162、中略 1501–11551;无残留旧值 | | **ru-5** | boot-game-host 452→457;**9854→9859**(清单/`.txt`/申请表);`index.html` 显式排除 | 9859 三处一致;boot 落省略中段、后段 byte 不变(`.txt` 仍 3014 行) | | ru-2 | 无需整改(CLEAN) | — | > 复用资产:确定性生成器已落库 `docs/ip/_tools/{gen_ru3,gen_ru1,ins_ru6}.py`(+ `README.md`,提交窗口重快照复用)。ru-5 `host-dev/index.html`、ru-6 根级 `post_fallback_callback.py`/`m3_player_test.py` 均已补显式排除声明。**6 包材料现已与当前源码一致。** --- ## 二、逐包合并裁定 | 软著包 | Opus 层 | Codex 层 | 合并裁决 | 严重度 | |---|---|---|---|---| | ru-1 game-studio | CLEAN | CLEAN + 格式×2 | 原创 CLEAN;`.txt` 截断边界格式问题 | 🟡 中 | | ru-2 game-admin | CLEAN | CLEAN | **CLEAN(两层一致,无问题)** | 🟢 — | | ru-3 cloud-gen-runtime | 漏纳2 + 行数 | 漏纳2 + **逐字不符** + 统计 | **漏纳 + 逐字不符 + 统计陈旧** | 🔴 高 | | ru-4 cloud-feed-monetize | CLEAN | 微统计不符 | 实质 CLEAN,1 文件行数 +3 | 🔵 低 | | ru-5 game-runtime | CLEAN | 格式 + 疑似漏纳 | 原创 CLEAN;行数漂移 + HTML 口径 | 🟡 中 | | ru-6 gen-worker | 漏纳 | 漏纳 + 七门口径 | **漏纳 `service.py`** | 🟡 中-高 | ### 两处层间分歧 · 复核者裁决(主证据) - **ru-3 逐字不符(Codex 胜)**:`AigcExecutorConfiguration.java` 的块位于 `.txt` **第 1295–1336+ 行(提交前段;中略标记在第 1509 行)**,而当前源码 98→128 行(新增 W-G1 import + @Bean)→ 提交字节 ≠ 当前源码。Opus 误判为"在省略中段",经核**事实错误**。 - **ru-5 行数漂移(Codex 胜其因,但非提交段逐字不符)**:`boot-game-host.js` 实测 **457 vs 清单 452**(真实 +5,非 Opus 所称"换行口径");但其内容块在 `.txt` 命中 = 0(落省略中段)→ 属**清单行数失准**(中),非提交段逐字不符。 --- ## 三、整改清单(提交窗口照做 · turnkey) > **执行时序**:务必在**冻结代码 → 提交**同一窗口内对每包统一"重新快照":补漏纳文件 → 重算 `源文件清单` 行数/总量 → 重生成 `源代码鉴别材料.txt` → 再转 PDF。否则现在改完、代码再动又漂。 **🔴 ru-3-cloud-gen-runtime(不可按现状提交)** 1. 补漏纳:`game-module-aigc/.../service/executor/CallbackSignatureVerifier.java`(138行)、`WorkerDispatchClient.java`(147行)→ 入 `源文件清单.md` + `.txt`。 2. 修逐字不符:用**当前 128 行**版 `AigcExecutorConfiguration.java` 重生成其 `.txt` 块(替换旧 98 行块),并按拼接顺序顺延受影响的前段。 3. 刷新 8 文件行数:AdminAigcTaskController +108、AigcExecutorConfiguration +30、AigcExecutorProperties +51、AigcGenerateExecutor +94、AigcTemplateConstants +8、PromptResourceLoader +7、ProjectFeedMetaDTO +7、ProjectServiceImpl +33。 4. 刷新总量:121 文件 / 9563 行 → **123 文件 / ~10186 行**。 **🟡 ru-6-gen-worker** - 补漏纳 `wg1/gen-worker/worker/service.py`(300行)→ 清单 + `.txt`;总量 11 文件 / 1350 行 → **12 文件 / 1650 行**。 - 根级 `post_fallback_callback.py`、`m3_player_test.py`(在 `worker/` 外)→ 在清单排除节**显式声明排除**。 - (可选)`源文件清单.md:21,75` 的「七门」→「九门」统一口径(与 `run.py:57` 等源码注释口径属你上轮接受保留项,可一并清理或保留)。 **🟡 ru-1-game-studio** - 重生成截断边界:使前段第 1500 行落**实际源码行**(`GameCard.vue:124` 的 `.game-card__stat {`,现为空行),并修正"省略第 1501–8559 行"标注的差一。 - (低)`.txt:3` 的 "9939+60+60=10059" 算术说明写清(数值已验证正确)。 **🟡 ru-5-game-runtime** - 刷新 `boot-game-host.js` 行数 452 → **457**,总量 9854 → **9859**。 - `host-dev/index.html`(89行)**显式声明纳入或排除**(建议:本包限 JS/TS,显式排除并说明)。 **🔵 ru-4-cloud-feed-monetize** - 刷新 `FeedServiceImpl.java` 531 → **534**,总量 12838 → **12841**。 **🟢 ru-2-game-admin**:无需整改。 ### 非缺陷澄清(供评审知悉) Java 各 `pom.xml` 的 Maven `groupId` 为 `com.wanxiang`、源码包名 `com.wanxiang.huijing.game.*` 自研,与芋道上游包(`com.wanxiang.huijing.framework/module/server/gateway`)以 `.game.` 段清晰分界;`pom.xml` 未纳入 claim → 不构成泄漏。 --- ## 四、双层复核的增益 Codex 独家逮到、经复核者主证据核实成立的 3 处(Opus 单层会漏判/低估): - ru-3 **逐字不符**(Opus 误判"在省略中段"); - ru-1 **截断边界**(Opus 采样未覆盖第 1500 行); - ru-5 **漂移定位到 `boot-game-host.js`**(Opus 当成换行口径)。 两层在"全部 CLEAN 包、ru-6/ru-3 漏纳、零第三方泄漏"上**完全一致** → 高置信。 ## 五、过程备注 - Codex 层经 `codex:codex-rescue` 首发时,JAVA 任务在 companion **共享运行时 broker** 下卡死(1h19m 无进展)、JS 任务启动即丢;改用**直连 `codex exec`(stdin、独立进程)** 重跑成功。教训:大/并发 Codex 任务勿走共享 broker,直连 exec 更稳。