eduevidence 5.2.0 → 6.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (386) hide show
  1. package/CONTRIBUTING.md +105 -0
  2. package/README.md +142 -75
  3. package/README.zh-CN.md +73 -30
  4. package/SKILL.md +397 -131
  5. package/agents/openai.yaml +4 -0
  6. package/assets/readme/controlled-execution.svg +34 -0
  7. package/assets/readme/landing-tour.gif +0 -0
  8. package/assets/readme/logo.png +0 -0
  9. package/assets/readme/research-workflow.svg +56 -0
  10. package/assets/readme/studio-graph.png +0 -0
  11. package/assets/readme/studio-overview.png +0 -0
  12. package/assets/readme/studio-reports.png +0 -0
  13. package/assets/readme/studio-tour.gif +0 -0
  14. package/autoevolve/config.yaml +17 -0
  15. package/autoevolve/program.md +25 -0
  16. package/autoevolve/protected.manifest.yaml +34 -0
  17. package/benchmarks/adversarial/cases.jsonl +7 -0
  18. package/benchmarks/evidence-library.json +5268 -0
  19. package/benchmarks/partitions.json +8 -0
  20. package/bin/eduevidence.js +2 -1
  21. package/docs/architecture.md +496 -0
  22. package/docs/autoresearch-evolution-plan.md +2903 -0
  23. package/docs/autoresearch-implementation-status.md +101 -0
  24. package/docs/demo-storyboard.md +20 -0
  25. package/docs/demo-workplace-ai.md +92 -0
  26. package/docs/demo.md +32 -0
  27. package/docs/install-guide.md +150 -0
  28. package/docs/orchestration-role-model.md +1254 -0
  29. package/docs/release-closeout/README.md +17 -0
  30. package/docs/release-closeout/frontend-acceptance.md +23 -0
  31. package/docs/release-closeout/issues.md +19 -0
  32. package/docs/release-closeout/verification.md +28 -0
  33. package/docs/release-contract.md +108 -0
  34. package/docs/research-studio-guide.zh-CN.md +166 -0
  35. package/docs/sciverse-api.md +125 -0
  36. package/eduevidence_cli.py +29 -13
  37. package/engine/_resources.py +13 -0
  38. package/engine/autoevolve/__init__.py +3 -0
  39. package/engine/autoevolve/agent_view.py +167 -0
  40. package/engine/autoevolve/core.py +357 -0
  41. package/engine/autoevolve/events.py +11 -0
  42. package/engine/autoevolve/git_workspace.py +77 -0
  43. package/engine/autoevolve/projection.py +23 -0
  44. package/engine/autoevolve/runner.py +413 -0
  45. package/engine/autoevolve/trust.py +146 -0
  46. package/engine/autoresearch/__init__.py +6 -0
  47. package/engine/autoresearch/commit.py +132 -0
  48. package/engine/autoresearch/contracts.py +126 -0
  49. package/engine/autoresearch/controller.py +207 -0
  50. package/engine/autoresearch/events.py +12 -0
  51. package/engine/autoresearch/gap_priority.py +168 -0
  52. package/engine/autoresearch/projection.py +30 -0
  53. package/engine/autoresearch/research_memory.py +59 -0
  54. package/engine/autoresearch/saturation.py +91 -0
  55. package/engine/briefs.py +2 -1
  56. package/engine/capabilities.py +1 -0
  57. package/engine/contracts.py +3 -1
  58. package/engine/decision_policy.py +96 -0
  59. package/engine/evidence_graph.py +14 -10
  60. package/engine/evidencecore.py +7 -5
  61. package/engine/gaps.py +132 -73
  62. package/engine/ids.py +2 -0
  63. package/engine/judge_pack.py +65 -0
  64. package/engine/library.py +6 -2
  65. package/engine/library_builtin.py +3 -1
  66. package/engine/living.py +36 -5
  67. package/engine/meta_synthesis.py +3 -1
  68. package/engine/migration.py +88 -3
  69. package/engine/orchestration.py +460 -0
  70. package/engine/paths.py +2 -0
  71. package/engine/pilot.py +36 -33
  72. package/engine/project.py +2 -2
  73. package/engine/research_service.py +113 -0
  74. package/engine/studio_read_model.py +400 -0
  75. package/engine/taxonomy.py +211 -0
  76. package/engine/tribunal.py +44 -33
  77. package/engine/update.py +1 -0
  78. package/engine/versions.py +1 -1
  79. package/engine/worker_result.py +109 -0
  80. package/engine/workflows.py +70 -0
  81. package/examples/ai-coding-assistant-evidence/EduEvidence_Report.html +2934 -0
  82. package/examples/ai-coding-assistant-evidence/artifact_manifest.json +15 -0
  83. package/examples/ai-coding-assistant-evidence/citation_check.json +79 -0
  84. package/examples/ai-coding-assistant-evidence/claims.jsonl +12 -0
  85. package/examples/ai-coding-assistant-evidence/evaluation.json +35 -0
  86. package/examples/ai-coding-assistant-evidence/evidence.jsonl +12 -0
  87. package/examples/ai-coding-assistant-evidence/final_verdict.json +107 -0
  88. package/examples/ai-coding-assistant-evidence/frame.json +48 -0
  89. package/examples/ai-coding-assistant-evidence/gate_report.json +101 -0
  90. package/examples/ai-coding-assistant-evidence/intervention.json +51 -0
  91. package/examples/ai-coding-assistant-evidence/methodology.json +36 -0
  92. package/examples/ai-coding-assistant-evidence/raw_verdict.json +86 -0
  93. package/examples/ai-coding-assistant-evidence/report_spec.json +230 -0
  94. package/examples/ai-coding-assistant-evidence/reports-5themes/EduEvidence_Report_academic.html +2934 -0
  95. package/examples/ai-coding-assistant-evidence/reports-5themes/EduEvidence_Report_claude.html +2934 -0
  96. package/examples/ai-coding-assistant-evidence/reports-5themes/EduEvidence_Report_datalab-dark.html +2934 -0
  97. package/examples/ai-coding-assistant-evidence/reports-5themes/EduEvidence_Report_datalab.html +2934 -0
  98. package/examples/ai-coding-assistant-evidence/reports-5themes/EduEvidence_Report_presentation.html +2934 -0
  99. package/examples/ai-coding-assistant-evidence/reports-5themes/report_academic.html +2934 -0
  100. package/examples/ai-coding-assistant-evidence/reports-5themes/report_claude.html +2934 -0
  101. package/examples/ai-coding-assistant-evidence/reports-5themes/report_datalab-dark.html +2934 -0
  102. package/examples/ai-coding-assistant-evidence/reports-5themes/report_datalab.html +2934 -0
  103. package/examples/ai-coding-assistant-evidence/reports-5themes/report_presentation.html +2934 -0
  104. package/examples/ai-coding-assistant-evidence/result.json +1457 -0
  105. package/examples/ai-coding-assistant-evidence/result.zh.json +1457 -0
  106. package/examples/ai-coding-assistant-evidence/skeptic.json +72 -0
  107. package/examples/ai-coding-assistant-evidence/sources.jsonl +8 -0
  108. package/examples/ai-coding-assistant-evidence/verdict.json +107 -0
  109. package/examples/spaced-retrieval-practice/applicability.json +14 -0
  110. package/examples/spaced-retrieval-practice/artifact_manifest.json +15 -0
  111. package/examples/spaced-retrieval-practice/claims.jsonl +3 -0
  112. package/examples/spaced-retrieval-practice/evidence.jsonl +6 -0
  113. package/examples/spaced-retrieval-practice/final_verdict.json +93 -0
  114. package/examples/spaced-retrieval-practice/frame.json +58 -0
  115. package/examples/spaced-retrieval-practice/gate_report.json +101 -0
  116. package/examples/spaced-retrieval-practice/methodology.json +78 -0
  117. package/examples/spaced-retrieval-practice/report_spec.json +212 -0
  118. package/examples/spaced-retrieval-practice/reports-5themes/EduEvidence_Report_academic.html +2728 -0
  119. package/examples/spaced-retrieval-practice/reports-5themes/EduEvidence_Report_claude.html +2728 -0
  120. package/examples/spaced-retrieval-practice/reports-5themes/EduEvidence_Report_datalab-dark.html +2728 -0
  121. package/examples/spaced-retrieval-practice/reports-5themes/EduEvidence_Report_datalab.html +2728 -0
  122. package/examples/spaced-retrieval-practice/reports-5themes/EduEvidence_Report_presentation.html +2728 -0
  123. package/examples/spaced-retrieval-practice/reports-5themes/report_academic.html +2728 -0
  124. package/examples/spaced-retrieval-practice/reports-5themes/report_claude.html +2728 -0
  125. package/examples/spaced-retrieval-practice/reports-5themes/report_datalab-dark.html +2728 -0
  126. package/examples/spaced-retrieval-practice/reports-5themes/report_datalab.html +2728 -0
  127. package/examples/spaced-retrieval-practice/reports-5themes/report_presentation.html +2728 -0
  128. package/examples/spaced-retrieval-practice/result.json +942 -0
  129. package/examples/spaced-retrieval-practice/result.zh.json +942 -0
  130. package/examples/spaced-retrieval-practice/skeptic.json +70 -0
  131. package/examples/spaced-retrieval-practice/sources.jsonl +7 -0
  132. package/examples/spaced-retrieval-practice/verdict.json +93 -0
  133. package/examples/workplace-ai-assistant/artifact_manifest.json +15 -0
  134. package/examples/workplace-ai-assistant/claims.jsonl +4 -0
  135. package/examples/workplace-ai-assistant/evaluation.json +19 -0
  136. package/examples/workplace-ai-assistant/evidence.jsonl +4 -0
  137. package/examples/workplace-ai-assistant/evidence_graph.json +444 -0
  138. package/examples/workplace-ai-assistant/final_verdict.json +78 -0
  139. package/examples/workplace-ai-assistant/frame.json +41 -0
  140. package/examples/workplace-ai-assistant/gate_report.json +101 -0
  141. package/examples/workplace-ai-assistant/intervention.json +27 -0
  142. package/examples/workplace-ai-assistant/legacy-link-check.json +16 -0
  143. package/examples/workplace-ai-assistant/methodology.json +60 -0
  144. package/examples/workplace-ai-assistant/report_spec.json +224 -0
  145. package/examples/workplace-ai-assistant/reports-5themes/EduEvidence_Report_academic.html +2814 -0
  146. package/examples/workplace-ai-assistant/reports-5themes/EduEvidence_Report_claude.html +2814 -0
  147. package/examples/workplace-ai-assistant/reports-5themes/EduEvidence_Report_datalab-dark.html +2814 -0
  148. package/examples/workplace-ai-assistant/reports-5themes/EduEvidence_Report_datalab.html +2814 -0
  149. package/examples/workplace-ai-assistant/reports-5themes/EduEvidence_Report_presentation.html +2814 -0
  150. package/examples/workplace-ai-assistant/reports-5themes/report_academic.html +2814 -0
  151. package/examples/workplace-ai-assistant/reports-5themes/report_claude.html +2814 -0
  152. package/examples/workplace-ai-assistant/reports-5themes/report_datalab-dark.html +2814 -0
  153. package/examples/workplace-ai-assistant/reports-5themes/report_datalab.html +2814 -0
  154. package/examples/workplace-ai-assistant/reports-5themes/report_presentation.html +2814 -0
  155. package/examples/workplace-ai-assistant/result.json +615 -0
  156. package/examples/workplace-ai-assistant/result.zh.json +615 -0
  157. package/examples/workplace-ai-assistant/search_log.json +19 -0
  158. package/examples/workplace-ai-assistant/skeptic.json +72 -0
  159. package/examples/workplace-ai-assistant/sources.jsonl +3 -0
  160. package/examples/workplace-ai-assistant/validation_result.json +9 -0
  161. package/examples/workplace-ai-assistant/verdict.json +78 -0
  162. package/install.sh +7 -7
  163. package/integrations/agent_mcp.py +2 -2
  164. package/integrations/orchestration_dispatch.py +146 -0
  165. package/package.json +46 -3
  166. package/pyproject.toml +14 -22
  167. package/references/autoresearch.md +30 -0
  168. package/references/evaluation-policy.md +24 -0
  169. package/references/orchestration.md +22 -0
  170. package/references/report-copy-style.md +67 -0
  171. package/references/retrieval-compliance.md +75 -0
  172. package/references/retrieval-protocol.md +20 -0
  173. package/references/scientific-invariants.md +19 -0
  174. package/retrieval/audit.py +178 -0
  175. package/retrieval/fetch.py +96 -0
  176. package/retrieval/sciverse.py +398 -0
  177. package/retrieval/search.py +47 -7
  178. package/schemas/applicability.schema.json +94 -0
  179. package/schemas/chart-spec.schema.json +10 -3
  180. package/schemas/evidence.schema.json +316 -43
  181. package/schemas/fetch-result.schema.json +2 -1
  182. package/schemas/intervention.schema.json +106 -21
  183. package/schemas/report-result.schema.json +12 -4
  184. package/schemas/report-spec.schema.json +98 -100
  185. package/schemas/skeptic.schema.json +86 -0
  186. package/schemas/source.schema.json +21 -2
  187. package/schemas/v2/finding.schema.json +5 -1
  188. package/schemas/v2/methodology-audit.schema.json +5 -1
  189. package/schemas/v2/outcome.schema.json +28 -5
  190. package/schemas/v2/project.schema.json +2 -2
  191. package/schemas/v2/run.schema.json +1 -1
  192. package/schemas/v2/study.schema.json +5 -1
  193. package/schemas/vNext/autoevolve-session.schema.json +34 -0
  194. package/schemas/vNext/eval-snapshot.schema.json +77 -0
  195. package/schemas/vNext/execution-plan.schema.json +50 -0
  196. package/schemas/vNext/gap-priority.schema.json +54 -0
  197. package/schemas/vNext/negative-search-record.schema.json +68 -0
  198. package/schemas/vNext/research-iteration.schema.json +87 -0
  199. package/schemas/vNext/research-strategy.schema.json +62 -0
  200. package/schemas/vNext/skill-experiment.schema.json +90 -0
  201. package/schemas/vNext/task-spec.schema.json +156 -0
  202. package/schemas/vNext/worker-result.schema.json +60 -0
  203. package/schemas/verdict.schema.json +164 -28
  204. package/scripts/benchmark_judge.py +2 -2
  205. package/scripts/benchmark_v3.py +26 -43
  206. package/scripts/build_esl_artifacts.py +4 -4
  207. package/scripts/build_evidence_library.py +2 -2
  208. package/scripts/build_gh_pages.py +98 -0
  209. package/scripts/build_readme_diagrams.py +72 -0
  210. package/scripts/build_report_variants.py +101 -0
  211. package/scripts/build_result.py +74 -9
  212. package/scripts/check_autoresearch_invariants.py +95 -0
  213. package/scripts/check_package_parity.py +85 -0
  214. package/scripts/check_protocol_alignment.py +375 -0
  215. package/scripts/check_versioned_schemas.py +254 -0
  216. package/scripts/claim_audit.py +13 -8
  217. package/scripts/compute_confidence.py +10 -0
  218. package/scripts/daily_evolve.py +30 -0
  219. package/scripts/dashboard_server.py +130 -101
  220. package/scripts/did_regression.py +17 -32
  221. package/scripts/enrich_projects_human_and_lieflat.py +1 -1
  222. package/scripts/evidence_score.py +5 -2
  223. package/scripts/generate_metrics.py +4 -3
  224. package/scripts/generate_new_projects.py +5 -5
  225. package/scripts/orchestrator.py +286 -36
  226. package/scripts/pre_verdict_gate.py +224 -26
  227. package/scripts/quickstart.py +18 -2
  228. package/scripts/rebake_all_5themes.py +1 -2
  229. package/scripts/research_auto_cli.py +475 -0
  230. package/scripts/run_workspace.py +24 -8
  231. package/scripts/search_provenance.py +64 -0
  232. package/scripts/serve_web.py +9 -10
  233. package/scripts/skill_lint.py +1 -1
  234. package/scripts/skill_payload.py +81 -0
  235. package/scripts/test_adversarial_empirical.py +26 -19
  236. package/scripts/validate_schema.py +46 -2
  237. package/scripts/vnext_cli.py +133 -0
  238. package/setup.py +12 -0
  239. package/skill/agents/evaluation-designer.md +20 -4
  240. package/skill/agents/evidence-analyst.md +19 -3
  241. package/skill/agents/evidence-judge.md +50 -2
  242. package/skill/agents/evidence-retriever.md +20 -3
  243. package/skill/agents/intervention-designer.md +20 -4
  244. package/skill/agents/method-reviewer.md +18 -2
  245. package/skill/agents/{education-planner.md → research-planner.md} +19 -3
  246. package/skill/agents/skeptic.md +18 -2
  247. package/skill/roles/registry.yaml +45 -0
  248. package/skill/sub-skills/aihot-trend-analysis/SKILL.md +28 -9
  249. package/skill/sub-skills/contradiction-analysis/SKILL.md +31 -11
  250. package/skill/sub-skills/data-analysis/SKILL.md +34 -15
  251. package/skill/sub-skills/ethics-review/SKILL.md +33 -10
  252. package/skill/sub-skills/evidence-extraction/SKILL.md +29 -11
  253. package/skill/sub-skills/evidence-review/SKILL.md +31 -12
  254. package/skill/sub-skills/gap-analysis/SKILL.md +31 -9
  255. package/skill/sub-skills/literature-review/SKILL.md +35 -14
  256. package/skill/sub-skills/methodology-audit/SKILL.md +29 -12
  257. package/skill/sub-skills/report-generation/SKILL.md +40 -6
  258. package/skill/sub-skills/research-planning/SKILL.md +41 -14
  259. package/skill/sub-skills/study-design/SKILL.md +30 -9
  260. package/skill/task-briefs/adjudicate.md +32 -7
  261. package/skill/task-briefs/applicability.md +38 -0
  262. package/skill/task-briefs/audit.md +32 -7
  263. package/skill/task-briefs/challenge.md +34 -5
  264. package/skill/task-briefs/evaluate.md +30 -5
  265. package/skill/task-briefs/extract.md +31 -8
  266. package/skill/task-briefs/frame.md +39 -10
  267. package/skill/task-briefs/intervene.md +32 -6
  268. package/skill/task-briefs/present.md +32 -8
  269. package/skill/task-briefs/projection.md +37 -0
  270. package/skill/task-briefs/retrieve.md +36 -6
  271. package/skill/workflows/decision-and-pilot.md +85 -0
  272. package/skill/workflows/evaluate-and-update.md +93 -0
  273. package/skill/workflows/evidence-review.md +117 -0
  274. package/visualization/eduevidence-report/assets/base.css +2 -2
  275. package/visualization/eduevidence-report/assets/reader.css +752 -0
  276. package/visualization/eduevidence-report/assets/reader.js +132 -0
  277. package/visualization/eduevidence-report/references/chart-selection-catalog.md +109 -0
  278. package/visualization/eduevidence-report/references/lieflat-composition.md +3 -1
  279. package/visualization/eduevidence-report/scripts/build_figures.py +25 -3
  280. package/visualization/eduevidence-report/scripts/build_infographics.py +5 -1
  281. package/visualization/eduevidence-report/scripts/build_report.py +561 -121
  282. package/visualization/eduevidence-report/scripts/charts_data.py +2 -0
  283. package/visualization/eduevidence-report/scripts/lieflat_engine.py +371 -136
  284. package/visualization/eduevidence-report/scripts/zh_labels.py +80 -1
  285. package/visualization/eduevidence-report/themes/academic.css +1 -1
  286. package/visualization/eduevidence-report/themes/claude.css +1 -1
  287. package/visualization/eduevidence-report/themes/datalab-dark.css +2 -2
  288. package/visualization/eduevidence-report/themes/datalab.css +2 -2
  289. package/visualization/eduevidence-report/themes/presentation.css +2 -2
  290. package/web/README.md +18 -0
  291. package/web/architecture.html +14885 -0
  292. package/web/index.html +53 -0
  293. package/web/studio/THIRD_PARTY_LICENSES.txt +146 -0
  294. package/web/studio/assets/index-B8tkF44Q.css +1 -0
  295. package/web/studio/assets/index-CQ6Keoyc.js +230 -0
  296. package/web/studio/config.json +1 -0
  297. package/web/studio/index.html +14 -0
  298. package/engine/__pycache__/__init__.cpython-312.pyc +0 -0
  299. package/engine/__pycache__/analysis.cpython-312.pyc +0 -0
  300. package/engine/__pycache__/bias.cpython-312.pyc +0 -0
  301. package/engine/__pycache__/briefs.cpython-312.pyc +0 -0
  302. package/engine/__pycache__/capabilities.cpython-312.pyc +0 -0
  303. package/engine/__pycache__/citation_check.cpython-312.pyc +0 -0
  304. package/engine/__pycache__/contracts.cpython-312.pyc +0 -0
  305. package/engine/__pycache__/datasets.cpython-312.pyc +0 -0
  306. package/engine/__pycache__/events.cpython-312.pyc +0 -0
  307. package/engine/__pycache__/evidence_graph.cpython-312.pyc +0 -0
  308. package/engine/__pycache__/evidence_review.cpython-312.pyc +0 -0
  309. package/engine/__pycache__/evidencecore.cpython-312.pyc +0 -0
  310. package/engine/__pycache__/gap_lens.cpython-312.pyc +0 -0
  311. package/engine/__pycache__/gaps.cpython-312.pyc +0 -0
  312. package/engine/__pycache__/graph_store.cpython-312.pyc +0 -0
  313. package/engine/__pycache__/graph_validate.cpython-312.pyc +0 -0
  314. package/engine/__pycache__/ids.cpython-312.pyc +0 -0
  315. package/engine/__pycache__/library.cpython-312.pyc +0 -0
  316. package/engine/__pycache__/library_builtin.cpython-312.pyc +0 -0
  317. package/engine/__pycache__/living.cpython-312.pyc +0 -0
  318. package/engine/__pycache__/log.cpython-312.pyc +0 -0
  319. package/engine/__pycache__/meta_analysis.cpython-312.pyc +0 -0
  320. package/engine/__pycache__/meta_synthesis.cpython-312.pyc +0 -0
  321. package/engine/__pycache__/migration.cpython-312.pyc +0 -0
  322. package/engine/__pycache__/mode_router.cpython-312.pyc +0 -0
  323. package/engine/__pycache__/paths.cpython-312.pyc +0 -0
  324. package/engine/__pycache__/pilot.cpython-312.pyc +0 -0
  325. package/engine/__pycache__/planner.cpython-312.pyc +0 -0
  326. package/engine/__pycache__/project.cpython-312.pyc +0 -0
  327. package/engine/__pycache__/projections.cpython-312.pyc +0 -0
  328. package/engine/__pycache__/robustness.cpython-312.pyc +0 -0
  329. package/engine/__pycache__/run.cpython-312.pyc +0 -0
  330. package/engine/__pycache__/semantics.cpython-312.pyc +0 -0
  331. package/engine/__pycache__/study_design.cpython-312.pyc +0 -0
  332. package/engine/__pycache__/synthesis.cpython-312.pyc +0 -0
  333. package/engine/__pycache__/tribunal.cpython-312.pyc +0 -0
  334. package/engine/__pycache__/update.cpython-312.pyc +0 -0
  335. package/engine/__pycache__/versions.cpython-312.pyc +0 -0
  336. package/integrations/__pycache__/__init__.cpython-312.pyc +0 -0
  337. package/integrations/__pycache__/agent_mcp.cpython-312.pyc +0 -0
  338. package/integrations/__pycache__/smart_web_fetch.cpython-312.pyc +0 -0
  339. package/retrieval/__pycache__/__init__.cpython-312.pyc +0 -0
  340. package/retrieval/__pycache__/corpus_store.cpython-312.pyc +0 -0
  341. package/retrieval/__pycache__/dedupe.cpython-312.pyc +0 -0
  342. package/retrieval/__pycache__/failures.cpython-312.pyc +0 -0
  343. package/retrieval/__pycache__/fetch.cpython-312.pyc +0 -0
  344. package/retrieval/__pycache__/search.cpython-312.pyc +0 -0
  345. package/retrieval/__pycache__/source.cpython-312.pyc +0 -0
  346. package/retrieval/__pycache__/validate.cpython-312.pyc +0 -0
  347. package/scripts/__pycache__/__init__.cpython-312.pyc +0 -0
  348. package/scripts/__pycache__/benchmark.cpython-312.pyc +0 -0
  349. package/scripts/__pycache__/benchmark_evaluator.cpython-312.pyc +0 -0
  350. package/scripts/__pycache__/benchmark_judge.cpython-312.pyc +0 -0
  351. package/scripts/__pycache__/benchmark_routing.cpython-312.pyc +0 -0
  352. package/scripts/__pycache__/benchmark_v2.cpython-312.pyc +0 -0
  353. package/scripts/__pycache__/benchmark_v3.cpython-312.pyc +0 -0
  354. package/scripts/__pycache__/build_result.cpython-312.pyc +0 -0
  355. package/scripts/__pycache__/claim_audit.cpython-312.pyc +0 -0
  356. package/scripts/__pycache__/complexity_gate.cpython-312.pyc +0 -0
  357. package/scripts/__pycache__/compute_confidence.cpython-312.pyc +0 -0
  358. package/scripts/__pycache__/dashboard_server.cpython-312.pyc +0 -0
  359. package/scripts/__pycache__/did_regression.cpython-312.pyc +0 -0
  360. package/scripts/__pycache__/effect_calculator.cpython-312.pyc +0 -0
  361. package/scripts/__pycache__/evidence_matrix.cpython-312.pyc +0 -0
  362. package/scripts/__pycache__/evidence_score.cpython-312.pyc +0 -0
  363. package/scripts/__pycache__/evidence_semantics.cpython-312.pyc +0 -0
  364. package/scripts/__pycache__/fetch_benchmark.cpython-312.pyc +0 -0
  365. package/scripts/__pycache__/lint_report_layout.cpython-312.pyc +0 -0
  366. package/scripts/__pycache__/orchestrator.cpython-312.pyc +0 -0
  367. package/scripts/__pycache__/pre_verdict_gate.cpython-312.pyc +0 -0
  368. package/scripts/__pycache__/recompute_demo_quality.cpython-312.pyc +0 -0
  369. package/scripts/__pycache__/render_report.cpython-312.pyc +0 -0
  370. package/scripts/__pycache__/render_report_html.cpython-312.pyc +0 -0
  371. package/scripts/__pycache__/run_workspace.cpython-312.pyc +0 -0
  372. package/scripts/__pycache__/skill_lint.cpython-312.pyc +0 -0
  373. package/scripts/__pycache__/startup_probe.cpython-312.pyc +0 -0
  374. package/scripts/__pycache__/sync_killer_demo_report.cpython-312.pyc +0 -0
  375. package/scripts/__pycache__/test_adversarial_empirical.cpython-312-pytest-9.0.2.pyc +0 -0
  376. package/scripts/__pycache__/test_adversarial_empirical.cpython-312-pytest-9.1.1.pyc +0 -0
  377. package/scripts/__pycache__/validate_schema.cpython-312.pyc +0 -0
  378. package/visualization/eduevidence-report/scripts/__pycache__/adapter_contract.cpython-312.pyc +0 -0
  379. package/visualization/eduevidence-report/scripts/__pycache__/build_artifact_manifest.cpython-312.pyc +0 -0
  380. package/visualization/eduevidence-report/scripts/__pycache__/build_charts.cpython-312.pyc +0 -0
  381. package/visualization/eduevidence-report/scripts/__pycache__/build_figures.cpython-312.pyc +0 -0
  382. package/visualization/eduevidence-report/scripts/__pycache__/build_infographics.cpython-312.pyc +0 -0
  383. package/visualization/eduevidence-report/scripts/__pycache__/build_report.cpython-312.pyc +0 -0
  384. package/visualization/eduevidence-report/scripts/__pycache__/charts_data.cpython-312.pyc +0 -0
  385. package/visualization/eduevidence-report/scripts/__pycache__/lieflat_engine.cpython-312.pyc +0 -0
  386. package/visualization/eduevidence-report/scripts/__pycache__/zh_labels.cpython-312.pyc +0 -0
@@ -0,0 +1,2934 @@
1
+ <!DOCTYPE html>
2
+ <html lang="zh-CN" data-theme="academic">
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <meta http-equiv="Content-Security-Policy" content="default-src 'none'; script-src 'unsafe-inline'; style-src 'unsafe-inline'; img-src data:; font-src data:; connect-src 'none'; base-uri 'none'; object-src 'none'; form-action 'none'">
6
+ <meta name="eduevidence-result-sha256" content="3bce7a28f588643a3064c3d82eb749e3999cb18cb812b85c9ad6ecc2a731c6a6">
7
+ <meta name="viewport" content="width=device-width, initial-scale=1">
8
+ <title>我们准备在大学一年级 C 语言课程中允许学生使用生成式 AI 编程助手。它到底会不会提高学习效果?应该怎样引入?</title>
9
+ <style>
10
+ /* Theme 01 — Claude Research.
11
+ Calm long-form research reading: warm paper, restrained accents, sparse cards,
12
+ wide data breakouts and generous section rhythm. */
13
+ :root[data-theme="claude"] {
14
+ --bg:#F7F4ED; --surface:#FFFFFF; --surface2:#FCFAF6; --text:#3A3833;
15
+ --text-muted:#8A867E; --primary:#B8694A; --primary-soft:#F3E4DC;
16
+ --support:#5E8A6A; --support-soft:#E4EDE5; --contradict:#A85B53;
17
+ --contradict-soft:#F0E0DE; --uncertain:#C99A4A; --uncertain-soft:#F4EADA;
18
+ --insufficient:#8A867E; --border:#E5DFD3; --radius:12px; --radius-sm:8px;
19
+ --shadow:0 1px 3px rgba(60,56,48,.07); --font-head:'Georgia','Songti SC','STSong',serif;
20
+ --font-ui:'Helvetica Neue','PingFang SC','Noto Sans CJK SC',Arial,sans-serif; --font-mono:'SF Mono',Menlo,Consolas,monospace;
21
+ }
22
+ :root[data-theme="claude"] .report-shell { max-width:1240px; padding-top:34px; }
23
+ :root[data-theme="claude"] .report-header { max-width:900px; margin:0 auto 42px; padding-bottom:22px; }
24
+ :root[data-theme="claude"] .report-header h1 { font-size:clamp(1.55rem,2.8vw,2.25rem); line-height:1.18; font-weight:500; }
25
+ :root[data-theme="claude"] .report-section { background:transparent; border:0; box-shadow:none; padding:0; }
26
+ :root[data-theme="claude"] .report-section>h2 { border:0; font-size:1.4rem; padding:0; margin-bottom:7px; }
27
+ :root[data-theme="claude"] .section-lead { background:transparent; border:0; padding:0; max-width:760px; margin-bottom:24px; }
28
+ :root[data-theme="claude"] .decision-hero { background:var(--surface); box-shadow:0 10px 30px rgba(60,56,48,.06); }
29
+ :root[data-theme="claude"] .hero-insight { border-radius:8px; box-shadow:0 1px 0 rgba(60,56,48,.03); }
30
+ :root[data-theme="claude"] .section-data>.table-wrap,
31
+ :root[data-theme="claude"] .section-data>.matrix-controls,
32
+ :root[data-theme="claude"] .section-data>.outcome-separation,
33
+ :root[data-theme="claude"] .section-data>.trace-chain { width:min(1180px,calc(100vw - 48px)); margin-left:50%; transform:translateX(-50%); }
34
+ :root[data-theme="claude"] .data-table th { font-weight:600; }
35
+ :root[data-theme="claude"] .tribunal-card,
36
+ :root[data-theme="claude"] .trace-chain-card,
37
+ :root[data-theme="claude"] .action-node { background:var(--surface); }
38
+
39
+ /* Dual-layer reader — calm research workspace. */
40
+ :root[data-theme="claude"] .report-header { max-width:940px; }
41
+ :root[data-theme="claude"] .report-brand { color:var(--primary); }
42
+ :root[data-theme="claude"] .report-view-switcher { display:inline-flex; padding:4px; background:#EFEAE0; border-radius:999px; }
43
+ :root[data-theme="claude"] .report-view-btn { border:0; background:transparent; padding:7px 15px; }
44
+ :root[data-theme="claude"] .report-view-btn.active { background:var(--surface); color:var(--text); box-shadow:0 1px 4px rgba(60,56,48,.09); }
45
+ :root[data-theme="claude"] .brief-block { max-width:980px; }
46
+ :root[data-theme="claude"] .brief-block-header { margin-bottom:26px; }
47
+ :root[data-theme="claude"] .brief-block-header h2 { font-size:1.55rem; font-weight:500; }
48
+ :root[data-theme="claude"] .brief-decision { max-width:1040px; }
49
+ :root[data-theme="claude"] .brief-outcomes .brief-block-body,
50
+ :root[data-theme="claude"] .brief-tribunal .brief-block-body { width:min(1120px,calc(100vw - 48px)); margin-left:50%; transform:translateX(-50%); }
51
+ :root[data-theme="claude"] .brief-source { background:var(--surface); box-shadow:0 1px 3px rgba(60,56,48,.04); }
52
+ :root[data-theme="claude"] .full-report-intro { max-width:880px; margin-left:250px; }
53
+ :root[data-theme="claude"] .full-report-layout { grid-template-columns:210px minmax(0,1fr); gap:56px; }
54
+ :root[data-theme="claude"] .full-report-toc { border-right:0; padding-right:0; }
55
+ :root[data-theme="claude"] .full-report-toc a { border-left:1px solid var(--border); padding:8px 0 8px 13px; background:transparent; }
56
+ :root[data-theme="claude"] .full-report-toc a.active { border-left:2px solid var(--primary); background:transparent; color:var(--text); }
57
+ :root[data-theme="claude"] .full-report-content { max-width:900px; }
58
+ @media (max-width:980px) {
59
+ :root[data-theme="claude"] .full-report-layout { grid-template-columns:minmax(0,1fr); gap:28px; }
60
+ }
61
+ :root[data-theme="claude"] .full-chapter { border-bottom:0; margin-bottom:72px; padding-bottom:0; }
62
+ :root[data-theme="claude"] .full-chapter-header { max-width:760px; margin-bottom:30px; }
63
+ :root[data-theme="claude"] .full-chapter-header h2 { font-size:1.8rem; font-weight:500; }
64
+ :root[data-theme="claude"] .scope-card,
65
+ :root[data-theme="claude"] .retrieval-grid>article,
66
+ :root[data-theme="claude"] .retrieval-coverage,
67
+ :root[data-theme="claude"] .method-audit-item { background:var(--surface); }
68
+ :root[data-theme="claude"] .detail-body { background:#FBF8F2; }
69
+
70
+ /* Header chrome: keep language controls inside the reading measure instead of a full-width strip. */
71
+ :root[data-theme="claude"] .controls {
72
+ max-width:940px; margin:16px auto 0; padding:8px 2px 12px;
73
+ border-bottom:1px solid var(--border); background:transparent;
74
+ }
75
+ :root[data-theme="claude"] .generated-theme {
76
+ margin-right:auto; color:var(--text-muted); font-family:var(--font-ui);
77
+ font-size:.76rem; font-weight:700; letter-spacing:.075em; text-transform:uppercase;
78
+ }
79
+ :root[data-theme="claude"] .lang-switcher {
80
+ gap:6px; padding:3px; border:1px solid var(--border); border-radius:999px;
81
+ background:rgba(255,255,255,.62);
82
+ }
83
+ :root[data-theme="claude"] .lang-switcher>span { margin-left:6px; font-size:.72rem; }
84
+ :root[data-theme="claude"] .lang-btn { border:0; background:transparent; padding:4px 11px; }
85
+ :root[data-theme="claude"] .lang-btn.active { background:var(--primary); color:#fff; }
86
+ :root[data-theme="claude"] .report-brand-row { margin-bottom:12px; }
87
+ :root[data-theme="claude"] .generated-theme-chip {
88
+ background:#F1ECE3; border-color:#E2D8C9; color:#736D64; text-transform:none;
89
+ }
90
+ @media (max-width:980px) {
91
+ :root[data-theme="claude"] .full-report-intro { margin-left:0; }
92
+ }
93
+
94
+ /* Typography pass: reading measure stays inside the serif breathing room;
95
+ Lieflat cards inherit the warm-paper identity (no letter-spacing on CJK). */
96
+ :root[data-theme="claude"] .full-chapter-body p,
97
+ :root[data-theme="claude"] .section-narrative p { max-width:68ch; }
98
+ :root[data-theme="claude"] .brief-block-header p,
99
+ :root[data-theme="claude"] .full-chapter-lead,
100
+ :root[data-theme="claude"] .section-lead { max-width:62ch; }
101
+ :root[data-theme="claude"] .lieflat-card { background:var(--surface); border-radius:16px; padding:26px 28px 20px; }
102
+ :root[data-theme="claude"] .lieflat-title { font-weight:500; font-size:1.28rem; line-height:1.3; }
103
+ :root[data-theme="claude"] .lieflat-sub { max-width:720px; }
104
+ :root[data-theme="claude"] .lieflat-figure svg { border-radius:12px; background:transparent; }
105
+ :root[data-theme="claude"] .lieflat-suppressed { background:var(--surface2); }
106
+
107
+ /* Theme 02 — Academic Paper.
108
+ Formal review-paper reading and print: serif body, document rules, compact figures,
109
+ minimal decorative cards, strong provenance and grayscale-friendly structure. */
110
+ :root[data-theme="academic"] {
111
+ --bg:#FFFFFF; --surface:#FFFFFF; --surface2:#FAFAF8; --text:#151515;
112
+ --text-muted:#555; --primary:#234B57; --primary-soft:#EEF2F3;
113
+ --support:#2F6B3A; --support-soft:#EDF4EE; --contradict:#8A3A2F;
114
+ --contradict-soft:#F5ECEA; --uncertain:#806727; --uncertain-soft:#F5F1E5;
115
+ --insufficient:#666; --border:#BFC1C2; --radius:0; --radius-sm:0; --shadow:none;
116
+ --font-head:'Times New Roman','Songti SC','STSong',serif;
117
+ --font-ui:'Times New Roman','Songti SC','STSong',serif; --font-mono:'Courier New',Consolas,monospace;
118
+ }
119
+ :root[data-theme="academic"] body { font-size:15px; line-height:1.58; }
120
+ :root[data-theme="academic"] .report-shell { max-width:980px; padding-top:22px; }
121
+ :root[data-theme="academic"] .report-header { border-bottom:2px solid #222; margin-bottom:34px; }
122
+ :root[data-theme="academic"] .report-header h1 { font-size:clamp(1.5rem,2.2vw,1.7rem); line-height:1.18; text-align:center; }
123
+ :root[data-theme="academic"] .report-header .meta { text-align:center; }
124
+ :root[data-theme="academic"] .report-section { background:transparent; border:0; box-shadow:none; padding:0; margin-bottom:34px; }
125
+ :root[data-theme="academic"] .report-section>h2 { font-size:1.08rem; border-bottom:1px solid #444; border-radius:0; padding:0 0 5px; }
126
+ :root[data-theme="academic"] .section-lead { background:transparent; border:0; padding:0; margin:4px 0 14px; font-style:italic; }
127
+ :root[data-theme="academic"] .decision-hero { border:1px solid #444; background:#fff; border-radius:0; padding:22px 24px; }
128
+ :root[data-theme="academic"] .hero-insight,
129
+ :root[data-theme="academic"] .tribunal-card,
130
+ :root[data-theme="academic"] .trace-chain-card,
131
+ :root[data-theme="academic"] .action-node,
132
+ :root[data-theme="academic"] .outcome-group { border-radius:0; background:#fff; box-shadow:none; }
133
+ :root[data-theme="academic"] .hero-insights { gap:0; border-top:1px solid #999; border-left:1px solid #999; }
134
+ :root[data-theme="academic"] .hero-insight { border:0; border-right:1px solid #999; border-bottom:1px solid #999; min-height:0; }
135
+ :root[data-theme="academic"] .data-table { font-size:.82rem; }
136
+ :root[data-theme="academic"] .data-table th,
137
+ :root[data-theme="academic"] .data-table td { border-left:0; border-right:0; border-color:#A8A8A8; padding:6px 8px; }
138
+ :root[data-theme="academic"] .data-table thead th { border-top:1.5px solid #222; border-bottom:1px solid #222; background:#fff; }
139
+ :root[data-theme="academic"] .data-table tbody tr:last-child td { border-bottom:1.5px solid #222; }
140
+ :root[data-theme="academic"] figcaption,
141
+ :root[data-theme="academic"] .chart-summary { font-family:var(--font-ui); font-size:.8rem; font-style:italic; color:#333; }
142
+ :root[data-theme="academic"] .dir { border:1px solid currentColor; background:transparent !important; color:#222 !important; border-radius:0; }
143
+ :root[data-theme="academic"] .quality-meter i { background:#333; }
144
+ /* Dual-layer reader — formal paper / review article. */
145
+ :root[data-theme="academic"] .report-brand-row { justify-content:center; }
146
+ :root[data-theme="academic"] .report-brand { font-variant:small-caps; letter-spacing:.12em; }
147
+ :root[data-theme="academic"] .generated-theme-chip { border:0; padding:0; }
148
+ :root[data-theme="academic"] .report-view-switcher { justify-content:center; border-top:1px solid #222; border-bottom:1px solid #222; padding:5px 0; gap:22px; }
149
+ :root[data-theme="academic"] .report-view-btn { border:0; border-radius:0; background:transparent; padding:3px 2px; font-family:var(--font-ui); }
150
+ :root[data-theme="academic"] .report-view-btn.active { background:transparent; color:#000; box-shadow:none; text-decoration:underline; text-underline-offset:4px; }
151
+ :root[data-theme="academic"] .brief-block { max-width:790px; margin-bottom:48px; }
152
+ :root[data-theme="academic"] .brief-block-header { max-width:none; border-bottom:1px solid #777; padding-bottom:6px; }
153
+ :root[data-theme="academic"] .brief-block-header h2 { font-size:1.16rem; }
154
+ :root[data-theme="academic"] .brief-decision .decision-hero { border:1px solid #444; padding:20px 24px; }
155
+ :root[data-theme="academic"] .brief-outcomes,
156
+ :root[data-theme="academic"] .brief-sources { max-width:930px; }
157
+ :root[data-theme="academic"] .brief-source-grid { gap:0; border-top:1px solid #777; }
158
+ :root[data-theme="academic"] .brief-source { border-width:0 0 1px 0; padding:10px 4px; }
159
+ :root[data-theme="academic"] .full-report-intro { max-width:740px; margin-bottom:22px; text-align:center; }
160
+ :root[data-theme="academic"] .full-report-intro h2 { font-size:1.45rem; }
161
+ :root[data-theme="academic"] .full-report-layout { grid-template-columns:175px minmax(0,1fr); gap:34px; }
162
+ :root[data-theme="academic"] .full-report-toc { border-right:1px solid #777; padding-right:14px; }
163
+ :root[data-theme="academic"] .full-report-toc a { border:0; border-bottom:1px dotted #bbb; padding:7px 0; font-size:.77rem; }
164
+ :root[data-theme="academic"] .full-report-toc a.active { border-left:0; background:transparent; font-weight:700; color:#000; }
165
+ @media (max-width:980px) {
166
+ :root[data-theme="academic"] .full-report-layout { grid-template-columns:minmax(0,1fr); }
167
+ }
168
+ :root[data-theme="academic"] .full-report-content { max-width:740px; }
169
+ :root[data-theme="academic"] .full-chapter { border-bottom:0; margin-bottom:50px; padding-bottom:0; }
170
+ :root[data-theme="academic"] .full-chapter-header { max-width:none; border-bottom:1px solid #444; padding-bottom:7px; margin-bottom:18px; }
171
+ :root[data-theme="academic"] .full-chapter-header h2 { font-size:1.22rem; }
172
+ :root[data-theme="academic"] .full-chapter-lead { font-style:italic; color:#444; }
173
+ :root[data-theme="academic"] .scope-card,
174
+ :root[data-theme="academic"] .retrieval-grid>article,
175
+ :root[data-theme="academic"] .retrieval-coverage,
176
+ :root[data-theme="academic"] .method-audit-item,
177
+ :root[data-theme="academic"] .brief-source,
178
+ :root[data-theme="academic"] .detail-body { border-radius:0; background:#fff; box-shadow:none; }
179
+ :root[data-theme="academic"] .method-audit-grid { grid-template-columns:minmax(0,1fr); gap:0; }
180
+ :root[data-theme="academic"] .method-audit-item { border-width:0 0 1px 0; padding:9px 0; }
181
+ :root[data-theme="academic"] .evidence-detail-grid dt,
182
+ :root[data-theme="academic"] .evidence-detail-grid dd { border-color:#999; }
183
+ @media print {
184
+ :root[data-theme="academic"] .generated-theme { display:none; }
185
+ :root[data-theme="academic"] .report-section { break-inside:auto; }
186
+ :root[data-theme="academic"] .data-table { font-size:8.5pt; }
187
+ }
188
+
189
+ /* Typography pass: journal rules for the Lieflat gallery + print scale. */
190
+ :root[data-theme="academic"] .lieflat-card { border:1px solid #444; border-radius:0; background:#fff; padding:18px 22px 14px; }
191
+ :root[data-theme="academic"] .lieflat-title { font-size:1.05rem; }
192
+ :root[data-theme="academic"] .lieflat-sub { font-size:.82rem; }
193
+ :root[data-theme="academic"] .lieflat-caption { font-style:italic; font-size:.78rem; }
194
+ :root[data-theme="academic"] .lieflat-src { letter-spacing:.06em; }
195
+ :root[data-theme="academic"] .lieflat-figure svg { border:1px solid #999; border-radius:0; background:#fff; }
196
+ @media print {
197
+ :root[data-theme="academic"] body { font-size:8.5pt; }
198
+ :root[data-theme="academic"] .lieflat-card { border:1px solid #444; }
199
+ :root[data-theme="academic"] .lieflat-title { font-size:10pt; }
200
+ }
201
+
202
+ /* Theme 03 — DataLab Light.
203
+ Analytical workspace with readable density: strong hierarchy, compact controls,
204
+ full-width decision/outcome surfaces, paired tribunal/action panels and traceable sources. */
205
+ :root[data-theme="datalab"] {
206
+ --bg:#F3F5F8; --surface:#FFFFFF; --surface2:#F7F9FC; --text:#1F2530;
207
+ --text-muted:#687386; --primary:#2563EB; --primary-soft:#EAF0FD;
208
+ --support:#17805E; --support-soft:#E8F5EF; --contradict:#C94343;
209
+ --contradict-soft:#FBEDED; --uncertain:#B86D12; --uncertain-soft:#FBF1E5;
210
+ --insufficient:#7A8493; --border:#D9DEE7; --radius:8px; --radius-sm:6px;
211
+ --shadow:0 1px 2px rgba(16,24,40,.05);
212
+ --font-head:'Helvetica Neue','PingFang SC','Noto Sans CJK SC',Arial,sans-serif;
213
+ --font-ui:'Helvetica Neue','PingFang SC','Noto Sans CJK SC',Arial,sans-serif;
214
+ --font-mono:'SF Mono',Menlo,Consolas,monospace;
215
+ }
216
+ :root[data-theme="datalab"] body { font-size:15.5px; }
217
+ :root[data-theme="datalab"] .controls {
218
+ max-width:1480px; margin-top:12px; padding:9px 12px; border:1px solid var(--border);
219
+ border-radius:10px; background:rgba(255,255,255,.92); box-shadow:var(--shadow); backdrop-filter:blur(10px);
220
+ }
221
+ :root[data-theme="datalab"] .generated-theme { color:var(--primary); font-weight:750; letter-spacing:.06em; }
222
+ :root[data-theme="datalab"] .report-shell { width:100%; max-width:1480px; padding:18px clamp(16px,2.4vw,30px) 72px; }
223
+ :root[data-theme="datalab"] .report-header {
224
+ width:100%; max-width:none; margin:0 0 22px; padding:18px 20px;
225
+ border:1px solid var(--border); border-radius:12px; background:var(--surface); box-shadow:var(--shadow);
226
+ }
227
+ :root[data-theme="datalab"] .report-header h1 { max-width:1100px; font-size:clamp(1.4rem,2vw,1.75rem); line-height:1.22; }
228
+ :root[data-theme="datalab"] .report-header .meta { margin:8px 0 0; font-size:.85rem; }
229
+ :root[data-theme="datalab"] .report-brand-row { margin-bottom:8px; }
230
+ :root[data-theme="datalab"] .report-brand { color:var(--primary); text-transform:uppercase; letter-spacing:.08em; font-size:.83rem; }
231
+ :root[data-theme="datalab"] .generated-theme-chip { border-radius:5px; background:var(--surface2); font-size:.72rem; }
232
+ :root[data-theme="datalab"] .report-view-switcher { margin-top:14px; gap:0; }
233
+ :root[data-theme="datalab"] .report-view-btn { min-height:36px; border-radius:6px 0 0 6px; padding:7px 14px; font-size:.86rem; }
234
+ :root[data-theme="datalab"] .report-view-btn + .report-view-btn { border-radius:0 6px 6px 0; margin-left:-1px; }
235
+ :root[data-theme="datalab"] .report-view-btn.active { background:var(--primary); color:#fff; }
236
+
237
+ /* Visual Brief: 4-column workbench grid — decision/outcomes span the row,
238
+ tribunal and action pair at half width, chapter headers stay two-column. */
239
+ :root[data-theme="datalab"] .report-page-brief {
240
+ width:100%; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:18px; align-items:start;
241
+ }
242
+ :root[data-theme="datalab"] .brief-block {
243
+ width:100%; max-width:none; margin:0; padding:18px 20px;
244
+ border:1px solid var(--border); border-radius:12px; background:var(--surface); box-shadow:var(--shadow);
245
+ }
246
+ :root[data-theme="datalab"] .brief-decision,
247
+ :root[data-theme="datalab"] .brief-lieflat,
248
+ :root[data-theme="datalab"] .brief-outcomes,
249
+ :root[data-theme="datalab"] .brief-sources { grid-column:1/-1; }
250
+ :root[data-theme="datalab"] .brief-tribunal,
251
+ :root[data-theme="datalab"] .brief-action { grid-column:span 2; }
252
+ :root[data-theme="datalab"] .brief-block-header {
253
+ max-width:none; margin-bottom:16px; display:flex; justify-content:space-between; align-items:flex-start; gap:24px;
254
+ }
255
+ :root[data-theme="datalab"] .brief-block-header h2 {
256
+ margin:0; font-family:var(--font-ui); font-size:1.02rem; line-height:1.35; text-transform:uppercase; letter-spacing:.055em;
257
+ }
258
+ :root[data-theme="datalab"] .brief-block-header p { max-width:680px; margin:0; font-size:.86rem; line-height:1.55; text-align:right; }
259
+ :root[data-theme="datalab"] .brief-decision { padding:0; overflow:hidden; }
260
+ :root[data-theme="datalab"] .brief-decision .brief-block-header { padding:18px 20px 0; }
261
+ :root[data-theme="datalab"] .brief-decision .decision-hero {
262
+ border-width:1px 0 0; border-radius:0; display:grid; grid-template-columns:minmax(210px,.7fr) minmax(0,2fr); gap:18px 28px; padding:24px 20px;
263
+ }
264
+ :root[data-theme="datalab"] .brief-decision .hero-decision { align-content:start; margin:0; }
265
+ :root[data-theme="datalab"] .brief-decision .hero-rationale { margin:0; font-family:var(--font-ui); font-size:1.08rem; line-height:1.55; }
266
+ :root[data-theme="datalab"] .brief-decision .hero-insights { grid-column:1/-1; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; }
267
+ :root[data-theme="datalab"] .brief-decision .hero-insight { min-height:96px; padding:12px 14px; border:1px solid var(--border); border-top-width:3px; border-radius:7px; }
268
+ :root[data-theme="datalab"] .brief-outcomes .brief-block-body { display:grid; gap:18px; }
269
+ :root[data-theme="datalab"] .brief-outcomes .outcome-groups { grid-template-columns:repeat(auto-fit,minmax(min(230px,100%),1fr)); gap:10px; }
270
+ :root[data-theme="datalab"] .brief-outcomes .outcome-group { padding:13px 14px; }
271
+ :root[data-theme="datalab"] .brief-chart { margin:0; }
272
+ :root[data-theme="datalab"] .brief-tribunal,
273
+ :root[data-theme="datalab"] .brief-action { min-height:100%; }
274
+ :root[data-theme="datalab"] .tribunal-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
275
+ :root[data-theme="datalab"] .tribunal-card { min-height:0; padding:13px 14px; }
276
+ :root[data-theme="datalab"] .evidence-to-action { gap:7px; padding-bottom:8px; margin-bottom:0; }
277
+ :root[data-theme="datalab"] .action-node { min-width:150px; padding:12px 13px; }
278
+ :root[data-theme="datalab"] .brief-source-grid { grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; }
279
+ :root[data-theme="datalab"] .brief-source { min-width:0; padding:12px 14px; background:var(--surface2); }
280
+ :root[data-theme="datalab"] .brief-source h3 { font-size:.88rem; line-height:1.45; overflow-wrap:anywhere; }
281
+
282
+ /* Full report: compact analytical reader. */
283
+ :root[data-theme="datalab"] .full-report-intro { max-width:none; margin:24px 0 16px; padding:16px 18px; border:1px solid var(--border); border-radius:10px; background:var(--surface); }
284
+ :root[data-theme="datalab"] .full-report-intro h2 { font-family:var(--font-ui); font-size:1.35rem; }
285
+ :root[data-theme="datalab"] .full-report-layout { grid-template-columns:minmax(210px,270px) minmax(0,1fr); gap:18px; }
286
+ :root[data-theme="datalab"] .full-report-toc { top:12px; padding:12px; border:1px solid var(--border); border-radius:10px; background:var(--surface); box-shadow:var(--shadow); }
287
+ @media (max-width:980px) {
288
+ :root[data-theme="datalab"] .full-report-layout { grid-template-columns:minmax(0,1fr); }
289
+ :root[data-theme="datalab"] .full-report-toc { position:relative; top:auto; max-height:none; }
290
+ }
291
+ :root[data-theme="datalab"] .full-report-toc a { border-left:3px solid transparent; border-radius:5px; padding:8px 9px; font-size:.82rem; }
292
+ :root[data-theme="datalab"] .full-report-toc a.active { border-left-color:var(--primary); background:var(--primary-soft); color:var(--text); }
293
+ :root[data-theme="datalab"] .full-report-content { max-width:none; }
294
+ :root[data-theme="datalab"] .full-chapter { margin:0 0 18px; padding:20px; border:1px solid var(--border); border-radius:12px; background:var(--surface); box-shadow:var(--shadow); }
295
+ :root[data-theme="datalab"] .full-chapter-header { max-width:none; margin-bottom:18px; display:grid; grid-template-columns:minmax(220px,.65fr) minmax(0,1fr); gap:20px; align-items:start; }
296
+ :root[data-theme="datalab"] .full-chapter-header h2 { font-family:var(--font-ui); font-size:1.18rem; line-height:1.35; }
297
+ :root[data-theme="datalab"] .full-chapter-lead { font-size:.88rem; line-height:1.55; }
298
+ :root[data-theme="datalab"] .scope-grid { grid-template-columns:repeat(auto-fit,minmax(min(260px,100%),1fr)); }
299
+ :root[data-theme="datalab"] .method-audit-grid { grid-template-columns:repeat(auto-fit,minmax(min(240px,100%),1fr)); gap:9px; }
300
+ :root[data-theme="datalab"] .matrix-controls { position:sticky; top:0; z-index:5; padding:9px; background:rgba(255,255,255,.94); backdrop-filter:blur(8px); border:1px solid var(--border); border-radius:7px; }
301
+ :root[data-theme="datalab"] .matrix-tools input,
302
+ :root[data-theme="datalab"] .matrix-tools select { min-height:36px; padding:6px 9px; }
303
+ :root[data-theme="datalab"] .data-table { font-size:.82rem; }
304
+ :root[data-theme="datalab"] .data-table th,
305
+ :root[data-theme="datalab"] .data-table td { padding:7px 8px; }
306
+ :root[data-theme="datalab"] .claim-cell { max-width:none; min-width:260px; }
307
+ :root[data-theme="datalab"] code { font-size:.78em; }
308
+
309
+ /* Lieflat gallery — analytical workbench density: compact cards, uppercase
310
+ micro labels, controlled figure surface. */
311
+ :root[data-theme="datalab"] .lieflat-gallery-container {
312
+ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px;
313
+ }
314
+ :root[data-theme="datalab"] .lieflat-card { padding:16px 18px 12px; border-radius:10px; background:var(--surface2); }
315
+ :root[data-theme="datalab"] .lieflat-title { font-family:var(--font-ui); font-size:.98rem; line-height:1.35; }
316
+ :root[data-theme="datalab"] .lieflat-sub { font-size:.8rem; line-height:1.5; }
317
+ :root[data-theme="datalab"] .lieflat-figure svg { border-radius:6px; background:var(--surface); }
318
+ :root[data-theme="datalab"] .lieflat-caption { font-size:.75rem; }
319
+ :root[data-theme="datalab"] .lieflat-src { font-size:.62rem; }
320
+ :root[data-theme="datalab"] .lieflat-suppressed { font-size:.78rem; }
321
+ :root[data-theme="datalab"] .lang-btn { min-height:36px; }
322
+ :root[data-theme="datalab"] .lang-switcher { align-items:center; }
323
+
324
+ @media (max-width:1100px) {
325
+ :root[data-theme="datalab"] .brief-decision .hero-insights { grid-template-columns:repeat(2,minmax(0,1fr)); }
326
+ :root[data-theme="datalab"] .brief-source-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
327
+ :root[data-theme="datalab"] .lieflat-gallery-container { grid-template-columns:1fr; }
328
+ }
329
+ @media (max-width:980px) {
330
+ :root[data-theme="datalab"] .report-page-brief { grid-template-columns:minmax(0,1fr); }
331
+ :root[data-theme="datalab"] .brief-block { grid-column:1 !important; }
332
+ :root[data-theme="datalab"] .brief-block-header { display:block; }
333
+ :root[data-theme="datalab"] .brief-block-header p { margin-top:6px; max-width:none; text-align:left; }
334
+ :root[data-theme="datalab"] .brief-decision .decision-hero { grid-template-columns:1fr; }
335
+ :root[data-theme="datalab"] .brief-decision .hero-insights { grid-column:1; }
336
+ :root[data-theme="datalab"] .full-chapter-header { grid-template-columns:1fr; }
337
+ }
338
+ @media (max-width:720px) {
339
+ :root[data-theme="datalab"] .controls { width:calc(100% - 24px); padding:8px 10px; }
340
+ :root[data-theme="datalab"] .report-shell { padding-left:14px; padding-right:14px; }
341
+ :root[data-theme="datalab"] .report-header { padding:15px 14px; }
342
+ :root[data-theme="datalab"] .report-header h1 { font-size:1.3rem; }
343
+ :root[data-theme="datalab"] .brief-block { padding:15px 14px; }
344
+ :root[data-theme="datalab"] .brief-decision { padding:0; }
345
+ :root[data-theme="datalab"] .brief-decision .brief-block-header { padding:15px 14px 0; }
346
+ :root[data-theme="datalab"] .brief-decision .decision-hero { padding:18px 14px; }
347
+ :root[data-theme="datalab"] .brief-decision .hero-insights,
348
+ :root[data-theme="datalab"] .brief-source-grid,
349
+ :root[data-theme="datalab"] .tribunal-grid { grid-template-columns:1fr; }
350
+ :root[data-theme="datalab"] .full-chapter { padding:16px 14px; }
351
+ :root[data-theme="datalab"] .data-table { font-size:.8rem; }
352
+ }
353
+
354
+ /* Theme 04 — DataLab Dark.
355
+ Same information architecture as DataLab Light, rendered as a focused dark analytical workspace. */
356
+ :root[data-theme="datalab-dark"] {
357
+ --bg:#0F131A; --surface:#171C24; --surface2:#1D2430; --text:#E9EDF3;
358
+ --text-muted:#98A3B3; --primary:#6EA8FF; --primary-soft:#1B3152;
359
+ --support:#58C79B; --support-soft:#18372C; --contradict:#F08282;
360
+ --contradict-soft:#422426; --uncertain:#E4B45F; --uncertain-soft:#3B3020;
361
+ --insufficient:#8D98A8; --border:#2D3745; --radius:8px; --radius-sm:6px;
362
+ --shadow:0 8px 24px rgba(0,0,0,.22); --font-head:'Helvetica Neue',Arial,'PingFang SC',sans-serif;
363
+ --font-ui:'Helvetica Neue',Arial,'PingFang SC',sans-serif; --font-mono:'SF Mono',Menlo,Consolas,monospace;
364
+ }
365
+ :root[data-theme="datalab-dark"] body { font-size:15.5px; }
366
+ :root[data-theme="datalab-dark"] .controls {
367
+ max-width:1480px; margin-top:12px; padding:9px 12px; border:1px solid var(--border);
368
+ border-radius:10px; background:rgba(23,28,36,.94); box-shadow:var(--shadow); backdrop-filter:blur(12px);
369
+ }
370
+ :root[data-theme="datalab-dark"] .generated-theme { color:var(--primary); font-weight:750; letter-spacing:.06em; }
371
+ :root[data-theme="datalab-dark"] .lang-btn { background:var(--surface2); border-color:var(--border); color:var(--text); }
372
+ :root[data-theme="datalab-dark"] .lang-btn.active { background:var(--primary); border-color:var(--primary); color:#0D1420; }
373
+ :root[data-theme="datalab-dark"] .report-shell { width:100%; max-width:1480px; padding:18px clamp(16px,2.4vw,30px) 72px; }
374
+ :root[data-theme="datalab-dark"] .report-header {
375
+ width:100%; max-width:none; margin:0 0 22px; padding:18px 20px;
376
+ border:1px solid var(--border); border-radius:12px; background:var(--surface); box-shadow:var(--shadow);
377
+ }
378
+ :root[data-theme="datalab-dark"] .report-header h1 { max-width:1100px; font-size:clamp(1.4rem,2vw,1.75rem); line-height:1.22; }
379
+ :root[data-theme="datalab-dark"] .report-header .meta { margin:8px 0 0; font-size:.85rem; color:var(--text-muted); }
380
+ :root[data-theme="datalab-dark"] .report-brand-row { margin-bottom:8px; }
381
+ :root[data-theme="datalab-dark"] .report-brand { color:var(--primary); text-transform:uppercase; letter-spacing:.08em; font-size:.83rem; }
382
+ :root[data-theme="datalab-dark"] .generated-theme-chip { border-radius:5px; background:var(--surface2); border-color:var(--border); color:var(--text-muted); font-size:.72rem; }
383
+ :root[data-theme="datalab-dark"] .report-view-switcher { margin-top:14px; gap:0; }
384
+ :root[data-theme="datalab-dark"] .report-view-btn { min-height:36px; border-radius:6px 0 0 6px; padding:7px 14px; font-size:.86rem; background:var(--surface2); border-color:var(--border); }
385
+ :root[data-theme="datalab-dark"] .report-view-btn + .report-view-btn { border-radius:0 6px 6px 0; margin-left:-1px; }
386
+ :root[data-theme="datalab-dark"] .report-view-btn.active { background:var(--primary); border-color:var(--primary); color:#0D1420; }
387
+
388
+ :root[data-theme="datalab-dark"] .report-page-brief { width:100%; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:18px; align-items:start; }
389
+ :root[data-theme="datalab-dark"] .brief-block { width:100%; max-width:none; margin:0; padding:18px 20px; border:1px solid var(--border); border-radius:12px; background:var(--surface); box-shadow:var(--shadow); }
390
+ :root[data-theme="datalab-dark"] .brief-decision,
391
+ :root[data-theme="datalab-dark"] .brief-lieflat,
392
+ :root[data-theme="datalab-dark"] .brief-outcomes,
393
+ :root[data-theme="datalab-dark"] .brief-sources { grid-column:1/-1; }
394
+ :root[data-theme="datalab-dark"] .brief-tribunal,
395
+ :root[data-theme="datalab-dark"] .brief-action { grid-column:span 2; }
396
+ :root[data-theme="datalab-dark"] .brief-block-header { max-width:none; margin-bottom:16px; display:flex; justify-content:space-between; align-items:flex-start; gap:24px; }
397
+ :root[data-theme="datalab-dark"] .brief-block-header h2 { margin:0; font-family:var(--font-ui); font-size:1.02rem; line-height:1.35; text-transform:uppercase; letter-spacing:.055em; }
398
+ :root[data-theme="datalab-dark"] .brief-block-header p { max-width:680px; margin:0; font-size:.86rem; line-height:1.55; text-align:right; color:var(--text-muted); }
399
+ :root[data-theme="datalab-dark"] .brief-decision { padding:0; overflow:hidden; }
400
+ :root[data-theme="datalab-dark"] .brief-decision .brief-block-header { padding:18px 20px 0; }
401
+ :root[data-theme="datalab-dark"] .brief-decision .decision-hero { border-width:1px 0 0; border-radius:0; display:grid; grid-template-columns:minmax(210px,.7fr) minmax(0,2fr); gap:18px 28px; padding:24px 20px; background:var(--surface2); }
402
+ :root[data-theme="datalab-dark"] .brief-decision .hero-decision { align-content:start; margin:0; }
403
+ :root[data-theme="datalab-dark"] .brief-decision .hero-rationale { margin:0; font-family:var(--font-ui); font-size:1.08rem; line-height:1.55; color:#F0F3F8; }
404
+ :root[data-theme="datalab-dark"] .brief-decision .hero-insights { grid-column:1/-1; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; }
405
+ :root[data-theme="datalab-dark"] .brief-decision .hero-insight { min-height:96px; padding:12px 14px; border:1px solid var(--border); border-top-width:3px; border-radius:7px; background:var(--surface); }
406
+ :root[data-theme="datalab-dark"] .brief-outcomes .brief-block-body { display:grid; gap:18px; }
407
+ :root[data-theme="datalab-dark"] .brief-outcomes .outcome-groups { grid-template-columns:repeat(auto-fit,minmax(min(230px,100%),1fr)); gap:10px; }
408
+ :root[data-theme="datalab-dark"] .brief-outcomes .outcome-group { padding:13px 14px; background:var(--surface2); }
409
+ :root[data-theme="datalab-dark"] .brief-chart { margin:0; background:var(--surface2); }
410
+ :root[data-theme="datalab-dark"] .brief-chart svg,
411
+ :root[data-theme="datalab-dark"] .report-section svg { background:#FFFFFF; }
412
+ :root[data-theme="datalab-dark"] .brief-tribunal,
413
+ :root[data-theme="datalab-dark"] .brief-action { min-height:100%; }
414
+ :root[data-theme="datalab-dark"] .tribunal-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
415
+ :root[data-theme="datalab-dark"] .tribunal-card { min-height:0; padding:13px 14px; background:var(--surface2); }
416
+ :root[data-theme="datalab-dark"] .evidence-to-action { gap:7px; padding-bottom:8px; margin-bottom:0; }
417
+ :root[data-theme="datalab-dark"] .action-node { min-width:150px; padding:12px 13px; background:var(--surface2); }
418
+ :root[data-theme="datalab-dark"] .brief-source-grid { grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; }
419
+ :root[data-theme="datalab-dark"] .brief-source { min-width:0; padding:12px 14px; background:var(--surface2); }
420
+ :root[data-theme="datalab-dark"] .brief-source h3 { font-size:.88rem; line-height:1.45; overflow-wrap:anywhere; }
421
+
422
+ :root[data-theme="datalab-dark"] .full-report-intro { max-width:none; margin:24px 0 16px; padding:16px 18px; border:1px solid var(--border); border-radius:10px; background:var(--surface); }
423
+ :root[data-theme="datalab-dark"] .full-report-intro h2 { font-family:var(--font-ui); font-size:1.35rem; }
424
+ :root[data-theme="datalab-dark"] .full-report-layout { grid-template-columns:minmax(210px,270px) minmax(0,1fr); gap:18px; }
425
+ :root[data-theme="datalab-dark"] .full-report-toc { top:12px; padding:12px; border:1px solid var(--border); border-radius:10px; background:var(--surface); box-shadow:var(--shadow); }
426
+ @media (max-width:980px) {
427
+ :root[data-theme="datalab-dark"] .full-report-layout { grid-template-columns:minmax(0,1fr); }
428
+ :root[data-theme="datalab-dark"] .full-report-toc { position:relative; top:auto; max-height:none; }
429
+ }
430
+ :root[data-theme="datalab-dark"] .full-report-toc a { border-left:3px solid transparent; border-radius:5px; padding:8px 9px; font-size:.82rem; color:var(--text-muted); }
431
+ :root[data-theme="datalab-dark"] .full-report-toc a.active { border-left-color:var(--primary); background:var(--primary-soft); color:var(--text); }
432
+ :root[data-theme="datalab-dark"] .full-report-content { max-width:none; }
433
+ :root[data-theme="datalab-dark"] .full-chapter { margin:0 0 18px; padding:20px; border:1px solid var(--border); border-radius:12px; background:var(--surface); box-shadow:var(--shadow); }
434
+ :root[data-theme="datalab-dark"] .full-chapter-header { max-width:none; margin-bottom:18px; display:grid; grid-template-columns:minmax(220px,.65fr) minmax(0,1fr); gap:20px; align-items:start; }
435
+ :root[data-theme="datalab-dark"] .full-chapter-header h2 { font-family:var(--font-ui); font-size:1.18rem; line-height:1.35; }
436
+ :root[data-theme="datalab-dark"] .full-chapter-lead { font-size:.88rem; line-height:1.55; color:var(--text-muted); }
437
+ :root[data-theme="datalab-dark"] .scope-grid { grid-template-columns:repeat(auto-fit,minmax(min(260px,100%),1fr)); }
438
+ :root[data-theme="datalab-dark"] .method-audit-grid { grid-template-columns:repeat(auto-fit,minmax(min(240px,100%),1fr)); gap:9px; }
439
+ :root[data-theme="datalab-dark"] .scope-card,
440
+ :root[data-theme="datalab-dark"] .retrieval-grid>article,
441
+ :root[data-theme="datalab-dark"] .retrieval-coverage,
442
+ :root[data-theme="datalab-dark"] .method-audit-item,
443
+ :root[data-theme="datalab-dark"] .detail-body,
444
+ :root[data-theme="datalab-dark"] .visual-suppressed { background:var(--surface2); border-color:var(--border); }
445
+ :root[data-theme="datalab-dark"] .matrix-controls { position:sticky; top:0; z-index:5; padding:9px; background:rgba(23,28,36,.95); backdrop-filter:blur(8px); border:1px solid var(--border); border-radius:7px; }
446
+ :root[data-theme="datalab-dark"] .matrix-tools input,
447
+ :root[data-theme="datalab-dark"] .matrix-tools select { min-height:36px; padding:6px 9px; background:var(--surface2); border-color:var(--border); color:var(--text); }
448
+ :root[data-theme="datalab-dark"] .data-table { font-size:.82rem; }
449
+ :root[data-theme="datalab-dark"] .data-table th,
450
+ :root[data-theme="datalab-dark"] .data-table td { padding:7px 8px; border-color:var(--border); }
451
+ :root[data-theme="datalab-dark"] .table-wrap .data-table th { background:var(--surface2); }
452
+ :root[data-theme="datalab-dark"] .data-table tbody tr:nth-child(even) { background:#141A22; }
453
+ :root[data-theme="datalab-dark"] .data-table tbody tr:hover { background:var(--primary-soft); }
454
+ :root[data-theme="datalab-dark"] .claim-cell { max-width:none; min-width:260px; }
455
+ :root[data-theme="datalab-dark"] code { font-size:.78em; background:var(--surface2); }
456
+
457
+ /* Lieflat gallery — dark workbench density; figure surface keeps the dark
458
+ card_bg and labels hold ≥4.5:1 contrast against it. */
459
+ :root[data-theme="datalab-dark"] .lieflat-gallery-container {
460
+ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px;
461
+ }
462
+ :root[data-theme="datalab-dark"] .lieflat-card { padding:16px 18px 12px; border-radius:10px; background:var(--surface2); }
463
+ :root[data-theme="datalab-dark"] .lieflat-title { font-family:var(--font-ui); font-size:.98rem; line-height:1.35; }
464
+ :root[data-theme="datalab-dark"] .lieflat-sub { font-size:.8rem; line-height:1.5; }
465
+ :root[data-theme="datalab-dark"] .lieflat-figure svg { border-radius:6px; background:transparent; }
466
+ :root[data-theme="datalab-dark"] .lieflat-caption { font-size:.75rem; }
467
+ :root[data-theme="datalab-dark"] .lieflat-src { font-size:.62rem; }
468
+ :root[data-theme="datalab-dark"] .lieflat-suppressed { font-size:.78rem; }
469
+ :root[data-theme="datalab-dark"] .lang-btn { min-height:36px; }
470
+ :root[data-theme="datalab-dark"] .lang-switcher { align-items:center; }
471
+
472
+ @media (max-width:1100px) {
473
+ :root[data-theme="datalab-dark"] .brief-decision .hero-insights { grid-template-columns:repeat(2,minmax(0,1fr)); }
474
+ :root[data-theme="datalab-dark"] .brief-source-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
475
+ :root[data-theme="datalab-dark"] .lieflat-gallery-container { grid-template-columns:1fr; }
476
+ }
477
+ @media (max-width:980px) {
478
+ :root[data-theme="datalab-dark"] .report-page-brief { grid-template-columns:minmax(0,1fr); }
479
+ :root[data-theme="datalab-dark"] .brief-block { grid-column:1 !important; }
480
+ :root[data-theme="datalab-dark"] .brief-block-header { display:block; }
481
+ :root[data-theme="datalab-dark"] .brief-block-header p { margin-top:6px; max-width:none; text-align:left; }
482
+ :root[data-theme="datalab-dark"] .brief-decision .decision-hero { grid-template-columns:1fr; }
483
+ :root[data-theme="datalab-dark"] .brief-decision .hero-insights { grid-column:1; }
484
+ :root[data-theme="datalab-dark"] .full-chapter-header { grid-template-columns:1fr; }
485
+ }
486
+ @media (max-width:720px) {
487
+ :root[data-theme="datalab-dark"] .controls { width:calc(100% - 24px); padding:8px 10px; }
488
+ :root[data-theme="datalab-dark"] .report-shell { padding-left:14px; padding-right:14px; }
489
+ :root[data-theme="datalab-dark"] .report-header { padding:15px 14px; }
490
+ :root[data-theme="datalab-dark"] .report-header h1 { font-size:1.3rem; }
491
+ :root[data-theme="datalab-dark"] .brief-block { padding:15px 14px; }
492
+ :root[data-theme="datalab-dark"] .brief-decision { padding:0; }
493
+ :root[data-theme="datalab-dark"] .brief-decision .brief-block-header { padding:15px 14px 0; }
494
+ :root[data-theme="datalab-dark"] .brief-decision .decision-hero { padding:18px 14px; }
495
+ :root[data-theme="datalab-dark"] .brief-decision .hero-insights,
496
+ :root[data-theme="datalab-dark"] .brief-source-grid,
497
+ :root[data-theme="datalab-dark"] .tribunal-grid { grid-template-columns:1fr; }
498
+ :root[data-theme="datalab-dark"] .full-chapter { padding:16px 14px; }
499
+ :root[data-theme="datalab-dark"] .data-table { font-size:.8rem; }
500
+ }
501
+
502
+ /* Theme 05 — Presentation / Judge [Dark].
503
+ Review-first presentation mode: strong decision framing without dashboard-scale typography,
504
+ readable evidence panels and an audit-ready full report. */
505
+ :root[data-theme="presentation"] {
506
+ --bg:#121419; --surface:#1B1F26; --surface2:#232933; --text:#F2F4F7;
507
+ --text-muted:#A2A9B4; --primary:#E8A87C; --primary-soft:#382E27;
508
+ --support:#7BC48F; --support-soft:#203229; --contradict:#E28B7E;
509
+ --contradict-soft:#392522; --uncertain:#E4C07A; --uncertain-soft:#38301F;
510
+ --insufficient:#9299A4; --border:#343B46; --radius:14px; --radius-sm:9px;
511
+ --shadow:0 12px 34px rgba(0,0,0,.25); --font-head:'Helvetica Neue','PingFang SC',Arial,sans-serif;
512
+ --font-ui:'Helvetica Neue','PingFang SC',Arial,sans-serif; --font-mono:'SF Mono',Menlo,Consolas,monospace;
513
+ }
514
+ :root[data-theme="presentation"] body { font-size:16px; }
515
+ :root[data-theme="presentation"] .controls {
516
+ width:calc(100% - 36px); max-width:1180px; margin:16px auto 0; padding:9px 12px;
517
+ border:1px solid var(--border); border-radius:12px; background:rgba(25,29,35,.94);
518
+ box-shadow:0 8px 24px rgba(0,0,0,.18); backdrop-filter:blur(12px);
519
+ }
520
+ :root[data-theme="presentation"] .generated-theme { margin-right:auto; color:var(--primary); font-size:.76rem; font-weight:800; letter-spacing:.075em; }
521
+ :root[data-theme="presentation"] .lang-switcher { gap:6px; }
522
+ :root[data-theme="presentation"] .lang-switcher>span { color:var(--text-muted); font-size:.74rem; }
523
+ :root[data-theme="presentation"] .lang-btn { min-height:34px; border-color:#3C4450; background:#20252D; color:#DCE1E8; padding:5px 11px; }
524
+ :root[data-theme="presentation"] .lang-btn.active { background:var(--primary); border-color:var(--primary); color:#15181D; }
525
+
526
+ :root[data-theme="presentation"] .report-shell { width:100%; max-width:1220px; padding:24px clamp(16px,2.8vw,30px) 88px; }
527
+ :root[data-theme="presentation"] .report-header {
528
+ width:100%; max-width:1120px; margin:0 auto 36px; padding:24px 26px;
529
+ border:1px solid var(--border); border-radius:16px; background:linear-gradient(145deg,#1A1E25,#20252E);
530
+ box-shadow:var(--shadow);
531
+ }
532
+ :root[data-theme="presentation"] .report-brand-row { margin-bottom:12px; }
533
+ :root[data-theme="presentation"] .report-brand { color:var(--primary); text-transform:uppercase; letter-spacing:.1em; font-size:.8rem; }
534
+ :root[data-theme="presentation"] .generated-theme-chip { background:#242A33; border-color:#3C4450; color:#B8C0CB; }
535
+ :root[data-theme="presentation"] .report-header h1 { max-width:980px; font-size:clamp(1.35rem,2vw,1.7rem); line-height:1.08; letter-spacing:-.022em; }
536
+ :root[data-theme="presentation"] .report-header .meta { margin:10px 0 0; color:var(--text-muted); font-size:.86rem; overflow-wrap:anywhere; }
537
+ :root[data-theme="presentation"] .report-view-switcher { display:inline-flex; margin-top:18px; padding:4px; border:1px solid var(--border); border-radius:999px; background:#12151A; }
538
+ :root[data-theme="presentation"] .report-view-btn { min-height:36px; border:0; background:transparent; color:#BBC2CC; padding:7px 15px; }
539
+ :root[data-theme="presentation"] .report-view-btn.active { background:var(--primary); color:#15181D; box-shadow:none; }
540
+
541
+ :root[data-theme="presentation"] .report-page-brief { width:100%; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:22px; align-items:start; }
542
+ :root[data-theme="presentation"] .brief-block { width:100%; max-width:none; margin:0; padding:22px 24px; border:1px solid var(--border); border-radius:16px; background:var(--surface); box-shadow:var(--shadow); }
543
+ :root[data-theme="presentation"] .brief-decision,
544
+ :root[data-theme="presentation"] .brief-outcomes,
545
+ :root[data-theme="presentation"] .brief-sources { grid-column:1/-1; }
546
+ :root[data-theme="presentation"] .brief-decision { padding:0; border:0; background:transparent; box-shadow:none; }
547
+ :root[data-theme="presentation"] .brief-decision .brief-block-header { display:none; }
548
+ :root[data-theme="presentation"] .brief-decision .decision-hero {
549
+ min-height:360px; display:flex; flex-direction:column; justify-content:center;
550
+ border:1px solid var(--border); border-radius:18px; background:linear-gradient(145deg,var(--surface),var(--surface2));
551
+ box-shadow:0 18px 50px rgba(0,0,0,.30); padding:clamp(28px,4vw,48px);
552
+ }
553
+ :root[data-theme="presentation"] .decision-value { font-size:clamp(2rem,4vw,2.9rem); line-height:.98; letter-spacing:-.04em; color:var(--primary); }
554
+ :root[data-theme="presentation"] .confidence-badge { font-size:.92rem; padding:6px 13px; color:#15181D; }
555
+ :root[data-theme="presentation"] .hero-rationale { max-width:900px; font-family:var(--font-ui); font-size:clamp(0.95rem,1.4vw,1.12rem); line-height:1.5; color:#E5E8ED; }
556
+ :root[data-theme="presentation"] .hero-insights { grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
557
+ :root[data-theme="presentation"] .hero-insight { min-height:112px; background:#191D23; border-radius:11px; padding:16px 18px; }
558
+ :root[data-theme="presentation"] .brief-block-header h2 { font-size:1.15rem; line-height:1.2; }
559
+ :root[data-theme="presentation"] .brief-block-header p { color:#ABB3BE; font-size:.86rem; line-height:1.55; }
560
+ :root[data-theme="presentation"] .outcome-separation .visual-heading h3 { font-size:1.05rem; }
561
+ :root[data-theme="presentation"] .outcome-groups { grid-template-columns:repeat(auto-fit,minmax(min(240px,100%),1fr)); gap:12px; }
562
+ :root[data-theme="presentation"] .outcome-group,
563
+ :root[data-theme="presentation"] .tribunal-card,
564
+ :root[data-theme="presentation"] .trace-chain-card,
565
+ :root[data-theme="presentation"] .action-node { background:var(--surface2); border-color:var(--border); }
566
+ :root[data-theme="presentation"] .tribunal-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
567
+ :root[data-theme="presentation"] .tribunal-card { min-height:0; }
568
+ :root[data-theme="presentation"] .evidence-to-action { gap:8px; }
569
+ :root[data-theme="presentation"] .action-node { min-width:160px; }
570
+ :root[data-theme="presentation"] .brief-source-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
571
+ :root[data-theme="presentation"] .brief-source { min-width:0; background:#191D23; border-color:#353D48; }
572
+ :root[data-theme="presentation"] .brief-source h3 { overflow-wrap:anywhere; }
573
+ :root[data-theme="presentation"] .report-section svg,
574
+ :root[data-theme="presentation"] .academic-figure svg { background:#fff; }
575
+
576
+ :root[data-theme="presentation"] .full-report-intro { width:100%; max-width:1060px; margin:44px auto 26px; }
577
+ :root[data-theme="presentation"] .full-report-intro h2 { font-size:clamp(1.5rem,2.2vw,1.9rem); line-height:1.08; }
578
+ :root[data-theme="presentation"] .full-report-layout { width:100%; max-width:1160px; margin:0 auto; grid-template-columns:minmax(190px,230px) minmax(0,1fr); gap:28px; }
579
+ :root[data-theme="presentation"] .full-report-toc { top:16px; padding:14px; border:1px solid var(--border); border-radius:12px; background:#171B21; box-shadow:0 10px 28px rgba(0,0,0,.22); }
580
+ :root[data-theme="presentation"] .full-report-toc a { border-radius:7px; border-left:0; padding:9px 10px; color:#AEB6C1; font-size:.84rem; }
581
+ :root[data-theme="presentation"] .full-report-toc a.active { border-left:0; background:#282E38; color:#fff; box-shadow:inset 3px 0 0 var(--primary); }
582
+ :root[data-theme="presentation"] .full-report-content { max-width:none; }
583
+ :root[data-theme="presentation"] .full-chapter { margin-bottom:28px; padding:clamp(22px,3vw,30px); border:1px solid var(--border); border-radius:16px; background:var(--surface); box-shadow:0 12px 30px rgba(0,0,0,.20); }
584
+ :root[data-theme="presentation"] .full-chapter-header { max-width:900px; margin-bottom:24px; }
585
+ :root[data-theme="presentation"] .full-chapter-header h2 { font-size:clamp(1.2rem,1.9vw,1.5rem); line-height:1.12; }
586
+ :root[data-theme="presentation"] .full-chapter-lead { color:#AEB6C1; font-size:.96rem; line-height:1.6; }
587
+ :root[data-theme="presentation"] .scope-card,
588
+ :root[data-theme="presentation"] .retrieval-grid>article,
589
+ :root[data-theme="presentation"] .retrieval-coverage,
590
+ :root[data-theme="presentation"] .method-audit-item,
591
+ :root[data-theme="presentation"] .detail-body,
592
+ :root[data-theme="presentation"] .visual-suppressed { background:#242A33; border-color:#3B4450; }
593
+ :root[data-theme="presentation"] .data-table { font-size:.86rem; }
594
+ :root[data-theme="presentation"] .data-table td,
595
+ :root[data-theme="presentation"] .data-table th { border-color:#3B4450; }
596
+
597
+ /* 移动端安全(主题规则特异性高于基座断点:必须自带响应式覆写) */
598
+ @media (max-width:980px) {
599
+ :root[data-theme="presentation"] .full-report-layout { grid-template-columns:minmax(0,1fr); }
600
+ :root[data-theme="presentation"] .full-report-toc { position:relative; top:auto; max-height:none; }
601
+ }
602
+ @media (max-width:720px) {
603
+ :root[data-theme="presentation"] .outcome-groups { grid-template-columns:1fr; }
604
+ :root[data-theme="presentation"] .tribunal-grid,
605
+ :root[data-theme="presentation"] .brief-source-grid { grid-template-columns:1fr; }
606
+ }
607
+ :root[data-theme="presentation"] .table-wrap .data-table th { background:#242A33; }
608
+
609
+ @media (max-width:980px) {
610
+ :root[data-theme="presentation"] .report-page-brief { grid-template-columns:minmax(0,1fr); }
611
+ :root[data-theme="presentation"] .brief-block { grid-column:1 !important; }
612
+ :root[data-theme="presentation"] .full-report-layout { max-width:none; }
613
+ }
614
+ @media (max-width:720px) {
615
+ :root[data-theme="presentation"] .controls { width:calc(100% - 24px); border-radius:10px; }
616
+ :root[data-theme="presentation"] .report-shell { padding-left:14px; padding-right:14px; }
617
+ :root[data-theme="presentation"] .report-header { padding:18px 16px; border-radius:12px; }
618
+ :root[data-theme="presentation"] .report-header h1 { font-size:1.2rem; }
619
+ :root[data-theme="presentation"] .brief-block { padding:18px 16px; }
620
+ :root[data-theme="presentation"] .brief-decision { padding:0; }
621
+ :root[data-theme="presentation"] .brief-decision .decision-hero { min-height:0; padding:24px 18px; border-radius:13px; }
622
+ :root[data-theme="presentation"] .decision-value { font-size:2rem; }
623
+ :root[data-theme="presentation"] .hero-insights,
624
+ :root[data-theme="presentation"] .tribunal-grid,
625
+ :root[data-theme="presentation"] .brief-source-grid { grid-template-columns:1fr; }
626
+ :root[data-theme="presentation"] .full-chapter { padding:18px 16px; border-radius:12px; }
627
+ }
628
+
629
+ /* Typography pass: verdict type scale + insight padding + dark-court gallery.
630
+ Gold/orange accents keep ≥4.5:1 contrast on the dark surfaces. */
631
+ :root[data-theme="presentation"] .hero-decision .decision-value { line-height:.96; }
632
+ :root[data-theme="presentation"] .hero-rationale { color:#E9ECF1; }
633
+ :root[data-theme="presentation"] .hero-insight { padding:18px 20px; }
634
+ :root[data-theme="presentation"] .brief-decision .hero-insight { padding:16px 18px; }
635
+ :root[data-theme="presentation"] .lieflat-card { background:var(--surface); border-radius:16px; padding:22px 24px 16px; }
636
+ :root[data-theme="presentation"] .lieflat-title { font-size:1.08rem; line-height:1.3; }
637
+ :root[data-theme="presentation"] .lieflat-sub { font-size:.82rem; }
638
+ :root[data-theme="presentation"] .lieflat-figure svg { border-radius:10px; background:transparent; }
639
+ :root[data-theme="presentation"] .lieflat-caption { font-size:.76rem; }
640
+ :root[data-theme="presentation"] .lieflat-src { font-size:.64rem; }
641
+ :root[data-theme="presentation"] .lieflat-suppressed { background:var(--surface2); font-size:.78rem; }
642
+
643
+ /* EduEvidence base stylesheet — extracted verbatim from build_report.py
644
+ (plan E2: templates/styles live outside the renderer; loaded at build time). */
645
+ :root {
646
+ --bg:#F7F4ED; --surface:#FFFFFF; --surface2:#FCFAF6;
647
+ --text:#3A3833; --primary:#B8694A; --support:#5E8A6A;
648
+ --contradict:#A85B53; --uncertain:#C99A4A; --insufficient:#8A867E;
649
+ --border:#E5DFD3; --radius:10px; --shadow:0 1px 3px rgba(60,56,48,.08);
650
+ --font-head:'Georgia','Songti SC','Noto Serif CJK SC',serif;
651
+ --font-ui:'Helvetica Neue','PingFang SC','Noto Sans CJK SC',Arial,sans-serif;
652
+ }
653
+ * { box-sizing:border-box; }
654
+ html, body { max-width:100%; overflow-x:hidden; }
655
+ body { margin:0; background:var(--bg); color:var(--text);
656
+ font-family:var(--font-ui); line-height:1.65;
657
+ font-variant-numeric:tabular-nums; }
658
+ .report-shell { width:100%; max-width:1200px; margin:0 auto; padding:24px clamp(18px,3vw,32px) 80px; }
659
+ .controls { width:calc(100% - 36px); max-width:1200px; margin:0 auto 16px; padding:12px clamp(0px,1vw,12px); display:flex; gap:18px; flex-wrap:wrap; align-items:center;
660
+ border-bottom:1px solid var(--border); }
661
+ .report-header { border-bottom:1px solid var(--border); padding-bottom:16px; margin-bottom:24px; }
662
+ .report-header h1 { font-family:var(--font-head); font-size:1.55rem; margin:0 0 8px; color:var(--text); }
663
+ .report-header .meta { color:var(--insufficient); font-size:.85rem; }
664
+ .lang-switcher { display:flex; gap:8px; align-items:center; flex-wrap:wrap; }
665
+ .lang-switcher span { font-size:.82rem; color:var(--insufficient); }
666
+ .lang-btn { background:var(--surface); border:1px solid var(--border); border-radius:999px;
667
+ padding:4px 12px; font-size:.8rem; cursor:pointer; color:var(--text); }
668
+ .lang-btn.active { background:var(--primary); color:#fff; border-color:var(--primary); }
669
+ .report-section { background:var(--surface); border:1px solid var(--border);
670
+ border-radius:var(--radius); box-shadow:var(--shadow);
671
+ padding:20px 24px; margin-bottom:20px; }
672
+ .report-section h2 { font-family:var(--font-head); font-size:1.25rem; margin:0 0 6px;
673
+ border-bottom:1px solid var(--border); padding-bottom:8px; }
674
+ .section-lead { font-size:.88rem; color:var(--insufficient); margin:0 0 14px;
675
+ background:var(--surface2); border-radius:6px; padding:8px 12px;
676
+ border-left:3px solid var(--primary); }
677
+ .report-section h3 { font-size:.95rem; margin:14px 0 6px; }
678
+ .decision-card { padding:18px 20px; border-radius:10px;
679
+ border-left:6px solid var(--insufficient); background:var(--surface2);
680
+ box-shadow:var(--shadow); }
681
+ .decision-card.adopt { border-left-color:var(--support); }
682
+ .decision-card.pilot { border-left-color:var(--uncertain); }
683
+ .decision-card.reject { border-left-color:var(--contradict); }
684
+ .kpi-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:12px 18px; }
685
+ .kpi-label { display:block; font-size:.72rem; color:var(--insufficient); text-transform:uppercase; letter-spacing:.05em; margin-bottom:2px; }
686
+ .kpi-value { font-size:1.05rem; font-weight:600; }
687
+ .decision-value { font-family:var(--font-head); font-size:1.5rem; font-weight:700; }
688
+ .confidence-badge { background:var(--uncertain); color:#fff; border-radius:999px; padding:3px 12px; font-size:.82rem; }
689
+ .rationale { color:var(--text); font-size:.92rem; margin-top:12px; border-top:1px dashed var(--border);
690
+ padding-top:10px; }
691
+ .exec-summary { background:var(--surface2); border:1px solid var(--border);
692
+ border-radius:10px; padding:16px 20px; margin-bottom:18px; }
693
+ .exec-summary h3 { margin:0 0 10px; color:var(--primary); }
694
+ .summary-row { display:flex; gap:12px; margin:8px 0; }
695
+ .summary-k { flex:0 0 64px; font-weight:700; color:var(--insufficient); font-size:.88rem; }
696
+ .summary-v { flex:1; font-size:.95rem; }
697
+ .summary-list { margin:4px 0 0; padding-left:18px; }
698
+ .summary-tag { display:inline-block; border-radius:999px; padding:0 10px; font-size:.75rem; color:#fff; }
699
+ .summary-tag.pos { background:var(--support); }
700
+ .summary-tag.neg { background:var(--contradict); }
701
+ ul.can li { border-left:3px solid var(--support); }
702
+ ul.uncertain li { border-left:3px solid var(--uncertain); }
703
+ ul.cannot li { border-left:3px solid var(--contradict); }
704
+ ul.can li, ul.uncertain li, ul.cannot li { list-style:none; margin:6px 0; padding:6px 10px;
705
+ background:var(--surface2); border-radius:6px; font-size:.9rem; }
706
+ .report-section svg { max-width:100%; height:auto; border:1px solid var(--border);
707
+ border-radius:var(--radius-sm); background:#fff; }
708
+ .table-wrap { overflow-x:auto; -webkit-overflow-scrolling:touch; border:1px solid var(--border);
709
+ border-radius:var(--radius-sm); max-width:100%; }
710
+ .table-wrap .data-table { border:none; }
711
+ .data-table { width:100%; border-collapse:collapse; font-size:.88rem; }
712
+ .table-wrap .data-table th { background:var(--surface2); position:sticky; top:0; white-space:nowrap; }
713
+ .data-table th, .data-table td { border:1px solid var(--border); padding:7px 10px; text-align:left;
714
+ vertical-align:top; }
715
+ .data-table th { background:var(--surface2); white-space:nowrap; }
716
+ .data-table td.cell-main { max-width:280px; overflow:hidden; text-overflow:ellipsis;
717
+ white-space:nowrap; }
718
+ .data-table tbody tr:nth-child(even) { background:var(--surface2); }
719
+ .data-table tbody tr:hover { background:var(--primary-soft, #F3E4DC); }
720
+ .cite-badge { display:inline-block; margin-left:6px; padding:1px 7px; border-radius:999px; font-size:.66rem; border:1px solid var(--border); vertical-align:middle; }
721
+ .cite-badge.cite-ok { color:#166534; border-color:#16a34a55; background:rgba(22,163,74,.08); }
722
+ .cite-badge.cite-retracted { color:#991b1b; border-color:#dc262688; background:rgba(220,38,38,.10); font-weight:700; }
723
+ .raw-tag { display:inline-block; margin-left:6px; font-size:.68rem; color:var(--insufficient);
724
+ background:var(--surface2); border:1px solid var(--border); border-radius:4px;
725
+ padding:0 5px; vertical-align:1px; font-family:'SF Mono',Menlo,monospace; }
726
+ .num { text-align:right; font-variant-numeric:tabular-nums; white-space:nowrap; }
727
+ .dir { display:inline-block; border-radius:999px; padding:1px 9px; font-size:.78rem; }
728
+ .dir.pos { background:var(--support); color:#fff; }
729
+ .dir.neg { background:var(--contradict); color:#fff; }
730
+ .dir.neu { background:var(--uncertain); color:#fff; }
731
+ .method-verdict { font-weight:700; }
732
+ .phase { border-left:3px solid var(--primary); padding:4px 0 4px 14px; margin:12px 0;
733
+ background:var(--surface2); border-radius:6px; }
734
+ .phase h3 { margin-top:4px; }
735
+ .conflict-card { border-left:3px solid var(--contradict); background:var(--surface2);
736
+ padding:10px 14px; margin:8px 0; border-radius:6px; }
737
+ .trace-row { margin:2px 0; font-size:.88rem; }
738
+ .trace-decision { font-weight:700; padding:4px 0; }
739
+ .trace-claim { margin-left:16px; padding:3px 0; }
740
+ .trace-evidence { margin-left:36px; color:var(--text); padding:2px 0; }
741
+ .chart-mount { display:none; width:100%; height:320px; margin-top:10px; }
742
+ .chart-mount.is-mounted { display:block; }
743
+ .chart-summary { color:var(--insufficient); font-size:.85rem; }
744
+ .academic-figure { margin:14px 0; }
745
+ .academic-figure svg { max-width:100%; height:auto; }
746
+ .academic-figure figcaption { font-size:.82rem; color:var(--insufficient); margin-top:6px; }
747
+ .matrix-tools { display:flex; gap:10px; flex-wrap:wrap; margin:8px 0; }
748
+ .matrix-tools input, .matrix-tools select { padding:5px 10px; font-size:.85rem;
749
+ border:1px solid var(--border); border-radius:6px; background:var(--surface); color:var(--text); }
750
+ .matrix-controls summary { cursor:pointer; color:var(--primary); font-size:.88rem; }
751
+ details.matrix-controls { margin-bottom:8px; }
752
+ code { font-family:'SF Mono',Menlo,monospace; font-size:.82em; background:var(--surface2);
753
+ padding:1px 4px; border-radius:4px; }
754
+ a { color:var(--primary); word-break:break-word; }
755
+ button:focus-visible, a:focus-visible, input:focus-visible, select:focus-visible, summary:focus-visible {
756
+ outline:3px solid color-mix(in srgb, var(--primary) 45%, transparent); outline-offset:3px;
757
+ }
758
+ .generated-theme { font-size:.76rem; letter-spacing:.08em; text-transform:uppercase; color:var(--insufficient); margin-right:auto; }
759
+ .report-section { margin-bottom:clamp(28px,4vw,58px); }
760
+ .section-narrative { width:100%; max-width:820px; margin-left:auto; margin-right:auto; }
761
+ .section-data { width:100%; max-width:1180px; margin-left:auto; margin-right:auto; }
762
+ .section-decision { width:100%; max-width:1040px; margin-left:auto; margin-right:auto; }
763
+ .decision-hero { position:relative; overflow:hidden; padding:clamp(22px,4vw,42px); border:1px solid var(--border);
764
+ border-radius:calc(var(--radius) + 4px); background:var(--surface2); }
765
+ .hero-decision { display:flex; gap:12px 18px; flex-wrap:wrap; align-items:center; margin-bottom:18px; }
766
+ .eyebrow, .hero-insight>span, .action-node>span { display:block; font-size:.72rem; font-weight:700; letter-spacing:.08em;
767
+ text-transform:uppercase; color:var(--insufficient); }
768
+ .hero-rationale { max-width:860px; font-family:var(--font-head); font-size:clamp(1.05rem,2vw,1.35rem); line-height:1.5; margin:0 0 28px; }
769
+ .hero-insights { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
770
+ .hero-insight { min-height:112px; padding:16px 18px; border-top:2px solid var(--border); background:var(--surface); }
771
+ .hero-insight.support { border-top-color:var(--support); } .hero-insight.uncertain { border-top-color:var(--uncertain); }
772
+ .hero-insight.risk { border-top-color:var(--contradict); } .hero-insight.next { border-top-color:var(--primary); }
773
+ .hero-insight p { margin:7px 0 0; font-size:.94rem; }
774
+ .hero-provenance { margin:18px 0 0; color:var(--insufficient); font-size:.82rem; }
775
+ .visual-heading { max-width:760px; margin-bottom:18px; } .visual-heading h3 { font-size:1.15rem; margin-bottom:6px; }
776
+ .visual-heading p { color:var(--insufficient); margin:0; }
777
+ .outcome-separation { margin:10px 0 24px; }
778
+ .outcome-groups { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(220px,100%),1fr)); gap:14px; }
779
+ .outcome-group { padding:16px; border:1px solid var(--border); border-radius:var(--radius-sm); background:var(--surface2); }
780
+ .outcome-group h3 { margin:0 0 10px; } .outcome-group ul { list-style:none; margin:0; padding:0; }
781
+ .outcome-group li { display:flex; flex-direction:column; gap:7px; padding:9px 0; border-top:1px solid var(--border); }
782
+ .outcome-group li:first-child { border-top:0; } .outcome-states { display:flex; gap:6px; flex-wrap:wrap; }
783
+ .visual-surface { margin:22px 0; padding:16px; border:1px solid var(--border); background:var(--surface2); border-radius:var(--radius); }
784
+ .matrix-controls { margin:0 0 12px; } .matrix-tools { align-items:center; }
785
+ .matrix-tools input { min-width:min(360px,100%); flex:1; }
786
+ .evidence-matrix th:nth-child(1) { width:72px; } .evidence-matrix th:nth-child(3) { width:110px; }
787
+ .evidence-matrix th:nth-child(4) { width:130px; } .evidence-matrix th:nth-child(6) { width:92px; }
788
+ .claim-cell { min-width:320px; max-width:520px; } .claim-cell>p { margin:0 0 6px; }
789
+ .matrix-row-detail { font-size:.78rem; color:var(--insufficient); } .matrix-row-detail summary { color:var(--primary); cursor:pointer; }
790
+ .matrix-row-detail p { margin:4px 0; }
791
+ .quality-cell { display:flex; align-items:center; gap:8px; min-width:90px; }
792
+ .quality-meter { display:block; width:64px; height:5px; border-radius:99px; background:var(--border); overflow:hidden; }
793
+ .quality-meter i { display:block; height:100%; background:var(--primary); border-radius:inherit; }
794
+ .evidence-tribunal { margin-top:8px; } .tribunal-summary { margin:0 0 18px; }
795
+ .tribunal-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
796
+ .tribunal-card { padding:16px 18px; border:1px solid var(--border); border-radius:var(--radius-sm); background:var(--surface2); }
797
+ .tribunal-card header { display:flex; gap:9px; align-items:center; } .tribunal-card header>span { font-weight:800; }
798
+ .tribunal-card.supported { border-top:3px solid var(--support); } .tribunal-card.uncertain { border-top:3px solid var(--uncertain); }
799
+ .tribunal-card.contradicted { border-top:3px solid var(--contradict); } .tribunal-card.missing { border-top:3px solid var(--insufficient); }
800
+ .tribunal-card ul { margin:10px 0 0; padding-left:18px; } .tribunal-card li { margin:7px 0; }
801
+ .supporting-visual { margin-top:16px; } .supporting-visual summary { cursor:pointer; color:var(--primary); }
802
+ .trace-chain { display:grid; gap:14px; } .trace-chain-card { padding:16px 18px; border:1px solid var(--border); border-radius:var(--radius-sm); background:var(--surface2); }
803
+ .trace-claim-node p { margin:5px 0 0; } .trace-arrow { color:var(--insufficient); text-align:center; }
804
+ .trace-evidence-list { display:grid; gap:7px; } .trace-evidence-node { display:flex; flex-wrap:wrap; gap:7px 10px; align-items:center; padding:8px 10px; background:var(--surface); border-radius:var(--radius-sm); }
805
+ .evidence-to-action { display:flex; gap:10px; align-items:stretch; overflow-x:auto; padding:6px 0 20px; margin-bottom:22px; }
806
+ .action-node { flex:1 0 165px; padding:14px 15px; border:1px solid var(--border); border-radius:var(--radius-sm); background:var(--surface2); }
807
+ .action-node p { margin:7px 0 0; font-size:.84rem; } .flow-arrow { align-self:center; color:var(--insufficient); }
808
+ .relation-note { display:block; margin-top:5px; font-size:.68rem; color:var(--insufficient); line-height:1.35; }
809
+ .semantic-note, .chart-interpretation { margin:9px 0 0; color:var(--insufficient); font-size:.82rem; }
810
+ .detail-expander { margin-top:7px; } .detail-expander>summary { cursor:pointer; color:var(--primary); font-size:.78rem; }
811
+ .detail-body { margin-top:8px; padding:10px 12px; border-left:2px solid var(--border); background:var(--surface2); }
812
+ .detail-body p { margin:0; white-space:normal; }
813
+ .evidence-detail-grid, .source-detail-grid { margin:10px 0 0; display:grid; grid-template-columns:minmax(120px,170px) 1fr; gap:0; }
814
+ .evidence-detail-row, .source-detail-row { display:contents; }
815
+ .evidence-detail-grid dt, .evidence-detail-grid dd, .source-detail-grid dt, .source-detail-grid dd { margin:0; padding:7px 8px; border-top:1px solid var(--border); }
816
+ .evidence-detail-grid dt, .source-detail-grid dt { color:var(--insufficient); font-size:.75rem; }
817
+ .evidence-detail-grid dd, .source-detail-grid dd { font-size:.8rem; overflow-wrap:anywhere; }
818
+ .tribunal-count { margin-left:auto; min-width:24px; height:24px; display:inline-grid; place-items:center; border-radius:999px; background:var(--surface); color:var(--insufficient); font-size:.72rem; }
819
+ .tribunal-evidence-refs { display:flex; gap:5px; flex-wrap:wrap; margin-top:5px; }
820
+ .tribunal-more>summary { margin-top:10px; cursor:pointer; color:var(--primary); font-size:.8rem; }
821
+ .method-review-group { margin:0 0 26px; }
822
+ .method-review-title { display:flex; align-items:flex-start; justify-content:space-between; gap:14px; margin-bottom:12px; }
823
+ .method-review-title h3 { margin:0; }
824
+ .method-audit-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(210px,1fr)); gap:10px; }
825
+ .method-audit-item { border:1px solid var(--border); border-radius:var(--radius-sm); background:var(--surface2); padding:12px; }
826
+ .method-audit-head { display:flex; align-items:flex-start; justify-content:space-between; gap:10px; }
827
+ .method-audit-item p { margin:7px 0 0; font-size:.82rem; } .method-status { font-size:.7rem; color:var(--insufficient); white-space:nowrap; }
828
+ .method-guard-wrap { margin-top:12px; padding:12px 14px; border-left:3px solid var(--primary); background:var(--surface2); }
829
+ .scope-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
830
+ .scope-card, .retrieval-grid>article, .retrieval-coverage, .boundary-block, .visual-suppressed { border:1px solid var(--border); border-radius:var(--radius-sm); background:var(--surface2); padding:15px 16px; }
831
+ .scope-card h3, .retrieval-grid h3, .retrieval-coverage h3, .boundary-block h3 { margin:0 0 8px; }
832
+ .retrieval-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; margin-bottom:12px; }
833
+ .retrieval-coverage code { margin-right:5px; }
834
+
835
+ /* Two-layer report shell: the content contract is shared by all five themes. */
836
+ .report-brand-row { display:flex; align-items:center; gap:10px; margin-bottom:10px; }
837
+ .report-brand { font-weight:750; letter-spacing:.02em; }
838
+ .generated-theme-chip { font-size:.7rem; color:var(--insufficient); border:1px solid var(--border); border-radius:999px; padding:2px 8px; }
839
+ .data-origin-chip { font-size:.7rem; border:1px solid var(--border); border-radius:999px; padding:2px 8px; color:var(--insufficient); margin-left:8px; overflow-wrap:anywhere; }
840
+ .data-origin-chip[data-origin="synthetic"], .data-origin-chip[data-origin="hybrid"] { border-color:#b45309; color:#92400e; background:rgba(217,119,6,.10); font-weight:600; }
841
+ .report-view-switcher { display:flex; gap:8px; margin-top:18px; }
842
+ .report-view-btn { border:1px solid var(--border); background:var(--surface); color:var(--text); border-radius:999px; padding:7px 14px; cursor:pointer; font-size:.82rem; }
843
+ .report-view-btn.active { background:var(--primary); border-color:var(--primary); color:#fff; }
844
+ .report-page[hidden] { display:none !important; }
845
+ .brief-block { width:100%; max-width:1040px; margin:0 auto clamp(42px,6vw,76px); }
846
+ .brief-block-header { max-width:760px; margin-bottom:22px; }
847
+ .brief-block-header h2 { margin:0 0 7px; font-family:var(--font-head); font-size:1.45rem; }
848
+ .brief-block-header p { margin:0; color:var(--insufficient); }
849
+ .brief-source-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
850
+ .brief-source { border:1px solid var(--border); border-radius:var(--radius-sm); background:var(--surface2); padding:14px 15px; }
851
+ .brief-source h3 { margin:7px 0 4px; font-size:.9rem; } .brief-source p, .brief-source-more { color:var(--insufficient); font-size:.78rem; }
852
+ .full-report-intro { width:100%; max-width:900px; margin:0 auto 30px; }
853
+ .full-report-intro h2 { font-family:var(--font-head); margin:0 0 7px; font-size:1.8rem; }
854
+ .full-report-intro p { margin:0; color:var(--insufficient); }
855
+ .full-report-layout { position:relative; display:grid; width:100%; grid-template-columns:minmax(180px,240px) minmax(0,1fr); gap:clamp(24px,3vw,42px); align-items:start; }
856
+ /* 桌面双栏:内容列收口残余的行内可滚动溢出(clip 不产生滚动条也不破坏 sticky)。 */
857
+ @media (min-width:981px) { .full-report-content { overflow-x:clip; } }
858
+ .full-report-toc { position:sticky; top:18px; max-height:calc(100vh - 36px); overflow:auto; border-right:1px solid var(--border); padding-right:18px; }
859
+ .toc-head { display:flex; align-items:center; justify-content:space-between; gap:8px; margin-bottom:12px; }
860
+ .toc-head strong { font-size:.78rem; text-transform:uppercase; letter-spacing:.08em; color:var(--insufficient); }
861
+ .toc-collapse { border:0; background:transparent; color:var(--primary); cursor:pointer; font-size:.72rem; padding:2px; }
862
+ .full-report-toc nav { display:grid; gap:4px; }
863
+ .full-report-toc a { display:block; color:var(--insufficient); text-decoration:none; padding:7px 8px; border-left:2px solid transparent; font-size:.8rem; line-height:1.4; }
864
+ .full-report-toc a.active { color:var(--text); border-left-color:var(--primary); background:var(--surface2); }
865
+ :root .full-report-layout.toc-collapsed { grid-template-columns:minmax(0,1fr); gap:0; }
866
+ .full-report-layout.toc-collapsed .full-report-toc nav, .full-report-layout.toc-collapsed .toc-head strong { display:none; }
867
+ .full-report-layout.toc-collapsed .full-report-toc { position:absolute; left:0; top:0; width:0; max-height:none; padding:0; border:0; overflow:visible; z-index:6; }
868
+ .full-report-layout.toc-collapsed .toc-head { margin:0; }
869
+ .full-report-layout.toc-collapsed .toc-collapse { position:sticky; top:18px; writing-mode:horizontal-tb; white-space:nowrap; border:1px solid var(--border); border-radius:999px; padding:7px 10px; background:var(--surface); box-shadow:var(--shadow); transform:translateX(-6px); }
870
+ .full-report-content { width:100%; min-width:0; max-width:960px; }
871
+ .full-report-layout.toc-collapsed .full-report-content { max-width:none; }
872
+ .full-chapter { scroll-margin-top:24px; padding:0 0 54px; margin:0 0 54px; border-bottom:1px solid var(--border); }
873
+ .full-chapter:last-child { border-bottom:0; }
874
+ .full-chapter-header { max-width:760px; margin-bottom:24px; }
875
+ .full-chapter-header h2 { margin:0 0 8px; font-family:var(--font-head); font-size:1.55rem; line-height:1.25; }
876
+ .full-chapter-lead { margin:0; color:var(--insufficient); }
877
+ .full-chapter-body>*+* { margin-top:20px; }
878
+ .report-footer { margin-top:64px; padding-top:18px; border-top:1px solid var(--border); color:var(--insufficient); font-size:.76rem; }
879
+
880
+ /* Lieflat gallery cards — AI-composed, data-driven charts.
881
+ Card four-piece set: conclusion title (700) + subtitle (legend, `·`
882
+ separated) + themed inline SVG + uppercase source line; caption optional.
883
+ Themes tune surface/radius/typography; identity lives in themes/*.css. */
884
+ .lieflat-gallery-container { display:flex; flex-direction:column; gap:22px; margin:6px 0 0; }
885
+ .lieflat-card { margin:0; padding:22px 24px 18px; border:1px solid var(--border);
886
+ border-radius:calc(var(--radius) + 6px); background:var(--surface);
887
+ box-shadow:var(--shadow); }
888
+ .lieflat-title { margin:0 0 8px; font-family:var(--font-head); font-size:1.12rem;
889
+ font-weight:700; line-height:1.35; }
890
+ .lieflat-sub { margin:0 0 14px; color:var(--insufficient); font-size:.85rem; line-height:1.55; }
891
+ .lieflat-figure svg { display:block; width:100%; height:auto; border:1px solid var(--border);
892
+ border-radius:var(--radius-sm); background:var(--surface2); }
893
+ .lieflat-caption { margin:10px 0 0; font-size:.8rem; color:var(--insufficient); line-height:1.5; }
894
+ .lieflat-src { margin:10px 0 0; font-size:.68rem; font-weight:600; letter-spacing:.08em;
895
+ text-transform:uppercase; color:var(--insufficient); }
896
+ .lieflat-suppressed { margin:0; padding:12px 16px; border:1px dashed var(--border);
897
+ border-radius:var(--radius-sm); background:var(--surface2);
898
+ font-size:.82rem; color:var(--insufficient); }
899
+ .lieflat-suppressed ul { margin:8px 0 0; padding-left:18px; }
900
+ .lieflat-suppressed li { margin:3px 0; }
901
+
902
+ @media print { body { background:#fff; } .controls, .report-view-switcher, .full-report-toc { display:none !important; }
903
+ .report-shell { max-width:none !important; padding:0 !important; }
904
+ .report-page-brief { display:none !important; } .report-page-full { display:block !important; }
905
+ .full-report-layout { display:block !important; } .full-report-content { max-width:none !important; }
906
+ .full-chapter { break-before:auto; break-inside:auto; }
907
+ .report-section { box-shadow:none !important; border:none !important; break-inside:avoid-page; }
908
+ .report-section svg { border:none; } .table-wrap { overflow:visible; }
909
+ .lieflat-card { box-shadow:none !important; break-inside:avoid; }
910
+ .lieflat-figure svg { border:none; }
911
+ details>summary { display:none !important; } details>*:not(summary) { display:block !important; }
912
+ .decision-hero, .tribunal-card, .trace-chain-card, .action-node, .method-audit-item { box-shadow:none !important; background:#fff !important; }
913
+ a { color:#000; text-decoration:underline; } }
914
+ @media (max-width:980px) {
915
+ /* 网格 item 收缩安全:阻止子内容 min-content 把 1fr 轨道撑破(移动端/平板横向裁切)。 */
916
+ .full-report-layout { grid-template-columns:minmax(0,1fr); gap:18px; }
917
+ .brief-block-body > *, .outcome-separation, .visual-surface,
918
+ .tribunal-grid > *, .hero-insights > *, .brief-source-grid > * { min-width:0; }
919
+ /* 章节直接子元素(table-wrap / evidence-to-action 等)默认 min-width:auto,
920
+ 会把来源表等宽内容的 min-content 一路传给 shell —— 显式放开收缩。
921
+ 注意用 .table-wrap .data-table 同强度选择器,否则压不过基座 nowrap。 */
922
+ .full-chapter-body > *, .table-wrap, .evidence-to-action { min-width:0; max-width:100%; }
923
+ .table-wrap .data-table th { white-space:normal; }
924
+ .table-wrap .data-table th, .table-wrap .data-table td { overflow-wrap:anywhere; word-break:break-word; }
925
+ /* 窄屏放弃 nowrap+省略号:让主单元格换行,否则行 min-content 撑破表格容器。 */
926
+ .table-wrap .data-table td.cell-main { white-space:normal; max-width:none; }
927
+ /* 定义网格/范围卡片里的 snake_case 枚举值(如 frame.json 的
928
+ first_programming_course_no_prior_text_based_programming)是不可断行长
929
+ token,必须允许任意断行,否则 min-content 直接撑破窄屏。 */
930
+ .scope-card, .scope-text, .scope-grid dt, .scope-grid dd,
931
+ .evidence-detail-grid dd, .source-detail-grid dd,
932
+ .retrieval-grid article, .retrieval-grid li { min-width:0;
933
+ overflow-wrap:anywhere; }
934
+ .full-report-toc { position:relative; top:auto; max-height:none; border:1px solid var(--border); border-radius:var(--radius-sm); padding:12px; }
935
+ .full-report-toc nav { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); }
936
+ :root .full-report-layout.toc-collapsed { grid-template-columns:1fr; }
937
+ .full-report-layout.toc-collapsed .full-report-toc { position:relative; width:100%; padding:10px 12px; border:1px solid var(--border); }
938
+ .full-report-layout.toc-collapsed .toc-collapse { position:static; transform:none; padding:4px 8px; box-shadow:none; }
939
+ .full-report-layout.toc-collapsed .full-report-toc nav { display:none; }
940
+ }
941
+ @media (max-width:720px) {
942
+ .controls { width:calc(100% - 24px); margin-bottom:10px; padding-left:8px; padding-right:8px; }
943
+ .report-shell { width:100%; padding:12px 14px 56px; }
944
+ .report-header { width:100%; }
945
+ .report-header h1 { font-size:1.3rem; overflow-wrap:anywhere; }
946
+ .report-header .meta, .brief-source h3, .claim-cell, .detail-body, .source-detail-grid dd { overflow-wrap:anywhere; word-break:break-word; }
947
+ .data-table { font-size:.78rem; }
948
+ .hero-insights, .tribunal-grid, .scope-grid, .retrieval-grid, .brief-source-grid, .method-audit-grid { grid-template-columns:1fr; }
949
+ /* 网格收缩安全:1fr 轨道 min 改 0、auto-fit 轨道 min 随容器收缩(min(180px,100%)),
950
+ 阻断固定 px 最小值 -> min-content 爆炸 -> 移动端横向溢出 的链条。 */
951
+ .full-report-content, .full-chapter, .full-chapter-body, .brief-block-body,
952
+ .outcome-separation, .visual-surface, .report-page-full, .report-page-brief { min-width:0; }
953
+ .outcome-groups { grid-template-columns:repeat(auto-fit,minmax(min(180px,100%),1fr)); }
954
+ .report-view-switcher { width:100%; }
955
+ .report-view-btn { flex:1; min-height:42px; }
956
+ .lang-btn, .toc-collapse { min-height:40px; }
957
+ .lang-btn { min-width:46px; }
958
+ .detail-expander>summary, .matrix-controls summary, .supporting-visual summary, .tribunal-more>summary { padding:7px 0; min-height:38px; display:flex; align-items:center; }
959
+ .full-report-toc nav { grid-template-columns:1fr; }
960
+ .full-chapter { width:100%; margin-bottom:38px; padding-bottom:38px; }
961
+ .full-chapter-header, .brief-block-header, .visual-heading { max-width:100%; }
962
+ .evidence-detail-grid, .source-detail-grid { grid-template-columns:1fr; }
963
+ .evidence-detail-grid dt, .evidence-detail-grid dd,
964
+ .source-detail-grid dt, .source-detail-grid dd { min-width:0; overflow-wrap:anywhere; }
965
+ .evidence-detail-grid dt, .source-detail-grid dt { padding-bottom:2px; }
966
+ .evidence-detail-grid dd, .source-detail-grid dd { padding-top:2px; }
967
+ .decision-hero { padding:20px 16px; }
968
+ .section-data, .section-decision, .section-narrative { width:100%; max-width:100%; }
969
+ .visual-surface, .outcome-separation, .trace-chain { max-width:100%; }
970
+ .chart-mount { height:clamp(240px,62vw,320px); }
971
+ .evidence-to-action { flex-direction:column; overflow:visible; }
972
+ .flow-arrow { transform:rotate(90deg); }
973
+ .matrix-wrap { width:100%; border:0; overflow:visible; }
974
+ .evidence-matrix thead { display:none; }
975
+ .evidence-matrix, .evidence-matrix tbody, .evidence-matrix tr, .evidence-matrix td { display:block; width:100%; }
976
+ .evidence-matrix tr { border:1px solid var(--border); border-radius:var(--radius-sm); margin-bottom:12px; padding:10px; background:var(--surface); }
977
+ .evidence-matrix td { border:0; padding:5px 0; }
978
+ .claim-cell { min-width:0; max-width:none; }
979
+ }
980
+
981
+ /* EduEvidence Motion Template
982
+ Motion explains hierarchy only. It never changes evidence meaning or numeric state. */
983
+
984
+ .motion-ready [data-animate] {
985
+ opacity:0;
986
+ transform:translateY(10px);
987
+ transition:opacity .52s cubic-bezier(.22,.61,.36,1),
988
+ transform .52s cubic-bezier(.22,.61,.36,1);
989
+ transition-delay:var(--motion-delay,0ms);
990
+ }
991
+ .motion-ready [data-animate].is-visible { opacity:1; transform:none; }
992
+
993
+ .motion-ready .quality-meter i,
994
+ .motion-ready .balance-track i {
995
+ transform:scaleX(0);
996
+ transform-origin:left center;
997
+ transition:transform .72s cubic-bezier(.22,.61,.36,1) var(--motion-delay,0ms);
998
+ }
999
+ .motion-ready .quality-meter.is-visible i,
1000
+ .motion-ready .balance-track.is-visible i { transform:scaleX(1); }
1001
+
1002
+ .motion-ready .flow-arrow {
1003
+ opacity:.18;
1004
+ transform:translateX(-4px);
1005
+ transition:opacity .36s ease, transform .36s ease;
1006
+ transition-delay:var(--motion-delay,0ms);
1007
+ }
1008
+ .motion-ready .flow-arrow.is-visible { opacity:1; transform:none; }
1009
+
1010
+ .motion-ready .detail-expander[open] .detail-body {
1011
+ animation:eduevidenceDetailReveal .24s cubic-bezier(.22,.61,.36,1) both;
1012
+ }
1013
+ @keyframes eduevidenceDetailReveal {
1014
+ from { opacity:0; transform:translateY(-4px); }
1015
+ to { opacity:1; transform:none; }
1016
+ }
1017
+
1018
+ .motion-ready .report-page:not([hidden]) {
1019
+ animation:eduevidencePageReveal .24s cubic-bezier(.22,.61,.36,1) both;
1020
+ }
1021
+ @keyframes eduevidencePageReveal {
1022
+ from { opacity:0; transform:translateY(4px); }
1023
+ to { opacity:1; transform:none; }
1024
+ }
1025
+
1026
+ .motion-ready .full-report-toc a {
1027
+ transition:color .18s ease, background-color .18s ease,
1028
+ border-color .18s ease, box-shadow .18s ease;
1029
+ }
1030
+
1031
+ /* ────────────────────────────────────────────────────────────────────────
1032
+ data-lieflat gallery reveal — aligned with the Lieflat mono-tokens spec:
1033
+ lf-pop scale 0→1, cubic-bezier(.2,.7,.3,1.3), 500ms (quarticOut family)
1034
+ lf-fade 900ms ease
1035
+ lf-draw dasharray 1, 1s cubic-bezier(.4,0,.2,1)
1036
+ --motion-delay inline variable carries the per-element stagger
1037
+ (dot matrices 8–15ms, bars 80–130ms — set by the renderer).
1038
+ Gated by .js-lf (added by motion.js only when JS runs and motion is not
1039
+ reduced): without JS everything stays visible — static-first, never broken.
1040
+ .is-live on the [data-lieflat] card starts the one-shot reveal; removing
1041
+ and re-adding it replays (click-to-replay, timers cleared by motion.js).
1042
+ ──────────────────────────────────────────────────────────────────────── */
1043
+ .js-lf [data-lieflat] .lf-pop,
1044
+ .js-lf [data-lieflat] .lf-fade,
1045
+ .js-lf [data-lieflat] .lf-draw { opacity:0; }
1046
+ .js-lf [data-lieflat] .lf-draw { stroke-dasharray:1; stroke-dashoffset:1; }
1047
+
1048
+ .js-lf [data-lieflat].is-live .lf-pop {
1049
+ opacity:1;
1050
+ transform-box:fill-box;
1051
+ transform-origin:center;
1052
+ animation:eduevidenceLfPop .5s cubic-bezier(.2,.7,.3,1.3) both;
1053
+ animation-delay:var(--motion-delay,0ms);
1054
+ }
1055
+ .js-lf [data-lieflat].is-live .lf-fade {
1056
+ opacity:1;
1057
+ animation:eduevidenceLfFade .9s ease both;
1058
+ animation-delay:var(--motion-delay,0ms);
1059
+ }
1060
+ .js-lf [data-lieflat].is-live .lf-draw {
1061
+ animation:eduevidenceLfDraw 1s cubic-bezier(.4,0,.2,1) both;
1062
+ animation-delay:var(--motion-delay,0ms);
1063
+ }
1064
+ @keyframes eduevidenceLfPop {
1065
+ from { transform:scale(0); opacity:0; }
1066
+ to { transform:none; opacity:1; }
1067
+ }
1068
+ @keyframes eduevidenceLfFade {
1069
+ from { opacity:0; }
1070
+ to { opacity:1; }
1071
+ }
1072
+ @keyframes eduevidenceLfDraw {
1073
+ to { stroke-dashoffset:0; }
1074
+ }
1075
+
1076
+ .js-lf [data-lieflat] { cursor:pointer; }
1077
+
1078
+ @media (hover:hover) {
1079
+ .motion-ready .tribunal-card:hover,
1080
+ .motion-ready .trace-chain-card:hover,
1081
+ .motion-ready .outcome-group:hover,
1082
+ .motion-ready .action-node:hover,
1083
+ .motion-ready .method-audit-item:hover {
1084
+ transform:translateY(-2px);
1085
+ }
1086
+ .motion-ready .evidence-matrix tbody tr:hover .dir {
1087
+ transform:translateY(-1px);
1088
+ filter:saturate(1.08);
1089
+ }
1090
+ }
1091
+
1092
+ @media (prefers-reduced-motion:reduce) {
1093
+ .motion-ready [data-animate],
1094
+ .motion-ready .quality-meter i,
1095
+ .motion-ready .balance-track i,
1096
+ .motion-ready .flow-arrow,
1097
+ .motion-ready .dir,
1098
+ .motion-ready .detail-body,
1099
+ .motion-ready .report-page,
1100
+ .motion-ready .full-report-toc a {
1101
+ opacity:1 !important;
1102
+ transform:none !important;
1103
+ transition:none !important;
1104
+ animation:none !important;
1105
+ }
1106
+ .js-lf [data-lieflat] .lf-pop,
1107
+ .js-lf [data-lieflat] .lf-fade {
1108
+ opacity:1 !important;
1109
+ transform:none !important;
1110
+ animation:none !important;
1111
+ }
1112
+ .js-lf [data-lieflat] .lf-draw {
1113
+ opacity:1 !important;
1114
+ animation:none !important;
1115
+ stroke-dasharray:none !important;
1116
+ stroke-dashoffset:0 !important;
1117
+ }
1118
+ html { scroll-behavior:auto; }
1119
+ }
1120
+
1121
+ @media print {
1122
+ [data-animate], .quality-meter i, .balance-track i, .flow-arrow {
1123
+ opacity:1 !important;
1124
+ transform:none !important;
1125
+ transition:none !important;
1126
+ animation:none !important;
1127
+ }
1128
+ [data-lieflat] .lf-pop,
1129
+ [data-lieflat] .lf-fade,
1130
+ [data-lieflat] .lf-draw {
1131
+ opacity:1 !important;
1132
+ transform:none !important;
1133
+ animation:none !important;
1134
+ stroke-dasharray:none !important;
1135
+ stroke-dashoffset:0 !important;
1136
+ }
1137
+ }
1138
+
1139
+ /* Reading system: shared semantics; the five original theme identities remain. */
1140
+ :root {
1141
+ --reader-line: color-mix(in srgb, var(--text) 14%, transparent);
1142
+ --reader-muted: color-mix(in srgb, var(--text) 74%, var(--bg));
1143
+ }
1144
+ html {
1145
+ scroll-padding-top: 100px;
1146
+ }
1147
+ html,
1148
+ body {
1149
+ overflow-x: clip;
1150
+ }
1151
+ button,
1152
+ a,
1153
+ input,
1154
+ select,
1155
+ summary {
1156
+ -webkit-tap-highlight-color: transparent;
1157
+ }
1158
+ button:focus-visible,
1159
+ a:focus-visible,
1160
+ summary:focus-visible,
1161
+ input:focus-visible,
1162
+ select:focus-visible,
1163
+ [tabindex]:focus-visible {
1164
+ outline: 2px solid var(--primary);
1165
+ outline-offset: 4px;
1166
+ }
1167
+ .reader-progress {
1168
+ position: fixed;
1169
+ top: 0;
1170
+ left: 0;
1171
+ right: 0;
1172
+ height: 3px;
1173
+ z-index: 80;
1174
+ pointer-events: none;
1175
+ }
1176
+ .reader-progress > span {
1177
+ display: block;
1178
+ width: 100%;
1179
+ height: 100%;
1180
+ background: var(--primary);
1181
+ transform: scaleX(0);
1182
+ transform-origin: left;
1183
+ }
1184
+ :root[data-theme] .controls.reader-toolbar {
1185
+ position: sticky;
1186
+ top: 0;
1187
+ z-index: 60;
1188
+ display: flex;
1189
+ justify-content: space-between;
1190
+ gap: 16px;
1191
+ align-items: center;
1192
+ width: 100%;
1193
+ max-width: none;
1194
+ min-height: 70px;
1195
+ margin: 0;
1196
+ padding: 12px clamp(18px, 4vw, 60px);
1197
+ border: 0;
1198
+ border-bottom: 1px solid var(--reader-line);
1199
+ border-radius: 0;
1200
+ background: var(--bg);
1201
+ box-shadow: none;
1202
+ backdrop-filter: none;
1203
+ }
1204
+ .reader-home {
1205
+ display: flex;
1206
+ align-items: center;
1207
+ gap: 14px;
1208
+ color: var(--text);
1209
+ text-decoration: none;
1210
+ font-family: var(--font-head);
1211
+ font-size: 17px;
1212
+ font-weight: 600;
1213
+ }
1214
+ .reader-home .generated-theme {
1215
+ font: 10px var(--font-ui);
1216
+ letter-spacing: 0.03em;
1217
+ font-weight: 400;
1218
+ color: var(--reader-muted);
1219
+ padding-left: 14px;
1220
+ border-left: 1px solid var(--reader-line);
1221
+ }
1222
+ .reader-tools,
1223
+ .reader-view-controls {
1224
+ display: flex;
1225
+ align-items: center;
1226
+ gap: 8px;
1227
+ }
1228
+ .reader-tools .lang-switcher {
1229
+ gap: 4px;
1230
+ }
1231
+ .reader-tools .lang-switcher > span {
1232
+ display: none;
1233
+ }
1234
+ .reader-print {
1235
+ font: 12px var(--font-ui);
1236
+ padding: 7px 10px;
1237
+ background: transparent;
1238
+ color: var(--text);
1239
+ border: 1px solid var(--reader-line);
1240
+ border-radius: var(--radius-sm);
1241
+ cursor: pointer;
1242
+ }
1243
+ .reader-view-controls {
1244
+ padding: 3px;
1245
+ background: var(--surface2);
1246
+ border: 1px solid var(--reader-line);
1247
+ border-radius: var(--radius-sm);
1248
+ }
1249
+ :root[data-theme] .reader-view-controls .report-view-btn {
1250
+ margin: 0;
1251
+ border: 0;
1252
+ border-radius: calc(var(--radius-sm) / 2);
1253
+ background: transparent;
1254
+ color: var(--reader-muted);
1255
+ padding: 7px 14px;
1256
+ font: 12px var(--font-ui);
1257
+ min-height: 32px;
1258
+ cursor: pointer;
1259
+ }
1260
+ :root[data-theme] .reader-view-controls .report-view-btn.active {
1261
+ background: var(--surface);
1262
+ color: var(--text);
1263
+ box-shadow: 0 1px 3px #0000000a;
1264
+ }
1265
+ :root[data-theme] .report-shell {
1266
+ padding-top: 52px;
1267
+ padding-bottom: 80px;
1268
+ }
1269
+ :root[data-theme] .report-header {
1270
+ width: 100%;
1271
+ max-width: 100%;
1272
+ margin: 0 auto 36px;
1273
+ border-bottom: 1px solid var(--reader-line);
1274
+ padding: 0 0 30px;
1275
+ background: transparent;
1276
+ box-shadow: none;
1277
+ border-top: 0;
1278
+ border-left: 0;
1279
+ border-right: 0;
1280
+ border-radius: 0;
1281
+ }
1282
+ :root[data-theme] .report-header h1 {
1283
+ font-size: clamp(1.65rem, 2.7vw, 2.55rem);
1284
+ line-height: 1.43;
1285
+ letter-spacing: -0.02em;
1286
+ max-width: 1020px;
1287
+ text-wrap: pretty;
1288
+ margin: 18px 0;
1289
+ font-weight: 500;
1290
+ }
1291
+ :root[data-theme] .report-brand-row {
1292
+ gap: 12px;
1293
+ }
1294
+ .report-brand {
1295
+ font-size: 11px;
1296
+ letter-spacing: 0.12em;
1297
+ }
1298
+ :root[data-theme] .generated-theme-chip {
1299
+ display: none;
1300
+ }
1301
+ :root[data-theme] .data-origin-chip {
1302
+ font-size: 10px;
1303
+ font-family: var(--font-ui);
1304
+ font-weight: 400;
1305
+ background: var(--surface2);
1306
+ border: 1px solid var(--reader-line);
1307
+ color: var(--reader-muted);
1308
+ border-radius: var(--radius-sm);
1309
+ }
1310
+ :root[data-theme] .report-header .meta {
1311
+ font: 12px/1.9 var(--font-ui);
1312
+ color: var(--reader-muted);
1313
+ margin: 0;
1314
+ }
1315
+ :root[data-theme] .report-header .report-view-switcher {
1316
+ display: none;
1317
+ }
1318
+ :root[data-theme] .report-page-brief {
1319
+ display: grid;
1320
+ grid-template-columns: 160px minmax(0, 1fr);
1321
+ gap: 40px;
1322
+ align-items: start;
1323
+ }
1324
+ :root[data-theme] .report-page[hidden] {
1325
+ display: none !important;
1326
+ }
1327
+ .brief-navigation {
1328
+ position: sticky;
1329
+ top: 102px;
1330
+ display: flex;
1331
+ flex-direction: column;
1332
+ gap: 6px;
1333
+ font: 12px/1.6 var(--font-ui);
1334
+ padding-top: 8px;
1335
+ }
1336
+ .brief-navigation a {
1337
+ display: flex;
1338
+ gap: 10px;
1339
+ color: var(--reader-muted);
1340
+ text-decoration: none;
1341
+ padding: 10px 8px;
1342
+ border-left: 2px solid transparent;
1343
+ }
1344
+ .brief-navigation a > span {
1345
+ flex: 0 0 auto;
1346
+ min-width: 18px;
1347
+ white-space: nowrap;
1348
+ font: 10px/1.9 var(--font-mono);
1349
+ opacity: 0.8;
1350
+ }
1351
+ .brief-navigation a:hover,
1352
+ .brief-navigation a.active {
1353
+ color: var(--primary);
1354
+ background: var(--surface2);
1355
+ border-left-color: var(--primary);
1356
+ }
1357
+ .brief-reading-content {
1358
+ min-width: 0;
1359
+ }
1360
+ :root[data-theme] .brief-block {
1361
+ max-width: none;
1362
+ width: 100%;
1363
+ margin: 0 0 60px;
1364
+ border: 0;
1365
+ padding: 0;
1366
+ box-shadow: none;
1367
+ background: transparent;
1368
+ grid-column: auto;
1369
+ }
1370
+ :root[data-theme] .brief-block-header {
1371
+ max-width: none;
1372
+ padding: 0 0 16px;
1373
+ margin: 0 0 22px;
1374
+ border-bottom: 1px solid var(--reader-line);
1375
+ }
1376
+ :root[data-theme] .brief-block-header h2 {
1377
+ font-family: var(--font-head);
1378
+ font-size: 1.35rem;
1379
+ font-weight: 500;
1380
+ margin: 0 0 7px;
1381
+ }
1382
+ :root[data-theme] .brief-block-header p {
1383
+ font-size: 13px;
1384
+ line-height: 1.85;
1385
+ max-width: 76ch;
1386
+ color: var(--reader-muted);
1387
+ }
1388
+ :root[data-theme] .brief-block .brief-block-body {
1389
+ width: 100%;
1390
+ margin: 0;
1391
+ transform: none;
1392
+ }
1393
+ :root[data-theme] .brief-decision .brief-block-header {
1394
+ display: none;
1395
+ }
1396
+ :root[data-theme] .decision-hero {
1397
+ padding: 26px;
1398
+ border: 1px solid var(--reader-line);
1399
+ border-radius: var(--radius);
1400
+ background: var(--surface);
1401
+ box-shadow: none;
1402
+ }
1403
+ :root[data-theme] .hero-decision {
1404
+ align-items: center;
1405
+ gap: 10px 16px;
1406
+ flex-wrap: wrap;
1407
+ }
1408
+ :root[data-theme] .hero-decision .eyebrow {
1409
+ font-size: 10px;
1410
+ letter-spacing: 0.1em;
1411
+ color: var(--reader-muted);
1412
+ }
1413
+ :root[data-theme] .decision-value {
1414
+ font-size: 1.65rem;
1415
+ line-height: 1.35;
1416
+ }
1417
+ :root[data-theme] .confidence-badge {
1418
+ font-size: 11px;
1419
+ color: var(--text);
1420
+ border: 1px solid var(--reader-line);
1421
+ background: var(--uncertain-soft, var(--surface2));
1422
+ padding: 4px 9px;
1423
+ }
1424
+ :root[data-theme] .hero-rationale {
1425
+ font-size: 14px;
1426
+ line-height: 1.9;
1427
+ margin: 20px 0;
1428
+ max-width: 78ch;
1429
+ }
1430
+ :root[data-theme] .hero-insights {
1431
+ display: grid;
1432
+ grid-template-columns: repeat(2, minmax(0, 1fr));
1433
+ gap: 0;
1434
+ border: 0;
1435
+ border-top: 1px solid var(--reader-line);
1436
+ }
1437
+ :root[data-theme] .hero-insight {
1438
+ border: 0;
1439
+ border-radius: 0;
1440
+ padding: 20px 0 12px;
1441
+ min-height: 0;
1442
+ background: transparent;
1443
+ box-shadow: none;
1444
+ }
1445
+ :root[data-theme] .hero-insight:nth-child(2n + 1) {
1446
+ padding-right: 22px;
1447
+ }
1448
+ :root[data-theme] .hero-insight:nth-child(2n) {
1449
+ padding-left: 22px;
1450
+ border-left: 1px solid var(--reader-line);
1451
+ }
1452
+ :root[data-theme] .hero-insight > span {
1453
+ font: 11px/1.6 var(--font-ui);
1454
+ letter-spacing: 0.03em;
1455
+ color: var(--reader-muted);
1456
+ margin-bottom: 9px;
1457
+ }
1458
+ :root[data-theme] .hero-insight-text {
1459
+ font-size: 13px;
1460
+ line-height: 1.85;
1461
+ }
1462
+ :root[data-theme] .hero-provenance {
1463
+ border-top: 1px solid var(--reader-line);
1464
+ padding-top: 16px;
1465
+ margin-bottom: 0;
1466
+ font-size: 11px;
1467
+ color: var(--reader-muted);
1468
+ }
1469
+ :root[data-theme] .tribunal-grid {
1470
+ display: grid;
1471
+ grid-template-columns: repeat(2, minmax(0, 1fr));
1472
+ gap: 14px;
1473
+ }
1474
+ :root[data-theme] .tribunal-card {
1475
+ border: 1px solid var(--reader-line);
1476
+ border-top: 2px solid var(--border);
1477
+ padding: 20px;
1478
+ border-radius: var(--radius-sm);
1479
+ box-shadow: none;
1480
+ }
1481
+ :root[data-theme] .tribunal-card.supported {
1482
+ border-top-color: var(--support);
1483
+ }
1484
+ :root[data-theme] .tribunal-card.uncertain,
1485
+ :root[data-theme] .tribunal-card.missing {
1486
+ border-top-color: var(--uncertain);
1487
+ }
1488
+ :root[data-theme] .tribunal-card.contradicted {
1489
+ border-top-color: var(--contradict);
1490
+ }
1491
+ :root[data-theme] .tribunal-card p {
1492
+ line-height: 1.9;
1493
+ }
1494
+ .tribunal-card li + li {
1495
+ margin-top: 12px;
1496
+ }
1497
+ :root[data-theme] .dir {
1498
+ border-radius: var(--radius-sm);
1499
+ font-size: 11px;
1500
+ border: 1px solid var(--reader-line);
1501
+ }
1502
+ :root[data-theme] .dir.pos {
1503
+ background: color-mix(in srgb, var(--support) 14%, var(--surface));
1504
+ color: var(--text);
1505
+ }
1506
+ :root[data-theme] .dir.neg {
1507
+ background: color-mix(in srgb, var(--contradict) 14%, var(--surface));
1508
+ color: var(--text);
1509
+ }
1510
+ :root[data-theme] .dir.neu {
1511
+ background: color-mix(in srgb, var(--uncertain) 14%, var(--surface));
1512
+ color: var(--text);
1513
+ }
1514
+ :root[data-theme] .full-report-layout {
1515
+ display: grid;
1516
+ grid-template-columns: 180px minmax(0, 1fr);
1517
+ gap: 36px;
1518
+ }
1519
+ :root[data-theme] .full-report-intro {
1520
+ margin: 0 0 30px 216px;
1521
+ max-width: none;
1522
+ }
1523
+ :root[data-theme] .full-report-toc {
1524
+ top: 102px;
1525
+ max-height: calc(100vh - 125px);
1526
+ overflow-y: auto;
1527
+ }
1528
+ :root[data-theme] .full-report-content {
1529
+ min-width: 0;
1530
+ width: 100%;
1531
+ max-width: none;
1532
+ overflow-wrap: anywhere;
1533
+ }
1534
+ :root[data-theme] .report-section {
1535
+ margin-bottom: 56px;
1536
+ }
1537
+ .report-section {
1538
+ scroll-margin-top: 100px;
1539
+ }
1540
+ :root[data-theme] .full-report-content .section-data > .table-wrap,
1541
+ :root[data-theme] .full-report-content .section-data > .matrix-controls,
1542
+ :root[data-theme] .full-report-content .section-data > .trace-chain,
1543
+ :root[data-theme] .full-report-content .section-data > .outcome-separation {
1544
+ width: 100%;
1545
+ margin-left: 0;
1546
+ transform: none;
1547
+ }
1548
+ :root[data-theme] .report-section p,
1549
+ :root[data-theme] .report-section li {
1550
+ line-height: 1.9;
1551
+ }
1552
+ :root[data-theme] .table-wrap {
1553
+ border: 1px solid var(--reader-line);
1554
+ border-radius: var(--radius-sm);
1555
+ overflow-x: auto;
1556
+ overscroll-behavior-inline: contain;
1557
+ }
1558
+ :root[data-theme] .data-table {
1559
+ font-size: 12px;
1560
+ line-height: 1.75;
1561
+ }
1562
+ :root[data-theme] .data-table th {
1563
+ font-size: 11px;
1564
+ font-weight: 600;
1565
+ color: var(--reader-muted);
1566
+ }
1567
+ :root[data-theme] .data-table td,
1568
+ :root[data-theme] .data-table th {
1569
+ border-color: var(--reader-line);
1570
+ padding: 12px;
1571
+ }
1572
+ :root[data-theme] .matrix-controls input,
1573
+ :root[data-theme] .matrix-controls select {
1574
+ background: var(--surface);
1575
+ color: var(--text);
1576
+ border: 1px solid var(--reader-line);
1577
+ border-radius: var(--radius-sm);
1578
+ padding: 10px 12px;
1579
+ font: 12px var(--font-ui);
1580
+ max-width: 100%;
1581
+ }
1582
+ .reader-filter-count {
1583
+ font: 11px var(--font-mono);
1584
+ padding: 8px 0;
1585
+ color: var(--reader-muted);
1586
+ }
1587
+ :root[data-theme] .detail-expander summary,
1588
+ :root[data-theme] .expandable-text summary {
1589
+ font-size: 12px;
1590
+ cursor: pointer;
1591
+ }
1592
+ :root[data-theme] .lieflat-suppressed {
1593
+ font-size: 11px;
1594
+ color: var(--reader-muted);
1595
+ padding: 14px;
1596
+ }
1597
+ :root[data-theme] .lieflat-suppressed ul {
1598
+ margin-bottom: 0;
1599
+ }
1600
+ :root[data-theme] .brief-source {
1601
+ padding: 18px;
1602
+ border: 1px solid var(--reader-line);
1603
+ border-radius: var(--radius-sm);
1604
+ }
1605
+ :root[data-theme] .brief-source h3 {
1606
+ font-size: 14px;
1607
+ line-height: 1.7;
1608
+ }
1609
+ :root[data-theme] .report-footer {
1610
+ margin-top: 44px;
1611
+ font-size: 11px;
1612
+ line-height: 1.8;
1613
+ color: var(--reader-muted);
1614
+ }
1615
+ :root[data-theme="datalab"] .report-page-brief,
1616
+ :root[data-theme="datalab-dark"] .report-page-brief {
1617
+ grid-template-columns: 190px minmax(0, 1fr);
1618
+ }
1619
+
1620
+ :root[data-theme="academic"] .controls.reader-toolbar {
1621
+ font-family: var(--font-ui);
1622
+ border-bottom: 1px solid #222;
1623
+ }
1624
+ :root[data-theme="academic"] .report-header {
1625
+ border-bottom: 2px solid #222;
1626
+ padding-bottom: 24px;
1627
+ }
1628
+ :root[data-theme="academic"] .report-header h1 {
1629
+ font-size: clamp(1.5rem, 2.5vw, 2.1rem);
1630
+ text-align: center;
1631
+ }
1632
+ :root[data-theme="academic"] .report-shell {
1633
+ max-width: 1200px;
1634
+ }
1635
+ :root[data-theme="academic"] .brief-block-header h2 {
1636
+ font-variant: small-caps;
1637
+ }
1638
+ :root[data-theme="academic"] .hero-insight,
1639
+ :root[data-theme="academic"] .tribunal-card {
1640
+ font-family: var(--font-ui);
1641
+ }
1642
+ :root[data-theme="academic"] .decision-hero {
1643
+ border-color: #444;
1644
+ }
1645
+ :root[data-theme="datalab"] .report-shell,
1646
+ :root[data-theme="datalab-dark"] .report-shell {
1647
+ max-width: 1440px;
1648
+ }
1649
+ :root[data-theme="datalab"] .brief-block,
1650
+ :root[data-theme="datalab-dark"] .brief-block {
1651
+ margin-bottom: 36px;
1652
+ }
1653
+ :root[data-theme="datalab"] .brief-block-header h2,
1654
+ :root[data-theme="datalab-dark"] .brief-block-header h2 {
1655
+ font-size: 1.14rem;
1656
+ font-weight: 600;
1657
+ }
1658
+ :root[data-theme="datalab"] .brief-navigation,
1659
+ :root[data-theme="datalab-dark"] .brief-navigation {
1660
+ border: 1px solid var(--reader-line);
1661
+ border-radius: var(--radius-sm);
1662
+ padding: 8px;
1663
+ background: var(--surface);
1664
+ }
1665
+ :root[data-theme="presentation"] .report-shell {
1666
+ max-width: 1320px;
1667
+ }
1668
+ :root[data-theme="presentation"] .report-header h1 {
1669
+ font-size: clamp(1.85rem, 3.5vw, 3rem);
1670
+ line-height: 1.4;
1671
+ max-width: 1000px;
1672
+ }
1673
+ :root[data-theme="presentation"] .brief-decision .decision-hero {
1674
+ padding: 36px;
1675
+ border-left: 3px solid var(--primary);
1676
+ }
1677
+ :root[data-theme="presentation"] .decision-value {
1678
+ font-size: 2.1rem;
1679
+ }
1680
+ :root[data-theme="presentation"] .brief-block {
1681
+ margin-bottom: 72px;
1682
+ }
1683
+ :root[data-theme="presentation"] .brief-block-header h2 {
1684
+ font-size: 1.7rem;
1685
+ }
1686
+ @media (max-width: 1050px) {
1687
+ :root[data-theme] .report-page-brief {
1688
+ grid-template-columns: minmax(0, 1fr);
1689
+ gap: 24px;
1690
+ }
1691
+ .brief-navigation {
1692
+ position: static;
1693
+ flex-direction: row;
1694
+ flex-wrap: wrap;
1695
+ gap: 3px;
1696
+ padding: 0;
1697
+ }
1698
+ .brief-navigation a {
1699
+ border-left: 0;
1700
+ border-bottom: 2px solid transparent;
1701
+ padding: 8px;
1702
+ font-size: 11px;
1703
+ }
1704
+ .brief-navigation a.active {
1705
+ border-bottom-color: var(--primary);
1706
+ border-left: 0;
1707
+ }
1708
+ :root[data-theme] .full-report-layout {
1709
+ grid-template-columns: minmax(0, 1fr);
1710
+ gap: 24px;
1711
+ }
1712
+ :root[data-theme] .full-report-intro {
1713
+ margin: 0 0 24px;
1714
+ }
1715
+ :root[data-theme] .full-report-toc {
1716
+ position: static;
1717
+ max-height: none;
1718
+ }
1719
+ .reader-home .generated-theme {
1720
+ display: none;
1721
+ }
1722
+ }
1723
+ @media (max-width: 640px) {
1724
+ :root[data-theme] .controls.reader-toolbar {
1725
+ gap: 8px;
1726
+ min-height: 60px;
1727
+ padding: 10px 12px;
1728
+ flex-wrap: wrap;
1729
+ }
1730
+ .reader-home {
1731
+ font-size: 14px;
1732
+ }
1733
+ .reader-print {
1734
+ display: none;
1735
+ }
1736
+ :root[data-theme] .reader-view-controls .report-view-btn {
1737
+ font-size: 11px;
1738
+ padding: 5px 8px;
1739
+ }
1740
+ .reader-tools .lang-btn {
1741
+ padding: 5px 8px;
1742
+ min-height: 32px;
1743
+ }
1744
+ :root[data-theme] .report-shell {
1745
+ padding: 28px 16px 60px;
1746
+ }
1747
+ :root[data-theme] .report-header {
1748
+ padding-bottom: 22px;
1749
+ margin-bottom: 20px;
1750
+ }
1751
+ :root[data-theme] .report-header h1 {
1752
+ font-size: 1.6rem;
1753
+ line-height: 1.5;
1754
+ margin: 14px 0;
1755
+ }
1756
+ :root[data-theme] .report-header .meta {
1757
+ font-size: 11px;
1758
+ }
1759
+ :root[data-theme] .decision-hero,
1760
+ :root[data-theme="presentation"] .brief-decision .decision-hero {
1761
+ padding: 20px 18px;
1762
+ }
1763
+ :root[data-theme] .hero-insights {
1764
+ grid-template-columns: minmax(0, 1fr);
1765
+ }
1766
+ :root[data-theme] .hero-insight:nth-child(n) {
1767
+ padding: 16px 0;
1768
+ border: 0;
1769
+ border-bottom: 1px solid var(--reader-line);
1770
+ }
1771
+ :root[data-theme] .hero-insight:last-child {
1772
+ border: 0;
1773
+ }
1774
+ :root[data-theme] .hero-insight-text {
1775
+ font-size: 13px;
1776
+ }
1777
+ :root[data-theme] .tribunal-grid {
1778
+ grid-template-columns: minmax(0, 1fr);
1779
+ }
1780
+ :root[data-theme] .brief-block {
1781
+ margin-bottom: 40px;
1782
+ }
1783
+ :root[data-theme] .report-section {
1784
+ margin-bottom: 40px;
1785
+ }
1786
+ :root[data-theme] .brief-source {
1787
+ padding: 16px;
1788
+ }
1789
+ :root[data-theme] .report-page-brief {
1790
+ gap: 20px;
1791
+ }
1792
+ .brief-navigation a {
1793
+ padding: 7px 6px;
1794
+ font-size: 10px;
1795
+ }
1796
+ .brief-navigation a > span {
1797
+ display: none;
1798
+ }
1799
+ }
1800
+ @media (max-width: 359px) {
1801
+ .reader-home {
1802
+ display: none;
1803
+ }
1804
+ :root[data-theme] .report-header h1 {
1805
+ font-size: 1.45rem;
1806
+ }
1807
+ }
1808
+ @media (prefers-reduced-motion: reduce) {
1809
+ html {
1810
+ scroll-behavior: auto;
1811
+ }
1812
+ .reader-progress > span {
1813
+ transition: none;
1814
+ }
1815
+ }
1816
+ @media print {
1817
+ .reader-toolbar,
1818
+ .reader-progress,
1819
+ .brief-navigation,
1820
+ .reader-filter-count,
1821
+ .reader-print {
1822
+ display: none !important;
1823
+ }
1824
+ :root[data-theme] .report-shell {
1825
+ max-width: none;
1826
+ padding: 0;
1827
+ }
1828
+ :root[data-theme] .report-page-brief {
1829
+ display: block;
1830
+ }
1831
+ :root[data-theme] .hero-insights {
1832
+ grid-template-columns: repeat(2, minmax(0, 1fr));
1833
+ }
1834
+ :root[data-theme] .brief-block {
1835
+ break-inside: auto;
1836
+ }
1837
+ details .detail-body {
1838
+ display: block;
1839
+ }
1840
+ }
1841
+ .reader-view-controls,
1842
+ .reader-tools,
1843
+ .reader-tools .lang-switcher {
1844
+ flex-shrink: 0;
1845
+ }
1846
+ :root[data-theme] .reader-view-controls .report-view-btn {
1847
+ white-space: nowrap;
1848
+ }
1849
+ @media (max-width: 450px) {
1850
+ .reader-home {
1851
+ font-size: 12px;
1852
+ }
1853
+ .reader-tools .lang-btn {
1854
+ font-size: 11px;
1855
+ padding: 5px 7px;
1856
+ }
1857
+ }
1858
+ /* Keep warm terracotta / cool slate identities at readable text contrast. */
1859
+ :root[data-theme="claude"] {
1860
+ --text-muted: #69655d;
1861
+ --primary: #9c5238;
1862
+ }
1863
+ :root[data-theme="datalab"] {
1864
+ --text-muted: #5c6573;
1865
+ }
1866
+ :root[data-theme] .reader-home .generated-theme {
1867
+ color: var(--reader-muted);
1868
+ }
1869
+ .brief-navigation a > span {
1870
+ opacity: 1;
1871
+ }
1872
+ :root[data-theme] .full-report-intro {
1873
+ width: auto;
1874
+ }
1875
+ :root[data-theme] .evidence-to-action {
1876
+ max-width: 100%;
1877
+ flex-wrap: wrap;
1878
+ overflow: visible;
1879
+ }
1880
+ :root[data-theme] .evidence-to-action .action-node {
1881
+ flex: 1 1 140px;
1882
+ min-width: 0;
1883
+ overflow-wrap: anywhere;
1884
+ }
1885
+ :root[data-theme="claude"] {
1886
+ --insufficient: #69655d;
1887
+ }
1888
+ :root[data-theme="datalab"] {
1889
+ --insufficient: #5c6573;
1890
+ }
1891
+
1892
+ </style>
1893
+ </head>
1894
+ <body>
1895
+ <div class="reader-progress" aria-hidden="true"><span></span></div>
1896
+ <div class="controls reader-toolbar">
1897
+ <a class="reader-home" href="#" aria-label="Back to report start">EduEvidence<span class="generated-theme">Academic Paper [Light]</span></a>
1898
+ <div class="reader-view-controls" role="group" aria-label="Report view">
1899
+ <button type="button" class="report-view-btn active" data-report-view="brief" data-copy="brief" aria-pressed="true">摘要</button>
1900
+ <button type="button" class="report-view-btn" data-report-view="full" data-copy="full" aria-pressed="false">完整报告</button>
1901
+ </div>
1902
+ <div class="reader-tools"><div class="lang-switcher" role="group" aria-label="语言切换 / Language switch"><span data-lang-label data-zh="语言" data-en="Language">语言</span><button type="button" data-lang-target="zh" class="lang-btn active" aria-pressed="true">中文</button><button type="button" data-lang-target="en" class="lang-btn" aria-pressed="false">EN</button></div><button class="reader-print" type="button" data-copy="print">打印</button></div>
1903
+ </div>
1904
+ <div class="report-shell" data-lang-body="zh">
1905
+ <header class="report-header">
1906
+ <div class="report-brand-row"><span class="report-brand">EduEvidence</span><span class="generated-theme-chip">Academic Paper [Light]</span><span class="data-origin-chip" data-origin="manual_curated">数据来源:真实文献 · 人工精编</span></div>
1907
+ <h1>我们准备在大学一年级 C 语言课程中允许学生使用生成式 AI 编程助手。它到底会不会提高学习效果?应该怎样引入?</h1>
1908
+ <p class="meta">模式:平台原生 · 生成时间:2026-08-24 · 证据 12 条 · 来源 8 个</p>
1909
+ <nav class="report-view-switcher" aria-label="report view">
1910
+ <button type="button" class="report-view-btn active" data-report-view="brief" aria-pressed="true">可视化摘要</button>
1911
+ <button type="button" class="report-view-btn" data-report-view="full" aria-pressed="false">完整报告</button>
1912
+ </nav>
1913
+ </header>
1914
+ <div class="report-page report-page-brief" data-report-page="brief"><nav class="brief-navigation" aria-label="摘要导航"><a href="#brief-decision-zh"><span>01</span>先看结论</a><a href="#brief-outcomes-zh"><span>02</span>任务表现 ≠ 学习效果</a><a href="#brief-tribunal-zh"><span>03</span>证据裁决</a><a href="#brief-action-zh"><span>04</span>从证据到行动</a><a href="#brief-sources-zh"><span>05</span>关键来源</a></nav><div class="brief-reading-content"><section class="brief-block brief-decision" id="brief-decision-zh"><header class="brief-block-header"><h2>先看结论</h2><p>该不该做、置信度多高、最关键的证据边界在哪。</p></header><div class="brief-block-body">
1915
+ <div class="decision-hero pilot" data-visual="decision-hero">
1916
+ <div class="hero-decision">
1917
+ <span class="eyebrow">建议决策</span>
1918
+ <strong class="decision-value">试点验证</strong>
1919
+ <span class="confidence-badge">置信度 · 中</span>
1920
+ </div>
1921
+ <p class="hero-rationale">任务表现的正面证据 + 有据可查的无护栏风险 + 混合的质量/可用性信号 + 大学层面学习证据缺失 → 有界、护栏化、带评估的试点,而非全面采用。</p>
1922
+ <div class="hero-insights">
1923
+ <article class="hero-insight support"><span>最强支持结论</span><p class="hero-insight-text">AI 编程助手在训练期稳定提升练习效率:69 名新手的随机对照中完成率 1.15 倍、用时 0.57 倍。</p></article>
1924
+ <article class="hero-insight uncertain"><span>关键不确定性 / 反例</span><p class="hero-insight-text">缺少大学层面的直接学习证据;唯一大规模试验显示,无护栏使用 GPT-4 的学生独立考试成绩下降 17%。</p></article>
1925
+ <article class="hero-insight risk"><span>主要风险</span><p class="hero-insight-text">无护栏使用会抬高练习表现却压低独立考试表现,而学习者往往意识不到这一落差。</p></article>
1926
+ <article class="hero-insight next"><span>下一步</span><p class="hero-insight-text">开展分阶段 CS1 试点:给提示而非答案、每周实验课使用、并以无 AI 迁移考试作为可叫停的验收条件。</p></article>
1927
+ </div>
1928
+ <p class="hero-provenance"><span>证据 / 来源</span> · 12 / 8</p>
1929
+ </div></div></section><section class="brief-block brief-outcomes" id="brief-outcomes-zh"><header class="brief-block-header"><h2>任务表现 ≠ 学习效果</h2><p>只展示真正有解释力的结果分离;正向、负向与零效应按 effect_direction 编码。</p></header><div class="brief-block-body"><div class="outcome-separation" data-visual="outcome-separation"><div class="visual-heading"><h3>结果分离 · 任务表现 ≠ 学习效果</h3><p>将不同结果类型分开裁决,避免把训练时更快、更高分直接等同于真正学会。</p><p class="semantic-note">效应方向来自 evidence.effect_direction;“支持某个主张”不等于“结果是正向”。</p></div><div class="outcome-groups"><article class="outcome-group outcome-task"><h3>任务 / 近端表现</h3><ul><li><strong>完成时间</strong><span class="outcome-states"><span class="dir pos">正向效应 2</span></span></li><li><strong>代码质量</strong><span class="outcome-states"><span class="dir neu">零效应 1</span></span></li><li><strong>作业成绩</strong><span class="outcome-states"><span class="dir pos">正向效应 2</span></span></li></ul></article><article class="outcome-group outcome-learning"><h3>学习 / 保持 / 迁移</h3><ul><li><strong>知识获得</strong><span class="outcome-states"><span class="dir pos">正向效应 1</span></span></li><li><strong>记忆保持</strong><span class="outcome-states"><span class="dir neu">零效应 1</span></span></li><li><strong>独立问题解决</strong><span class="outcome-states"><span class="dir neg">负向效应 1</span><span class="dir neu">零效应 2</span></span></li></ul></article><article class="outcome-group outcome-risk"><h3>风险 / 依赖</h3><ul><li><strong>过度依赖</strong><span class="outcome-states"><span class="dir neg">负向效应 1</span></span></li></ul></article><article class="outcome-group outcome-other"><h3>其他结果</h3><ul><li><strong>元认知</strong><span class="outcome-states"><span class="dir pos">正向效应 1</span></span></li></ul></article></div></div><div class="visual-surface brief-chart" data-visual="outcome-evidence-balance"><svg viewBox="0 0 720 300" xmlns="http://www.w3.org/2000/svg" role="img" aria-label="各结果类型证据效应分布"><title>各结果类型证据效应分布</title><desc>各结果类型的正向 / 负向 / 零效应证据条数(基于 effect_direction,不等同于 Claim 是否被支持)。</desc><rect x="0" y="0" width="720" height="300" fill="#FFFFFF"/><line x1="415.0" y1="46" x2="415.0" y2="182" stroke="#999" stroke-width="1" stroke-dasharray="3,3"/><text x="142" y="58.0" text-anchor="end" font-size="11" fill="#333">知识获得</text><rect x="415.0" y="49.8" width="132.5" height="9.4" fill="#5E8A6A"/><text x="481.2" y="58.0" text-anchor="middle" font-size="9" fill="#fff">1</text><text x="142" y="75.0" text-anchor="end" font-size="11" fill="#333">记忆保持</text><text x="142" y="92.0" text-anchor="end" font-size="11" fill="#333">独立问题解决</text><rect x="282.5" y="83.8" width="132.5" height="9.4" fill="#A85B53"/><text x="348.8" y="92.0" text-anchor="middle" font-size="9" fill="#fff">-1</text><text x="142" y="109.0" text-anchor="end" font-size="11" fill="#333">完成时间</text><rect x="415.0" y="100.8" width="265.0" height="9.4" fill="#5E8A6A"/><text x="547.5" y="109.0" text-anchor="middle" font-size="9" fill="#fff">2</text><text x="142" y="126.0" text-anchor="end" font-size="11" fill="#333">代码质量</text><text x="142" y="143.0" text-anchor="end" font-size="11" fill="#333">作业成绩</text><rect x="415.0" y="134.8" width="265.0" height="9.4" fill="#5E8A6A"/><text x="547.5" y="143.0" text-anchor="middle" font-size="9" fill="#fff">2</text><text x="142" y="160.0" text-anchor="end" font-size="11" fill="#333">元认知</text><rect x="415.0" y="151.8" width="132.5" height="9.4" fill="#5E8A6A"/><text x="481.2" y="160.0" text-anchor="middle" font-size="9" fill="#fff">1</text><text x="142" y="177.0" text-anchor="end" font-size="11" fill="#333">过度依赖</text><rect x="282.5" y="168.8" width="132.5" height="9.4" fill="#A85B53"/><text x="348.8" y="177.0" text-anchor="middle" font-size="9" fill="#fff">-1</text><rect x="415.0" y="206.1" width="8.0" height="6" fill="#C99A4A"/><rect x="415.0" y="214.9" width="8.0" height="6" fill="#C99A4A"/><rect x="415.0" y="232.4" width="8.0" height="6" fill="#C99A4A"/><rect x="150" y="14" width="10" height="10" fill="#5E8A6A"/><text x="164" y="23" font-size="10" fill="#333">正向效应</text><rect x="226" y="14" width="10" height="10" fill="#A85B53"/><text x="240" y="23" font-size="10" fill="#333">负向效应</text><rect x="302" y="14" width="10" height="10" fill="#C99A4A"/><text x="316" y="23" font-size="10" fill="#333">零效应</text></svg><p class="chart-interpretation"><strong>这意味着什么:</strong>各 Outcome 的正向 / 负向 / 零效应证据条数对比。这里展示的是 effect_direction,不是“这条证据是否支持某个主张”。</p></div></div></section><section class="brief-block brief-tribunal" id="brief-tribunal-zh"><header class="brief-block-header"><h2>证据裁决</h2><p>支持、不确定、被反驳与缺失证据分开放置,不把长段落平铺在同一层。</p></header><div class="brief-block-body"><div class="evidence-tribunal" data-visual="evidence-tribunal-grid"><p class="tribunal-summary"><strong>决策:</strong>试点验证 · <strong>置信度:</strong>中</p><div class="tribunal-grid"><article class="tribunal-card supported"><header><span aria-hidden="true">✓</span><h3>可以主张</h3><span class="tribunal-count">7</span></header><ul><li><p>AI 编程助手在训练期间可靠地提升任务表现(完成速度、正确性)—— E-001、E-006。</p><div class="tribunal-evidence-refs"><code>E-001</code><code>E-006</code></div></li><li><p>无护栏的生成式 AI 访问在移除工具后可能损害独立问题解决能力 —— E-004。</p><div class="tribunal-evidence-refs"><code>E-004</code></div></li><li><p>护栏设计(给提示而非给答案)能大幅缓解负面学习效应 —— E-005。</p><div class="tribunal-evidence-refs"><code>E-005</code></div></li></ul><details class="tribunal-more"><summary>查看其余 4 条</summary><ul><li><p>任务表现提升并不自动等于学习提升 —— E-004 与 E-006 的研究内对照。</p><div class="tribunal-evidence-refs"><code>E-004</code><code>E-006</code></div></li><li><p>工具能力可观:Codex 能解出约半数至四分之三的 CS1 考试风格题目 —— E-010。</p><div class="tribunal-evidence-refs"><code>E-010</code></div></li><li><p>职业开发者 RCT 显示 Copilot 带来约 55% 任务提速;但职业人群限制直接性 —— E-008。</p><div class="tribunal-evidence-refs"><code>E-008</code></div></li><li><p>LLM 代码讲解的质量评级与学生自撰讲解相当,可作支架材料 —— E-011。</p><div class="tribunal-evidence-refs"><code>E-011</code></div></li></ul></details></article><article class="tribunal-card uncertain"><header><span aria-hidden="true">?</span><h3>尚不能主张</h3><span class="tribunal-count">4</span></header><ul><li><p>AI 编程助手能否真正改善或保持大学新手的编程学习——本证据集中没有大学层面的直接 RCT [无直接证据]</p></li><li><p>Kazemitabaar 2023 的一周中性保持性能否延伸到一个学期 —— E-003。</p><div class="tribunal-evidence-refs"><code>E-003</code></div></li><li><p>基准质量结论(E-009)与讲解质量评级(E-011)能否转化为课堂学习收益。</p><div class="tribunal-evidence-refs"><code>E-009</code><code>E-011</code></div></li></ul><details class="tribunal-more"><summary>查看其余 1 条</summary><ul><li><p>可用性研究所记录的理解/所有权困难(E-012)在整学期护栏条件下会如何演变。</p><div class="tribunal-evidence-refs"><code>E-012</code></div></li></ul></details></article><article class="tribunal-card contradicted"><header><span aria-hidden="true">×</span><h3>被反驳的主张</h3><span class="tribunal-count">2</span></header><ul><li><p>&#x27;AI 工具总能提高学习&#x27;被 E-004 反驳(无护栏访问,独立考试 −17%)。</p><div class="tribunal-evidence-refs"><code>E-004</code></div></li><li><p>&#x27;速度收益等于学习收益&#x27;被 E-001/E-006/E-008 与 E-004 之间的任务-学习分离所反驳。</p><div class="tribunal-evidence-refs"><code>E-001</code><code>E-006</code><code>E-008</code><code>E-004</code></div></li></ul></article><article class="tribunal-card missing"><header><span aria-hidden="true">…</span><h3>缺失证据</h3><span class="tribunal-count">4</span></header><ul><li><p>在大学编程课程中带保持与无 AI 迁移测试的 RCT。</p></li><li><p>同一课程内变化 AI 使用政策的研究。</p></li><li><p>跨越一门课的 AI 依赖纵向数据。</p></li></ul><details class="tribunal-more"><summary>查看其余 1 条</summary><ul><li><p>职业提速 RCT 的同行评审重复(Peng 等仍为预印本)。</p></li></ul></details></article></div></div></div></section><section class="brief-block brief-action" id="brief-action-zh"><header class="brief-block-header"><h2>从证据到行动</h2><p>适用性、护栏、停止条件与评价连成一条可执行路径。</p></header><div class="brief-block-body"><div class="evidence-to-action" data-visual="evidence-to-action"><article class="action-node action-evidence"><span>证据</span><p class="action-node-text">AI 编程助手在训练期间可靠地提升任务表现(完成速度、正确性)—— E-001、E-006。</p></article><span class="flow-arrow" aria-hidden="true">→</span><article class="action-node action-applicability"><span>适用性</span><p class="action-node-text">在大一 C 课程以护栏化使用政策开展试点</p></article><span class="flow-arrow" aria-hidden="true">→</span><article class="action-node action-decision"><span>决策</span><p class="action-node-text">试点验证</p></article><span class="flow-arrow" aria-hidden="true">→</span><article class="action-node action-guardrails"><span>护栏</span><p class="action-node-text">AI 使用分三档明确分级(解释 / 协作 / 无 AI 迁移)。照抄未审视的 AI 输出属学术诚信违规,并通过推理痕迹要求核查。</p></article><span class="flow-arrow" aria-hidden="true">→</span><article class="action-node action-stop"><span>停止条件</span><p class="action-node-text">迁移测验成绩显著低于基线同届预期; 推理痕迹中出现普遍诚信违规; 风险指标中 AI 依赖信号超阈值; 助教/教师工作量不可持续</p></article><span class="flow-arrow" aria-hidden="true">→</span><article class="action-node action-evaluation"><span>评价</span><p class="action-node-text">实验班独立问题解决非劣(差异在 5% 以内)且保持相当或更优、AI 依赖指数低于阈值;若独立问题解决下滑超过 10%,无论任务收益如何,试点均判为失败。</p></article></div></div></section><section class="brief-block brief-lieflat" id="brief-lieflat-zh"><header class="brief-block-header"><h2>Lieflat 实证手作画廊</h2><p>AI 按数据形状从 Lieflat 目录选型编排;每张图的数字都可溯源到 result.json。</p></header><div class="brief-block-body"><div class="lieflat-gallery-container"><figure class="lieflat-card" data-lieflat data-visual="lieflat-bubble_almanac" data-chart-id="lieflat-bubble-almanac.svg"><h3 class="lieflat-title">发表年份 × 结果维度文献年历</h3><p class="lieflat-sub">气泡面积 ∝ 该格研究数 · 实心圆 = 有显著结果</p><div class="lieflat-figure"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 540 300" width="100%" height="100%" role="img" aria-label="发表年份 × 结果维度文献年历" style="background:#FAFAFA;">
1930
+ <line x1="44" y1="70.0" x2="520" y2="70.0" stroke="#E2E8F0" stroke-width="0.5" class="lf-fade" style="--motion-delay:0ms"/>
1931
+ <line x1="44" y1="77.0" x2="520" y2="77.0" stroke="#E2E8F0" stroke-width="0.5" class="lf-fade" style="--motion-delay:14ms"/>
1932
+ <line x1="44" y1="84.0" x2="520" y2="84.0" stroke="#E2E8F0" stroke-width="0.5" class="lf-fade" style="--motion-delay:28ms"/>
1933
+ <line x1="44" y1="91.0" x2="520" y2="91.0" stroke="#E2E8F0" stroke-width="0.5" class="lf-fade" style="--motion-delay:42ms"/>
1934
+ <line x1="44" y1="98.0" x2="520" y2="98.0" stroke="#E2E8F0" stroke-width="0.5" class="lf-fade" style="--motion-delay:56ms"/>
1935
+ <line x1="44" y1="105.0" x2="520" y2="105.0" stroke="#E2E8F0" stroke-width="0.5" class="lf-fade" style="--motion-delay:70ms"/>
1936
+ <line x1="44" y1="112.0" x2="520" y2="112.0" stroke="#E2E8F0" stroke-width="0.5" class="lf-fade" style="--motion-delay:84ms"/>
1937
+ <line x1="44" y1="119.0" x2="520" y2="119.0" stroke="#E2E8F0" stroke-width="0.5" class="lf-fade" style="--motion-delay:98ms"/>
1938
+ <line x1="44" y1="126.0" x2="520" y2="126.0" stroke="#E2E8F0" stroke-width="0.5" class="lf-fade" style="--motion-delay:112ms"/>
1939
+ <line x1="44" y1="133.0" x2="520" y2="133.0" stroke="#E2E8F0" stroke-width="0.5" class="lf-fade" style="--motion-delay:126ms"/>
1940
+ <line x1="44" y1="140.0" x2="520" y2="140.0" stroke="#E2E8F0" stroke-width="0.5" class="lf-fade" style="--motion-delay:140ms"/>
1941
+ <line x1="44" y1="147.0" x2="520" y2="147.0" stroke="#E2E8F0" stroke-width="0.5" class="lf-fade" style="--motion-delay:154ms"/>
1942
+ <line x1="44" y1="154.0" x2="520" y2="154.0" stroke="#E2E8F0" stroke-width="0.5" class="lf-fade" style="--motion-delay:168ms"/>
1943
+ <line x1="44" y1="161.0" x2="520" y2="161.0" stroke="#E2E8F0" stroke-width="0.5" class="lf-fade" style="--motion-delay:182ms"/>
1944
+ <line x1="44" y1="168.0" x2="520" y2="168.0" stroke="#E2E8F0" stroke-width="0.5" class="lf-fade" style="--motion-delay:196ms"/>
1945
+ <line x1="44" y1="175.0" x2="520" y2="175.0" stroke="#E2E8F0" stroke-width="0.5" class="lf-fade" style="--motion-delay:210ms"/>
1946
+ <line x1="44" y1="182.0" x2="520" y2="182.0" stroke="#E2E8F0" stroke-width="0.5" class="lf-fade" style="--motion-delay:224ms"/>
1947
+ <line x1="44" y1="189.0" x2="520" y2="189.0" stroke="#E2E8F0" stroke-width="0.5" class="lf-fade" style="--motion-delay:238ms"/>
1948
+ <line x1="44" y1="196.0" x2="520" y2="196.0" stroke="#E2E8F0" stroke-width="0.5" class="lf-fade" style="--motion-delay:252ms"/>
1949
+ <line x1="44" y1="203.0" x2="520" y2="203.0" stroke="#E2E8F0" stroke-width="0.5" class="lf-fade" style="--motion-delay:266ms"/>
1950
+ <line x1="44" y1="210.0" x2="520" y2="210.0" stroke="#E2E8F0" stroke-width="0.5" class="lf-fade" style="--motion-delay:280ms"/>
1951
+ <line x1="44" y1="217.0" x2="520" y2="217.0" stroke="#E2E8F0" stroke-width="0.5" class="lf-fade" style="--motion-delay:294ms"/>
1952
+ <line x1="44" y1="224.0" x2="520" y2="224.0" stroke="#E2E8F0" stroke-width="0.5" class="lf-fade" style="--motion-delay:308ms"/>
1953
+ <line x1="44" y1="231.0" x2="520" y2="231.0" stroke="#E2E8F0" stroke-width="0.5" class="lf-fade" style="--motion-delay:322ms"/>
1954
+ <line x1="44" y1="238.0" x2="520" y2="238.0" stroke="#E2E8F0" stroke-width="0.5" class="lf-fade" style="--motion-delay:336ms"/>
1955
+ <line x1="44" y1="245.0" x2="520" y2="245.0" stroke="#E2E8F0" stroke-width="0.5" class="lf-fade" style="--motion-delay:350ms"/>
1956
+ <line x1="44" y1="252.0" x2="520" y2="252.0" stroke="#E2E8F0" stroke-width="0.5" class="lf-fade" style="--motion-delay:364ms"/>
1957
+ <line x1="44" y1="259.0" x2="520" y2="259.0" stroke="#E2E8F0" stroke-width="0.5" class="lf-fade" style="--motion-delay:378ms"/>
1958
+ <text x="150" y="76" fill="#0F172A" font-size="9" font-weight="600" text-anchor="middle" class="lf-fade" style="--motion-delay:40ms">完成时间</text>
1959
+ <text x="203" y="76" fill="#0F172A" font-size="9" font-weight="600" text-anchor="middle" class="lf-fade" style="--motion-delay:140ms">独立问题解决</text>
1960
+ <text x="256" y="76" fill="#0F172A" font-size="9" font-weight="600" text-anchor="middle" class="lf-fade" style="--motion-delay:240ms">记忆保持</text>
1961
+ <text x="309" y="76" fill="#0F172A" font-size="9" font-weight="600" text-anchor="middle" class="lf-fade" style="--motion-delay:340ms">作业成绩</text>
1962
+ <text x="361" y="76" fill="#0F172A" font-size="9" font-weight="600" text-anchor="middle" class="lf-fade" style="--motion-delay:440ms">知识获得</text>
1963
+ <text x="414" y="76" fill="#0F172A" font-size="9" font-weight="600" text-anchor="middle" class="lf-fade" style="--motion-delay:540ms">代码质量</text>
1964
+ <text x="467" y="76" fill="#0F172A" font-size="9" font-weight="600" text-anchor="middle" class="lf-fade" style="--motion-delay:640ms">元认知</text>
1965
+ <text x="514.0" y="76" fill="#0F172A" font-size="9" font-weight="600" text-anchor="middle" class="lf-fade" style="--motion-delay:740ms">过度依赖</text>
1966
+ <text x="96" y="96.0" fill="#475569" font-size="9" font-weight="800" text-anchor="end" class="lf-fade" style="--motion-delay:80ms">2022</text>
1967
+ <text x="96" y="140.0" fill="#475569" font-size="9" font-weight="800" text-anchor="end" class="lf-fade" style="--motion-delay:180ms">2023</text>
1968
+ <text x="96" y="184.0" fill="#475569" font-size="9" font-weight="800" text-anchor="end" class="lf-fade" style="--motion-delay:280ms">2024</text>
1969
+ <text x="96" y="228.0" fill="#475569" font-size="9" font-weight="800" text-anchor="end" class="lf-fade" style="--motion-delay:380ms">2025</text>
1970
+ <circle cx="308.6" cy="92.0" r="3.6" fill="#0F172A" fill-opacity="0.22" stroke="#0F172A" stroke-width="1.2" class="lf-pop" style="--motion-delay:100ms"><title>作业成绩 (2022) — N = 1 篇研究, 显著 = 0</title></circle>
1971
+ <circle cx="520.0" cy="92.0" r="3.6" fill="#0F172A" fill-opacity="0.22" stroke="#0F172A" stroke-width="1.2" class="lf-pop" style="--motion-delay:112ms"><title>过度依赖 (2022) — N = 1 篇研究, 显著 = 0</title></circle>
1972
+ <circle cx="150.0" cy="136.0" r="5.1" fill="#0F172A" fill-opacity="0.22" stroke="#0F172A" stroke-width="1.2" class="lf-pop" style="--motion-delay:124ms"><title>完成时间 (2023) — N = 2 篇研究, 显著 = 0</title></circle>
1973
+ <circle cx="202.9" cy="136.0" r="3.6" fill="#0F172A" fill-opacity="0.22" stroke="#0F172A" stroke-width="1.2" class="lf-pop" style="--motion-delay:136ms"><title>独立问题解决 (2023) — N = 1 篇研究, 显著 = 0</title></circle>
1974
+ <circle cx="255.7" cy="136.0" r="3.6" fill="#0F172A" fill-opacity="0.22" stroke="#0F172A" stroke-width="1.2" class="lf-pop" style="--motion-delay:148ms"><title>记忆保持 (2023) — N = 1 篇研究, 显著 = 0</title></circle>
1975
+ <circle cx="414.3" cy="136.0" r="3.6" fill="#0F172A" fill-opacity="0.22" stroke="#0F172A" stroke-width="1.2" class="lf-pop" style="--motion-delay:160ms"><title>代码质量 (2023) — N = 1 篇研究, 显著 = 0</title></circle>
1976
+ <circle cx="467.1" cy="136.0" r="3.6" fill="#0F172A" fill-opacity="0.22" stroke="#0F172A" stroke-width="1.2" class="lf-pop" style="--motion-delay:172ms"><title>元认知 (2023) — N = 1 篇研究, 显著 = 0</title></circle>
1977
+ <circle cx="361.4" cy="180.0" r="3.6" fill="#0F172A" fill-opacity="0.22" stroke="#0F172A" stroke-width="1.2" class="lf-pop" style="--motion-delay:184ms"><title>知识获得 (2024) — N = 1 篇研究, 显著 = 0</title></circle>
1978
+ <circle cx="202.9" cy="224.0" r="5.1" fill="#0F172A" fill-opacity="0.22" stroke="#0F172A" stroke-width="1.2" class="lf-pop" style="--motion-delay:196ms"><title>独立问题解决 (2025) — N = 2 篇研究, 显著 = 0</title></circle>
1979
+ <circle cx="308.6" cy="224.0" r="3.6" fill="#0F172A" fill-opacity="0.22" stroke="#0F172A" stroke-width="1.2" class="lf-pop" style="--motion-delay:208ms"><title>作业成绩 (2025) — N = 1 篇研究, 显著 = 0</title></circle>
1980
+ </svg></div><figcaption class="lieflat-caption">仅当证据集携带发表年份与结果维度时绘制。</figcaption><p class="lieflat-src">L9 Bubble Almanac · Evidence.year X Dimension</p></figure><figure class="lieflat-card" data-lieflat data-visual="lieflat-matrix_heat" data-chart-id="lieflat-matrix-heat.svg"><h3 class="lieflat-title">年份 × 结果维度证据密度</h3><p class="lieflat-sub">每格数字 = 该年份该结果维度的证据条数</p><div class="lieflat-figure"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 540 440" width="100%" height="100%" role="img" aria-label="年份 × 结果维度证据密度" style="background:#FAFAFA;">
1981
+ <text x="196.2" y="66" text-anchor="middle" font-size="9" font-weight="800" fill="#475569" class="lf-fade" style="--motion-delay:40ms">2022</text>
1982
+ <text x="288.8" y="66" text-anchor="middle" font-size="9" font-weight="800" fill="#475569" class="lf-fade" style="--motion-delay:140ms">2023</text>
1983
+ <text x="381.2" y="66" text-anchor="middle" font-size="9" font-weight="800" fill="#475569" class="lf-fade" style="--motion-delay:240ms">2024</text>
1984
+ <text x="473.8" y="66" text-anchor="middle" font-size="9" font-weight="800" fill="#475569" class="lf-fade" style="--motion-delay:340ms">2025</text>
1985
+ <text x="138" y="97.0" text-anchor="end" font-size="8" font-weight="600" fill="#475569" class="lf-fade" style="--motion-delay:60ms">完成时间</text>
1986
+ <rect x="152.0" y="80.0" width="88.5" height="28" rx="4" fill="#E2E8F0" fill-opacity="0.5" class="lf-fade" style="--motion-delay:0ms"/>
1987
+ <text x="196.2" y="97.0" text-anchor="middle" font-size="8.0" font-weight="800" fill="#0F172A" class="lf-pop" style="--motion-delay:60ms">0</text>
1988
+ <rect x="244.5" y="80.0" width="88.5" height="28" rx="4" fill="#0F172A" fill-opacity="0.90" class="lf-pop" style="--motion-delay:12ms"/>
1989
+ <text x="288.8" y="97.0" text-anchor="middle" font-size="8.0" font-weight="800" fill="#0F172A" class="lf-pop" style="--motion-delay:72ms">2</text>
1990
+ <rect x="337.0" y="80.0" width="88.5" height="28" rx="4" fill="#E2E8F0" fill-opacity="0.5" class="lf-fade" style="--motion-delay:24ms"/>
1991
+ <text x="381.2" y="97.0" text-anchor="middle" font-size="8.0" font-weight="800" fill="#0F172A" class="lf-pop" style="--motion-delay:84ms">0</text>
1992
+ <rect x="429.5" y="80.0" width="88.5" height="28" rx="4" fill="#E2E8F0" fill-opacity="0.5" class="lf-fade" style="--motion-delay:36ms"/>
1993
+ <text x="473.8" y="97.0" text-anchor="middle" font-size="8.0" font-weight="800" fill="#0F172A" class="lf-pop" style="--motion-delay:96ms">0</text>
1994
+ <text x="138" y="129.0" text-anchor="end" font-size="8" font-weight="600" fill="#475569" class="lf-fade" style="--motion-delay:160ms">独立问题解决</text>
1995
+ <rect x="152.0" y="112.0" width="88.5" height="28" rx="4" fill="#E2E8F0" fill-opacity="0.5" class="lf-fade" style="--motion-delay:12ms"/>
1996
+ <text x="196.2" y="129.0" text-anchor="middle" font-size="8.0" font-weight="800" fill="#0F172A" class="lf-pop" style="--motion-delay:72ms">0</text>
1997
+ <rect x="244.5" y="112.0" width="88.5" height="28" rx="4" fill="#0F172A" fill-opacity="0.54" class="lf-pop" style="--motion-delay:24ms"/>
1998
+ <text x="288.8" y="129.0" text-anchor="middle" font-size="8.0" font-weight="800" fill="#0F172A" class="lf-pop" style="--motion-delay:84ms">1</text>
1999
+ <rect x="337.0" y="112.0" width="88.5" height="28" rx="4" fill="#E2E8F0" fill-opacity="0.5" class="lf-fade" style="--motion-delay:36ms"/>
2000
+ <text x="381.2" y="129.0" text-anchor="middle" font-size="8.0" font-weight="800" fill="#0F172A" class="lf-pop" style="--motion-delay:96ms">0</text>
2001
+ <rect x="429.5" y="112.0" width="88.5" height="28" rx="4" fill="#0F172A" fill-opacity="0.90" class="lf-pop" style="--motion-delay:48ms"/>
2002
+ <text x="473.8" y="129.0" text-anchor="middle" font-size="8.0" font-weight="800" fill="#0F172A" class="lf-pop" style="--motion-delay:108ms">2</text>
2003
+ <text x="138" y="161.0" text-anchor="end" font-size="8" font-weight="600" fill="#475569" class="lf-fade" style="--motion-delay:260ms">记忆保持</text>
2004
+ <rect x="152.0" y="144.0" width="88.5" height="28" rx="4" fill="#E2E8F0" fill-opacity="0.5" class="lf-fade" style="--motion-delay:24ms"/>
2005
+ <text x="196.2" y="161.0" text-anchor="middle" font-size="8.0" font-weight="800" fill="#0F172A" class="lf-pop" style="--motion-delay:84ms">0</text>
2006
+ <rect x="244.5" y="144.0" width="88.5" height="28" rx="4" fill="#0F172A" fill-opacity="0.54" class="lf-pop" style="--motion-delay:36ms"/>
2007
+ <text x="288.8" y="161.0" text-anchor="middle" font-size="8.0" font-weight="800" fill="#0F172A" class="lf-pop" style="--motion-delay:96ms">1</text>
2008
+ <rect x="337.0" y="144.0" width="88.5" height="28" rx="4" fill="#E2E8F0" fill-opacity="0.5" class="lf-fade" style="--motion-delay:48ms"/>
2009
+ <text x="381.2" y="161.0" text-anchor="middle" font-size="8.0" font-weight="800" fill="#0F172A" class="lf-pop" style="--motion-delay:108ms">0</text>
2010
+ <rect x="429.5" y="144.0" width="88.5" height="28" rx="4" fill="#E2E8F0" fill-opacity="0.5" class="lf-fade" style="--motion-delay:60ms"/>
2011
+ <text x="473.8" y="161.0" text-anchor="middle" font-size="8.0" font-weight="800" fill="#0F172A" class="lf-pop" style="--motion-delay:120ms">0</text>
2012
+ <text x="138" y="193.0" text-anchor="end" font-size="8" font-weight="600" fill="#475569" class="lf-fade" style="--motion-delay:360ms">作业成绩</text>
2013
+ <rect x="152.0" y="176.0" width="88.5" height="28" rx="4" fill="#0F172A" fill-opacity="0.54" class="lf-pop" style="--motion-delay:36ms"/>
2014
+ <text x="196.2" y="193.0" text-anchor="middle" font-size="8.0" font-weight="800" fill="#0F172A" class="lf-pop" style="--motion-delay:96ms">1</text>
2015
+ <rect x="244.5" y="176.0" width="88.5" height="28" rx="4" fill="#E2E8F0" fill-opacity="0.5" class="lf-fade" style="--motion-delay:48ms"/>
2016
+ <text x="288.8" y="193.0" text-anchor="middle" font-size="8.0" font-weight="800" fill="#0F172A" class="lf-pop" style="--motion-delay:108ms">0</text>
2017
+ <rect x="337.0" y="176.0" width="88.5" height="28" rx="4" fill="#E2E8F0" fill-opacity="0.5" class="lf-fade" style="--motion-delay:60ms"/>
2018
+ <text x="381.2" y="193.0" text-anchor="middle" font-size="8.0" font-weight="800" fill="#0F172A" class="lf-pop" style="--motion-delay:120ms">0</text>
2019
+ <rect x="429.5" y="176.0" width="88.5" height="28" rx="4" fill="#0F172A" fill-opacity="0.54" class="lf-pop" style="--motion-delay:72ms"/>
2020
+ <text x="473.8" y="193.0" text-anchor="middle" font-size="8.0" font-weight="800" fill="#0F172A" class="lf-pop" style="--motion-delay:132ms">1</text>
2021
+ <text x="138" y="225.0" text-anchor="end" font-size="8" font-weight="600" fill="#475569" class="lf-fade" style="--motion-delay:460ms">知识获得</text>
2022
+ <rect x="152.0" y="208.0" width="88.5" height="28" rx="4" fill="#E2E8F0" fill-opacity="0.5" class="lf-fade" style="--motion-delay:48ms"/>
2023
+ <text x="196.2" y="225.0" text-anchor="middle" font-size="8.0" font-weight="800" fill="#0F172A" class="lf-pop" style="--motion-delay:108ms">0</text>
2024
+ <rect x="244.5" y="208.0" width="88.5" height="28" rx="4" fill="#E2E8F0" fill-opacity="0.5" class="lf-fade" style="--motion-delay:60ms"/>
2025
+ <text x="288.8" y="225.0" text-anchor="middle" font-size="8.0" font-weight="800" fill="#0F172A" class="lf-pop" style="--motion-delay:120ms">0</text>
2026
+ <rect x="337.0" y="208.0" width="88.5" height="28" rx="4" fill="#0F172A" fill-opacity="0.54" class="lf-pop" style="--motion-delay:72ms"/>
2027
+ <text x="381.2" y="225.0" text-anchor="middle" font-size="8.0" font-weight="800" fill="#0F172A" class="lf-pop" style="--motion-delay:132ms">1</text>
2028
+ <rect x="429.5" y="208.0" width="88.5" height="28" rx="4" fill="#E2E8F0" fill-opacity="0.5" class="lf-fade" style="--motion-delay:84ms"/>
2029
+ <text x="473.8" y="225.0" text-anchor="middle" font-size="8.0" font-weight="800" fill="#0F172A" class="lf-pop" style="--motion-delay:144ms">0</text>
2030
+ <text x="138" y="257.0" text-anchor="end" font-size="8" font-weight="600" fill="#475569" class="lf-fade" style="--motion-delay:560ms">代码质量</text>
2031
+ <rect x="152.0" y="240.0" width="88.5" height="28" rx="4" fill="#E2E8F0" fill-opacity="0.5" class="lf-fade" style="--motion-delay:60ms"/>
2032
+ <text x="196.2" y="257.0" text-anchor="middle" font-size="8.0" font-weight="800" fill="#0F172A" class="lf-pop" style="--motion-delay:120ms">0</text>
2033
+ <rect x="244.5" y="240.0" width="88.5" height="28" rx="4" fill="#0F172A" fill-opacity="0.54" class="lf-pop" style="--motion-delay:72ms"/>
2034
+ <text x="288.8" y="257.0" text-anchor="middle" font-size="8.0" font-weight="800" fill="#0F172A" class="lf-pop" style="--motion-delay:132ms">1</text>
2035
+ <rect x="337.0" y="240.0" width="88.5" height="28" rx="4" fill="#E2E8F0" fill-opacity="0.5" class="lf-fade" style="--motion-delay:84ms"/>
2036
+ <text x="381.2" y="257.0" text-anchor="middle" font-size="8.0" font-weight="800" fill="#0F172A" class="lf-pop" style="--motion-delay:144ms">0</text>
2037
+ <rect x="429.5" y="240.0" width="88.5" height="28" rx="4" fill="#E2E8F0" fill-opacity="0.5" class="lf-fade" style="--motion-delay:96ms"/>
2038
+ <text x="473.8" y="257.0" text-anchor="middle" font-size="8.0" font-weight="800" fill="#0F172A" class="lf-pop" style="--motion-delay:156ms">0</text>
2039
+ <text x="138" y="289.0" text-anchor="end" font-size="8" font-weight="600" fill="#475569" class="lf-fade" style="--motion-delay:660ms">元认知</text>
2040
+ <rect x="152.0" y="272.0" width="88.5" height="28" rx="4" fill="#E2E8F0" fill-opacity="0.5" class="lf-fade" style="--motion-delay:72ms"/>
2041
+ <text x="196.2" y="289.0" text-anchor="middle" font-size="8.0" font-weight="800" fill="#0F172A" class="lf-pop" style="--motion-delay:132ms">0</text>
2042
+ <rect x="244.5" y="272.0" width="88.5" height="28" rx="4" fill="#0F172A" fill-opacity="0.54" class="lf-pop" style="--motion-delay:84ms"/>
2043
+ <text x="288.8" y="289.0" text-anchor="middle" font-size="8.0" font-weight="800" fill="#0F172A" class="lf-pop" style="--motion-delay:144ms">1</text>
2044
+ <rect x="337.0" y="272.0" width="88.5" height="28" rx="4" fill="#E2E8F0" fill-opacity="0.5" class="lf-fade" style="--motion-delay:96ms"/>
2045
+ <text x="381.2" y="289.0" text-anchor="middle" font-size="8.0" font-weight="800" fill="#0F172A" class="lf-pop" style="--motion-delay:156ms">0</text>
2046
+ <rect x="429.5" y="272.0" width="88.5" height="28" rx="4" fill="#E2E8F0" fill-opacity="0.5" class="lf-fade" style="--motion-delay:108ms"/>
2047
+ <text x="473.8" y="289.0" text-anchor="middle" font-size="8.0" font-weight="800" fill="#0F172A" class="lf-pop" style="--motion-delay:168ms">0</text>
2048
+ <text x="138" y="321.0" text-anchor="end" font-size="8" font-weight="600" fill="#475569" class="lf-fade" style="--motion-delay:760ms">过度依赖</text>
2049
+ <rect x="152.0" y="304.0" width="88.5" height="28" rx="4" fill="#0F172A" fill-opacity="0.54" class="lf-pop" style="--motion-delay:84ms"/>
2050
+ <text x="196.2" y="321.0" text-anchor="middle" font-size="8.0" font-weight="800" fill="#0F172A" class="lf-pop" style="--motion-delay:144ms">1</text>
2051
+ <rect x="244.5" y="304.0" width="88.5" height="28" rx="4" fill="#E2E8F0" fill-opacity="0.5" class="lf-fade" style="--motion-delay:96ms"/>
2052
+ <text x="288.8" y="321.0" text-anchor="middle" font-size="8.0" font-weight="800" fill="#0F172A" class="lf-pop" style="--motion-delay:156ms">0</text>
2053
+ <rect x="337.0" y="304.0" width="88.5" height="28" rx="4" fill="#E2E8F0" fill-opacity="0.5" class="lf-fade" style="--motion-delay:108ms"/>
2054
+ <text x="381.2" y="321.0" text-anchor="middle" font-size="8.0" font-weight="800" fill="#0F172A" class="lf-pop" style="--motion-delay:168ms">0</text>
2055
+ <rect x="429.5" y="304.0" width="88.5" height="28" rx="4" fill="#E2E8F0" fill-opacity="0.5" class="lf-fade" style="--motion-delay:120ms"/>
2056
+ <text x="473.8" y="321.0" text-anchor="middle" font-size="8.0" font-weight="800" fill="#0F172A" class="lf-pop" style="--motion-delay:180ms">0</text>
2057
+ </svg></div><figcaption class="lieflat-caption">当证据跨多个年份与结果维度时,展示研究密度的分布。</figcaption><p class="lieflat-src">L16 Matrix Heat · Evidence.year X Outcome Counts</p></figure><figure class="lieflat-card" data-lieflat data-visual="lieflat-tick_rows" data-chart-id="lieflat-tick-rows.svg"><h3 class="lieflat-title">各结果类型效应方向分布</h3><p class="lieflat-sub">每 1 个圆点 = 1 条证据 · 绿 = 正向 · 灰 = 零效应 · 橙 = 负向</p><div class="lieflat-figure"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 540 300" width="100%" height="100%" role="img" aria-label="各结果类型效应方向分布" style="background:#FAFAFA;">
2058
+ <text x="128" y="102.0" text-anchor="end" font-size="9" font-weight="600" fill="#475569" class="lf-fade" style="--motion-delay:40ms">完成时间</text>
2059
+ <circle cx="140.0" cy="99.0" r="2.3" fill="#2563EB" class="lf-pop" style="--motion-delay:0ms"><title>完成时间 — positive evidence</title></circle>
2060
+ <circle cx="148.0" cy="99.0" r="2.3" fill="#2563EB" class="lf-pop" style="--motion-delay:12ms"><title>完成时间 — positive evidence</title></circle>
2061
+ <text x="512" y="102.0" text-anchor="end" font-size="8.0" font-weight="800" fill="#0F172A" class="lf-fade" style="--motion-delay:500ms">+2</text>
2062
+ <text x="128" y="124.0" text-anchor="end" font-size="9" font-weight="600" fill="#475569" class="lf-fade" style="--motion-delay:140ms">作业成绩</text>
2063
+ <circle cx="140.0" cy="121.0" r="2.3" fill="#2563EB" class="lf-pop" style="--motion-delay:100ms"><title>作业成绩 — positive evidence</title></circle>
2064
+ <circle cx="148.0" cy="121.0" r="2.3" fill="#2563EB" class="lf-pop" style="--motion-delay:112ms"><title>作业成绩 — positive evidence</title></circle>
2065
+ <text x="512" y="124.0" text-anchor="end" font-size="8.0" font-weight="800" fill="#0F172A" class="lf-fade" style="--motion-delay:600ms">+2</text>
2066
+ <text x="128" y="146.0" text-anchor="end" font-size="9" font-weight="600" fill="#475569" class="lf-fade" style="--motion-delay:240ms">知识获得</text>
2067
+ <circle cx="140.0" cy="143.0" r="2.3" fill="#2563EB" class="lf-pop" style="--motion-delay:200ms"><title>知识获得 — positive evidence</title></circle>
2068
+ <text x="512" y="146.0" text-anchor="end" font-size="8.0" font-weight="800" fill="#0F172A" class="lf-fade" style="--motion-delay:700ms">+1</text>
2069
+ <text x="128" y="168.0" text-anchor="end" font-size="9" font-weight="600" fill="#475569" class="lf-fade" style="--motion-delay:340ms">元认知</text>
2070
+ <circle cx="140.0" cy="165.0" r="2.3" fill="#2563EB" class="lf-pop" style="--motion-delay:300ms"><title>元认知 — positive evidence</title></circle>
2071
+ <text x="512" y="168.0" text-anchor="end" font-size="8.0" font-weight="800" fill="#0F172A" class="lf-fade" style="--motion-delay:800ms">+1</text>
2072
+ <text x="128" y="190.0" text-anchor="end" font-size="9" font-weight="600" fill="#475569" class="lf-fade" style="--motion-delay:440ms">记忆保持</text>
2073
+ <circle cx="140.0" cy="187.0" r="2.3" fill="#94A3B8" class="lf-pop" style="--motion-delay:400ms"><title>记忆保持 — null evidence</title></circle>
2074
+ <text x="512" y="190.0" text-anchor="end" font-size="8.0" font-weight="800" fill="#0F172A" class="lf-fade" style="--motion-delay:900ms">+0</text>
2075
+ <text x="128" y="212.0" text-anchor="end" font-size="9" font-weight="600" fill="#475569" class="lf-fade" style="--motion-delay:540ms">代码质量</text>
2076
+ <circle cx="140.0" cy="209.0" r="2.3" fill="#94A3B8" class="lf-pop" style="--motion-delay:500ms"><title>代码质量 — null evidence</title></circle>
2077
+ <text x="512" y="212.0" text-anchor="end" font-size="8.0" font-weight="800" fill="#0F172A" class="lf-fade" style="--motion-delay:1000ms">+0</text>
2078
+ <text x="128" y="234.0" text-anchor="end" font-size="9" font-weight="600" fill="#475569" class="lf-fade" style="--motion-delay:640ms">独立问题解决</text>
2079
+ <circle cx="140.0" cy="231.0" r="2.3" fill="#94A3B8" class="lf-pop" style="--motion-delay:600ms"><title>独立问题解决 — null evidence</title></circle>
2080
+ <circle cx="148.0" cy="231.0" r="2.3" fill="#94A3B8" class="lf-pop" style="--motion-delay:612ms"><title>独立问题解决 — null evidence</title></circle>
2081
+ <circle cx="156.0" cy="231.0" r="2.3" fill="#0F172A" class="lf-pop" style="--motion-delay:624ms"><title>独立问题解决 — negative evidence</title></circle>
2082
+ <text x="512" y="234.0" text-anchor="end" font-size="8.0" font-weight="800" fill="#0F172A" class="lf-fade" style="--motion-delay:1100ms">-1</text>
2083
+ <text x="128" y="256.0" text-anchor="end" font-size="9" font-weight="600" fill="#475569" class="lf-fade" style="--motion-delay:740ms">过度依赖</text>
2084
+ <circle cx="140.0" cy="253.0" r="2.3" fill="#0F172A" class="lf-pop" style="--motion-delay:700ms"><title>过度依赖 — negative evidence</title></circle>
2085
+ <text x="512" y="256.0" text-anchor="end" font-size="8.0" font-weight="800" fill="#0F172A" class="lf-fade" style="--motion-delay:1200ms">-1</text>
2086
+ </svg></div><figcaption class="lieflat-caption">基于 effect_direction 计数,全部数值来自 result.json。</figcaption><p class="lieflat-src">F5 Tick Rows · Outcomes.direction Counts</p></figure><figure class="lieflat-card" data-lieflat data-visual="lieflat-paired_rungs" data-chart-id="lieflat-paired-rungs.svg"><h3 class="lieflat-title">各结果类型的正负证据对照</h3><p class="lieflat-sub">左右两列分别汇总正向与负向证据条数</p><div class="lieflat-figure"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 541 300" width="100%" height="100%" role="img" aria-label="各结果类型的正负证据对照" style="background:#FAFAFA;">
2087
+ <text x="60" y="76" font-size="8" font-weight="700" fill="#2563EB" class="lf-fade" style="--motion-delay:40ms">正向</text>
2088
+ <text x="60" y="92" font-size="8" font-weight="700" fill="#0F172A" class="lf-fade" style="--motion-delay:80ms">负向</text>
2089
+ <rect x="73.0" y="230.3" width="13" height="5.5" rx="2.6" fill="#2563EB" class="lf-fade" style="--motion-delay:60ms"><title>知识获得 — positive</title></rect>
2090
+ <text x="90.0" y="254" text-anchor="middle" font-size="8.0" font-weight="600" fill="#475569" class="lf-fade" style="--motion-delay:100ms">知识获得</text>
2091
+ <text x="90.0" y="222.3" text-anchor="middle" font-size="8" font-weight="800" fill="#0F172A" class="lf-fade" style="--motion-delay:520ms">1 / 0</text>
2092
+ <text x="150.0" y="254" text-anchor="middle" font-size="8.0" font-weight="600" fill="#475569" class="lf-fade" style="--motion-delay:200ms">记忆保持</text>
2093
+ <text x="150.0" y="230.0" text-anchor="middle" font-size="8" font-weight="800" fill="#0F172A" class="lf-fade" style="--motion-delay:620ms">0 / 0</text>
2094
+ <rect x="214.0" y="230.3" width="13" height="5.5" rx="2.6" fill="#0F172A" class="lf-fade" style="--motion-delay:260ms"><title>独立问题解决 — negative</title></rect>
2095
+ <text x="210.0" y="254" text-anchor="middle" font-size="8.0" font-weight="600" fill="#475569" class="lf-fade" style="--motion-delay:300ms">独立问题解决</text>
2096
+ <text x="210.0" y="222.3" text-anchor="middle" font-size="8" font-weight="800" fill="#0F172A" class="lf-fade" style="--motion-delay:720ms">0 / 1</text>
2097
+ <rect x="253.0" y="230.3" width="13" height="5.5" rx="2.6" fill="#2563EB" class="lf-fade" style="--motion-delay:360ms"><title>完成时间 — positive</title></rect>
2098
+ <rect x="253.0" y="222.6" width="13" height="5.5" rx="2.6" fill="#2563EB" class="lf-fade" style="--motion-delay:372ms"><title>完成时间 — positive</title></rect>
2099
+ <text x="270.0" y="254" text-anchor="middle" font-size="8.0" font-weight="600" fill="#475569" class="lf-fade" style="--motion-delay:400ms">完成时间</text>
2100
+ <text x="270.0" y="214.6" text-anchor="middle" font-size="8" font-weight="800" fill="#0F172A" class="lf-fade" style="--motion-delay:820ms">2 / 0</text>
2101
+ <text x="330.0" y="254" text-anchor="middle" font-size="8.0" font-weight="600" fill="#475569" class="lf-fade" style="--motion-delay:500ms">代码质量</text>
2102
+ <text x="330.0" y="230.0" text-anchor="middle" font-size="8" font-weight="800" fill="#0F172A" class="lf-fade" style="--motion-delay:920ms">0 / 0</text>
2103
+ <rect x="373.0" y="230.3" width="13" height="5.5" rx="2.6" fill="#2563EB" class="lf-fade" style="--motion-delay:560ms"><title>作业成绩 — positive</title></rect>
2104
+ <rect x="373.0" y="222.6" width="13" height="5.5" rx="2.6" fill="#2563EB" class="lf-fade" style="--motion-delay:572ms"><title>作业成绩 — positive</title></rect>
2105
+ <text x="390.0" y="254" text-anchor="middle" font-size="8.0" font-weight="600" fill="#475569" class="lf-fade" style="--motion-delay:600ms">作业成绩</text>
2106
+ <text x="390.0" y="214.6" text-anchor="middle" font-size="8" font-weight="800" fill="#0F172A" class="lf-fade" style="--motion-delay:1020ms">2 / 0</text>
2107
+ <rect x="433.0" y="230.3" width="13" height="5.5" rx="2.6" fill="#2563EB" class="lf-fade" style="--motion-delay:660ms"><title>元认知 — positive</title></rect>
2108
+ <text x="450.0" y="254" text-anchor="middle" font-size="8.0" font-weight="600" fill="#475569" class="lf-fade" style="--motion-delay:700ms">元认知</text>
2109
+ <text x="450.0" y="222.3" text-anchor="middle" font-size="8" font-weight="800" fill="#0F172A" class="lf-fade" style="--motion-delay:1120ms">1 / 0</text>
2110
+ <rect x="514.0" y="230.3" width="13" height="5.5" rx="2.6" fill="#0F172A" class="lf-fade" style="--motion-delay:760ms"><title>过度依赖 — negative</title></rect>
2111
+ <text x="510.0" y="254" text-anchor="middle" font-size="8.0" font-weight="600" fill="#475569" class="lf-fade" style="--motion-delay:800ms">过度依赖</text>
2112
+ <text x="510.0" y="222.3" text-anchor="middle" font-size="8" font-weight="800" fill="#0F172A" class="lf-fade" style="--motion-delay:1220ms">0 / 1</text>
2113
+ <line x1="46" y1="238" x2="512" y2="238" stroke="#0F172A" stroke-width="1.2" class="lf-draw" style="--motion-delay:120ms"/>
2114
+ </svg></div><figcaption class="lieflat-caption">当同一结果同时存在正向与负向证据时,分列呈现避免相互抵消。</figcaption><p class="lieflat-src">F6 Paired Rungs · Outcomes.paired Counts</p></figure><figure class="lieflat-card" data-lieflat data-visual="lieflat-brand_spectrum" data-chart-id="lieflat-brand-spectrum.svg"><h3 class="lieflat-title">各结果类型的净效应倾向</h3><p class="lieflat-sub">位置 =(正向 − 负向)÷ 方向计数 · 中点为中性</p><div class="lieflat-figure"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 540 360" width="100%" height="100%" role="img" aria-label="各结果类型的净效应倾向" style="background:#FAFAFA;">
2115
+ <text x="138" y="62" text-anchor="end" font-size="9" font-weight="700" fill="#475569" class="lf-fade" style="--motion-delay:40ms">负向主导</text>
2116
+ <text x="412" y="62" font-size="9" font-weight="700" fill="#475569" class="lf-fade" style="--motion-delay:80ms">正向主导</text>
2117
+ <path d="M 400.0 88 C 400.0 111.0, 150.0 111.0, 150.0 134 C 150.0 157.0, 400.0 157.0, 400.0 180 C 400.0 203.0, 400.0 203.0, 400.0 226 C 400.0 249.0, 400.0 249.0, 400.0 272 C 400.0 295.0, 150.0 295.0, 150.0 318" fill="none" stroke="#F1F5F9" stroke-width="26" stroke-linecap="round" stroke-linejoin="round" opacity="0.95" class="lf-draw" style="--motion-delay:60ms"/>
2118
+ <line x1="150" y1="88" x2="400" y2="88" stroke="#CBD5E1" stroke-width="1" class="lf-fade" style="--motion-delay:60ms"/>
2119
+ <line x1="150" y1="84" x2="150" y2="92" stroke="#CBD5E1" stroke-width="1" class="lf-fade" style="--motion-delay:60ms"/>
2120
+ <line x1="400" y1="84" x2="400" y2="92" stroke="#CBD5E1" stroke-width="1" class="lf-fade" style="--motion-delay:60ms"/>
2121
+ <text x="134" y="91" text-anchor="end" font-size="8.5" font-weight="600" fill="#475569" class="lf-fade" style="--motion-delay:90ms">知识获得</text>
2122
+ <circle cx="400.0" cy="88" r="7.5" fill="#2563EB" stroke="#FAFAFA" stroke-width="1.8" class="lf-pop" style="--motion-delay:160ms"><title>知识获得 — 负向主导↔正向主导: +100% (pos 1 / neg 0 / null 0)</title></circle>
2123
+ <text x="400.0" y="77" fill="#0F172A" font-size="8" font-weight="800" text-anchor="middle" class="lf-fade" style="--motion-delay:220ms">+100%</text>
2124
+ <line x1="150" y1="134" x2="400" y2="134" stroke="#CBD5E1" stroke-width="1" class="lf-fade" style="--motion-delay:160ms"/>
2125
+ <line x1="150" y1="130" x2="150" y2="138" stroke="#CBD5E1" stroke-width="1" class="lf-fade" style="--motion-delay:160ms"/>
2126
+ <line x1="400" y1="130" x2="400" y2="138" stroke="#CBD5E1" stroke-width="1" class="lf-fade" style="--motion-delay:160ms"/>
2127
+ <text x="134" y="137" text-anchor="end" font-size="8.5" font-weight="600" fill="#475569" class="lf-fade" style="--motion-delay:190ms">独立问题解决</text>
2128
+ <circle cx="150.0" cy="134" r="7.5" fill="#0F172A" stroke="#FAFAFA" stroke-width="1.8" class="lf-pop" style="--motion-delay:260ms"><title>独立问题解决 — 负向主导↔正向主导: -100% (pos 0 / neg 1 / null 2)</title></circle>
2129
+ <text x="150.0" y="123" fill="#0F172A" font-size="8" font-weight="800" text-anchor="middle" class="lf-fade" style="--motion-delay:320ms">-100%</text>
2130
+ <line x1="150" y1="180" x2="400" y2="180" stroke="#CBD5E1" stroke-width="1" class="lf-fade" style="--motion-delay:260ms"/>
2131
+ <line x1="150" y1="176" x2="150" y2="184" stroke="#CBD5E1" stroke-width="1" class="lf-fade" style="--motion-delay:260ms"/>
2132
+ <line x1="400" y1="176" x2="400" y2="184" stroke="#CBD5E1" stroke-width="1" class="lf-fade" style="--motion-delay:260ms"/>
2133
+ <text x="134" y="183" text-anchor="end" font-size="8.5" font-weight="600" fill="#475569" class="lf-fade" style="--motion-delay:290ms">完成时间</text>
2134
+ <circle cx="400.0" cy="180" r="7.5" fill="#2563EB" stroke="#FAFAFA" stroke-width="1.8" class="lf-pop" style="--motion-delay:360ms"><title>完成时间 — 负向主导↔正向主导: +100% (pos 2 / neg 0 / null 0)</title></circle>
2135
+ <text x="400.0" y="169" fill="#0F172A" font-size="8" font-weight="800" text-anchor="middle" class="lf-fade" style="--motion-delay:420ms">+100%</text>
2136
+ <line x1="150" y1="226" x2="400" y2="226" stroke="#CBD5E1" stroke-width="1" class="lf-fade" style="--motion-delay:360ms"/>
2137
+ <line x1="150" y1="222" x2="150" y2="230" stroke="#CBD5E1" stroke-width="1" class="lf-fade" style="--motion-delay:360ms"/>
2138
+ <line x1="400" y1="222" x2="400" y2="230" stroke="#CBD5E1" stroke-width="1" class="lf-fade" style="--motion-delay:360ms"/>
2139
+ <text x="134" y="229" text-anchor="end" font-size="8.5" font-weight="600" fill="#475569" class="lf-fade" style="--motion-delay:390ms">作业成绩</text>
2140
+ <circle cx="400.0" cy="226" r="7.5" fill="#2563EB" stroke="#FAFAFA" stroke-width="1.8" class="lf-pop" style="--motion-delay:460ms"><title>作业成绩 — 负向主导↔正向主导: +100% (pos 2 / neg 0 / null 0)</title></circle>
2141
+ <text x="400.0" y="215" fill="#0F172A" font-size="8" font-weight="800" text-anchor="middle" class="lf-fade" style="--motion-delay:520ms">+100%</text>
2142
+ <line x1="150" y1="272" x2="400" y2="272" stroke="#CBD5E1" stroke-width="1" class="lf-fade" style="--motion-delay:460ms"/>
2143
+ <line x1="150" y1="268" x2="150" y2="276" stroke="#CBD5E1" stroke-width="1" class="lf-fade" style="--motion-delay:460ms"/>
2144
+ <line x1="400" y1="268" x2="400" y2="276" stroke="#CBD5E1" stroke-width="1" class="lf-fade" style="--motion-delay:460ms"/>
2145
+ <text x="134" y="275" text-anchor="end" font-size="8.5" font-weight="600" fill="#475569" class="lf-fade" style="--motion-delay:490ms">元认知</text>
2146
+ <circle cx="400.0" cy="272" r="7.5" fill="#2563EB" stroke="#FAFAFA" stroke-width="1.8" class="lf-pop" style="--motion-delay:560ms"><title>元认知 — 负向主导↔正向主导: +100% (pos 1 / neg 0 / null 0)</title></circle>
2147
+ <text x="400.0" y="261" fill="#0F172A" font-size="8" font-weight="800" text-anchor="middle" class="lf-fade" style="--motion-delay:620ms">+100%</text>
2148
+ <line x1="150" y1="318" x2="400" y2="318" stroke="#CBD5E1" stroke-width="1" class="lf-fade" style="--motion-delay:560ms"/>
2149
+ <line x1="150" y1="314" x2="150" y2="322" stroke="#CBD5E1" stroke-width="1" class="lf-fade" style="--motion-delay:560ms"/>
2150
+ <line x1="400" y1="314" x2="400" y2="322" stroke="#CBD5E1" stroke-width="1" class="lf-fade" style="--motion-delay:560ms"/>
2151
+ <text x="134" y="321" text-anchor="end" font-size="8.5" font-weight="600" fill="#475569" class="lf-fade" style="--motion-delay:590ms">过度依赖</text>
2152
+ <circle cx="150.0" cy="318" r="7.5" fill="#0F172A" stroke="#FAFAFA" stroke-width="1.8" class="lf-pop" style="--motion-delay:660ms"><title>过度依赖 — 负向主导↔正向主导: -100% (pos 0 / neg 1 / null 0)</title></circle>
2153
+ <text x="150.0" y="307" fill="#0F172A" font-size="8" font-weight="800" text-anchor="middle" class="lf-fade" style="--motion-delay:720ms">-100%</text>
2154
+ <text x="30" y="338" font-size="8" font-weight="600" fill="#94A3B8" class="lf-fade" style="--motion-delay:400ms">position = (positive − negative) ÷ total direction counts</text>
2155
+ </svg></div><figcaption class="lieflat-caption">双极展示各结果构念整体偏向支持还是反对。</figcaption><p class="lieflat-src">L7 Brand Spectrum · Outcomes.bipolar Axes</p></figure><figure class="lieflat-card" data-lieflat data-visual="lieflat-hundred_field" data-chart-id="lieflat-hundred-field.svg"><h3 class="lieflat-title">研究设计构成</h3><p class="lieflat-sub">每格 = 1 篇研究 · 显示证据来自哪些研究设计</p><div class="lieflat-figure"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 540 300" width="100%" height="100%" role="img" aria-label="研究设计构成" style="background:#FAFAFA;">
2156
+ <rect x="40.0" y="74.0" width="15.5" height="15.5" rx="3" fill="#0F172A" class="lf-pop" style="--motion-delay:0ms"><title>rct — 1 study</title></rect>
2157
+ <rect x="58.0" y="74.0" width="15.5" height="15.5" rx="3" fill="#0F172A" class="lf-pop" style="--motion-delay:12ms"><title>rct — 1 study</title></rect>
2158
+ <rect x="76.0" y="74.0" width="15.5" height="15.5" rx="3" fill="#0F172A" class="lf-pop" style="--motion-delay:24ms"><title>rct — 1 study</title></rect>
2159
+ <rect x="94.0" y="74.0" width="15.5" height="15.5" rx="3" fill="#0F172A" class="lf-pop" style="--motion-delay:36ms"><title>rct — 1 study</title></rect>
2160
+ <rect x="112.0" y="74.0" width="15.5" height="15.5" rx="3" fill="#0F172A" class="lf-pop" style="--motion-delay:48ms"><title>rct — 1 study</title></rect>
2161
+ <rect x="130.0" y="74.0" width="15.5" height="15.5" rx="3" fill="#0F172A" class="lf-pop" style="--motion-delay:60ms"><title>rct — 1 study</title></rect>
2162
+ <rect x="148.0" y="74.0" width="15.5" height="15.5" rx="3" fill="#0F172A" class="lf-pop" style="--motion-delay:72ms"><title>rct — 1 study</title></rect>
2163
+ <rect x="166.0" y="74.0" width="15.5" height="15.5" rx="3" fill="#2563EB" class="lf-pop" style="--motion-delay:84ms"><title>observational — 1 study</title></rect>
2164
+ <rect x="184.0" y="74.0" width="15.5" height="15.5" rx="3" fill="#2563EB" class="lf-pop" style="--motion-delay:96ms"><title>observational — 1 study</title></rect>
2165
+ <rect x="202.0" y="74.0" width="15.5" height="15.5" rx="3" fill="#2563EB" class="lf-pop" style="--motion-delay:108ms"><title>observational — 1 study</title></rect>
2166
+ <rect x="40.0" y="92.0" width="15.5" height="15.5" rx="3" fill="#059669" class="lf-pop" style="--motion-delay:120ms"><title>mixed_methods — 1 study</title></rect>
2167
+ <rect x="58.0" y="92.0" width="15.5" height="15.5" rx="3" fill="#94A3B8" class="lf-pop" style="--motion-delay:132ms"><title>qualitative — 1 study</title></rect>
2168
+ <text x="30" y="270" font-size="8" font-weight="600" fill="#94A3B8" class="lf-fade" style="--motion-delay:400ms">每格 = 1 篇研究</text>
2169
+ </svg></div><figcaption class="lieflat-caption">当证据包含多种研究设计时,构成图比表格更快暴露设计偏斜。</figcaption><p class="lieflat-src">L14 Hundred Field · Evidence.study Type Composition</p></figure></div></div></section><section class="brief-block brief-sources" id="brief-sources-zh"><header class="brief-block-header"><h2>关键来源</h2><p>摘要页只列最关键的来源;完整溯源在完整报告中展开。</p></header><div class="brief-block-body"><div class="brief-source-grid"><article class="brief-source"><code>S-2023-kazemitabaar</code><h3><a href="https://dl.acm.org/doi/10.1145/3544548.3580919">Studying the effect of AI Code Generators on Supporting Novice Learners in Introductory Programming</a></h3><p>T1 DOI 可验证论文 · 2023</p></article><article class="brief-source"><code>S-2025-bastani</code><h3><a href="https://www.pnas.org/doi/10.1073/pnas.2422633122">Generative AI without guardrails can harm learning: Evidence from high school mathematics</a></h3><p>T1 DOI 可验证论文 · 2025</p></article><article class="brief-source"><code>S-2024-marzuki</code><h3><a href="https://link.springer.com/article/10.1186/s40561-024-00295-9">Impact of ChatGPT on ESL students&#x27; academic writing skills</a></h3><p>T1 DOI 可验证论文 · 2024</p></article><article class="brief-source"><code>S-2023-peng</code><h3><a href="https://doi.org/10.48550/arXiv.2302.06590">The Impact of AI on Developer Productivity: Evidence from GitHub Copilot</a></h3><p>Tier2 Academic Database · 2023</p></article></div><p class="brief-source-more">完整报告中还有 4 个来源可展开追溯。</p></div></section></div></div>
2170
+ <div class="report-page report-page-full" data-report-page="full" hidden>
2171
+ <div class="full-report-intro"><h2>完整报告</h2><p>结论前置:全部可追溯证据与方法学细节都在这里,关键论证位置穿插有意义的可视化,每个数字都能回查到 result.json。</p></div>
2172
+ <div class="full-report-layout"><aside class="full-report-toc" aria-label="目录"><div class="toc-head"><strong>目录</strong><button type="button" class="toc-collapse" aria-expanded="true" data-label-collapse="收起目录" data-label-expand="展开目录">收起目录</button></div><nav><a href="#full-01-decision" data-toc-target="full-01-decision" data-chapter-key="decision">01 结论、裁决与研究边界</a><a href="#full-02-evidence" data-toc-target="full-02-evidence" data-chapter-key="evidence">02 关键证据与结果分离</a><a href="#full-03-quality" data-toc-target="full-03-quality" data-chapter-key="quality">03 证据可信度、反证与方法审计</a><a href="#full-04-action" data-toc-target="full-04-action" data-chapter-key="action">04 适用范围与教学行动</a><a href="#full-05-evaluation" data-toc-target="full-05-evaluation" data-chapter-key="evaluation">05 试点设计、评估与停止条件</a><a href="#full-06-sources" data-toc-target="full-06-sources" data-chapter-key="sources">06 来源、溯源与附录</a></nav></aside><main class="full-report-content"><section id="full-01-decision" class="full-chapter" data-full-chapter><header class="full-chapter-header"><h2>01 结论、裁决与研究边界</h2><p class="full-chapter-lead">先明确最终裁决与研究边界,再解释为什么。</p></header><div class="full-chapter-body">
2173
+ <div class="decision-hero pilot" data-visual="decision-hero">
2174
+ <div class="hero-decision">
2175
+ <span class="eyebrow">建议决策</span>
2176
+ <strong class="decision-value">试点验证</strong>
2177
+ <span class="confidence-badge">置信度 · 中</span>
2178
+ </div>
2179
+ <p class="hero-rationale">任务表现的正面证据 + 有据可查的无护栏风险 + 混合的质量/可用性信号 + 大学层面学习证据缺失 → 有界、护栏化、带评估的试点,而非全面采用。</p>
2180
+ <div class="hero-insights">
2181
+ <article class="hero-insight support"><span>最强支持结论</span><p class="hero-insight-text">AI 编程助手在训练期稳定提升练习效率:69 名新手的随机对照中完成率 1.15 倍、用时 0.57 倍。</p></article>
2182
+ <article class="hero-insight uncertain"><span>关键不确定性 / 反例</span><p class="hero-insight-text">缺少大学层面的直接学习证据;唯一大规模试验显示,无护栏使用 GPT-4 的学生独立考试成绩下降 17%。</p></article>
2183
+ <article class="hero-insight risk"><span>主要风险</span><p class="hero-insight-text">无护栏使用会抬高练习表现却压低独立考试表现,而学习者往往意识不到这一落差。</p></article>
2184
+ <article class="hero-insight next"><span>下一步</span><p class="hero-insight-text">开展分阶段 CS1 试点:给提示而非答案、每周实验课使用、并以无 AI 迁移考试作为可叫停的验收条件。</p></article>
2185
+ </div>
2186
+ <p class="hero-provenance"><span>证据 / 来源</span> · 12 / 8</p>
2187
+ </div><div class="scope-grid"><article class="scope-card"><h3>研究问题</h3><p class="scope-text">我们准备在大学一年级 C 语言课程中允许学生使用生成式 AI 编程助手。它到底会不会提高学习效果?应该怎样引入?</p></article><article class="scope-card"><h3>目标学习者</h3><p class="scope-text">教育阶段:大学一年级;专业:计算机科学与技术;先验知识:首次程序设计课程,无文本编程基础;学习者特征:混合能力大班(60 人)</p></article><article class="scope-card"><h3>课程情境</h3><p class="scope-text">课程:C 语言程序设计;课程类型:讲授 + 实验课;课程周期:16 周(一学期)</p></article><article class="scope-card"><h3>AI 干预</h3><p class="scope-text">干预方式:讲授 + 实验练习;AI 工具:生成式 AI 编程助手;允许使用:设计中(待证据评审);使用频率:每周实验课;干预周期:一学期</p></article><article class="scope-card"><h3>比较条件</h3><p class="scope-text">No AI Coding Assistant Control</p></article><article class="scope-card"><h3>结果构念</h3><p class="scope-text">主要结果:独立问题解决、代码质量;次要结果:完成时间、记忆保持、知识获得;风险结果:AI 依赖、过度依赖、迁移下降</p></article><article class="scope-card"><h3>研究范围</h3><p class="scope-text">时间范围:2021 2026;地域:Worldwide;研究设计:随机对照试验、准实验、观察性研究</p></article><article class="scope-card"><h3>决策成功条件</h3><p class="scope-text">independent problem solving and code quality improve (or do not decline) while AI dependency risk stays controlled; evidence base supports a bounded pilot.</p></article></div></div></section><section id="full-02-evidence" class="full-chapter" data-full-chapter><header class="full-chapter-header"><h2>02 关键证据与结果分离</h2><p class="full-chapter-lead">把任务表现、真实学习、保持与风险放在同一证据地图中,但不混为一谈。</p></header><div class="full-chapter-body"><div class="retrieval-grid"><article><h3>纳入标准</h3><ul><li>Studies Of Generative AI Coding Tools In Learning To Program</li><li>Outcomes Measuring Learning Not Only Task Speed</li><li>University Or Novice Programming Populations</li></ul></article><article><h3>排除标准</h3><ul><li>Practitioner Anecdotes Without Data</li><li>Industry Professional Populations Only</li></ul></article></div><div class="retrieval-coverage"><h3>证据来源覆盖</h3><p><code>S-2023-kazemitabaar</code> <code>S-2025-bastani</code> <code>S-2024-marzuki</code> <code>S-2023-peng</code> <code>S-2023-yetistiren</code> <code>S-2022-finnie-ansley</code> <code>S-2023-explanations-compare</code> <code>S-2022-vaithilingam</code></p><p class="retrieval-note">当前报告只展示 result 中真实存在的检索与来源信息;没有流程计数时不伪造 PRISMA / funnel 数字。</p></div><div class="outcome-separation" data-visual="outcome-separation"><div class="visual-heading"><h3>结果分离 · 任务表现 ≠ 学习效果</h3><p>将不同结果类型分开裁决,避免把训练时更快、更高分直接等同于真正学会。</p><p class="semantic-note">效应方向来自 evidence.effect_direction;“支持某个主张”不等于“结果是正向”。</p></div><div class="outcome-groups"><article class="outcome-group outcome-task"><h3>任务 / 近端表现</h3><ul><li><strong>完成时间</strong><span class="outcome-states"><span class="dir pos">正向效应 2</span></span></li><li><strong>代码质量</strong><span class="outcome-states"><span class="dir neu">零效应 1</span></span></li><li><strong>作业成绩</strong><span class="outcome-states"><span class="dir pos">正向效应 2</span></span></li></ul></article><article class="outcome-group outcome-learning"><h3>学习 / 保持 / 迁移</h3><ul><li><strong>知识获得</strong><span class="outcome-states"><span class="dir pos">正向效应 1</span></span></li><li><strong>记忆保持</strong><span class="outcome-states"><span class="dir neu">零效应 1</span></span></li><li><strong>独立问题解决</strong><span class="outcome-states"><span class="dir neg">负向效应 1</span><span class="dir neu">零效应 2</span></span></li></ul></article><article class="outcome-group outcome-risk"><h3>风险 / 依赖</h3><ul><li><strong>过度依赖</strong><span class="outcome-states"><span class="dir neg">负向效应 1</span></span></li></ul></article><article class="outcome-group outcome-other"><h3>其他结果</h3><ul><li><strong>元认知</strong><span class="outcome-states"><span class="dir pos">正向效应 1</span></span></li></ul></article></div></div><div class='table-wrap outcome-table'><table class='data-table'><thead><tr><th>结果类型</th><th>正向效应</th><th>负向效应</th><th>零效应</th><th>证据</th></tr></thead><tbody><tr><td><strong>知识获得</strong><span class='raw-tag' title='原始标识'>knowledge_gain</span></td><td class='num'>1</td><td class='num'>0</td><td class='num'>0</td><td><code>E-007</code> </td></tr><tr><td><strong>记忆保持</strong><span class='raw-tag' title='原始标识'>retention</span></td><td class='num'>0</td><td class='num'>0</td><td class='num'>1</td><td><code>E-003</code> </td></tr><tr><td><strong>独立问题解决</strong><span class='raw-tag' title='原始标识'>independent_problem_solving</span></td><td class='num'>0</td><td class='num'>1</td><td class='num'>2</td><td><code>E-002</code> <code>E-004</code> <code>E-005</code> </td></tr><tr><td><strong>完成时间</strong><span class='raw-tag' title='原始标识'>completion_time</span></td><td class='num'>2</td><td class='num'>0</td><td class='num'>0</td><td><code>E-001</code> <code>E-008</code> </td></tr><tr><td><strong>代码质量</strong><span class='raw-tag' title='原始标识'>code_quality</span></td><td class='num'>0</td><td class='num'>0</td><td class='num'>1</td><td><code>E-009</code> </td></tr><tr><td><strong>作业成绩</strong><span class='raw-tag' title='原始标识'>assignment_score</span></td><td class='num'>2</td><td class='num'>0</td><td class='num'>0</td><td><code>E-006</code> <code>E-010</code> </td></tr><tr><td><strong>元认知</strong><span class='raw-tag' title='原始标识'>metacognition</span></td><td class='num'>1</td><td class='num'>0</td><td class='num'>0</td><td><code>E-011</code> </td></tr><tr><td><strong>过度依赖</strong><span class='raw-tag' title='原始标识'>over_reliance</span></td><td class='num'>0</td><td class='num'>1</td><td class='num'>0</td><td><code>E-012</code> </td></tr></tbody></table></div><div class="visual-surface" data-visual="outcome-evidence-balance"><svg viewBox="0 0 720 300" xmlns="http://www.w3.org/2000/svg" role="img" aria-label="各结果类型证据效应分布"><title>各结果类型证据效应分布</title><desc>各结果类型的正向 / 负向 / 零效应证据条数(基于 effect_direction,不等同于 Claim 是否被支持)。</desc><rect x="0" y="0" width="720" height="300" fill="#FFFFFF"/><line x1="415.0" y1="46" x2="415.0" y2="182" stroke="#999" stroke-width="1" stroke-dasharray="3,3"/><text x="142" y="58.0" text-anchor="end" font-size="11" fill="#333">知识获得</text><rect x="415.0" y="49.8" width="132.5" height="9.4" fill="#5E8A6A"/><text x="481.2" y="58.0" text-anchor="middle" font-size="9" fill="#fff">1</text><text x="142" y="75.0" text-anchor="end" font-size="11" fill="#333">记忆保持</text><text x="142" y="92.0" text-anchor="end" font-size="11" fill="#333">独立问题解决</text><rect x="282.5" y="83.8" width="132.5" height="9.4" fill="#A85B53"/><text x="348.8" y="92.0" text-anchor="middle" font-size="9" fill="#fff">-1</text><text x="142" y="109.0" text-anchor="end" font-size="11" fill="#333">完成时间</text><rect x="415.0" y="100.8" width="265.0" height="9.4" fill="#5E8A6A"/><text x="547.5" y="109.0" text-anchor="middle" font-size="9" fill="#fff">2</text><text x="142" y="126.0" text-anchor="end" font-size="11" fill="#333">代码质量</text><text x="142" y="143.0" text-anchor="end" font-size="11" fill="#333">作业成绩</text><rect x="415.0" y="134.8" width="265.0" height="9.4" fill="#5E8A6A"/><text x="547.5" y="143.0" text-anchor="middle" font-size="9" fill="#fff">2</text><text x="142" y="160.0" text-anchor="end" font-size="11" fill="#333">元认知</text><rect x="415.0" y="151.8" width="132.5" height="9.4" fill="#5E8A6A"/><text x="481.2" y="160.0" text-anchor="middle" font-size="9" fill="#fff">1</text><text x="142" y="177.0" text-anchor="end" font-size="11" fill="#333">过度依赖</text><rect x="282.5" y="168.8" width="132.5" height="9.4" fill="#A85B53"/><text x="348.8" y="177.0" text-anchor="middle" font-size="9" fill="#fff">-1</text><rect x="415.0" y="206.1" width="8.0" height="6" fill="#C99A4A"/><rect x="415.0" y="214.9" width="8.0" height="6" fill="#C99A4A"/><rect x="415.0" y="232.4" width="8.0" height="6" fill="#C99A4A"/><rect x="150" y="14" width="10" height="10" fill="#5E8A6A"/><text x="164" y="23" font-size="10" fill="#333">正向效应</text><rect x="226" y="14" width="10" height="10" fill="#A85B53"/><text x="240" y="23" font-size="10" fill="#333">负向效应</text><rect x="302" y="14" width="10" height="10" fill="#C99A4A"/><text x="316" y="23" font-size="10" fill="#333">零效应</text></svg><p class="chart-interpretation"><strong>这意味着什么:</strong>各 Outcome 的正向 / 负向 / 零效应证据条数对比。这里展示的是 effect_direction,不是“这条证据是否支持某个主张”。</p></div><div id="chart-outcome-zh" class="chart-mount" aria-label="结果证据概览"></div><figure class="academic-figure" data-visual="outcome-evidence-balance"><svg viewBox="0 0 923 300" xmlns="http://www.w3.org/2000/svg" role="img" aria-label="各结果类型效应方向分布(出版级学术图)"><title>各结果类型效应方向分布(出版级学术图)</title><desc>各结果类型的正向 / 负向 / 零效应证据条数;计数轴整数刻度,不随主题变化。来源:EduEvidence result.json。</desc><rect width="923" height="300" fill="#FFFFFF"/><line x1="70" y1="250" x2="650" y2="250" stroke="#333" stroke-width="1"/><text x="106.2" y="266" text-anchor="middle" font-size="10" fill="#333">知识获得</text><rect x="88.1" y="150.0" width="18.1" height="100.0" fill="#1F4E5F"/><text x="97.2" y="147.0" text-anchor="middle" font-size="9" fill="#333">1</text><rect x="106.2" y="250.0" width="18.1" height="1.0" fill="#5B8C9E"/><rect x="124.4" y="250.0" width="18.1" height="1.0" fill="#9E4B3A"/><text x="178.8" y="266" text-anchor="middle" font-size="10" fill="#333">记忆保持</text><rect x="160.6" y="250.0" width="18.1" height="1.0" fill="#1F4E5F"/><rect x="178.8" y="250.0" width="18.1" height="1.0" fill="#5B8C9E"/><rect x="196.9" y="150.0" width="18.1" height="100.0" fill="#9E4B3A"/><text x="205.9" y="147.0" text-anchor="middle" font-size="9" fill="#333">1</text><text x="251.2" y="266" text-anchor="middle" font-size="10" fill="#333">独立问题解决</text><rect x="233.1" y="250.0" width="18.1" height="1.0" fill="#1F4E5F"/><rect x="251.2" y="150.0" width="18.1" height="100.0" fill="#5B8C9E"/><text x="260.3" y="147.0" text-anchor="middle" font-size="9" fill="#333">1</text><rect x="269.4" y="50.0" width="18.1" height="200.0" fill="#9E4B3A"/><text x="278.4" y="47.0" text-anchor="middle" font-size="9" fill="#333">2</text><text x="323.8" y="266" text-anchor="middle" font-size="10" fill="#333">完成时间</text><rect x="305.6" y="50.0" width="18.1" height="200.0" fill="#1F4E5F"/><text x="314.7" y="47.0" text-anchor="middle" font-size="9" fill="#333">2</text><rect x="323.8" y="250.0" width="18.1" height="1.0" fill="#5B8C9E"/><rect x="341.9" y="250.0" width="18.1" height="1.0" fill="#9E4B3A"/><text x="396.2" y="266" text-anchor="middle" font-size="10" fill="#333">代码质量</text><rect x="378.1" y="250.0" width="18.1" height="1.0" fill="#1F4E5F"/><rect x="396.2" y="250.0" width="18.1" height="1.0" fill="#5B8C9E"/><rect x="414.4" y="150.0" width="18.1" height="100.0" fill="#9E4B3A"/><text x="423.4" y="147.0" text-anchor="middle" font-size="9" fill="#333">1</text><text x="468.8" y="266" text-anchor="middle" font-size="10" fill="#333">作业成绩</text><rect x="450.6" y="50.0" width="18.1" height="200.0" fill="#1F4E5F"/><text x="459.7" y="47.0" text-anchor="middle" font-size="9" fill="#333">2</text><rect x="468.8" y="250.0" width="18.1" height="1.0" fill="#5B8C9E"/><rect x="486.9" y="250.0" width="18.1" height="1.0" fill="#9E4B3A"/><text x="541.2" y="266" text-anchor="middle" font-size="10" fill="#333">元认知</text><rect x="523.1" y="150.0" width="18.1" height="100.0" fill="#1F4E5F"/><text x="532.2" y="147.0" text-anchor="middle" font-size="9" fill="#333">1</text><rect x="541.2" y="250.0" width="18.1" height="1.0" fill="#5B8C9E"/><rect x="559.4" y="250.0" width="18.1" height="1.0" fill="#9E4B3A"/><text x="613.8" y="266" text-anchor="middle" font-size="10" fill="#333">过度依赖</text><rect x="595.6" y="250.0" width="18.1" height="1.0" fill="#1F4E5F"/><rect x="613.8" y="150.0" width="18.1" height="100.0" fill="#5B8C9E"/><text x="622.8" y="147.0" text-anchor="middle" font-size="9" fill="#333">1</text><rect x="631.9" y="250.0" width="18.1" height="1.0" fill="#9E4B3A"/><line x1="65" y1="250.0" x2="70" y2="250.0" stroke="#999"/><text x="62" y="253.0" text-anchor="end" font-size="9" fill="#666">0</text><line x1="65" y1="150.0" x2="70" y2="150.0" stroke="#999"/><text x="62" y="153.0" text-anchor="end" font-size="9" fill="#666">1</text><line x1="65" y1="50.0" x2="70" y2="50.0" stroke="#999"/><text x="62" y="53.0" text-anchor="end" font-size="9" fill="#666">2</text><text x="360.0" y="30" text-anchor="middle" font-size="14" font-weight="700" fill="#111">各结果类型的效应方向分布</text><rect x="70" y="8" width="10" height="10" fill="#1F4E5F"/><text x="84" y="17" font-size="10" fill="#333">正向效应</text><rect x="146" y="8" width="10" height="10" fill="#5B8C9E"/><text x="160" y="17" font-size="10" fill="#333">负向效应</text><rect x="222" y="8" width="10" height="10" fill="#9E4B3A"/><text x="236" y="17" font-size="10" fill="#333">零效应</text><text x="20" y="290" font-size="11" fill="#333333" font-style="italic">图 1. 各结果类型的正向 / 负向 / 零效应证据条数(基于 effect_direction;出版级学术图,不随主题变化)。来源:EduEvidence result.json。</text></svg><figcaption>图 1. 各结果类型的正向 / 负向 / 零效应证据数量(基于 effect_direction,不等同于 Claim 是否被支持)。</figcaption></figure><div class='matrix-controls'><div class='matrix-tools'><input id='matrix-search-full-zh' type='search' placeholder='搜索证据…' aria-label='筛选 / 搜索证据'><select id='matrix-direction-full-zh' aria-label='按效应方向筛选'><option value=''>全部效应</option><option value='positive'>正向效应</option><option value='negative'>负向效应</option><option value='null'>零效应</option></select><select id='matrix-outcome-full-zh' aria-label='按结果类型筛选'><option value=''>全部结果</option><option value='assignment_score'>作业成绩</option><option value='code_quality'>代码质量</option><option value='completion_time'>完成时间</option><option value='independent_problem_solving'>独立问题解决</option><option value='knowledge_gain'>知识获得</option><option value='metacognition'>元认知</option><option value='over_reliance'>过度依赖</option><option value='retention'>记忆保持</option></select></div></div><div class='table-wrap matrix-wrap'><table id='evidence-matrix-full-zh' class='data-table evidence-matrix'><thead><tr><th>ID</th><th>结果</th><th>效应</th><th>质量</th><th>主张</th><th>来源</th></tr></thead><tbody><tr data-effect="positive" data-direction="positive" data-outcome="completion_time" data-search="e-001 study-kazemitabaar-2023 smpl-kazemitabaar-2023-n69 studying the effect of ai code generators on supporting novice learners in introductory programming ai 编程助手在训练期间显著提升任务完成速度与完成率(完成率 1.15 倍、用时 0.57 倍、正确率 1.8 倍)。 69 名 10-17 岁编程新手,此前无文本编程经验 三臂 rct:gpt base(无护栏标准 chatgpt 式界面)与 gpt tutor(护栏版,教师设计提示、不给直接答案)用于数学练习 对照组(无 ai 传统教学) positive s-2023-kazemitabaar"><td><code>E-001</code></td><td><strong>完成时间</strong></td><td><span class="dir pos">正向效应</span><span class="relation-note">与主张关系: 支持</span></td><td><div class="quality-cell"><span class="num">9</span><span class="quality-meter" aria-hidden="true"><i style="width:90%"></i></span></div></td><td class="claim-cell"><p>AI 编程助手在训练期间显著提升任务完成速度与完成率(完成率 1.15 倍、用时 0.57 倍、正确率 1.8 倍)。</p><details class="matrix-row-detail"><summary>查看完整证据</summary><dl class="evidence-detail-grid"><div class="evidence-detail-row"><dt>研究 ID</dt><dd>STUDY-KAZEMITABAAR-2023</dd></div><div class="evidence-detail-row"><dt>样本 ID</dt><dd>SMPL-KAZEMITABAAR-2023-N69</dd></div><div class="evidence-detail-row"><dt>研究标题</dt><dd>Studying the effect of AI Code Generators on Supporting Novice Learners in Introductory Programming</dd></div><div class="evidence-detail-row"><dt>来源标题</dt><dd>Studying the effect of AI Code Generators on Supporting Novice Learners in Introductory Programming</dd></div><div class="evidence-detail-row"><dt>年份</dt><dd>2023</dd></div><div class="evidence-detail-row"><dt>研究设计</dt><dd>随机对照试验</dd></div><div class="evidence-detail-row"><dt>教育阶段</dt><dd>K-12 Ages 10 17</dd></div><div class="evidence-detail-row"><dt>研究人群</dt><dd>69 名 10-17 岁编程新手,此前无文本编程经验</dd></div><div class="evidence-detail-row"><dt>样本量</dt><dd>69</dd></div><div class="evidence-detail-row"><dt>干预</dt><dd>三臂 RCT:GPT Base(无护栏标准 ChatGPT 式界面)与 GPT Tutor(护栏版,教师设计提示、不给直接答案)用于数学练习</dd></div><div class="evidence-detail-row"><dt>对照 / 比较条件</dt><dd>对照组(无 AI 传统教学)</dd></div><div class="evidence-detail-row"><dt>结果测量</dt><dd>Code Authoring Task Progress And Time</dd></div><div class="evidence-detail-row"><dt>效应 / 结果</dt><dd>1.15x completion rate, 0.57x time, 1.8x correctness</dd></div><div class="evidence-detail-row"><dt>效应方向</dt><dd>正向效应</dd></div><div class="evidence-detail-row"><dt>与主张关系</dt><dd>支持</dd></div><div class="evidence-detail-row"><dt>干预时长</dt><dd>3 Weeks Training</dd></div><div class="evidence-detail-row"><dt>方法</dt><dd>controlled experiment with random assignment, immediate post-test and 1-week retention test</dd></div><div class="evidence-detail-row"><dt>优势</dt><dd>randomized_controlled_design;immediate_post_test_and_retention_test;code_modification_task_guard</dd></div><div class="evidence-detail-row"><dt>局限</dt><dd>non_university_population_ages_10_17;small_sample_69;self-paced environment differs from classroom</dd></div><div class="evidence-detail-row"><dt>混杂因素</dt><dd>Prior Programming Competency Interaction</dd></div><div class="evidence-detail-row"><dt>质量维度</dt><dd>D1 研究设计=2 · D2 样本质量=2 · D3 测量效度=2 · D4 时间强度=2 · D5 直接性=1</dd></div><div class="evidence-detail-row"><dt>质量分</dt><dd>9.0</dd></div><div class="evidence-detail-row"><dt>证据等级</dt><dd>strong</dd></div><div class="evidence-detail-row"><dt>适用性</dt><dd>learner_match=partial_novice_programmers_but_younger · subject_match=introductory_programming · tool_match=codex_like_generative_ai · scope=task_performance_during_training</dd></div><div class="evidence-detail-row"><dt>置信度</dt><dd>0.7</dd></div><div class="evidence-detail-row"><dt>证据状态</dt><dd>已支持</dd></div><div class="evidence-detail-row"><dt>完整主张</dt><dd>AI 编程助手在训练期间显著提升任务完成速度与完成率(完成率 1.15 倍、用时 0.57 倍、正确率 1.8 倍)。</dd></div><div class="evidence-detail-row"><dt>来源位置</dt><dd>https://dl.acm.org/doi/10.1145/3544548.3580919</dd></div><div class="evidence-detail-row"><dt>可验证链接</dt><dd><a href="https://dl.acm.org/doi/10.1145/3544548.3580919">https://dl.acm.org/doi/10.1145/3544548.3580919</a></dd></div></dl></details></td><td><a class="source-link" href="https://dl.acm.org/doi/10.1145/3544548.3580919" title="Studying the effect of AI Code Generators on Supporting Novice Learners in Introductory Programming"><code>S-2023-kazemitabaar</code></a></td></tr><tr data-effect="null" data-direction="null" data-outcome="independent_problem_solving" data-search="e-002 study-kazemitabaar-2023 smpl-kazemitabaar-2023-n69 studying the effect of ai code generators on supporting novice learners in introductory programming 可使用 ai 生成代码并未降低学生在人工代码修改任务上的表现(组间差异不显著)。 69 名 10-17 岁编程新手,此前无文本编程经验 无护栏 gpt base(类标准 chatgpt 界面)课内练习;移除访问后参加独立考试 对照组(从未使用 ai) null s-2023-kazemitabaar"><td><code>E-002</code></td><td><strong>独立问题解决</strong></td><td><span class="dir neu">零效应</span><span class="relation-note">与主张关系: 中性</span></td><td><div class="quality-cell"><span class="num">7</span><span class="quality-meter" aria-hidden="true"><i style="width:70%"></i></span></div></td><td class="claim-cell"><p>可使用 AI 生成代码并未降低学生在人工代码修改任务上的表现(组间差异不显著)。</p><details class="matrix-row-detail"><summary>查看完整证据</summary><dl class="evidence-detail-grid"><div class="evidence-detail-row"><dt>研究 ID</dt><dd>STUDY-KAZEMITABAAR-2023</dd></div><div class="evidence-detail-row"><dt>样本 ID</dt><dd>SMPL-KAZEMITABAAR-2023-N69</dd></div><div class="evidence-detail-row"><dt>研究标题</dt><dd>Studying the effect of AI Code Generators on Supporting Novice Learners in Introductory Programming</dd></div><div class="evidence-detail-row"><dt>来源标题</dt><dd>Studying the effect of AI Code Generators on Supporting Novice Learners in Introductory Programming</dd></div><div class="evidence-detail-row"><dt>年份</dt><dd>2023</dd></div><div class="evidence-detail-row"><dt>研究设计</dt><dd>随机对照试验</dd></div><div class="evidence-detail-row"><dt>教育阶段</dt><dd>K-12 Ages 10 17</dd></div><div class="evidence-detail-row"><dt>研究人群</dt><dd>69 名 10-17 岁编程新手,此前无文本编程经验</dd></div><div class="evidence-detail-row"><dt>样本量</dt><dd>69</dd></div><div class="evidence-detail-row"><dt>干预</dt><dd>无护栏 GPT Base(类标准 ChatGPT 界面)课内练习;移除访问后参加独立考试</dd></div><div class="evidence-detail-row"><dt>对照 / 比较条件</dt><dd>对照组(从未使用 AI)</dd></div><div class="evidence-detail-row"><dt>结果测量</dt><dd>manual code-modification tasks during training</dd></div><div class="evidence-detail-row"><dt>效应 / 结果</dt><dd>no significant difference between groups</dd></div><div class="evidence-detail-row"><dt>效应方向</dt><dd>零效应</dd></div><div class="evidence-detail-row"><dt>与主张关系</dt><dd>中性</dd></div><div class="evidence-detail-row"><dt>干预时长</dt><dd>3 Weeks Training</dd></div><div class="evidence-detail-row"><dt>方法</dt><dd>controlled experiment, code-modification task followed each code-authoring task</dd></div><div class="evidence-detail-row"><dt>优势</dt><dd>direct_test_of_transfer-adjacent_skill;same_session_measurement</dd></div><div class="evidence-detail-row"><dt>局限</dt><dd>code modification is not full independent problem solving;non_university population</dd></div><div class="evidence-detail-row"><dt>混杂因素</dt><dd>Practice Effect</dd></div><div class="evidence-detail-row"><dt>质量维度</dt><dd>D1 研究设计=2 · D2 样本质量=2 · D3 测量效度=1 · D4 时间强度=1 · D5 直接性=1</dd></div><div class="evidence-detail-row"><dt>质量分</dt><dd>7.0</dd></div><div class="evidence-detail-row"><dt>证据等级</dt><dd>moderate</dd></div><div class="evidence-detail-row"><dt>适用性</dt><dd>learner_match=partial · subject_match=introductory_programming · tool_match=codex · scope=short-term manual code modification</dd></div><div class="evidence-detail-row"><dt>置信度</dt><dd>0.5</dd></div><div class="evidence-detail-row"><dt>证据状态</dt><dd>已支持</dd></div><div class="evidence-detail-row"><dt>完整主张</dt><dd>可使用 AI 生成代码并未降低学生在人工代码修改任务上的表现(组间差异不显著)。</dd></div><div class="evidence-detail-row"><dt>来源位置</dt><dd>https://dl.acm.org/doi/10.1145/3544548.3580919</dd></div><div class="evidence-detail-row"><dt>可验证链接</dt><dd><a href="https://dl.acm.org/doi/10.1145/3544548.3580919">https://dl.acm.org/doi/10.1145/3544548.3580919</a></dd></div></dl></details></td><td><a class="source-link" href="https://dl.acm.org/doi/10.1145/3544548.3580919" title="Studying the effect of AI Code Generators on Supporting Novice Learners in Introductory Programming"><code>S-2023-kazemitabaar</code></a></td></tr><tr data-effect="null" data-direction="null" data-outcome="retention" data-search="e-003 study-kazemitabaar-2023 smpl-kazemitabaar-2023-n69 studying the effect of ai code generators on supporting novice learners in introductory programming 训练结束一周后,codex 组与基线组的保持性差异未达统计显著(codex 组略优)。 69 名 10-17 岁编程新手,此前无文本编程经验 gpt tutor(护栏版:教师设计提示、不给直接答案)用于数学练习 对照组(无 ai)与 gpt base(无护栏)组 null s-2023-kazemitabaar"><td><code>E-003</code></td><td><strong>记忆保持</strong></td><td><span class="dir neu">零效应</span><span class="relation-note">与主张关系: 中性</span></td><td><div class="quality-cell"><span class="num">9</span><span class="quality-meter" aria-hidden="true"><i style="width:90%"></i></span></div></td><td class="claim-cell"><p>训练结束一周后,Codex 组与基线组的保持性差异未达统计显著(Codex 组略优)。</p><details class="matrix-row-detail"><summary>查看完整证据</summary><dl class="evidence-detail-grid"><div class="evidence-detail-row"><dt>研究 ID</dt><dd>STUDY-KAZEMITABAAR-2023</dd></div><div class="evidence-detail-row"><dt>样本 ID</dt><dd>SMPL-KAZEMITABAAR-2023-N69</dd></div><div class="evidence-detail-row"><dt>研究标题</dt><dd>Studying the effect of AI Code Generators on Supporting Novice Learners in Introductory Programming</dd></div><div class="evidence-detail-row"><dt>来源标题</dt><dd>Studying the effect of AI Code Generators on Supporting Novice Learners in Introductory Programming</dd></div><div class="evidence-detail-row"><dt>年份</dt><dd>2023</dd></div><div class="evidence-detail-row"><dt>研究设计</dt><dd>随机对照试验</dd></div><div class="evidence-detail-row"><dt>教育阶段</dt><dd>K-12 Ages 10 17</dd></div><div class="evidence-detail-row"><dt>研究人群</dt><dd>69 名 10-17 岁编程新手,此前无文本编程经验</dd></div><div class="evidence-detail-row"><dt>样本量</dt><dd>69</dd></div><div class="evidence-detail-row"><dt>干预</dt><dd>GPT Tutor(护栏版:教师设计提示、不给直接答案)用于数学练习</dd></div><div class="evidence-detail-row"><dt>对照 / 比较条件</dt><dd>对照组(无 AI)与 GPT Base(无护栏)组</dd></div><div class="evidence-detail-row"><dt>结果测量</dt><dd>retention post-test one week after training</dd></div><div class="evidence-detail-row"><dt>效应 / 结果</dt><dd>slightly better for Codex group but not significant</dd></div><div class="evidence-detail-row"><dt>效应方向</dt><dd>零效应</dd></div><div class="evidence-detail-row"><dt>与主张关系</dt><dd>中性</dd></div><div class="evidence-detail-row"><dt>干预时长</dt><dd>3 Weeks Training Plus 1 Week Retention</dd></div><div class="evidence-detail-row"><dt>方法</dt><dd>controlled experiment with delayed retention test</dd></div><div class="evidence-detail-row"><dt>优势</dt><dd>delayed_test_included</dd></div><div class="evidence-detail-row"><dt>局限</dt><dd>1-week retention window is short;small sample;non-university population</dd></div><div class="evidence-detail-row"><dt>混杂因素</dt><dd>Prior Competency</dd></div><div class="evidence-detail-row"><dt>质量维度</dt><dd>D1 研究设计=2 · D2 样本质量=2 · D3 测量效度=2 · D4 时间强度=2 · D5 直接性=1</dd></div><div class="evidence-detail-row"><dt>质量分</dt><dd>9.0</dd></div><div class="evidence-detail-row"><dt>证据等级</dt><dd>strong</dd></div><div class="evidence-detail-row"><dt>适用性</dt><dd>learner_match=partial · subject_match=introductory_programming · tool_match=codex · scope=retention over one week</dd></div><div class="evidence-detail-row"><dt>置信度</dt><dd>0.5</dd></div><div class="evidence-detail-row"><dt>证据状态</dt><dd>已支持</dd></div><div class="evidence-detail-row"><dt>完整主张</dt><dd>训练结束一周后,Codex 组与基线组的保持性差异未达统计显著(Codex 组略优)。</dd></div><div class="evidence-detail-row"><dt>来源位置</dt><dd>https://dl.acm.org/doi/10.1145/3544548.3580919</dd></div><div class="evidence-detail-row"><dt>可验证链接</dt><dd><a href="https://dl.acm.org/doi/10.1145/3544548.3580919">https://dl.acm.org/doi/10.1145/3544548.3580919</a></dd></div></dl></details></td><td><a class="source-link" href="https://dl.acm.org/doi/10.1145/3544548.3580919" title="Studying the effect of AI Code Generators on Supporting Novice Learners in Introductory Programming"><code>S-2023-kazemitabaar</code></a></td></tr><tr data-effect="negative" data-direction="negative" data-outcome="independent_problem_solving" data-search="e-004 study-bastani-2025 smpl-bastani-2025-n950 generative ai without guardrails can harm learning: evidence from high school mathematics 无护栏使用 gpt-4 的学生在练习表现更高的同时,独立考试成绩比对照组低 17%。 土耳其近千名高中数学学生(约 1000 名学生,共 2848 次观测) 训练阶段一半学习者可使用 openai codex 完成代码编写任务,任务后接代码修改任务 无 codex 访问组 negative s-2025-bastani"><td><code>E-004</code></td><td><strong>独立问题解决</strong></td><td><span class="dir neg">负向效应</span><span class="relation-note">与主张关系: 反驳</span></td><td><div class="quality-cell"><span class="num">8</span><span class="quality-meter" aria-hidden="true"><i style="width:80%"></i></span></div></td><td class="claim-cell"><p>无护栏使用 GPT-4 的学生在练习表现更高的同时,独立考试成绩比对照组低 17%。</p><details class="matrix-row-detail"><summary>查看完整证据</summary><dl class="evidence-detail-grid"><div class="evidence-detail-row"><dt>研究 ID</dt><dd>STUDY-BASTANI-2025</dd></div><div class="evidence-detail-row"><dt>样本 ID</dt><dd>SMPL-BASTANI-2025-N950</dd></div><div class="evidence-detail-row"><dt>研究标题</dt><dd>Generative AI without guardrails can harm learning: Evidence from high school mathematics</dd></div><div class="evidence-detail-row"><dt>来源标题</dt><dd>Generative AI without guardrails can harm learning: Evidence from high school mathematics</dd></div><div class="evidence-detail-row"><dt>年份</dt><dd>2025</dd></div><div class="evidence-detail-row"><dt>研究设计</dt><dd>随机对照试验</dd></div><div class="evidence-detail-row"><dt>教育阶段</dt><dd>高中</dd></div><div class="evidence-detail-row"><dt>研究人群</dt><dd>土耳其近千名高中数学学生(约 1000 名学生,共 2848 次观测)</dd></div><div class="evidence-detail-row"><dt>样本量</dt><dd>950</dd></div><div class="evidence-detail-row"><dt>干预</dt><dd>训练阶段一半学习者可使用 OpenAI Codex 完成代码编写任务,任务后接代码修改任务</dd></div><div class="evidence-detail-row"><dt>对照 / 比较条件</dt><dd>无 Codex 访问组</dd></div><div class="evidence-detail-row"><dt>结果测量</dt><dd>exam without access to AI resources after practice phase</dd></div><div class="evidence-detail-row"><dt>效应 / 结果</dt><dd>negative_17_percent_on_independent_exam</dd></div><div class="evidence-detail-row"><dt>效应方向</dt><dd>负向效应</dd></div><div class="evidence-detail-row"><dt>与主张关系</dt><dd>反驳</dd></div><div class="evidence-detail-row"><dt>干预时长</dt><dd>In Class Study Sessions</dd></div><div class="evidence-detail-row"><dt>方法</dt><dd>large-scale randomized controlled trial, practice phase then closed-book exam</dd></div><div class="evidence-detail-row"><dt>优势</dt><dd>large_scale_rct;independent_exam_without_ai;arm_wise_design</dd></div><div class="evidence-detail-row"><dt>局限</dt><dd>high_school_mathematics_not_university_programming;single_country</dd></div><div class="evidence-detail-row"><dt>混杂因素</dt><dd>Tool Design Difference</dd></div><div class="evidence-detail-row"><dt>质量维度</dt><dd>D1 研究设计=2 · D2 样本质量=2 · D3 测量效度=2 · D4 时间强度=1 · D5 直接性=1</dd></div><div class="evidence-detail-row"><dt>质量分</dt><dd>8.0</dd></div><div class="evidence-detail-row"><dt>证据等级</dt><dd>strong</dd></div><div class="evidence-detail-row"><dt>适用性</dt><dd>learner_match=partial_same_age_band_different_subject · subject_match=no_mathematics_vs_programming · tool_match=gpt4_chat_interface · scope=unguarded_general_chat_interface</dd></div><div class="evidence-detail-row"><dt>置信度</dt><dd>0.75</dd></div><div class="evidence-detail-row"><dt>证据状态</dt><dd>已支持</dd></div><div class="evidence-detail-row"><dt>完整主张</dt><dd>无护栏使用 GPT-4 的学生在练习表现更高的同时,独立考试成绩比对照组低 17%。</dd></div><div class="evidence-detail-row"><dt>来源位置</dt><dd>https://www.pnas.org/doi/10.1073/pnas.2422633122</dd></div><div class="evidence-detail-row"><dt>可验证链接</dt><dd><a href="https://www.pnas.org/doi/10.1073/pnas.2422633122">https://www.pnas.org/doi/10.1073/pnas.2422633122</a></dd></div></dl></details></td><td><a class="source-link" href="https://www.pnas.org/doi/10.1073/pnas.2422633122" title="Generative AI without guardrails can harm learning: Evidence from high school mathematics"><code>S-2025-bastani</code></a></td></tr><tr data-effect="null" data-direction="null" data-outcome="independent_problem_solving" data-search="e-005 study-bastani-2025 smpl-bastani-2025-n950 generative ai without guardrails can harm learning: evidence from high school mathematics ai 导师的护栏设计(给提示而非直接答案、教师参与设计提问)基本消除了负向学习效应,但未观察到正向效应。 土耳其近千名高中数学学生(约 1000 名学生,共 2848 次观测) 训练阶段使用 openai codex 完成代码编写任务 无 codex 访问组;一周后评估后测 null s-2025-bastani"><td><code>E-005</code></td><td><strong>独立问题解决</strong></td><td><span class="dir neu">零效应</span><span class="relation-note">与主张关系: 支持</span></td><td><div class="quality-cell"><span class="num">8</span><span class="quality-meter" aria-hidden="true"><i style="width:80%"></i></span></div></td><td class="claim-cell"><p>AI 导师的护栏设计(给提示而非直接答案、教师参与设计提问)基本消除了负向学习效应,但未观察到正向效应。</p><details class="matrix-row-detail"><summary>查看完整证据</summary><dl class="evidence-detail-grid"><div class="evidence-detail-row"><dt>研究 ID</dt><dd>STUDY-BASTANI-2025</dd></div><div class="evidence-detail-row"><dt>样本 ID</dt><dd>SMPL-BASTANI-2025-N950</dd></div><div class="evidence-detail-row"><dt>研究标题</dt><dd>Generative AI without guardrails can harm learning: Evidence from high school mathematics</dd></div><div class="evidence-detail-row"><dt>来源标题</dt><dd>Generative AI without guardrails can harm learning: Evidence from high school mathematics</dd></div><div class="evidence-detail-row"><dt>年份</dt><dd>2025</dd></div><div class="evidence-detail-row"><dt>研究设计</dt><dd>随机对照试验</dd></div><div class="evidence-detail-row"><dt>教育阶段</dt><dd>高中</dd></div><div class="evidence-detail-row"><dt>研究人群</dt><dd>土耳其近千名高中数学学生(约 1000 名学生,共 2848 次观测)</dd></div><div class="evidence-detail-row"><dt>样本量</dt><dd>950</dd></div><div class="evidence-detail-row"><dt>干预</dt><dd>训练阶段使用 OpenAI Codex 完成代码编写任务</dd></div><div class="evidence-detail-row"><dt>对照 / 比较条件</dt><dd>无 Codex 访问组;一周后评估后测</dd></div><div class="evidence-detail-row"><dt>结果测量</dt><dd>exam without access to AI resources after practice phase</dd></div><div class="evidence-detail-row"><dt>效应 / 结果</dt><dd>negative effect essentially eradicated, no positive effect observed</dd></div><div class="evidence-detail-row"><dt>效应方向</dt><dd>零效应</dd></div><div class="evidence-detail-row"><dt>与主张关系</dt><dd>支持</dd></div><div class="evidence-detail-row"><dt>干预时长</dt><dd>In Class Study Sessions</dd></div><div class="evidence-detail-row"><dt>方法</dt><dd>large-scale randomized controlled trial, three arms</dd></div><div class="evidence-detail-row"><dt>优势</dt><dd>direct_manipulation_of_tool_design;large_sample</dd></div><div class="evidence-detail-row"><dt>局限</dt><dd>no_positive_learning_gain_even_with_guardrails;subject_mismatch</dd></div><div class="evidence-detail-row"><dt>混杂因素</dt><dd>Prompt Engineering Effort</dd></div><div class="evidence-detail-row"><dt>质量维度</dt><dd>D1 研究设计=2 · D2 样本质量=2 · D3 测量效度=2 · D4 时间强度=1 · D5 直接性=1</dd></div><div class="evidence-detail-row"><dt>质量分</dt><dd>8.0</dd></div><div class="evidence-detail-row"><dt>证据等级</dt><dd>strong</dd></div><div class="evidence-detail-row"><dt>适用性</dt><dd>learner_match=partial · subject_match=no · tool_match=guardrailed_tutor_design · scope=guardrail_design_principle_transferable</dd></div><div class="evidence-detail-row"><dt>置信度</dt><dd>0.75</dd></div><div class="evidence-detail-row"><dt>证据状态</dt><dd>已支持</dd></div><div class="evidence-detail-row"><dt>完整主张</dt><dd>AI 导师的护栏设计(给提示而非直接答案、教师参与设计提问)基本消除了负向学习效应,但未观察到正向效应。</dd></div><div class="evidence-detail-row"><dt>来源位置</dt><dd>https://www.pnas.org/doi/10.1073/pnas.2422633122</dd></div><div class="evidence-detail-row"><dt>可验证链接</dt><dd><a href="https://www.pnas.org/doi/10.1073/pnas.2422633122">https://www.pnas.org/doi/10.1073/pnas.2422633122</a></dd></div></dl></details></td><td><a class="source-link" href="https://www.pnas.org/doi/10.1073/pnas.2422633122" title="Generative AI without guardrails can harm learning: Evidence from high school mathematics"><code>S-2025-bastani</code></a></td></tr><tr data-effect="positive" data-direction="positive" data-outcome="assignment_score" data-search="e-006 study-bastani-2025 smpl-bastani-2025-n950 generative ai without guardrails can harm learning: evidence from high school mathematics 练习阶段使用 gpt-4 提升了任务表现(gpt base 组 +48%、gpt tutor 组 +127%),但该任务表现并未迁移到独立考试。 土耳其近千名高中数学学生(约 1000 名学生,共 2848 次观测) 学生在学术写作过程中使用 chatgpt 的体验与策略(质性研究,无效应量测量) 无对照组(质性案例研究) positive s-2025-bastani"><td><code>E-006</code></td><td><strong>作业成绩</strong></td><td><span class="dir pos">正向效应</span><span class="relation-note">与主张关系: 支持</span></td><td><div class="quality-cell"><span class="num">8</span><span class="quality-meter" aria-hidden="true"><i style="width:80%"></i></span></div></td><td class="claim-cell"><p>练习阶段使用 GPT-4 提升了任务表现(GPT Base 组 +48%、GPT Tutor 组 +127%),但该任务表现并未迁移到独立考试。</p><details class="matrix-row-detail"><summary>查看完整证据</summary><dl class="evidence-detail-grid"><div class="evidence-detail-row"><dt>研究 ID</dt><dd>STUDY-BASTANI-2025</dd></div><div class="evidence-detail-row"><dt>样本 ID</dt><dd>SMPL-BASTANI-2025-N950</dd></div><div class="evidence-detail-row"><dt>研究标题</dt><dd>Generative AI without guardrails can harm learning: Evidence from high school mathematics</dd></div><div class="evidence-detail-row"><dt>来源标题</dt><dd>Generative AI without guardrails can harm learning: Evidence from high school mathematics</dd></div><div class="evidence-detail-row"><dt>年份</dt><dd>2025</dd></div><div class="evidence-detail-row"><dt>研究设计</dt><dd>随机对照试验</dd></div><div class="evidence-detail-row"><dt>教育阶段</dt><dd>高中</dd></div><div class="evidence-detail-row"><dt>研究人群</dt><dd>土耳其近千名高中数学学生(约 1000 名学生,共 2848 次观测)</dd></div><div class="evidence-detail-row"><dt>样本量</dt><dd>950</dd></div><div class="evidence-detail-row"><dt>干预</dt><dd>学生在学术写作过程中使用 ChatGPT 的体验与策略(质性研究,无效应量测量)</dd></div><div class="evidence-detail-row"><dt>对照 / 比较条件</dt><dd>无对照组(质性案例研究)</dd></div><div class="evidence-detail-row"><dt>结果测量</dt><dd>practice problem performance during study sessions</dd></div><div class="evidence-detail-row"><dt>效应 / 结果</dt><dd>48-127 percent improvement on practice problems</dd></div><div class="evidence-detail-row"><dt>效应方向</dt><dd>正向效应</dd></div><div class="evidence-detail-row"><dt>与主张关系</dt><dd>支持</dd></div><div class="evidence-detail-row"><dt>干预时长</dt><dd>In Class Study Sessions</dd></div><div class="evidence-detail-row"><dt>方法</dt><dd>randomized controlled trial with practice and closed-book exam phases</dd></div><div class="evidence-detail-row"><dt>优势</dt><dd>same_study_compares_task_and_learning;large_sample</dd></div><div class="evidence-detail-row"><dt>局限</dt><dd>subject_mismatch_mathematics</dd></div><div class="evidence-detail-row"><dt>混杂因素</dt><dd>Task Familiarity</dd></div><div class="evidence-detail-row"><dt>质量维度</dt><dd>D1 研究设计=2 · D2 样本质量=2 · D3 测量效度=2 · D4 时间强度=1 · D5 直接性=1</dd></div><div class="evidence-detail-row"><dt>质量分</dt><dd>8.0</dd></div><div class="evidence-detail-row"><dt>证据等级</dt><dd>strong</dd></div><div class="evidence-detail-row"><dt>适用性</dt><dd>learner_match=partial · subject_match=no · tool_match=gpt4 · scope=task_performance_vs_learning_separation</dd></div><div class="evidence-detail-row"><dt>置信度</dt><dd>0.75</dd></div><div class="evidence-detail-row"><dt>证据状态</dt><dd>已支持</dd></div><div class="evidence-detail-row"><dt>完整主张</dt><dd>练习阶段使用 GPT-4 提升了任务表现(GPT Base 组 +48%、GPT Tutor 组 +127%),但该任务表现并未迁移到独立考试。</dd></div><div class="evidence-detail-row"><dt>来源位置</dt><dd>https://www.pnas.org/doi/10.1073/pnas.2422633122</dd></div><div class="evidence-detail-row"><dt>可验证链接</dt><dd><a href="https://www.pnas.org/doi/10.1073/pnas.2422633122">https://www.pnas.org/doi/10.1073/pnas.2422633122</a></dd></div></dl></details></td><td><a class="source-link" href="https://www.pnas.org/doi/10.1073/pnas.2422633122" title="Generative AI without guardrails can harm learning: Evidence from high school mathematics"><code>S-2025-bastani</code></a></td></tr><tr data-effect="positive" data-direction="positive" data-outcome="knowledge_gain" data-search="e-007 study-marzuki-2024 smpl-marzuki-2024-n72 impact of chatgpt on esl students&#x27; academic writing skills 以 chatgpt 作为形成性反馈工具,对学生学术写作能力产生了显著的正向影响,学生评价亦为正面。 印度某大学本科英语作为第二语言(esl)学生,n=72 学生在学术写作过程中使用 chatgpt 的体验与策略 无对照组(质性案例研究) positive s-2024-marzuki"><td><code>E-007</code></td><td><strong>知识获得</strong></td><td><span class="dir pos">正向效应</span><span class="relation-note">与主张关系: 支持</span></td><td><div class="quality-cell"><span class="num">6</span><span class="quality-meter" aria-hidden="true"><i style="width:60%"></i></span></div></td><td class="claim-cell"><p>以 ChatGPT 作为形成性反馈工具,对学生学术写作能力产生了显著的正向影响,学生评价亦为正面。</p><details class="matrix-row-detail"><summary>查看完整证据</summary><dl class="evidence-detail-grid"><div class="evidence-detail-row"><dt>研究 ID</dt><dd>STUDY-MARZUKI-2024</dd></div><div class="evidence-detail-row"><dt>样本 ID</dt><dd>SMPL-MARZUKI-2024-N72</dd></div><div class="evidence-detail-row"><dt>研究标题</dt><dd>Impact of ChatGPT on ESL students&#x27; academic writing skills</dd></div><div class="evidence-detail-row"><dt>来源标题</dt><dd>Impact of ChatGPT on ESL students&#x27; academic writing skills</dd></div><div class="evidence-detail-row"><dt>年份</dt><dd>2024</dd></div><div class="evidence-detail-row"><dt>研究设计</dt><dd>混合方法</dd></div><div class="evidence-detail-row"><dt>教育阶段</dt><dd>Undergraduate</dd></div><div class="evidence-detail-row"><dt>研究人群</dt><dd>印度某大学本科英语作为第二语言(ESL)学生,n=72</dd></div><div class="evidence-detail-row"><dt>样本量</dt><dd>72</dd></div><div class="evidence-detail-row"><dt>干预</dt><dd>学生在学术写作过程中使用 ChatGPT 的体验与策略</dd></div><div class="evidence-detail-row"><dt>对照 / 比较条件</dt><dd>无对照组(质性案例研究)</dd></div><div class="evidence-detail-row"><dt>结果测量</dt><dd>writing tests with pre-post-delayed design</dd></div><div class="evidence-detail-row"><dt>效应 / 结果</dt><dd>significant positive impact on writing skills</dd></div><div class="evidence-detail-row"><dt>效应方向</dt><dd>正向效应</dd></div><div class="evidence-detail-row"><dt>与主张关系</dt><dd>支持</dd></div><div class="evidence-detail-row"><dt>干预时长</dt><dd>6 Hours Intervention</dd></div><div class="evidence-detail-row"><dt>方法</dt><dd>mixed methods intervention study, pre/post/delayed tests and focus groups</dd></div><div class="evidence-detail-row"><dt>优势</dt><dd>delayed_post_test;mixed_methods_triangulation</dd></div><div class="evidence-detail-row"><dt>局限</dt><dd>short_intervention_6_hours;single_institution;elite_private_university</dd></div><div class="evidence-detail-row"><dt>混杂因素</dt><dd>Self Selection Consent</dd></div><div class="evidence-detail-row"><dt>质量维度</dt><dd>D1 研究设计=1 · D2 样本质量=1 · D3 测量效度=2 · D4 时间强度=2 · D5 直接性=0</dd></div><div class="evidence-detail-row"><dt>质量分</dt><dd>6.0</dd></div><div class="evidence-detail-row"><dt>证据等级</dt><dd>moderate</dd></div><div class="evidence-detail-row"><dt>适用性</dt><dd>learner_match=yes_undergraduate · subject_match=no_writing_not_programming · tool_match=chatgpt · scope=formative_feedback_writing</dd></div><div class="evidence-detail-row"><dt>置信度</dt><dd>0.55</dd></div><div class="evidence-detail-row"><dt>证据状态</dt><dd>已支持</dd></div><div class="evidence-detail-row"><dt>完整主张</dt><dd>以 ChatGPT 作为形成性反馈工具,对学生学术写作能力产生了显著的正向影响,学生评价亦为正面。</dd></div><div class="evidence-detail-row"><dt>来源位置</dt><dd>https://link.springer.com/article/10.1186/s40561-024-00295-9</dd></div><div class="evidence-detail-row"><dt>可验证链接</dt><dd><a href="https://link.springer.com/article/10.1186/s40561-024-00295-9">https://link.springer.com/article/10.1186/s40561-024-00295-9</a></dd></div></dl></details></td><td><a class="source-link" href="https://link.springer.com/article/10.1186/s40561-024-00295-9" title="Impact of ChatGPT on ESL students&#x27; academic writing skills"><code>S-2024-marzuki</code></a></td></tr><tr data-effect="positive" data-direction="positive" data-outcome="completion_time" data-search="e-008 study-peng-2023 smpl-peng-2023-n95 the impact of ai on developer productivity: evidence from github copilot 随机对照实验(n=95)显示:使用 copilot 的职业开发者完成标准化编码任务的用时比对照组缩短约 55%。 95 名经自由职业平台招募的职业开发者,完成标准化编码任务 任务期间可使用 github copilot 不可使用 copilot 的对照组 positive s-2023-peng"><td><code>E-008</code></td><td><strong>完成时间</strong></td><td><span class="dir pos">正向效应</span><span class="relation-note">与主张关系: 支持</span></td><td><div class="quality-cell"><span class="num">8</span><span class="quality-meter" aria-hidden="true"><i style="width:80%"></i></span></div></td><td class="claim-cell"><p>随机对照实验(n=95)显示:使用 Copilot 的职业开发者完成标准化编码任务的用时比对照组缩短约 55%。</p><details class="matrix-row-detail"><summary>查看完整证据</summary><dl class="evidence-detail-grid"><div class="evidence-detail-row"><dt>研究 ID</dt><dd>STUDY-PENG-2023</dd></div><div class="evidence-detail-row"><dt>样本 ID</dt><dd>SMPL-PENG-2023-N95</dd></div><div class="evidence-detail-row"><dt>研究标题</dt><dd>The Impact of AI on Developer Productivity: Evidence from GitHub Copilot</dd></div><div class="evidence-detail-row"><dt>来源标题</dt><dd>The Impact of AI on Developer Productivity: Evidence from GitHub Copilot</dd></div><div class="evidence-detail-row"><dt>年份</dt><dd>2023</dd></div><div class="evidence-detail-row"><dt>研究设计</dt><dd>随机对照试验</dd></div><div class="evidence-detail-row"><dt>教育阶段</dt><dd>Professional Developers Not Students</dd></div><div class="evidence-detail-row"><dt>研究人群</dt><dd>95 名经自由职业平台招募的职业开发者,完成标准化编码任务</dd></div><div class="evidence-detail-row"><dt>样本量</dt><dd>95</dd></div><div class="evidence-detail-row"><dt>干预</dt><dd>任务期间可使用 GitHub Copilot</dd></div><div class="evidence-detail-row"><dt>对照 / 比较条件</dt><dd>不可使用 Copilot 的对照组</dd></div><div class="evidence-detail-row"><dt>结果测量</dt><dd>Time To Complete Http Server Implementation</dd></div><div class="evidence-detail-row"><dt>效应 / 结果</dt><dd>~55.8% faster task completion in Copilot group</dd></div><div class="evidence-detail-row"><dt>效应方向</dt><dd>正向效应</dd></div><div class="evidence-detail-row"><dt>与主张关系</dt><dd>支持</dd></div><div class="evidence-detail-row"><dt>干预时长</dt><dd>Single Task Session</dd></div><div class="evidence-detail-row"><dt>方法</dt><dd>online randomized controlled experiment with objective completion-time metric</dd></div><div class="evidence-detail-row"><dt>优势</dt><dd>randomized_controlled_design;objective_completion_time_metric</dd></div><div class="evidence-detail-row"><dt>局限</dt><dd>professional_population_not_students;single_task_ecology;preprint_not_peer_reviewed</dd></div><div class="evidence-detail-row"><dt>混杂因素</dt><dd>Task Familiarity;Platform Recruitment Self Selection</dd></div><div class="evidence-detail-row"><dt>质量维度</dt><dd>D1 研究设计=2 · D2 样本质量=2 · D3 测量效度=2 · D4 时间强度=1 · D5 直接性=1</dd></div><div class="evidence-detail-row"><dt>质量分</dt><dd>8.0</dd></div><div class="evidence-detail-row"><dt>证据等级</dt><dd>moderate</dd></div><div class="evidence-detail-row"><dt>适用性</dt><dd>learner_match=mismatch_professional_developers · subject_match=adjacent_web_development_task · tool_match=copilot_like_generative_ai · scope=task_performance_only_no_learning_outcome</dd></div><div class="evidence-detail-row"><dt>置信度</dt><dd>0.6</dd></div><div class="evidence-detail-row"><dt>证据状态</dt><dd>已支持</dd></div><div class="evidence-detail-row"><dt>完整主张</dt><dd>随机对照实验(n=95)显示:使用 Copilot 的职业开发者完成标准化编码任务的用时比对照组缩短约 55%。</dd></div><div class="evidence-detail-row"><dt>来源位置</dt><dd>https://doi.org/10.48550/arXiv.2302.06590</dd></div><div class="evidence-detail-row"><dt>可验证链接</dt><dd><a href="https://doi.org/10.48550/arXiv.2302.06590">https://doi.org/10.48550/arXiv.2302.06590</a></dd></div></dl></details></td><td><a class="source-link" href="https://doi.org/10.48550/arXiv.2302.06590" title="The Impact of AI on Developer Productivity: Evidence from GitHub Copilot"><code>S-2023-peng</code></a></td></tr><tr data-effect="null" data-direction="null" data-outcome="code_quality" data-search="e-009 study-yetistiren-2023 smpl-yetistiren-2023-bench github copilot ai pair programmer: asset or liability? 系统性基准评估显示 copilot 生成代码相对人类代码的质量结论不一:部分基准上正确性具竞争力,同时记录到安全相关缺陷。 取自公开基准数据集的 copilot 生成程序与人类编写程序 copilot 生成的程序 相同基准上的人类编写程序 null s-2023-yetistiren"><td><code>E-009</code></td><td><strong>代码质量</strong></td><td><span class="dir neu">零效应</span><span class="relation-note">与主张关系: 中性</span></td><td><div class="quality-cell"><span class="num">7</span><span class="quality-meter" aria-hidden="true"><i style="width:70%"></i></span></div></td><td class="claim-cell"><p>系统性基准评估显示 Copilot 生成代码相对人类代码的质量结论不一:部分基准上正确性具竞争力,同时记录到安全相关缺陷。</p><details class="matrix-row-detail"><summary>查看完整证据</summary><dl class="evidence-detail-grid"><div class="evidence-detail-row"><dt>研究 ID</dt><dd>STUDY-YETISTIREN-2023</dd></div><div class="evidence-detail-row"><dt>样本 ID</dt><dd>SMPL-YETISTIREN-2023-BENCH</dd></div><div class="evidence-detail-row"><dt>研究标题</dt><dd>GitHub Copilot AI Pair Programmer: Asset or Liability?</dd></div><div class="evidence-detail-row"><dt>来源标题</dt><dd>GitHub Copilot AI Pair Programmer: Asset or Liability?</dd></div><div class="evidence-detail-row"><dt>年份</dt><dd>2023</dd></div><div class="evidence-detail-row"><dt>研究设计</dt><dd>观察性研究</dd></div><div class="evidence-detail-row"><dt>教育阶段</dt><dd>Not Applicable Code Artifacts</dd></div><div class="evidence-detail-row"><dt>研究人群</dt><dd>取自公开基准数据集的 Copilot 生成程序与人类编写程序</dd></div><div class="evidence-detail-row"><dt>干预</dt><dd>Copilot 生成的程序</dd></div><div class="evidence-detail-row"><dt>对照 / 比较条件</dt><dd>相同基准上的人类编写程序</dd></div><div class="evidence-detail-row"><dt>结果测量</dt><dd>Correctness Security Maintainability Metrics On Benchmarks</dd></div><div class="evidence-detail-row"><dt>效应 / 结果</dt><dd>mixed quality profile; no single-direction summary</dd></div><div class="evidence-detail-row"><dt>效应方向</dt><dd>零效应</dd></div><div class="evidence-detail-row"><dt>与主张关系</dt><dd>中性</dd></div><div class="evidence-detail-row"><dt>干预时长</dt><dd>Not Applicable Artifact Study</dd></div><div class="evidence-detail-row"><dt>方法</dt><dd>systematic empirical evaluation of generated code against human baselines on public benchmarks</dd></div><div class="evidence-detail-row"><dt>优势</dt><dd>multi_dimensional_quality_metrics;reproducible_benchmark_protocol</dd></div><div class="evidence-detail-row"><dt>局限</dt><dd>artifact_benchmark_not_classroom;no_learning_outcome;tool_version_from_2023</dd></div><div class="evidence-detail-row"><dt>混杂因素</dt><dd>Benchmark Task Distribution</dd></div><div class="evidence-detail-row"><dt>质量维度</dt><dd>D1 研究设计=1 · D2 样本质量=2 · D3 测量效度=2 · D4 时间强度=1 · D5 直接性=1</dd></div><div class="evidence-detail-row"><dt>质量分</dt><dd>7.0</dd></div><div class="evidence-detail-row"><dt>证据等级</dt><dd>moderate</dd></div><div class="evidence-detail-row"><dt>适用性</dt><dd>learner_match=mismatch_no_learners_in_study · subject_match=introductory_adjacent_code_tasks · tool_match=copilot_like_generative_ai · scope=output_quality_only</dd></div><div class="evidence-detail-row"><dt>置信度</dt><dd>0.55</dd></div><div class="evidence-detail-row"><dt>证据状态</dt><dd>已支持</dd></div><div class="evidence-detail-row"><dt>完整主张</dt><dd>系统性基准评估显示 Copilot 生成代码相对人类代码的质量结论不一:部分基准上正确性具竞争力,同时记录到安全相关缺陷。</dd></div><div class="evidence-detail-row"><dt>来源位置</dt><dd>https://doi.org/10.1016/j.jss.2023.111734</dd></div><div class="evidence-detail-row"><dt>可验证链接</dt><dd><a href="https://doi.org/10.1016/j.jss.2023.111734">https://doi.org/10.1016/j.jss.2023.111734</a></dd></div></dl></details></td><td><a class="source-link" href="https://doi.org/10.1016/j.jss.2023.111734" title="GitHub Copilot AI Pair Programmer: Asset or Liability?"><code>S-2023-yetistiren</code></a></td></tr><tr data-effect="positive" data-direction="positive" data-outcome="assignment_score" data-search="e-010 study-finnieansley-2022 smpl-finnieansley-2022-qsets using github copilot to solve introductory programming problems codex 在 cs1 考试风格题目上能给出通过水平的解答(依数据集约 50%–75%),表明新手手中存在可观的任务能力余量。 cs1 考试风格题目集,由 codex 作答并与已发表的学生分数分布比较 codex 对 cs1 题目作答生成 已发表的学生同届分数分布 positive s-2022-finnie-ansley"><td><code>E-010</code></td><td><strong>作业成绩</strong></td><td><span class="dir pos">正向效应</span><span class="relation-note">与主张关系: 支持</span></td><td><div class="quality-cell"><span class="num">7</span><span class="quality-meter" aria-hidden="true"><i style="width:70%"></i></span></div></td><td class="claim-cell"><p>Codex 在 CS1 考试风格题目上能给出通过水平的解答(依数据集约 50%–75%),表明新手手中存在可观的任务能力余量。</p><details class="matrix-row-detail"><summary>查看完整证据</summary><dl class="evidence-detail-grid"><div class="evidence-detail-row"><dt>研究 ID</dt><dd>STUDY-FINNIEANSLEY-2022</dd></div><div class="evidence-detail-row"><dt>样本 ID</dt><dd>SMPL-FINNIEANSLEY-2022-QSETS</dd></div><div class="evidence-detail-row"><dt>研究标题</dt><dd>Using GitHub Copilot to Solve Introductory Programming Problems</dd></div><div class="evidence-detail-row"><dt>来源标题</dt><dd>Using GitHub Copilot to Solve Introductory Programming Problems</dd></div><div class="evidence-detail-row"><dt>年份</dt><dd>2022</dd></div><div class="evidence-detail-row"><dt>研究设计</dt><dd>观察性研究</dd></div><div class="evidence-detail-row"><dt>教育阶段</dt><dd>University Year 1 Question Sets</dd></div><div class="evidence-detail-row"><dt>研究人群</dt><dd>CS1 考试风格题目集,由 Codex 作答并与已发表的学生分数分布比较</dd></div><div class="evidence-detail-row"><dt>干预</dt><dd>Codex 对 CS1 题目作答生成</dd></div><div class="evidence-detail-row"><dt>对照 / 比较条件</dt><dd>已发表的学生同届分数分布</dd></div><div class="evidence-detail-row"><dt>结果测量</dt><dd>Pass Rate On CS1 Exam Style Questions</dd></div><div class="evidence-detail-row"><dt>效应 / 结果</dt><dd>passing solutions on ~50-75% of questions across datasets</dd></div><div class="evidence-detail-row"><dt>效应方向</dt><dd>正向效应</dd></div><div class="evidence-detail-row"><dt>与主张关系</dt><dd>支持</dd></div><div class="evidence-detail-row"><dt>干预时长</dt><dd>Not Applicable Capability Probe</dd></div><div class="evidence-detail-row"><dt>方法</dt><dd>capability benchmark against published student distributions; reproducible question sets</dd></div><div class="evidence-detail-row"><dt>优势</dt><dd>public_reproducible_question_sets;directly_relevant_task_domain</dd></div><div class="evidence-detail-row"><dt>局限</dt><dd>tool_solves_task_does_not_equate_student_learning;codex_2021_model_version_outdated</dd></div><div class="evidence-detail-row"><dt>混杂因素</dt><dd>Question Leakage Into Training Data Possible</dd></div><div class="evidence-detail-row"><dt>质量维度</dt><dd>D1 研究设计=1 · D2 样本质量=2 · D3 测量效度=2 · D4 时间强度=1 · D5 直接性=1</dd></div><div class="evidence-detail-row"><dt>质量分</dt><dd>7.0</dd></div><div class="evidence-detail-row"><dt>证据等级</dt><dd>moderate</dd></div><div class="evidence-detail-row"><dt>适用性</dt><dd>learner_match=partial_measures_tool_not_students · subject_match=introductory_programming · tool_match=copilot_like_generative_ai · scope=tool_capability_headroom</dd></div><div class="evidence-detail-row"><dt>置信度</dt><dd>0.55</dd></div><div class="evidence-detail-row"><dt>证据状态</dt><dd>已支持</dd></div><div class="evidence-detail-row"><dt>完整主张</dt><dd>Codex 在 CS1 考试风格题目上能给出通过水平的解答(依数据集约 50%–75%),表明新手手中存在可观的任务能力余量。</dd></div><div class="evidence-detail-row"><dt>来源位置</dt><dd>https://dl.acm.org/doi/10.1145/3545945.3569830</dd></div><div class="evidence-detail-row"><dt>可验证链接</dt><dd><a href="https://dl.acm.org/doi/10.1145/3545945.3569830">https://dl.acm.org/doi/10.1145/3545945.3569830</a></dd></div></dl></details></td><td><a class="source-link" href="https://dl.acm.org/doi/10.1145/3545945.3569830" title="Using GitHub Copilot to Solve Introductory Programming Problems"><code>S-2022-finnie-ansley</code></a></td></tr><tr data-effect="positive" data-direction="positive" data-outcome="metacognition" data-search="e-011 study-explcomp-2023 smpl-explcomp-2023-ratings comparing code explanations created by students and large language models 受控比较发现 llm 生成的代码讲解与学生自撰讲解相当(部分更优),适合作为解释性支架材料,而非替代学生的解释练习。 同一批短程序的学生版与 llm 版讲解的受控对比 llm 生成的代码讲解 学生撰写的同题讲解 positive s-2023-explanations-compare"><td><code>E-011</code></td><td><strong>元认知</strong></td><td><span class="dir pos">正向效应</span><span class="relation-note">与主张关系: 支持</span></td><td><div class="quality-cell"><span class="num">7</span><span class="quality-meter" aria-hidden="true"><i style="width:70%"></i></span></div></td><td class="claim-cell"><p>受控比较发现 LLM 生成的代码讲解与学生自撰讲解相当(部分更优),适合作为解释性支架材料,而非替代学生的解释练习。</p><details class="matrix-row-detail"><summary>查看完整证据</summary><dl class="evidence-detail-grid"><div class="evidence-detail-row"><dt>研究 ID</dt><dd>STUDY-EXPLCOMP-2023</dd></div><div class="evidence-detail-row"><dt>样本 ID</dt><dd>SMPL-EXPLCOMP-2023-RATINGS</dd></div><div class="evidence-detail-row"><dt>研究标题</dt><dd>Comparing Code Explanations Created by Students and Large Language Models</dd></div><div class="evidence-detail-row"><dt>来源标题</dt><dd>Comparing Code Explanations Created by Students and Large Language Models</dd></div><div class="evidence-detail-row"><dt>年份</dt><dd>2023</dd></div><div class="evidence-detail-row"><dt>研究设计</dt><dd>观察性研究</dd></div><div class="evidence-detail-row"><dt>教育阶段</dt><dd>University Introductory</dd></div><div class="evidence-detail-row"><dt>研究人群</dt><dd>同一批短程序的学生版与 LLM 版讲解的受控对比</dd></div><div class="evidence-detail-row"><dt>干预</dt><dd>LLM 生成的代码讲解</dd></div><div class="evidence-detail-row"><dt>对照 / 比较条件</dt><dd>学生撰写的同题讲解</dd></div><div class="evidence-detail-row"><dt>结果测量</dt><dd>Rated Explanation Quality And Comprehensibility</dd></div><div class="evidence-detail-row"><dt>效应 / 结果</dt><dd>comparable-or-better rated quality vs student explanations</dd></div><div class="evidence-detail-row"><dt>效应方向</dt><dd>正向效应</dd></div><div class="evidence-detail-row"><dt>与主张关系</dt><dd>支持</dd></div><div class="evidence-detail-row"><dt>干预时长</dt><dd>Single Session Ratings</dd></div><div class="evidence-detail-row"><dt>方法</dt><dd>controlled comparison with blind rating of explanation pairs</dd></div><div class="evidence-detail-row"><dt>优势</dt><dd>controlled_pairwise_comparison;learning_process_relevant_construct</dd></div><div class="evidence-detail-row"><dt>局限</dt><dd>short_term_ratings_not_learning_gains;small_program_snippets_ecology</dd></div><div class="evidence-detail-row"><dt>混杂因素</dt><dd>Rating Criteria Subjectivity</dd></div><div class="evidence-detail-row"><dt>质量维度</dt><dd>D1 研究设计=1 · D2 样本质量=2 · D3 测量效度=2 · D4 时间强度=1 · D5 直接性=1</dd></div><div class="evidence-detail-row"><dt>质量分</dt><dd>7.0</dd></div><div class="evidence-detail-row"><dt>证据等级</dt><dd>moderate</dd></div><div class="evidence-detail-row"><dt>适用性</dt><dd>learner_match=partial_scaffold_material_only · subject_match=introductory_programming · tool_match=llm_explanations · scope=scaffold_quality_not_effectiveness</dd></div><div class="evidence-detail-row"><dt>置信度</dt><dd>0.55</dd></div><div class="evidence-detail-row"><dt>证据状态</dt><dd>已支持</dd></div><div class="evidence-detail-row"><dt>完整主张</dt><dd>受控比较发现 LLM 生成的代码讲解与学生自撰讲解相当(部分更优),适合作为解释性支架材料,而非替代学生的解释练习。</dd></div><div class="evidence-detail-row"><dt>来源位置</dt><dd>https://dl.acm.org/doi/10.1145/3587102.3588785</dd></div><div class="evidence-detail-row"><dt>可验证链接</dt><dd><a href="https://dl.acm.org/doi/10.1145/3587102.3588785">https://dl.acm.org/doi/10.1145/3587102.3588785</a></dd></div></dl></details></td><td><a class="source-link" href="https://dl.acm.org/doi/10.1145/3587102.3588785" title="Comparing Code Explanations Created by Students and Large Language Models"><code>S-2023-explanations-compare</code></a></td></tr><tr data-effect="negative" data-direction="negative" data-outcome="over_reliance" data-search="e-012 study-vaithilingam-2022 smpl-vaithilingam-2022-n24 expectation vs. experience: evaluating the usability of code generation tools 尽管首任务完成更快,参与者难以理解并调试 ai 生成的解法、对最终程序所有权感低——记录了纯速度指标遗漏的元认知与依赖风险。 24 名参与者参与的 copilot 类工具组内可用性研究 copilot 类工具辅助编程 不使用工具的组内基线 negative s-2022-vaithilingam"><td><code>E-012</code></td><td><strong>过度依赖</strong></td><td><span class="dir neg">负向效应</span><span class="relation-note">与主张关系: 反驳</span></td><td><div class="quality-cell"><span class="num">7</span><span class="quality-meter" aria-hidden="true"><i style="width:70%"></i></span></div></td><td class="claim-cell"><p>尽管首任务完成更快,参与者难以理解并调试 AI 生成的解法、对最终程序所有权感低——记录了纯速度指标遗漏的元认知与依赖风险。</p><details class="matrix-row-detail"><summary>查看完整证据</summary><dl class="evidence-detail-grid"><div class="evidence-detail-row"><dt>研究 ID</dt><dd>STUDY-VAITHILINGAM-2022</dd></div><div class="evidence-detail-row"><dt>样本 ID</dt><dd>SMPL-VAITHILINGAM-2022-N24</dd></div><div class="evidence-detail-row"><dt>研究标题</dt><dd>Expectation vs. Experience: Evaluating the Usability of Code Generation Tools</dd></div><div class="evidence-detail-row"><dt>来源标题</dt><dd>Expectation vs. Experience: Evaluating the Usability of Code Generation Tools</dd></div><div class="evidence-detail-row"><dt>年份</dt><dd>2022</dd></div><div class="evidence-detail-row"><dt>研究设计</dt><dd>质性研究</dd></div><div class="evidence-detail-row"><dt>教育阶段</dt><dd>Mixed Cs Students And Professionals</dd></div><div class="evidence-detail-row"><dt>研究人群</dt><dd>24 名参与者参与的 Copilot 类工具组内可用性研究</dd></div><div class="evidence-detail-row"><dt>样本量</dt><dd>24</dd></div><div class="evidence-detail-row"><dt>干预</dt><dd>Copilot 类工具辅助编程</dd></div><div class="evidence-detail-row"><dt>对照 / 比较条件</dt><dd>不使用工具的组内基线</dd></div><div class="evidence-detail-row"><dt>结果测量</dt><dd>Understanding Ownership And Debugging Reports</dd></div><div class="evidence-detail-row"><dt>效应 / 结果</dt><dd>documented comprehension/ownership difficulties despite speed gain</dd></div><div class="evidence-detail-row"><dt>效应方向</dt><dd>负向效应</dd></div><div class="evidence-detail-row"><dt>与主张关系</dt><dd>反驳</dd></div><div class="evidence-detail-row"><dt>干预时长</dt><dd>Single Session</dd></div><div class="evidence-detail-row"><dt>方法</dt><dd>within-subject usability study with tasks, observation and interviews</dd></div><div class="evidence-detail-row"><dt>优势</dt><dd>rich_qualitative_process_data;constructs_missed_by_speed_metrics</dd></div><div class="evidence-detail-row"><dt>局限</dt><dd>small_n_24;single_session;self_reported_understanding</dd></div><div class="evidence-detail-row"><dt>混杂因素</dt><dd>Participant AI Familiarity</dd></div><div class="evidence-detail-row"><dt>质量维度</dt><dd>D1 研究设计=1 · D2 样本质量=2 · D3 测量效度=2 · D4 时间强度=1 · D5 直接性=1</dd></div><div class="evidence-detail-row"><dt>质量分</dt><dd>7.0</dd></div><div class="evidence-detail-row"><dt>证据等级</dt><dd>moderate</dd></div><div class="evidence-detail-row"><dt>适用性</dt><dd>learner_match=partial_includes_cs_students · subject_match=programming_adjacent · tool_match=copilot_like_generative_ai · scope=risk_identification</dd></div><div class="evidence-detail-row"><dt>置信度</dt><dd>0.55</dd></div><div class="evidence-detail-row"><dt>证据状态</dt><dd>被反驳</dd></div><div class="evidence-detail-row"><dt>完整主张</dt><dd>尽管首任务完成更快,参与者难以理解并调试 AI 生成的解法、对最终程序所有权感低——记录了纯速度指标遗漏的元认知与依赖风险。</dd></div><div class="evidence-detail-row"><dt>来源位置</dt><dd>https://dl.acm.org/doi/10.1145/3491101.3519665</dd></div><div class="evidence-detail-row"><dt>可验证链接</dt><dd><a href="https://dl.acm.org/doi/10.1145/3491101.3519665">https://dl.acm.org/doi/10.1145/3491101.3519665</a></dd></div></dl></details></td><td><a class="source-link" href="https://dl.acm.org/doi/10.1145/3491101.3519665" title="Expectation vs. Experience: Evaluating the Usability of Code Generation Tools"><code>S-2022-vaithilingam</code></a></td></tr></tbody></table></div></div></section><section id="full-03-quality" class="full-chapter" data-full-chapter><header class="full-chapter-header"><h2>03 证据可信度、反证与方法审计</h2><p class="full-chapter-lead">检查证据为什么可信、哪里冲突,以及哪些结论必须降级。</p></header><div class="full-chapter-body"><section class="method-review-group"><header class="method-review-title"><h3>审查目标:overall</h3><span class="method-verdict">关注</span></header><div class="method-audit-grid"><article class="method-audit-item method-met"><div class="method-audit-head"><strong>对照组</strong><span class="method-status">通过</span></div><p>提出因果主张的量化研究均含对照条件:Bastani(E-004/E-005/E-006)为三臂随机对照(无护栏 GPT Base / 护栏 GPT Tutor / 无 AI 对照,约千名学生);…</p><details class="method-detail detail-expander"><summary>查看审计依据</summary><div class="detail-body"><p>提出因果主张的量化研究均含对照条件:Bastani(E-004/E-005/E-006)为三臂随机对照(无护栏 GPT Base / 护栏 GPT Tutor / 无 AI 对照,约千名学生);Kazemitabaar(E-001/E-002/E-003)为随机对照(有/无 Codex,n=69);Peng(E-008)为职业开发者随机对照(n=95)。不含对照的是不承担因果主张的研究:Marzuki(E-007)为混合方法,Vaithilingam(E-012)为组内可用性研究(n=24),Yetistiren(E-009)与Finnie-Ansley(E-010)为基准评估。</p></div></details></article><article class="method-audit-item method-met"><div class="method-audit-head"><strong>随机分配</strong><span class="method-status">通过</span></div><p>Kazemitabaar(E-001/E-002/E-003)与 Bastani(E-004/E-005/E-006)均为随机分配。</p></article><article class="method-audit-item method-met"><div class="method-audit-head"><strong>前测</strong><span class="method-status">通过</span></div><p>Kazemitabaar 有前测评估;Bastani 测量基线协变量。</p></article><article class="method-audit-item method-met"><div class="method-audit-head"><strong>后测</strong><span class="method-status">通过</span></div><p>三项随机对照研究均报告即时后测。</p></article><article class="method-audit-item method-partial"><div class="method-audit-head"><strong>保持测试</strong><span class="method-status">部分</span></div><p>Kazemitabaar(E-003)有一周保持测;Bastani(E-004/E-005/E-006)无延迟测验;Marzuki(E-007)有延迟测量。</p></article><article class="method-audit-item method-partial"><div class="method-audit-head"><strong>迁移测试</strong><span class="method-status">部分</span></div><p>Kazemitabaar 的代码修改任务属迁移邻近任务;本证据集缺少完整的无 AI 迁移测验。</p></article><article class="method-audit-item method-met"><div class="method-audit-head"><strong>样本偏差</strong><span class="method-status">通过</span></div><p>Bastani 样本接近千人;Kazemitabaar 样本偏小且年龄偏低(n=69,10-17 岁)。</p></article><article class="method-audit-item method-partial"><div class="method-audit-head"><strong>自我选择偏差</strong><span class="method-status">部分</span></div><p>Marzuki(E-007)基于知情同意招募,存在自我选择风险。</p></article><article class="method-audit-item method-partial"><div class="method-audit-head"><strong>测量效度</strong><span class="method-status">部分</span></div><p>完成率/正确率/速度作为&#x27;学习&#x27;代理的效度可疑:E-001 练习正确率、E-004 任务得分、E-011/E-012 完成速度与进展均在 AI 可访问条件下测得,AI 可直接产出答案抬高指标,无法区分&#x27;学会了&#x27;与&#x27;抄到了&#x27;(Bastani 机制数据 E-002:GPT Base 答对率 5…</p><details class="method-detail detail-expander"><summary>查看审计依据</summary><div class="detail-body"><p>完成率/正确率/速度作为&#x27;学习&#x27;代理的效度可疑:E-001 练习正确率、E-004 任务得分、E-011/E-012 完成速度与进展均在 AI 可访问条件下测得,AI 可直接产出答案抬高指标,无法区分&#x27;学会了&#x27;与&#x27;抄到了&#x27;(Bastani 机制数据 E-002:GPT Base 答对率 51% 中 42% 为逻辑错误;Wermelinger S-2023 显示 Copilot 可首次尝试解决 24 道典型入门题中的 16 道,FETCH_PARTIAL 仅验证到机构库摘要)。自评测量不可靠(E-002 学生过度乐观、E-008 能力错觉)。效度较高的测量(无 AI 独立考试 E-002/E-003、延迟后测 E-005)恰恰给出负向或零结果——测量选择本身决定结论方向。</p></div></details></article><article class="method-audit-item method-partial"><div class="method-audit-head"><strong>混杂因素</strong><span class="method-status">部分</span></div><p>Kazemitabaar 中先验编程能力与 AI 收益存在交互。</p></article><article class="method-audit-item method-not_applicable"><div class="method-audit-head"><strong>教师效应</strong><span class="method-status">不适用</span></div><p>Kazemitabaar 为自定进度;课堂类研究可能带有教师效应。</p></article><article class="method-audit-item method-partial"><div class="method-audit-head"><strong>新奇效应</strong><span class="method-status">部分</span></div><p>短周期干预易高估参与度;本证据集的研究均未控制新奇效应。</p></article><article class="method-audit-item method-not_applicable"><div class="method-audit-head"><strong>工具版本效应</strong><span class="method-status">不适用</span></div><p>各研究只覆盖单一工具版本,工具迭代快,结论耐久性受限。</p></article><article class="method-audit-item method-partial"><div class="method-audit-head"><strong>AI 使用规则</strong><span class="method-status">部分</span></div><p>Bastani(E-001~E-003)是唯一直接操纵 AI 使用政策的研究:无护栏 GPT Base(类标准 ChatGPT 界面,可抄答案)vs 护栏 GPT Tutor(教师设计提示、不给直接答案),对应实证了&#x27;允许使用但无规则→独立考试 -17% 伤害&#x27;与&#x27;有护栏→练习 +127%…</p><details class="method-detail detail-expander"><summary>查看审计依据</summary><div class="detail-body"><p>Bastani(E-001~E-003)是唯一直接操纵 AI 使用政策的研究:无护栏 GPT Base(类标准 ChatGPT 界面,可抄答案)vs 护栏 GPT Tutor(教师设计提示、不给直接答案),对应实证了&#x27;允许使用但无规则→独立考试 -17% 伤害&#x27;与&#x27;有护栏→练习 +127% 且负效应消除&#x27;的政策对比,与试点&#x27;禁止直接提交 AI 代码、实验课独立评测&#x27;的护栏设计同构。局限:护栏效果仅在单一情境(高中数学、教师设计提示)验证过,需在 C 语言场景复验;且各研究均未验证对照组依从性(对照组成员是否实际未使用 AI),政策污染未排除。</p></div></details></article><article class="method-audit-item method-partial"><div class="method-audit-head"><strong>样本流失</strong><span class="method-status">部分</span></div><p>Marzuki(E-007)报告了流失情况;其余研究未详细说明。</p></article></div><div class="method-guard-wrap"><strong>任务 vs 学习护栏:</strong><div class="method-guard"><p>证据集本身未把任务表现等同学习效果:三类独立测量(E-002/E-003/E-005)与任务表现测量(E-001/E-004/E-011/E-012)被明确分开,且独立测量给出负向/零结果,恰是对照铁律(SKILL.md RULE 3:task performance 不得自动等同 learning effect)的正确执行。…</p><details class="detail-expander"><summary>查看审计依据</summary><div class="detail-body"><p>证据集本身未把任务表现等同学习效果:三类独立测量(E-002/E-003/E-005)与任务表现测量(E-001/E-004/E-011/E-012)被明确分开,且独立测量给出负向/零结果,恰是对照铁律(SKILL.md RULE 3:task performance 不得自动等同 learning effect)的正确执行。但风险在边界处:(a) 若下游综合以 E-001 的 +127% 或 E-011 的快 35% 作为&#x27;学习提升&#x27;证据,即违反铁律,证据天平会系统性偏向&#x27;允许使用&#x27;;(b) E-001 练习成绩提升与 E-002 独立考试伤害在同一研究中并存,任何只引其一的做法都会误导。frame 的 outcomes 已把&#x27;任务表现&#x27;与&#x27;学习能力&#x27;分开测量、并把期末无 AI 统一机试/笔试设为唯一成功判据,与本 guard 一致。</p></div></details></div></div></section><article class="conflict-card"><strong>裁决说明:</strong><p class="conflict-text">分歧来自结果分离(任务 vs 学习)、工具设计(有护栏 vs 无护栏)与人群(K-12/职业者 vs 大学生)。随机实验与基准研究中任务表现证据一致为正;唯一测量移除 AI 后独立表现的研究显示无护栏时有害;可用性与工件研究补充依赖与质量警示而非解决学习问题。</p></article><div class="evidence-tribunal" data-visual="evidence-tribunal-grid"><p class="tribunal-summary"><strong>决策:</strong>试点验证 · <strong>置信度:</strong>中</p><div class="tribunal-grid"><article class="tribunal-card supported"><header><span aria-hidden="true">✓</span><h3>可以主张</h3><span class="tribunal-count">7</span></header><ul><li><p>AI 编程助手在训练期间可靠地提升任务表现(完成速度、正确性)—— E-001、E-006。</p><div class="tribunal-evidence-refs"><code>E-001</code><code>E-006</code></div></li><li><p>无护栏的生成式 AI 访问在移除工具后可能损害独立问题解决能力 —— E-004。</p><div class="tribunal-evidence-refs"><code>E-004</code></div></li><li><p>护栏设计(给提示而非给答案)能大幅缓解负面学习效应 —— E-005。</p><div class="tribunal-evidence-refs"><code>E-005</code></div></li><li><p>任务表现提升并不自动等于学习提升 —— E-004 与 E-006 的研究内对照。</p><div class="tribunal-evidence-refs"><code>E-004</code><code>E-006</code></div></li><li><p>工具能力可观:Codex 能解出约半数至四分之三的 CS1 考试风格题目 —— E-010。</p><div class="tribunal-evidence-refs"><code>E-010</code></div></li><li><p>职业开发者 RCT 显示 Copilot 带来约 55% 任务提速;但职业人群限制直接性 —— E-008。</p><div class="tribunal-evidence-refs"><code>E-008</code></div></li><li><p>LLM 代码讲解的质量评级与学生自撰讲解相当,可作支架材料 —— E-011。</p><div class="tribunal-evidence-refs"><code>E-011</code></div></li></ul></article><article class="tribunal-card uncertain"><header><span aria-hidden="true">?</span><h3>尚不能主张</h3><span class="tribunal-count">4</span></header><ul><li><p>AI 编程助手能否真正改善或保持大学新手的编程学习——本证据集中没有大学层面的直接 RCT [无直接证据]</p></li><li><p>Kazemitabaar 2023 的一周中性保持性能否延伸到一个学期 —— E-003。</p><div class="tribunal-evidence-refs"><code>E-003</code></div></li><li><p>基准质量结论(E-009)与讲解质量评级(E-011)能否转化为课堂学习收益。</p><div class="tribunal-evidence-refs"><code>E-009</code><code>E-011</code></div></li><li><p>可用性研究所记录的理解/所有权困难(E-012)在整学期护栏条件下会如何演变。</p><div class="tribunal-evidence-refs"><code>E-012</code></div></li></ul></article><article class="tribunal-card contradicted"><header><span aria-hidden="true">×</span><h3>被反驳的主张</h3><span class="tribunal-count">2</span></header><ul><li><p>&#x27;AI 工具总能提高学习&#x27;被 E-004 反驳(无护栏访问,独立考试 −17%)。</p><div class="tribunal-evidence-refs"><code>E-004</code></div></li><li><p>&#x27;速度收益等于学习收益&#x27;被 E-001/E-006/E-008 与 E-004 之间的任务-学习分离所反驳。</p><div class="tribunal-evidence-refs"><code>E-001</code><code>E-006</code><code>E-008</code><code>E-004</code></div></li></ul></article><article class="tribunal-card missing"><header><span aria-hidden="true">…</span><h3>缺失证据</h3><span class="tribunal-count">4</span></header><ul><li><p>在大学编程课程中带保持与无 AI 迁移测试的 RCT。</p></li><li><p>同一课程内变化 AI 使用政策的研究。</p></li><li><p>跨越一门课的 AI 依赖纵向数据。</p></li><li><p>职业提速 RCT 的同行评审重复(Peng 等仍为预印本)。</p></li></ul></article></div><details class="supporting-visual"><summary>EvidenceFlow 协议</summary><svg viewBox="0 0 720 260" xmlns="http://www.w3.org/2000/svg" role="img" aria-label="EvidenceFlow 协议流程"><title>EvidenceFlow 协议流程</title><desc>从问题框架、检索、抓取验证、证据抽取、反方质疑、方法审计、裁决到适用性与干预评价的完整流程。</desc><defs><marker id="arr-zh-full-workflow" markerWidth="8" markerHeight="8" refX="6" refY="3" orient="auto"><path d="M0,0 L6,3 L0,6 Z" fill="#8A867E"/></marker></defs><rect width="720" height="260" fill="#FCFAF6" rx="12"/><text x="24" y="34" font-size="16" font-weight="700" fill="#3A3833">EvidenceFlow 协议</text><rect x="24" y="100" width="64" height="52" rx="8" fill="#B8694A"/><text x="56.0" y="126.0" text-anchor="middle" fill="#FFFFFF" font-size="10" font-weight="600"><tspan x="56.0" y="126.0">问题框架</tspan></text><line x1="88" y1="126" x2="100" y2="126" stroke="#8A867E" stroke-width="2" marker-end="url(#arr-zh-full-workflow)"/><rect x="100" y="100" width="64" height="52" rx="8" fill="#B8694A"/><text x="132.0" y="126.0" text-anchor="middle" fill="#FFFFFF" font-size="10" font-weight="600"><tspan x="132.0" y="126.0">检索</tspan></text><line x1="164" y1="126" x2="176" y2="126" stroke="#8A867E" stroke-width="2" marker-end="url(#arr-zh-full-workflow)"/><rect x="176" y="100" width="64" height="52" rx="8" fill="#B8694A"/><text x="208.0" y="126.0" text-anchor="middle" fill="#FFFFFF" font-size="10" font-weight="600"><tspan x="208.0" y="126.0">抓取</tspan><tspan x="208.0" y="140.0">验证</tspan></text><line x1="240" y1="126" x2="252" y2="126" stroke="#8A867E" stroke-width="2" marker-end="url(#arr-zh-full-workflow)"/><rect x="252" y="100" width="64" height="52" rx="8" fill="#B8694A"/><text x="284.0" y="126.0" text-anchor="middle" fill="#FFFFFF" font-size="10" font-weight="600"><tspan x="284.0" y="126.0">证据抽取</tspan></text><line x1="316" y1="126" x2="328" y2="126" stroke="#8A867E" stroke-width="2" marker-end="url(#arr-zh-full-workflow)"/><rect x="328" y="100" width="64" height="52" rx="8" fill="#5E8A6A"/><text x="360.0" y="126.0" text-anchor="middle" fill="#FFFFFF" font-size="10" font-weight="600"><tspan x="360.0" y="126.0">反方质疑</tspan></text><line x1="392" y1="126" x2="404" y2="126" stroke="#8A867E" stroke-width="2" marker-end="url(#arr-zh-full-workflow)"/><rect x="404" y="100" width="64" height="52" rx="8" fill="#5E8A6A"/><text x="436.0" y="126.0" text-anchor="middle" fill="#FFFFFF" font-size="10" font-weight="600"><tspan x="436.0" y="126.0">方法</tspan><tspan x="436.0" y="140.0">审计</tspan></text><line x1="468" y1="126" x2="480" y2="126" stroke="#8A867E" stroke-width="2" marker-end="url(#arr-zh-full-workflow)"/><rect x="480" y="100" width="64" height="52" rx="8" fill="#C99A4A"/><text x="512.0" y="126.0" text-anchor="middle" fill="#FFFFFF" font-size="10" font-weight="600"><tspan x="512.0" y="126.0">裁决</tspan></text><line x1="544" y1="126" x2="556" y2="126" stroke="#8A867E" stroke-width="2" marker-end="url(#arr-zh-full-workflow)"/><rect x="556" y="100" width="64" height="52" rx="8" fill="#C99A4A"/><text x="588.0" y="126.0" text-anchor="middle" fill="#FFFFFF" font-size="10" font-weight="600"><tspan x="588.0" y="126.0">适用性</tspan></text><line x1="620" y1="126" x2="632" y2="126" stroke="#8A867E" stroke-width="2" marker-end="url(#arr-zh-full-workflow)"/><rect x="632" y="100" width="64" height="52" rx="8" fill="#C99A4A"/><text x="664.0" y="126.0" text-anchor="middle" fill="#FFFFFF" font-size="10" font-weight="600"><tspan x="664.0" y="126.0">干预</tspan><tspan x="664.0" y="140.0">评价</tspan></text></svg></details><details class="supporting-visual"><summary>裁决信息图</summary><svg viewBox="0 0 720 260" xmlns="http://www.w3.org/2000/svg" role="img" aria-label="证据裁决信息图"><title>证据裁决信息图</title><desc>可以主张与不可主张的证据 ID 与建议决策徽章;完整主张文本见下方裁决卡片。</desc><defs><marker id="arr-zh-full-tribunal" markerWidth="8" markerHeight="8" refX="6" refY="3" orient="auto"><path d="M0,0 L6,3 L0,6 Z" fill="#8A867E"/></marker></defs><rect width="720" height="260" fill="#FCFAF6" rx="12"/><text x="24" y="34" font-size="16" font-weight="700" fill="#3A3833">证据裁决</text><text x="24" y="180" font-size="13" font-weight="700" fill="#3A3833">冲突来源</text><text x="24" y="202" font-size="11" fill="#8A867E">详见下方裁决卡片</text><rect x="24" y="216" width="180" height="28" rx="14" fill="#C99A4A"/><text x="114" y="235" text-anchor="middle" font-size="13" font-weight="700" fill="#fff">试点验证</text><text x="250" y="80" font-size="13" font-weight="700" fill="#5E8A6A">可以主张 (7)</text><circle cx="254" cy="100" r="3" fill="#5E8A6A"/><text x="266" y="105" font-size="11" fill="#3A3833">E-001</text><circle cx="254" cy="122" r="3" fill="#5E8A6A"/><text x="266" y="127" font-size="11" fill="#3A3833">E-006</text><circle cx="254" cy="144" r="3" fill="#5E8A6A"/><text x="266" y="149" font-size="11" fill="#3A3833">E-004</text><circle cx="254" cy="166" r="3" fill="#5E8A6A"/><text x="266" y="171" font-size="11" fill="#3A3833">E-005</text><text x="490" y="80" font-size="13" font-weight="700" fill="#A85B53">不可主张 (2)</text><circle cx="494" cy="100" r="3" fill="#A85B53"/><text x="506" y="105" font-size="11" fill="#3A3833">E-004</text><circle cx="494" cy="122" r="3" fill="#A85B53"/><text x="506" y="127" font-size="11" fill="#3A3833">E-001</text><circle cx="494" cy="144" r="3" fill="#A85B53"/><text x="506" y="149" font-size="11" fill="#3A3833">E-006</text><circle cx="494" cy="166" r="3" fill="#A85B53"/><text x="506" y="171" font-size="11" fill="#3A3833">E-008</text></svg></details></div><div class="trace-chain" data-visual="trace-chain"><article class="trace-chain-card"><div class="trace-claim-node"><strong>C-001</strong><p class="trace-claim-text">在练习环节,无护栏的 GPT Base(类标准 ChatGPT 界面)使高中生的练习成绩相对对照组提高 48%,带护栏的 GPT Tutor 提高 127%(Table 1:practice 系数 0.137/0.361,对照均值 0.284)</p></div><div class="trace-arrow">↓</div><div class="trace-evidence-list"><div class="trace-evidence-node"><code>E-001</code><span>完成时间</span><span class="dir pos">正向效应</span><span class="trace-relation">主张关系: 支持</span><span>Q 9.0</span><span class="trace-arrow">→</span><a href="https://dl.acm.org/doi/10.1145/3544548.3580919"><code>S-2023-kazemitabaar</code></a></div></div></article><article class="trace-chain-card"><div class="trace-claim-node"><strong>C-002</strong><p class="trace-claim-text">移除 AI 访问后的无辅助独立考试中,GPT Base 组成绩比从未使用 AI 的对照组低 17%(统计显著),表明无护栏使用 AI 损害技能习得;机制上学生把 GPT 当&#x27;拐杖&#x27;直接抄答案(GPT Base 答对率仅 51%,其中 42% 逻辑错误、8% 算术错误),且学生自评过度乐观、未察觉学习受损</p></div><div class="trace-arrow">↓</div><div class="trace-evidence-list"><div class="trace-evidence-node"><code>E-002</code><span>独立问题解决</span><span class="dir neu">零效应</span><span class="trace-relation">主张关系: 中性</span><span>Q 7.0</span><span class="trace-arrow">→</span><a href="https://dl.acm.org/doi/10.1145/3544548.3580919"><code>S-2023-kazemitabaar</code></a></div></div></article><article class="trace-chain-card"><div class="trace-claim-node"><strong>C-003</strong><p class="trace-claim-text">带护栏的 GPT Tutor(教师设计提示而非直接答案)在练习成绩 +127% 的同时,移除访问后的独立考试负效应基本消除(-0.004,不显著),说明精心设计的护栏可兼得练习提升与学习保持</p></div><div class="trace-arrow">↓</div><div class="trace-evidence-list"><div class="trace-evidence-node"><code>E-003</code><span>记忆保持</span><span class="dir neu">零效应</span><span class="trace-relation">主张关系: 中性</span><span>Q 9.0</span><span class="trace-arrow">→</span><a href="https://dl.acm.org/doi/10.1145/3544548.3580919"><code>S-2023-kazemitabaar</code></a></div></div></article><article class="trace-chain-card"><div class="trace-claim-node"><strong>C-004</strong><p class="trace-claim-text">训练阶段使用 OpenAI Codex 的 10-17 岁新手在 45 道 Python 代码编写任务上表现显著提升:完成率提高 1.15 倍、得分提高 1.8 倍</p></div><div class="trace-arrow">↓</div><div class="trace-evidence-list"><div class="trace-evidence-node"><code>E-004</code><span>独立问题解决</span><span class="dir neg">负向效应</span><span class="trace-relation">主张关系: 反驳</span><span>Q 8.0</span><span class="trace-arrow">→</span><a href="https://www.pnas.org/doi/10.1073/pnas.2422633122"><code>S-2025-bastani</code></a></div></div></article><article class="trace-chain-card"><div class="trace-claim-node"><strong>C-005</strong><p class="trace-claim-text">训练期使用 Codex 的学习者一周后评估后测成绩略好于对照组,但差异未达统计显著(保持力无显著差异);Scratch 前测高分者若有 Codex 使用史,保持后测显著更好</p></div><div class="trace-arrow">↓</div><div class="trace-evidence-list"><div class="trace-evidence-node"><code>E-005</code><span>独立问题解决</span><span class="dir neu">零效应</span><span class="trace-relation">主张关系: 支持</span><span>Q 8.0</span><span class="trace-arrow">→</span><a href="https://www.pnas.org/doi/10.1073/pnas.2422633122"><code>S-2025-bastani</code></a></div></div></article><article class="trace-chain-card"><div class="trace-claim-node"><strong>C-006</strong><p class="trace-claim-text">质性案例研究中,3 名 EFL 学生珍视 ChatGPT 的辅助价值(消除不确定性、澄清词汇、提供内容建议、语法/结构反馈,让学生专注于创意层面),并形成语言精修、观点生成与结构、校对与信心增强等使用策略</p></div><div class="trace-arrow">↓</div><div class="trace-evidence-list"><div class="trace-evidence-node"><code>E-006</code><span>作业成绩</span><span class="dir pos">正向效应</span><span class="trace-relation">主张关系: 支持</span><span>Q 8.0</span><span class="trace-arrow">→</span><a href="https://www.pnas.org/doi/10.1073/pnas.2422633122"><code>S-2025-bastani</code></a></div></div></article><article class="trace-chain-card"><div class="trace-claim-node"><strong>C-007</strong><p class="trace-claim-text">同一质性研究中,学生担忧 AI 使用的学术真实性与过度依赖风险(建议过于复杂/正式、语气不符、文化刻板印象等局限),强调必须保持人的判断并寻求教师/同伴反馈,呼吁伦理指引与批判性思维培养</p></div><div class="trace-arrow">↓</div><div class="trace-evidence-list"><div class="trace-evidence-node"><code>E-007</code><span>知识获得</span><span class="dir pos">正向效应</span><span class="trace-relation">主张关系: 支持</span><span>Q 6.0</span><span class="trace-arrow">→</span><a href="https://link.springer.com/article/10.1186/s40561-024-00295-9"><code>S-2024-marzuki</code></a></div></div></article><article class="trace-chain-card"><div class="trace-claim-node"><strong>C-008</strong><p class="trace-claim-text">随机对照实验(n=95)显示:使用 Copilot 的职业开发者完成标准化编程任务的用时比对照组缩短约 55%。</p></div><div class="trace-arrow">↓</div><div class="trace-evidence-list"><div class="trace-evidence-node"><code>E-008</code><span>完成时间</span><span class="dir pos">正向效应</span><span class="trace-relation">主张关系: 支持</span><span>Q 8.0</span><span class="trace-arrow">→</span><a href="https://doi.org/10.48550/arXiv.2302.06590"><code>S-2023-peng</code></a></div></div></article><article class="trace-chain-card"><div class="trace-claim-node"><strong>C-009</strong><p class="trace-claim-text">系统性基准评估显示 Copilot 生成代码相对人类代码的质量结论不一:部分正确性具竞争力,同时记录到安全相关缺陷。</p></div><div class="trace-arrow">↓</div><div class="trace-evidence-list"><div class="trace-evidence-node"><code>E-009</code><span>代码质量</span><span class="dir neu">零效应</span><span class="trace-relation">主张关系: 中性</span><span>Q 7.0</span><span class="trace-arrow">→</span><a href="https://doi.org/10.1016/j.jss.2023.111734"><code>S-2023-yetistiren</code></a></div></div></article><article class="trace-chain-card"><div class="trace-claim-node"><strong>C-010</strong><p class="trace-claim-text">Codex 在 CS1 考试风格题目上能给出通过水平的解答(依数据集约 50%–75%),表明新手手中存在可观的任务能力余量。</p></div><div class="trace-arrow">↓</div><div class="trace-evidence-list"><div class="trace-evidence-node"><code>E-010</code><span>作业成绩</span><span class="dir pos">正向效应</span><span class="trace-relation">主张关系: 支持</span><span>Q 7.0</span><span class="trace-arrow">→</span><a href="https://dl.acm.org/doi/10.1145/3545945.3569830"><code>S-2022-finnie-ansley</code></a></div></div></article><article class="trace-chain-card"><div class="trace-claim-node"><strong>C-011</strong><p class="trace-claim-text">受控比较发现 LLM 生成的代码讲解与学生自撰讲解相当(部分更优),适合作为解释性支架材料,而非替代学生的解释练习。</p></div><div class="trace-arrow">↓</div><div class="trace-evidence-list"><div class="trace-evidence-node"><code>E-011</code><span>元认知</span><span class="dir pos">正向效应</span><span class="trace-relation">主张关系: 支持</span><span>Q 7.0</span><span class="trace-arrow">→</span><a href="https://dl.acm.org/doi/10.1145/3587102.3588785"><code>S-2023-explanations-compare</code></a></div></div></article><article class="trace-chain-card"><div class="trace-claim-node"><strong>C-012</strong><p class="trace-claim-text">尽管首任务完成更快,参与者难以理解并调试 AI 生成的解法、对最终程序所有权感低——记录了纯速度指标遗漏的认知与依赖风险。</p></div><div class="trace-arrow">↓</div><div class="trace-evidence-list"><div class="trace-evidence-node"><code>E-012</code><span>过度依赖</span><span class="dir neg">负向效应</span><span class="trace-relation">主张关系: 反驳</span><span>Q 7.0</span><span class="trace-arrow">→</span><a href="https://dl.acm.org/doi/10.1145/3491101.3519665"><code>S-2022-vaithilingam</code></a></div></div></article></div><div id="chart-trace-zh" class="chart-mount" aria-label="主张-证据追溯"></div><p class="chart-interpretation"><strong>这意味着什么:</strong>每个重要主张都必须能追到 Evidence ID 和原始来源。</p></div></section><section id="full-04-action" class="full-chapter" data-full-chapter><header class="full-chapter-header"><h2>04 适用范围与教学行动</h2><p class="full-chapter-lead">把可外推范围、护栏和教学动作连接到具体证据。</p></header><div class="full-chapter-body"><p><strong>目标人群:</strong>首次学习 C 语言编程的大一计算机专业学生</p>
2188
+ <p><strong>目标情境:</strong>16 周讲授课+实验课,60 人班级,助教支持,线下</p>
2189
+ <p><strong>适用于谁:</strong>在大一 C 课程以护栏化使用政策开展试点</p>
2190
+ <p><strong>不适用于:</strong>无使用政策的全面放开采用</p>
2191
+ <p><strong>适用条件:</strong></p><ul><li>护栏化 AI 使用政策(给提示不给答案,仿 GPT Tutor 组)</li><li>无 AI 迁移评估</li><li>助教支持</li></ul><div class="boundary-block"><h3>不可外推的结论</h3><ul><li>『AI 编程助手提高学习效果』—— 超出边界:缺少直接学习效应证据。</li><li>『AI 对所有人都有效』—— 超出边界:人群与学科错配。</li></ul></div><div class="evidence-to-action" data-visual="evidence-to-action"><article class="action-node action-evidence"><span>证据</span><p class="action-node-text">AI 编程助手在训练期间可靠地提升任务表现(完成速度、正确性)—— E-001、E-006。</p></article><span class="flow-arrow" aria-hidden="true">→</span><article class="action-node action-applicability"><span>适用性</span><p class="action-node-text">在大一 C 课程以护栏化使用政策开展试点</p></article><span class="flow-arrow" aria-hidden="true">→</span><article class="action-node action-decision"><span>决策</span><p class="action-node-text">试点验证</p></article><span class="flow-arrow" aria-hidden="true">→</span><article class="action-node action-guardrails"><span>护栏</span><p class="action-node-text">AI 使用分三档明确分级(解释 / 协作 / 无 AI 迁移)。照抄未审视的 AI 输出属学术诚信违规,并通过推理痕迹要求核查。</p></article><span class="flow-arrow" aria-hidden="true">→</span><article class="action-node action-stop"><span>停止条件</span><p class="action-node-text">迁移测验成绩显著低于基线同届预期; 推理痕迹中出现普遍诚信违规; 风险指标中 AI 依赖信号超阈值; 助教/教师工作量不可持续</p></article><span class="flow-arrow" aria-hidden="true">→</span><article class="action-node action-evaluation"><span>评价</span><p class="action-node-text">实验班独立问题解决非劣(差异在 5% 以内)且保持相当或更优、AI 依赖指数低于阈值;若独立问题解决下滑超过 10%,无论任务收益如何,试点均判为失败。</p></article></div><p><strong>目标学习者:</strong>大一 C 语言编程学生(60 人讲授课班) · <strong>试点时长:</strong>8 周</p>
2192
+ <p><strong>AI 使用规则:</strong>AI 使用分三档明确分级(解释 / 协作 / 无 AI 迁移)。照抄未审视的 AI 输出属学术诚信违规,并通过推理痕迹要求核查。</p>
2193
+ <div class='phase'><h3>阶段一 —— 独立基础</h3><p><strong>AI 规则:</strong>禁止完整代码生成;AI 仅可用于概念讲解</p>
2194
+ <p><strong>活动:</strong></p><ul><li>基线测验</li><li>前 2 周作业完全不使用 AI 代码生成</li></ul>
2195
+ <p><strong>结果检查:</strong>基线任务表现与独立问题解决测量</p>
2196
+ </div>
2197
+ <div class='phase'><h3>阶段二 —— 只解释,不解题</h3><p><strong>AI 规则:</strong>AI 可以解释,但不得产出完整解题方案</p>
2198
+ <p><strong>活动:</strong></p><ul><li>第 3–4 周:允许 AI 解释错误、概念与调试思路</li></ul>
2199
+ <p><strong>结果检查:</strong>期中无 AI 测验</p>
2200
+ </div>
2201
+ <div class='phase'><h3>阶段三 —— 结构化协作</h3><p><strong>AI 规则:</strong>允许部分代码生成;关键逻辑须书面解释;提交需附推理痕迹</p>
2202
+ <p><strong>活动:</strong></p><ul><li>第 5–7 周:允许 AI 生成部分代码;学生必须用自己的话解释每段 AI 生成代码</li></ul>
2203
+ <p><strong>结果检查:</strong>每周实验完成率与代码质量量表</p>
2204
+ </div>
2205
+ <div class='phase'><h3>阶段四 —— 迁移检验</h3><p><strong>AI 规则:</strong>迁移评估期间不得使用 AI</p>
2206
+ <p><strong>活动:</strong></p><ul><li>第 8 周:在无 AI 环境完成新的编程任务</li></ul>
2207
+ <p><strong>结果检查:</strong>迁移测验分数、独立问题解决</p>
2208
+ </div>
2209
+ <h3>停止条件</h3><ul><li>迁移测验成绩显著低于基线同届预期</li><li>推理痕迹中出现普遍诚信违规</li><li>风险指标中 AI 依赖信号超阈值</li><li>助教/教师工作量不可持续</li></ul>
2210
+ <h3>干预时间线信息图</h3>
2211
+ <svg viewBox="0 0 720 260" xmlns="http://www.w3.org/2000/svg" role="img" aria-label="教学干预时间线"><title>教学干预时间线</title><desc>各试点阶段的短名称与活动数量;完整 AI 使用规则见阶段说明块。</desc><defs><marker id="arr-zh-full-intervention" markerWidth="8" markerHeight="8" refX="6" refY="3" orient="auto"><path d="M0,0 L6,3 L0,6 Z" fill="#8A867E"/></marker></defs><rect width="720" height="260" fill="#FCFAF6" rx="12"/><text x="24" y="34" font-size="16" font-weight="700" fill="#3A3833">教学干预时间线</text><rect x="24" y="100" width="160" height="96" rx="8" fill="#B8694A"/><text x="104.0" y="143.0" text-anchor="middle" fill="#FFFFFF" font-size="12" font-weight="600"><tspan x="104.0" y="143.0">Phase 1</tspan></text><text x="104.0" y="159.0" text-anchor="middle" fill="#FFFFFF" font-size="11" opacity="0.85">2 项活动</text><line x1="184" y1="148" x2="200" y2="148" stroke="#8A867E" stroke-width="2" marker-end="url(#arr-zh-full-intervention)"/><rect x="200" y="100" width="160" height="96" rx="8" fill="#B8694A"/><text x="280.0" y="143.0" text-anchor="middle" fill="#FFFFFF" font-size="12" font-weight="600"><tspan x="280.0" y="143.0">Phase 2</tspan></text><text x="280.0" y="159.0" text-anchor="middle" fill="#FFFFFF" font-size="11" opacity="0.85">1 项活动</text><line x1="360" y1="148" x2="376" y2="148" stroke="#8A867E" stroke-width="2" marker-end="url(#arr-zh-full-intervention)"/><rect x="376" y="100" width="160" height="96" rx="8" fill="#B8694A"/><text x="456.0" y="143.0" text-anchor="middle" fill="#FFFFFF" font-size="12" font-weight="600"><tspan x="456.0" y="143.0">Phase 3</tspan></text><text x="456.0" y="159.0" text-anchor="middle" fill="#FFFFFF" font-size="11" opacity="0.85">1 项活动</text><line x1="536" y1="148" x2="552" y2="148" stroke="#8A867E" stroke-width="2" marker-end="url(#arr-zh-full-intervention)"/><rect x="552" y="100" width="160" height="96" rx="8" fill="#B8694A"/><text x="632.0" y="143.0" text-anchor="middle" fill="#FFFFFF" font-size="12" font-weight="600"><tspan x="632.0" y="143.0">Phase 4</tspan></text><text x="632.0" y="159.0" text-anchor="middle" fill="#FFFFFF" font-size="11" opacity="0.85">1 项活动</text></svg></div></section><section id="full-05-evaluation" class="full-chapter" data-full-chapter><header class="full-chapter-header"><h2>05 试点设计、评估与停止条件</h2><p class="full-chapter-lead">用独立学习结果验证试点,并预先写清停止条件。</p></header><div class="full-chapter-body"><p><strong>研究问题:</strong>在大一 C 课程中,护栏化的 AI 编程助手(只解释→结构化协作)相比无 AI 教学,能否在不增加 AI 依赖的前提下提升独立问题解决能力?</p>
2212
+ <p><strong>基线:</strong>第 1 周无 AI 编程测验(独立问题解决、完成用时)</p>
2213
+ <p><strong>后测:</strong>第 8 周无 AI 编程测验(独立问题解决、代码质量)</p>
2214
+ <p><strong>保持测试:</strong>期末考试(第 16 周)—— 试点后 8 周的延迟测量</p>
2215
+ <p><strong>迁移测试:</strong>第 8 周严格无 AI 环境下的新编程任务</p>
2216
+ <h3>过程指标</h3><ul><li>每周实验完成率</li><li>AI 使用日志:提交的提示、复制代码块、推理痕迹</li><li>求助行为计数</li></ul>
2217
+ <h3>学习指标</h3><ul><li>独立问题解决(无 AI 测验)</li><li>代码质量量表</li><li>期末考试保持</li><li>迁移任务得分</li></ul>
2218
+ <h3>风险指标</h3><ul><li>AI 依赖指数(来自推理痕迹质量的『使用而无理解』)</li><li>学术诚信违规</li><li>自我报告的过度依赖</li><li>虚假信心(测后自信 vs 实际得分)</li></ul>
2219
+ <p><strong>成功阈值:</strong>实验班独立问题解决非劣(差异在 5% 以内)且保持相当或更优、AI 依赖指数低于阈值;若独立问题解决下滑超过 10%,无论任务收益如何,试点均判为失败。</p>
2220
+ <p><strong>分析计划:</strong>预登记的实验班 vs 对照班基线调整学习指标比较(ANCOVA);任务表现指标与学习指标分开报告;按先验编程能力做亚组分析;第 3、5、7 周监测停止条件。</p>
2221
+ <h3>评价设计信息图</h3>
2222
+ <svg viewBox="0 0 720 260" xmlns="http://www.w3.org/2000/svg" role="img" aria-label="评价设计流程"><title>评价设计流程</title><desc>基线、后测、保持测试与迁移测试的评价流程;完整指标与分析计划见评估章节。</desc><defs><marker id="arr-zh-full-evaluation" markerWidth="8" markerHeight="8" refX="6" refY="3" orient="auto"><path d="M0,0 L6,3 L0,6 Z" fill="#8A867E"/></marker></defs><rect width="720" height="260" fill="#FCFAF6" rx="12"/><text x="24" y="34" font-size="16" font-weight="700" fill="#3A3833">评价设计流程</text><rect x="30" y="110" width="150" height="56" rx="8" fill="#5E8A6A"/><text x="105.0" y="138.0" text-anchor="middle" fill="#FFFFFF" font-size="12" font-weight="600"><tspan x="105.0" y="138.0">基线</tspan></text><text x="105.0" y="148" text-anchor="middle" font-size="9" fill="#fff" opacity="0.95">前测</text><line x1="180" y1="138" x2="192" y2="138" stroke="#8A867E" stroke-width="2" marker-end="url(#arr-zh-full-evaluation)"/><rect x="192" y="110" width="150" height="56" rx="8" fill="#5E8A6A"/><text x="267.0" y="138.0" text-anchor="middle" fill="#FFFFFF" font-size="12" font-weight="600"><tspan x="267.0" y="138.0">后测</tspan></text><text x="267.0" y="148" text-anchor="middle" font-size="9" fill="#fff" opacity="0.95">后测</text><line x1="342" y1="138" x2="354" y2="138" stroke="#8A867E" stroke-width="2" marker-end="url(#arr-zh-full-evaluation)"/><rect x="354" y="110" width="150" height="56" rx="8" fill="#5E8A6A"/><text x="429.0" y="138.0" text-anchor="middle" fill="#FFFFFF" font-size="12" font-weight="600"><tspan x="429.0" y="138.0">保持</tspan></text><text x="429.0" y="148" text-anchor="middle" font-size="9" fill="#fff" opacity="0.95">保持测试</text><line x1="504" y1="138" x2="516" y2="138" stroke="#8A867E" stroke-width="2" marker-end="url(#arr-zh-full-evaluation)"/><rect x="516" y="110" width="150" height="56" rx="8" fill="#5E8A6A"/><text x="591.0" y="138.0" text-anchor="middle" fill="#FFFFFF" font-size="12" font-weight="600"><tspan x="591.0" y="138.0">迁移</tspan></text><text x="591.0" y="148" text-anchor="middle" font-size="9" fill="#fff" opacity="0.95">迁移测试(无 AI)</text></svg><div class="visual-suppressed"><strong>基准图已抑制</strong><p>result.json 未携带 benchmark.baselines,本图不绘制;基准表现见独立基准报告。</p></div></div></section><section id="full-06-sources" class="full-chapter" data-full-chapter><header class="full-chapter-header"><h2>06 来源、溯源与附录</h2><p class="full-chapter-lead">保留原始来源、URL、证据 ID 和获取信息,确保可回查。</p></header><div class="full-chapter-body"><h3>来源列表</h3><div class='table-wrap'><table class='data-table source-table'><thead><tr><th>ID</th><th>标题</th><th>年份</th><th>权威级别</th><th>可验证位置</th></tr></thead><tbody><tr><td><code>S-2023-kazemitabaar</code></td><td class='cell-main source-title-cell'>Studying the effect of AI Code Generators on Supporting Novice Learners in Introductory Programming <span class="cite-badge cite-ok">DOI ✓</span><details class="source-expander detail-expander"><summary>查看来源与溯源</summary><dl class="source-detail-grid"><div class="source-detail-row"><dt>原文标题</dt><dd>Studying the effect of AI Code Generators on Supporting Novice Learners in Introductory Programming</dd></div><div class="source-detail-row"><dt>年份</dt><dd>2023</dd></div><div class="source-detail-row"><dt>权威级别</dt><dd>T1 DOI 可验证论文</dd></div><div class="source-detail-row"><dt>来源位置</dt><dd>https://dl.acm.org/doi/10.1145/3544548.3580919</dd></div><div class="source-detail-row"><dt>可验证链接</dt><dd><a href="https://dl.acm.org/doi/10.1145/3544548.3580919">https://dl.acm.org/doi/10.1145/3544548.3580919</a></dd></div></dl></details></td><td>2023</td><td>T1 DOI 可验证论文</td><td class='cell-main'><a href='https://dl.acm.org/doi/10.1145/3544548.3580919'>https://dl.acm.org/doi/10.1145/3544548.3580919</a></td></tr><tr><td><code>S-2025-bastani</code></td><td class='cell-main source-title-cell'>Generative AI without guardrails can harm learning: Evidence from high school mathematics <span class="cite-badge cite-ok">DOI ✓</span><details class="source-expander detail-expander"><summary>查看来源与溯源</summary><dl class="source-detail-grid"><div class="source-detail-row"><dt>原文标题</dt><dd>Generative AI without guardrails can harm learning: Evidence from high school mathematics</dd></div><div class="source-detail-row"><dt>年份</dt><dd>2025</dd></div><div class="source-detail-row"><dt>权威级别</dt><dd>T1 DOI 可验证论文</dd></div><div class="source-detail-row"><dt>来源位置</dt><dd>https://www.pnas.org/doi/10.1073/pnas.2422633122</dd></div><div class="source-detail-row"><dt>可验证链接</dt><dd><a href="https://www.pnas.org/doi/10.1073/pnas.2422633122">https://www.pnas.org/doi/10.1073/pnas.2422633122</a></dd></div></dl></details></td><td>2025</td><td>T1 DOI 可验证论文</td><td class='cell-main'><a href='https://www.pnas.org/doi/10.1073/pnas.2422633122'>https://www.pnas.org/doi/10.1073/pnas.2422633122</a></td></tr><tr><td><code>S-2024-marzuki</code></td><td class='cell-main source-title-cell'>Impact of ChatGPT on ESL students&#x27; academic writing skills <span class="cite-badge cite-ok">DOI ✓</span><details class="source-expander detail-expander"><summary>查看来源与溯源</summary><dl class="source-detail-grid"><div class="source-detail-row"><dt>原文标题</dt><dd>Impact of ChatGPT on ESL students&#x27; academic writing skills</dd></div><div class="source-detail-row"><dt>年份</dt><dd>2024</dd></div><div class="source-detail-row"><dt>权威级别</dt><dd>T1 DOI 可验证论文</dd></div><div class="source-detail-row"><dt>来源位置</dt><dd>https://link.springer.com/article/10.1186/s40561-024-00295-9</dd></div><div class="source-detail-row"><dt>可验证链接</dt><dd><a href="https://link.springer.com/article/10.1186/s40561-024-00295-9">https://link.springer.com/article/10.1186/s40561-024-00295-9</a></dd></div></dl></details></td><td>2024</td><td>T1 DOI 可验证论文</td><td class='cell-main'><a href='https://link.springer.com/article/10.1186/s40561-024-00295-9'>https://link.springer.com/article/10.1186/s40561-024-00295-9</a></td></tr><tr><td><code>S-2023-peng</code></td><td class='cell-main source-title-cell'>The Impact of AI on Developer Productivity: Evidence from GitHub Copilot <span class="cite-badge cite-ok">DOI ✓</span><details class="source-expander detail-expander"><summary>查看来源与溯源</summary><dl class="source-detail-grid"><div class="source-detail-row"><dt>原文标题</dt><dd>The Impact of AI on Developer Productivity: Evidence from GitHub Copilot</dd></div><div class="source-detail-row"><dt>年份</dt><dd>2023</dd></div><div class="source-detail-row"><dt>权威级别</dt><dd>Tier2 Academic Database</dd></div><div class="source-detail-row"><dt>来源位置</dt><dd>https://arxiv.org/abs/2302.06590</dd></div><div class="source-detail-row"><dt>可验证链接</dt><dd><a href="https://doi.org/10.48550/arXiv.2302.06590">https://doi.org/10.48550/arXiv.2302.06590</a></dd></div></dl></details></td><td>2023</td><td>Tier2 Academic Database</td><td class='cell-main'><a href='https://doi.org/10.48550/arXiv.2302.06590'>https://doi.org/10.48550/arXiv.2302.06590</a></td></tr><tr><td><code>S-2023-yetistiren</code></td><td class='cell-main source-title-cell'>GitHub Copilot AI Pair Programmer: Asset or Liability? <span class="cite-badge cite-ok">DOI ✓</span><details class="source-expander detail-expander"><summary>查看来源与溯源</summary><dl class="source-detail-grid"><div class="source-detail-row"><dt>原文标题</dt><dd>GitHub Copilot AI Pair Programmer: Asset or Liability?</dd></div><div class="source-detail-row"><dt>年份</dt><dd>2023</dd></div><div class="source-detail-row"><dt>权威级别</dt><dd>T1 DOI 可验证论文</dd></div><div class="source-detail-row"><dt>来源位置</dt><dd>https://doi.org/10.1016/j.jss.2023.111734</dd></div><div class="source-detail-row"><dt>可验证链接</dt><dd><a href="https://doi.org/10.1016/j.jss.2023.111734">https://doi.org/10.1016/j.jss.2023.111734</a></dd></div></dl></details></td><td>2023</td><td>T1 DOI 可验证论文</td><td class='cell-main'><a href='https://doi.org/10.1016/j.jss.2023.111734'>https://doi.org/10.1016/j.jss.2023.111734</a></td></tr><tr><td><code>S-2022-finnie-ansley</code></td><td class='cell-main source-title-cell'>Using GitHub Copilot to Solve Introductory Programming Problems <span class="cite-badge cite-ok">DOI ✓</span><details class="source-expander detail-expander"><summary>查看来源与溯源</summary><dl class="source-detail-grid"><div class="source-detail-row"><dt>原文标题</dt><dd>Using GitHub Copilot to Solve Introductory Programming Problems</dd></div><div class="source-detail-row"><dt>年份</dt><dd>2022</dd></div><div class="source-detail-row"><dt>权威级别</dt><dd>T1 DOI 可验证论文</dd></div><div class="source-detail-row"><dt>来源位置</dt><dd>https://dl.acm.org/doi/10.1145/3545945.3569830</dd></div><div class="source-detail-row"><dt>可验证链接</dt><dd><a href="https://dl.acm.org/doi/10.1145/3545945.3569830">https://dl.acm.org/doi/10.1145/3545945.3569830</a></dd></div></dl></details></td><td>2022</td><td>T1 DOI 可验证论文</td><td class='cell-main'><a href='https://dl.acm.org/doi/10.1145/3545945.3569830'>https://dl.acm.org/doi/10.1145/3545945.3569830</a></td></tr><tr><td><code>S-2023-explanations-compare</code></td><td class='cell-main source-title-cell'>Comparing Code Explanations Created by Students and Large Language Models <span class="cite-badge cite-ok">DOI ✓</span><details class="source-expander detail-expander"><summary>查看来源与溯源</summary><dl class="source-detail-grid"><div class="source-detail-row"><dt>原文标题</dt><dd>Comparing Code Explanations Created by Students and Large Language Models</dd></div><div class="source-detail-row"><dt>年份</dt><dd>2023</dd></div><div class="source-detail-row"><dt>权威级别</dt><dd>T1 DOI 可验证论文</dd></div><div class="source-detail-row"><dt>来源位置</dt><dd>https://dl.acm.org/doi/10.1145/3587102.3588785</dd></div><div class="source-detail-row"><dt>可验证链接</dt><dd><a href="https://dl.acm.org/doi/10.1145/3587102.3588785">https://dl.acm.org/doi/10.1145/3587102.3588785</a></dd></div></dl></details></td><td>2023</td><td>T1 DOI 可验证论文</td><td class='cell-main'><a href='https://dl.acm.org/doi/10.1145/3587102.3588785'>https://dl.acm.org/doi/10.1145/3587102.3588785</a></td></tr><tr><td><code>S-2022-vaithilingam</code></td><td class='cell-main source-title-cell'>Expectation vs. Experience: Evaluating the Usability of Code Generation Tools <span class="cite-badge cite-ok">DOI ✓</span><details class="source-expander detail-expander"><summary>查看来源与溯源</summary><dl class="source-detail-grid"><div class="source-detail-row"><dt>原文标题</dt><dd>Expectation vs. Experience: Evaluating the Usability of Code Generation Tools</dd></div><div class="source-detail-row"><dt>年份</dt><dd>2022</dd></div><div class="source-detail-row"><dt>权威级别</dt><dd>T1 DOI 可验证论文</dd></div><div class="source-detail-row"><dt>来源位置</dt><dd>https://dl.acm.org/doi/10.1145/3491101.3519665</dd></div><div class="source-detail-row"><dt>可验证链接</dt><dd><a href="https://dl.acm.org/doi/10.1145/3491101.3519665">https://dl.acm.org/doi/10.1145/3491101.3519665</a></dd></div></dl></details></td><td>2022</td><td>T1 DOI 可验证论文</td><td class='cell-main'><a href='https://dl.acm.org/doi/10.1145/3491101.3519665'>https://dl.acm.org/doi/10.1145/3491101.3519665</a></td></tr></tbody></table></div><h3>Fetch 溯源</h3><p class="provenance-summary">搜索提供方:n/a</p><p class='provenance-empty'>无逐条 fetch 记录(来源由研究管线直接提供)。</p></div></section></main></div>
2223
+ </div>
2224
+ <footer class="report-footer"><p>EduEvidence 证据报告 · Schema PASS · Claim Binding PASS · Numeric Consistency PASS · Bilingual Structure PASS · 语言人话化 PASS · 无伪精度 PASS · Lieflat 数据溯源 PASS · 坐标轴无失真 NOT_CHECKED · 色盲安全 NOT_CHECKED · 单文件离线可打开 · 数据源:result.json</p></footer>
2225
+ </div>
2226
+ <div class="report-shell" data-lang-body="en">
2227
+ <header class="report-header">
2228
+ <div class="report-brand-row"><span class="report-brand">EduEvidence</span><span class="generated-theme-chip">Academic Paper [Light]</span><span class="data-origin-chip" data-origin="manual_curated">Data: real studies · manually curated</span></div>
2229
+ <h1>我们准备在大学一年级 C 语言课程中允许学生使用生成式 AI 编程助手。它到底会不会提高学习效果?应该怎样引入?</h1>
2230
+ <p class="meta">Mode: Platform native · Generated: 2026-08-24 · Evidence: 12 · Sources: 8</p>
2231
+ <nav class="report-view-switcher" aria-label="report view">
2232
+ <button type="button" class="report-view-btn active" data-report-view="brief" aria-pressed="true">Visual Brief</button>
2233
+ <button type="button" class="report-view-btn" data-report-view="full" aria-pressed="false">Full Report</button>
2234
+ </nav>
2235
+ </header>
2236
+ <div class="report-page report-page-brief" data-report-page="brief"><nav class="brief-navigation" aria-label="Brief navigation"><a href="#brief-decision-en"><span>01</span>Decision first</a><a href="#brief-outcomes-en"><span>02</span>Task performance ≠ learning</a><a href="#brief-tribunal-en"><span>03</span>Evidence tribunal</a><a href="#brief-action-en"><span>04</span>Evidence to action</a><a href="#brief-sources-en"><span>05</span>Key sources</a></nav><div class="brief-reading-content"><section class="brief-block brief-decision" id="brief-decision-en"><header class="brief-block-header"><h2>Decision first</h2><p>What to do, how confident we are, and the most important evidence boundary.</p></header><div class="brief-block-body">
2237
+ <div class="decision-hero pilot" data-visual="decision-hero">
2238
+ <div class="hero-decision">
2239
+ <span class="eyebrow">Recommended decision</span>
2240
+ <strong class="decision-value">Pilot</strong>
2241
+ <span class="confidence-badge">Confidence · Moderate</span>
2242
+ </div>
2243
+ <p class="hero-rationale">Positive task-performance evidence plus documented unguarded-access risk, mixed quality/usability signals, and missing university-level learning evidence → bounded, guardrailed pilot with evaluation, not full adoption.</p>
2244
+ <div class="hero-insights">
2245
+ <article class="hero-insight support"><span>Strongest supported conclusion</span><p class="hero-insight-text">AI coding assistants reliably speed up practice work: completion rate 1.15x and time 0.57x in a randomised trial of 69 novices.</p></article>
2246
+ <article class="hero-insight uncertain"><span>Key uncertainty / contradiction</span><p class="hero-insight-text">No university-level RCT measures learning directly, and the one large trial that did - unguarded GPT-4 - saw independent exam scores fall 17%.</p></article>
2247
+ <article class="hero-insight risk"><span>Main risk</span><p class="hero-insight-text">Unguarded access can raise practice performance while lowering independent exam performance, and learners may not notice the gap.</p></article>
2248
+ <article class="hero-insight next"><span>Next action</span><p class="hero-insight-text">Run a phased CS1 pilot with hints-not-answers guardrails, weekly lab use, and a no-AI transfer exam that can stop the pilot.</p></article>
2249
+ </div>
2250
+ <p class="hero-provenance"><span>Evidence / sources</span> · 12 / 8</p>
2251
+ </div></div></section><section class="brief-block brief-outcomes" id="brief-outcomes-en"><header class="brief-block-header"><h2>Task performance ≠ learning</h2><p>Only informative outcome separation; positive, negative and null effects use effect_direction.</p></header><div class="brief-block-body"><div class="outcome-separation" data-visual="outcome-separation"><div class="visual-heading"><h3>Outcome Separation · Task performance ≠ learning</h3><p>Outcomes are adjudicated separately so faster training performance is not silently treated as evidence of learning.</p><p class="semantic-note">Effect direction comes from evidence.effect_direction; supporting a claim does not imply a positive outcome.</p></div><div class="outcome-groups"><article class="outcome-group outcome-task"><h3>Task / proximal performance</h3><ul><li><strong>Completion time</strong><span class="outcome-states"><span class="dir pos">Positive effect 2</span></span></li><li><strong>Code quality</strong><span class="outcome-states"><span class="dir neu">Null effect 1</span></span></li><li><strong>Assignment score</strong><span class="outcome-states"><span class="dir pos">Positive effect 2</span></span></li></ul></article><article class="outcome-group outcome-learning"><h3>Learning / retention / transfer</h3><ul><li><strong>Knowledge gain</strong><span class="outcome-states"><span class="dir pos">Positive effect 1</span></span></li><li><strong>Retention</strong><span class="outcome-states"><span class="dir neu">Null effect 1</span></span></li><li><strong>Independent problem solving</strong><span class="outcome-states"><span class="dir neg">Negative effect 1</span><span class="dir neu">Null effect 2</span></span></li></ul></article><article class="outcome-group outcome-risk"><h3>Risk / dependency</h3><ul><li><strong>Over-reliance</strong><span class="outcome-states"><span class="dir neg">Negative effect 1</span></span></li></ul></article><article class="outcome-group outcome-other"><h3>Other outcomes</h3><ul><li><strong>Metacognition</strong><span class="outcome-states"><span class="dir pos">Positive effect 1</span></span></li></ul></article></div></div><div class="visual-surface brief-chart" data-visual="outcome-evidence-balance"><svg viewBox="0 0 720 300" xmlns="http://www.w3.org/2000/svg" role="img" aria-label="Outcome evidence effect balance"><title>Outcome evidence effect balance</title><desc>Positive / negative / null effect counts per outcome (based on effect_direction, not claim support).</desc><rect x="0" y="0" width="720" height="300" fill="#FFFFFF"/><line x1="439.0" y1="46" x2="439.0" y2="182" stroke="#999" stroke-width="1" stroke-dasharray="3,3"/><text x="190" y="58.0" text-anchor="end" font-size="11" fill="#333">Knowledge gain</text><rect x="439.0" y="49.8" width="120.5" height="9.4" fill="#5E8A6A"/><text x="499.2" y="58.0" text-anchor="middle" font-size="9" fill="#fff">1</text><text x="190" y="75.0" text-anchor="end" font-size="11" fill="#333">Retention</text><text x="190" y="92.0" text-anchor="end" font-size="11" fill="#333">Independent problem solving</text><rect x="318.5" y="83.8" width="120.5" height="9.4" fill="#A85B53"/><text x="378.8" y="92.0" text-anchor="middle" font-size="9" fill="#fff">-1</text><text x="190" y="109.0" text-anchor="end" font-size="11" fill="#333">Completion time</text><rect x="439.0" y="100.8" width="241.0" height="9.4" fill="#5E8A6A"/><text x="559.5" y="109.0" text-anchor="middle" font-size="9" fill="#fff">2</text><text x="190" y="126.0" text-anchor="end" font-size="11" fill="#333">Code quality</text><text x="190" y="143.0" text-anchor="end" font-size="11" fill="#333">Assignment score</text><rect x="439.0" y="134.8" width="241.0" height="9.4" fill="#5E8A6A"/><text x="559.5" y="143.0" text-anchor="middle" font-size="9" fill="#fff">2</text><text x="190" y="160.0" text-anchor="end" font-size="11" fill="#333">Metacognition</text><rect x="439.0" y="151.8" width="120.5" height="9.4" fill="#5E8A6A"/><text x="499.2" y="160.0" text-anchor="middle" font-size="9" fill="#fff">1</text><text x="190" y="177.0" text-anchor="end" font-size="11" fill="#333">Over-reliance</text><rect x="318.5" y="168.8" width="120.5" height="9.4" fill="#A85B53"/><text x="378.8" y="177.0" text-anchor="middle" font-size="9" fill="#fff">-1</text><rect x="439.0" y="206.1" width="8.0" height="6" fill="#C99A4A"/><rect x="439.0" y="214.9" width="8.0" height="6" fill="#C99A4A"/><rect x="439.0" y="232.4" width="8.0" height="6" fill="#C99A4A"/><rect x="198" y="14" width="10" height="10" fill="#5E8A6A"/><text x="212" y="23" font-size="10" fill="#333">Positive effect</text><rect x="395" y="14" width="10" height="10" fill="#A85B53"/><text x="409" y="23" font-size="10" fill="#333">Negative effect</text><rect x="592" y="14" width="10" height="10" fill="#C99A4A"/><text x="606" y="23" font-size="10" fill="#333">Null effect</text></svg><p class="chart-interpretation"><strong>What this means: </strong>Positive / negative / null effect-direction evidence counts per outcome. This visual encodes effect_direction, not whether evidence supports a claim.</p></div></div></section><section class="brief-block brief-tribunal" id="brief-tribunal-en"><header class="brief-block-header"><h2>Evidence tribunal</h2><p>Supported, uncertain, contradicted and missing evidence stay separated instead of flattened into long prose.</p></header><div class="brief-block-body"><div class="evidence-tribunal" data-visual="evidence-tribunal-grid"><p class="tribunal-summary"><strong>Decision: </strong>Pilot · <strong>Confidence: </strong>Moderate</p><div class="tribunal-grid"><article class="tribunal-card supported"><header><span aria-hidden="true">✓</span><h3>Can claim</h3><span class="tribunal-count">7</span></header><ul><li><p>AI coding assistants reliably increase task performance during training (completion speed, correctness) — E-001, E-006.</p><div class="tribunal-evidence-refs"><code>E-001</code><code>E-006</code></div></li><li><p>Unguarded generative AI access can harm independent problem solving when access is removed — E-004.</p><div class="tribunal-evidence-refs"><code>E-004</code></div></li><li><p>Guardrail design (hints instead of answers) substantially mitigates the negative learning effect — E-005.</p><div class="tribunal-evidence-refs"><code>E-005</code></div></li></ul><details class="tribunal-more"><summary>View 4 more</summary><ul><li><p>Task performance gains do not automatically imply learning gains — E-004 vs E-006 (within-study contrast).</p><div class="tribunal-evidence-refs"><code>E-004</code><code>E-006</code></div></li><li><p>Tool capability is substantial: Codex solves roughly half to three-quarters of CS1 exam-style questions — E-010.</p><div class="tribunal-evidence-refs"><code>E-010</code></div></li><li><p>Professional-developer RCT shows ~55% faster task completion with Copilot; directness limited by professional population — E-008.</p><div class="tribunal-evidence-refs"><code>E-008</code></div></li><li><p>LLM code explanations rate comparable to student-authored explanations, viable as scaffold material — E-011.</p><div class="tribunal-evidence-refs"><code>E-011</code></div></li></ul></details></article><article class="tribunal-card uncertain"><header><span aria-hidden="true">?</span><h3>Cannot yet claim</h3><span class="tribunal-count">4</span></header><ul><li><p>Whether AI coding assistants improve or preserve actual programming learning in university novices — no direct university-level RCT in reviewed set [无直接证据]</p></li><li><p>Whether one-week neutral retention (Kazemitabaar 2023) extends to a semester — E-003.</p><div class="tribunal-evidence-refs"><code>E-003</code></div></li><li><p>Whether benchmark quality findings (E-009) and explanation-quality ratings (E-011) translate into classroom learning gains.</p><div class="tribunal-evidence-refs"><code>E-009</code><code>E-011</code></div></li></ul><details class="tribunal-more"><summary>View 1 more</summary><ul><li><p>How comprehension/ownership difficulties documented in usability studies (E-012) behave over a full semester with guardrails.</p><div class="tribunal-evidence-refs"><code>E-012</code></div></li></ul></details></article><article class="tribunal-card contradicted"><header><span aria-hidden="true">×</span><h3>Contradicted claims</h3><span class="tribunal-count">2</span></header><ul><li><p>The claim &#x27;AI tools always improve learning&#x27; is contradicted by E-004 (unguarded access, -17% independent exam).</p><div class="tribunal-evidence-refs"><code>E-004</code></div></li><li><p>The claim &#x27;speed gains equal learning gains&#x27; is contradicted by the task-vs-learning separation across E-001/E-006/E-008 vs E-004.</p><div class="tribunal-evidence-refs"><code>E-001</code><code>E-006</code><code>E-008</code><code>E-004</code></div></li></ul></article><article class="tribunal-card missing"><header><span aria-hidden="true">…</span><h3>Missing evidence</h3><span class="tribunal-count">4</span></header><ul><li><p>RCT of AI coding assistants in university programming courses with retention and no-AI transfer tests.</p></li><li><p>Studies varying AI usage policy within the same course.</p></li><li><p>Longitudinal data on AI dependency beyond one course.</p></li></ul><details class="tribunal-more"><summary>View 1 more</summary><ul><li><p>Peer-reviewed replication of the professional speed RCT (Peng et al. remains a preprint).</p></li></ul></details></article></div></div></div></section><section class="brief-block brief-action" id="brief-action-en"><header class="brief-block-header"><h2>Evidence to action</h2><p>Applicability, guardrails, stop conditions and evaluation form one executable path.</p></header><div class="brief-block-body"><div class="evidence-to-action" data-visual="evidence-to-action"><article class="action-node action-evidence"><span>Evidence</span><p class="action-node-text">AI coding assistants reliably increase task performance during training (completion speed, correctness) — E-001, E-006.</p></article><span class="flow-arrow" aria-hidden="true">→</span><article class="action-node action-applicability"><span>Applicability</span><p class="action-node-text">pilot in first-year C course with guardrailed usage policy</p></article><span class="flow-arrow" aria-hidden="true">→</span><article class="action-node action-decision"><span>Decision</span><p class="action-node-text">Pilot</p></article><span class="flow-arrow" aria-hidden="true">→</span><article class="action-node action-guardrails"><span>Guardrails</span><div class="action-node-text"><p>AI usage is allowed in three explicitly graded modes (explain / collaborate / no-AI-transfer).…</p><details class="detail-expander"><summary>Expand full explanation</summary><div class="detail-body"><p>AI usage is allowed in three explicitly graded modes (explain / collaborate / no-AI-transfer). Copying unexamined AI output is an academic integrity violation and is assessed via the reasoning-trace requirement.</p></div></details></div></article><span class="flow-arrow" aria-hidden="true">→</span><article class="action-node action-stop"><span>Stop conditions</span><div class="action-node-text"><p>transfer-test scores drop significantly below baseline cohort expectations; widespread integrity violations in reasoning traces;…</p><details class="detail-expander"><summary>Expand full explanation</summary><div class="detail-body"><p>transfer-test scores drop significantly below baseline cohort expectations; widespread integrity violations in reasoning traces; AI dependency signals exceed threshold in risk metrics; TA/teacher workload becomes unsustainable</p></div></details></div></article><span class="flow-arrow" aria-hidden="true">→</span><article class="action-node action-evaluation"><span>Evaluation</span><div class="action-node-text"><p>treatment group shows non-inferior independent problem solving (delta within 5%) AND superior or equal retention AND AI dependency index below thresho…</p><details class="detail-expander"><summary>Expand full explanation</summary><div class="detail-body"><p>treatment group shows non-inferior independent problem solving (delta within 5%) AND superior or equal retention AND AI dependency index below threshold; if independent problem solving declines &gt;10%, the pilot is judged unsuccessful regardless of task-performance gains.</p></div></details></div></article></div></div></section><section class="brief-block brief-lieflat" id="brief-lieflat-en"><header class="brief-block-header"><h2>Lieflat Editorial Gallery</h2><p>Charts selected and composed by AI from the Lieflat catalog; every number traces back to result.json.</p></header><div class="brief-block-body"><div class="lieflat-gallery-container"><figure class="lieflat-card" data-lieflat data-visual="lieflat-bubble_almanac" data-chart-id="lieflat-bubble-almanac.svg"><h3 class="lieflat-title">Year × dimension evidence almanac</h3><p class="lieflat-sub">Bubble area ∝ study count · solid core = significant results</p><div class="lieflat-figure"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 540 300" width="100%" height="100%" role="img" aria-label="Year × dimension evidence almanac" style="background:#FAFAFA;">
2252
+ <line x1="44" y1="70.0" x2="520" y2="70.0" stroke="#E2E8F0" stroke-width="0.5" class="lf-fade" style="--motion-delay:0ms"/>
2253
+ <line x1="44" y1="77.0" x2="520" y2="77.0" stroke="#E2E8F0" stroke-width="0.5" class="lf-fade" style="--motion-delay:14ms"/>
2254
+ <line x1="44" y1="84.0" x2="520" y2="84.0" stroke="#E2E8F0" stroke-width="0.5" class="lf-fade" style="--motion-delay:28ms"/>
2255
+ <line x1="44" y1="91.0" x2="520" y2="91.0" stroke="#E2E8F0" stroke-width="0.5" class="lf-fade" style="--motion-delay:42ms"/>
2256
+ <line x1="44" y1="98.0" x2="520" y2="98.0" stroke="#E2E8F0" stroke-width="0.5" class="lf-fade" style="--motion-delay:56ms"/>
2257
+ <line x1="44" y1="105.0" x2="520" y2="105.0" stroke="#E2E8F0" stroke-width="0.5" class="lf-fade" style="--motion-delay:70ms"/>
2258
+ <line x1="44" y1="112.0" x2="520" y2="112.0" stroke="#E2E8F0" stroke-width="0.5" class="lf-fade" style="--motion-delay:84ms"/>
2259
+ <line x1="44" y1="119.0" x2="520" y2="119.0" stroke="#E2E8F0" stroke-width="0.5" class="lf-fade" style="--motion-delay:98ms"/>
2260
+ <line x1="44" y1="126.0" x2="520" y2="126.0" stroke="#E2E8F0" stroke-width="0.5" class="lf-fade" style="--motion-delay:112ms"/>
2261
+ <line x1="44" y1="133.0" x2="520" y2="133.0" stroke="#E2E8F0" stroke-width="0.5" class="lf-fade" style="--motion-delay:126ms"/>
2262
+ <line x1="44" y1="140.0" x2="520" y2="140.0" stroke="#E2E8F0" stroke-width="0.5" class="lf-fade" style="--motion-delay:140ms"/>
2263
+ <line x1="44" y1="147.0" x2="520" y2="147.0" stroke="#E2E8F0" stroke-width="0.5" class="lf-fade" style="--motion-delay:154ms"/>
2264
+ <line x1="44" y1="154.0" x2="520" y2="154.0" stroke="#E2E8F0" stroke-width="0.5" class="lf-fade" style="--motion-delay:168ms"/>
2265
+ <line x1="44" y1="161.0" x2="520" y2="161.0" stroke="#E2E8F0" stroke-width="0.5" class="lf-fade" style="--motion-delay:182ms"/>
2266
+ <line x1="44" y1="168.0" x2="520" y2="168.0" stroke="#E2E8F0" stroke-width="0.5" class="lf-fade" style="--motion-delay:196ms"/>
2267
+ <line x1="44" y1="175.0" x2="520" y2="175.0" stroke="#E2E8F0" stroke-width="0.5" class="lf-fade" style="--motion-delay:210ms"/>
2268
+ <line x1="44" y1="182.0" x2="520" y2="182.0" stroke="#E2E8F0" stroke-width="0.5" class="lf-fade" style="--motion-delay:224ms"/>
2269
+ <line x1="44" y1="189.0" x2="520" y2="189.0" stroke="#E2E8F0" stroke-width="0.5" class="lf-fade" style="--motion-delay:238ms"/>
2270
+ <line x1="44" y1="196.0" x2="520" y2="196.0" stroke="#E2E8F0" stroke-width="0.5" class="lf-fade" style="--motion-delay:252ms"/>
2271
+ <line x1="44" y1="203.0" x2="520" y2="203.0" stroke="#E2E8F0" stroke-width="0.5" class="lf-fade" style="--motion-delay:266ms"/>
2272
+ <line x1="44" y1="210.0" x2="520" y2="210.0" stroke="#E2E8F0" stroke-width="0.5" class="lf-fade" style="--motion-delay:280ms"/>
2273
+ <line x1="44" y1="217.0" x2="520" y2="217.0" stroke="#E2E8F0" stroke-width="0.5" class="lf-fade" style="--motion-delay:294ms"/>
2274
+ <line x1="44" y1="224.0" x2="520" y2="224.0" stroke="#E2E8F0" stroke-width="0.5" class="lf-fade" style="--motion-delay:308ms"/>
2275
+ <line x1="44" y1="231.0" x2="520" y2="231.0" stroke="#E2E8F0" stroke-width="0.5" class="lf-fade" style="--motion-delay:322ms"/>
2276
+ <line x1="44" y1="238.0" x2="520" y2="238.0" stroke="#E2E8F0" stroke-width="0.5" class="lf-fade" style="--motion-delay:336ms"/>
2277
+ <line x1="44" y1="245.0" x2="520" y2="245.0" stroke="#E2E8F0" stroke-width="0.5" class="lf-fade" style="--motion-delay:350ms"/>
2278
+ <line x1="44" y1="252.0" x2="520" y2="252.0" stroke="#E2E8F0" stroke-width="0.5" class="lf-fade" style="--motion-delay:364ms"/>
2279
+ <line x1="44" y1="259.0" x2="520" y2="259.0" stroke="#E2E8F0" stroke-width="0.5" class="lf-fade" style="--motion-delay:378ms"/>
2280
+ <text x="150" y="76" fill="#0F172A" font-size="9" font-weight="600" text-anchor="middle" class="lf-fade" style="--motion-delay:40ms">Completion tim</text>
2281
+ <text x="203" y="76" fill="#0F172A" font-size="9" font-weight="600" text-anchor="middle" class="lf-fade" style="--motion-delay:140ms">Independent pr</text>
2282
+ <text x="256" y="76" fill="#0F172A" font-size="9" font-weight="600" text-anchor="middle" class="lf-fade" style="--motion-delay:240ms">Retention</text>
2283
+ <text x="309" y="76" fill="#0F172A" font-size="9" font-weight="600" text-anchor="middle" class="lf-fade" style="--motion-delay:340ms">Assignment sco</text>
2284
+ <text x="361" y="76" fill="#0F172A" font-size="9" font-weight="600" text-anchor="middle" class="lf-fade" style="--motion-delay:440ms">Knowledge gain</text>
2285
+ <text x="414" y="76" fill="#0F172A" font-size="9" font-weight="600" text-anchor="middle" class="lf-fade" style="--motion-delay:540ms">Code quality</text>
2286
+ <text x="467" y="76" fill="#0F172A" font-size="9" font-weight="600" text-anchor="middle" class="lf-fade" style="--motion-delay:640ms">Metacognition</text>
2287
+ <text x="488.1" y="76" fill="#0F172A" font-size="9" font-weight="600" text-anchor="middle" class="lf-fade" style="--motion-delay:740ms">Over-reliance</text>
2288
+ <text x="96" y="96.0" fill="#475569" font-size="9" font-weight="800" text-anchor="end" class="lf-fade" style="--motion-delay:80ms">2022</text>
2289
+ <text x="96" y="140.0" fill="#475569" font-size="9" font-weight="800" text-anchor="end" class="lf-fade" style="--motion-delay:180ms">2023</text>
2290
+ <text x="96" y="184.0" fill="#475569" font-size="9" font-weight="800" text-anchor="end" class="lf-fade" style="--motion-delay:280ms">2024</text>
2291
+ <text x="96" y="228.0" fill="#475569" font-size="9" font-weight="800" text-anchor="end" class="lf-fade" style="--motion-delay:380ms">2025</text>
2292
+ <circle cx="308.6" cy="92.0" r="3.6" fill="#0F172A" fill-opacity="0.22" stroke="#0F172A" stroke-width="1.2" class="lf-pop" style="--motion-delay:100ms"><title>Assignment score (2022) — N = 1 studies, significant = 0</title></circle>
2293
+ <circle cx="520.0" cy="92.0" r="3.6" fill="#0F172A" fill-opacity="0.22" stroke="#0F172A" stroke-width="1.2" class="lf-pop" style="--motion-delay:112ms"><title>Over-reliance (2022) — N = 1 studies, significant = 0</title></circle>
2294
+ <circle cx="150.0" cy="136.0" r="5.1" fill="#0F172A" fill-opacity="0.22" stroke="#0F172A" stroke-width="1.2" class="lf-pop" style="--motion-delay:124ms"><title>Completion time (2023) — N = 2 studies, significant = 0</title></circle>
2295
+ <circle cx="202.9" cy="136.0" r="3.6" fill="#0F172A" fill-opacity="0.22" stroke="#0F172A" stroke-width="1.2" class="lf-pop" style="--motion-delay:136ms"><title>Independent problem solving (2023) — N = 1 studies, significant = 0</title></circle>
2296
+ <circle cx="255.7" cy="136.0" r="3.6" fill="#0F172A" fill-opacity="0.22" stroke="#0F172A" stroke-width="1.2" class="lf-pop" style="--motion-delay:148ms"><title>Retention (2023) — N = 1 studies, significant = 0</title></circle>
2297
+ <circle cx="414.3" cy="136.0" r="3.6" fill="#0F172A" fill-opacity="0.22" stroke="#0F172A" stroke-width="1.2" class="lf-pop" style="--motion-delay:160ms"><title>Code quality (2023) — N = 1 studies, significant = 0</title></circle>
2298
+ <circle cx="467.1" cy="136.0" r="3.6" fill="#0F172A" fill-opacity="0.22" stroke="#0F172A" stroke-width="1.2" class="lf-pop" style="--motion-delay:172ms"><title>Metacognition (2023) — N = 1 studies, significant = 0</title></circle>
2299
+ <circle cx="361.4" cy="180.0" r="3.6" fill="#0F172A" fill-opacity="0.22" stroke="#0F172A" stroke-width="1.2" class="lf-pop" style="--motion-delay:184ms"><title>Knowledge gain (2024) — N = 1 studies, significant = 0</title></circle>
2300
+ <circle cx="202.9" cy="224.0" r="5.1" fill="#0F172A" fill-opacity="0.22" stroke="#0F172A" stroke-width="1.2" class="lf-pop" style="--motion-delay:196ms"><title>Independent problem solving (2025) — N = 2 studies, significant = 0</title></circle>
2301
+ <circle cx="308.6" cy="224.0" r="3.6" fill="#0F172A" fill-opacity="0.22" stroke="#0F172A" stroke-width="1.2" class="lf-pop" style="--motion-delay:208ms"><title>Assignment score (2025) — N = 1 studies, significant = 0</title></circle>
2302
+ </svg></div><figcaption class="lieflat-caption">Drawn only when years and outcome dimensions exist.</figcaption><p class="lieflat-src">L9 Bubble Almanac · Evidence.year X Dimension</p></figure><figure class="lieflat-card" data-lieflat data-visual="lieflat-matrix_heat" data-chart-id="lieflat-matrix-heat.svg"><h3 class="lieflat-title">Year × outcome evidence density</h3><p class="lieflat-sub">Each cell counts evidence items for that year and outcome</p><div class="lieflat-figure"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 540 440" width="100%" height="100%" role="img" aria-label="Year × outcome evidence density" style="background:#FAFAFA;">
2303
+ <text x="196.2" y="66" text-anchor="middle" font-size="9" font-weight="800" fill="#475569" class="lf-fade" style="--motion-delay:40ms">2022</text>
2304
+ <text x="288.8" y="66" text-anchor="middle" font-size="9" font-weight="800" fill="#475569" class="lf-fade" style="--motion-delay:140ms">2023</text>
2305
+ <text x="381.2" y="66" text-anchor="middle" font-size="9" font-weight="800" fill="#475569" class="lf-fade" style="--motion-delay:240ms">2024</text>
2306
+ <text x="473.8" y="66" text-anchor="middle" font-size="9" font-weight="800" fill="#475569" class="lf-fade" style="--motion-delay:340ms">2025</text>
2307
+ <text x="138" y="97.0" text-anchor="end" font-size="8" font-weight="600" fill="#475569" class="lf-fade" style="--motion-delay:60ms">Completion tim</text>
2308
+ <rect x="152.0" y="80.0" width="88.5" height="28" rx="4" fill="#E2E8F0" fill-opacity="0.5" class="lf-fade" style="--motion-delay:0ms"/>
2309
+ <text x="196.2" y="97.0" text-anchor="middle" font-size="8.0" font-weight="800" fill="#0F172A" class="lf-pop" style="--motion-delay:60ms">0</text>
2310
+ <rect x="244.5" y="80.0" width="88.5" height="28" rx="4" fill="#0F172A" fill-opacity="0.90" class="lf-pop" style="--motion-delay:12ms"/>
2311
+ <text x="288.8" y="97.0" text-anchor="middle" font-size="8.0" font-weight="800" fill="#0F172A" class="lf-pop" style="--motion-delay:72ms">2</text>
2312
+ <rect x="337.0" y="80.0" width="88.5" height="28" rx="4" fill="#E2E8F0" fill-opacity="0.5" class="lf-fade" style="--motion-delay:24ms"/>
2313
+ <text x="381.2" y="97.0" text-anchor="middle" font-size="8.0" font-weight="800" fill="#0F172A" class="lf-pop" style="--motion-delay:84ms">0</text>
2314
+ <rect x="429.5" y="80.0" width="88.5" height="28" rx="4" fill="#E2E8F0" fill-opacity="0.5" class="lf-fade" style="--motion-delay:36ms"/>
2315
+ <text x="473.8" y="97.0" text-anchor="middle" font-size="8.0" font-weight="800" fill="#0F172A" class="lf-pop" style="--motion-delay:96ms">0</text>
2316
+ <text x="138" y="129.0" text-anchor="end" font-size="8" font-weight="600" fill="#475569" class="lf-fade" style="--motion-delay:160ms">Independent pr</text>
2317
+ <rect x="152.0" y="112.0" width="88.5" height="28" rx="4" fill="#E2E8F0" fill-opacity="0.5" class="lf-fade" style="--motion-delay:12ms"/>
2318
+ <text x="196.2" y="129.0" text-anchor="middle" font-size="8.0" font-weight="800" fill="#0F172A" class="lf-pop" style="--motion-delay:72ms">0</text>
2319
+ <rect x="244.5" y="112.0" width="88.5" height="28" rx="4" fill="#0F172A" fill-opacity="0.54" class="lf-pop" style="--motion-delay:24ms"/>
2320
+ <text x="288.8" y="129.0" text-anchor="middle" font-size="8.0" font-weight="800" fill="#0F172A" class="lf-pop" style="--motion-delay:84ms">1</text>
2321
+ <rect x="337.0" y="112.0" width="88.5" height="28" rx="4" fill="#E2E8F0" fill-opacity="0.5" class="lf-fade" style="--motion-delay:36ms"/>
2322
+ <text x="381.2" y="129.0" text-anchor="middle" font-size="8.0" font-weight="800" fill="#0F172A" class="lf-pop" style="--motion-delay:96ms">0</text>
2323
+ <rect x="429.5" y="112.0" width="88.5" height="28" rx="4" fill="#0F172A" fill-opacity="0.90" class="lf-pop" style="--motion-delay:48ms"/>
2324
+ <text x="473.8" y="129.0" text-anchor="middle" font-size="8.0" font-weight="800" fill="#0F172A" class="lf-pop" style="--motion-delay:108ms">2</text>
2325
+ <text x="138" y="161.0" text-anchor="end" font-size="8" font-weight="600" fill="#475569" class="lf-fade" style="--motion-delay:260ms">Retention</text>
2326
+ <rect x="152.0" y="144.0" width="88.5" height="28" rx="4" fill="#E2E8F0" fill-opacity="0.5" class="lf-fade" style="--motion-delay:24ms"/>
2327
+ <text x="196.2" y="161.0" text-anchor="middle" font-size="8.0" font-weight="800" fill="#0F172A" class="lf-pop" style="--motion-delay:84ms">0</text>
2328
+ <rect x="244.5" y="144.0" width="88.5" height="28" rx="4" fill="#0F172A" fill-opacity="0.54" class="lf-pop" style="--motion-delay:36ms"/>
2329
+ <text x="288.8" y="161.0" text-anchor="middle" font-size="8.0" font-weight="800" fill="#0F172A" class="lf-pop" style="--motion-delay:96ms">1</text>
2330
+ <rect x="337.0" y="144.0" width="88.5" height="28" rx="4" fill="#E2E8F0" fill-opacity="0.5" class="lf-fade" style="--motion-delay:48ms"/>
2331
+ <text x="381.2" y="161.0" text-anchor="middle" font-size="8.0" font-weight="800" fill="#0F172A" class="lf-pop" style="--motion-delay:108ms">0</text>
2332
+ <rect x="429.5" y="144.0" width="88.5" height="28" rx="4" fill="#E2E8F0" fill-opacity="0.5" class="lf-fade" style="--motion-delay:60ms"/>
2333
+ <text x="473.8" y="161.0" text-anchor="middle" font-size="8.0" font-weight="800" fill="#0F172A" class="lf-pop" style="--motion-delay:120ms">0</text>
2334
+ <text x="138" y="193.0" text-anchor="end" font-size="8" font-weight="600" fill="#475569" class="lf-fade" style="--motion-delay:360ms">Assignment sco</text>
2335
+ <rect x="152.0" y="176.0" width="88.5" height="28" rx="4" fill="#0F172A" fill-opacity="0.54" class="lf-pop" style="--motion-delay:36ms"/>
2336
+ <text x="196.2" y="193.0" text-anchor="middle" font-size="8.0" font-weight="800" fill="#0F172A" class="lf-pop" style="--motion-delay:96ms">1</text>
2337
+ <rect x="244.5" y="176.0" width="88.5" height="28" rx="4" fill="#E2E8F0" fill-opacity="0.5" class="lf-fade" style="--motion-delay:48ms"/>
2338
+ <text x="288.8" y="193.0" text-anchor="middle" font-size="8.0" font-weight="800" fill="#0F172A" class="lf-pop" style="--motion-delay:108ms">0</text>
2339
+ <rect x="337.0" y="176.0" width="88.5" height="28" rx="4" fill="#E2E8F0" fill-opacity="0.5" class="lf-fade" style="--motion-delay:60ms"/>
2340
+ <text x="381.2" y="193.0" text-anchor="middle" font-size="8.0" font-weight="800" fill="#0F172A" class="lf-pop" style="--motion-delay:120ms">0</text>
2341
+ <rect x="429.5" y="176.0" width="88.5" height="28" rx="4" fill="#0F172A" fill-opacity="0.54" class="lf-pop" style="--motion-delay:72ms"/>
2342
+ <text x="473.8" y="193.0" text-anchor="middle" font-size="8.0" font-weight="800" fill="#0F172A" class="lf-pop" style="--motion-delay:132ms">1</text>
2343
+ <text x="138" y="225.0" text-anchor="end" font-size="8" font-weight="600" fill="#475569" class="lf-fade" style="--motion-delay:460ms">Knowledge gain</text>
2344
+ <rect x="152.0" y="208.0" width="88.5" height="28" rx="4" fill="#E2E8F0" fill-opacity="0.5" class="lf-fade" style="--motion-delay:48ms"/>
2345
+ <text x="196.2" y="225.0" text-anchor="middle" font-size="8.0" font-weight="800" fill="#0F172A" class="lf-pop" style="--motion-delay:108ms">0</text>
2346
+ <rect x="244.5" y="208.0" width="88.5" height="28" rx="4" fill="#E2E8F0" fill-opacity="0.5" class="lf-fade" style="--motion-delay:60ms"/>
2347
+ <text x="288.8" y="225.0" text-anchor="middle" font-size="8.0" font-weight="800" fill="#0F172A" class="lf-pop" style="--motion-delay:120ms">0</text>
2348
+ <rect x="337.0" y="208.0" width="88.5" height="28" rx="4" fill="#0F172A" fill-opacity="0.54" class="lf-pop" style="--motion-delay:72ms"/>
2349
+ <text x="381.2" y="225.0" text-anchor="middle" font-size="8.0" font-weight="800" fill="#0F172A" class="lf-pop" style="--motion-delay:132ms">1</text>
2350
+ <rect x="429.5" y="208.0" width="88.5" height="28" rx="4" fill="#E2E8F0" fill-opacity="0.5" class="lf-fade" style="--motion-delay:84ms"/>
2351
+ <text x="473.8" y="225.0" text-anchor="middle" font-size="8.0" font-weight="800" fill="#0F172A" class="lf-pop" style="--motion-delay:144ms">0</text>
2352
+ <text x="138" y="257.0" text-anchor="end" font-size="8" font-weight="600" fill="#475569" class="lf-fade" style="--motion-delay:560ms">Code quality</text>
2353
+ <rect x="152.0" y="240.0" width="88.5" height="28" rx="4" fill="#E2E8F0" fill-opacity="0.5" class="lf-fade" style="--motion-delay:60ms"/>
2354
+ <text x="196.2" y="257.0" text-anchor="middle" font-size="8.0" font-weight="800" fill="#0F172A" class="lf-pop" style="--motion-delay:120ms">0</text>
2355
+ <rect x="244.5" y="240.0" width="88.5" height="28" rx="4" fill="#0F172A" fill-opacity="0.54" class="lf-pop" style="--motion-delay:72ms"/>
2356
+ <text x="288.8" y="257.0" text-anchor="middle" font-size="8.0" font-weight="800" fill="#0F172A" class="lf-pop" style="--motion-delay:132ms">1</text>
2357
+ <rect x="337.0" y="240.0" width="88.5" height="28" rx="4" fill="#E2E8F0" fill-opacity="0.5" class="lf-fade" style="--motion-delay:84ms"/>
2358
+ <text x="381.2" y="257.0" text-anchor="middle" font-size="8.0" font-weight="800" fill="#0F172A" class="lf-pop" style="--motion-delay:144ms">0</text>
2359
+ <rect x="429.5" y="240.0" width="88.5" height="28" rx="4" fill="#E2E8F0" fill-opacity="0.5" class="lf-fade" style="--motion-delay:96ms"/>
2360
+ <text x="473.8" y="257.0" text-anchor="middle" font-size="8.0" font-weight="800" fill="#0F172A" class="lf-pop" style="--motion-delay:156ms">0</text>
2361
+ <text x="138" y="289.0" text-anchor="end" font-size="8" font-weight="600" fill="#475569" class="lf-fade" style="--motion-delay:660ms">Metacognition</text>
2362
+ <rect x="152.0" y="272.0" width="88.5" height="28" rx="4" fill="#E2E8F0" fill-opacity="0.5" class="lf-fade" style="--motion-delay:72ms"/>
2363
+ <text x="196.2" y="289.0" text-anchor="middle" font-size="8.0" font-weight="800" fill="#0F172A" class="lf-pop" style="--motion-delay:132ms">0</text>
2364
+ <rect x="244.5" y="272.0" width="88.5" height="28" rx="4" fill="#0F172A" fill-opacity="0.54" class="lf-pop" style="--motion-delay:84ms"/>
2365
+ <text x="288.8" y="289.0" text-anchor="middle" font-size="8.0" font-weight="800" fill="#0F172A" class="lf-pop" style="--motion-delay:144ms">1</text>
2366
+ <rect x="337.0" y="272.0" width="88.5" height="28" rx="4" fill="#E2E8F0" fill-opacity="0.5" class="lf-fade" style="--motion-delay:96ms"/>
2367
+ <text x="381.2" y="289.0" text-anchor="middle" font-size="8.0" font-weight="800" fill="#0F172A" class="lf-pop" style="--motion-delay:156ms">0</text>
2368
+ <rect x="429.5" y="272.0" width="88.5" height="28" rx="4" fill="#E2E8F0" fill-opacity="0.5" class="lf-fade" style="--motion-delay:108ms"/>
2369
+ <text x="473.8" y="289.0" text-anchor="middle" font-size="8.0" font-weight="800" fill="#0F172A" class="lf-pop" style="--motion-delay:168ms">0</text>
2370
+ <text x="138" y="321.0" text-anchor="end" font-size="8" font-weight="600" fill="#475569" class="lf-fade" style="--motion-delay:760ms">Over-reliance</text>
2371
+ <rect x="152.0" y="304.0" width="88.5" height="28" rx="4" fill="#0F172A" fill-opacity="0.54" class="lf-pop" style="--motion-delay:84ms"/>
2372
+ <text x="196.2" y="321.0" text-anchor="middle" font-size="8.0" font-weight="800" fill="#0F172A" class="lf-pop" style="--motion-delay:144ms">1</text>
2373
+ <rect x="244.5" y="304.0" width="88.5" height="28" rx="4" fill="#E2E8F0" fill-opacity="0.5" class="lf-fade" style="--motion-delay:96ms"/>
2374
+ <text x="288.8" y="321.0" text-anchor="middle" font-size="8.0" font-weight="800" fill="#0F172A" class="lf-pop" style="--motion-delay:156ms">0</text>
2375
+ <rect x="337.0" y="304.0" width="88.5" height="28" rx="4" fill="#E2E8F0" fill-opacity="0.5" class="lf-fade" style="--motion-delay:108ms"/>
2376
+ <text x="381.2" y="321.0" text-anchor="middle" font-size="8.0" font-weight="800" fill="#0F172A" class="lf-pop" style="--motion-delay:168ms">0</text>
2377
+ <rect x="429.5" y="304.0" width="88.5" height="28" rx="4" fill="#E2E8F0" fill-opacity="0.5" class="lf-fade" style="--motion-delay:120ms"/>
2378
+ <text x="473.8" y="321.0" text-anchor="middle" font-size="8.0" font-weight="800" fill="#0F172A" class="lf-pop" style="--motion-delay:180ms">0</text>
2379
+ </svg></div><figcaption class="lieflat-caption">Shows where the evidence sits across years and outcomes.</figcaption><p class="lieflat-src">L16 Matrix Heat · Evidence.year X Outcome Counts</p></figure><figure class="lieflat-card" data-lieflat data-visual="lieflat-tick_rows" data-chart-id="lieflat-tick-rows.svg"><h3 class="lieflat-title">Effect direction by outcome</h3><p class="lieflat-sub">One dot = one evidence item · green = positive · grey = null · orange = negative</p><div class="lieflat-figure"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 540 300" width="100%" height="100%" role="img" aria-label="Effect direction by outcome" style="background:#FAFAFA;">
2380
+ <text x="128" y="102.0" text-anchor="end" font-size="9" font-weight="600" fill="#475569" class="lf-fade" style="--motion-delay:40ms">Completion t</text>
2381
+ <circle cx="140.0" cy="99.0" r="2.3" fill="#2563EB" class="lf-pop" style="--motion-delay:0ms"><title>Completion time — positive evidence</title></circle>
2382
+ <circle cx="148.0" cy="99.0" r="2.3" fill="#2563EB" class="lf-pop" style="--motion-delay:12ms"><title>Completion time — positive evidence</title></circle>
2383
+ <text x="512" y="102.0" text-anchor="end" font-size="8.0" font-weight="800" fill="#0F172A" class="lf-fade" style="--motion-delay:500ms">+2</text>
2384
+ <text x="128" y="124.0" text-anchor="end" font-size="9" font-weight="600" fill="#475569" class="lf-fade" style="--motion-delay:140ms">Assignment s</text>
2385
+ <circle cx="140.0" cy="121.0" r="2.3" fill="#2563EB" class="lf-pop" style="--motion-delay:100ms"><title>Assignment score — positive evidence</title></circle>
2386
+ <circle cx="148.0" cy="121.0" r="2.3" fill="#2563EB" class="lf-pop" style="--motion-delay:112ms"><title>Assignment score — positive evidence</title></circle>
2387
+ <text x="512" y="124.0" text-anchor="end" font-size="8.0" font-weight="800" fill="#0F172A" class="lf-fade" style="--motion-delay:600ms">+2</text>
2388
+ <text x="128" y="146.0" text-anchor="end" font-size="9" font-weight="600" fill="#475569" class="lf-fade" style="--motion-delay:240ms">Knowledge ga</text>
2389
+ <circle cx="140.0" cy="143.0" r="2.3" fill="#2563EB" class="lf-pop" style="--motion-delay:200ms"><title>Knowledge gain — positive evidence</title></circle>
2390
+ <text x="512" y="146.0" text-anchor="end" font-size="8.0" font-weight="800" fill="#0F172A" class="lf-fade" style="--motion-delay:700ms">+1</text>
2391
+ <text x="128" y="168.0" text-anchor="end" font-size="9" font-weight="600" fill="#475569" class="lf-fade" style="--motion-delay:340ms">Metacognitio</text>
2392
+ <circle cx="140.0" cy="165.0" r="2.3" fill="#2563EB" class="lf-pop" style="--motion-delay:300ms"><title>Metacognition — positive evidence</title></circle>
2393
+ <text x="512" y="168.0" text-anchor="end" font-size="8.0" font-weight="800" fill="#0F172A" class="lf-fade" style="--motion-delay:800ms">+1</text>
2394
+ <text x="128" y="190.0" text-anchor="end" font-size="9" font-weight="600" fill="#475569" class="lf-fade" style="--motion-delay:440ms">Retention</text>
2395
+ <circle cx="140.0" cy="187.0" r="2.3" fill="#94A3B8" class="lf-pop" style="--motion-delay:400ms"><title>Retention — null evidence</title></circle>
2396
+ <text x="512" y="190.0" text-anchor="end" font-size="8.0" font-weight="800" fill="#0F172A" class="lf-fade" style="--motion-delay:900ms">+0</text>
2397
+ <text x="128" y="212.0" text-anchor="end" font-size="9" font-weight="600" fill="#475569" class="lf-fade" style="--motion-delay:540ms">Code quality</text>
2398
+ <circle cx="140.0" cy="209.0" r="2.3" fill="#94A3B8" class="lf-pop" style="--motion-delay:500ms"><title>Code quality — null evidence</title></circle>
2399
+ <text x="512" y="212.0" text-anchor="end" font-size="8.0" font-weight="800" fill="#0F172A" class="lf-fade" style="--motion-delay:1000ms">+0</text>
2400
+ <text x="128" y="234.0" text-anchor="end" font-size="9" font-weight="600" fill="#475569" class="lf-fade" style="--motion-delay:640ms">Independent </text>
2401
+ <circle cx="140.0" cy="231.0" r="2.3" fill="#94A3B8" class="lf-pop" style="--motion-delay:600ms"><title>Independent problem solving — null evidence</title></circle>
2402
+ <circle cx="148.0" cy="231.0" r="2.3" fill="#94A3B8" class="lf-pop" style="--motion-delay:612ms"><title>Independent problem solving — null evidence</title></circle>
2403
+ <circle cx="156.0" cy="231.0" r="2.3" fill="#0F172A" class="lf-pop" style="--motion-delay:624ms"><title>Independent problem solving — negative evidence</title></circle>
2404
+ <text x="512" y="234.0" text-anchor="end" font-size="8.0" font-weight="800" fill="#0F172A" class="lf-fade" style="--motion-delay:1100ms">-1</text>
2405
+ <text x="128" y="256.0" text-anchor="end" font-size="9" font-weight="600" fill="#475569" class="lf-fade" style="--motion-delay:740ms">Over-relianc</text>
2406
+ <circle cx="140.0" cy="253.0" r="2.3" fill="#0F172A" class="lf-pop" style="--motion-delay:700ms"><title>Over-reliance — negative evidence</title></circle>
2407
+ <text x="512" y="256.0" text-anchor="end" font-size="8.0" font-weight="800" fill="#0F172A" class="lf-fade" style="--motion-delay:1200ms">-1</text>
2408
+ </svg></div><figcaption class="lieflat-caption">Based on effect_direction counts; all numbers come from result.json.</figcaption><p class="lieflat-src">F5 Tick Rows · Outcomes.direction Counts</p></figure><figure class="lieflat-card" data-lieflat data-visual="lieflat-paired_rungs" data-chart-id="lieflat-paired-rungs.svg"><h3 class="lieflat-title">Positive vs negative evidence by outcome</h3><p class="lieflat-sub">Two columns summarise positive and negative evidence counts</p><div class="lieflat-figure"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 554 300" width="100%" height="100%" role="img" aria-label="Positive vs negative evidence by outcome" style="background:#FAFAFA;">
2409
+ <text x="60" y="76" font-size="8" font-weight="700" fill="#2563EB" class="lf-fade" style="--motion-delay:40ms">POSITIVE</text>
2410
+ <text x="60" y="92" font-size="8" font-weight="700" fill="#0F172A" class="lf-fade" style="--motion-delay:80ms">NEGATIVE</text>
2411
+ <rect x="73.0" y="230.3" width="13" height="5.5" rx="2.6" fill="#2563EB" class="lf-fade" style="--motion-delay:60ms"><title>Knowledge gain — positive</title></rect>
2412
+ <text x="90.0" y="254" text-anchor="middle" font-size="8.0" font-weight="600" fill="#475569" class="lf-fade" style="--motion-delay:100ms">Knowledge </text>
2413
+ <text x="90.0" y="222.3" text-anchor="middle" font-size="8" font-weight="800" fill="#0F172A" class="lf-fade" style="--motion-delay:520ms">1 / 0</text>
2414
+ <text x="150.0" y="254" text-anchor="middle" font-size="8.0" font-weight="600" fill="#475569" class="lf-fade" style="--motion-delay:200ms">Retention</text>
2415
+ <text x="150.0" y="230.0" text-anchor="middle" font-size="8" font-weight="800" fill="#0F172A" class="lf-fade" style="--motion-delay:620ms">0 / 0</text>
2416
+ <rect x="214.0" y="230.3" width="13" height="5.5" rx="2.6" fill="#0F172A" class="lf-fade" style="--motion-delay:260ms"><title>Independent problem solving — negative</title></rect>
2417
+ <text x="210.0" y="254" text-anchor="middle" font-size="8.0" font-weight="600" fill="#475569" class="lf-fade" style="--motion-delay:300ms">Independen</text>
2418
+ <text x="210.0" y="222.3" text-anchor="middle" font-size="8" font-weight="800" fill="#0F172A" class="lf-fade" style="--motion-delay:720ms">0 / 1</text>
2419
+ <rect x="253.0" y="230.3" width="13" height="5.5" rx="2.6" fill="#2563EB" class="lf-fade" style="--motion-delay:360ms"><title>Completion time — positive</title></rect>
2420
+ <rect x="253.0" y="222.6" width="13" height="5.5" rx="2.6" fill="#2563EB" class="lf-fade" style="--motion-delay:372ms"><title>Completion time — positive</title></rect>
2421
+ <text x="270.0" y="254" text-anchor="middle" font-size="8.0" font-weight="600" fill="#475569" class="lf-fade" style="--motion-delay:400ms">Completion</text>
2422
+ <text x="270.0" y="214.6" text-anchor="middle" font-size="8" font-weight="800" fill="#0F172A" class="lf-fade" style="--motion-delay:820ms">2 / 0</text>
2423
+ <text x="330.0" y="254" text-anchor="middle" font-size="8.0" font-weight="600" fill="#475569" class="lf-fade" style="--motion-delay:500ms">Code quali</text>
2424
+ <text x="330.0" y="230.0" text-anchor="middle" font-size="8" font-weight="800" fill="#0F172A" class="lf-fade" style="--motion-delay:920ms">0 / 0</text>
2425
+ <rect x="373.0" y="230.3" width="13" height="5.5" rx="2.6" fill="#2563EB" class="lf-fade" style="--motion-delay:560ms"><title>Assignment score — positive</title></rect>
2426
+ <rect x="373.0" y="222.6" width="13" height="5.5" rx="2.6" fill="#2563EB" class="lf-fade" style="--motion-delay:572ms"><title>Assignment score — positive</title></rect>
2427
+ <text x="390.0" y="254" text-anchor="middle" font-size="8.0" font-weight="600" fill="#475569" class="lf-fade" style="--motion-delay:600ms">Assignment</text>
2428
+ <text x="390.0" y="214.6" text-anchor="middle" font-size="8" font-weight="800" fill="#0F172A" class="lf-fade" style="--motion-delay:1020ms">2 / 0</text>
2429
+ <rect x="433.0" y="230.3" width="13" height="5.5" rx="2.6" fill="#2563EB" class="lf-fade" style="--motion-delay:660ms"><title>Metacognition — positive</title></rect>
2430
+ <text x="450.0" y="254" text-anchor="middle" font-size="8.0" font-weight="600" fill="#475569" class="lf-fade" style="--motion-delay:700ms">Metacognit</text>
2431
+ <text x="450.0" y="222.3" text-anchor="middle" font-size="8" font-weight="800" fill="#0F172A" class="lf-fade" style="--motion-delay:1120ms">1 / 0</text>
2432
+ <rect x="514.0" y="230.3" width="13" height="5.5" rx="2.6" fill="#0F172A" class="lf-fade" style="--motion-delay:760ms"><title>Over-reliance — negative</title></rect>
2433
+ <text x="510.0" y="254" text-anchor="middle" font-size="8.0" font-weight="600" fill="#475569" class="lf-fade" style="--motion-delay:800ms">Over-relia</text>
2434
+ <text x="510.0" y="222.3" text-anchor="middle" font-size="8" font-weight="800" fill="#0F172A" class="lf-fade" style="--motion-delay:1220ms">0 / 1</text>
2435
+ <line x1="46" y1="238" x2="512" y2="238" stroke="#0F172A" stroke-width="1.2" class="lf-draw" style="--motion-delay:120ms"/>
2436
+ </svg></div><figcaption class="lieflat-caption">Splits positive and negative evidence so they never cancel out.</figcaption><p class="lieflat-src">F6 Paired Rungs · Outcomes.paired Counts</p></figure><figure class="lieflat-card" data-lieflat data-visual="lieflat-brand_spectrum" data-chart-id="lieflat-brand-spectrum.svg"><h3 class="lieflat-title">Net effect direction by outcome</h3><p class="lieflat-sub">Position = (positive - negative) / directional count · centre is neutral</p><div class="lieflat-figure"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 540 360" width="100%" height="100%" role="img" aria-label="Net effect direction by outcome" style="background:#FAFAFA;">
2437
+ <text x="138" y="62" text-anchor="end" font-size="9" font-weight="700" fill="#475569" class="lf-fade" style="--motion-delay:40ms">Negative-led</text>
2438
+ <text x="412" y="62" font-size="9" font-weight="700" fill="#475569" class="lf-fade" style="--motion-delay:80ms">Positive-led</text>
2439
+ <path d="M 400.0 88 C 400.0 111.0, 150.0 111.0, 150.0 134 C 150.0 157.0, 400.0 157.0, 400.0 180 C 400.0 203.0, 400.0 203.0, 400.0 226 C 400.0 249.0, 400.0 249.0, 400.0 272 C 400.0 295.0, 150.0 295.0, 150.0 318" fill="none" stroke="#F1F5F9" stroke-width="26" stroke-linecap="round" stroke-linejoin="round" opacity="0.95" class="lf-draw" style="--motion-delay:60ms"/>
2440
+ <line x1="150" y1="88" x2="400" y2="88" stroke="#CBD5E1" stroke-width="1" class="lf-fade" style="--motion-delay:60ms"/>
2441
+ <line x1="150" y1="84" x2="150" y2="92" stroke="#CBD5E1" stroke-width="1" class="lf-fade" style="--motion-delay:60ms"/>
2442
+ <line x1="400" y1="84" x2="400" y2="92" stroke="#CBD5E1" stroke-width="1" class="lf-fade" style="--motion-delay:60ms"/>
2443
+ <text x="134" y="91" text-anchor="end" font-size="8.5" font-weight="600" fill="#475569" class="lf-fade" style="--motion-delay:90ms">Knowledge </text>
2444
+ <circle cx="400.0" cy="88" r="7.5" fill="#2563EB" stroke="#FAFAFA" stroke-width="1.8" class="lf-pop" style="--motion-delay:160ms"><title>Knowledge gain — Negative-led↔Positive-led: +100% (pos 1 / neg 0 / null 0)</title></circle>
2445
+ <text x="400.0" y="77" fill="#0F172A" font-size="8" font-weight="800" text-anchor="middle" class="lf-fade" style="--motion-delay:220ms">+100%</text>
2446
+ <line x1="150" y1="134" x2="400" y2="134" stroke="#CBD5E1" stroke-width="1" class="lf-fade" style="--motion-delay:160ms"/>
2447
+ <line x1="150" y1="130" x2="150" y2="138" stroke="#CBD5E1" stroke-width="1" class="lf-fade" style="--motion-delay:160ms"/>
2448
+ <line x1="400" y1="130" x2="400" y2="138" stroke="#CBD5E1" stroke-width="1" class="lf-fade" style="--motion-delay:160ms"/>
2449
+ <text x="134" y="137" text-anchor="end" font-size="8.5" font-weight="600" fill="#475569" class="lf-fade" style="--motion-delay:190ms">Independen</text>
2450
+ <circle cx="150.0" cy="134" r="7.5" fill="#0F172A" stroke="#FAFAFA" stroke-width="1.8" class="lf-pop" style="--motion-delay:260ms"><title>Independent problem solving — Negative-led↔Positive-led: -100% (pos 0 / neg 1 / null 2)</title></circle>
2451
+ <text x="150.0" y="123" fill="#0F172A" font-size="8" font-weight="800" text-anchor="middle" class="lf-fade" style="--motion-delay:320ms">-100%</text>
2452
+ <line x1="150" y1="180" x2="400" y2="180" stroke="#CBD5E1" stroke-width="1" class="lf-fade" style="--motion-delay:260ms"/>
2453
+ <line x1="150" y1="176" x2="150" y2="184" stroke="#CBD5E1" stroke-width="1" class="lf-fade" style="--motion-delay:260ms"/>
2454
+ <line x1="400" y1="176" x2="400" y2="184" stroke="#CBD5E1" stroke-width="1" class="lf-fade" style="--motion-delay:260ms"/>
2455
+ <text x="134" y="183" text-anchor="end" font-size="8.5" font-weight="600" fill="#475569" class="lf-fade" style="--motion-delay:290ms">Completion</text>
2456
+ <circle cx="400.0" cy="180" r="7.5" fill="#2563EB" stroke="#FAFAFA" stroke-width="1.8" class="lf-pop" style="--motion-delay:360ms"><title>Completion time — Negative-led↔Positive-led: +100% (pos 2 / neg 0 / null 0)</title></circle>
2457
+ <text x="400.0" y="169" fill="#0F172A" font-size="8" font-weight="800" text-anchor="middle" class="lf-fade" style="--motion-delay:420ms">+100%</text>
2458
+ <line x1="150" y1="226" x2="400" y2="226" stroke="#CBD5E1" stroke-width="1" class="lf-fade" style="--motion-delay:360ms"/>
2459
+ <line x1="150" y1="222" x2="150" y2="230" stroke="#CBD5E1" stroke-width="1" class="lf-fade" style="--motion-delay:360ms"/>
2460
+ <line x1="400" y1="222" x2="400" y2="230" stroke="#CBD5E1" stroke-width="1" class="lf-fade" style="--motion-delay:360ms"/>
2461
+ <text x="134" y="229" text-anchor="end" font-size="8.5" font-weight="600" fill="#475569" class="lf-fade" style="--motion-delay:390ms">Assignment</text>
2462
+ <circle cx="400.0" cy="226" r="7.5" fill="#2563EB" stroke="#FAFAFA" stroke-width="1.8" class="lf-pop" style="--motion-delay:460ms"><title>Assignment score — Negative-led↔Positive-led: +100% (pos 2 / neg 0 / null 0)</title></circle>
2463
+ <text x="400.0" y="215" fill="#0F172A" font-size="8" font-weight="800" text-anchor="middle" class="lf-fade" style="--motion-delay:520ms">+100%</text>
2464
+ <line x1="150" y1="272" x2="400" y2="272" stroke="#CBD5E1" stroke-width="1" class="lf-fade" style="--motion-delay:460ms"/>
2465
+ <line x1="150" y1="268" x2="150" y2="276" stroke="#CBD5E1" stroke-width="1" class="lf-fade" style="--motion-delay:460ms"/>
2466
+ <line x1="400" y1="268" x2="400" y2="276" stroke="#CBD5E1" stroke-width="1" class="lf-fade" style="--motion-delay:460ms"/>
2467
+ <text x="134" y="275" text-anchor="end" font-size="8.5" font-weight="600" fill="#475569" class="lf-fade" style="--motion-delay:490ms">Metacognit</text>
2468
+ <circle cx="400.0" cy="272" r="7.5" fill="#2563EB" stroke="#FAFAFA" stroke-width="1.8" class="lf-pop" style="--motion-delay:560ms"><title>Metacognition — Negative-led↔Positive-led: +100% (pos 1 / neg 0 / null 0)</title></circle>
2469
+ <text x="400.0" y="261" fill="#0F172A" font-size="8" font-weight="800" text-anchor="middle" class="lf-fade" style="--motion-delay:620ms">+100%</text>
2470
+ <line x1="150" y1="318" x2="400" y2="318" stroke="#CBD5E1" stroke-width="1" class="lf-fade" style="--motion-delay:560ms"/>
2471
+ <line x1="150" y1="314" x2="150" y2="322" stroke="#CBD5E1" stroke-width="1" class="lf-fade" style="--motion-delay:560ms"/>
2472
+ <line x1="400" y1="314" x2="400" y2="322" stroke="#CBD5E1" stroke-width="1" class="lf-fade" style="--motion-delay:560ms"/>
2473
+ <text x="134" y="321" text-anchor="end" font-size="8.5" font-weight="600" fill="#475569" class="lf-fade" style="--motion-delay:590ms">Over-relia</text>
2474
+ <circle cx="150.0" cy="318" r="7.5" fill="#0F172A" stroke="#FAFAFA" stroke-width="1.8" class="lf-pop" style="--motion-delay:660ms"><title>Over-reliance — Negative-led↔Positive-led: -100% (pos 0 / neg 1 / null 0)</title></circle>
2475
+ <text x="150.0" y="307" fill="#0F172A" font-size="8" font-weight="800" text-anchor="middle" class="lf-fade" style="--motion-delay:720ms">-100%</text>
2476
+ <text x="30" y="338" font-size="8" font-weight="600" fill="#94A3B8" class="lf-fade" style="--motion-delay:400ms">position = (positive − negative) ÷ total direction counts</text>
2477
+ </svg></div><figcaption class="lieflat-caption">Bipolar view of whether each outcome leans supportive or against.</figcaption><p class="lieflat-src">L7 Brand Spectrum · Outcomes.bipolar Axes</p></figure><figure class="lieflat-card" data-lieflat data-visual="lieflat-hundred_field" data-chart-id="lieflat-hundred-field.svg"><h3 class="lieflat-title">Study-design composition</h3><p class="lieflat-sub">One cell = one study · shows which designs produced the evidence</p><div class="lieflat-figure"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 540 300" width="100%" height="100%" role="img" aria-label="Study-design composition" style="background:#FAFAFA;">
2478
+ <rect x="40.0" y="74.0" width="15.5" height="15.5" rx="3" fill="#0F172A" class="lf-pop" style="--motion-delay:0ms"><title>rct — 1 study</title></rect>
2479
+ <rect x="58.0" y="74.0" width="15.5" height="15.5" rx="3" fill="#0F172A" class="lf-pop" style="--motion-delay:12ms"><title>rct — 1 study</title></rect>
2480
+ <rect x="76.0" y="74.0" width="15.5" height="15.5" rx="3" fill="#0F172A" class="lf-pop" style="--motion-delay:24ms"><title>rct — 1 study</title></rect>
2481
+ <rect x="94.0" y="74.0" width="15.5" height="15.5" rx="3" fill="#0F172A" class="lf-pop" style="--motion-delay:36ms"><title>rct — 1 study</title></rect>
2482
+ <rect x="112.0" y="74.0" width="15.5" height="15.5" rx="3" fill="#0F172A" class="lf-pop" style="--motion-delay:48ms"><title>rct — 1 study</title></rect>
2483
+ <rect x="130.0" y="74.0" width="15.5" height="15.5" rx="3" fill="#0F172A" class="lf-pop" style="--motion-delay:60ms"><title>rct — 1 study</title></rect>
2484
+ <rect x="148.0" y="74.0" width="15.5" height="15.5" rx="3" fill="#0F172A" class="lf-pop" style="--motion-delay:72ms"><title>rct — 1 study</title></rect>
2485
+ <rect x="166.0" y="74.0" width="15.5" height="15.5" rx="3" fill="#2563EB" class="lf-pop" style="--motion-delay:84ms"><title>observational — 1 study</title></rect>
2486
+ <rect x="184.0" y="74.0" width="15.5" height="15.5" rx="3" fill="#2563EB" class="lf-pop" style="--motion-delay:96ms"><title>observational — 1 study</title></rect>
2487
+ <rect x="202.0" y="74.0" width="15.5" height="15.5" rx="3" fill="#2563EB" class="lf-pop" style="--motion-delay:108ms"><title>observational — 1 study</title></rect>
2488
+ <rect x="40.0" y="92.0" width="15.5" height="15.5" rx="3" fill="#059669" class="lf-pop" style="--motion-delay:120ms"><title>mixed_methods — 1 study</title></rect>
2489
+ <rect x="58.0" y="92.0" width="15.5" height="15.5" rx="3" fill="#94A3B8" class="lf-pop" style="--motion-delay:132ms"><title>qualitative — 1 study</title></rect>
2490
+ <text x="30" y="270" font-size="8" font-weight="600" fill="#94A3B8" class="lf-fade" style="--motion-delay:400ms">one cell = one study</text>
2491
+ </svg></div><figcaption class="lieflat-caption">Reveals design skew faster than a table when several designs are present.</figcaption><p class="lieflat-src">L14 Hundred Field · Evidence.study Type Composition</p></figure></div></div></section><section class="brief-block brief-sources" id="brief-sources-en"><header class="brief-block-header"><h2>Key sources</h2><p>Only the key sources in the brief; full traceability expands in the full report.</p></header><div class="brief-block-body"><div class="brief-source-grid"><article class="brief-source"><code>S-2023-kazemitabaar</code><h3><a href="https://dl.acm.org/doi/10.1145/3544548.3580919">Studying the effect of AI Code Generators on Supporting Novice Learners in Introductory Programming</a></h3><p>Tier 1 DOI-verified paper · 2023</p></article><article class="brief-source"><code>S-2025-bastani</code><h3><a href="https://www.pnas.org/doi/10.1073/pnas.2422633122">Generative AI without guardrails can harm learning: Evidence from high school mathematics</a></h3><p>Tier 1 DOI-verified paper · 2025</p></article><article class="brief-source"><code>S-2024-marzuki</code><h3><a href="https://link.springer.com/article/10.1186/s40561-024-00295-9">Impact of ChatGPT on ESL students&#x27; academic writing skills</a></h3><p>Tier 1 DOI-verified paper · 2024</p></article><article class="brief-source"><code>S-2023-peng</code><h3><a href="https://doi.org/10.48550/arXiv.2302.06590">The Impact of AI on Developer Productivity: Evidence from GitHub Copilot</a></h3><p>Tier2 Academic Database · 2023</p></article></div><p class="brief-source-more">4 more sources are traceable in the full report.</p></div></section></div></div>
2492
+ <div class="report-page report-page-full" data-report-page="full" hidden>
2493
+ <div class="full-report-intro"><h2>Full Report</h2><p>Conclusions first: every traceable piece of evidence and method note lives here, with visuals only at points where they add meaning. Every number traces back to result.json.</p></div>
2494
+ <div class="full-report-layout"><aside class="full-report-toc" aria-label="Contents"><div class="toc-head"><strong>Contents</strong><button type="button" class="toc-collapse" aria-expanded="true" data-label-collapse="Collapse contents" data-label-expand="Expand contents">Collapse contents</button></div><nav><a href="#full-01-decision-en" data-toc-target="full-01-decision-en" data-chapter-key="decision">01 Decision, Adjudication &amp; Research Boundary</a><a href="#full-02-evidence-en" data-toc-target="full-02-evidence-en" data-chapter-key="evidence">02 Key Evidence &amp; Outcome Separation</a><a href="#full-03-quality-en" data-toc-target="full-03-quality-en" data-chapter-key="quality">03 Evidence Quality, Counterevidence &amp; Method Audit</a><a href="#full-04-action-en" data-toc-target="full-04-action-en" data-chapter-key="action">04 Applicability &amp; Teaching Action</a><a href="#full-05-evaluation-en" data-toc-target="full-05-evaluation-en" data-chapter-key="evaluation">05 Pilot, Evaluation &amp; Stop Conditions</a><a href="#full-06-sources-en" data-toc-target="full-06-sources-en" data-chapter-key="sources">06 Sources, Traceability &amp; Appendix</a></nav></aside><main class="full-report-content"><section id="full-01-decision-en" class="full-chapter" data-full-chapter><header class="full-chapter-header"><h2>01 Decision, Adjudication &amp; Research Boundary</h2><p class="full-chapter-lead">State the final adjudication and research boundary before explaining why.</p></header><div class="full-chapter-body">
2495
+ <div class="decision-hero pilot" data-visual="decision-hero">
2496
+ <div class="hero-decision">
2497
+ <span class="eyebrow">Recommended decision</span>
2498
+ <strong class="decision-value">Pilot</strong>
2499
+ <span class="confidence-badge">Confidence · Moderate</span>
2500
+ </div>
2501
+ <p class="hero-rationale">Positive task-performance evidence plus documented unguarded-access risk, mixed quality/usability signals, and missing university-level learning evidence → bounded, guardrailed pilot with evaluation, not full adoption.</p>
2502
+ <div class="hero-insights">
2503
+ <article class="hero-insight support"><span>Strongest supported conclusion</span><p class="hero-insight-text">AI coding assistants reliably speed up practice work: completion rate 1.15x and time 0.57x in a randomised trial of 69 novices.</p></article>
2504
+ <article class="hero-insight uncertain"><span>Key uncertainty / contradiction</span><p class="hero-insight-text">No university-level RCT measures learning directly, and the one large trial that did - unguarded GPT-4 - saw independent exam scores fall 17%.</p></article>
2505
+ <article class="hero-insight risk"><span>Main risk</span><p class="hero-insight-text">Unguarded access can raise practice performance while lowering independent exam performance, and learners may not notice the gap.</p></article>
2506
+ <article class="hero-insight next"><span>Next action</span><p class="hero-insight-text">Run a phased CS1 pilot with hints-not-answers guardrails, weekly lab use, and a no-AI transfer exam that can stop the pilot.</p></article>
2507
+ </div>
2508
+ <p class="hero-provenance"><span>Evidence / sources</span> · 12 / 8</p>
2509
+ </div><div class="scope-grid"><article class="scope-card"><h3>Research question</h3><p class="scope-text">我们准备在大学一年级 C 语言课程中允许学生使用生成式 AI 编程助手。它到底会不会提高学习效果?应该怎样引入?</p></article><article class="scope-card"><h3>Target learners</h3><p class="scope-text">Education level: First-year undergraduate; Major: Computer science; Prior knowledge: First programming course, no prior text-based programming; Learner characteristics: Mixed-ability large class (60 students)</p></article><article class="scope-card"><h3>Course context</h3><p class="scope-text">Subject: C programming; Course type: Lecture + lab; Duration: 16 weeks (one semester)</p></article><article class="scope-card"><h3>AI intervention</h3><p class="scope-text">Method: Lecture with lab exercises; AI tool: Generative AI coding assistant; Allowed usage: Under design (pending evidence review); Frequency: Weekly lab sessions; Duration: One semester</p></article><article class="scope-card"><h3>Comparison</h3><p class="scope-text">No AI Coding Assistant Control</p></article><article class="scope-card"><h3>Outcome constructs</h3><p class="scope-text">Primary outcomes: Independent problem solving, Code quality; Secondary outcomes: Completion time, Retention, Knowledge gain; Risk outcomes: AI dependency, Over-reliance, Reduced transfer</p></article><article class="scope-card"><h3>Research scope</h3><p class="scope-text">Time range: 2021 2026; Geography: Worldwide; Study designs: Randomized controlled trial, Quasi-experimental, Observational</p></article><article class="scope-card"><h3>Decision success condition</h3><p class="scope-text">independent problem solving and code quality improve (or do not decline) while AI dependency risk stays controlled; evidence base supports a bounded pilot.</p></article></div></div></section><section id="full-02-evidence-en" class="full-chapter" data-full-chapter><header class="full-chapter-header"><h2>02 Key Evidence &amp; Outcome Separation</h2><p class="full-chapter-lead">Place task performance, actual learning, retention and risk on one evidence map without conflating them.</p></header><div class="full-chapter-body"><div class="retrieval-grid"><article><h3>Inclusion criteria</h3><ul><li>Studies Of Generative AI Coding Tools In Learning To Program</li><li>Outcomes Measuring Learning Not Only Task Speed</li><li>University Or Novice Programming Populations</li></ul></article><article><h3>Exclusion criteria</h3><ul><li>Practitioner Anecdotes Without Data</li><li>Industry Professional Populations Only</li></ul></article></div><div class="retrieval-coverage"><h3>Source coverage</h3><p><code>S-2023-kazemitabaar</code> <code>S-2025-bastani</code> <code>S-2024-marzuki</code> <code>S-2023-peng</code> <code>S-2023-yetistiren</code> <code>S-2022-finnie-ansley</code> <code>S-2023-explanations-compare</code> <code>S-2022-vaithilingam</code></p><p class="retrieval-note">This report shows only retrieval metadata present in result; it does not fabricate PRISMA/funnel counts when none exist.</p></div><div class="outcome-separation" data-visual="outcome-separation"><div class="visual-heading"><h3>Outcome Separation · Task performance ≠ learning</h3><p>Outcomes are adjudicated separately so faster training performance is not silently treated as evidence of learning.</p><p class="semantic-note">Effect direction comes from evidence.effect_direction; supporting a claim does not imply a positive outcome.</p></div><div class="outcome-groups"><article class="outcome-group outcome-task"><h3>Task / proximal performance</h3><ul><li><strong>Completion time</strong><span class="outcome-states"><span class="dir pos">Positive effect 2</span></span></li><li><strong>Code quality</strong><span class="outcome-states"><span class="dir neu">Null effect 1</span></span></li><li><strong>Assignment score</strong><span class="outcome-states"><span class="dir pos">Positive effect 2</span></span></li></ul></article><article class="outcome-group outcome-learning"><h3>Learning / retention / transfer</h3><ul><li><strong>Knowledge gain</strong><span class="outcome-states"><span class="dir pos">Positive effect 1</span></span></li><li><strong>Retention</strong><span class="outcome-states"><span class="dir neu">Null effect 1</span></span></li><li><strong>Independent problem solving</strong><span class="outcome-states"><span class="dir neg">Negative effect 1</span><span class="dir neu">Null effect 2</span></span></li></ul></article><article class="outcome-group outcome-risk"><h3>Risk / dependency</h3><ul><li><strong>Over-reliance</strong><span class="outcome-states"><span class="dir neg">Negative effect 1</span></span></li></ul></article><article class="outcome-group outcome-other"><h3>Other outcomes</h3><ul><li><strong>Metacognition</strong><span class="outcome-states"><span class="dir pos">Positive effect 1</span></span></li></ul></article></div></div><div class='table-wrap outcome-table'><table class='data-table'><thead><tr><th>Outcome</th><th>Positive effect</th><th>Negative effect</th><th>Null effect</th><th>Evidence</th></tr></thead><tbody><tr><td><strong>Knowledge gain</strong><span class='raw-tag' title='raw id'>knowledge_gain</span></td><td class='num'>1</td><td class='num'>0</td><td class='num'>0</td><td><code>E-007</code> </td></tr><tr><td><strong>Retention</strong><span class='raw-tag' title='raw id'>retention</span></td><td class='num'>0</td><td class='num'>0</td><td class='num'>1</td><td><code>E-003</code> </td></tr><tr><td><strong>Independent problem solving</strong><span class='raw-tag' title='raw id'>independent_problem_solving</span></td><td class='num'>0</td><td class='num'>1</td><td class='num'>2</td><td><code>E-002</code> <code>E-004</code> <code>E-005</code> </td></tr><tr><td><strong>Completion time</strong><span class='raw-tag' title='raw id'>completion_time</span></td><td class='num'>2</td><td class='num'>0</td><td class='num'>0</td><td><code>E-001</code> <code>E-008</code> </td></tr><tr><td><strong>Code quality</strong><span class='raw-tag' title='raw id'>code_quality</span></td><td class='num'>0</td><td class='num'>0</td><td class='num'>1</td><td><code>E-009</code> </td></tr><tr><td><strong>Assignment score</strong><span class='raw-tag' title='raw id'>assignment_score</span></td><td class='num'>2</td><td class='num'>0</td><td class='num'>0</td><td><code>E-006</code> <code>E-010</code> </td></tr><tr><td><strong>Metacognition</strong><span class='raw-tag' title='raw id'>metacognition</span></td><td class='num'>1</td><td class='num'>0</td><td class='num'>0</td><td><code>E-011</code> </td></tr><tr><td><strong>Over-reliance</strong><span class='raw-tag' title='raw id'>over_reliance</span></td><td class='num'>0</td><td class='num'>1</td><td class='num'>0</td><td><code>E-012</code> </td></tr></tbody></table></div><div class="visual-surface" data-visual="outcome-evidence-balance"><svg viewBox="0 0 720 300" xmlns="http://www.w3.org/2000/svg" role="img" aria-label="Outcome evidence effect balance"><title>Outcome evidence effect balance</title><desc>Positive / negative / null effect counts per outcome (based on effect_direction, not claim support).</desc><rect x="0" y="0" width="720" height="300" fill="#FFFFFF"/><line x1="439.0" y1="46" x2="439.0" y2="182" stroke="#999" stroke-width="1" stroke-dasharray="3,3"/><text x="190" y="58.0" text-anchor="end" font-size="11" fill="#333">Knowledge gain</text><rect x="439.0" y="49.8" width="120.5" height="9.4" fill="#5E8A6A"/><text x="499.2" y="58.0" text-anchor="middle" font-size="9" fill="#fff">1</text><text x="190" y="75.0" text-anchor="end" font-size="11" fill="#333">Retention</text><text x="190" y="92.0" text-anchor="end" font-size="11" fill="#333">Independent problem solving</text><rect x="318.5" y="83.8" width="120.5" height="9.4" fill="#A85B53"/><text x="378.8" y="92.0" text-anchor="middle" font-size="9" fill="#fff">-1</text><text x="190" y="109.0" text-anchor="end" font-size="11" fill="#333">Completion time</text><rect x="439.0" y="100.8" width="241.0" height="9.4" fill="#5E8A6A"/><text x="559.5" y="109.0" text-anchor="middle" font-size="9" fill="#fff">2</text><text x="190" y="126.0" text-anchor="end" font-size="11" fill="#333">Code quality</text><text x="190" y="143.0" text-anchor="end" font-size="11" fill="#333">Assignment score</text><rect x="439.0" y="134.8" width="241.0" height="9.4" fill="#5E8A6A"/><text x="559.5" y="143.0" text-anchor="middle" font-size="9" fill="#fff">2</text><text x="190" y="160.0" text-anchor="end" font-size="11" fill="#333">Metacognition</text><rect x="439.0" y="151.8" width="120.5" height="9.4" fill="#5E8A6A"/><text x="499.2" y="160.0" text-anchor="middle" font-size="9" fill="#fff">1</text><text x="190" y="177.0" text-anchor="end" font-size="11" fill="#333">Over-reliance</text><rect x="318.5" y="168.8" width="120.5" height="9.4" fill="#A85B53"/><text x="378.8" y="177.0" text-anchor="middle" font-size="9" fill="#fff">-1</text><rect x="439.0" y="206.1" width="8.0" height="6" fill="#C99A4A"/><rect x="439.0" y="214.9" width="8.0" height="6" fill="#C99A4A"/><rect x="439.0" y="232.4" width="8.0" height="6" fill="#C99A4A"/><rect x="198" y="14" width="10" height="10" fill="#5E8A6A"/><text x="212" y="23" font-size="10" fill="#333">Positive effect</text><rect x="395" y="14" width="10" height="10" fill="#A85B53"/><text x="409" y="23" font-size="10" fill="#333">Negative effect</text><rect x="592" y="14" width="10" height="10" fill="#C99A4A"/><text x="606" y="23" font-size="10" fill="#333">Null effect</text></svg><p class="chart-interpretation"><strong>What this means: </strong>Positive / negative / null effect-direction evidence counts per outcome. This visual encodes effect_direction, not whether evidence supports a claim.</p></div><div id="chart-outcome-en" class="chart-mount" aria-label="Outcome Evidence Overview"></div><figure class="academic-figure" data-visual="outcome-evidence-balance"><svg viewBox="0 0 1518 300" xmlns="http://www.w3.org/2000/svg" role="img" aria-label="Effect direction by outcome type (publication figure)"><title>Effect direction by outcome type (publication figure)</title><desc>Counts of positive / negative / null effects per outcome type with an integer count axis, theme-independent. Source: EduEvidence result.json.</desc><rect width="1518" height="300" fill="#FFFFFF"/><line x1="70" y1="250" x2="650" y2="250" stroke="#333" stroke-width="1"/><text x="106.2" y="266" text-anchor="middle" font-size="10" fill="#333">Knowledge gain</text><rect x="88.1" y="150.0" width="18.1" height="100.0" fill="#1F4E5F"/><text x="97.2" y="147.0" text-anchor="middle" font-size="9" fill="#333">1</text><rect x="106.2" y="250.0" width="18.1" height="1.0" fill="#5B8C9E"/><rect x="124.4" y="250.0" width="18.1" height="1.0" fill="#9E4B3A"/><text x="178.8" y="266" text-anchor="middle" font-size="10" fill="#333">Retention</text><rect x="160.6" y="250.0" width="18.1" height="1.0" fill="#1F4E5F"/><rect x="178.8" y="250.0" width="18.1" height="1.0" fill="#5B8C9E"/><rect x="196.9" y="150.0" width="18.1" height="100.0" fill="#9E4B3A"/><text x="205.9" y="147.0" text-anchor="middle" font-size="9" fill="#333">1</text><text x="251.2" y="266" text-anchor="middle" font-size="10" fill="#333">Independent problem solving</text><rect x="233.1" y="250.0" width="18.1" height="1.0" fill="#1F4E5F"/><rect x="251.2" y="150.0" width="18.1" height="100.0" fill="#5B8C9E"/><text x="260.3" y="147.0" text-anchor="middle" font-size="9" fill="#333">1</text><rect x="269.4" y="50.0" width="18.1" height="200.0" fill="#9E4B3A"/><text x="278.4" y="47.0" text-anchor="middle" font-size="9" fill="#333">2</text><text x="323.8" y="266" text-anchor="middle" font-size="10" fill="#333">Completion time</text><rect x="305.6" y="50.0" width="18.1" height="200.0" fill="#1F4E5F"/><text x="314.7" y="47.0" text-anchor="middle" font-size="9" fill="#333">2</text><rect x="323.8" y="250.0" width="18.1" height="1.0" fill="#5B8C9E"/><rect x="341.9" y="250.0" width="18.1" height="1.0" fill="#9E4B3A"/><text x="396.2" y="266" text-anchor="middle" font-size="10" fill="#333">Code quality</text><rect x="378.1" y="250.0" width="18.1" height="1.0" fill="#1F4E5F"/><rect x="396.2" y="250.0" width="18.1" height="1.0" fill="#5B8C9E"/><rect x="414.4" y="150.0" width="18.1" height="100.0" fill="#9E4B3A"/><text x="423.4" y="147.0" text-anchor="middle" font-size="9" fill="#333">1</text><text x="468.8" y="266" text-anchor="middle" font-size="10" fill="#333">Assignment score</text><rect x="450.6" y="50.0" width="18.1" height="200.0" fill="#1F4E5F"/><text x="459.7" y="47.0" text-anchor="middle" font-size="9" fill="#333">2</text><rect x="468.8" y="250.0" width="18.1" height="1.0" fill="#5B8C9E"/><rect x="486.9" y="250.0" width="18.1" height="1.0" fill="#9E4B3A"/><text x="541.2" y="266" text-anchor="middle" font-size="10" fill="#333">Metacognition</text><rect x="523.1" y="150.0" width="18.1" height="100.0" fill="#1F4E5F"/><text x="532.2" y="147.0" text-anchor="middle" font-size="9" fill="#333">1</text><rect x="541.2" y="250.0" width="18.1" height="1.0" fill="#5B8C9E"/><rect x="559.4" y="250.0" width="18.1" height="1.0" fill="#9E4B3A"/><text x="613.8" y="266" text-anchor="middle" font-size="10" fill="#333">Over-reliance</text><rect x="595.6" y="250.0" width="18.1" height="1.0" fill="#1F4E5F"/><rect x="613.8" y="150.0" width="18.1" height="100.0" fill="#5B8C9E"/><text x="622.8" y="147.0" text-anchor="middle" font-size="9" fill="#333">1</text><rect x="631.9" y="250.0" width="18.1" height="1.0" fill="#9E4B3A"/><line x1="65" y1="250.0" x2="70" y2="250.0" stroke="#999"/><text x="62" y="253.0" text-anchor="end" font-size="9" fill="#666">0</text><line x1="65" y1="150.0" x2="70" y2="150.0" stroke="#999"/><text x="62" y="153.0" text-anchor="end" font-size="9" fill="#666">1</text><line x1="65" y1="50.0" x2="70" y2="50.0" stroke="#999"/><text x="62" y="53.0" text-anchor="end" font-size="9" fill="#666">2</text><text x="360.0" y="30" text-anchor="middle" font-size="14" font-weight="700" fill="#111">Effect direction by outcome type</text><rect x="70" y="8" width="10" height="10" fill="#1F4E5F"/><text x="84" y="17" font-size="10" fill="#333">Positive effect</text><rect x="267" y="8" width="10" height="10" fill="#5B8C9E"/><text x="281" y="17" font-size="10" fill="#333">Negative effect</text><rect x="464" y="8" width="10" height="10" fill="#9E4B3A"/><text x="478" y="17" font-size="10" fill="#333">Null effect</text><text x="20" y="290" font-size="11" fill="#333333" font-style="italic">Fig. 1. Counts of positive / negative / null effects per outcome type (based on effect_direction; publication figure, theme-independent). Source: EduEvidence result.json.</text></svg><figcaption>Fig. 1. Positive / negative / null effect counts per outcome (based on effect_direction, not claim support).</figcaption></figure><div class='matrix-controls'><div class='matrix-tools'><input id='matrix-search-full-en' type='search' placeholder='Search evidence…' aria-label='Filter / search evidence'><select id='matrix-direction-full-en' aria-label='Filter by effect direction'><option value=''>All effects</option><option value='positive'>Positive effect</option><option value='negative'>Negative effect</option><option value='null'>Null effect</option></select><select id='matrix-outcome-full-en' aria-label='Filter by outcome type'><option value=''>All outcomes</option><option value='assignment_score'>Assignment score</option><option value='code_quality'>Code quality</option><option value='completion_time'>Completion time</option><option value='independent_problem_solving'>Independent problem solving</option><option value='knowledge_gain'>Knowledge gain</option><option value='metacognition'>Metacognition</option><option value='over_reliance'>Over-reliance</option><option value='retention'>Retention</option></select></div></div><div class='table-wrap matrix-wrap'><table id='evidence-matrix-full-en' class='data-table evidence-matrix'><thead><tr><th>ID</th><th>Outcome</th><th>Effect</th><th>Quality</th><th>Claim</th><th>Source</th></tr></thead><tbody><tr data-effect="positive" data-direction="positive" data-outcome="completion_time" data-search="e-001 study-kazemitabaar-2023 smpl-kazemitabaar-2023-n69 studying the effect of ai code generators on supporting novice learners in introductory programming ai coding assistants significantly increase task completion speed and completion rate during training. 69 novices ages 10-17 with no prior text-based programming experience access_to_openai_codex_ai_coding_assistant_during_training baseline_group_without_ai_coding_assistant positive s-2023-kazemitabaar"><td><code>E-001</code></td><td><strong>Completion time</strong></td><td><span class="dir pos">Positive effect</span><span class="relation-note">Claim relation: Support</span></td><td><div class="quality-cell"><span class="num">9</span><span class="quality-meter" aria-hidden="true"><i style="width:90%"></i></span></div></td><td class="claim-cell"><p>AI coding assistants significantly increase task completion speed and completion rate during training.</p><details class="matrix-row-detail"><summary>View full evidence</summary><dl class="evidence-detail-grid"><div class="evidence-detail-row"><dt>Study ID</dt><dd>STUDY-KAZEMITABAAR-2023</dd></div><div class="evidence-detail-row"><dt>Sample ID</dt><dd>SMPL-KAZEMITABAAR-2023-N69</dd></div><div class="evidence-detail-row"><dt>Study title</dt><dd>Studying the effect of AI Code Generators on Supporting Novice Learners in Introductory Programming</dd></div><div class="evidence-detail-row"><dt>Source title</dt><dd>Studying the effect of AI Code Generators on Supporting Novice Learners in Introductory Programming</dd></div><div class="evidence-detail-row"><dt>Year</dt><dd>2023</dd></div><div class="evidence-detail-row"><dt>Study design</dt><dd>Randomized controlled trial</dd></div><div class="evidence-detail-row"><dt>Education level</dt><dd>K-12 Ages 10 17</dd></div><div class="evidence-detail-row"><dt>Population</dt><dd>69 novices ages 10-17 with no prior text-based programming experience</dd></div><div class="evidence-detail-row"><dt>Sample size</dt><dd>69</dd></div><div class="evidence-detail-row"><dt>Intervention</dt><dd>Access To Openai Codex AI Coding Assistant During Training</dd></div><div class="evidence-detail-row"><dt>Comparison</dt><dd>Baseline Group Without AI Coding Assistant</dd></div><div class="evidence-detail-row"><dt>Outcome measure</dt><dd>Code Authoring Task Progress And Time</dd></div><div class="evidence-detail-row"><dt>Effect / result</dt><dd>1.15x completion rate, 0.57x time, 1.8x correctness</dd></div><div class="evidence-detail-row"><dt>Effect direction</dt><dd>Positive effect</dd></div><div class="evidence-detail-row"><dt>Relation to claim</dt><dd>Support</dd></div><div class="evidence-detail-row"><dt>Duration</dt><dd>3 Weeks Training</dd></div><div class="evidence-detail-row"><dt>Method</dt><dd>controlled experiment with random assignment, immediate post-test and 1-week retention test</dd></div><div class="evidence-detail-row"><dt>Strengths</dt><dd>randomized_controlled_design;immediate_post_test_and_retention_test;code_modification_task_guard</dd></div><div class="evidence-detail-row"><dt>Limitations</dt><dd>non_university_population_ages_10_17;small_sample_69;self-paced environment differs from classroom</dd></div><div class="evidence-detail-row"><dt>Confounders</dt><dd>Prior Programming Competency Interaction</dd></div><div class="evidence-detail-row"><dt>Quality dimensions</dt><dd>D1 Study design = 2 · D2 Sample quality = 2 · D3 Measurement validity = 2 · D4 Temporal strength = 2 · D5 Directness = 1</dd></div><div class="evidence-detail-row"><dt>Quality score</dt><dd>9.0</dd></div><div class="evidence-detail-row"><dt>Evidence level</dt><dd>strong</dd></div><div class="evidence-detail-row"><dt>Applicability</dt><dd>learner_match=partial_novice_programmers_but_younger · subject_match=introductory_programming · tool_match=codex_like_generative_ai · scope=task_performance_during_training</dd></div><div class="evidence-detail-row"><dt>Confidence</dt><dd>0.7</dd></div><div class="evidence-detail-row"><dt>Evidence status</dt><dd>Supported</dd></div><div class="evidence-detail-row"><dt>Full claim</dt><dd>AI coding assistants significantly increase task completion speed and completion rate during training.</dd></div><div class="evidence-detail-row"><dt>Source location</dt><dd>https://dl.acm.org/doi/10.1145/3544548.3580919</dd></div><div class="evidence-detail-row"><dt>Verifiable link</dt><dd><a href="https://dl.acm.org/doi/10.1145/3544548.3580919">https://dl.acm.org/doi/10.1145/3544548.3580919</a></dd></div></dl></details></td><td><a class="source-link" href="https://dl.acm.org/doi/10.1145/3544548.3580919" title="Studying the effect of AI Code Generators on Supporting Novice Learners in Introductory Programming"><code>S-2023-kazemitabaar</code></a></td></tr><tr data-effect="null" data-direction="null" data-outcome="independent_problem_solving" data-search="e-002 study-kazemitabaar-2023 smpl-kazemitabaar-2023-n69 studying the effect of ai code generators on supporting novice learners in introductory programming access to ai code generation did not decrease performance on manual code-modification tasks. 69 novices ages 10-17 with no prior text-based programming experience access_to_openai_codex_ai_coding_assistant_during_training baseline_group_without_ai_coding_assistant null s-2023-kazemitabaar"><td><code>E-002</code></td><td><strong>Independent problem solving</strong></td><td><span class="dir neu">Null effect</span><span class="relation-note">Claim relation: Neutral</span></td><td><div class="quality-cell"><span class="num">7</span><span class="quality-meter" aria-hidden="true"><i style="width:70%"></i></span></div></td><td class="claim-cell"><p>Access to AI code generation did not decrease performance on manual code-modification tasks.</p><details class="matrix-row-detail"><summary>View full evidence</summary><dl class="evidence-detail-grid"><div class="evidence-detail-row"><dt>Study ID</dt><dd>STUDY-KAZEMITABAAR-2023</dd></div><div class="evidence-detail-row"><dt>Sample ID</dt><dd>SMPL-KAZEMITABAAR-2023-N69</dd></div><div class="evidence-detail-row"><dt>Study title</dt><dd>Studying the effect of AI Code Generators on Supporting Novice Learners in Introductory Programming</dd></div><div class="evidence-detail-row"><dt>Source title</dt><dd>Studying the effect of AI Code Generators on Supporting Novice Learners in Introductory Programming</dd></div><div class="evidence-detail-row"><dt>Year</dt><dd>2023</dd></div><div class="evidence-detail-row"><dt>Study design</dt><dd>Randomized controlled trial</dd></div><div class="evidence-detail-row"><dt>Education level</dt><dd>K-12 Ages 10 17</dd></div><div class="evidence-detail-row"><dt>Population</dt><dd>69 novices ages 10-17 with no prior text-based programming experience</dd></div><div class="evidence-detail-row"><dt>Sample size</dt><dd>69</dd></div><div class="evidence-detail-row"><dt>Intervention</dt><dd>Access To Openai Codex AI Coding Assistant During Training</dd></div><div class="evidence-detail-row"><dt>Comparison</dt><dd>Baseline Group Without AI Coding Assistant</dd></div><div class="evidence-detail-row"><dt>Outcome measure</dt><dd>manual code-modification tasks during training</dd></div><div class="evidence-detail-row"><dt>Effect / result</dt><dd>no significant difference between groups</dd></div><div class="evidence-detail-row"><dt>Effect direction</dt><dd>Null effect</dd></div><div class="evidence-detail-row"><dt>Relation to claim</dt><dd>Neutral</dd></div><div class="evidence-detail-row"><dt>Duration</dt><dd>3 Weeks Training</dd></div><div class="evidence-detail-row"><dt>Method</dt><dd>controlled experiment, code-modification task followed each code-authoring task</dd></div><div class="evidence-detail-row"><dt>Strengths</dt><dd>direct_test_of_transfer-adjacent_skill;same_session_measurement</dd></div><div class="evidence-detail-row"><dt>Limitations</dt><dd>code modification is not full independent problem solving;non_university population</dd></div><div class="evidence-detail-row"><dt>Confounders</dt><dd>Practice Effect</dd></div><div class="evidence-detail-row"><dt>Quality dimensions</dt><dd>D1 Study design = 2 · D2 Sample quality = 2 · D3 Measurement validity = 1 · D4 Temporal strength = 1 · D5 Directness = 1</dd></div><div class="evidence-detail-row"><dt>Quality score</dt><dd>7.0</dd></div><div class="evidence-detail-row"><dt>Evidence level</dt><dd>moderate</dd></div><div class="evidence-detail-row"><dt>Applicability</dt><dd>learner_match=partial · subject_match=introductory_programming · tool_match=codex · scope=short-term manual code modification</dd></div><div class="evidence-detail-row"><dt>Confidence</dt><dd>0.5</dd></div><div class="evidence-detail-row"><dt>Evidence status</dt><dd>Supported</dd></div><div class="evidence-detail-row"><dt>Full claim</dt><dd>Access to AI code generation did not decrease performance on manual code-modification tasks.</dd></div><div class="evidence-detail-row"><dt>Source location</dt><dd>https://dl.acm.org/doi/10.1145/3544548.3580919</dd></div><div class="evidence-detail-row"><dt>Verifiable link</dt><dd><a href="https://dl.acm.org/doi/10.1145/3544548.3580919">https://dl.acm.org/doi/10.1145/3544548.3580919</a></dd></div></dl></details></td><td><a class="source-link" href="https://dl.acm.org/doi/10.1145/3544548.3580919" title="Studying the effect of AI Code Generators on Supporting Novice Learners in Introductory Programming"><code>S-2023-kazemitabaar</code></a></td></tr><tr data-effect="null" data-direction="null" data-outcome="retention" data-search="e-003 study-kazemitabaar-2023 smpl-kazemitabaar-2023-n69 studying the effect of ai code generators on supporting novice learners in introductory programming one week after training, retention differences between codex and baseline groups did not reach statistical significance. 69 novices ages 10-17 with no prior text-based programming experience access_to_openai_codex_ai_coding_assistant_during_training baseline_group_without_ai_coding_assistant null s-2023-kazemitabaar"><td><code>E-003</code></td><td><strong>Retention</strong></td><td><span class="dir neu">Null effect</span><span class="relation-note">Claim relation: Neutral</span></td><td><div class="quality-cell"><span class="num">9</span><span class="quality-meter" aria-hidden="true"><i style="width:90%"></i></span></div></td><td class="claim-cell"><p>One week after training, retention differences between Codex and baseline groups did not reach statistical significance.</p><details class="matrix-row-detail"><summary>View full evidence</summary><dl class="evidence-detail-grid"><div class="evidence-detail-row"><dt>Study ID</dt><dd>STUDY-KAZEMITABAAR-2023</dd></div><div class="evidence-detail-row"><dt>Sample ID</dt><dd>SMPL-KAZEMITABAAR-2023-N69</dd></div><div class="evidence-detail-row"><dt>Study title</dt><dd>Studying the effect of AI Code Generators on Supporting Novice Learners in Introductory Programming</dd></div><div class="evidence-detail-row"><dt>Source title</dt><dd>Studying the effect of AI Code Generators on Supporting Novice Learners in Introductory Programming</dd></div><div class="evidence-detail-row"><dt>Year</dt><dd>2023</dd></div><div class="evidence-detail-row"><dt>Study design</dt><dd>Randomized controlled trial</dd></div><div class="evidence-detail-row"><dt>Education level</dt><dd>K-12 Ages 10 17</dd></div><div class="evidence-detail-row"><dt>Population</dt><dd>69 novices ages 10-17 with no prior text-based programming experience</dd></div><div class="evidence-detail-row"><dt>Sample size</dt><dd>69</dd></div><div class="evidence-detail-row"><dt>Intervention</dt><dd>Access To Openai Codex AI Coding Assistant During Training</dd></div><div class="evidence-detail-row"><dt>Comparison</dt><dd>Baseline Group Without AI Coding Assistant</dd></div><div class="evidence-detail-row"><dt>Outcome measure</dt><dd>retention post-test one week after training</dd></div><div class="evidence-detail-row"><dt>Effect / result</dt><dd>slightly better for Codex group but not significant</dd></div><div class="evidence-detail-row"><dt>Effect direction</dt><dd>Null effect</dd></div><div class="evidence-detail-row"><dt>Relation to claim</dt><dd>Neutral</dd></div><div class="evidence-detail-row"><dt>Duration</dt><dd>3 Weeks Training Plus 1 Week Retention</dd></div><div class="evidence-detail-row"><dt>Method</dt><dd>controlled experiment with delayed retention test</dd></div><div class="evidence-detail-row"><dt>Strengths</dt><dd>delayed_test_included</dd></div><div class="evidence-detail-row"><dt>Limitations</dt><dd>1-week retention window is short;small sample;non-university population</dd></div><div class="evidence-detail-row"><dt>Confounders</dt><dd>Prior Competency</dd></div><div class="evidence-detail-row"><dt>Quality dimensions</dt><dd>D1 Study design = 2 · D2 Sample quality = 2 · D3 Measurement validity = 2 · D4 Temporal strength = 2 · D5 Directness = 1</dd></div><div class="evidence-detail-row"><dt>Quality score</dt><dd>9.0</dd></div><div class="evidence-detail-row"><dt>Evidence level</dt><dd>strong</dd></div><div class="evidence-detail-row"><dt>Applicability</dt><dd>learner_match=partial · subject_match=introductory_programming · tool_match=codex · scope=retention over one week</dd></div><div class="evidence-detail-row"><dt>Confidence</dt><dd>0.5</dd></div><div class="evidence-detail-row"><dt>Evidence status</dt><dd>Supported</dd></div><div class="evidence-detail-row"><dt>Full claim</dt><dd>One week after training, retention differences between Codex and baseline groups did not reach statistical significance.</dd></div><div class="evidence-detail-row"><dt>Source location</dt><dd>https://dl.acm.org/doi/10.1145/3544548.3580919</dd></div><div class="evidence-detail-row"><dt>Verifiable link</dt><dd><a href="https://dl.acm.org/doi/10.1145/3544548.3580919">https://dl.acm.org/doi/10.1145/3544548.3580919</a></dd></div></dl></details></td><td><a class="source-link" href="https://dl.acm.org/doi/10.1145/3544548.3580919" title="Studying the effect of AI Code Generators on Supporting Novice Learners in Introductory Programming"><code>S-2023-kazemitabaar</code></a></td></tr><tr data-effect="negative" data-direction="negative" data-outcome="independent_problem_solving" data-search="e-004 study-bastani-2025 smpl-bastani-2025-n950 generative ai without guardrails can harm learning: evidence from high school mathematics students with unguarded gpt-4 access performed 17% worse on the independent exam than the control group, despite higher practice performance. nearly a thousand high school math students in turkey gpt4_based_tutor_gpt_base_unguarded no_generative_ai_control negative s-2025-bastani"><td><code>E-004</code></td><td><strong>Independent problem solving</strong></td><td><span class="dir neg">Negative effect</span><span class="relation-note">Claim relation: Contradict</span></td><td><div class="quality-cell"><span class="num">8</span><span class="quality-meter" aria-hidden="true"><i style="width:80%"></i></span></div></td><td class="claim-cell"><p>Students with unguarded GPT-4 access performed 17% worse on the independent exam than the control group, despite higher practice performance.</p><details class="matrix-row-detail"><summary>View full evidence</summary><dl class="evidence-detail-grid"><div class="evidence-detail-row"><dt>Study ID</dt><dd>STUDY-BASTANI-2025</dd></div><div class="evidence-detail-row"><dt>Sample ID</dt><dd>SMPL-BASTANI-2025-N950</dd></div><div class="evidence-detail-row"><dt>Study title</dt><dd>Generative AI without guardrails can harm learning: Evidence from high school mathematics</dd></div><div class="evidence-detail-row"><dt>Source title</dt><dd>Generative AI without guardrails can harm learning: Evidence from high school mathematics</dd></div><div class="evidence-detail-row"><dt>Year</dt><dd>2025</dd></div><div class="evidence-detail-row"><dt>Study design</dt><dd>Randomized controlled trial</dd></div><div class="evidence-detail-row"><dt>Education level</dt><dd>High school</dd></div><div class="evidence-detail-row"><dt>Population</dt><dd>nearly a thousand high school math students in Turkey</dd></div><div class="evidence-detail-row"><dt>Sample size</dt><dd>950</dd></div><div class="evidence-detail-row"><dt>Intervention</dt><dd>Gpt4 Based Tutor Gpt Base Unguarded</dd></div><div class="evidence-detail-row"><dt>Comparison</dt><dd>No Generative AI Control</dd></div><div class="evidence-detail-row"><dt>Outcome measure</dt><dd>exam without access to AI resources after practice phase</dd></div><div class="evidence-detail-row"><dt>Effect / result</dt><dd>negative_17_percent_on_independent_exam</dd></div><div class="evidence-detail-row"><dt>Effect direction</dt><dd>Negative effect</dd></div><div class="evidence-detail-row"><dt>Relation to claim</dt><dd>Contradict</dd></div><div class="evidence-detail-row"><dt>Duration</dt><dd>In Class Study Sessions</dd></div><div class="evidence-detail-row"><dt>Method</dt><dd>large-scale randomized controlled trial, practice phase then closed-book exam</dd></div><div class="evidence-detail-row"><dt>Strengths</dt><dd>large_scale_rct;independent_exam_without_ai;arm_wise_design</dd></div><div class="evidence-detail-row"><dt>Limitations</dt><dd>high_school_mathematics_not_university_programming;single_country</dd></div><div class="evidence-detail-row"><dt>Confounders</dt><dd>Tool Design Difference</dd></div><div class="evidence-detail-row"><dt>Quality dimensions</dt><dd>D1 Study design = 2 · D2 Sample quality = 2 · D3 Measurement validity = 2 · D4 Temporal strength = 1 · D5 Directness = 1</dd></div><div class="evidence-detail-row"><dt>Quality score</dt><dd>8.0</dd></div><div class="evidence-detail-row"><dt>Evidence level</dt><dd>strong</dd></div><div class="evidence-detail-row"><dt>Applicability</dt><dd>learner_match=partial_same_age_band_different_subject · subject_match=no_mathematics_vs_programming · tool_match=gpt4_chat_interface · scope=unguarded_general_chat_interface</dd></div><div class="evidence-detail-row"><dt>Confidence</dt><dd>0.75</dd></div><div class="evidence-detail-row"><dt>Evidence status</dt><dd>Supported</dd></div><div class="evidence-detail-row"><dt>Full claim</dt><dd>Students with unguarded GPT-4 access performed 17% worse on the independent exam than the control group, despite higher practice performance.</dd></div><div class="evidence-detail-row"><dt>Source location</dt><dd>https://www.pnas.org/doi/10.1073/pnas.2422633122</dd></div><div class="evidence-detail-row"><dt>Verifiable link</dt><dd><a href="https://www.pnas.org/doi/10.1073/pnas.2422633122">https://www.pnas.org/doi/10.1073/pnas.2422633122</a></dd></div></dl></details></td><td><a class="source-link" href="https://www.pnas.org/doi/10.1073/pnas.2422633122" title="Generative AI without guardrails can harm learning: Evidence from high school mathematics"><code>S-2025-bastani</code></a></td></tr><tr data-effect="null" data-direction="null" data-outcome="independent_problem_solving" data-search="e-005 study-bastani-2025 smpl-bastani-2025-n950 generative ai without guardrails can harm learning: evidence from high school mathematics guardrail design of the ai tutor (hints instead of answers, teacher-informed prompts) largely eliminated the negative learning effect. nearly a thousand high school math students in turkey gpt4_tutor_with_teacher_designed_guardrails no_generative_ai_control null s-2025-bastani"><td><code>E-005</code></td><td><strong>Independent problem solving</strong></td><td><span class="dir neu">Null effect</span><span class="relation-note">Claim relation: Support</span></td><td><div class="quality-cell"><span class="num">8</span><span class="quality-meter" aria-hidden="true"><i style="width:80%"></i></span></div></td><td class="claim-cell"><p>Guardrail design of the AI tutor (hints instead of answers, teacher-informed prompts) largely eliminated the negative learning effect.</p><details class="matrix-row-detail"><summary>View full evidence</summary><dl class="evidence-detail-grid"><div class="evidence-detail-row"><dt>Study ID</dt><dd>STUDY-BASTANI-2025</dd></div><div class="evidence-detail-row"><dt>Sample ID</dt><dd>SMPL-BASTANI-2025-N950</dd></div><div class="evidence-detail-row"><dt>Study title</dt><dd>Generative AI without guardrails can harm learning: Evidence from high school mathematics</dd></div><div class="evidence-detail-row"><dt>Source title</dt><dd>Generative AI without guardrails can harm learning: Evidence from high school mathematics</dd></div><div class="evidence-detail-row"><dt>Year</dt><dd>2025</dd></div><div class="evidence-detail-row"><dt>Study design</dt><dd>Randomized controlled trial</dd></div><div class="evidence-detail-row"><dt>Education level</dt><dd>High school</dd></div><div class="evidence-detail-row"><dt>Population</dt><dd>nearly a thousand high school math students in Turkey</dd></div><div class="evidence-detail-row"><dt>Sample size</dt><dd>950</dd></div><div class="evidence-detail-row"><dt>Intervention</dt><dd>Gpt4 Tutor With Teacher Designed Guardrails</dd></div><div class="evidence-detail-row"><dt>Comparison</dt><dd>No Generative AI Control</dd></div><div class="evidence-detail-row"><dt>Outcome measure</dt><dd>exam without access to AI resources after practice phase</dd></div><div class="evidence-detail-row"><dt>Effect / result</dt><dd>negative effect essentially eradicated, no positive effect observed</dd></div><div class="evidence-detail-row"><dt>Effect direction</dt><dd>Null effect</dd></div><div class="evidence-detail-row"><dt>Relation to claim</dt><dd>Support</dd></div><div class="evidence-detail-row"><dt>Duration</dt><dd>In Class Study Sessions</dd></div><div class="evidence-detail-row"><dt>Method</dt><dd>large-scale randomized controlled trial, three arms</dd></div><div class="evidence-detail-row"><dt>Strengths</dt><dd>direct_manipulation_of_tool_design;large_sample</dd></div><div class="evidence-detail-row"><dt>Limitations</dt><dd>no_positive_learning_gain_even_with_guardrails;subject_mismatch</dd></div><div class="evidence-detail-row"><dt>Confounders</dt><dd>Prompt Engineering Effort</dd></div><div class="evidence-detail-row"><dt>Quality dimensions</dt><dd>D1 Study design = 2 · D2 Sample quality = 2 · D3 Measurement validity = 2 · D4 Temporal strength = 1 · D5 Directness = 1</dd></div><div class="evidence-detail-row"><dt>Quality score</dt><dd>8.0</dd></div><div class="evidence-detail-row"><dt>Evidence level</dt><dd>strong</dd></div><div class="evidence-detail-row"><dt>Applicability</dt><dd>learner_match=partial · subject_match=no · tool_match=guardrailed_tutor_design · scope=guardrail_design_principle_transferable</dd></div><div class="evidence-detail-row"><dt>Confidence</dt><dd>0.75</dd></div><div class="evidence-detail-row"><dt>Evidence status</dt><dd>Supported</dd></div><div class="evidence-detail-row"><dt>Full claim</dt><dd>Guardrail design of the AI tutor (hints instead of answers, teacher-informed prompts) largely eliminated the negative learning effect.</dd></div><div class="evidence-detail-row"><dt>Source location</dt><dd>https://www.pnas.org/doi/10.1073/pnas.2422633122</dd></div><div class="evidence-detail-row"><dt>Verifiable link</dt><dd><a href="https://www.pnas.org/doi/10.1073/pnas.2422633122">https://www.pnas.org/doi/10.1073/pnas.2422633122</a></dd></div></dl></details></td><td><a class="source-link" href="https://www.pnas.org/doi/10.1073/pnas.2422633122" title="Generative AI without guardrails can harm learning: Evidence from high school mathematics"><code>S-2025-bastani</code></a></td></tr><tr data-effect="positive" data-direction="positive" data-outcome="assignment_score" data-search="e-006 study-bastani-2025 smpl-bastani-2025-n950 generative ai without guardrails can harm learning: evidence from high school mathematics access to gpt-4 during practice improves task performance (48% for gpt base, 127% for gpt tutor) — but this task performance does not transfer to independent exam performance. nearly a thousand high school math students in turkey gpt4_tutor_access_during_practice no_generative_ai_control positive s-2025-bastani"><td><code>E-006</code></td><td><strong>Assignment score</strong></td><td><span class="dir pos">Positive effect</span><span class="relation-note">Claim relation: Support</span></td><td><div class="quality-cell"><span class="num">8</span><span class="quality-meter" aria-hidden="true"><i style="width:80%"></i></span></div></td><td class="claim-cell"><p>Access to GPT-4 during practice improves task performance (48% for GPT Base, 127% for GPT Tutor) — but this task performance does not transfer to independent exam performance.</p><details class="matrix-row-detail"><summary>View full evidence</summary><dl class="evidence-detail-grid"><div class="evidence-detail-row"><dt>Study ID</dt><dd>STUDY-BASTANI-2025</dd></div><div class="evidence-detail-row"><dt>Sample ID</dt><dd>SMPL-BASTANI-2025-N950</dd></div><div class="evidence-detail-row"><dt>Study title</dt><dd>Generative AI without guardrails can harm learning: Evidence from high school mathematics</dd></div><div class="evidence-detail-row"><dt>Source title</dt><dd>Generative AI without guardrails can harm learning: Evidence from high school mathematics</dd></div><div class="evidence-detail-row"><dt>Year</dt><dd>2025</dd></div><div class="evidence-detail-row"><dt>Study design</dt><dd>Randomized controlled trial</dd></div><div class="evidence-detail-row"><dt>Education level</dt><dd>High school</dd></div><div class="evidence-detail-row"><dt>Population</dt><dd>nearly a thousand high school math students in Turkey</dd></div><div class="evidence-detail-row"><dt>Sample size</dt><dd>950</dd></div><div class="evidence-detail-row"><dt>Intervention</dt><dd>Gpt4 Tutor Access During Practice</dd></div><div class="evidence-detail-row"><dt>Comparison</dt><dd>No Generative AI Control</dd></div><div class="evidence-detail-row"><dt>Outcome measure</dt><dd>practice problem performance during study sessions</dd></div><div class="evidence-detail-row"><dt>Effect / result</dt><dd>48-127 percent improvement on practice problems</dd></div><div class="evidence-detail-row"><dt>Effect direction</dt><dd>Positive effect</dd></div><div class="evidence-detail-row"><dt>Relation to claim</dt><dd>Support</dd></div><div class="evidence-detail-row"><dt>Duration</dt><dd>In Class Study Sessions</dd></div><div class="evidence-detail-row"><dt>Method</dt><dd>randomized controlled trial with practice and closed-book exam phases</dd></div><div class="evidence-detail-row"><dt>Strengths</dt><dd>same_study_compares_task_and_learning;large_sample</dd></div><div class="evidence-detail-row"><dt>Limitations</dt><dd>subject_mismatch_mathematics</dd></div><div class="evidence-detail-row"><dt>Confounders</dt><dd>Task Familiarity</dd></div><div class="evidence-detail-row"><dt>Quality dimensions</dt><dd>D1 Study design = 2 · D2 Sample quality = 2 · D3 Measurement validity = 2 · D4 Temporal strength = 1 · D5 Directness = 1</dd></div><div class="evidence-detail-row"><dt>Quality score</dt><dd>8.0</dd></div><div class="evidence-detail-row"><dt>Evidence level</dt><dd>strong</dd></div><div class="evidence-detail-row"><dt>Applicability</dt><dd>learner_match=partial · subject_match=no · tool_match=gpt4 · scope=task_performance_vs_learning_separation</dd></div><div class="evidence-detail-row"><dt>Confidence</dt><dd>0.75</dd></div><div class="evidence-detail-row"><dt>Evidence status</dt><dd>Supported</dd></div><div class="evidence-detail-row"><dt>Full claim</dt><dd>Access to GPT-4 during practice improves task performance (48% for GPT Base, 127% for GPT Tutor) — but this task performance does not transfer to independent exam performance.</dd></div><div class="evidence-detail-row"><dt>Source location</dt><dd>https://www.pnas.org/doi/10.1073/pnas.2422633122</dd></div><div class="evidence-detail-row"><dt>Verifiable link</dt><dd><a href="https://www.pnas.org/doi/10.1073/pnas.2422633122">https://www.pnas.org/doi/10.1073/pnas.2422633122</a></dd></div></dl></details></td><td><a class="source-link" href="https://www.pnas.org/doi/10.1073/pnas.2422633122" title="Generative AI without guardrails can harm learning: Evidence from high school mathematics"><code>S-2025-bastani</code></a></td></tr><tr data-effect="positive" data-direction="positive" data-outcome="knowledge_gain" data-search="e-007 study-marzuki-2024 smpl-marzuki-2024-n72 impact of chatgpt on esl students&#x27; academic writing skills chatgpt as a formative feedback tool produced a significant positive impact on students&#x27; academic writing skills with positive student perceptions. undergraduate esl students at an indian university chatgpt_as_formative_feedback_tool traditional_instruction_control positive s-2024-marzuki"><td><code>E-007</code></td><td><strong>Knowledge gain</strong></td><td><span class="dir pos">Positive effect</span><span class="relation-note">Claim relation: Support</span></td><td><div class="quality-cell"><span class="num">6</span><span class="quality-meter" aria-hidden="true"><i style="width:60%"></i></span></div></td><td class="claim-cell"><p>ChatGPT as a formative feedback tool produced a significant positive impact on students&#x27; academic writing skills with positive student perceptions.</p><details class="matrix-row-detail"><summary>View full evidence</summary><dl class="evidence-detail-grid"><div class="evidence-detail-row"><dt>Study ID</dt><dd>STUDY-MARZUKI-2024</dd></div><div class="evidence-detail-row"><dt>Sample ID</dt><dd>SMPL-MARZUKI-2024-N72</dd></div><div class="evidence-detail-row"><dt>Study title</dt><dd>Impact of ChatGPT on ESL students&#x27; academic writing skills</dd></div><div class="evidence-detail-row"><dt>Source title</dt><dd>Impact of ChatGPT on ESL students&#x27; academic writing skills</dd></div><div class="evidence-detail-row"><dt>Year</dt><dd>2024</dd></div><div class="evidence-detail-row"><dt>Study design</dt><dd>Mixed methods</dd></div><div class="evidence-detail-row"><dt>Education level</dt><dd>Undergraduate</dd></div><div class="evidence-detail-row"><dt>Population</dt><dd>undergraduate ESL students at an Indian university</dd></div><div class="evidence-detail-row"><dt>Sample size</dt><dd>72</dd></div><div class="evidence-detail-row"><dt>Intervention</dt><dd>Chatgpt As Formative Feedback Tool</dd></div><div class="evidence-detail-row"><dt>Comparison</dt><dd>Traditional Instruction Control</dd></div><div class="evidence-detail-row"><dt>Outcome measure</dt><dd>writing tests with pre-post-delayed design</dd></div><div class="evidence-detail-row"><dt>Effect / result</dt><dd>significant positive impact on writing skills</dd></div><div class="evidence-detail-row"><dt>Effect direction</dt><dd>Positive effect</dd></div><div class="evidence-detail-row"><dt>Relation to claim</dt><dd>Support</dd></div><div class="evidence-detail-row"><dt>Duration</dt><dd>6 Hours Intervention</dd></div><div class="evidence-detail-row"><dt>Method</dt><dd>mixed methods intervention study, pre/post/delayed tests and focus groups</dd></div><div class="evidence-detail-row"><dt>Strengths</dt><dd>delayed_post_test;mixed_methods_triangulation</dd></div><div class="evidence-detail-row"><dt>Limitations</dt><dd>short_intervention_6_hours;single_institution;elite_private_university</dd></div><div class="evidence-detail-row"><dt>Confounders</dt><dd>Self Selection Consent</dd></div><div class="evidence-detail-row"><dt>Quality dimensions</dt><dd>D1 Study design = 1 · D2 Sample quality = 1 · D3 Measurement validity = 2 · D4 Temporal strength = 2 · D5 Directness = 0</dd></div><div class="evidence-detail-row"><dt>Quality score</dt><dd>6.0</dd></div><div class="evidence-detail-row"><dt>Evidence level</dt><dd>moderate</dd></div><div class="evidence-detail-row"><dt>Applicability</dt><dd>learner_match=yes_undergraduate · subject_match=no_writing_not_programming · tool_match=chatgpt · scope=formative_feedback_writing</dd></div><div class="evidence-detail-row"><dt>Confidence</dt><dd>0.55</dd></div><div class="evidence-detail-row"><dt>Evidence status</dt><dd>Supported</dd></div><div class="evidence-detail-row"><dt>Full claim</dt><dd>ChatGPT as a formative feedback tool produced a significant positive impact on students&#x27; academic writing skills with positive student perceptions.</dd></div><div class="evidence-detail-row"><dt>Source location</dt><dd>https://link.springer.com/article/10.1186/s40561-024-00295-9</dd></div><div class="evidence-detail-row"><dt>Verifiable link</dt><dd><a href="https://link.springer.com/article/10.1186/s40561-024-00295-9">https://link.springer.com/article/10.1186/s40561-024-00295-9</a></dd></div></dl></details></td><td><a class="source-link" href="https://link.springer.com/article/10.1186/s40561-024-00295-9" title="Impact of ChatGPT on ESL students&#x27; academic writing skills"><code>S-2024-marzuki</code></a></td></tr><tr data-effect="positive" data-direction="positive" data-outcome="completion_time" data-search="e-008 study-peng-2023 smpl-peng-2023-n95 the impact of ai on developer productivity: evidence from github copilot professional developers with copilot access completed a standardized coding task about 55% faster than the control group (rct, n=95). 95 recruited professional developers completing a standardized coding task on a freelance platform access_to_github_copilot_during_task control_group_without_copilot positive s-2023-peng"><td><code>E-008</code></td><td><strong>Completion time</strong></td><td><span class="dir pos">Positive effect</span><span class="relation-note">Claim relation: Support</span></td><td><div class="quality-cell"><span class="num">8</span><span class="quality-meter" aria-hidden="true"><i style="width:80%"></i></span></div></td><td class="claim-cell"><p>Professional developers with Copilot access completed a standardized coding task about 55% faster than the control group (RCT, n=95).</p><details class="matrix-row-detail"><summary>View full evidence</summary><dl class="evidence-detail-grid"><div class="evidence-detail-row"><dt>Study ID</dt><dd>STUDY-PENG-2023</dd></div><div class="evidence-detail-row"><dt>Sample ID</dt><dd>SMPL-PENG-2023-N95</dd></div><div class="evidence-detail-row"><dt>Study title</dt><dd>The Impact of AI on Developer Productivity: Evidence from GitHub Copilot</dd></div><div class="evidence-detail-row"><dt>Source title</dt><dd>The Impact of AI on Developer Productivity: Evidence from GitHub Copilot</dd></div><div class="evidence-detail-row"><dt>Year</dt><dd>2023</dd></div><div class="evidence-detail-row"><dt>Study design</dt><dd>Randomized controlled trial</dd></div><div class="evidence-detail-row"><dt>Education level</dt><dd>Professional Developers Not Students</dd></div><div class="evidence-detail-row"><dt>Population</dt><dd>95 recruited professional developers completing a standardized coding task on a freelance platform</dd></div><div class="evidence-detail-row"><dt>Sample size</dt><dd>95</dd></div><div class="evidence-detail-row"><dt>Intervention</dt><dd>Access To Github Copilot During Task</dd></div><div class="evidence-detail-row"><dt>Comparison</dt><dd>Control Group Without Copilot</dd></div><div class="evidence-detail-row"><dt>Outcome measure</dt><dd>Time To Complete Http Server Implementation</dd></div><div class="evidence-detail-row"><dt>Effect / result</dt><dd>~55.8% faster task completion in Copilot group</dd></div><div class="evidence-detail-row"><dt>Effect direction</dt><dd>Positive effect</dd></div><div class="evidence-detail-row"><dt>Relation to claim</dt><dd>Support</dd></div><div class="evidence-detail-row"><dt>Duration</dt><dd>Single Task Session</dd></div><div class="evidence-detail-row"><dt>Method</dt><dd>online randomized controlled experiment with objective completion-time metric</dd></div><div class="evidence-detail-row"><dt>Strengths</dt><dd>randomized_controlled_design;objective_completion_time_metric</dd></div><div class="evidence-detail-row"><dt>Limitations</dt><dd>professional_population_not_students;single_task_ecology;preprint_not_peer_reviewed</dd></div><div class="evidence-detail-row"><dt>Confounders</dt><dd>Task Familiarity;Platform Recruitment Self Selection</dd></div><div class="evidence-detail-row"><dt>Quality dimensions</dt><dd>D1 Study design = 2 · D2 Sample quality = 2 · D3 Measurement validity = 2 · D4 Temporal strength = 1 · D5 Directness = 1</dd></div><div class="evidence-detail-row"><dt>Quality score</dt><dd>8.0</dd></div><div class="evidence-detail-row"><dt>Evidence level</dt><dd>moderate</dd></div><div class="evidence-detail-row"><dt>Applicability</dt><dd>learner_match=mismatch_professional_developers · subject_match=adjacent_web_development_task · tool_match=copilot_like_generative_ai · scope=task_performance_only_no_learning_outcome</dd></div><div class="evidence-detail-row"><dt>Confidence</dt><dd>0.6</dd></div><div class="evidence-detail-row"><dt>Evidence status</dt><dd>Supported</dd></div><div class="evidence-detail-row"><dt>Full claim</dt><dd>Professional developers with Copilot access completed a standardized coding task about 55% faster than the control group (RCT, n=95).</dd></div><div class="evidence-detail-row"><dt>Source location</dt><dd>https://doi.org/10.48550/arXiv.2302.06590</dd></div><div class="evidence-detail-row"><dt>Verifiable link</dt><dd><a href="https://doi.org/10.48550/arXiv.2302.06590">https://doi.org/10.48550/arXiv.2302.06590</a></dd></div></dl></details></td><td><a class="source-link" href="https://doi.org/10.48550/arXiv.2302.06590" title="The Impact of AI on Developer Productivity: Evidence from GitHub Copilot"><code>S-2023-peng</code></a></td></tr><tr data-effect="null" data-direction="null" data-outcome="code_quality" data-search="e-009 study-yetistiren-2023 smpl-yetistiren-2023-bench github copilot ai pair programmer: asset or liability? systematic benchmark evaluation reports mixed quality results for copilot-generated code relative to human code: correctness competitive on parts of the benchmark while security-relevant defects are documented. copilot-generated and human-written programs drawn from published benchmark datasets copilot_generated_programs human_written_programs_on_same_benchmarks null s-2023-yetistiren"><td><code>E-009</code></td><td><strong>Code quality</strong></td><td><span class="dir neu">Null effect</span><span class="relation-note">Claim relation: Neutral</span></td><td><div class="quality-cell"><span class="num">7</span><span class="quality-meter" aria-hidden="true"><i style="width:70%"></i></span></div></td><td class="claim-cell"><p>Systematic benchmark evaluation reports mixed quality results for Copilot-generated code relative to human code: correctness competitive on parts of the benchmark while security-relevant defects are documented.</p><details class="matrix-row-detail"><summary>View full evidence</summary><dl class="evidence-detail-grid"><div class="evidence-detail-row"><dt>Study ID</dt><dd>STUDY-YETISTIREN-2023</dd></div><div class="evidence-detail-row"><dt>Sample ID</dt><dd>SMPL-YETISTIREN-2023-BENCH</dd></div><div class="evidence-detail-row"><dt>Study title</dt><dd>GitHub Copilot AI Pair Programmer: Asset or Liability?</dd></div><div class="evidence-detail-row"><dt>Source title</dt><dd>GitHub Copilot AI Pair Programmer: Asset or Liability?</dd></div><div class="evidence-detail-row"><dt>Year</dt><dd>2023</dd></div><div class="evidence-detail-row"><dt>Study design</dt><dd>Observational</dd></div><div class="evidence-detail-row"><dt>Education level</dt><dd>Not Applicable Code Artifacts</dd></div><div class="evidence-detail-row"><dt>Population</dt><dd>Copilot-generated and human-written programs drawn from published benchmark datasets</dd></div><div class="evidence-detail-row"><dt>Intervention</dt><dd>Copilot Generated Programs</dd></div><div class="evidence-detail-row"><dt>Comparison</dt><dd>Human Written Programs On Same Benchmarks</dd></div><div class="evidence-detail-row"><dt>Outcome measure</dt><dd>Correctness Security Maintainability Metrics On Benchmarks</dd></div><div class="evidence-detail-row"><dt>Effect / result</dt><dd>mixed quality profile; no single-direction summary</dd></div><div class="evidence-detail-row"><dt>Effect direction</dt><dd>Null effect</dd></div><div class="evidence-detail-row"><dt>Relation to claim</dt><dd>Neutral</dd></div><div class="evidence-detail-row"><dt>Duration</dt><dd>Not Applicable Artifact Study</dd></div><div class="evidence-detail-row"><dt>Method</dt><dd>systematic empirical evaluation of generated code against human baselines on public benchmarks</dd></div><div class="evidence-detail-row"><dt>Strengths</dt><dd>multi_dimensional_quality_metrics;reproducible_benchmark_protocol</dd></div><div class="evidence-detail-row"><dt>Limitations</dt><dd>artifact_benchmark_not_classroom;no_learning_outcome;tool_version_from_2023</dd></div><div class="evidence-detail-row"><dt>Confounders</dt><dd>Benchmark Task Distribution</dd></div><div class="evidence-detail-row"><dt>Quality dimensions</dt><dd>D1 Study design = 1 · D2 Sample quality = 2 · D3 Measurement validity = 2 · D4 Temporal strength = 1 · D5 Directness = 1</dd></div><div class="evidence-detail-row"><dt>Quality score</dt><dd>7.0</dd></div><div class="evidence-detail-row"><dt>Evidence level</dt><dd>moderate</dd></div><div class="evidence-detail-row"><dt>Applicability</dt><dd>learner_match=mismatch_no_learners_in_study · subject_match=introductory_adjacent_code_tasks · tool_match=copilot_like_generative_ai · scope=output_quality_only</dd></div><div class="evidence-detail-row"><dt>Confidence</dt><dd>0.55</dd></div><div class="evidence-detail-row"><dt>Evidence status</dt><dd>Supported</dd></div><div class="evidence-detail-row"><dt>Full claim</dt><dd>Systematic benchmark evaluation reports mixed quality results for Copilot-generated code relative to human code: correctness competitive on parts of the benchmark while security-relevant defects are documented.</dd></div><div class="evidence-detail-row"><dt>Source location</dt><dd>https://doi.org/10.1016/j.jss.2023.111734</dd></div><div class="evidence-detail-row"><dt>Verifiable link</dt><dd><a href="https://doi.org/10.1016/j.jss.2023.111734">https://doi.org/10.1016/j.jss.2023.111734</a></dd></div></dl></details></td><td><a class="source-link" href="https://doi.org/10.1016/j.jss.2023.111734" title="GitHub Copilot AI Pair Programmer: Asset or Liability?"><code>S-2023-yetistiren</code></a></td></tr><tr data-effect="positive" data-direction="positive" data-outcome="assignment_score" data-search="e-010 study-finnieansley-2022 smpl-finnieansley-2022-qsets using github copilot to solve introductory programming problems codex produced passing-level solutions for roughly half to three-quarters of cs1 exam-style questions depending on the dataset, indicating substantial task-capability headroom available to novices. cs1 exam-style question sets answered by codex and compared against published student score distributions codex_answer_generation_on_cs1_questions published_student_cohort_score_distributions positive s-2022-finnie-ansley"><td><code>E-010</code></td><td><strong>Assignment score</strong></td><td><span class="dir pos">Positive effect</span><span class="relation-note">Claim relation: Support</span></td><td><div class="quality-cell"><span class="num">7</span><span class="quality-meter" aria-hidden="true"><i style="width:70%"></i></span></div></td><td class="claim-cell"><p>Codex produced passing-level solutions for roughly half to three-quarters of CS1 exam-style questions depending on the dataset, indicating substantial task-capability headroom available to novices.</p><details class="matrix-row-detail"><summary>View full evidence</summary><dl class="evidence-detail-grid"><div class="evidence-detail-row"><dt>Study ID</dt><dd>STUDY-FINNIEANSLEY-2022</dd></div><div class="evidence-detail-row"><dt>Sample ID</dt><dd>SMPL-FINNIEANSLEY-2022-QSETS</dd></div><div class="evidence-detail-row"><dt>Study title</dt><dd>Using GitHub Copilot to Solve Introductory Programming Problems</dd></div><div class="evidence-detail-row"><dt>Source title</dt><dd>Using GitHub Copilot to Solve Introductory Programming Problems</dd></div><div class="evidence-detail-row"><dt>Year</dt><dd>2022</dd></div><div class="evidence-detail-row"><dt>Study design</dt><dd>Observational</dd></div><div class="evidence-detail-row"><dt>Education level</dt><dd>University Year 1 Question Sets</dd></div><div class="evidence-detail-row"><dt>Population</dt><dd>CS1 exam-style question sets answered by Codex and compared against published student score distributions</dd></div><div class="evidence-detail-row"><dt>Intervention</dt><dd>Codex Answer Generation On CS1 Questions</dd></div><div class="evidence-detail-row"><dt>Comparison</dt><dd>Published Student Cohort Score Distributions</dd></div><div class="evidence-detail-row"><dt>Outcome measure</dt><dd>Pass Rate On CS1 Exam Style Questions</dd></div><div class="evidence-detail-row"><dt>Effect / result</dt><dd>passing solutions on ~50-75% of questions across datasets</dd></div><div class="evidence-detail-row"><dt>Effect direction</dt><dd>Positive effect</dd></div><div class="evidence-detail-row"><dt>Relation to claim</dt><dd>Support</dd></div><div class="evidence-detail-row"><dt>Duration</dt><dd>Not Applicable Capability Probe</dd></div><div class="evidence-detail-row"><dt>Method</dt><dd>capability benchmark against published student distributions; reproducible question sets</dd></div><div class="evidence-detail-row"><dt>Strengths</dt><dd>public_reproducible_question_sets;directly_relevant_task_domain</dd></div><div class="evidence-detail-row"><dt>Limitations</dt><dd>tool_solves_task_does_not_equate_student_learning;codex_2021_model_version_outdated</dd></div><div class="evidence-detail-row"><dt>Confounders</dt><dd>Question Leakage Into Training Data Possible</dd></div><div class="evidence-detail-row"><dt>Quality dimensions</dt><dd>D1 Study design = 1 · D2 Sample quality = 2 · D3 Measurement validity = 2 · D4 Temporal strength = 1 · D5 Directness = 1</dd></div><div class="evidence-detail-row"><dt>Quality score</dt><dd>7.0</dd></div><div class="evidence-detail-row"><dt>Evidence level</dt><dd>moderate</dd></div><div class="evidence-detail-row"><dt>Applicability</dt><dd>learner_match=partial_measures_tool_not_students · subject_match=introductory_programming · tool_match=copilot_like_generative_ai · scope=tool_capability_headroom</dd></div><div class="evidence-detail-row"><dt>Confidence</dt><dd>0.55</dd></div><div class="evidence-detail-row"><dt>Evidence status</dt><dd>Supported</dd></div><div class="evidence-detail-row"><dt>Full claim</dt><dd>Codex produced passing-level solutions for roughly half to three-quarters of CS1 exam-style questions depending on the dataset, indicating substantial task-capability headroom available to novices.</dd></div><div class="evidence-detail-row"><dt>Source location</dt><dd>https://dl.acm.org/doi/10.1145/3545945.3569830</dd></div><div class="evidence-detail-row"><dt>Verifiable link</dt><dd><a href="https://dl.acm.org/doi/10.1145/3545945.3569830">https://dl.acm.org/doi/10.1145/3545945.3569830</a></dd></div></dl></details></td><td><a class="source-link" href="https://dl.acm.org/doi/10.1145/3545945.3569830" title="Using GitHub Copilot to Solve Introductory Programming Problems"><code>S-2022-finnie-ansley</code></a></td></tr><tr data-effect="positive" data-direction="positive" data-outcome="metacognition" data-search="e-011 study-explcomp-2023 smpl-explcomp-2023-ratings comparing code explanations created by students and large language models controlled comparisons find llm-generated code explanations comparable to (in places better than) student-authored explanations, suggesting viability as explanatory scaffold material rather than as a replacement for student explanation practice. student-produced versus llm-produced explanations of short programs under controlled comparison llm_generated_code_explanations student_generated_explanations_of_same_programs positive s-2023-explanations-compare"><td><code>E-011</code></td><td><strong>Metacognition</strong></td><td><span class="dir pos">Positive effect</span><span class="relation-note">Claim relation: Support</span></td><td><div class="quality-cell"><span class="num">7</span><span class="quality-meter" aria-hidden="true"><i style="width:70%"></i></span></div></td><td class="claim-cell"><p>Controlled comparisons find LLM-generated code explanations comparable to (in places better than) student-authored explanations, suggesting viability as explanatory scaffold material rather than as a replacemen…</p><details class="matrix-row-detail"><summary>View full evidence</summary><dl class="evidence-detail-grid"><div class="evidence-detail-row"><dt>Study ID</dt><dd>STUDY-EXPLCOMP-2023</dd></div><div class="evidence-detail-row"><dt>Sample ID</dt><dd>SMPL-EXPLCOMP-2023-RATINGS</dd></div><div class="evidence-detail-row"><dt>Study title</dt><dd>Comparing Code Explanations Created by Students and Large Language Models</dd></div><div class="evidence-detail-row"><dt>Source title</dt><dd>Comparing Code Explanations Created by Students and Large Language Models</dd></div><div class="evidence-detail-row"><dt>Year</dt><dd>2023</dd></div><div class="evidence-detail-row"><dt>Study design</dt><dd>Observational</dd></div><div class="evidence-detail-row"><dt>Education level</dt><dd>University Introductory</dd></div><div class="evidence-detail-row"><dt>Population</dt><dd>Student-produced versus LLM-produced explanations of short programs under controlled comparison</dd></div><div class="evidence-detail-row"><dt>Intervention</dt><dd>LLM Generated Code Explanations</dd></div><div class="evidence-detail-row"><dt>Comparison</dt><dd>Student Generated Explanations Of Same Programs</dd></div><div class="evidence-detail-row"><dt>Outcome measure</dt><dd>Rated Explanation Quality And Comprehensibility</dd></div><div class="evidence-detail-row"><dt>Effect / result</dt><dd>comparable-or-better rated quality vs student explanations</dd></div><div class="evidence-detail-row"><dt>Effect direction</dt><dd>Positive effect</dd></div><div class="evidence-detail-row"><dt>Relation to claim</dt><dd>Support</dd></div><div class="evidence-detail-row"><dt>Duration</dt><dd>Single Session Ratings</dd></div><div class="evidence-detail-row"><dt>Method</dt><dd>controlled comparison with blind rating of explanation pairs</dd></div><div class="evidence-detail-row"><dt>Strengths</dt><dd>controlled_pairwise_comparison;learning_process_relevant_construct</dd></div><div class="evidence-detail-row"><dt>Limitations</dt><dd>short_term_ratings_not_learning_gains;small_program_snippets_ecology</dd></div><div class="evidence-detail-row"><dt>Confounders</dt><dd>Rating Criteria Subjectivity</dd></div><div class="evidence-detail-row"><dt>Quality dimensions</dt><dd>D1 Study design = 1 · D2 Sample quality = 2 · D3 Measurement validity = 2 · D4 Temporal strength = 1 · D5 Directness = 1</dd></div><div class="evidence-detail-row"><dt>Quality score</dt><dd>7.0</dd></div><div class="evidence-detail-row"><dt>Evidence level</dt><dd>moderate</dd></div><div class="evidence-detail-row"><dt>Applicability</dt><dd>learner_match=partial_scaffold_material_only · subject_match=introductory_programming · tool_match=llm_explanations · scope=scaffold_quality_not_effectiveness</dd></div><div class="evidence-detail-row"><dt>Confidence</dt><dd>0.55</dd></div><div class="evidence-detail-row"><dt>Evidence status</dt><dd>Supported</dd></div><div class="evidence-detail-row"><dt>Full claim</dt><dd>Controlled comparisons find LLM-generated code explanations comparable to (in places better than) student-authored explanations, suggesting viability as explanatory scaffold material rather than as a replacement for student explanation practice.</dd></div><div class="evidence-detail-row"><dt>Source location</dt><dd>https://dl.acm.org/doi/10.1145/3587102.3588785</dd></div><div class="evidence-detail-row"><dt>Verifiable link</dt><dd><a href="https://dl.acm.org/doi/10.1145/3587102.3588785">https://dl.acm.org/doi/10.1145/3587102.3588785</a></dd></div></dl></details></td><td><a class="source-link" href="https://dl.acm.org/doi/10.1145/3587102.3588785" title="Comparing Code Explanations Created by Students and Large Language Models"><code>S-2023-explanations-compare</code></a></td></tr><tr data-effect="negative" data-direction="negative" data-outcome="over_reliance" data-search="e-012 study-vaithilingam-2022 smpl-vaithilingam-2022-n24 expectation vs. experience: evaluating the usability of code generation tools despite faster first-task completion, participants struggled to understand and debug ai-generated solutions and reported low ownership of the final program - documenting metacognitive and dependence risks that pure speed metrics miss. 24 participants in a within-subjects usability study of copilot-style tools copilot_assisted_program_writing within_subject_baseline_without_tool negative s-2022-vaithilingam"><td><code>E-012</code></td><td><strong>Over-reliance</strong></td><td><span class="dir neg">Negative effect</span><span class="relation-note">Claim relation: Contradict</span></td><td><div class="quality-cell"><span class="num">7</span><span class="quality-meter" aria-hidden="true"><i style="width:70%"></i></span></div></td><td class="claim-cell"><p>Despite faster first-task completion, participants struggled to understand and debug AI-generated solutions and reported low ownership of the final program - documenting metacognitive and dependence risks that…</p><details class="matrix-row-detail"><summary>View full evidence</summary><dl class="evidence-detail-grid"><div class="evidence-detail-row"><dt>Study ID</dt><dd>STUDY-VAITHILINGAM-2022</dd></div><div class="evidence-detail-row"><dt>Sample ID</dt><dd>SMPL-VAITHILINGAM-2022-N24</dd></div><div class="evidence-detail-row"><dt>Study title</dt><dd>Expectation vs. Experience: Evaluating the Usability of Code Generation Tools</dd></div><div class="evidence-detail-row"><dt>Source title</dt><dd>Expectation vs. Experience: Evaluating the Usability of Code Generation Tools</dd></div><div class="evidence-detail-row"><dt>Year</dt><dd>2022</dd></div><div class="evidence-detail-row"><dt>Study design</dt><dd>Qualitative</dd></div><div class="evidence-detail-row"><dt>Education level</dt><dd>Mixed Cs Students And Professionals</dd></div><div class="evidence-detail-row"><dt>Population</dt><dd>24 participants in a within-subjects usability study of Copilot-style tools</dd></div><div class="evidence-detail-row"><dt>Sample size</dt><dd>24</dd></div><div class="evidence-detail-row"><dt>Intervention</dt><dd>Copilot Assisted Program Writing</dd></div><div class="evidence-detail-row"><dt>Comparison</dt><dd>Within Subject Baseline Without Tool</dd></div><div class="evidence-detail-row"><dt>Outcome measure</dt><dd>Understanding Ownership And Debugging Reports</dd></div><div class="evidence-detail-row"><dt>Effect / result</dt><dd>documented comprehension/ownership difficulties despite speed gain</dd></div><div class="evidence-detail-row"><dt>Effect direction</dt><dd>Negative effect</dd></div><div class="evidence-detail-row"><dt>Relation to claim</dt><dd>Contradict</dd></div><div class="evidence-detail-row"><dt>Duration</dt><dd>Single Session</dd></div><div class="evidence-detail-row"><dt>Method</dt><dd>within-subject usability study with tasks, observation and interviews</dd></div><div class="evidence-detail-row"><dt>Strengths</dt><dd>rich_qualitative_process_data;constructs_missed_by_speed_metrics</dd></div><div class="evidence-detail-row"><dt>Limitations</dt><dd>small_n_24;single_session;self_reported_understanding</dd></div><div class="evidence-detail-row"><dt>Confounders</dt><dd>Participant AI Familiarity</dd></div><div class="evidence-detail-row"><dt>Quality dimensions</dt><dd>D1 Study design = 1 · D2 Sample quality = 2 · D3 Measurement validity = 2 · D4 Temporal strength = 1 · D5 Directness = 1</dd></div><div class="evidence-detail-row"><dt>Quality score</dt><dd>7.0</dd></div><div class="evidence-detail-row"><dt>Evidence level</dt><dd>moderate</dd></div><div class="evidence-detail-row"><dt>Applicability</dt><dd>learner_match=partial_includes_cs_students · subject_match=programming_adjacent · tool_match=copilot_like_generative_ai · scope=risk_identification</dd></div><div class="evidence-detail-row"><dt>Confidence</dt><dd>0.55</dd></div><div class="evidence-detail-row"><dt>Evidence status</dt><dd>Contradicted</dd></div><div class="evidence-detail-row"><dt>Full claim</dt><dd>Despite faster first-task completion, participants struggled to understand and debug AI-generated solutions and reported low ownership of the final program - documenting metacognitive and dependence risks that pure speed metrics miss.</dd></div><div class="evidence-detail-row"><dt>Source location</dt><dd>https://dl.acm.org/doi/10.1145/3491101.3519665</dd></div><div class="evidence-detail-row"><dt>Verifiable link</dt><dd><a href="https://dl.acm.org/doi/10.1145/3491101.3519665">https://dl.acm.org/doi/10.1145/3491101.3519665</a></dd></div></dl></details></td><td><a class="source-link" href="https://dl.acm.org/doi/10.1145/3491101.3519665" title="Expectation vs. Experience: Evaluating the Usability of Code Generation Tools"><code>S-2022-vaithilingam</code></a></td></tr></tbody></table></div></div></section><section id="full-03-quality-en" class="full-chapter" data-full-chapter><header class="full-chapter-header"><h2>03 Evidence Quality, Counterevidence &amp; Method Audit</h2><p class="full-chapter-lead">Examine why evidence is credible, where it conflicts, and which conclusions require downgrading.</p></header><div class="full-chapter-body"><section class="method-review-group"><header class="method-review-title"><h3>Audit target: overall</h3><span class="method-verdict">Concern</span></header><div class="method-audit-grid"><article class="method-audit-item method-met"><div class="method-audit-head"><strong>Control Group</strong><span class="method-status">Met</span></div><p>All three studies include a no-AI control group.</p></article><article class="method-audit-item method-met"><div class="method-audit-head"><strong>Randomization</strong><span class="method-status">Met</span></div><p>Kazemitabaar 2023 and Bastani 2025 use randomized assignment.</p></article><article class="method-audit-item method-met"><div class="method-audit-head"><strong>Pre Test</strong><span class="method-status">Met</span></div><p>Kazemitabaar 2023 has a pre-study evaluation; Bastani 2025 measures baseline covariates.</p></article><article class="method-audit-item method-met"><div class="method-audit-head"><strong>Post Test</strong><span class="method-status">Met</span></div><p>Immediate post-tests present in all studies.</p></article><article class="method-audit-item method-partial"><div class="method-audit-head"><strong>Retention Test</strong><span class="method-status">Partial</span></div><p>Kazemitabaar 2023 has 1-week retention; Bastani 2025 has no delayed test; Marzuki 2024 has delayed test.</p></article><article class="method-audit-item method-partial"><div class="method-audit-head"><strong>Transfer Test</strong><span class="method-status">Partial</span></div><p>Kazemitabaar 2023 code-modification task is transfer-adjacent; no full no-AI transfer task.</p></article><article class="method-audit-item method-met"><div class="method-audit-head"><strong>Sample Bias</strong><span class="method-status">Met</span></div><p>Bastani 2025 nearly 1000 students; Kazemitabaar 2023 small (69) young sample.</p></article><article class="method-audit-item method-partial"><div class="method-audit-head"><strong>Self Selection</strong><span class="method-status">Partial</span></div><p>Marzuki 2024 consent-based participation risks self-selection.</p></article><article class="method-audit-item method-partial"><div class="method-audit-head"><strong>Measurement Validity</strong><span class="method-status">Partial</span></div><p>Practice/task performance is not equated to learning; independent exams present in Bastani 2025 only.</p></article><article class="method-audit-item method-partial"><div class="method-audit-head"><strong>Confounders</strong><span class="method-status">Partial</span></div><p>Prior programming competency interacts with AI benefit in Kazemitabaar 2023.</p></article><article class="method-audit-item method-not_applicable"><div class="method-audit-head"><strong>Instructor Effect</strong><span class="method-status">N/A</span></div><p>Kazemitabaar 2023 is self-paced; classroom studies may carry instructor effects.</p></article><article class="method-audit-item method-partial"><div class="method-audit-head"><strong>Novelty Effect</strong><span class="method-status">Partial</span></div><p>Short interventions likely inflate engagement; none of the studies controlled for novelty.</p></article><article class="method-audit-item method-not_applicable"><div class="method-audit-head"><strong>Tool Version Effect</strong><span class="method-status">N/A</span></div><p>Single tool versions studied; rapid tool change limits durability.</p></article><article class="method-audit-item method-partial"><div class="method-audit-head"><strong>Ai Usage Policy</strong><span class="method-status">Partial</span></div><p>Bastani 2025 explicitly contrasts unguarded vs guardrailed usage policies.</p></article><article class="method-audit-item method-partial"><div class="method-audit-head"><strong>Dropout</strong><span class="method-status">Partial</span></div><p>Marzuki 2024 reports attrition; others not detailed.</p></article></div><div class="method-guard-wrap"><strong>Task vs learning guard: </strong><p class="method-guard">Bastani 2025 demonstrates the danger of equating the two: +48-127% practice performance coexisted with -17% independent exam performance.</p></div></section><article class="conflict-card"><strong>Tribunal note: </strong><div class="conflict-text"><p>Disagreement comes from outcome separation (task vs learning), tool design (guarded vs unguarded), and population (K-12 / professionals vs university). Task-performance evidence is consistently positive across randomized and benchmark studies;…</p><details class="detail-expander"><summary>Expand full explanation</summary><div class="detail-body"><p>Disagreement comes from outcome separation (task vs learning), tool design (guarded vs unguarded), and population (K-12 / professionals vs university). Task-performance evidence is consistently positive across randomized and benchmark studies; the only study measuring independent performance after AI removal shows harm without guardrails; usability and artifact studies add dependence and quality caveats rather than resolving the learning question.</p></div></details></div></article><div class="evidence-tribunal" data-visual="evidence-tribunal-grid"><p class="tribunal-summary"><strong>Decision: </strong>Pilot · <strong>Confidence: </strong>Moderate</p><div class="tribunal-grid"><article class="tribunal-card supported"><header><span aria-hidden="true">✓</span><h3>Can claim</h3><span class="tribunal-count">7</span></header><ul><li><p>AI coding assistants reliably increase task performance during training (completion speed, correctness) — E-001, E-006.</p><div class="tribunal-evidence-refs"><code>E-001</code><code>E-006</code></div></li><li><p>Unguarded generative AI access can harm independent problem solving when access is removed — E-004.</p><div class="tribunal-evidence-refs"><code>E-004</code></div></li><li><p>Guardrail design (hints instead of answers) substantially mitigates the negative learning effect — E-005.</p><div class="tribunal-evidence-refs"><code>E-005</code></div></li><li><p>Task performance gains do not automatically imply learning gains — E-004 vs E-006 (within-study contrast).</p><div class="tribunal-evidence-refs"><code>E-004</code><code>E-006</code></div></li><li><p>Tool capability is substantial: Codex solves roughly half to three-quarters of CS1 exam-style questions — E-010.</p><div class="tribunal-evidence-refs"><code>E-010</code></div></li><li><p>Professional-developer RCT shows ~55% faster task completion with Copilot; directness limited by professional population — E-008.</p><div class="tribunal-evidence-refs"><code>E-008</code></div></li><li><p>LLM code explanations rate comparable to student-authored explanations, viable as scaffold material — E-011.</p><div class="tribunal-evidence-refs"><code>E-011</code></div></li></ul></article><article class="tribunal-card uncertain"><header><span aria-hidden="true">?</span><h3>Cannot yet claim</h3><span class="tribunal-count">4</span></header><ul><li><p>Whether AI coding assistants improve or preserve actual programming learning in university novices — no direct university-level RCT in reviewed set [无直接证据]</p></li><li><p>Whether one-week neutral retention (Kazemitabaar 2023) extends to a semester — E-003.</p><div class="tribunal-evidence-refs"><code>E-003</code></div></li><li><p>Whether benchmark quality findings (E-009) and explanation-quality ratings (E-011) translate into classroom learning gains.</p><div class="tribunal-evidence-refs"><code>E-009</code><code>E-011</code></div></li><li><p>How comprehension/ownership difficulties documented in usability studies (E-012) behave over a full semester with guardrails.</p><div class="tribunal-evidence-refs"><code>E-012</code></div></li></ul></article><article class="tribunal-card contradicted"><header><span aria-hidden="true">×</span><h3>Contradicted claims</h3><span class="tribunal-count">2</span></header><ul><li><p>The claim &#x27;AI tools always improve learning&#x27; is contradicted by E-004 (unguarded access, -17% independent exam).</p><div class="tribunal-evidence-refs"><code>E-004</code></div></li><li><p>The claim &#x27;speed gains equal learning gains&#x27; is contradicted by the task-vs-learning separation across E-001/E-006/E-008 vs E-004.</p><div class="tribunal-evidence-refs"><code>E-001</code><code>E-006</code><code>E-008</code><code>E-004</code></div></li></ul></article><article class="tribunal-card missing"><header><span aria-hidden="true">…</span><h3>Missing evidence</h3><span class="tribunal-count">4</span></header><ul><li><p>RCT of AI coding assistants in university programming courses with retention and no-AI transfer tests.</p></li><li><p>Studies varying AI usage policy within the same course.</p></li><li><p>Longitudinal data on AI dependency beyond one course.</p></li><li><p>Peer-reviewed replication of the professional speed RCT (Peng et al. remains a preprint).</p></li></ul></article></div><details class="supporting-visual"><summary>EvidenceFlow Protocol</summary><svg viewBox="0 0 720 260" xmlns="http://www.w3.org/2000/svg" role="img" aria-label="EvidenceFlow Protocol"><title>EvidenceFlow Protocol</title><desc>Research flow from framing, retrieval, fetch/verify, extraction, challenge, method audit and adjudication to applicability and intervention evaluation.</desc><defs><marker id="arr-en-full-workflow" markerWidth="8" markerHeight="8" refX="6" refY="3" orient="auto"><path d="M0,0 L6,3 L0,6 Z" fill="#8A867E"/></marker></defs><rect width="720" height="260" fill="#FCFAF6" rx="12"/><text x="24" y="34" font-size="16" font-weight="700" fill="#3A3833">EvidenceFlow Protocol</text><rect x="24" y="100" width="64" height="52" rx="8" fill="#B8694A"/><text x="56.0" y="126.0" text-anchor="middle" fill="#FFFFFF" font-size="10" font-weight="600"><tspan x="56.0" y="126.0">Frame</tspan></text><line x1="88" y1="126" x2="100" y2="126" stroke="#8A867E" stroke-width="2" marker-end="url(#arr-en-full-workflow)"/><rect x="100" y="100" width="64" height="52" rx="8" fill="#B8694A"/><text x="132.0" y="126.0" text-anchor="middle" fill="#FFFFFF" font-size="10" font-weight="600"><tspan x="132.0" y="126.0">Retrieve</tspan></text><line x1="164" y1="126" x2="176" y2="126" stroke="#8A867E" stroke-width="2" marker-end="url(#arr-en-full-workflow)"/><rect x="176" y="100" width="64" height="52" rx="8" fill="#B8694A"/><text x="208.0" y="126.0" text-anchor="middle" fill="#FFFFFF" font-size="10" font-weight="600"><tspan x="208.0" y="126.0">Fetch</tspan><tspan x="208.0" y="140.0">Verify</tspan></text><line x1="240" y1="126" x2="252" y2="126" stroke="#8A867E" stroke-width="2" marker-end="url(#arr-en-full-workflow)"/><rect x="252" y="100" width="64" height="52" rx="8" fill="#B8694A"/><text x="284.0" y="126.0" text-anchor="middle" fill="#FFFFFF" font-size="10" font-weight="600"><tspan x="284.0" y="126.0">Extract</tspan></text><line x1="316" y1="126" x2="328" y2="126" stroke="#8A867E" stroke-width="2" marker-end="url(#arr-en-full-workflow)"/><rect x="328" y="100" width="64" height="52" rx="8" fill="#5E8A6A"/><text x="360.0" y="126.0" text-anchor="middle" fill="#FFFFFF" font-size="10" font-weight="600"><tspan x="360.0" y="126.0">Challenge</tspan></text><line x1="392" y1="126" x2="404" y2="126" stroke="#8A867E" stroke-width="2" marker-end="url(#arr-en-full-workflow)"/><rect x="404" y="100" width="64" height="52" rx="8" fill="#5E8A6A"/><text x="436.0" y="126.0" text-anchor="middle" fill="#FFFFFF" font-size="10" font-weight="600"><tspan x="436.0" y="126.0">Audit</tspan><tspan x="436.0" y="140.0">Method</tspan></text><line x1="468" y1="126" x2="480" y2="126" stroke="#8A867E" stroke-width="2" marker-end="url(#arr-en-full-workflow)"/><rect x="480" y="100" width="64" height="52" rx="8" fill="#C99A4A"/><text x="512.0" y="126.0" text-anchor="middle" fill="#FFFFFF" font-size="10" font-weight="600"><tspan x="512.0" y="126.0">Adjudicate</tspan></text><line x1="544" y1="126" x2="556" y2="126" stroke="#8A867E" stroke-width="2" marker-end="url(#arr-en-full-workflow)"/><rect x="556" y="100" width="64" height="52" rx="8" fill="#C99A4A"/><text x="588.0" y="126.0" text-anchor="middle" fill="#FFFFFF" font-size="10" font-weight="600"><tspan x="588.0" y="126.0">Applicability</tspan></text><line x1="620" y1="126" x2="632" y2="126" stroke="#8A867E" stroke-width="2" marker-end="url(#arr-en-full-workflow)"/><rect x="632" y="100" width="64" height="52" rx="8" fill="#C99A4A"/><text x="664.0" y="126.0" text-anchor="middle" fill="#FFFFFF" font-size="10" font-weight="600"><tspan x="664.0" y="126.0">Intervene</tspan><tspan x="664.0" y="140.0">Evaluate</tspan></text></svg></details><details class="supporting-visual"><summary>Tribunal infographic</summary><svg viewBox="0 0 720 260" xmlns="http://www.w3.org/2000/svg" role="img" aria-label="Evidence Tribunal infographic"><title>Evidence Tribunal infographic</title><desc>Evidence IDs for claims that can and cannot be claimed, plus the recommended action badge; full claim text is in the tribunal cards below.</desc><defs><marker id="arr-en-full-tribunal" markerWidth="8" markerHeight="8" refX="6" refY="3" orient="auto"><path d="M0,0 L6,3 L0,6 Z" fill="#8A867E"/></marker></defs><rect width="720" height="260" fill="#FCFAF6" rx="12"/><text x="24" y="34" font-size="16" font-weight="700" fill="#3A3833">Evidence Tribunal</text><text x="24" y="180" font-size="13" font-weight="700" fill="#3A3833">Source of conflict</text><text x="24" y="202" font-size="11" fill="#8A867E">See tribunal cards below</text><rect x="24" y="216" width="180" height="28" rx="14" fill="#C99A4A"/><text x="114" y="235" text-anchor="middle" font-size="13" font-weight="700" fill="#fff">Pilot</text><text x="250" y="80" font-size="13" font-weight="700" fill="#5E8A6A">Can claim (7)</text><circle cx="254" cy="100" r="3" fill="#5E8A6A"/><text x="266" y="105" font-size="11" fill="#3A3833">E-001</text><circle cx="254" cy="122" r="3" fill="#5E8A6A"/><text x="266" y="127" font-size="11" fill="#3A3833">E-006</text><circle cx="254" cy="144" r="3" fill="#5E8A6A"/><text x="266" y="149" font-size="11" fill="#3A3833">E-004</text><circle cx="254" cy="166" r="3" fill="#5E8A6A"/><text x="266" y="171" font-size="11" fill="#3A3833">E-005</text><text x="490" y="80" font-size="13" font-weight="700" fill="#A85B53">Cannot claim (2)</text><circle cx="494" cy="100" r="3" fill="#A85B53"/><text x="506" y="105" font-size="11" fill="#3A3833">E-004</text><circle cx="494" cy="122" r="3" fill="#A85B53"/><text x="506" y="127" font-size="11" fill="#3A3833">E-001</text><circle cx="494" cy="144" r="3" fill="#A85B53"/><text x="506" y="149" font-size="11" fill="#3A3833">E-006</text><circle cx="494" cy="166" r="3" fill="#A85B53"/><text x="506" y="171" font-size="11" fill="#3A3833">E-008</text></svg></details></div><div class="trace-chain" data-visual="trace-chain"><article class="trace-chain-card"><div class="trace-claim-node"><strong>C-001</strong><p class="trace-claim-text">AI coding assistants significantly increase task completion speed and completion rate during training.</p></div><div class="trace-arrow">↓</div><div class="trace-evidence-list"><div class="trace-evidence-node"><code>E-001</code><span>Completion time</span><span class="dir pos">Positive effect</span><span class="trace-relation">claim relation: Support</span><span>Q 9.0</span><span class="trace-arrow">→</span><a href="https://dl.acm.org/doi/10.1145/3544548.3580919"><code>S-2023-kazemitabaar</code></a></div></div></article><article class="trace-chain-card"><div class="trace-claim-node"><strong>C-002</strong><p class="trace-claim-text">Access to AI code generation did not decrease performance on manual code-modification tasks.</p></div><div class="trace-arrow">↓</div><div class="trace-evidence-list"><div class="trace-evidence-node"><code>E-002</code><span>Independent problem solving</span><span class="dir neu">Null effect</span><span class="trace-relation">claim relation: Neutral</span><span>Q 7.0</span><span class="trace-arrow">→</span><a href="https://dl.acm.org/doi/10.1145/3544548.3580919"><code>S-2023-kazemitabaar</code></a></div></div></article><article class="trace-chain-card"><div class="trace-claim-node"><strong>C-003</strong><p class="trace-claim-text">One week after training, retention differences between Codex and baseline groups did not reach statistical significance.</p></div><div class="trace-arrow">↓</div><div class="trace-evidence-list"><div class="trace-evidence-node"><code>E-003</code><span>Retention</span><span class="dir neu">Null effect</span><span class="trace-relation">claim relation: Neutral</span><span>Q 9.0</span><span class="trace-arrow">→</span><a href="https://dl.acm.org/doi/10.1145/3544548.3580919"><code>S-2023-kazemitabaar</code></a></div></div></article><article class="trace-chain-card"><div class="trace-claim-node"><strong>C-004</strong><p class="trace-claim-text">Students with unguarded GPT-4 access performed 17% worse on the independent exam than the control group, despite higher practice performance.</p></div><div class="trace-arrow">↓</div><div class="trace-evidence-list"><div class="trace-evidence-node"><code>E-004</code><span>Independent problem solving</span><span class="dir neg">Negative effect</span><span class="trace-relation">claim relation: Contradict</span><span>Q 8.0</span><span class="trace-arrow">→</span><a href="https://www.pnas.org/doi/10.1073/pnas.2422633122"><code>S-2025-bastani</code></a></div></div></article><article class="trace-chain-card"><div class="trace-claim-node"><strong>C-005</strong><p class="trace-claim-text">Guardrail design of the AI tutor (hints instead of answers, teacher-informed prompts) largely eliminated the negative learning effect.</p></div><div class="trace-arrow">↓</div><div class="trace-evidence-list"><div class="trace-evidence-node"><code>E-005</code><span>Independent problem solving</span><span class="dir neu">Null effect</span><span class="trace-relation">claim relation: Support</span><span>Q 8.0</span><span class="trace-arrow">→</span><a href="https://www.pnas.org/doi/10.1073/pnas.2422633122"><code>S-2025-bastani</code></a></div></div></article><article class="trace-chain-card"><div class="trace-claim-node"><strong>C-006</strong><p class="trace-claim-text">Access to GPT-4 during practice improves task performance (48% for GPT Base, 127% for GPT Tutor) — but this task performance does not transfer to independent exam performance.</p></div><div class="trace-arrow">↓</div><div class="trace-evidence-list"><div class="trace-evidence-node"><code>E-006</code><span>Assignment score</span><span class="dir pos">Positive effect</span><span class="trace-relation">claim relation: Support</span><span>Q 8.0</span><span class="trace-arrow">→</span><a href="https://www.pnas.org/doi/10.1073/pnas.2422633122"><code>S-2025-bastani</code></a></div></div></article><article class="trace-chain-card"><div class="trace-claim-node"><strong>C-007</strong><p class="trace-claim-text">ChatGPT as a formative feedback tool produced a significant positive impact on students&#x27; academic writing skills with positive student perceptions.</p></div><div class="trace-arrow">↓</div><div class="trace-evidence-list"><div class="trace-evidence-node"><code>E-007</code><span>Knowledge gain</span><span class="dir pos">Positive effect</span><span class="trace-relation">claim relation: Support</span><span>Q 6.0</span><span class="trace-arrow">→</span><a href="https://link.springer.com/article/10.1186/s40561-024-00295-9"><code>S-2024-marzuki</code></a></div></div></article><article class="trace-chain-card"><div class="trace-claim-node"><strong>C-008</strong><p class="trace-claim-text">Professional developers with Copilot access completed a standardized coding task about 55% faster than the control group (RCT, n=95).</p></div><div class="trace-arrow">↓</div><div class="trace-evidence-list"><div class="trace-evidence-node"><code>E-008</code><span>Completion time</span><span class="dir pos">Positive effect</span><span class="trace-relation">claim relation: Support</span><span>Q 8.0</span><span class="trace-arrow">→</span><a href="https://doi.org/10.48550/arXiv.2302.06590"><code>S-2023-peng</code></a></div></div></article><article class="trace-chain-card"><div class="trace-claim-node"><strong>C-009</strong><p class="trace-claim-text">Systematic benchmark evaluation reports mixed quality results for Copilot-generated code relative to human code: correctness competitive on parts of the benchmark while security-relevant defects are documented.</p></div><div class="trace-arrow">↓</div><div class="trace-evidence-list"><div class="trace-evidence-node"><code>E-009</code><span>Code quality</span><span class="dir neu">Null effect</span><span class="trace-relation">claim relation: Neutral</span><span>Q 7.0</span><span class="trace-arrow">→</span><a href="https://doi.org/10.1016/j.jss.2023.111734"><code>S-2023-yetistiren</code></a></div></div></article><article class="trace-chain-card"><div class="trace-claim-node"><strong>C-010</strong><p class="trace-claim-text">Codex produced passing-level solutions for roughly half to three-quarters of CS1 exam-style questions depending on the dataset, indicating substantial task-capability headroom available to novices.</p></div><div class="trace-arrow">↓</div><div class="trace-evidence-list"><div class="trace-evidence-node"><code>E-010</code><span>Assignment score</span><span class="dir pos">Positive effect</span><span class="trace-relation">claim relation: Support</span><span>Q 7.0</span><span class="trace-arrow">→</span><a href="https://dl.acm.org/doi/10.1145/3545945.3569830"><code>S-2022-finnie-ansley</code></a></div></div></article><article class="trace-chain-card"><div class="trace-claim-node"><strong>C-011</strong><div class="trace-claim-text"><p>Controlled comparisons find LLM-generated code explanations comparable to (in places better than) student-authored explanations, suggesting viability as explanatory scaffold material rather than as a replacement for student explanation prac…</p><details class="detail-expander"><summary>Expand full explanation</summary><div class="detail-body"><p>Controlled comparisons find LLM-generated code explanations comparable to (in places better than) student-authored explanations, suggesting viability as explanatory scaffold material rather than as a replacement for student explanation practice.</p></div></details></div></div><div class="trace-arrow">↓</div><div class="trace-evidence-list"><div class="trace-evidence-node"><code>E-011</code><span>Metacognition</span><span class="dir pos">Positive effect</span><span class="trace-relation">claim relation: Support</span><span>Q 7.0</span><span class="trace-arrow">→</span><a href="https://dl.acm.org/doi/10.1145/3587102.3588785"><code>S-2023-explanations-compare</code></a></div></div></article><article class="trace-chain-card"><div class="trace-claim-node"><strong>C-012</strong><p class="trace-claim-text">Despite faster first-task completion, participants struggled to understand and debug AI-generated solutions and reported low ownership of the final program - documenting metacognitive and dependence risks that pure speed metrics miss.</p></div><div class="trace-arrow">↓</div><div class="trace-evidence-list"><div class="trace-evidence-node"><code>E-012</code><span>Over-reliance</span><span class="dir neg">Negative effect</span><span class="trace-relation">claim relation: Contradict</span><span>Q 7.0</span><span class="trace-arrow">→</span><a href="https://dl.acm.org/doi/10.1145/3491101.3519665"><code>S-2022-vaithilingam</code></a></div></div></article></div><div id="chart-trace-en" class="chart-mount" aria-label="Claim-Evidence Trace"></div><p class="chart-interpretation"><strong>What this means: </strong>Every important claim must resolve to Evidence IDs and original sources.</p></div></section><section id="full-04-action-en" class="full-chapter" data-full-chapter><header class="full-chapter-header"><h2>04 Applicability &amp; Teaching Action</h2><p class="full-chapter-lead">Connect applicability, guardrails and teaching actions to specific evidence.</p></header><div class="full-chapter-body"><p><strong>Target population: </strong>university first-year computer science students learning C programming for the first time</p>
2510
+ <p><strong>Target context: </strong>16-week lecture-lab course, 60 students, TA support, offline</p>
2511
+ <p><strong>Suitable for: </strong>pilot in first-year C course with guardrailed usage policy</p>
2512
+ <p><strong>Not suitable for: </strong>unrestricted AI adoption without usage policy</p>
2513
+ <p><strong>Conditions: </strong></p><ul><li>guardrailed AI usage policy (hints not answers, modeled on GPT Tutor arm)</li><li>no-AI transfer assessment</li><li>TA support</li></ul><div class="boundary-block"><h3>Claims beyond the evidence boundary</h3><ul><li>Claiming &#x27;AI coding assistants improve learning&#x27; exceeds the boundary: direct learning-effect evidence is missing.</li><li>Claiming &#x27;AI works for everyone&#x27; exceeds the boundary: population and subject mismatch.</li></ul></div><div class="evidence-to-action" data-visual="evidence-to-action"><article class="action-node action-evidence"><span>Evidence</span><p class="action-node-text">AI coding assistants reliably increase task performance during training (completion speed, correctness) — E-001, E-006.</p></article><span class="flow-arrow" aria-hidden="true">→</span><article class="action-node action-applicability"><span>Applicability</span><p class="action-node-text">pilot in first-year C course with guardrailed usage policy</p></article><span class="flow-arrow" aria-hidden="true">→</span><article class="action-node action-decision"><span>Decision</span><p class="action-node-text">Pilot</p></article><span class="flow-arrow" aria-hidden="true">→</span><article class="action-node action-guardrails"><span>Guardrails</span><div class="action-node-text"><p>AI usage is allowed in three explicitly graded modes (explain / collaborate / no-AI-transfer).…</p><details class="detail-expander"><summary>Expand full explanation</summary><div class="detail-body"><p>AI usage is allowed in three explicitly graded modes (explain / collaborate / no-AI-transfer). Copying unexamined AI output is an academic integrity violation and is assessed via the reasoning-trace requirement.</p></div></details></div></article><span class="flow-arrow" aria-hidden="true">→</span><article class="action-node action-stop"><span>Stop conditions</span><div class="action-node-text"><p>transfer-test scores drop significantly below baseline cohort expectations; widespread integrity violations in reasoning traces;…</p><details class="detail-expander"><summary>Expand full explanation</summary><div class="detail-body"><p>transfer-test scores drop significantly below baseline cohort expectations; widespread integrity violations in reasoning traces; AI dependency signals exceed threshold in risk metrics; TA/teacher workload becomes unsustainable</p></div></details></div></article><span class="flow-arrow" aria-hidden="true">→</span><article class="action-node action-evaluation"><span>Evaluation</span><div class="action-node-text"><p>treatment group shows non-inferior independent problem solving (delta within 5%) AND superior or equal retention AND AI dependency index below thresho…</p><details class="detail-expander"><summary>Expand full explanation</summary><div class="detail-body"><p>treatment group shows non-inferior independent problem solving (delta within 5%) AND superior or equal retention AND AI dependency index below threshold; if independent problem solving declines &gt;10%, the pilot is judged unsuccessful regardless of task-performance gains.</p></div></details></div></article></div><p><strong>Target learners: </strong>university first-year C programming students (60-student lecture-lab class) · <strong>Pilot duration: </strong>8_weeks</p>
2514
+ <p><strong>AI usage policy: </strong>AI usage is allowed in three explicitly graded modes (explain / collaborate / no-AI-transfer). Copying unexamined AI output is an academic integrity violation and is assessed via the reasoning-trace requirement.</p>
2515
+ <div class='phase'><h3>Phase 1 — Independent Foundation</h3><p><strong>AI rule: </strong>full code generation forbidden; AI allowed only for conceptual explanations</p>
2516
+ <p><strong>Activities: </strong></p><ul><li>baseline assessment</li><li>first 2 weeks of assignments completed without any AI code generation</li></ul>
2517
+ <p><strong>Outcome check: </strong>baseline task-performance and independent-problem-solving measures</p>
2518
+ </div>
2519
+ <div class='phase'><h3>Phase 2 — Explain, Don&#x27;t Solve</h3><p><strong>AI rule: </strong>AI may explain but must not produce full solutions</p>
2520
+ <p><strong>Activities: </strong></p><ul><li>weeks 3-4: AI allowed to explain errors, concepts and debugging approaches</li></ul>
2521
+ <p><strong>Outcome check: </strong>mid-pilot quiz without AI</p>
2522
+ </div>
2523
+ <div class='phase'><h3>Phase 3 — Structured Collaboration</h3><p><strong>AI rule: </strong>partial code generation allowed; mandatory written explanation of key logic; submission requires reasoning trace</p>
2524
+ <p><strong>Activities: </strong></p><ul><li>weeks 5-7: AI allowed to generate partial code; students must explain every AI-generated block in their own words</li></ul>
2525
+ <p><strong>Outcome check: </strong>weekly lab completion and code-quality rubric</p>
2526
+ </div>
2527
+ <div class='phase'><h3>Phase 4 — Transfer Check</h3><p><strong>AI rule: </strong>no AI access during transfer assessment</p>
2528
+ <p><strong>Activities: </strong></p><ul><li>week 8: new programming task completed in a no-AI environment</li></ul>
2529
+ <p><strong>Outcome check: </strong>transfer test score, independent problem solving</p>
2530
+ </div>
2531
+ <h3>Stop conditions</h3><ul><li>transfer-test scores drop significantly below baseline cohort expectations</li><li>widespread integrity violations in reasoning traces</li><li>AI dependency signals exceed threshold in risk metrics</li><li>TA/teacher workload becomes unsustainable</li></ul>
2532
+ <h3>Intervention timeline infographic</h3>
2533
+ <svg viewBox="0 0 720 260" xmlns="http://www.w3.org/2000/svg" role="img" aria-label="Teaching intervention timeline"><title>Teaching intervention timeline</title><desc>Short phase names and activity counts; full AI usage rules are in the phase blocks.</desc><defs><marker id="arr-en-full-intervention" markerWidth="8" markerHeight="8" refX="6" refY="3" orient="auto"><path d="M0,0 L6,3 L0,6 Z" fill="#8A867E"/></marker></defs><rect width="720" height="260" fill="#FCFAF6" rx="12"/><text x="24" y="34" font-size="16" font-weight="700" fill="#3A3833">Intervention Timeline</text><rect x="24" y="100" width="160" height="96" rx="8" fill="#B8694A"/><text x="104.0" y="143.0" text-anchor="middle" fill="#FFFFFF" font-size="12" font-weight="600"><tspan x="104.0" y="143.0">Phase 1</tspan></text><text x="104.0" y="159.0" text-anchor="middle" fill="#FFFFFF" font-size="11" opacity="0.85">2 activities</text><line x1="184" y1="148" x2="200" y2="148" stroke="#8A867E" stroke-width="2" marker-end="url(#arr-en-full-intervention)"/><rect x="200" y="100" width="160" height="96" rx="8" fill="#B8694A"/><text x="280.0" y="143.0" text-anchor="middle" fill="#FFFFFF" font-size="12" font-weight="600"><tspan x="280.0" y="143.0">Phase 2</tspan></text><text x="280.0" y="159.0" text-anchor="middle" fill="#FFFFFF" font-size="11" opacity="0.85">1 activities</text><line x1="360" y1="148" x2="376" y2="148" stroke="#8A867E" stroke-width="2" marker-end="url(#arr-en-full-intervention)"/><rect x="376" y="100" width="160" height="96" rx="8" fill="#B8694A"/><text x="456.0" y="143.0" text-anchor="middle" fill="#FFFFFF" font-size="12" font-weight="600"><tspan x="456.0" y="143.0">Phase 3</tspan></text><text x="456.0" y="159.0" text-anchor="middle" fill="#FFFFFF" font-size="11" opacity="0.85">1 activities</text><line x1="536" y1="148" x2="552" y2="148" stroke="#8A867E" stroke-width="2" marker-end="url(#arr-en-full-intervention)"/><rect x="552" y="100" width="160" height="96" rx="8" fill="#B8694A"/><text x="632.0" y="143.0" text-anchor="middle" fill="#FFFFFF" font-size="12" font-weight="600"><tspan x="632.0" y="143.0">Phase 4</tspan></text><text x="632.0" y="159.0" text-anchor="middle" fill="#FFFFFF" font-size="11" opacity="0.85">1 activities</text></svg></div></section><section id="full-05-evaluation-en" class="full-chapter" data-full-chapter><header class="full-chapter-header"><h2>05 Pilot, Evaluation &amp; Stop Conditions</h2><p class="full-chapter-lead">Validate the pilot with independent learning outcomes and pre-specified stop conditions.</p></header><div class="full-chapter-body"><p><strong>Research question: </strong>In a first-year C programming course, does a guardrailed AI coding assistant (explain-only → structured collaboration) improve independent problem solving without increasing AI dependency, compared to no-AI instruction?</p>
2534
+ <p><strong>Baseline: </strong>week-1 no-AI programming quiz (independent problem solving, completion time)</p>
2535
+ <p><strong>Post test: </strong>week-8 no-AI programming quiz (independent problem solving, code quality)</p>
2536
+ <p><strong>Retention: </strong>final exam (week 16) — delayed measure 8 weeks after pilot</p>
2537
+ <p><strong>Transfer: </strong>week-8 novel programming task in a strictly no-AI environment</p>
2538
+ <h3>Process metrics</h3><ul><li>weekly lab completion rate</li><li>AI usage logs: prompts submitted, copied blocks, reasoning traces</li><li>help-seeking behavior counts</li></ul>
2539
+ <h3>Learning metrics</h3><ul><li>independent problem solving (no-AI quizzes)</li><li>code quality rubric</li><li>retention on final exam</li><li>transfer task score</li></ul>
2540
+ <h3>Risk metrics</h3><ul><li>AI dependency index (usage without understanding, from reasoning-trace quality)</li><li>academic integrity violations</li><li>self-reported over-reliance</li><li>false confidence (post-quiz confidence vs actual score)</li></ul>
2541
+ <p><strong>Success threshold: </strong>treatment group shows non-inferior independent problem solving (delta within 5%) AND superior or equal retention AND AI dependency index below threshold; if independent problem solving declines &gt;10%, the pilot is judged unsuccessful regardless of task-performance gains.</p>
2542
+ <p><strong>Analysis plan: </strong>pre-registered comparison of treatment vs comparison sections on baseline-adjusted learning metrics (ANCOVA); task-performance metrics reported separately from learning metrics; subgroup analysis by prior programming competency; stop-condition monitoring at weeks 3, 5, 7.</p>
2543
+ <h3>Evaluation design infographic</h3>
2544
+ <svg viewBox="0 0 720 260" xmlns="http://www.w3.org/2000/svg" role="img" aria-label="Evaluation design flow"><title>Evaluation design flow</title><desc>Evaluation flow across baseline, post test, retention and transfer; full metrics and analysis plan are in the evaluation section.</desc><defs><marker id="arr-en-full-evaluation" markerWidth="8" markerHeight="8" refX="6" refY="3" orient="auto"><path d="M0,0 L6,3 L0,6 Z" fill="#8A867E"/></marker></defs><rect width="720" height="260" fill="#FCFAF6" rx="12"/><text x="24" y="34" font-size="16" font-weight="700" fill="#3A3833">Evaluation Design Flow</text><rect x="30" y="110" width="150" height="56" rx="8" fill="#5E8A6A"/><text x="105.0" y="138.0" text-anchor="middle" fill="#FFFFFF" font-size="12" font-weight="600"><tspan x="105.0" y="138.0">Baseline</tspan></text><text x="105.0" y="148" text-anchor="middle" font-size="9" fill="#fff" opacity="0.95">pre-test</text><line x1="180" y1="138" x2="192" y2="138" stroke="#8A867E" stroke-width="2" marker-end="url(#arr-en-full-evaluation)"/><rect x="192" y="110" width="150" height="56" rx="8" fill="#5E8A6A"/><text x="267.0" y="138.0" text-anchor="middle" fill="#FFFFFF" font-size="12" font-weight="600"><tspan x="267.0" y="138.0">Post test</tspan></text><text x="267.0" y="148" text-anchor="middle" font-size="9" fill="#fff" opacity="0.95">post-test</text><line x1="342" y1="138" x2="354" y2="138" stroke="#8A867E" stroke-width="2" marker-end="url(#arr-en-full-evaluation)"/><rect x="354" y="110" width="150" height="56" rx="8" fill="#5E8A6A"/><text x="429.0" y="138.0" text-anchor="middle" fill="#FFFFFF" font-size="12" font-weight="600"><tspan x="429.0" y="138.0">Retention</tspan></text><text x="429.0" y="148" text-anchor="middle" font-size="9" fill="#fff" opacity="0.95">retention test</text><line x1="504" y1="138" x2="516" y2="138" stroke="#8A867E" stroke-width="2" marker-end="url(#arr-en-full-evaluation)"/><rect x="516" y="110" width="150" height="56" rx="8" fill="#5E8A6A"/><text x="591.0" y="138.0" text-anchor="middle" fill="#FFFFFF" font-size="12" font-weight="600"><tspan x="591.0" y="138.0">Transfer</tspan></text><text x="591.0" y="148" text-anchor="middle" font-size="9" fill="#fff" opacity="0.95">transfer test (no AI)</text></svg><div class="visual-suppressed"><strong>Benchmark visual suppressed</strong><p>result.json carries no benchmark.baselines, so this visual is omitted; see the standalone benchmark report.</p></div></div></section><section id="full-06-sources-en" class="full-chapter" data-full-chapter><header class="full-chapter-header"><h2>06 Sources, Traceability &amp; Appendix</h2><p class="full-chapter-lead">Preserve original sources, URLs, evidence IDs and retrieval metadata for auditability.</p></header><div class="full-chapter-body"><h3>Source list</h3><div class='table-wrap'><table class='data-table source-table'><thead><tr><th>ID</th><th>Title</th><th>Year</th><th>Authority</th><th>Verifiable location</th></tr></thead><tbody><tr><td><code>S-2023-kazemitabaar</code></td><td class='cell-main source-title-cell'>Studying the effect of AI Code Generators on Supporting Novice Learners in Introductory Programming <span class="cite-badge cite-ok">DOI ✓</span><details class="source-expander detail-expander"><summary>View source &amp; provenance</summary><dl class="source-detail-grid"><div class="source-detail-row"><dt>Original title</dt><dd>Studying the effect of AI Code Generators on Supporting Novice Learners in Introductory Programming</dd></div><div class="source-detail-row"><dt>Year</dt><dd>2023</dd></div><div class="source-detail-row"><dt>Authority</dt><dd>Tier 1 DOI-verified paper</dd></div><div class="source-detail-row"><dt>Source location</dt><dd>https://dl.acm.org/doi/10.1145/3544548.3580919</dd></div><div class="source-detail-row"><dt>Verifiable link</dt><dd><a href="https://dl.acm.org/doi/10.1145/3544548.3580919">https://dl.acm.org/doi/10.1145/3544548.3580919</a></dd></div></dl></details></td><td>2023</td><td>Tier 1 DOI-verified paper</td><td class='cell-main'><a href='https://dl.acm.org/doi/10.1145/3544548.3580919'>https://dl.acm.org/doi/10.1145/3544548.3580919</a></td></tr><tr><td><code>S-2025-bastani</code></td><td class='cell-main source-title-cell'>Generative AI without guardrails can harm learning: Evidence from high school mathematics <span class="cite-badge cite-ok">DOI ✓</span><details class="source-expander detail-expander"><summary>View source &amp; provenance</summary><dl class="source-detail-grid"><div class="source-detail-row"><dt>Original title</dt><dd>Generative AI without guardrails can harm learning: Evidence from high school mathematics</dd></div><div class="source-detail-row"><dt>Year</dt><dd>2025</dd></div><div class="source-detail-row"><dt>Authority</dt><dd>Tier 1 DOI-verified paper</dd></div><div class="source-detail-row"><dt>Source location</dt><dd>https://www.pnas.org/doi/10.1073/pnas.2422633122</dd></div><div class="source-detail-row"><dt>Verifiable link</dt><dd><a href="https://www.pnas.org/doi/10.1073/pnas.2422633122">https://www.pnas.org/doi/10.1073/pnas.2422633122</a></dd></div></dl></details></td><td>2025</td><td>Tier 1 DOI-verified paper</td><td class='cell-main'><a href='https://www.pnas.org/doi/10.1073/pnas.2422633122'>https://www.pnas.org/doi/10.1073/pnas.2422633122</a></td></tr><tr><td><code>S-2024-marzuki</code></td><td class='cell-main source-title-cell'>Impact of ChatGPT on ESL students&#x27; academic writing skills <span class="cite-badge cite-ok">DOI ✓</span><details class="source-expander detail-expander"><summary>View source &amp; provenance</summary><dl class="source-detail-grid"><div class="source-detail-row"><dt>Original title</dt><dd>Impact of ChatGPT on ESL students&#x27; academic writing skills</dd></div><div class="source-detail-row"><dt>Year</dt><dd>2024</dd></div><div class="source-detail-row"><dt>Authority</dt><dd>Tier 1 DOI-verified paper</dd></div><div class="source-detail-row"><dt>Source location</dt><dd>https://link.springer.com/article/10.1186/s40561-024-00295-9</dd></div><div class="source-detail-row"><dt>Verifiable link</dt><dd><a href="https://link.springer.com/article/10.1186/s40561-024-00295-9">https://link.springer.com/article/10.1186/s40561-024-00295-9</a></dd></div></dl></details></td><td>2024</td><td>Tier 1 DOI-verified paper</td><td class='cell-main'><a href='https://link.springer.com/article/10.1186/s40561-024-00295-9'>https://link.springer.com/article/10.1186/s40561-024-00295-9</a></td></tr><tr><td><code>S-2023-peng</code></td><td class='cell-main source-title-cell'>The Impact of AI on Developer Productivity: Evidence from GitHub Copilot <span class="cite-badge cite-ok">DOI ✓</span><details class="source-expander detail-expander"><summary>View source &amp; provenance</summary><dl class="source-detail-grid"><div class="source-detail-row"><dt>Original title</dt><dd>The Impact of AI on Developer Productivity: Evidence from GitHub Copilot</dd></div><div class="source-detail-row"><dt>Year</dt><dd>2023</dd></div><div class="source-detail-row"><dt>Authority</dt><dd>Tier2 Academic Database</dd></div><div class="source-detail-row"><dt>Source location</dt><dd>https://arxiv.org/abs/2302.06590</dd></div><div class="source-detail-row"><dt>Verifiable link</dt><dd><a href="https://doi.org/10.48550/arXiv.2302.06590">https://doi.org/10.48550/arXiv.2302.06590</a></dd></div></dl></details></td><td>2023</td><td>Tier2 Academic Database</td><td class='cell-main'><a href='https://doi.org/10.48550/arXiv.2302.06590'>https://doi.org/10.48550/arXiv.2302.06590</a></td></tr><tr><td><code>S-2023-yetistiren</code></td><td class='cell-main source-title-cell'>GitHub Copilot AI Pair Programmer: Asset or Liability? <span class="cite-badge cite-ok">DOI ✓</span><details class="source-expander detail-expander"><summary>View source &amp; provenance</summary><dl class="source-detail-grid"><div class="source-detail-row"><dt>Original title</dt><dd>GitHub Copilot AI Pair Programmer: Asset or Liability?</dd></div><div class="source-detail-row"><dt>Year</dt><dd>2023</dd></div><div class="source-detail-row"><dt>Authority</dt><dd>Tier 1 DOI-verified paper</dd></div><div class="source-detail-row"><dt>Source location</dt><dd>https://doi.org/10.1016/j.jss.2023.111734</dd></div><div class="source-detail-row"><dt>Verifiable link</dt><dd><a href="https://doi.org/10.1016/j.jss.2023.111734">https://doi.org/10.1016/j.jss.2023.111734</a></dd></div></dl></details></td><td>2023</td><td>Tier 1 DOI-verified paper</td><td class='cell-main'><a href='https://doi.org/10.1016/j.jss.2023.111734'>https://doi.org/10.1016/j.jss.2023.111734</a></td></tr><tr><td><code>S-2022-finnie-ansley</code></td><td class='cell-main source-title-cell'>Using GitHub Copilot to Solve Introductory Programming Problems <span class="cite-badge cite-ok">DOI ✓</span><details class="source-expander detail-expander"><summary>View source &amp; provenance</summary><dl class="source-detail-grid"><div class="source-detail-row"><dt>Original title</dt><dd>Using GitHub Copilot to Solve Introductory Programming Problems</dd></div><div class="source-detail-row"><dt>Year</dt><dd>2022</dd></div><div class="source-detail-row"><dt>Authority</dt><dd>Tier 1 DOI-verified paper</dd></div><div class="source-detail-row"><dt>Source location</dt><dd>https://dl.acm.org/doi/10.1145/3545945.3569830</dd></div><div class="source-detail-row"><dt>Verifiable link</dt><dd><a href="https://dl.acm.org/doi/10.1145/3545945.3569830">https://dl.acm.org/doi/10.1145/3545945.3569830</a></dd></div></dl></details></td><td>2022</td><td>Tier 1 DOI-verified paper</td><td class='cell-main'><a href='https://dl.acm.org/doi/10.1145/3545945.3569830'>https://dl.acm.org/doi/10.1145/3545945.3569830</a></td></tr><tr><td><code>S-2023-explanations-compare</code></td><td class='cell-main source-title-cell'>Comparing Code Explanations Created by Students and Large Language Models <span class="cite-badge cite-ok">DOI ✓</span><details class="source-expander detail-expander"><summary>View source &amp; provenance</summary><dl class="source-detail-grid"><div class="source-detail-row"><dt>Original title</dt><dd>Comparing Code Explanations Created by Students and Large Language Models</dd></div><div class="source-detail-row"><dt>Year</dt><dd>2023</dd></div><div class="source-detail-row"><dt>Authority</dt><dd>Tier 1 DOI-verified paper</dd></div><div class="source-detail-row"><dt>Source location</dt><dd>https://dl.acm.org/doi/10.1145/3587102.3588785</dd></div><div class="source-detail-row"><dt>Verifiable link</dt><dd><a href="https://dl.acm.org/doi/10.1145/3587102.3588785">https://dl.acm.org/doi/10.1145/3587102.3588785</a></dd></div></dl></details></td><td>2023</td><td>Tier 1 DOI-verified paper</td><td class='cell-main'><a href='https://dl.acm.org/doi/10.1145/3587102.3588785'>https://dl.acm.org/doi/10.1145/3587102.3588785</a></td></tr><tr><td><code>S-2022-vaithilingam</code></td><td class='cell-main source-title-cell'>Expectation vs. Experience: Evaluating the Usability of Code Generation Tools <span class="cite-badge cite-ok">DOI ✓</span><details class="source-expander detail-expander"><summary>View source &amp; provenance</summary><dl class="source-detail-grid"><div class="source-detail-row"><dt>Original title</dt><dd>Expectation vs. Experience: Evaluating the Usability of Code Generation Tools</dd></div><div class="source-detail-row"><dt>Year</dt><dd>2022</dd></div><div class="source-detail-row"><dt>Authority</dt><dd>Tier 1 DOI-verified paper</dd></div><div class="source-detail-row"><dt>Source location</dt><dd>https://dl.acm.org/doi/10.1145/3491101.3519665</dd></div><div class="source-detail-row"><dt>Verifiable link</dt><dd><a href="https://dl.acm.org/doi/10.1145/3491101.3519665">https://dl.acm.org/doi/10.1145/3491101.3519665</a></dd></div></dl></details></td><td>2022</td><td>Tier 1 DOI-verified paper</td><td class='cell-main'><a href='https://dl.acm.org/doi/10.1145/3491101.3519665'>https://dl.acm.org/doi/10.1145/3491101.3519665</a></td></tr></tbody></table></div><h3>Fetch provenance</h3><p class="provenance-summary">Search provider: n/a</p><p class='provenance-empty'>No per-source fetch records (sources provided directly by the research pipeline).</p></div></section></main></div>
2545
+ </div>
2546
+ <footer class="report-footer"><p>EduEvidence Evidence Report · Schema PASS · Claim Binding PASS · Numeric Consistency PASS · Bilingual Structure PASS · Human Language PASS · False Precision PASS · Lieflat Data Bound PASS · Axis Distortion NOT_CHECKED · Colorblind Safe NOT_CHECKED · single-file offline · source: result.json</p></footer>
2547
+ </div>
2548
+ <script>
2549
+ /* EduEvidence Motion Template — one-shot progressive enhancement.
2550
+ The [data-lieflat] gallery block implements the Lieflat mono-tokens
2551
+ obsReveal contract: reveal once when scrolled into view (threshold .3),
2552
+ click to replay (per-id timers cleared first so animations never stack),
2553
+ prefers-reduced-motion downgrade, and static-visible without JS. */
2554
+ (function () {
2555
+ 'use strict';
2556
+ var root = document.documentElement;
2557
+ var reduceMotion = !!(window.matchMedia && window.matchMedia('(prefers-reduced-motion: reduce)').matches);
2558
+ window.__EDUEVIDENCE_REDUCE_MOTION__ = reduceMotion;
2559
+ if (reduceMotion) return;
2560
+
2561
+ root.classList.add('motion-ready');
2562
+ root.classList.add('js-lf');
2563
+ var groups = [
2564
+ ['.decision-hero', 0], ['.hero-insight', 70], ['.brief-block', 55],
2565
+ ['.outcome-group', 70], ['.tribunal-card', 75], ['.method-audit-item', 45],
2566
+ ['.trace-chain-card', 70], ['.action-node', 60], ['.flow-arrow', 60],
2567
+ ['.phase', 60], ['.full-chapter', 35], ['.brief-source', 40]
2568
+ ];
2569
+ groups.forEach(function (entry) {
2570
+ document.querySelectorAll(entry[0]).forEach(function (el, index) {
2571
+ el.setAttribute('data-animate', '');
2572
+ el.style.setProperty('--motion-delay', Math.min(index * entry[1], 320) + 'ms');
2573
+ });
2574
+ });
2575
+ document.querySelectorAll('.quality-meter,.balance-track').forEach(function (el, index) {
2576
+ el.style.setProperty('--motion-delay', Math.min((index % 8) * 35, 210) + 'ms');
2577
+ });
2578
+
2579
+ var animated = document.querySelectorAll('[data-animate],.quality-meter,.balance-track,.flow-arrow');
2580
+ if (!('IntersectionObserver' in window)) {
2581
+ animated.forEach(function (el) { el.classList.add('is-visible'); });
2582
+ } else {
2583
+ var observer = new IntersectionObserver(function (entries, obs) {
2584
+ entries.forEach(function (entry) {
2585
+ if (!entry.isIntersecting) return;
2586
+ entry.target.classList.add('is-visible');
2587
+ obs.unobserve(entry.target);
2588
+ });
2589
+ }, {threshold:.12, rootMargin:'0px 0px -6% 0px'});
2590
+ animated.forEach(function (el) { observer.observe(el); });
2591
+ }
2592
+
2593
+ // ---- data-lieflat gallery: reveal on scroll, click to replay ----
2594
+ // Per-container timers (mirrors mono-tokens `keep`): every scheduled
2595
+ // replay step is registered under the container id and cleared before the
2596
+ // next replay so staggered animations never stack on rapid clicking.
2597
+ var lfTimers = {};
2598
+ var lfBoxes = Array.prototype.slice.call(document.querySelectorAll('[data-lieflat]'));
2599
+ lfBoxes.forEach(function (box, index) {
2600
+ var base = (box.dataset.chartId || 'figure');
2601
+ var safe = 'lf-' + index + '-' + (window.CSS && CSS.escape ? CSS.escape(base) : base.replace(/[^a-zA-Z0-9_-]/g, '-'));
2602
+ box.dataset.lfId = safe;
2603
+ if (!box.hasAttribute('aria-label')) {
2604
+ box.setAttribute('aria-label', 'Lieflat chart — click to replay the reveal animation');
2605
+ }
2606
+ });
2607
+
2608
+ function clearLfTimers(id) {
2609
+ (lfTimers[id] || []).forEach(function (t) { if (t) clearTimeout(t); });
2610
+ lfTimers[id] = [];
2611
+ }
2612
+
2613
+ // Entrance choreography: cards revealed shortly after load (already in the
2614
+ // viewport) get a short visual stagger so the draw-in is actually seen —
2615
+ // without this, the load-time reveal finishes before the user looks and the
2616
+ // charts appear static until clicked. Scrolled-in and click reveals play
2617
+ // immediately.
2618
+ var bootTime = Date.now();
2619
+ function revealDelay(box, index) {
2620
+ var fresh = Date.now() - bootTime < 1500;
2621
+ if (!fresh) return 40;
2622
+ return 140 + ((index % 6) * 130);
2623
+ }
2624
+
2625
+ function replayLieflat(box, delay) {
2626
+ var id = box.dataset.lfId;
2627
+ delay = (delay === undefined ? 40 : delay);
2628
+ clearLfTimers(id);
2629
+ box.classList.remove('is-live');
2630
+ // force reflow so the re-added class restarts the CSS animations
2631
+ void box.offsetWidth;
2632
+ var tid = setTimeout(function () {
2633
+ box.classList.add('is-live');
2634
+ lfTimers[id] = lfTimers[id].filter(function (t) { return t !== tid; });
2635
+ }, delay);
2636
+ lfTimers[id].push(tid);
2637
+ }
2638
+
2639
+ if (!('IntersectionObserver' in window)) {
2640
+ lfBoxes.forEach(function (box) { box.classList.add('is-live'); });
2641
+ } else {
2642
+ var lfObserver = new IntersectionObserver(function (entries, obs) {
2643
+ entries.forEach(function (entry) {
2644
+ if (!entry.isIntersecting) return;
2645
+ var index = lfBoxes.indexOf(entry.target);
2646
+ replayLieflat(entry.target, revealDelay(entry.target, index));
2647
+ obs.unobserve(entry.target);
2648
+ });
2649
+ }, {threshold:.3});
2650
+ lfBoxes.forEach(function (box) { lfObserver.observe(box); });
2651
+ }
2652
+ lfBoxes.forEach(function (box, index) {
2653
+ box.addEventListener('click', function () { replayLieflat(box, 0); });
2654
+ });
2655
+ })();
2656
+
2657
+ </script>
2658
+ <script>
2659
+
2660
+ (function () {
2661
+ 'use strict';
2662
+ var root = document.documentElement;
2663
+ // ---- Language switcher (zh / en) ----
2664
+ function applyLang(lang) {
2665
+ document.querySelectorAll('.report-shell[data-lang-body]').forEach(function (shell) {
2666
+ shell.style.display = shell.dataset.langBody === lang ? '' : 'none';
2667
+ });
2668
+ document.documentElement.lang = lang === 'en' ? 'en' : 'zh-CN';
2669
+ document.querySelectorAll('.lang-btn').forEach(function (b) {
2670
+ var active = b.dataset.langTarget === lang;
2671
+ b.classList.toggle('active', active);
2672
+ b.setAttribute('aria-pressed', active ? 'true' : 'false');
2673
+ });
2674
+ var langLabel = document.querySelector('[data-lang-label]');
2675
+ if (langLabel) {
2676
+ langLabel.textContent = lang === 'en' ? langLabel.dataset.en : langLabel.dataset.zh;
2677
+ }
2678
+ Object.keys(window.eduevidenceCharts || {}).forEach(function (id) {
2679
+ var ch = window.eduevidenceCharts[id];
2680
+ if (ch && ch.resize) ch.resize();
2681
+ });
2682
+ try { localStorage.setItem('eduevidence-lang', lang); } catch (e) {}
2683
+ }
2684
+ var savedLang = null;
2685
+ try { savedLang = localStorage.getItem('eduevidence-lang'); } catch (e) {}
2686
+ var queryLang = new URLSearchParams(window.location.search).get('lang');
2687
+ applyLang((queryLang || savedLang) === 'en' ? 'en' : 'zh');
2688
+ document.querySelectorAll('.lang-btn').forEach(function (btn) {
2689
+ btn.addEventListener('click', function () { applyLang(btn.dataset.langTarget); });
2690
+ });
2691
+
2692
+ // ---- Top-level Visual Brief / Full Report pagination ----
2693
+ function applyReportView(view) {
2694
+ view = view === 'full' ? 'full' : 'brief';
2695
+ document.querySelectorAll('.report-page[data-report-page]').forEach(function (page) {
2696
+ page.hidden = page.dataset.reportPage !== view;
2697
+ });
2698
+ document.querySelectorAll('.report-view-btn').forEach(function (btn) {
2699
+ var active = btn.dataset.reportView === view;
2700
+ btn.classList.toggle('active', active);
2701
+ btn.setAttribute('aria-pressed', active ? 'true' : 'false');
2702
+ });
2703
+ root.dataset.reportView = view;
2704
+ try { localStorage.setItem('eduevidence-report-view', view); } catch (e) {}
2705
+ }
2706
+ var savedView = null;
2707
+ try { savedView = localStorage.getItem('eduevidence-report-view'); } catch (e) {}
2708
+ var queryView = new URLSearchParams(window.location.search).get('view');
2709
+ applyReportView((queryView || savedView) === 'full' ? 'full' : 'brief');
2710
+ document.querySelectorAll('.report-view-btn').forEach(function (btn) {
2711
+ btn.addEventListener('click', function () { applyReportView(btn.dataset.reportView); });
2712
+ });
2713
+
2714
+ // ---- Collapsible Full Report TOC ----
2715
+ document.querySelectorAll('.full-report-layout').forEach(function (layout) {
2716
+ var button = layout.querySelector('.toc-collapse');
2717
+ if (!button) return;
2718
+ button.addEventListener('click', function () {
2719
+ var collapsed = layout.classList.toggle('toc-collapsed');
2720
+ button.setAttribute('aria-expanded', collapsed ? 'false' : 'true');
2721
+ button.textContent = collapsed ? button.dataset.labelExpand : button.dataset.labelCollapse;
2722
+ });
2723
+ });
2724
+
2725
+ // ---- TOC active chapter tracking ----
2726
+ if ('IntersectionObserver' in window) {
2727
+ document.querySelectorAll('.report-shell').forEach(function (shell) {
2728
+ var links = Array.from(shell.querySelectorAll('[data-toc-target]'));
2729
+ if (!links.length) return;
2730
+ var sections = links.map(function (link) { return shell.querySelector('#' + CSS.escape(link.dataset.tocTarget)); }).filter(Boolean);
2731
+ var activeObserver = new IntersectionObserver(function (entries) {
2732
+ var visible = entries.filter(function (entry) { return entry.isIntersecting; })
2733
+ .sort(function (a,b) { return a.boundingClientRect.top - b.boundingClientRect.top; });
2734
+ if (!visible.length) return;
2735
+ var id = visible[0].target.id;
2736
+ links.forEach(function (link) { link.classList.toggle('active', link.dataset.tocTarget === id); });
2737
+ }, {rootMargin:'-12% 0px -72% 0px', threshold:[0,0.01]});
2738
+ sections.forEach(function (section) { activeObserver.observe(section); });
2739
+ });
2740
+ }
2741
+
2742
+ // ---- Evidence matrix filter / search ----
2743
+ function bindMatrix(matrix) {
2744
+ var suffix = matrix.id.replace(/^evidence-matrix-/, '');
2745
+ var search = document.getElementById('matrix-search-' + suffix);
2746
+ var dirSel = document.getElementById('matrix-direction-' + suffix);
2747
+ var outSel = document.getElementById('matrix-outcome-' + suffix);
2748
+ var rows = matrix.querySelectorAll('tbody tr');
2749
+ function applyFilter() {
2750
+ var q = (search && search.value || '').toLowerCase();
2751
+ var d = dirSel ? dirSel.value : '';
2752
+ var o = outSel ? outSel.value : '';
2753
+ rows.forEach(function (row) {
2754
+ var haystack = (row.dataset.search || row.textContent || '').toLowerCase();
2755
+ var direction = row.dataset.direction || row.dataset.effect || '';
2756
+ var outcome = row.dataset.outcome || '';
2757
+ var show = (!q || haystack.indexOf(q) >= 0)
2758
+ && (!d || direction === d) && (!o || outcome === o);
2759
+ row.style.display = show ? '' : 'none';
2760
+ });
2761
+ }
2762
+ if (search) search.addEventListener('input', applyFilter);
2763
+ if (dirSel) dirSel.addEventListener('change', applyFilter);
2764
+ if (outSel) outSel.addEventListener('change', applyFilter);
2765
+ }
2766
+ document.querySelectorAll('table[id^=evidence-matrix-]').forEach(bindMatrix);
2767
+
2768
+ // ---- Motion preference is owned by the fixed Motion Template. ----
2769
+ var reduceMotion = !!window.__EDUEVIDENCE_REDUCE_MOTION__ ||
2770
+ !!(window.matchMedia && window.matchMedia('(prefers-reduced-motion: reduce)').matches);
2771
+
2772
+ // ---- ECharts enhancer (only when window.echarts exists) ----
2773
+ // 成功 init 后给容器加 .is-mounted 才显示(6.2:无 ECharts 时不占空白高度)
2774
+ function mountChart(containerId, spec) {
2775
+ var el = document.getElementById(containerId);
2776
+ if (!el || typeof window.echarts === 'undefined') return;
2777
+ var chart = window.echarts.init(el);
2778
+ var option = Object.assign({}, spec.option || {});
2779
+ option.animation = !reduceMotion;
2780
+ if (!reduceMotion) {
2781
+ option.animationDuration = 650;
2782
+ option.animationDurationUpdate = 420;
2783
+ option.animationEasing = 'cubicOut';
2784
+ option.animationEasingUpdate = 'cubicOut';
2785
+ }
2786
+ chart.setOption(option);
2787
+ el.classList.add('is-mounted');
2788
+ window.eduevidenceCharts = window.eduevidenceCharts || {};
2789
+ window.eduevidenceCharts[containerId] = chart;
2790
+ }
2791
+ mountChart('chart-outcome-zh', {"chart_id": "outcome-evidence-overview", "purpose": "interactive_analysis", "engine": "echarts", "chart_type": "diverging_bar", "semantic_basis": "effect_direction", "title": "结果证据概览", "option": {"tooltip": {"trigger": "axis"}, "legend": {"data": ["正向效应", "负向效应", "零效应"]}, "grid": [{"left": 150, "right": 40, "top": 30, "height": "52%"}, {"left": 150, "right": 40, "top": "70%", "height": "18%"}], "xAxis": [{"type": "value", "gridIndex": 0, "minInterval": 1}, {"type": "value", "gridIndex": 1, "min": 0, "max": 2, "minInterval": 1}], "yAxis": [{"type": "category", "data": ["知识获得", "记忆保持", "独立问题解决", "完成时间", "代码质量", "作业成绩", "元认知", "过度依赖"], "inverse": true, "gridIndex": 0}, {"type": "category", "data": ["知识获得", "记忆保持", "独立问题解决", "完成时间", "代码质量", "作业成绩", "元认知", "过度依赖"], "inverse": true, "gridIndex": 1, "show": false}], "series": [{"name": "正向效应", "type": "bar", "data": [1, 0, 0, 2, 0, 2, 1, 0], "itemStyle": {"color": "#5E8A6A"}, "xAxisIndex": 0, "yAxisIndex": 0, "lane": "main"}, {"name": "负向效应", "type": "bar", "data": [0, 0, -1, 0, 0, 0, 0, -1], "itemStyle": {"color": "#A85B53"}, "xAxisIndex": 0, "yAxisIndex": 0, "lane": "main"}, {"name": "零效应", "type": "bar", "data": [0, 1, 2, 0, 1, 0, 0, 0], "itemStyle": {"color": "#C99A4A"}, "xAxisIndex": 1, "yAxisIndex": 1, "barWidth": 6, "lane": "neutral"}]}, "summary_text": "各 Outcome 的正向 / 负向 / 零效应证据条数对比。这里展示的是 effect_direction,不是“这条证据是否支持某个主张”。", "integrity": {"numbers_match_result": "NOT_CHECKED", "no_axis_distortion": "NOT_CHECKED", "no_false_precision": "NOT_CHECKED", "colorblind_safe": "NOT_CHECKED"}});
2792
+ mountChart('chart-trace-zh', {"chart_id": "claim-evidence-trace", "purpose": "interactive_analysis", "engine": "echarts", "chart_type": "graph", "title": "主张-证据追溯", "option": {"tooltip": {"trigger": "item"}, "legend": {"data": ["Decision", "Claim", "Evidence", "Source"]}, "series": [{"type": "graph", "layout": "force", "roam": true, "draggable": true, "categories": [{"name": "Decision"}, {"name": "Claim"}, {"name": "Evidence"}, {"name": "Source"}], "data": [{"id": "decision", "name": "PILOT", "category": 0}, {"id": "claim-0", "name": "在练习环节,无护栏的 GPT Base(类标准 ChatGPT 界面)使高中生的", "category": 1}, {"id": "E-001", "name": "E-001", "category": 2}, {"id": "S-2023-kazemitabaar", "name": "S-2023-kazemitabaar", "category": 3}, {"id": "claim-1", "name": "移除 AI 访问后的无辅助独立考试中,GPT Base 组成绩比从未使用 AI ", "category": 1}, {"id": "E-002", "name": "E-002", "category": 2}, {"id": "claim-2", "name": "带护栏的 GPT Tutor(教师设计提示而非直接答案)在练习成绩 +127% ", "category": 1}, {"id": "E-003", "name": "E-003", "category": 2}, {"id": "claim-3", "name": "训练阶段使用 OpenAI Codex 的 10-17 岁新手在 45 道 Py", "category": 1}, {"id": "E-004", "name": "E-004", "category": 2}, {"id": "S-2025-bastani", "name": "S-2025-bastani", "category": 3}, {"id": "claim-4", "name": "训练期使用 Codex 的学习者一周后评估后测成绩略好于对照组,但差异未达统计显", "category": 1}, {"id": "E-005", "name": "E-005", "category": 2}, {"id": "claim-5", "name": "质性案例研究中,3 名 EFL 学生珍视 ChatGPT 的辅助价值(消除不确定", "category": 1}, {"id": "E-006", "name": "E-006", "category": 2}, {"id": "claim-6", "name": "同一质性研究中,学生担忧 AI 使用的学术真实性与过度依赖风险(建议过于复杂/正", "category": 1}, {"id": "E-007", "name": "E-007", "category": 2}, {"id": "S-2024-marzuki", "name": "S-2024-marzuki", "category": 3}, {"id": "claim-7", "name": "随机对照实验(n=95)显示:使用 Copilot 的职业开发者完成标准化编程任", "category": 1}, {"id": "E-008", "name": "E-008", "category": 2}, {"id": "S-2023-peng", "name": "S-2023-peng", "category": 3}, {"id": "claim-8", "name": "系统性基准评估显示 Copilot 生成代码相对人类代码的质量结论不一:部分正确", "category": 1}, {"id": "E-009", "name": "E-009", "category": 2}, {"id": "S-2023-yetistiren", "name": "S-2023-yetistiren", "category": 3}, {"id": "claim-9", "name": "Codex 在 CS1 考试风格题目上能给出通过水平的解答(依数据集约 50%–", "category": 1}, {"id": "E-010", "name": "E-010", "category": 2}, {"id": "S-2022-finnie-ansley", "name": "S-2022-finnie-ansley", "category": 3}, {"id": "claim-10", "name": "受控比较发现 LLM 生成的代码讲解与学生自撰讲解相当(部分更优),适合作为解释", "category": 1}, {"id": "E-011", "name": "E-011", "category": 2}, {"id": "S-2023-explanations-compare", "name": "S-2023-explanations-compare", "category": 3}, {"id": "claim-11", "name": "尽管首任务完成更快,参与者难以理解并调试 AI 生成的解法、对最终程序所有权感低", "category": 1}, {"id": "E-012", "name": "E-012", "category": 2}, {"id": "S-2022-vaithilingam", "name": "S-2022-vaithilingam", "category": 3}], "links": [{"source": "decision", "target": "claim-0"}, {"source": "claim-0", "target": "E-001", "label": "support", "lineStyle": {"color": "#5E8A6A"}}, {"source": "E-001", "target": "S-2023-kazemitabaar"}, {"source": "decision", "target": "claim-1"}, {"source": "claim-1", "target": "E-002", "label": "neutral", "lineStyle": {"color": "#C99A4A"}}, {"source": "E-002", "target": "S-2023-kazemitabaar"}, {"source": "decision", "target": "claim-2"}, {"source": "claim-2", "target": "E-003", "label": "neutral", "lineStyle": {"color": "#C99A4A"}}, {"source": "E-003", "target": "S-2023-kazemitabaar"}, {"source": "decision", "target": "claim-3"}, {"source": "claim-3", "target": "E-004", "label": "contradict", "lineStyle": {"color": "#A85B53"}}, {"source": "E-004", "target": "S-2025-bastani"}, {"source": "decision", "target": "claim-4"}, {"source": "claim-4", "target": "E-005", "label": "support", "lineStyle": {"color": "#5E8A6A"}}, {"source": "E-005", "target": "S-2025-bastani"}, {"source": "decision", "target": "claim-5"}, {"source": "claim-5", "target": "E-006", "label": "support", "lineStyle": {"color": "#5E8A6A"}}, {"source": "E-006", "target": "S-2025-bastani"}, {"source": "decision", "target": "claim-6"}, {"source": "claim-6", "target": "E-007", "label": "support", "lineStyle": {"color": "#5E8A6A"}}, {"source": "E-007", "target": "S-2024-marzuki"}, {"source": "decision", "target": "claim-7"}, {"source": "claim-7", "target": "E-008", "label": "support", "lineStyle": {"color": "#5E8A6A"}}, {"source": "E-008", "target": "S-2023-peng"}, {"source": "decision", "target": "claim-8"}, {"source": "claim-8", "target": "E-009", "label": "neutral", "lineStyle": {"color": "#C99A4A"}}, {"source": "E-009", "target": "S-2023-yetistiren"}, {"source": "decision", "target": "claim-9"}, {"source": "claim-9", "target": "E-010", "label": "support", "lineStyle": {"color": "#5E8A6A"}}, {"source": "E-010", "target": "S-2022-finnie-ansley"}, {"source": "decision", "target": "claim-10"}, {"source": "claim-10", "target": "E-011", "label": "support", "lineStyle": {"color": "#5E8A6A"}}, {"source": "E-011", "target": "S-2023-explanations-compare"}, {"source": "decision", "target": "claim-11"}, {"source": "claim-11", "target": "E-012", "label": "contradict", "lineStyle": {"color": "#A85B53"}}, {"source": "E-012", "target": "S-2022-vaithilingam"}], "label": {"show": true, "position": "right", "fontSize": 9}, "lineStyle": {"curveness": 0.15}}]}, "summary_text": "决策→结论→证据→来源 的可追溯图谱;点击节点可追踪支持/反驳路径。", "integrity": {"numbers_match_result": "NOT_CHECKED", "no_axis_distortion": "NOT_CHECKED", "no_false_precision": "NOT_CHECKED", "colorblind_safe": "NOT_CHECKED"}});
2793
+ mountChart('chart-benchmark-zh', {"chart_id": "benchmark-panel", "purpose": "interactive_analysis", "engine": "echarts", "chart_type": "composite", "title": "基准测试:B0-B4", "option": {"tooltip": {"trigger": "axis"}, "legend": {"data": ["Citation Support", "Unsupported Rate", "Contradiction"]}, "grid": {"left": 60, "right": 40}, "xAxis": {"type": "category", "data": []}, "yAxis": {"type": "value", "max": 1, "min": 0}, "series": [{"name": "Citation Support", "type": "bar", "data": []}, {"name": "Unsupported Rate", "type": "bar", "data": []}, {"name": "Contradiction", "type": "bar", "data": []}]}, "cost_vs_quality": {"chart_id": "benchmark-quality-cost", "purpose": "interactive_analysis", "engine": "echarts", "chart_type": "scatter", "title": "质量 vs 成本", "option": {"tooltip": {"trigger": "item"}, "xAxis": {"type": "value", "name": "cost (USD)", "min": 0}, "yAxis": {"type": "value", "name": "citation support", "min": 0, "max": 1}, "series": [{"type": "scatter", "data": []}]}}, "summary_text": "B0-B4 基线在引用支持/无支撑率/反方发现上的对比及质量-成本散点。", "integrity": {"numbers_match_result": "NOT_CHECKED", "no_axis_distortion": "NOT_CHECKED", "no_false_precision": "NOT_CHECKED", "colorblind_safe": "NOT_CHECKED"}});
2794
+ mountChart('chart-outcome-en', {"chart_id": "outcome-evidence-overview", "purpose": "interactive_analysis", "engine": "echarts", "chart_type": "diverging_bar", "semantic_basis": "effect_direction", "title": "Outcome Evidence Overview", "option": {"tooltip": {"trigger": "axis"}, "legend": {"data": ["Positive effect", "Negative effect", "Null effect"]}, "grid": [{"left": 150, "right": 40, "top": 30, "height": "52%"}, {"left": 150, "right": 40, "top": "70%", "height": "18%"}], "xAxis": [{"type": "value", "gridIndex": 0, "minInterval": 1}, {"type": "value", "gridIndex": 1, "min": 0, "max": 2, "minInterval": 1}], "yAxis": [{"type": "category", "data": ["Knowledge gain", "Retention", "Independent problem solving", "Completion time", "Code quality", "Assignment score", "Metacognition", "Over-reliance"], "inverse": true, "gridIndex": 0}, {"type": "category", "data": ["Knowledge gain", "Retention", "Independent problem solving", "Completion time", "Code quality", "Assignment score", "Metacognition", "Over-reliance"], "inverse": true, "gridIndex": 1, "show": false}], "series": [{"name": "Positive effect", "type": "bar", "data": [1, 0, 0, 2, 0, 2, 1, 0], "itemStyle": {"color": "#5E8A6A"}, "xAxisIndex": 0, "yAxisIndex": 0, "lane": "main"}, {"name": "Negative effect", "type": "bar", "data": [0, 0, -1, 0, 0, 0, 0, -1], "itemStyle": {"color": "#A85B53"}, "xAxisIndex": 0, "yAxisIndex": 0, "lane": "main"}, {"name": "Null effect", "type": "bar", "data": [0, 1, 2, 0, 1, 0, 0, 0], "itemStyle": {"color": "#C99A4A"}, "xAxisIndex": 1, "yAxisIndex": 1, "barWidth": 6, "lane": "neutral"}]}, "summary_text": "Positive / negative / null effect-direction evidence counts per outcome. This visual encodes effect_direction, not whether evidence supports a claim.", "integrity": {"numbers_match_result": "NOT_CHECKED", "no_axis_distortion": "NOT_CHECKED", "no_false_precision": "NOT_CHECKED", "colorblind_safe": "NOT_CHECKED"}});
2795
+ mountChart('chart-trace-en', {"chart_id": "claim-evidence-trace", "purpose": "interactive_analysis", "engine": "echarts", "chart_type": "graph", "title": "Claim-Evidence Trace", "option": {"tooltip": {"trigger": "item"}, "legend": {"data": ["Decision", "Claim", "Evidence", "Source"]}, "series": [{"type": "graph", "layout": "force", "roam": true, "draggable": true, "categories": [{"name": "Decision"}, {"name": "Claim"}, {"name": "Evidence"}, {"name": "Source"}], "data": [{"id": "decision", "name": "PILOT", "category": 0}, {"id": "claim-0", "name": "AI coding assistants significantly incre", "category": 1}, {"id": "E-001", "name": "E-001", "category": 2}, {"id": "S-2023-kazemitabaar", "name": "S-2023-kazemitabaar", "category": 3}, {"id": "claim-1", "name": "Access to AI code generation did not dec", "category": 1}, {"id": "E-002", "name": "E-002", "category": 2}, {"id": "claim-2", "name": "One week after training, retention diffe", "category": 1}, {"id": "E-003", "name": "E-003", "category": 2}, {"id": "claim-3", "name": "Students with unguarded GPT-4 access per", "category": 1}, {"id": "E-004", "name": "E-004", "category": 2}, {"id": "S-2025-bastani", "name": "S-2025-bastani", "category": 3}, {"id": "claim-4", "name": "Guardrail design of the AI tutor (hints ", "category": 1}, {"id": "E-005", "name": "E-005", "category": 2}, {"id": "claim-5", "name": "Access to GPT-4 during practice improves", "category": 1}, {"id": "E-006", "name": "E-006", "category": 2}, {"id": "claim-6", "name": "ChatGPT as a formative feedback tool pro", "category": 1}, {"id": "E-007", "name": "E-007", "category": 2}, {"id": "S-2024-marzuki", "name": "S-2024-marzuki", "category": 3}, {"id": "claim-7", "name": "Professional developers with Copilot acc", "category": 1}, {"id": "E-008", "name": "E-008", "category": 2}, {"id": "S-2023-peng", "name": "S-2023-peng", "category": 3}, {"id": "claim-8", "name": "Systematic benchmark evaluation reports ", "category": 1}, {"id": "E-009", "name": "E-009", "category": 2}, {"id": "S-2023-yetistiren", "name": "S-2023-yetistiren", "category": 3}, {"id": "claim-9", "name": "Codex produced passing-level solutions f", "category": 1}, {"id": "E-010", "name": "E-010", "category": 2}, {"id": "S-2022-finnie-ansley", "name": "S-2022-finnie-ansley", "category": 3}, {"id": "claim-10", "name": "Controlled comparisons find LLM-generate", "category": 1}, {"id": "E-011", "name": "E-011", "category": 2}, {"id": "S-2023-explanations-compare", "name": "S-2023-explanations-compare", "category": 3}, {"id": "claim-11", "name": "Despite faster first-task completion, pa", "category": 1}, {"id": "E-012", "name": "E-012", "category": 2}, {"id": "S-2022-vaithilingam", "name": "S-2022-vaithilingam", "category": 3}], "links": [{"source": "decision", "target": "claim-0"}, {"source": "claim-0", "target": "E-001", "label": "support", "lineStyle": {"color": "#5E8A6A"}}, {"source": "E-001", "target": "S-2023-kazemitabaar"}, {"source": "decision", "target": "claim-1"}, {"source": "claim-1", "target": "E-002", "label": "neutral", "lineStyle": {"color": "#C99A4A"}}, {"source": "E-002", "target": "S-2023-kazemitabaar"}, {"source": "decision", "target": "claim-2"}, {"source": "claim-2", "target": "E-003", "label": "neutral", "lineStyle": {"color": "#C99A4A"}}, {"source": "E-003", "target": "S-2023-kazemitabaar"}, {"source": "decision", "target": "claim-3"}, {"source": "claim-3", "target": "E-004", "label": "contradict", "lineStyle": {"color": "#A85B53"}}, {"source": "E-004", "target": "S-2025-bastani"}, {"source": "decision", "target": "claim-4"}, {"source": "claim-4", "target": "E-005", "label": "support", "lineStyle": {"color": "#5E8A6A"}}, {"source": "E-005", "target": "S-2025-bastani"}, {"source": "decision", "target": "claim-5"}, {"source": "claim-5", "target": "E-006", "label": "support", "lineStyle": {"color": "#5E8A6A"}}, {"source": "E-006", "target": "S-2025-bastani"}, {"source": "decision", "target": "claim-6"}, {"source": "claim-6", "target": "E-007", "label": "support", "lineStyle": {"color": "#5E8A6A"}}, {"source": "E-007", "target": "S-2024-marzuki"}, {"source": "decision", "target": "claim-7"}, {"source": "claim-7", "target": "E-008", "label": "support", "lineStyle": {"color": "#5E8A6A"}}, {"source": "E-008", "target": "S-2023-peng"}, {"source": "decision", "target": "claim-8"}, {"source": "claim-8", "target": "E-009", "label": "neutral", "lineStyle": {"color": "#C99A4A"}}, {"source": "E-009", "target": "S-2023-yetistiren"}, {"source": "decision", "target": "claim-9"}, {"source": "claim-9", "target": "E-010", "label": "support", "lineStyle": {"color": "#5E8A6A"}}, {"source": "E-010", "target": "S-2022-finnie-ansley"}, {"source": "decision", "target": "claim-10"}, {"source": "claim-10", "target": "E-011", "label": "support", "lineStyle": {"color": "#5E8A6A"}}, {"source": "E-011", "target": "S-2023-explanations-compare"}, {"source": "decision", "target": "claim-11"}, {"source": "claim-11", "target": "E-012", "label": "contradict", "lineStyle": {"color": "#A85B53"}}, {"source": "E-012", "target": "S-2022-vaithilingam"}], "label": {"show": true, "position": "right", "fontSize": 9}, "lineStyle": {"curveness": 0.15}}]}, "summary_text": "Traceable graph Decision → Claim → Evidence → Source; click nodes to follow support/contradict paths.", "integrity": {"numbers_match_result": "NOT_CHECKED", "no_axis_distortion": "NOT_CHECKED", "no_false_precision": "NOT_CHECKED", "colorblind_safe": "NOT_CHECKED"}});
2796
+ mountChart('chart-benchmark-en', {"chart_id": "benchmark-panel", "purpose": "interactive_analysis", "engine": "echarts", "chart_type": "composite", "title": "Benchmark: B0-B4", "option": {"tooltip": {"trigger": "axis"}, "legend": {"data": ["Citation Support", "Unsupported Rate", "Contradiction"]}, "grid": {"left": 60, "right": 40}, "xAxis": {"type": "category", "data": []}, "yAxis": {"type": "value", "max": 1, "min": 0}, "series": [{"name": "Citation Support", "type": "bar", "data": []}, {"name": "Unsupported Rate", "type": "bar", "data": []}, {"name": "Contradiction", "type": "bar", "data": []}]}, "cost_vs_quality": {"chart_id": "benchmark-quality-cost", "purpose": "interactive_analysis", "engine": "echarts", "chart_type": "scatter", "title": "Quality vs Cost", "option": {"tooltip": {"trigger": "item"}, "xAxis": {"type": "value", "name": "cost (USD)", "min": 0}, "yAxis": {"type": "value", "name": "citation support", "min": 0, "max": 1}, "series": [{"type": "scatter", "data": []}]}}, "summary_text": "B0-B4 baselines compared on citation support, unsupported rate and contradiction discovery, plus the quality-cost scatter.", "integrity": {"numbers_match_result": "NOT_CHECKED", "no_axis_distortion": "NOT_CHECKED", "no_false_precision": "NOT_CHECKED", "colorblind_safe": "NOT_CHECKED"}});
2797
+ })();
2798
+
2799
+ /* Offline reader: navigation and display only; no research state mutations. */
2800
+ (function () {
2801
+ "use strict";
2802
+ var root = document.documentElement;
2803
+ var copy = {
2804
+ zh: {
2805
+ brief: "\u6458\u8981",
2806
+ full: "\u5b8c\u6574\u62a5\u544a",
2807
+ print: "\u6253\u5370",
2808
+ matched: "\u6761\u8bc1\u636e",
2809
+ },
2810
+ en: {
2811
+ brief: "Brief",
2812
+ full: "Full report",
2813
+ print: "Print",
2814
+ matched: "findings",
2815
+ },
2816
+ };
2817
+ function labels() {
2818
+ var lang = root.lang.indexOf("en") === 0 ? "en" : "zh";
2819
+ document.querySelectorAll("[data-copy]").forEach(function (el) {
2820
+ el.textContent = copy[lang][el.dataset.copy];
2821
+ });
2822
+ }
2823
+ labels();
2824
+ new MutationObserver(labels).observe(root, {
2825
+ attributes: true,
2826
+ attributeFilter: ["lang"],
2827
+ });
2828
+ document.querySelectorAll(".reader-print").forEach(function (b) {
2829
+ b.addEventListener("click", function () {
2830
+ window.print();
2831
+ });
2832
+ });
2833
+ document.querySelectorAll(".reader-home").forEach(function (a) {
2834
+ a.addEventListener("click", function (e) {
2835
+ e.preventDefault();
2836
+ window.scrollTo({ top: 0, behavior: "instant" });
2837
+ });
2838
+ });
2839
+ var scheduled = false;
2840
+ function progress() {
2841
+ scheduled = false;
2842
+ var max = document.documentElement.scrollHeight - window.innerHeight;
2843
+ var fraction = max > 0 ? Math.min(1, Math.max(0, window.scrollY / max)) : 0;
2844
+ var bar = document.querySelector(".reader-progress>span");
2845
+ if (bar) bar.style.transform = "scaleX(" + fraction + ")";
2846
+ var shell = Array.from(document.querySelectorAll(".report-shell")).find(
2847
+ function (s) {
2848
+ return getComputedStyle(s).display !== "none";
2849
+ },
2850
+ );
2851
+ if (!shell) return;
2852
+ var blocks = Array.from(shell.querySelectorAll(".brief-block[id]"));
2853
+ var current = blocks
2854
+ .filter(function (b) {
2855
+ return b.getBoundingClientRect().top < 150;
2856
+ })
2857
+ .pop();
2858
+ shell.querySelectorAll(".brief-navigation a").forEach(function (a) {
2859
+ var active = current && a.hash === "#" + current.id;
2860
+ a.classList.toggle("active", !!active);
2861
+ if (active) a.setAttribute("aria-current", "location");
2862
+ else a.removeAttribute("aria-current");
2863
+ });
2864
+ }
2865
+ function queue() {
2866
+ if (!scheduled) {
2867
+ scheduled = true;
2868
+ requestAnimationFrame(progress);
2869
+ }
2870
+ }
2871
+ window.addEventListener("scroll", queue, { passive: true });
2872
+ window.addEventListener("resize", queue);
2873
+ document.addEventListener("click", queue);
2874
+ progress();
2875
+ document.querySelectorAll(".report-view-btn").forEach(function (btn) {
2876
+ btn.addEventListener("click", function () {
2877
+ window.scrollTo({ top: 0, behavior: "instant" });
2878
+ });
2879
+ });
2880
+ document
2881
+ .querySelectorAll(".table-wrap,.evidence-to-action")
2882
+ .forEach(function (el) {
2883
+ el.tabIndex = 0;
2884
+ el.setAttribute("role", "region");
2885
+ el.setAttribute(
2886
+ "aria-label",
2887
+ root.lang.indexOf("en") === 0
2888
+ ? "Scrollable data table"
2889
+ : "\u53ef\u6eda\u52a8\u6570\u636e\u8868",
2890
+ );
2891
+ });
2892
+ document
2893
+ .querySelectorAll('table[id^="evidence-matrix-"]')
2894
+ .forEach(function (table) {
2895
+ var suffix = table.id.replace(/^evidence-matrix-/, "");
2896
+ var counter = document.createElement("p");
2897
+ counter.className = "reader-filter-count";
2898
+ counter.setAttribute("role", "status");
2899
+ counter.setAttribute("aria-live", "polite");
2900
+ table.parentElement.insertAdjacentElement("beforebegin", counter);
2901
+ function count() {
2902
+ var rows = Array.from(table.querySelectorAll("tbody tr"));
2903
+ var visible = rows.filter(function (r) {
2904
+ return r.style.display !== "none";
2905
+ }).length;
2906
+ counter.textContent =
2907
+ visible +
2908
+ " / " +
2909
+ rows.length +
2910
+ " " +
2911
+ copy[suffix.endsWith("en") ? "en" : "zh"].matched;
2912
+ }
2913
+ ["matrix-search-", "matrix-direction-", "matrix-outcome-"].forEach(
2914
+ function (prefix) {
2915
+ var input = document.getElementById(prefix + suffix);
2916
+ if (input) {
2917
+ input.addEventListener("input", count);
2918
+ input.addEventListener("change", count);
2919
+ }
2920
+ },
2921
+ );
2922
+ count();
2923
+ });
2924
+ document
2925
+ .querySelectorAll('a[href^="http:"] , a[href^="https:"]')
2926
+ .forEach(function (a) {
2927
+ a.target = "_blank";
2928
+ a.rel = "noopener noreferrer";
2929
+ });
2930
+ })();
2931
+
2932
+ </script>
2933
+ </body>
2934
+ </html>