5道防线 × 10大维度 × 6层检测链 — 全维度手工级代码质量优化与AIGC特征消减系统。
| 防线层级 | 检测方法 | 对应维度 | 策略文件 |
|---|---|---|---|
| --------- | --------- | --------- | --------- |
| ① 代码风格指纹分析 | 困惑度、AST指纹、Code Embedding向量 | 维度2+3+6 | references/ast-cfg.md + references/token-likelihood.md + references/5-layer-defense.md |
| ② 海量代码库全量比对 | n-gram指纹、CPG代码属性图、语义嵌入、人工审查 | 维度4 | references/similarity.md + check_similarity.py --deep + algo_diversifier.py + ast_deep_transformer.py(Python真实AST) |
| ③ 开发逻辑一致性校验 | 代码-文档-功能匹配、死代码扫描、NLP分析 | 维度1+5 | references/llm-semantic.md + references/metadata.md + references/5-layer-defense.md |
| ④ 元数据与隐式标识 | 文件元数据、AI水印、环境指纹 | 维度5+7+8 | references/metadata.md + references/model-fingerprint.md + references/5-layer-defense.md |
| ⑤ 开发环境真实性验证 | 操作日志、编译记录、功能演示存证 | 新增 | references/5-layer-defense.md |
收到用户发送的代码/文档后,直接启动全维度重构优化,无需额外确认对话。输出最终成品 + 关键重构点简要说明。
核心原则:先评估适用性,再决定用原工具还是定制化。禁止不评估就跳过,也禁止不评估就盲跑全部。
收到代码/文档后,AI助手必须先做以下评估,再决定执行策略:
Step 0: 代码分析
1. 识别项目语言组成(PHP? Python? JS? HTML/CSS? SQL?)
2. 识别输入格式(DOCX? 代码目录? 单文件?)
3. 评估哪些Skill工具适用:
- 没有Python文件 → ast_deep_transformer的Python AST部分不适用
- 没有独立SQL文件 → sql_transformer不适用
- 没有前端代码 → frontend_transformer不适用
- 非Git项目 → generate_git_history仍需运行(生成仿真历史)
4. 评估哪些工具需要定制化:
- Skill工具的语言支持范围有限(PHP只有regex级变换)
- 项目有特殊结构(如DOCX内嵌代码)需要定制提取/回写逻辑
| 情况 | 做法 |
|---|---|
| ------ | ------ |
| Skill工具完全适用 | 直接用Skill工具,不得自写替代 |
| Skill工具部分适用 | 适用部分用Skill工具,不适用部分用定制化代码 |
| Skill工具完全不适用 | 参考Skill的策略思路,写定制化代码 |
| 不确定是否适用 | 先尝试用Skill工具,报错再定制化 |
--threshold 0强制分析达标阈值:AIGC平均分 < 30(可在codegx.yaml中配置pass_threshold)
Step 0: 评估(必须先做)
└─ 0.1 识别输入格式:DOCX → 用 docx_extractor.py 提取;代码目录 → 直接用
└─ 0.2 识别语言组成:PHP? Python? JS? HTML/CSS? SQL?
└─ 0.3 识别框架:Spring Boot? Vue/React? Django/Flask? → 加载对应策略文件
└─ 0.4 逐个评估16个工具的适用性,输出:适用清单 + 需定制化的部分
└─ 0.5 配置时间范围:在codegx.yaml中统一设置 time_range.start 和 time_range.end
(generate_git_history和fix_timestamps自动读取,避免参数不一致)
Step 1: 提取代码(DOCX输入必须执行)
└─ python scripts/docx_extractor.py <文件.docx> <输出目录> --verbose
└─ 如果docx_extractor不适用(DOCX结构特殊),参考其逻辑写定制化提取
└─ 提取后验证:文件数、行数、编码是否正确
Step 2: 配置
└─ python scripts/wizard.py --project-dir <目录> # 首次使用,自动读取time_range
└─ python scripts/config_loader.py show --project-dir <目录> # 查看配置
Step 3: 备份(必须执行)
└─ python scripts/rollback_manager.py backup <目录> --tag pre-optimize
Step 4: 预分析风险扫描
└─ python scripts/analyze_risk.py <代码目录> --output risk_report.json --verbose
└─ 根据风险报告确定优先处理的文件/模块
└─ 输出高风险文件清单 risk_files.json,供后续增量优化使用
Step 5: 增量优化准备(可选,大项目推荐)
└─ 如果risk_report识别出高风险文件占比 < 50%,只对高风险文件做变换:
复制高风险文件到临时目录 → 在临时目录执行变换 → 变换后合并回原目录
└─ 如果高风险文件占比 >= 50%,对全部文件做变换(不做增量)
Step 6: Phase 1 变换(逐工具执行)
└─ 6.1 python scripts/ast_deep_transformer.py <目录> --level medium --output <输出>
注意:PHP只有regex级变换,必须同时用cfg_transformer弥补
└─ 6.2 python scripts/cfg_transformer.py <目录> --level medium --output <输出>
PHP/JS项目必须执行,做guard clause/嵌套展平/循环重写
└─ [验证点] python scripts/verify_output.py <目录> --verbose # 6.1+6.2可能破坏语法
└─ 6.3 python scripts/human_traces.py <目录> --level medium --output <输出>
人工痕迹注入(200+模板,12类注入,业务上下文感知)
└─ 6.4 python scripts/habit_profile.py <目录> --output <输出>
开发者人格画像(习惯一致性+幂律分布+非均匀密度)
└─ 6.5 python scripts/frontend_transformer.py <目录> --level medium --output <输出>
有前端代码时执行:CSS变量随机化/响应式断点差异化/动画人工化
└─ 6.6 python scripts/sql_transformer.py <目录> --level medium --output <输出>
有独立SQL文件时执行:SELECT字段顺序随机化/WHERE条件打乱
└─ 6.7 python scripts/style_jumper.py <目录> --level medium --output <输出>
Token熵深度风格跳变(命名/注释/格式/表达式跳变)
└─ 6.8 python scripts/algo_diversifier.py <目录> --level medium --output <输出>
算法级差异化改写
⚠️ 变量重命名必须基于作用域做全文一致性替换,避免同一变量不同名字
└─ [验证点] python scripts/verify_output.py <目录> --verbose # 6.8可能破坏语法
Step 7: Phase 2 验证(9个工具,一次完整端到端验证)
└─ 7.1 python scripts/dead_code_detector.py <目录> --output dead_code.json --verbose
死代码检测(Python AST级+6语言正则级)
└─ 7.2 python scripts/logic_consistency.py <目录> --verbose
逻辑一致性检查(死代码/风格矛盾/空壳TODO)
└─ 7.3 python scripts/consistency_checker.py <目录> --output consistency.json --verbose
跨维度一致性(时间戳vs代码成熟度、注释vs命名风格)
└─ 7.4 python scripts/verify_output.py <目录> --verbose
正确性验证(语法+变量一致性+语义)
└─ 7.5 python scripts/check_similarity.py <目录> --deep --output similarity.json --verbose
相似度自检(n-gram/语义/深度结构)
└─ 7.6 python scripts/opensource_fingerprint_db.py <目录> --deep --output fingerprint.json --verbose
开源指纹数据库扫描(覆盖GitHub/教材/SaaS/国产框架)
└─ 7.7 python scripts/token_entropy.py <目录> --verbose
Token熵自检(全局熵>6.5/三元组唯一率>0.65/局部熵方差>0.1)
└─ 7.8 python scripts/ai_code_profiles.py <目录> --output profiles.json --verbose
AI vs 人类代码画像对比(统计特征基准分析)
└─ 7.9 python scripts/embedding_checker.py <目录> --output embedding.json --verbose
向量相似度自测(TF-IDF+SimHash+CodeBERT多维度)
└─ 7.10 python scripts/consistency_checker.py <目录> --doc-vs-code --doc <说明书.docx> --output doc_code.json --verbose
代码-文档一致性检查(如有软著说明书,必须执行)
Step 8: Phase 4 检测模拟(不含LLM打分,LLM打分由Phase 9负责)
└─ python scripts/detection_simulator.py <目录> --output sim_report.json --verbose
6层非LLM检测链模拟:
Layer1 文本相似度 → Layer2 AST结构 → Layer3 统计特征
→ Layer5 元数据 → Layer6 人工复核 → Layer7 外部验证
⚠️ Layer4(LLM启发式)已跳过,由Phase 9的DeepSeek真实打分替代
Step 9: Phase 5 DeepSeek评审(必须执行,不能跳过)
└─ python scripts/deepseek_review.py <目录> --api-key <key> --threshold 0 --output review.json --verbose
└─ ⚠️ 必须用 --threshold 0,否则优化后的低风险文件会被预筛选跳过
└─ 如果用户没有API Key,必须要求用户提供,不能默默跳过
└─ 输出:每个文件的AIGC分数、校准分数、判定结果、修复指令
Step 10: Phase 6 迭代优化(平均AIGC > pass_threshold时执行,最多2轮)
└─ 10.1 python scripts/rollback_manager.py backup <目录> --tag round-N # ⚠️ 修改前备份
└─ 10.2 AI助手根据DeepSeek修复指令 + embedding_adversarial对抗结果修改代码
└─ 10.3 python scripts/verify_output.py <目录> --verbose # 验证修改未引入错误
└─ 10.4 重新执行 Step 9(DeepSeek评审)
└─ 10.5 如果平均AIGC变高(退化),执行 rollback_manager.py rollback 回滚到本轮备份
└─ 10.6 如果平均AIGC < pass_threshold,达标,进入Step 11
└─ 10.7 如果2轮后仍 > pass_threshold,执行 Step 12 人机协作
Step 11: Phase 8 收尾
└─ 11.1 python scripts/doc_humanizer.py <说明文档.docx> --output <优化后.docx>
文档去AI化:输入是软著申请的"软件说明书"或"操作手册"DOCX,不是代码
如果没有说明文档DOCX,跳过此步
└─ 11.2 python scripts/generate_git_history.py <项目目录> --commits 45
生成仿真Git提交历史(自动读取codegx.yaml中的time_range配置)
└─ 11.3 python scripts/fix_timestamps.py <项目目录>
修复文件时间戳(自动读取codegx.yaml中的time_range配置)
└─ 11.4 python scripts/audit_helper.py <目录> --output audit_metrics.json --verbose
审查辅助:收集量化指标供全局审查参考
└─ 11.5 python scripts/generate_report.py --original <原始> --optimized <优化后> --output report.md --analysis <JSON目录>
综合报告生成
└─ 11.6 python scripts/e2e_test.py <目录> --verbose
端到端集成测试:验证完整流程的正确性
Step 12: Phase 7 人机协作(仅在迭代2轮后仍不达标时执行)
└─ python scripts/human_collab.py <目录> --output collab_plan.md
└─ 输出高风险模块识别 + 人工修改指令
└─ AI助手告知用户需要手动修改的部分
Step 13: AI助手全局审查(必须执行,不是提示用户检查)
└─ 两轮审查 + 最终断言(详见下方"全局审查"章节)
AI助手在输出最终结果前,必须逐项确认:
docx_extractor.py 提取(如适用)rollback_manager.py backup)ast_deep_transformer + cfg_transformerdead_code_detector + logic_consistency + verify_output + check_similarity + token_entropy 已执行consistency_checker --doc-vs-codedetection_simulator.py 已执行(不含Layer4 LLM打分)deepseek_review.py --threshold 0 已执行(有API调用记录)rollback_manager backup --tag round-N)rollback_manager rollback)generate_git_history + fix_timestamps 使用相同时间范围generate_report + e2e_test 已执行检测方式:官方接入DeepSeek等国产大模型,对代码、说明文档、摘要全文做AIGC分类打分。
防御策略:
→ 详见 references/llm-semantic.md
检测方式:生成完整AST,做结构相似度匹配;对比控制流图、函数调用图、分支嵌套模式。
防御策略:
检测方式:统计命名风格、注释特征、排版格式的分布特征。
防御策略:
检测方式:与历史软著库、GitHub/Gitee开源库、高校企业代码库比对;通过n-gram指纹、代码属性图(CPG)、语义嵌入(CodeBERT)进行深度比对。
防御策略:
check_similarity.py --deep):Python文件使用真实AST结构哈希;其他语言使用关键字序列哈希(近似)algo_diversifier.py):基于正则模式检测的模板替换(非AST级,检测规避效果有限)各语言各检测系统有效性估计:
| 语言 | n-gram指纹 | CPG属性图 | CodeBERT嵌入 | 人工审查 |
|---|---|---|---|---|
| ------ | ----------- | ---------- | ------------- | ---------- |
| Python | 高(真实AST变换) | 高(CFG拓扑改变) | 高(梯度引导对抗+算法替换) | 中(非均匀风格) |
| PHP | 中高(token级+CFG变换) | 中高(guard clause+嵌套重构) | 中(结构+语义双重变换) | 中(非均匀风格) |
| JS/TS | 中高(brace-matching+CFG变换) | 中(guard clause+箭头函数互换) | 中(结构变换) | 中(非均匀风格) |
| Java | 中高(regex+CFG变换) | 中(guard clause+stream→for+lambda重构) | 中(结构变换) | 中 |
检测方式:检查代码生成时间、文档编辑时间、截图时间戳是否合理;文档与代码是否逻辑自洽。
防御策略:
检测方式:把代码喂给多个主流LLM计算token生成概率,AI代码token分布平滑、熵低、局部重复模式强。
防御策略:
→ 详见 references/token-likelihood.md
检测方式:不同大模型有独特「笔迹」——GPT注释多结构工整、Claude啰嗦防御性代码多、DeepSeek中文注释模板感强。
防御策略:
→ 详见 references/model-fingerprint.md
检测方式:训练模型识别人类专属痕迹,缺失则判AI。包括笔误、不规范缩写、风格不一致、临时调试代码、被注释旧逻辑、不完美边界处理、硬编码、个人化「坏味道」。
防御策略:
检测方式:文本相似度→AST结构→统计特征→LLM评分→元数据→人工复核,层层过滤。
防御策略:
→ 详见 references/hybrid-chain.md
检测方式:人工复核+系统检测,识别AI批量生成特征——代码风格极致规整、全栈功能一气呵成、注释AI式完整、前端设计高度模板化、无迭代痕迹。
防御策略:
→ 详见 references/frontend-fullstack.md
每项重构完成后输出:
这是最容易出错的规则,必须严格遵守:
| 类型 | 定义 | 是否保留 | 原因 |
|---|---|---|---|
| ------ | ------ | --------- | ------ |
| 死代码 | 未使用的函数/变量/import(未注释) | 必须删除 | AI典型特征,检测系统会扫描 |
| 注释旧代码 | 被注释掉的旧逻辑(# def old_func...) | 应该保留 | 人工迭代痕迹,安全 |
| 空壳TODO | 无具体内容的TODO/FIXME | 必须删除 | AI模板注释 |
| 具体TODO | 有上下文的TODO/FIXME | 应该保留 | 真实开发痕迹 |
矛盾检测:如果同一文件中同时存在「死代码」和「注释旧代码」,风格矛盾会被检测系统识别。使用 logic_consistency.py 检查。
python scripts/wizard.py --project-dir <项目目录>
通过问答引导完成项目配置,自动生成 codegx.yaml 配置文件。
python scripts/analyze_risk.py <代码目录> --output risk_report.json --verbose
在优化前扫描项目,评估各维度AIGC风险等级,确定优先处理的文件/模块。
# 生成默认配置
python scripts/config_loader.py generate --project-dir <项目目录>
# 查看当前配置
python scripts/config_loader.py show --project-dir <项目目录>
# 获取特定配置
python scripts/config_loader.py get --project-dir <项目目录> --key transform.level
所有工具自动读取 codegx.yaml 配置文件,无需每次手动传参。
python scripts/rollback_manager.py backup <项目目录> --tag pre-optimize
变换前自动备份原始文件到 .codegx_backup/。
# 支持 Python/PHP/JS/TS/Java/Go/C#
python scripts/ast_deep_transformer.py <代码目录> --level medium --output <输出目录> --dry-run
python scripts/ast_deep_transformer.py <代码目录> --level medium --output <输出目录>
ast.NodeTransformer + ast.unparse() 进行真正的语法树级变换:if A: if B: → if A and B:)tmp/tmp_tmp)PHP变换器优化要点:
python scripts/human_traces.py <代码目录> --level medium --output <输出目录> --dry-run
python scripts/human_traces.py <代码目录> --level medium --output <输出目录>
⚠️ 注释内容红线(绝对禁止):
人工痕迹的目的是展示"开发者个人习惯",不是展示"代码来源"或"团队协作"。以下类型的注释绝对不能出现:
| 禁止的注释 | 原因 | 替代方案 |
|---|---|---|
| ----------- | ------ | --------- |
| "网上抄的""参考了XX""从GitHub上找的" | 直接承认代码非原创 | "// 这个方案试了好几种,最后这种能跑" |
| "Stack Overflow上看到的""CSDN上找的" | 明确指向外部来源 | "// 调了半天才发现是这样写" |
| "参考了Bootstrap的写法""仿照Element UI" | 承认模仿特定项目 | "// 这个组件样式调了好久" |
| "ChatGPT/Claude/DeepSeek生成的" | 直接承认AI生成 | 删除该注释 |
| "复制过来的""拷贝的""搬运的" | 承认非原创 | "// 之前的代码,先留着" |
| "王工说""产品经理说""测试说""领导说" | 暗示团队协作,与个人开发者身份矛盾 | "// 这个功能是后来加的""// 这里偶尔有问题" |
| "PM改了需求""QA过了""同事提的" | 暗示团队分工 | "// 需求改了好几版""// 自测过了" |
原则:
python scripts/frontend_transformer.py <代码目录> --level medium --output <输出目录> --dry-run
python scripts/sql_transformer.py <代码目录> --level medium --output <输出目录> --dry-run
python scripts/logic_consistency.py <代码目录> --verbose
python scripts/logic_consistency.py <代码目录> --fix
# 语法检查 + 变量一致性 + 语义验证
python scripts/verify_output.py <代码目录> --verbose
# 含实际测试运行
python scripts/verify_output.py <代码目录> --run-tests --verbose
# 严格模式
python scripts/verify_output.py <代码目录> --strict
# 基础模式匹配检测
python scripts/check_similarity.py <优化后代码目录> --output similarity_report.json --verbose
# 语义级相似度检测
python scripts/check_similarity.py <优化后代码目录> --semantic --semantic-threshold 0.7
# 深度模式(推荐):2000+模式库 + 结构指纹 + 唯一性评分
python scripts/check_similarity.py <优化后代码目录> --deep --output deep_similarity_report.json --verbose
# 开源指纹数据库独立扫描(覆盖GitHub/教材/SaaS/国产框架)
python scripts/opensource_fingerprint_db.py <优化后代码目录> --deep --output fingerprint_report.json --verbose
# 算法级差异化改写(深层逻辑改写,非语法替换)
python scripts/algo_diversifier.py <优化后代码目录> --level medium --output <差异化输出目录> --dry-run
python scripts/algo_diversifier.py <优化后代码目录> --level aggressive --output <差异化输出目录>
python scripts/token_entropy.py <优化后代码目录> --lang python --verbose
安全阈值参考:
| 指标 | 纯AI代码 | 人类代码 | 安全阈值 |
|---|---|---|---|
| ------ | --------- | --------- | --------- |
| 全局熵 | 5.5-6.0 | 6.8-7.5 | >6.5 |
| 三元组唯一率 | <0.5 | >0.7 | >0.65 |
| 局部熵方差 | <0.08 | >0.15 | >0.1 |
风险等级判定:>=3个风险指标为HIGH,>=1个为MEDIUM,0个为LOW
# 预览模式(不实际修改)
python scripts/embedding_adversarial.py <代码目录> --target-similarity 0.6 --max-iterations 10 --output <输出目录> --dry-run --verbose
# 实际执行
python scripts/embedding_adversarial.py <代码目录> --target-similarity 0.6 --max-iterations 10 --level aggressive --output <输出目录> --seed 42
# 单文件处理
python scripts/embedding_adversarial.py main.py --target-similarity 0.5 --max-iterations 15 --verbose
# 生成JSON报告
python scripts/embedding_adversarial.py <代码目录> --output <输出目录> --output-report adversarial_report.json
工作原理:
python scripts/diff_viewer.py --original <原始目录> --transformed <变换后目录> --output diff_report.md
python scripts/generate_git_history.py <项目目录> --commits 45 --style auto --dry-run
python scripts/generate_git_history.py <项目目录> --commits 45 --start 2019-06-01 --end 2020-05-30
python scripts/fix_timestamps.py <项目目录> --start 2019-03-01 --end 2020-06-30 --dry-run
python scripts/audit_helper.py <代码目录> --output audit_metrics.json --verbose
输出量化指标供AI助手全局审查参考:死代码统计、注释密度、命名风格分布、函数粒度、错误处理覆盖率、TODO质量、人工痕迹密度、代码复杂度。
python scripts/generate_report.py --original <原始目录> --optimized <优化后目录> --output report.md --analysis <分析JSON目录>
# 查看备份
python scripts/rollback_manager.py list <项目目录>
# 回滚到指定备份
python scripts/rollback_manager.py rollback <项目目录> --tag pre-optimize
# 清理旧备份
python scripts/rollback_manager.py clean <项目目录> --keep 3
注意:以下Phase与"标准执行流程"的Step一一对应。如果使用pipeline_runner.py一键执行(Phase 0-7),它会自动编排。Phase 8收尾需手动执行。
达标阈值:AIGC平均分 < pass_threshold(默认30,可在codegx.yaml中配置)
docx_extractor.py(DOCX提取)→ wizard.py(配置,含time_range)→ rollback_manager.py backup(备份)
→ analyze_risk.py(风险扫描,输出高风险文件清单)
加载框架策略文件(如有):references/frameworks/spring-boot.md / vue-react.md / django-flask.md
ast_deep_transformer → cfg_transformer(PHP/JS必须)→ [验证点] verify_output
→ human_traces → habit_profile → frontend_transformer(有前端时)
→ sql_transformer(有SQL时)→ style_jumper
→ algo_diversifier → [验证点] verify_output
⚠️ 只在关键工具(ast/cfg/algo)后验证,非关键工具后不验证
⚠️ algo_diversifier 的变量重命名必须基于作用域做全文一致性替换
dead_code_detector → logic_consistency → consistency_checker → verify_output
→ check_similarity --deep → opensource_fingerprint_db → token_entropy
→ ai_code_profiles → embedding_checker
→ consistency_checker --doc-vs-code(如有说明书DOCX)
embedding_adversarial 的对抗结果作为Phase 6迭代修复的参考输入
不再单独执行,避免对抗训练和变换脱节
detection_simulator(6层,跳过Layer4 LLM启发式)
Layer1 文本相似度 → Layer2 AST结构 → Layer3 统计特征
→ Layer5 元数据 → Layer6 人工复核 → Layer7 外部验证
⚠️ Layer4已跳过,LLM打分统一由Phase 5的DeepSeek负责
deepseek_review.py --api-key <key> --threshold 0 <代码目录>
├─ ⚠️ 必须用 --threshold 0,否则优化后的低风险文件会被预筛选跳过
├─ 预筛选: 启发式评分 < 阈值 → 跳过(零 token)
├─ 文件哈希缓存: 未修改文件 → 直接返回缓存(零 token)
├─ 批量合并: 小文件 3 个合 1 次 API 调用
├─ 固定 system prompt → DeepSeek prefix cache 命中
└─ 输出评审报告 + AI助手自动修复指令
rollback_manager backup --tag round-N(⚠️ 修改前备份,不是修改后)
→ AI助手根据DeepSeek修复指令 + embedding_adversarial对抗结果修改代码
→ verify_output 验证 → 重新运行 Phase 5
→ 如果平均AIGC变高(退化)→ rollback_manager rollback 回滚到本轮备份
→ 如果平均AIGC < pass_threshold → 达标,进入Phase 8
→ 如果2轮后仍 > pass_threshold → 进入Phase 7 人机协作
human_collab.py → 输出高风险模块识别 + 人工修改指令 → [用户修改] → 检测模拟器(再次)
doc_humanizer.py(软著说明书DOCX去AI化,无则跳过)
→ generate_git_history.py(仿真Git历史,自动读取codegx.yaml的time_range)
→ fix_timestamps.py(文件时间戳,自动读取codegx.yaml的time_range)
→ audit_helper.py(审查指标)
→ generate_report.py(综合报告)
→ e2e_test.py(端到端集成测试)
关键:
deepseek_review.py 必须用 --threshold 0快速端到端测试:
# Phase 0: 提取+备份+风险扫描
python scripts/docx_extractor.py <文件.docx> <输出目录> --verbose
python scripts/rollback_manager.py backup <输出目录> --tag pre-optimize
python scripts/analyze_risk.py <输出目录> --output risk_report.json --verbose
# Phase 1-4: 变换+验证+检测模拟(pipeline_runner自动编排)
python scripts/pipeline_runner.py <输出目录> --output report.json --verbose
# Phase 5: DeepSeek 评审(必须单独执行或用 --deepseek-api-key 参数)
python scripts/deepseek_review.py <输出目录> --api-key <key> --threshold 0 --output review.json --verbose
# Phase 6: 迭代修复(如需)— AI助手根据DeepSeek+对抗结果修改代码,最多2轮
# Phase 8: 收尾(自动读取codegx.yaml的time_range)
python scripts/generate_git_history.py <输出目录> --commits 45
python scripts/fix_timestamps.py <输出目录>
python scripts/generate_report.py --original <原始> --optimized <输出目录> --output report.md
python scripts/e2e_test.py <输出目录> --verbose
各工具独立用法:
# 检测模拟器
python scripts/detection_simulator.py <代码目录> --output sim_report.json --verbose
python scripts/detection_simulator.py <代码目录> --external-only # 只运行外部验证
# 对抗训练
python scripts/adversarial_trainer.py <代码目录> --target-score 35 --max-iterations 5
python scripts/adversarial_trainer.py --calibrate feedback.json # 校准分类器
python scripts/adversarial_trainer.py --validate # 验证分类器准确率
# 多模型嵌入对抗
python scripts/embedding_adversarial.py <代码目录> --models codebert,codet5,graphcodebert
python scripts/embedding_adversarial.py <代码目录> --cpu-only # CPU降级模式
# 人机协作
python scripts/human_collab.py <代码目录> --output collab_plan.md
# 动态阈值
python scripts/threshold_manager.py <代码目录> --standard national_2025 --risk-profile
# LLM多模型分类
python scripts/llm_classifier_test.py <代码目录> --multi --provider qwen
# DeepSeek 评审(token 极致优化:缓存/预筛选/批量合并)
python scripts/deepseek_review.py <代码目录> --api-key <key> --output review.json --verbose
python scripts/deepseek_review.py <代码目录> --api-key <key> --apply # 自动修复
# 死代码检测
python scripts/dead_code_detector.py <代码目录> --output dead_code.json --verbose
python scripts/dead_code_detector.py <代码目录> --fix # 自动删除未使用代码
# 跨维度一致性检查
python scripts/consistency_checker.py <代码目录> --output consistency.json --verbose
# 只处理最近5个commit变更的文件
python scripts/ast_deep_transformer.py <代码目录> --since HEAD~5
# 使用4个进程并行处理
python scripts/ast_deep_transformer.py <代码目录> --parallel 4
针对中国软著常见框架的专项反检测策略:
| 框架 | 策略文件 |
|---|---|
| ------ | --------- |
| Spring Boot | references/frameworks/spring-boot.md |
| Vue/React | references/frameworks/vue-react.md |
| Django/Flask | references/frameworks/django-flask.md |
所有工具跑完后,AI助手必须自己做一次全局审查。不是"提示用户检查",而是AI助手自己负责到底。
核心原则:AI助手模拟检测系统的方式去自测,不是主观判断"看起来合理",而是用检测系统会用的方法去验证。
这一轮的每一项都对应检测系统的一个具体检测动作。AI助手必须逐项执行,每项给出明确的PASS/FAIL判定和量化依据。
| 检测动作 | AI助手怎么做 | 通过标准 | FAIL时的修复 |
|---|---|---|---|
| --------- | ------------ | --------- | ------------ |
| 困惑度检测 | 随机抽取3个函数,用"如果我是LLM会怎么生成"的视角审视。如果每个token选择都是"最可能的",说明困惑度低 | 至少1个函数有"意料之外但合理"的写法(非常规缩写、非标准写法、个人习惯) | 对困惑度低的函数重写:引入非主流但正确的内置函数、混合不同年代的写法(%格式化+f-string+.format()共存) |
| AST指纹检测 | 对比项目内相似功能的函数,检查AST结构是否雷同。如果两个不同功能的函数AST结构几乎一样,说明AI生成 | 任意两个功能不同的函数,AST节点序列相似度 < 60% | 对结构雷同的函数做差异化:改变控制流(卫语句vs嵌套if)、改变循环类型、改变函数粒度 |
| CFG拓扑检测 | 画出核心函数的控制流图(脑中),检查是否都是"入口→处理→出口"的三段式 | 至少30%的函数有非线性跳转(early return、break、continue、提前抛异常) | 对三段式函数注入非线性跳转:添加guard clause、提前return、条件break |
| 检测动作 | AI助手怎么做 | 通过标准 | FAIL时的修复 |
|---|---|---|---|
| --------- | ------------ | --------- | ------------ |
| 高频模块识别 | 检查登录、注册、CRUD、文件上传、权限判断等模块,是否有"标准写法" | 高频模块的实现方式与框架默认示例不同(改变参数顺序、返回结构、查询方式) | 重写高频模块:不用标准方法名(index/store/show/update/destroy)、混合原生SQL和ORM、改变返回结构 |
| 通用工具类识别 | 检查工具函数(日期格式化、字符串处理、数据验证等),是否是"教科书式"写法 | 工具函数的实现有个人风格(缩写变量名、不完美的边界处理、硬编码魔法数字) | 重写工具函数:使用同义词命名、改变参数结构、加入个人化写法 |
| 注释模式识别 | 检查注释是否有AI模板特征(标准化docstring、英文函数注释、中文模板注释) | 无标准化docstring,注释风格混合(有的详细有的简短,有的中文有的英文) | 删除所有标准化docstring,改为口语化碎片注释 |
| 检测动作 | AI助手怎么做 | 通过标准 | FAIL时的修复 |
|---|---|---|---|
| --------- | ------------ | --------- | ------------ |
| 死代码扫描 | 检查是否有未使用的import、未调用的函数、未使用的变量 | 未使用import = 0,未调用公开函数 = 0 | 删除所有死代码 |
| NLP注释分析 | 检查TODO/FIXME是否有具体内容,还是空壳占位符 | 每个TODO/FIXME后面必须有具体说明"做什么""为什么还没做" | 删除空壳TODO,保留有内容的TODO |
| 风格矛盾检测 | 检查同一文件中是否同时存在死代码和注释旧代码 | 同一文件中不能同时有死代码+注释旧代码 | 删除死代码,保留注释旧代码 |
| 代码-文档一致性 | 检查文档描述的功能是否在代码中有实现 | 文档中提到的每个功能,代码中都有对应实现 | 补充代码实现或修改文档描述 |
| 检测动作 | AI助手怎么做 | 通过标准 | FAIL时的修复 |
|---|---|---|---|
| --------- | ------------ | --------- | ------------ |
| AI隐式标识扫描 | 检查代码中是否有AI残留("作为AI""我无法"等、标准化错误处理、完美类型标注) | 无AI残留文本,无100%统一的返回格式,无100%统一的错误处理模式 | 删除AI残留,打乱返回格式和错误处理方式 |
| 时间戳一致性 | 检查Git提交时间和文件修改时间是否逻辑自洽 | Git提交时间 < 文件修改时间,提交间隔不均匀 | 调整时间戳 |
| 环境指纹检查 | 检查是否有IDE配置文件(.vscode/settings.json)、.gitignore是否个性化 | 有IDE配置文件,.gitignore有项目特有条目 | 补充IDE配置,个性化.gitignore |
| 检测动作 | AI助手怎么做 | 通过标准 | FAIL时的修复 |
|---|---|---|---|
| --------- | ------------ | --------- | ------------ |
| Git历史真实性 | 检查提交消息风格是否一致(不应混合4种风格),时间戳分布是否自然(不应高斯分布) | 提交消息风格统一(选一种),时间戳有冲刺期/摸鱼期 | 重新生成Git历史 |
| 编译/运行记录 | 检查是否有运行日志、测试结果的痕迹 | 至少有注释形式的运行记录(如"# 测试过了"、"# 这两个测试用例还没修") | 补充运行记录注释 |
| 迭代痕迹 | 检查是否有版本号注释、旧文件残留、被注释的旧逻辑 | 至少有2处版本迭代痕迹(版本号注释、旧逻辑残留、.bak文件等) | 补充迭代痕迹 |
维度间一致性比单维度通过更重要。检测系统的混合检测链会交叉验证,任何矛盾都会被标记。
| 矛盾类型 | AI助手怎么检查 | 合理状态 | 矛盾时的修复 |
|---|---|---|---|
| --------- | -------------- | --------- | ------------ |
| 代码风格 vs 注释风格 | 代码用了缩写变量名(如usr_nm),但注释用了完美英文(如// This function handles user authentication) | 代码和注释风格应匹配(都是口语化,或都是简洁风格) | 统一风格:要么代码和注释都口语化,要么都简洁 |
| 文档 vs 代码实现 | 文档说"支持批量导入",但代码中没有批量导入功能 | 文档描述的功能范围 = 代码实现范围 | 补充代码或修改文档 |
| 时间戳 vs 代码成熟度 | 文件创建时间是2019年6月,但代码中有2020年才出现的API | 文件中的技术/API < 文件创建时间 | 修改代码中的技术引用或调整时间戳 |
| 项目规模 vs 文件数量 | 文档说"大型管理系统",但只有10个文件 | 文件数量与项目规模匹配 | 不需要修改,但审查时要注意 |
| 人工痕迹密度 vs 代码量 | 60页代码只有2处人工痕迹(太少),或60页代码有50处痕迹(太多) | 每100行代码约3-8处人工痕迹(调试注释+TODO+旧逻辑) | 调整痕迹密度 |
| 死代码 vs 注释旧代码 | 同一文件中既有未使用的函数,又有被注释的旧逻辑 | 只有注释旧代码,没有死代码 | 删除死代码 |
| Git风格 vs 代码注释风格 | Git提交用Conventional Commits(feat: xxx),但代码注释用口语化(# 这个先这样) | Git风格和代码注释风格应匹配(都规范或都随意) | 统一风格 |
| 函数粒度 vs 注释密度 | 函数都很短(5-10行),但注释密度很高(每个函数都有3行注释) | 短函数注释少,长函数注释多 | 调整注释密度 |
| 命名风格 vs 文件位置 | 工具函数用了超长描述名(calculate_total_price_with_discount),业务函数用了缩写(calc_tot) | 同一层级的函数命名风格一致 | 统一同层级命名风格 |
| 错误处理 vs 函数重要性 | 核心函数用裸except,非核心函数用精确异常 | 核心函数错误处理更精确 | 调整错误处理精度 |
AI助手按以下顺序扫描:
两轮审查完成后,AI助手必须给出最终断言。这是强制性的,不能跳过。
## 全局审查结果
### 第一轮:模拟检测系统验证
| 检测项 | 结果 | 依据 |
|-------|------|------|
| 困惑度 | PASS/WARN/FAIL | 具体说明 |
| AST指纹 | PASS/WARN/FAIL | 具体说明 |
| CFG拓扑 | PASS/WARN/FAIL | 具体说明 |
| 高频模块 | PASS/WARN/FAIL | 具体说明 |
| 通用工具类 | PASS/WARN/FAIL | 具体说明 |
| 注释模式 | PASS/WARN/FAIL | 具体说明 |
| 死代码 | PASS/WARN/FAIL | 具体说明 |
| TODO质量 | PASS/WARN/FAIL | 具体说明 |
| 风格矛盾 | PASS/WARN/FAIL | 具体说明 |
| AI隐式标识 | PASS/WARN/FAIL | 具体说明 |
| 时间戳一致性 | PASS/WARN/FAIL | 具体说明 |
| Git历史真实性 | PASS/WARN/FAIL | 具体说明 |
| 迭代痕迹 | PASS/WARN/FAIL | 具体说明 |
### 第二轮:交叉矛盾扫描
| 矛盾类型 | 结果 | 说明 |
|---------|------|------|
| 代码vs注释风格 | PASS/WARN/FAIL | 具体说明 |
| 文档vs代码 | PASS/WARN/FAIL | 具体说明 |
| 时间戳vs成熟度 | PASS/WARN/FAIL | 具体说明 |
| 痕迹密度 | PASS/WARN/FAIL | 具体说明 |
| 死代码vs注释代码 | PASS/WARN/FAIL | 具体说明 |
| Git风格vs注释风格 | PASS/WARN/FAIL | 具体说明 |
### 最终判定
- FAIL项数:X
- WARN项数:X
- 整体判定:PASS / 需要补充 / 不通过
### 已自动修复的问题
(列出AI助手在审查过程中自动修复的问题)
### 需要用户自行补充的内容
(列出AI助手无法自动修复、需要用户手动补充的内容,如:录屏、编译日志、IDE配置等)
| 维度 | 检测方法 | 策略文件 |
|---|---|---|
| ------ | --------- | --------- |
| 1 | 大模型语义/指纹检测 | references/llm-semantic.md |
| 2 | AST+CFG结构指纹 | references/ast-cfg.md |
| 3 | 代码文本特征统计 | references/text-stats.md |
| 4 | 跨库相似度比对 | references/similarity.md |
| 5 | 元数据+时序审查 | references/metadata.md |
| 6 | LLM生成概率检测 | references/token-likelihood.md |
| 7 | 多模型指纹归因 | references/model-fingerprint.md |
| 8 | 人工痕迹缺失检测 | references/code-style.md |
| 9 | 混合检测链 | references/hybrid-chain.md |
| 10 | 前端模板化+全栈完整性 | references/frontend-fullstack.md |
| 五道防线 | 困惑度+向量比对+死代码+AI水印+环境验证 | references/5-layer-defense.md |
| 框架 | Spring Boot策略 | references/frameworks/spring-boot.md |
| 框架 | Vue/React策略 | references/frameworks/vue-react.md |
| 框架 | Django/Flask策略 | references/frameworks/django-flask.md |
| 工具 | 功能 | 脚本 |
|---|---|---|
| ------ | ------ | ------ |
| 配置管理 | 项目级配置文件管理 | scripts/config_loader.py |
| 交互式向导 | 引导式配置生成 | scripts/wizard.py |
| 预分析 | AIGC风险扫描 | scripts/analyze_risk.py |
| AST变换 | 多语言代码结构变换 | scripts/ast_deep_transformer.py |
| CFG变换 | PHP/JS CFG拓扑级变换(guard clause/嵌套展平/循环重写) | scripts/cfg_transformer.py |
| 人工痕迹注入 | AST定位的痕迹注入 | scripts/human_traces.py |
| 开发者人格 | 人格画像系统(习惯一致性+幂律分布+非均匀密度) | scripts/habit_profile.py |
| 前端变换 | CSS/HTML/Vue/React变换 | scripts/frontend_transformer.py |
| SQL变换 | SQL/ORM代码变换 | scripts/sql_transformer.py |
| 逻辑一致性 | 死代码/风格矛盾检查 | scripts/logic_consistency.py |
| 正确性验证 | 语法+测试+语义验证 | scripts/verify_output.py |
| 相似度检测 | 模式匹配+语义级+深度结构检测 | scripts/check_similarity.py |
| 算法差异化 | 深层算法逻辑差异化引擎 | scripts/algo_diversifier.py |
| 开源指纹库 | 2000+模式深度比对引擎 | scripts/opensource_fingerprint_db.py |
| Token熵分析 | token级统计特征分析 | scripts/token_entropy.py |
| 向量相似度 | TF-IDF+SimHash+CodeBERT多维度相似度自测 | scripts/embedding_checker.py |
| 嵌入对抗 | 多模型梯度引导嵌入对抗(CodeBERT/CodeT5/GraphCodeBERT/UniXcoder集成) | scripts/embedding_adversarial.py |
| AI代码画像 | 统计特征基准分析(AI vs 人类代码画像对比) | scripts/ai_code_profiles.py |
| 风格跳变 | Token熵深度风格跳变(命名/注释/格式/表达式跳变) | scripts/style_jumper.py |
| LLM分类器 | 7模型AIGC分类对抗测试(DeepSeek/GPT/Claude/Qwen/GLM/Baichuan/Yi + 对抗提示词 + 置信度校准) | scripts/llm_classifier_test.py |
| 检测模拟器 | 7层国家级检测链模拟(文本相似度→AST结构→统计特征→LLM启发式→元数据→人工复核→外部验证),Layer4为纯启发式 | scripts/detection_simulator.py |
| 对抗训练 | 迭代生成-分类-优化闭环(本地AIGC分类器红队测试) | scripts/adversarial_trainer.py |
| 人机协作 | 高风险模块识别+人工修改指令生成 | scripts/human_collab.py |
| 动态阈值 | 贝叶斯阈值更新+检测标准版本管理+项目风险画像 | scripts/threshold_manager.py |
| 文档改写 | 文档去AI化改写(模式匹配+LLM语义重写双模式) | scripts/doc_humanizer.py |
| 差异查看 | 变换前后差异报告 | scripts/diff_viewer.py |
| Git历史 | 高仿真提交历史生成 | scripts/generate_git_history.py |
| 时间戳修复 | 文件时间戳调整 | scripts/fix_timestamps.py |
| 审查辅助 | 量化指标收集 | scripts/audit_helper.py |
| 综合报告 | 优化报告生成 | scripts/generate_report.py |
| 回滚管理 | 备份与回滚 | scripts/rollback_manager.py |
| 并行工具 | 并行处理+增量处理 | scripts/parallel_utils.py |
| 端到端测试 | 完整流程集成测试 | scripts/e2e_test.py |
| DeepSeek评审 | DeepSeek-v4-flash逐文件AIGC打分+建议+自动修复(token极致优化:缓存/预筛选/批量合并) | scripts/deepseek_review.py |
| 死代码检测 | Python AST级+6语言正则级死代码检测(未使用import/函数/变量) | scripts/dead_code_detector.py |
| 跨维度一致性 | 时间戳vs代码成熟度、注释vs命名风格、Gitvs文件内容、文档vs实现 | scripts/consistency_checker.py |
全局审查完成后,使用 templates/audit_report.md 模板输出标准化审查报告。
共 1 个版本