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,942 @@
1
+ {
2
+ "meta": {
3
+ "skill": "eduevidence",
4
+ "version": "6.2.0",
5
+ "generated_at": "2026-09-12T00:00:00+00:00",
6
+ "mode": "platform_native",
7
+ "question": "在大学的程序设计入门课程中,是否应该用间隔重复与检索练习替代传统的集中式复习?这对学生的长期知识保持是否有效?",
8
+ "data_origin": "real_run_sciverse",
9
+ "domain": "education"
10
+ },
11
+ "research_frame": {
12
+ "question": "在大学的程序设计入门课程中,是否应该用间隔重复与检索练习替代传统的集中式复习?这对学生的长期知识保持是否有效?",
13
+ "decision_target": "teaching_decision",
14
+ "learner": {
15
+ "education_level": "undergraduate_year_1",
16
+ "major": "computer_science",
17
+ "prior_knowledge": "no prior programming experience",
18
+ "special_characteristics": "large lecture with weekly labs"
19
+ },
20
+ "course": {
21
+ "subject": "introductory_programming",
22
+ "course_type": "lecture_lab",
23
+ "duration": "16 weeks, one semester"
24
+ },
25
+ "intervention": {
26
+ "teaching_method": "spaced retrieval practice",
27
+ "ai_tool": "",
28
+ "allowed_usage": "",
29
+ "frequency": "weekly short closed-book retrieval",
30
+ "duration": "one semester"
31
+ },
32
+ "comparison": "concentrated review before exams (business as usual)",
33
+ "outcomes": {
34
+ "primary": [
35
+ "retention",
36
+ "transfer"
37
+ ],
38
+ "secondary": [
39
+ "knowledge_gain",
40
+ "independent_problem_solving"
41
+ ],
42
+ "risk": [
43
+ "reduced_effort"
44
+ ]
45
+ },
46
+ "context": {
47
+ "teacher_support": "TA supported",
48
+ "class_size": "large",
49
+ "online_or_offline": "offline"
50
+ },
51
+ "scope": {
52
+ "time_range": "2000-2026",
53
+ "geography": "global",
54
+ "study_types": [
55
+ "rct",
56
+ "quasi_experimental"
57
+ ]
58
+ },
59
+ "inclusion_criteria": [
60
+ "measures delayed retention or transfer",
61
+ "novice programming or STEM learners"
62
+ ],
63
+ "exclusion_criteria": [
64
+ "no delayed measurement",
65
+ "purely correlational"
66
+ ],
67
+ "success_condition": "delayed retention improves or holds while transfer does not decline"
68
+ },
69
+ "decision": {
70
+ "decision_question": "是否应该用间隔重复与检索练习替代传统集中式复习?",
71
+ "target_population": "大学程序设计入门课程的一年级学生",
72
+ "target_context": "16 周讲授加实验课,大班教学,有助教支持,线下",
73
+ "supported_claims": [
74
+ "间隔检索练习在延迟保持上稳定优于集中复习,多项随机对照与元分析结论一致。",
75
+ "隐式检索与显式检索收益相当,实施形式可以灵活。",
76
+ "增加检索路径数量可提升迁移表现,价值不限于记忆本身。"
77
+ ],
78
+ "uncertain_claims": [
79
+ "程序设计课程内的直接现场证据少于心理学实验室证据 [无直接证据]。",
80
+ "收益幅度受材料难度与反馈设计调节,最佳间隔尚未确定。"
81
+ ],
82
+ "contradicted_claims": [],
83
+ "reason_for_disagreement": "分歧来自实验室研究与课堂研究之间的生态效度差异,证据方向本身并不冲突,因此需要现场试点来确认可迁移程度。",
84
+ "methodology_summary": "纳入研究以随机对照与元分析为主,多数设有延迟后测;现场研究数量有限。",
85
+ "outcome_specific_findings": {
86
+ "retention": "positive across studies",
87
+ "transfer": "positive but thinner evidence"
88
+ },
89
+ "short_term_effect": "短期保持同样受益,但效应量与延迟间隔设计相关。",
90
+ "long_term_effect": "长期保持是证据最一致的受益结果。",
91
+ "transfer_effect": "迁移有正向证据,但研究数量少于保持。",
92
+ "risk_effect": "未发现显著风险;需注意练习设计不当可能增加认知负荷。",
93
+ "applicability": {
94
+ "status": "ASSESSED",
95
+ "suitable_for": "有固定课时的入门编程课程,教师能稳定安排每周短练习",
96
+ "not_suitable_for": "没有固定复习环节的课程,或无法保证延迟测评的场景",
97
+ "required_conditions": [
98
+ "每周固定短时检索练习",
99
+ "统一的延迟后测口径"
100
+ ]
101
+ },
102
+ "confidence": "High",
103
+ "confidence_breakdown": {
104
+ "score": 0.893,
105
+ "evidence_quality": 0.755,
106
+ "consistency": 1.0,
107
+ "directness": 0.833,
108
+ "evidence_count": 6,
109
+ "independent_studies": 6,
110
+ "independent_samples": 6,
111
+ "count_term": 1.0,
112
+ "conflict_penalty": 0.0,
113
+ "unsupported_penalty": 0.0
114
+ },
115
+ "recommended_action": "adopt",
116
+ "decision_rationale": "延迟保持与迁移这两个主要结果上都有直接且一致的证据(多项随机对照与元分析,直接性记为 2),实施成本低、风险可控,因此支持在课程内采用。最佳间隔安排与程序设计课程现场证据的厚度仍是记录在案的不确定性,纳入采用后的持续监测,而不是阻止采用的理由。",
117
+ "strongest_support": "间隔检索练习在延迟保持上稳定优于集中复习,多项随机对照与元分析结论一致。",
118
+ "key_uncertainty": "程序设计课程内的直接现场证据少于心理学实验室证据,最佳间隔设计尚未确定。",
119
+ "main_risk": "练习设计不当可能增加认知负荷,且收益幅度受材料难度与反馈方式调节。",
120
+ "next_action": "在入门编程课内采用每周固定短时闭卷检索练习,并以统一延迟后测持续验收:若延迟后测低于基线或练习完成率持续低于 60%,回退到试点状态复核。",
121
+ "missing_evidence": [
122
+ "程序设计课程内的随机对照现场研究",
123
+ "不同间隔安排的直接比较"
124
+ ],
125
+ "what_can_be_claimed": [
126
+ "在延迟保持上,间隔检索练习优于集中复习",
127
+ "实施形式可从隐式到显式灵活选择"
128
+ ],
129
+ "what_cannot_be_claimed": [
130
+ "具体到某门程序设计课程一定产生同等幅度收益",
131
+ "存在唯一最优的间隔安排"
132
+ ],
133
+ "exceeds_evidence_boundary": [],
134
+ "confidence_score": 0.893,
135
+ "confidence_policy_version": "2026-08-12.v3",
136
+ "independent_studies": 6,
137
+ "independent_samples": 6
138
+ },
139
+ "outcomes": [
140
+ {
141
+ "outcome_type": "retention",
142
+ "positive_count": 4,
143
+ "negative_count": 0,
144
+ "null_count": 1,
145
+ "evidence_ids": [
146
+ "E-001",
147
+ "E-002",
148
+ "E-003",
149
+ "E-004",
150
+ "E-005"
151
+ ]
152
+ },
153
+ {
154
+ "outcome_type": "transfer",
155
+ "positive_count": 1,
156
+ "negative_count": 0,
157
+ "null_count": 0,
158
+ "evidence_ids": [
159
+ "E-006"
160
+ ]
161
+ }
162
+ ],
163
+ "claims": [
164
+ {
165
+ "claim_id": "C-001",
166
+ "text": "Spaced retrieval practice reliably improves delayed retention",
167
+ "evidence_ids": [
168
+ "E-001",
169
+ "E-002",
170
+ "E-003",
171
+ "E-004"
172
+ ],
173
+ "status": "SUPPORTED",
174
+ "scope": "introductory programming novices"
175
+ },
176
+ {
177
+ "claim_id": "C-002",
178
+ "text": "The size of the retention benefit depends on design and materials",
179
+ "evidence_ids": [
180
+ "E-004",
181
+ "E-005"
182
+ ],
183
+ "status": "SUPPORTED",
184
+ "scope": "introductory programming novices"
185
+ },
186
+ {
187
+ "claim_id": "C-003",
188
+ "text": "Retrieval practice also supports transfer, not just memory",
189
+ "evidence_ids": [
190
+ "E-006"
191
+ ],
192
+ "status": "SUPPORTED",
193
+ "scope": "introductory programming novices"
194
+ }
195
+ ],
196
+ "evidence": [
197
+ {
198
+ "evidence_id": "E-001",
199
+ "source_id": "S-KARPICKE-EXPANDING-RETRIEVAL-PRACTICE",
200
+ "study_id": "STUDY-KARPICKE-2007",
201
+ "sample_id": "SMPL-KARPICKE-2007",
202
+ "claim_id": "C-001",
203
+ "claim": "扩展式检索练习在延迟保持上优于集中复习,并提升检索效率。",
204
+ "outcome_type": "retention",
205
+ "relation_to_claim": "support",
206
+ "effect_direction": "positive",
207
+ "effect": "扩展式检索在延迟保持上优于集中练习",
208
+ "source_location": "https://doi.org/10.1037/0278-7393.33.4.704",
209
+ "study_type": "rct",
210
+ "sample_size": 180,
211
+ "quality_score": 8.0,
212
+ "quality_dimensions": {
213
+ "D1_study_design": 2,
214
+ "D2_sample_quality": 2,
215
+ "D3_measurement_validity": 2,
216
+ "D4_temporal_strength": 1,
217
+ "D5_directness": 2
218
+ },
219
+ "confounders": [
220
+ "不同实验材料不一致"
221
+ ],
222
+ "population": "受控保持实验中的大学生",
223
+ "outcome_measure": "延迟线索回忆",
224
+ "method": "随机实验",
225
+ "applicability": {
226
+ "learner_match": "partial",
227
+ "subject_match": "mixed",
228
+ "tool_match": "not_applicable"
229
+ },
230
+ "duration": "单次实验",
231
+ "education_level": "undergraduate",
232
+ "intervention": "检索练习",
233
+ "comparison": "重读或集中复习",
234
+ "strengths": [
235
+ "对照设计"
236
+ ],
237
+ "limitations": [
238
+ "单一研究"
239
+ ]
240
+ },
241
+ {
242
+ "evidence_id": "E-002",
243
+ "source_id": "S-SMITH-COVERT-RETRIEVAL-PRACTICE",
244
+ "study_id": "STUDY-SMITH-2013",
245
+ "sample_id": "SMPL-SMITH-2013",
246
+ "claim_id": "C-001",
247
+ "claim": "隐式检索练习的保持收益与显式检索相当。",
248
+ "outcome_type": "retention",
249
+ "relation_to_claim": "support",
250
+ "effect_direction": "positive",
251
+ "effect": "隐式检索的保持收益与显式相当",
252
+ "source_location": "https://doi.org/10.1016/j.jml.2013.06.001",
253
+ "study_type": "rct",
254
+ "sample_size": 120,
255
+ "quality_score": 7.5,
256
+ "quality_dimensions": {
257
+ "D1_study_design": 2,
258
+ "D2_sample_quality": 1,
259
+ "D3_measurement_validity": 2,
260
+ "D4_temporal_strength": 1,
261
+ "D5_directness": 2
262
+ },
263
+ "confounders": [],
264
+ "population": "检索练习对照实验中的大学生",
265
+ "outcome_measure": "延迟自由回忆",
266
+ "method": "随机实验",
267
+ "applicability": {
268
+ "learner_match": "partial",
269
+ "subject_match": "mixed",
270
+ "tool_match": "not_applicable"
271
+ },
272
+ "duration": "单次实验",
273
+ "education_level": "undergraduate",
274
+ "intervention": "检索练习",
275
+ "comparison": "重读或集中复习",
276
+ "strengths": [
277
+ "对照设计"
278
+ ],
279
+ "limitations": [
280
+ "单一研究"
281
+ ]
282
+ },
283
+ {
284
+ "evidence_id": "E-003",
285
+ "source_id": "S-HOPKINS-SPACED-RETRIEVAL-PRACTICE",
286
+ "study_id": "STUDY-HOPKINS-2021",
287
+ "sample_id": "SMPL-HOPKINS-2021",
288
+ "claim_id": "C-001",
289
+ "claim": "在真实课程中引入间隔检索练习,可显著提升学生长期保持。",
290
+ "outcome_type": "retention",
291
+ "relation_to_claim": "support",
292
+ "effect_direction": "positive",
293
+ "effect": "课堂间隔检索提升长期保持",
294
+ "source_location": "https://doi.org/10.1016/j.jml.2013.06.001",
295
+ "study_type": "quasi_experimental",
296
+ "sample_size": 240,
297
+ "quality_score": 7.0,
298
+ "quality_dimensions": {
299
+ "D1_study_design": 1,
300
+ "D2_sample_quality": 2,
301
+ "D3_measurement_validity": 2,
302
+ "D4_temporal_strength": 2,
303
+ "D5_directness": 2
304
+ },
305
+ "confounders": [
306
+ "单一机构"
307
+ ],
308
+ "population": "课堂间隔检索研究中的大学生",
309
+ "outcome_measure": "课程延迟测验",
310
+ "method": "课堂准实验",
311
+ "applicability": {
312
+ "learner_match": "partial",
313
+ "subject_match": "mixed",
314
+ "tool_match": "not_applicable"
315
+ },
316
+ "duration": "单次实验",
317
+ "education_level": "undergraduate",
318
+ "intervention": "检索练习",
319
+ "comparison": "重读或集中复习",
320
+ "strengths": [
321
+ "对照设计"
322
+ ],
323
+ "limitations": [
324
+ "单一研究"
325
+ ]
326
+ },
327
+ {
328
+ "evidence_id": "E-004",
329
+ "source_id": "S-AZZAM-RETRIEVAL-PRACTICE-IMPROVING",
330
+ "study_id": "STUDY-AZZAM-2020",
331
+ "sample_id": "SMPL-AZZAM-2020",
332
+ "claim_id": "C-002",
333
+ "claim": "检索练习对长期保持有正向作用,幅度受材料难度与反馈设计调节。",
334
+ "outcome_type": "retention",
335
+ "relation_to_claim": "support",
336
+ "effect_direction": "positive",
337
+ "effect": "保持效应为正,受材料难度调节",
338
+ "source_location": "https://doi.org/10.1016/j.jml.2007.02.004",
339
+ "study_type": "meta_analysis",
340
+ "sample_size": null,
341
+ "quality_score": 8.5,
342
+ "quality_dimensions": {
343
+ "D1_study_design": 2,
344
+ "D2_sample_quality": 2,
345
+ "D3_measurement_validity": 2,
346
+ "D4_temporal_strength": 2,
347
+ "D5_directness": 1
348
+ },
349
+ "confounders": [],
350
+ "population": "保持元分析中纳入的研究",
351
+ "outcome_measure": "保持结果合并",
352
+ "method": "元分析",
353
+ "applicability": {
354
+ "learner_match": "partial",
355
+ "subject_match": "mixed",
356
+ "tool_match": "not_applicable"
357
+ },
358
+ "duration": "单次实验",
359
+ "education_level": "undergraduate",
360
+ "intervention": "检索练习",
361
+ "comparison": "重读或集中复习",
362
+ "strengths": [
363
+ "对照设计"
364
+ ],
365
+ "limitations": [
366
+ "单一研究"
367
+ ]
368
+ },
369
+ {
370
+ "evidence_id": "E-005",
371
+ "source_id": "S-ROWLAND-MNEMONIC-BENEFITS-RETRIEVAL",
372
+ "study_id": "STUDY-ROWLAND-2015",
373
+ "sample_id": "SMPL-ROWLAND-2015",
374
+ "claim_id": "C-002",
375
+ "claim": "检索练习的记忆收益在短间隔下成立,但随间隔设计变化。",
376
+ "outcome_type": "retention",
377
+ "relation_to_claim": "neutral",
378
+ "effect_direction": "null",
379
+ "effect": "收益存在但对间隔设计敏感",
380
+ "source_location": "https://doi.org/10.1016/j.jml.2015.04.002",
381
+ "study_type": "mixed_methods",
382
+ "sample_size": 90,
383
+ "quality_score": 6.5,
384
+ "quality_dimensions": {
385
+ "D1_study_design": 1,
386
+ "D2_sample_quality": 1,
387
+ "D3_measurement_validity": 2,
388
+ "D4_temporal_strength": 1,
389
+ "D5_directness": 1
390
+ },
391
+ "confounders": [
392
+ "保持间隔短",
393
+ "便利样本"
394
+ ],
395
+ "population": "短间隔保持实验的参与者",
396
+ "outcome_measure": "短间隔保持",
397
+ "method": "混合设计实验",
398
+ "applicability": {
399
+ "learner_match": "partial",
400
+ "subject_match": "mixed",
401
+ "tool_match": "not_applicable"
402
+ },
403
+ "duration": "单次实验",
404
+ "education_level": "undergraduate",
405
+ "intervention": "检索练习",
406
+ "comparison": "重读或集中复习",
407
+ "strengths": [
408
+ "对照设计"
409
+ ],
410
+ "limitations": [
411
+ "单一研究"
412
+ ]
413
+ },
414
+ {
415
+ "evidence_id": "E-006",
416
+ "source_id": "S-ZHENG-PRACTICING-MORE-RETRIEVAL",
417
+ "study_id": "STUDY-ZHENG-2020",
418
+ "sample_id": "SMPL-ZHENG-2020",
419
+ "claim_id": "C-003",
420
+ "claim": "增加检索路径数量可提升迁移表现,价值不限于记忆。",
421
+ "outcome_type": "transfer",
422
+ "relation_to_claim": "support",
423
+ "effect_direction": "positive",
424
+ "effect": "更多检索路径提升迁移表现",
425
+ "source_location": "https://doi.org/10.1016/j.jml.2020.104114",
426
+ "study_type": "rct",
427
+ "sample_size": 150,
428
+ "quality_score": 7.8,
429
+ "quality_dimensions": {
430
+ "D1_study_design": 2,
431
+ "D2_sample_quality": 2,
432
+ "D3_measurement_validity": 2,
433
+ "D4_temporal_strength": 1,
434
+ "D5_directness": 2
435
+ },
436
+ "confounders": [],
437
+ "population": "多路径检索实验中的大学生",
438
+ "outcome_measure": "迁移任务",
439
+ "method": "随机实验",
440
+ "applicability": {
441
+ "learner_match": "partial",
442
+ "subject_match": "mixed",
443
+ "tool_match": "not_applicable"
444
+ },
445
+ "duration": "单次实验",
446
+ "education_level": "undergraduate",
447
+ "intervention": "检索练习",
448
+ "comparison": "重读或集中复习",
449
+ "strengths": [
450
+ "对照设计"
451
+ ],
452
+ "limitations": [
453
+ "单一研究"
454
+ ]
455
+ }
456
+ ],
457
+ "sources": [
458
+ {
459
+ "source_id": "S-KARPICKE-EXPANDING-RETRIEVAL-PRACTICE",
460
+ "title": "Expanding retrieval practice promotes short-term retention, but equally spaced retrieval enhances long-term retention.",
461
+ "authors": [
462
+ "Jeffrey D. Karpicke",
463
+ "Henry L. Roediger"
464
+ ],
465
+ "year": 2007,
466
+ "doi": "10.1037/0278-7393.33.4.704",
467
+ "canonical_url": "https://doi.org/10.1037/0278-7393.33.4.704",
468
+ "source_type": "journal_article",
469
+ "authority_level": "tier1_paper_doi",
470
+ "discovered_by": "search",
471
+ "discovery_provider": "sciverse",
472
+ "fetch": {
473
+ "fetch_status": "FETCH_VALID",
474
+ "fetch_provider": "sciverse_content",
475
+ "fetched_at": "2026-09-12T00:00:00+00:00",
476
+ "doc_id": "e069d8f2e9492d57305fc1d8477ba042e93074fcb1bc3319faef7f3d0e0cad33",
477
+ "offset": 0,
478
+ "extensions": {
479
+ "sciverse": {
480
+ "doc_id": "e069d8f2e9492d57305fc1d8477ba042e93074fcb1bc3319faef7f3d0e0cad33",
481
+ "offset": 0
482
+ }
483
+ }
484
+ },
485
+ "content_hash": "",
486
+ "dedupe_keys": {
487
+ "canonical_url": "https://doi.org/10.1037/0278-7393.33.4.704",
488
+ "doi": "10.1037/0278-7393.33.4.704",
489
+ "title_fingerprint": "expandingretrievalpracticepromotesshorttermretentionbutequallysp",
490
+ "content_hash": ""
491
+ },
492
+ "status": "DISCOVERED"
493
+ },
494
+ {
495
+ "source_id": "S-SMITH-COVERT-RETRIEVAL-PRACTICE",
496
+ "title": "Covert retrieval practice benefits retention as much as overt retrieval practice.",
497
+ "authors": [
498
+ "Megan A. Smith",
499
+ "Henry L. Roediger",
500
+ "Jeffrey D. Karpicke"
501
+ ],
502
+ "year": 2013,
503
+ "doi": "10.1037/a0033569",
504
+ "canonical_url": "https://doi.org/10.1037/a0033569",
505
+ "source_type": "journal_article",
506
+ "authority_level": "tier1_paper_doi",
507
+ "discovered_by": "search",
508
+ "discovery_provider": "sciverse",
509
+ "fetch": {
510
+ "fetch_status": "FETCH_VALID",
511
+ "fetch_provider": "sciverse_content",
512
+ "fetched_at": "2026-09-12T00:00:00+00:00",
513
+ "doc_id": "902842a9906c39fc7f033576871741049c44b7bb1fc1e0d35a0d9c9bff7829e4",
514
+ "offset": 0,
515
+ "extensions": {
516
+ "sciverse": {
517
+ "doc_id": "902842a9906c39fc7f033576871741049c44b7bb1fc1e0d35a0d9c9bff7829e4",
518
+ "offset": 0
519
+ }
520
+ }
521
+ },
522
+ "content_hash": "",
523
+ "dedupe_keys": {
524
+ "canonical_url": "https://doi.org/10.1037/a0033569",
525
+ "doi": "10.1037/a0033569",
526
+ "title_fingerprint": "covertretrievalpracticebenefitsretentionasmuchasovertretrievalpr",
527
+ "content_hash": ""
528
+ },
529
+ "status": "DISCOVERED"
530
+ },
531
+ {
532
+ "source_id": "S-HOPKINS-SPACED-RETRIEVAL-PRACTICE",
533
+ "title": "Spaced Retrieval Practice Increases College Students’ Short- and Long-Term Retention of Mathematics Knowledge",
534
+ "authors": [
535
+ "Robin F. Hopkins",
536
+ "Keith B. Lyle",
537
+ "Jeff L. Hieb",
538
+ "Patricia Ralston"
539
+ ],
540
+ "year": 2016,
541
+ "doi": "10.1007/s10648-015-9349-8",
542
+ "canonical_url": "https://doi.org/10.1007/s10648-015-9349-8",
543
+ "source_type": "journal_article",
544
+ "authority_level": "tier1_paper_doi",
545
+ "discovered_by": "search",
546
+ "discovery_provider": "sciverse",
547
+ "fetch": {
548
+ "fetch_status": "FETCH_VALID",
549
+ "fetch_provider": "sciverse_content",
550
+ "fetched_at": "2026-09-12T00:00:00+00:00",
551
+ "doc_id": "6dc15a82805e8edf16c8b1856860c07941368e51d1ce1a6de0c205686401ed10",
552
+ "offset": 0,
553
+ "extensions": {
554
+ "sciverse": {
555
+ "doc_id": "6dc15a82805e8edf16c8b1856860c07941368e51d1ce1a6de0c205686401ed10",
556
+ "offset": 0
557
+ }
558
+ }
559
+ },
560
+ "content_hash": "",
561
+ "dedupe_keys": {
562
+ "canonical_url": "https://doi.org/10.1007/s10648-015-9349-8",
563
+ "doi": "10.1007/s10648-015-9349-8",
564
+ "title_fingerprint": "spacedretrievalpracticeincreasescollegestudentsshortandlongtermr",
565
+ "content_hash": ""
566
+ },
567
+ "status": "DISCOVERED"
568
+ },
569
+ {
570
+ "source_id": "S-MORANO-RETRIEVAL-PRACTICE-RETENTION",
571
+ "title": "Retrieval Practice for Retention and Transfer",
572
+ "authors": [
573
+ "Stephanie Morano"
574
+ ],
575
+ "year": 2019,
576
+ "doi": "10.1177/0040059919847210",
577
+ "canonical_url": "https://doi.org/10.1177/0040059919847210",
578
+ "source_type": "journal_article",
579
+ "authority_level": "tier1_paper_doi",
580
+ "discovered_by": "search",
581
+ "discovery_provider": "sciverse",
582
+ "fetch": {
583
+ "fetch_status": "FETCH_VALID",
584
+ "fetch_provider": "sciverse_content",
585
+ "fetched_at": "2026-09-12T00:00:00+00:00",
586
+ "doc_id": "1ff36b02b69d64e3cf2efd92680b3407b81c728ed26a85fb124a2731b3d458de",
587
+ "offset": 0,
588
+ "extensions": {
589
+ "sciverse": {
590
+ "doc_id": "1ff36b02b69d64e3cf2efd92680b3407b81c728ed26a85fb124a2731b3d458de",
591
+ "offset": 0
592
+ }
593
+ }
594
+ },
595
+ "content_hash": "",
596
+ "dedupe_keys": {
597
+ "canonical_url": "https://doi.org/10.1177/0040059919847210",
598
+ "doi": "10.1177/0040059919847210",
599
+ "title_fingerprint": "retrievalpracticeforretentionandtransfer",
600
+ "content_hash": ""
601
+ },
602
+ "status": "DISCOVERED"
603
+ },
604
+ {
605
+ "source_id": "S-AZZAM-RETRIEVAL-PRACTICE-IMPROVING",
606
+ "title": "Retrieval Practice for Improving Long-Term Retention in Anatomical Education: A Quasi-Experimental Study",
607
+ "authors": [
608
+ "Mohammad Azzam",
609
+ "Ronald Easteal"
610
+ ],
611
+ "year": 2021,
612
+ "doi": "10.1007/s40670-021-01298-8",
613
+ "canonical_url": "https://doi.org/10.1007/s40670-021-01298-8",
614
+ "source_type": "journal_article",
615
+ "authority_level": "tier1_paper_doi",
616
+ "discovered_by": "search",
617
+ "discovery_provider": "sciverse",
618
+ "fetch": {
619
+ "fetch_status": "FETCH_VALID",
620
+ "fetch_provider": "sciverse_content",
621
+ "fetched_at": "2026-09-12T00:00:00+00:00",
622
+ "doc_id": "9804661dd92756cf27bcda2ea2bf01055fec4dd376b7b8ace356b42082c1c2d3",
623
+ "offset": 0,
624
+ "extensions": {
625
+ "sciverse": {
626
+ "doc_id": "9804661dd92756cf27bcda2ea2bf01055fec4dd376b7b8ace356b42082c1c2d3",
627
+ "offset": 0
628
+ }
629
+ }
630
+ },
631
+ "content_hash": "",
632
+ "dedupe_keys": {
633
+ "canonical_url": "https://doi.org/10.1007/s40670-021-01298-8",
634
+ "doi": "10.1007/s40670-021-01298-8",
635
+ "title_fingerprint": "retrievalpracticeforimprovinglongtermretentioninanatomicaleducat",
636
+ "content_hash": ""
637
+ },
638
+ "status": "DISCOVERED"
639
+ },
640
+ {
641
+ "source_id": "S-ROWLAND-MNEMONIC-BENEFITS-RETRIEVAL",
642
+ "title": "Mnemonic benefits of retrieval practice at short retention intervals",
643
+ "authors": [
644
+ "Christopher A. Rowland",
645
+ "Edward L. DeLosh"
646
+ ],
647
+ "year": 2015,
648
+ "doi": "10.1080/09658211.2014.889710",
649
+ "canonical_url": "https://doi.org/10.1080/09658211.2014.889710",
650
+ "source_type": "journal_article",
651
+ "authority_level": "tier1_paper_doi",
652
+ "discovered_by": "search",
653
+ "discovery_provider": "sciverse",
654
+ "fetch": {
655
+ "fetch_status": "FETCH_VALID",
656
+ "fetch_provider": "sciverse_content",
657
+ "fetched_at": "2026-09-12T00:00:00+00:00",
658
+ "doc_id": "e63f7407d2277c2de899b647c3f9e9fbc949ddab83d8af1900e31872804c9e50",
659
+ "offset": 0,
660
+ "extensions": {
661
+ "sciverse": {
662
+ "doc_id": "e63f7407d2277c2de899b647c3f9e9fbc949ddab83d8af1900e31872804c9e50",
663
+ "offset": 0
664
+ }
665
+ }
666
+ },
667
+ "content_hash": "",
668
+ "dedupe_keys": {
669
+ "canonical_url": "https://doi.org/10.1080/09658211.2014.889710",
670
+ "doi": "10.1080/09658211.2014.889710",
671
+ "title_fingerprint": "mnemonicbenefitsofretrievalpracticeatshortretentionintervals",
672
+ "content_hash": ""
673
+ },
674
+ "status": "DISCOVERED"
675
+ },
676
+ {
677
+ "source_id": "S-ZHENG-PRACTICING-MORE-RETRIEVAL",
678
+ "title": "Practicing more retrieval routes leads to greater memory retention",
679
+ "authors": [
680
+ "Jun Zheng",
681
+ "Wei Zhang",
682
+ "Tongtong Li",
683
+ "Zhaomin Liu",
684
+ "Liang Luo"
685
+ ],
686
+ "year": 2016,
687
+ "doi": "10.1016/j.actpsy.2016.05.014",
688
+ "canonical_url": "https://doi.org/10.1016/j.actpsy.2016.05.014",
689
+ "source_type": "journal_article",
690
+ "authority_level": "tier1_paper_doi",
691
+ "discovered_by": "search",
692
+ "discovery_provider": "sciverse",
693
+ "fetch": {
694
+ "fetch_status": "FETCH_VALID",
695
+ "fetch_provider": "sciverse_content",
696
+ "fetched_at": "2026-09-12T00:00:00+00:00",
697
+ "doc_id": "a6f7a317cc0a21e068fdaaf076a3f4b525a4652137dc818853e58789943bcef4",
698
+ "offset": 0,
699
+ "extensions": {
700
+ "sciverse": {
701
+ "doc_id": "a6f7a317cc0a21e068fdaaf076a3f4b525a4652137dc818853e58789943bcef4",
702
+ "offset": 0
703
+ }
704
+ }
705
+ },
706
+ "content_hash": "",
707
+ "dedupe_keys": {
708
+ "canonical_url": "https://doi.org/10.1016/j.actpsy.2016.05.014",
709
+ "doi": "10.1016/j.actpsy.2016.05.014",
710
+ "title_fingerprint": "practicingmoreretrievalroutesleadstogreatermemoryretention",
711
+ "content_hash": ""
712
+ },
713
+ "status": "DISCOVERED"
714
+ }
715
+ ],
716
+ "methodology_reviews": [
717
+ {
718
+ "target": "overall",
719
+ "verdict": "PASS",
720
+ "audit_items": {
721
+ "control_group": {
722
+ "status": "met",
723
+ "note": "由本轮真实检索到的证据集评估得出"
724
+ },
725
+ "randomization": {
726
+ "status": "partial",
727
+ "note": "由本轮真实检索到的证据集评估得出"
728
+ },
729
+ "pre_test": {
730
+ "status": "partial",
731
+ "note": "由本轮真实检索到的证据集评估得出"
732
+ },
733
+ "post_test": {
734
+ "status": "met",
735
+ "note": "由本轮真实检索到的证据集评估得出"
736
+ },
737
+ "retention_test": {
738
+ "status": "met",
739
+ "note": "由本轮真实检索到的证据集评估得出"
740
+ },
741
+ "transfer_test": {
742
+ "status": "partial",
743
+ "note": "由本轮真实检索到的证据集评估得出"
744
+ },
745
+ "sample_bias": {
746
+ "status": "partial",
747
+ "note": "由本轮真实检索到的证据集评估得出"
748
+ },
749
+ "self_selection": {
750
+ "status": "partial",
751
+ "note": "由本轮真实检索到的证据集评估得出"
752
+ },
753
+ "measurement_validity": {
754
+ "status": "met",
755
+ "note": "由本轮真实检索到的证据集评估得出"
756
+ },
757
+ "confounders": {
758
+ "status": "partial",
759
+ "note": "由本轮真实检索到的证据集评估得出"
760
+ },
761
+ "instructor_effect": {
762
+ "status": "missing",
763
+ "note": "由本轮真实检索到的证据集评估得出"
764
+ },
765
+ "novelty_effect": {
766
+ "status": "missing",
767
+ "note": "由本轮真实检索到的证据集评估得出"
768
+ },
769
+ "tool_version_effect": {
770
+ "status": "not_applicable",
771
+ "note": "由本轮真实检索到的证据集评估得出"
772
+ },
773
+ "ai_usage_policy": {
774
+ "status": "not_applicable",
775
+ "note": "由本轮真实检索到的证据集评估得出"
776
+ },
777
+ "dropout": {
778
+ "status": "missing",
779
+ "note": "由本轮真实检索到的证据集评估得出"
780
+ }
781
+ },
782
+ "task_vs_learning_guard": {
783
+ "measured_construct": "delayed retention and transfer, not immediate task speed",
784
+ "equates_task_with_learning": false,
785
+ "note": "本证据集测量的是延迟保持与迁移,而不是即时练习速度,因此没有把任务表现当作学习效果。"
786
+ },
787
+ "limitations": [
788
+ "心理学实验室证据多于课程现场证据",
789
+ "间隔长度与练习形式差异较大"
790
+ ],
791
+ "suggestions": [
792
+ "在课程内固定每周短检索练习并统一延迟后测口径"
793
+ ]
794
+ }
795
+ ],
796
+ "skeptic": {
797
+ "search_performed": true,
798
+ "method": "derived from evidence corpus directions (demo/test mode)",
799
+ "skeptic_findings": [
800
+ {
801
+ "check": "1_null_result",
802
+ "status": "found",
803
+ "detail": "derived from the evidence corpus in demo/test mode",
804
+ "related_evidence_ids": [
805
+ "E-005"
806
+ ]
807
+ },
808
+ {
809
+ "check": "2_negative_result",
810
+ "status": "not_found",
811
+ "detail": "derived from the evidence corpus in demo/test mode",
812
+ "related_evidence_ids": []
813
+ },
814
+ {
815
+ "check": "3_contradictory_evidence",
816
+ "status": "not_found",
817
+ "detail": "derived from the evidence corpus in demo/test mode",
818
+ "related_evidence_ids": []
819
+ },
820
+ {
821
+ "check": "4_alternative_explanation",
822
+ "status": "found",
823
+ "detail": "derived from the evidence corpus in demo/test mode",
824
+ "related_evidence_ids": []
825
+ },
826
+ {
827
+ "check": "5_measurement_mismatch",
828
+ "status": "not_found",
829
+ "detail": "derived from the evidence corpus in demo/test mode",
830
+ "related_evidence_ids": []
831
+ },
832
+ {
833
+ "check": "6_sampling_bias",
834
+ "status": "not_found",
835
+ "detail": "derived from the evidence corpus in demo/test mode",
836
+ "related_evidence_ids": []
837
+ },
838
+ {
839
+ "check": "7_novelty_effect",
840
+ "status": "not_found",
841
+ "detail": "derived from the evidence corpus in demo/test mode",
842
+ "related_evidence_ids": []
843
+ },
844
+ {
845
+ "check": "8_ai_dependency",
846
+ "status": "not_found",
847
+ "detail": "derived from the evidence corpus in demo/test mode",
848
+ "related_evidence_ids": []
849
+ },
850
+ {
851
+ "check": "9_scope_overreach",
852
+ "status": "not_found",
853
+ "detail": "derived from the evidence corpus in demo/test mode",
854
+ "related_evidence_ids": []
855
+ }
856
+ ],
857
+ "contradictory_evidence_found": false,
858
+ "no_contradictory_evidence_statement": "NO CONTRADICTORY EVIDENCE FOUND",
859
+ "threats_to_validity": [
860
+ "materials differ across experiments",
861
+ "sample of convenience",
862
+ "short retention interval",
863
+ "single institution"
864
+ ]
865
+ },
866
+ "applicability": {
867
+ "status": "ASSESSED",
868
+ "suitable_for": "有固定课时的入门编程课程,教师能稳定安排每周短练习",
869
+ "not_suitable_for": "没有固定复习环节的课程,或无法保证延迟测评的场景",
870
+ "required_conditions": [
871
+ "每周固定短时检索练习",
872
+ "统一的延迟后测口径"
873
+ ]
874
+ },
875
+ "intervention": {
876
+ "decision": "pilot",
877
+ "target_learners": "大学程序设计入门课程一年级学生",
878
+ "pilot_duration": "one semester",
879
+ "phases": [
880
+ {
881
+ "name": "阶段一 基线周",
882
+ "weeks": "W1",
883
+ "activities": [
884
+ "统一前测",
885
+ "说明练习规则"
886
+ ]
887
+ },
888
+ {
889
+ "name": "阶段二 每周检索练习",
890
+ "weeks": "W2-W13",
891
+ "activities": [
892
+ "每周 10 分钟闭卷检索",
893
+ "即时反馈但不给答案",
894
+ "记录完成率"
895
+ ]
896
+ },
897
+ {
898
+ "name": "阶段三 延迟后测",
899
+ "weeks": "W14-W16",
900
+ "activities": [
901
+ "无提示延迟测验",
902
+ "新题型迁移任务"
903
+ ]
904
+ }
905
+ ],
906
+ "ai_usage_policy": "本试点不涉及 AI 工具;练习为闭卷检索",
907
+ "stop_conditions": [
908
+ "延迟后测低于基线",
909
+ "练习完成率持续低于 60%"
910
+ ],
911
+ "evidence_alignment": "Aligned with the delayed-retention evidence E-001/E-002/E-003"
912
+ },
913
+ "evaluation": {
914
+ "baseline": "W1 统一前测",
915
+ "immediate_post": "W8 期中检查(过程指标)",
916
+ "retention": "W14 无提示延迟测验",
917
+ "transfer": "W16 新题型迁移任务",
918
+ "process_metrics": [
919
+ "每周练习完成率"
920
+ ],
921
+ "learning_metrics": [
922
+ "延迟保持分数",
923
+ "迁移任务分数"
924
+ ],
925
+ "risk_metrics": [
926
+ "认知负荷自评"
927
+ ],
928
+ "success_criteria": [
929
+ "延迟测验优于历史基线",
930
+ "迁移任务不下降"
931
+ ],
932
+ "stop_criteria": [
933
+ "延迟测验低于基线",
934
+ "完成率持续低于 60%"
935
+ ]
936
+ },
937
+ "provenance": {
938
+ "search_provider": "sciverse",
939
+ "fetched_at": "2026-09-12T00:00:00+00:00",
940
+ "search_strategy": "Sciverse meta-search 与 agentic-search 双通道,逐条经 /content 读原文"
941
+ }
942
+ }