eduevidence 5.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 (312) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +506 -0
  3. package/README.zh-CN.md +434 -0
  4. package/SKILL.md +195 -0
  5. package/bin/eduevidence.js +127 -0
  6. package/domains/education/manifest.json +183 -0
  7. package/domains/education/outcome_taxonomy.json +127 -0
  8. package/domains/manifest.json +26 -0
  9. package/domains/policy/frame.schema.json +234 -0
  10. package/domains/policy/manifest.json +10 -0
  11. package/domains/policy/methodology_checklist.json +109 -0
  12. package/domains/policy/outcome_taxonomy.json +53 -0
  13. package/domains/policy/references/causal-identification.md +45 -0
  14. package/domains/policy/references/cost-evidence.md +44 -0
  15. package/domains/policy/references/equity.md +42 -0
  16. package/domains/policy/references/evidence-hierarchy.md +41 -0
  17. package/domains/policy/references/implementation-evidence.md +47 -0
  18. package/eduevidence_cli.py +26 -0
  19. package/engine/__init__.py +11 -0
  20. package/engine/__pycache__/__init__.cpython-312.pyc +0 -0
  21. package/engine/__pycache__/analysis.cpython-312.pyc +0 -0
  22. package/engine/__pycache__/bias.cpython-312.pyc +0 -0
  23. package/engine/__pycache__/briefs.cpython-312.pyc +0 -0
  24. package/engine/__pycache__/capabilities.cpython-312.pyc +0 -0
  25. package/engine/__pycache__/citation_check.cpython-312.pyc +0 -0
  26. package/engine/__pycache__/contracts.cpython-312.pyc +0 -0
  27. package/engine/__pycache__/datasets.cpython-312.pyc +0 -0
  28. package/engine/__pycache__/events.cpython-312.pyc +0 -0
  29. package/engine/__pycache__/evidence_graph.cpython-312.pyc +0 -0
  30. package/engine/__pycache__/evidence_review.cpython-312.pyc +0 -0
  31. package/engine/__pycache__/evidencecore.cpython-312.pyc +0 -0
  32. package/engine/__pycache__/gap_lens.cpython-312.pyc +0 -0
  33. package/engine/__pycache__/gaps.cpython-312.pyc +0 -0
  34. package/engine/__pycache__/graph_store.cpython-312.pyc +0 -0
  35. package/engine/__pycache__/graph_validate.cpython-312.pyc +0 -0
  36. package/engine/__pycache__/ids.cpython-312.pyc +0 -0
  37. package/engine/__pycache__/library.cpython-312.pyc +0 -0
  38. package/engine/__pycache__/library_builtin.cpython-312.pyc +0 -0
  39. package/engine/__pycache__/living.cpython-312.pyc +0 -0
  40. package/engine/__pycache__/log.cpython-312.pyc +0 -0
  41. package/engine/__pycache__/meta_analysis.cpython-312.pyc +0 -0
  42. package/engine/__pycache__/meta_synthesis.cpython-312.pyc +0 -0
  43. package/engine/__pycache__/migration.cpython-312.pyc +0 -0
  44. package/engine/__pycache__/mode_router.cpython-312.pyc +0 -0
  45. package/engine/__pycache__/paths.cpython-312.pyc +0 -0
  46. package/engine/__pycache__/pilot.cpython-312.pyc +0 -0
  47. package/engine/__pycache__/planner.cpython-312.pyc +0 -0
  48. package/engine/__pycache__/project.cpython-312.pyc +0 -0
  49. package/engine/__pycache__/projections.cpython-312.pyc +0 -0
  50. package/engine/__pycache__/robustness.cpython-312.pyc +0 -0
  51. package/engine/__pycache__/run.cpython-312.pyc +0 -0
  52. package/engine/__pycache__/semantics.cpython-312.pyc +0 -0
  53. package/engine/__pycache__/study_design.cpython-312.pyc +0 -0
  54. package/engine/__pycache__/synthesis.cpython-312.pyc +0 -0
  55. package/engine/__pycache__/tribunal.cpython-312.pyc +0 -0
  56. package/engine/__pycache__/update.cpython-312.pyc +0 -0
  57. package/engine/__pycache__/versions.cpython-312.pyc +0 -0
  58. package/engine/analysis.py +308 -0
  59. package/engine/bias.py +178 -0
  60. package/engine/briefs.py +106 -0
  61. package/engine/capabilities.py +99 -0
  62. package/engine/citation_check.py +192 -0
  63. package/engine/contracts.py +117 -0
  64. package/engine/datasets.py +165 -0
  65. package/engine/events.py +67 -0
  66. package/engine/evidence_graph.py +571 -0
  67. package/engine/evidence_review.py +88 -0
  68. package/engine/evidencecore.py +182 -0
  69. package/engine/gap_lens.py +132 -0
  70. package/engine/gaps.py +169 -0
  71. package/engine/graph_store.py +335 -0
  72. package/engine/graph_validate.py +87 -0
  73. package/engine/ids.py +77 -0
  74. package/engine/library.py +268 -0
  75. package/engine/library_builtin.py +301 -0
  76. package/engine/living.py +671 -0
  77. package/engine/log.py +39 -0
  78. package/engine/meta_analysis.py +333 -0
  79. package/engine/meta_synthesis.py +111 -0
  80. package/engine/migration.py +397 -0
  81. package/engine/mode_router.py +72 -0
  82. package/engine/paths.py +15 -0
  83. package/engine/pilot.py +368 -0
  84. package/engine/planner.py +126 -0
  85. package/engine/project.py +118 -0
  86. package/engine/projections.py +240 -0
  87. package/engine/robustness.py +109 -0
  88. package/engine/run.py +85 -0
  89. package/engine/semantics.py +135 -0
  90. package/engine/study_design.py +87 -0
  91. package/engine/synthesis.py +187 -0
  92. package/engine/tribunal.py +408 -0
  93. package/engine/update.py +113 -0
  94. package/engine/versions.py +12 -0
  95. package/install.sh +510 -0
  96. package/integrations/__init__.py +1 -0
  97. package/integrations/__pycache__/__init__.cpython-312.pyc +0 -0
  98. package/integrations/__pycache__/agent_mcp.cpython-312.pyc +0 -0
  99. package/integrations/__pycache__/smart_web_fetch.cpython-312.pyc +0 -0
  100. package/integrations/agent_mcp.py +856 -0
  101. package/integrations/smart_web_fetch.py +59 -0
  102. package/package.json +50 -0
  103. package/pyproject.toml +55 -0
  104. package/references/applicability-policy.md +88 -0
  105. package/references/education-framing.md +132 -0
  106. package/references/effect_size_formulas.md +35 -0
  107. package/references/evaluation-design.md +111 -0
  108. package/references/evidence-quality.md +79 -0
  109. package/references/grade_framework.md +29 -0
  110. package/references/intervention-design.md +98 -0
  111. package/references/methodology-audit.md +103 -0
  112. package/references/outcome-taxonomy.md +106 -0
  113. package/references/retrieval-protocol.md +142 -0
  114. package/references/skeptic-protocol.md +93 -0
  115. package/references/social_science_pitfalls.md +48 -0
  116. package/references/source-validity.md +140 -0
  117. package/references/tribunal-policy.md +112 -0
  118. package/references/wwc_standards.md +29 -0
  119. package/retrieval/__init__.py +1 -0
  120. package/retrieval/__pycache__/__init__.cpython-312.pyc +0 -0
  121. package/retrieval/__pycache__/corpus_store.cpython-312.pyc +0 -0
  122. package/retrieval/__pycache__/dedupe.cpython-312.pyc +0 -0
  123. package/retrieval/__pycache__/failures.cpython-312.pyc +0 -0
  124. package/retrieval/__pycache__/fetch.cpython-312.pyc +0 -0
  125. package/retrieval/__pycache__/search.cpython-312.pyc +0 -0
  126. package/retrieval/__pycache__/source.cpython-312.pyc +0 -0
  127. package/retrieval/__pycache__/validate.cpython-312.pyc +0 -0
  128. package/retrieval/corpus_store.py +181 -0
  129. package/retrieval/dedupe.py +127 -0
  130. package/retrieval/failures.py +90 -0
  131. package/retrieval/fetch.py +435 -0
  132. package/retrieval/search.py +493 -0
  133. package/retrieval/source.py +160 -0
  134. package/retrieval/validate.py +257 -0
  135. package/schemas/agent-mcp-approval.schema.json +57 -0
  136. package/schemas/chart-spec.schema.json +88 -0
  137. package/schemas/cross-model-review.schema.json +28 -0
  138. package/schemas/education-frame.schema.json +106 -0
  139. package/schemas/evaluation.schema.json +35 -0
  140. package/schemas/evidence.schema.json +81 -0
  141. package/schemas/fetch-result.schema.json +119 -0
  142. package/schemas/intervention.schema.json +46 -0
  143. package/schemas/methodology.schema.json +102 -0
  144. package/schemas/report-result.schema.json +381 -0
  145. package/schemas/report-spec.schema.json +130 -0
  146. package/schemas/source.schema.json +311 -0
  147. package/schemas/v2/analysis-plan.schema.json +28 -0
  148. package/schemas/v2/analysis-run.schema.json +33 -0
  149. package/schemas/v2/claim.schema.json +26 -0
  150. package/schemas/v2/dataset-asset.schema.json +40 -0
  151. package/schemas/v2/decision-snapshot.schema.json +53 -0
  152. package/schemas/v2/evidence-link.schema.json +38 -0
  153. package/schemas/v2/finding.schema.json +47 -0
  154. package/schemas/v2/graph-revision.schema.json +30 -0
  155. package/schemas/v2/knowledge-gap.schema.json +40 -0
  156. package/schemas/v2/methodology-audit.schema.json +30 -0
  157. package/schemas/v2/outcome.schema.json +18 -0
  158. package/schemas/v2/project.schema.json +31 -0
  159. package/schemas/v2/research-intent.schema.json +24 -0
  160. package/schemas/v2/run.schema.json +43 -0
  161. package/schemas/v2/source.schema.json +24 -0
  162. package/schemas/v2/study-design.schema.json +67 -0
  163. package/schemas/v2/study.schema.json +37 -0
  164. package/schemas/v3/pilot-outcome.schema.json +132 -0
  165. package/schemas/v3/run-manifest.schema.json +193 -0
  166. package/schemas/v3/synthesis.schema.json +86 -0
  167. package/schemas/v4/drift-report.schema.json +66 -0
  168. package/schemas/v4/evidence-library.schema.json +42 -0
  169. package/schemas/v4/living-subscription.schema.json +55 -0
  170. package/schemas/v4/meta-analysis.schema.json +152 -0
  171. package/schemas/verdict.schema.json +56 -0
  172. package/scripts/__init__.py +0 -0
  173. package/scripts/__pycache__/__init__.cpython-312.pyc +0 -0
  174. package/scripts/__pycache__/benchmark.cpython-312.pyc +0 -0
  175. package/scripts/__pycache__/benchmark_evaluator.cpython-312.pyc +0 -0
  176. package/scripts/__pycache__/benchmark_judge.cpython-312.pyc +0 -0
  177. package/scripts/__pycache__/benchmark_routing.cpython-312.pyc +0 -0
  178. package/scripts/__pycache__/benchmark_v2.cpython-312.pyc +0 -0
  179. package/scripts/__pycache__/benchmark_v3.cpython-312.pyc +0 -0
  180. package/scripts/__pycache__/build_result.cpython-312.pyc +0 -0
  181. package/scripts/__pycache__/claim_audit.cpython-312.pyc +0 -0
  182. package/scripts/__pycache__/complexity_gate.cpython-312.pyc +0 -0
  183. package/scripts/__pycache__/compute_confidence.cpython-312.pyc +0 -0
  184. package/scripts/__pycache__/dashboard_server.cpython-312.pyc +0 -0
  185. package/scripts/__pycache__/did_regression.cpython-312.pyc +0 -0
  186. package/scripts/__pycache__/effect_calculator.cpython-312.pyc +0 -0
  187. package/scripts/__pycache__/evidence_matrix.cpython-312.pyc +0 -0
  188. package/scripts/__pycache__/evidence_score.cpython-312.pyc +0 -0
  189. package/scripts/__pycache__/evidence_semantics.cpython-312.pyc +0 -0
  190. package/scripts/__pycache__/fetch_benchmark.cpython-312.pyc +0 -0
  191. package/scripts/__pycache__/lint_report_layout.cpython-312.pyc +0 -0
  192. package/scripts/__pycache__/orchestrator.cpython-312.pyc +0 -0
  193. package/scripts/__pycache__/pre_verdict_gate.cpython-312.pyc +0 -0
  194. package/scripts/__pycache__/recompute_demo_quality.cpython-312.pyc +0 -0
  195. package/scripts/__pycache__/render_report.cpython-312.pyc +0 -0
  196. package/scripts/__pycache__/render_report_html.cpython-312.pyc +0 -0
  197. package/scripts/__pycache__/run_workspace.cpython-312.pyc +0 -0
  198. package/scripts/__pycache__/skill_lint.cpython-312.pyc +0 -0
  199. package/scripts/__pycache__/startup_probe.cpython-312.pyc +0 -0
  200. package/scripts/__pycache__/sync_killer_demo_report.cpython-312.pyc +0 -0
  201. package/scripts/__pycache__/test_adversarial_empirical.cpython-312-pytest-9.0.2.pyc +0 -0
  202. package/scripts/__pycache__/test_adversarial_empirical.cpython-312-pytest-9.1.1.pyc +0 -0
  203. package/scripts/__pycache__/validate_schema.cpython-312.pyc +0 -0
  204. package/scripts/audit_dois.py +292 -0
  205. package/scripts/bake_pack.sh +37 -0
  206. package/scripts/benchmark.py +183 -0
  207. package/scripts/benchmark_evaluator.py +371 -0
  208. package/scripts/benchmark_judge.py +535 -0
  209. package/scripts/benchmark_routing.py +120 -0
  210. package/scripts/benchmark_v2.py +304 -0
  211. package/scripts/benchmark_v3.py +552 -0
  212. package/scripts/build_esl_artifacts.py +1921 -0
  213. package/scripts/build_evidence_library.py +307 -0
  214. package/scripts/build_killer_demo.py +295 -0
  215. package/scripts/build_result.py +311 -0
  216. package/scripts/check_version_consistency.py +96 -0
  217. package/scripts/citation_check.py +123 -0
  218. package/scripts/claim_audit.py +157 -0
  219. package/scripts/complexity_gate.py +180 -0
  220. package/scripts/compute_confidence.py +176 -0
  221. package/scripts/dashboard_server.py +536 -0
  222. package/scripts/did_regression.py +315 -0
  223. package/scripts/effect_calculator.py +99 -0
  224. package/scripts/enrich_projects_human_and_lieflat.py +315 -0
  225. package/scripts/evidence_matrix.py +129 -0
  226. package/scripts/evidence_score.py +234 -0
  227. package/scripts/evidence_semantics.py +87 -0
  228. package/scripts/fetch_benchmark.py +177 -0
  229. package/scripts/generate_metrics.py +99 -0
  230. package/scripts/generate_new_projects.py +686 -0
  231. package/scripts/generate_promo.py +192 -0
  232. package/scripts/lint_report_layout.py +182 -0
  233. package/scripts/orchestrator.py +1456 -0
  234. package/scripts/pre_verdict_gate.py +513 -0
  235. package/scripts/quickstart.py +121 -0
  236. package/scripts/rebake_all_5themes.py +88 -0
  237. package/scripts/recompute_demo_quality.py +205 -0
  238. package/scripts/render_report.py +270 -0
  239. package/scripts/render_report_html.py +356 -0
  240. package/scripts/retraction_watch.py +110 -0
  241. package/scripts/run_workspace.py +337 -0
  242. package/scripts/serve_web.py +54 -0
  243. package/scripts/skill_lint.py +150 -0
  244. package/scripts/startup_probe.py +265 -0
  245. package/scripts/sync_killer_demo_report.py +270 -0
  246. package/scripts/test_adversarial_empirical.py +541 -0
  247. package/scripts/validate_schema.py +256 -0
  248. package/skill/agents/education-planner.md +80 -0
  249. package/skill/agents/evaluation-designer.md +74 -0
  250. package/skill/agents/evidence-analyst.md +106 -0
  251. package/skill/agents/evidence-judge.md +111 -0
  252. package/skill/agents/evidence-retriever.md +80 -0
  253. package/skill/agents/intervention-designer.md +82 -0
  254. package/skill/agents/method-reviewer.md +104 -0
  255. package/skill/agents/skeptic.md +89 -0
  256. package/skill/sub-skills/aihot-trend-analysis/SKILL.md +31 -0
  257. package/skill/sub-skills/contradiction-analysis/SKILL.md +17 -0
  258. package/skill/sub-skills/data-analysis/SKILL.md +23 -0
  259. package/skill/sub-skills/ethics-review/SKILL.md +25 -0
  260. package/skill/sub-skills/evidence-extraction/SKILL.md +19 -0
  261. package/skill/sub-skills/evidence-review/SKILL.md +18 -0
  262. package/skill/sub-skills/gap-analysis/SKILL.md +25 -0
  263. package/skill/sub-skills/literature-review/SKILL.md +21 -0
  264. package/skill/sub-skills/methodology-audit/SKILL.md +20 -0
  265. package/skill/sub-skills/report-generation/SKILL.md +51 -0
  266. package/skill/sub-skills/research-planning/SKILL.md +21 -0
  267. package/skill/sub-skills/study-design/SKILL.md +16 -0
  268. package/skill/task-briefs/adjudicate.md +17 -0
  269. package/skill/task-briefs/audit.md +15 -0
  270. package/skill/task-briefs/challenge.md +15 -0
  271. package/skill/task-briefs/evaluate.md +13 -0
  272. package/skill/task-briefs/extract.md +16 -0
  273. package/skill/task-briefs/frame.md +17 -0
  274. package/skill/task-briefs/intervene.md +14 -0
  275. package/skill/task-briefs/present.md +16 -0
  276. package/skill/task-briefs/retrieve.md +15 -0
  277. package/visualization/eduevidence-report/assets/base.css +337 -0
  278. package/visualization/eduevidence-report/motion/motion.css +157 -0
  279. package/visualization/eduevidence-report/motion/motion.js +107 -0
  280. package/visualization/eduevidence-report/references/bilingual-style.md +7 -0
  281. package/visualization/eduevidence-report/references/component-catalog.md +145 -0
  282. package/visualization/eduevidence-report/references/evidence-expansion.md +65 -0
  283. package/visualization/eduevidence-report/references/full-report-outline.md +86 -0
  284. package/visualization/eduevidence-report/references/layout-constraints.md +63 -0
  285. package/visualization/eduevidence-report/references/lieflat-composition.md +79 -0
  286. package/visualization/eduevidence-report/references/motion-system.md +31 -0
  287. package/visualization/eduevidence-report/schemas/adapter-envelope.schema.json +22 -0
  288. package/visualization/eduevidence-report/schemas/visual-layout.schema.json +87 -0
  289. package/visualization/eduevidence-report/scripts/__pycache__/adapter_contract.cpython-312.pyc +0 -0
  290. package/visualization/eduevidence-report/scripts/__pycache__/build_artifact_manifest.cpython-312.pyc +0 -0
  291. package/visualization/eduevidence-report/scripts/__pycache__/build_charts.cpython-312.pyc +0 -0
  292. package/visualization/eduevidence-report/scripts/__pycache__/build_figures.cpython-312.pyc +0 -0
  293. package/visualization/eduevidence-report/scripts/__pycache__/build_infographics.cpython-312.pyc +0 -0
  294. package/visualization/eduevidence-report/scripts/__pycache__/build_report.cpython-312.pyc +0 -0
  295. package/visualization/eduevidence-report/scripts/__pycache__/charts_data.cpython-312.pyc +0 -0
  296. package/visualization/eduevidence-report/scripts/__pycache__/lieflat_engine.cpython-312.pyc +0 -0
  297. package/visualization/eduevidence-report/scripts/__pycache__/zh_labels.cpython-312.pyc +0 -0
  298. package/visualization/eduevidence-report/scripts/adapter_contract.py +72 -0
  299. package/visualization/eduevidence-report/scripts/build_artifact_manifest.py +70 -0
  300. package/visualization/eduevidence-report/scripts/build_charts.py +283 -0
  301. package/visualization/eduevidence-report/scripts/build_figures.py +515 -0
  302. package/visualization/eduevidence-report/scripts/build_infographics.py +268 -0
  303. package/visualization/eduevidence-report/scripts/build_report.py +3211 -0
  304. package/visualization/eduevidence-report/scripts/charts_data.py +617 -0
  305. package/visualization/eduevidence-report/scripts/check_mobile_layout.js +220 -0
  306. package/visualization/eduevidence-report/scripts/lieflat_engine.py +852 -0
  307. package/visualization/eduevidence-report/scripts/zh_labels.py +245 -0
  308. package/visualization/eduevidence-report/themes/academic.css +94 -0
  309. package/visualization/eduevidence-report/themes/claude.css +96 -0
  310. package/visualization/eduevidence-report/themes/datalab-dark.css +147 -0
  311. package/visualization/eduevidence-report/themes/datalab.css +151 -0
  312. package/visualization/eduevidence-report/themes/presentation.css +140 -0
@@ -0,0 +1,10 @@
1
+ {
2
+ "domain": "policy",
3
+ "name": "policy(政策分析)",
4
+ "description": "政策分析领域(v4 首个自带契约的独立领域)。政策分析框架关注 decision_object/intervention/population/stakeholders/outcomes/context/scope,刻意不使用 education-frame 的 learner/course 概念。结果分类 5 类、方法学清单 12 项,配套 5 篇政策证据方法学短文(domains/policy/references/)。",
5
+ "frame_schema": "domains/policy/frame.schema.json",
6
+ "outcome_taxonomy": "domains/policy/outcome_taxonomy.json",
7
+ "methodology_checklist": "domains/policy/methodology_checklist.json",
8
+ "golds_dir": null,
9
+ "references_dir": "domains/policy/references"
10
+ }
@@ -0,0 +1,109 @@
1
+ {
2
+ "domain": "policy",
3
+ "name_zh": "政策证据质量 12 项清单",
4
+ "description": "评估一项政策证据(研究/综述)在政策决策意义上的质量。每项 status 枚举:met / partial / missing / not_applicable。配套方法学短文见 domains/policy/references/。",
5
+ "items": [
6
+ {
7
+ "id": "evidence_level",
8
+ "label_zh": "证据等级",
9
+ "question_zh": "证据是否来自系统综述、RCT 或高质量准实验?证据等级是否明确标注?",
10
+ "references": [
11
+ "evidence-hierarchy.md"
12
+ ]
13
+ },
14
+ {
15
+ "id": "causal_identification",
16
+ "label_zh": "因果识别",
17
+ "question_zh": "是否明确识别因果效应而非仅相关?识别策略(RCT/自然实验/DID/断点/IV)是否可信?",
18
+ "references": [
19
+ "causal-identification.md"
20
+ ]
21
+ },
22
+ {
23
+ "id": "external_validity",
24
+ "label_zh": "外部效度",
25
+ "question_zh": "结果能否推广到目标辖区与人群?情境差异(制度/文化/时间)是否被讨论?",
26
+ "references": [
27
+ "evidence-hierarchy.md"
28
+ ]
29
+ },
30
+ {
31
+ "id": "cost_evidence",
32
+ "label_zh": "成本证据",
33
+ "question_zh": "是否报告政策成本(财政/实施/机会成本)?是否有成本-效果或成本-收益分析?",
34
+ "references": [
35
+ "cost-evidence.md"
36
+ ]
37
+ },
38
+ {
39
+ "id": "stakeholder_representation",
40
+ "label_zh": "利益相关者代表",
41
+ "question_zh": "受益者、受损者与实施者的观点是否被代表,而非仅决策者视角?",
42
+ "references": [
43
+ "equity.md"
44
+ ]
45
+ },
46
+ {
47
+ "id": "implementation_evidence",
48
+ "label_zh": "实施证据",
49
+ "question_zh": "是否包含实施过程证据(保真度/覆盖率/实施能力/抵制)?",
50
+ "references": [
51
+ "implementation-evidence.md"
52
+ ]
53
+ },
54
+ {
55
+ "id": "equity_analysis",
56
+ "label_zh": "公平性分析",
57
+ "question_zh": "政策对不同群体的分布效应是否被分析(含弱势群体)?",
58
+ "references": [
59
+ "equity.md"
60
+ ]
61
+ },
62
+ {
63
+ "id": "effect_size_reported",
64
+ "label_zh": "效应量报告",
65
+ "question_zh": "是否报告效应量与置信区间,而非仅报告统计显著性?",
66
+ "references": [
67
+ "causal-identification.md"
68
+ ]
69
+ },
70
+ {
71
+ "id": "uncertainty_quantified",
72
+ "label_zh": "不确定性量化",
73
+ "question_zh": "不确定性是否被量化(敏感性分析/置信区间/情景)?",
74
+ "references": [
75
+ "cost-evidence.md"
76
+ ]
77
+ },
78
+ {
79
+ "id": "comparator_clarity",
80
+ "label_zh": "对照与反事实清晰",
81
+ "question_zh": "对照组/反事实是否明确(政策前后、无政策地区)?",
82
+ "references": [
83
+ "causal-identification.md"
84
+ ]
85
+ },
86
+ {
87
+ "id": "publication_bias_risk",
88
+ "label_zh": "发表偏倚风险",
89
+ "question_zh": "是否考虑发表偏倚与选择性报告?",
90
+ "references": [
91
+ "evidence-hierarchy.md"
92
+ ]
93
+ },
94
+ {
95
+ "id": "generalizability_claims",
96
+ "label_zh": "可推广性声明",
97
+ "question_zh": "结论外推的边界是否如实声明(不夸大适用范围)?",
98
+ "references": [
99
+ "implementation-evidence.md"
100
+ ]
101
+ }
102
+ ],
103
+ "statuses": [
104
+ "met",
105
+ "partial",
106
+ "missing",
107
+ "not_applicable"
108
+ ]
109
+ }
@@ -0,0 +1,53 @@
1
+ {
2
+ "domain": "policy",
3
+ "source": "v4 policy domain 自建契约(domains/policy/outcome_taxonomy.json)",
4
+ "categories": {
5
+ "effectiveness": {
6
+ "name_zh": "效果",
7
+ "description_zh": "政策效果类结果。"
8
+ },
9
+ "cost": {
10
+ "name_zh": "成本",
11
+ "description_zh": "成本与资源配置类结果。"
12
+ },
13
+ "equity": {
14
+ "name_zh": "公平",
15
+ "description_zh": "公平与分配类结果。"
16
+ },
17
+ "feasibility": {
18
+ "name_zh": "可行性",
19
+ "description_zh": "实施可行性类结果。"
20
+ },
21
+ "risk": {
22
+ "name_zh": "风险",
23
+ "description_zh": "实施与执行风险类结果。"
24
+ }
25
+ },
26
+ "tokens": [
27
+ {
28
+ "id": "policy_effectiveness",
29
+ "category": "effectiveness",
30
+ "description_zh": "政策有效性:政策在真实情境中实现既定目标的因果效果(直接效果与净效果)。"
31
+ },
32
+ {
33
+ "id": "cost_effectiveness",
34
+ "category": "cost",
35
+ "description_zh": "成本效益:单位财政/资源投入所实现的效果(成本-效果分析、成本-收益分析)。"
36
+ },
37
+ {
38
+ "id": "equity",
39
+ "category": "equity",
40
+ "description_zh": "公平性:政策收益与成本在不同群体间的分配,尤其弱势群体是否受益或受损。"
41
+ },
42
+ {
43
+ "id": "feasibility",
44
+ "category": "feasibility",
45
+ "description_zh": "可行性:在给定制度、资源与政治约束下政策可实施的程度。"
46
+ },
47
+ {
48
+ "id": "implementation_risk",
49
+ "category": "risk",
50
+ "description_zh": "实施风险:政策落地过程中的执行风险(抵制、腐败、能力缺口、意外后果)。"
51
+ }
52
+ ]
53
+ }
@@ -0,0 +1,45 @@
1
+ # 政策证据的因果识别(Causal Identification)
2
+
3
+ > 政策分析领域方法学短文 2/5 · 对应 checklist 项:causal_identification、comparator_clarity、effect_size_reported
4
+
5
+ ## 为什么政策证据必须问因果
6
+
7
+ 政策决策的核心问题是「如果采纳这项政策,结果会改变吗」。
8
+ 相关不等于因果:高绩效地区更可能推行某项政策,
9
+ 不代表该政策带来了高绩效——这是反向因果与选择效应。
10
+
11
+ ## 可信的识别策略
12
+
13
+ 1. **随机对照试验(RCT)**:随机分配消除可观测与不可观测混杂;
14
+ 政策场景常受伦理(剥夺福利)、政治(公平诉求)与
15
+ 溢出效应(控制组受政策波及)限制,未必总能实施。
16
+ 2. **双重差分(DID)**:比较「政策前后 × 处理/对照」的差异变化;
17
+ 核心假设是平行趋势——政策前两组走势一致。
18
+ 3. **断点回归(RDD)**:利用分配规则(如分数线、贫困线)附近的
19
+ 局部随机性;识别的是断点处局部平均处理效应(LATE),
20
+ 外推到远离断点的人群需谨慎。
21
+ 4. **工具变量(IV)**:用只通过政策影响结果的外生变量
22
+ 剥离内生性;工具变量相关性、排他性难以完全验证。
23
+ 5. **合成控制 / 匹配**:构造与处理组相似的反事实;
24
+ 依赖可观测变量充分性假设(无隐藏混杂)。
25
+
26
+ ## 常见威胁清单
27
+
28
+ - **选择偏差**:接受政策的人群与未接受者系统性不同。
29
+ - **时间趋势**:政策前后自然变化被误归因于政策。
30
+ - **同期干预**:评估窗口内发生其他政策变化。
31
+ - **溢出/干扰**:处理组影响控制组,低估或高估效应。
32
+ - **测量变化**:政策伴随统计口径改变,效应是测量假象。
33
+
34
+ ## 报告要求
35
+
36
+ - 必须报告:识别策略、反事实构造、平行趋势/排他性检验、
37
+ 效应量与置信区间(不能只给 p 值)。
38
+ - 敏感性分析:更换样本、控制变量与估计方法后结论是否稳健。
39
+
40
+ ## 与清单的关系
41
+
42
+ - `causal_identification`:识别策略是否可信。
43
+ - `comparator_clarity`:对照/反事实是否明确。
44
+ - `effect_size_reported`:是否报告效应量与不确定性。
45
+
@@ -0,0 +1,44 @@
1
+ # 政策证据中的成本证据(Cost Evidence)
2
+
3
+ > 政策分析领域方法学短文 3/5 · 对应 checklist 项:cost_evidence、uncertainty_quantified
4
+
5
+ ## 为什么成本是政策证据的一部分
6
+
7
+ 「有效」不等于「值得」。一项有效但昂贵的政策可能挤占
8
+ 更优的资源配置。政策决策必须同时回答:
9
+ 效果有多大、成本有多高、谁承担成本、单位成本值不值。
10
+
11
+ ## 核心分析框架
12
+
13
+ 1. **成本-效果分析(CEA)**:比较不同方案在单一效果单位上的
14
+ 单位成本(如每提升 1 分成绩的成本);不把效果货币化。
15
+ 2. **成本-收益分析(CBA)**:把效果货币化后与成本比较,
16
+ 回答「净收益是否为正」;货币化假设常受争议。
17
+ 3. **成本-效用分析(CUA)**:以质量调整生命年等效用单位
18
+ 衡量效果,适合跨领域比较。
19
+ 4. **预算影响分析(BIA)**:财政约束下采纳该政策的预算影响,
20
+ 回答「付得起吗」。
21
+
22
+ ## 成本要素清单
23
+
24
+ - **财政成本**:直接政府支出(人员、物资、设施)。
25
+ - **实施成本**:培训、监督、信息系统、合规管理。
26
+ - **机会成本**:资源用于本政策而放弃的次优用途。
27
+ - **社会成本**:家庭/企业承担的合规与时间成本。
28
+ - **成本转移**:成本从政府转移到家庭(如家长陪护、自购设备)。
29
+
30
+ ## 不确定性处理
31
+
32
+ - 参数不确定:关键参数(效果、单价、贴现率)应做
33
+ **敏感性分析**(单变量与多变量)与情景分析。
34
+ - 时间维度:跨期成本与收益应贴现,报告贴现率假设。
35
+ - 报告规范:说明分析视角(政府视角/社会视角)、
36
+ 时间范围与数据来源,保证可复现。
37
+
38
+ ## 与清单的关系
39
+
40
+ - `cost_evidence`:是否报告成本与成本-效果/收益分析。
41
+ - `uncertainty_quantified`:成本与效果参数的不确定性是否量化。
42
+ - 缺失成本证据不等于政策无效,而是**决策信息不完整**,
43
+ 应标记为证据缺口而不是反对意见。
44
+
@@ -0,0 +1,42 @@
1
+ # 政策证据中的公平性(Equity)
2
+
3
+ > 政策分析领域方法学短文 4/5 · 对应 checklist 项:equity_analysis、stakeholder_representation
4
+
5
+ ## 为什么公平性是政策证据的维度
6
+
7
+ 政策不是对「平均人」生效:同一政策对不同群体的效果与负担
8
+ 可能差异巨大。只看平均效应会掩盖「惠及强者、伤害弱者」
9
+ 的分配结果。教育/健康/就业等公共政策尤其如此。
10
+
11
+ ## 需要考察的分配维度
12
+
13
+ 1. **人群维度**:收入、性别、年龄、民族、地域、
14
+ 残障状况、城乡、是否弱势家庭。
15
+ 2. **效果分配**:政策收益(成绩提升、服务可及)在不同群体
16
+ 间是否公平分布;弱势群体是否获益较少甚至受损。
17
+ 3. **负担分配**:成本(时间、金钱、合规)由谁承担;
18
+ 政策是否把负担转移给最无承受力的群体。
19
+ 4. **可及性**:弱势群体是否因信息、语言、数字鸿沟
20
+ 无法享受政策红利(如线上服务反而排除无网家庭)。
21
+
22
+ ## 公平性评估方法
23
+
24
+ - **亚组分析**:按关键维度报告亚组效应,而非只报总体。
25
+ - **分布效应分析**:政策前后不同群体的受益/受损分布。
26
+ - **公平影响评估(EIA)**:政策提案前系统评估公平影响。
27
+ - **利益相关者参与**:把受益者、受影响方、实施者纳入评估,
28
+ 避免「替弱者发言」的单方视角。
29
+
30
+ ## 常见错误
31
+
32
+ - 只报告平均效应,掩盖群体差异(Simpson 悖论)。
33
+ - 把「总福利最大」当作唯一标准,忽视分配公平。
34
+ - 用「所有学生都适用」之类声明回避亚组证据缺失。
35
+
36
+ ## 与清单的关系
37
+
38
+ - `equity_analysis`:分布效应与亚组分析是否充分。
39
+ - `stakeholder_representation`:利益相关者是否被代表。
40
+ - 公平性缺失时应明确标注为证据缺口,
41
+ 尤其当政策涉及公共服务与弱势群体时。
42
+
@@ -0,0 +1,41 @@
1
+ # 政策证据等级(Evidence Hierarchy)
2
+
3
+ > 政策分析领域方法学短文 1/5 · 对应 checklist 项:evidence_level
4
+
5
+ ## 目的
6
+
7
+ 政策证据等级帮助决策者快速判断「这条证据在因果强度上有多可信」,
8
+ 避免把弱设计(前后对比、专家意见)当作强证据使用。
9
+
10
+ ## 常用等级阶梯(从强到弱)
11
+
12
+ 1. **系统综述 / 荟萃分析**:对多个高质量研究的结构化综合;
13
+ 能汇总效应量并检验异质性,是政策证据的最高等级。
14
+ 2. **随机对照试验(RCT)**:随机分配政策干预与对照;
15
+ 因果推断的金标准,但在政策场景常受伦理与实施限制。
16
+ 3. **准实验设计**:双重差分(DID)、断点回归(RDD)、
17
+ 工具变量(IV)、合成控制;无随机化但构造可信反事实。
18
+ 4. **前后对比 / 时间序列**:只有时间维度上的比较;
19
+ 无法排除同期政策、趋势与回归均值等威胁。
20
+ 5. **观察性相关研究**:横断面或纵向相关;只能提示关联,
21
+ 不能支撑因果结论。
22
+ 6. **案例研究 / 定性证据**:提供机制理解与情境细节;
23
+ 回答「为什么」与「如何」,不代表平均因果效应。
24
+ 7. **专家意见 / 共识声明**:无系统证据时的兜底,
25
+ 应明确标注为意见而非证据。
26
+
27
+ ## 政策场景下的重要提醒
28
+
29
+ - **等级不是唯一标准**:一项高质量、贴近本地情境的准实验,
30
+ 可能比一项异地、人群不匹配的系统综述更有决策价值。
31
+ - **匹配决策问题**:评估「是否该采纳」更依赖因果证据;
32
+ 评估「如何落地」则更需要实施证据与过程评价。
33
+ - **报告义务**:引用证据时应同时给出等级与适用边界,
34
+ 不得用「研究表明」掩盖设计缺陷。
35
+
36
+ ## 与清单的关系
37
+
38
+ - `evidence_level`:证据等级是否明确标注。
39
+ - `publication_bias_risk`:高等级证据同样可能受发表偏倚影响。
40
+ - `external_validity`:等级高不等于可直接推广到本地。
41
+
@@ -0,0 +1,47 @@
1
+ # 政策证据中的实施证据(Implementation Evidence)
2
+
3
+ > 政策分析领域方法学短文 5/5 · 对应 checklist 项:implementation_evidence、generalizability_claims
4
+
5
+ ## 为什么有效政策仍会失败
6
+
7
+ 一项在试点中有效的政策,落地时可能因为执行不力而失败。
8
+ 「有没有效」(effectiveness)与「能不能落地」(implementation)
9
+ 是两个不同的问题。实施证据回答后者:
10
+ 政策在真实制度环境中如何被采纳、执行与维持。
11
+
12
+ ## 实施证据的核心维度
13
+
14
+ 1. **保真度(fidelity)**:实际执行与政策设计的一致程度;
15
+ 偏离是合理适配还是走样。
16
+ 2. **覆盖率(coverage/reach)**:目标人群中有多大比例
17
+ 实际接触到政策;服务盲区在哪里。
18
+ 3. **实施能力(capacity)**:实施机构的资源、技能、
19
+ 人员与信息系统是否足以支撑政策。
20
+ 4. **采纳与抵制(uptake/resistance)**:基层执行者与
21
+ 受影响方的配合程度、抵制来源与原因。
22
+ 5. **维持与制度化(sustainability)**:政策是否在
23
+ 财政与人事变动后仍能持续。
24
+ 6. **意外后果(unintended consequences)**:政策引发的
25
+ 替代行为、寻租、负担转移等未预期效应。
26
+
27
+ ## 常用方法
28
+
29
+ - **过程评价(process evaluation)**:跟踪实施过程,识别断点。
30
+ - **实施研究框架**:RE-AIM(覆盖/效果/采纳/实施/维持)、
31
+ CFIR(实施研究整合框架)等结构化分析。
32
+ - **混合方法**:量化指标 + 定性访谈解释「为什么执行走样」。
33
+ - **保真度-适配平衡**:区分必须保持的核心要素与允许适配的外围要素。
34
+
35
+ ## 对决策的意义
36
+
37
+ - 实施证据强、效果证据弱:政策可行但效果存疑,适合小规模试点。
38
+ - 效果证据强、实施证据弱:政策有效但落地风险高,
39
+ 应优先建设实施能力与保障条件。
40
+ - 两者都弱:不足以支持全面推广。
41
+
42
+ ## 与清单的关系
43
+
44
+ - `implementation_evidence`:是否包含实施过程证据。
45
+ - `generalizability_claims`:从试点到推广的外推边界
46
+ 必须如实声明,不得把试点效果直接当作推广效果。
47
+
@@ -0,0 +1,26 @@
1
+ #!/usr/bin/env python3
2
+ """eduevidence_cli.py — console-script shim for `eduevidence`.
3
+
4
+ Installed via pyproject.toml [project.scripts]: the real implementation lives
5
+ in scripts/orchestrator.py; this module only puts scripts/ (and the repo root
6
+ for retrieval/integrations packages) on sys.path and forwards to it.
7
+
8
+ Usage:
9
+ eduevidence run --question "..." --depth deep
10
+ eduevidence resume --run-id <id>
11
+ eduevidence status --run-id <id>
12
+ eduevidence list
13
+ eduevidence gate --run-id <id>
14
+ """
15
+ import sys
16
+ from pathlib import Path
17
+
18
+ ROOT = Path(__file__).resolve().parent
19
+ for _p in (str(ROOT / "scripts"), str(ROOT)):
20
+ if _p not in sys.path:
21
+ sys.path.insert(0, _p)
22
+
23
+ from orchestrator import main # noqa: E402
24
+
25
+ if __name__ == "__main__":
26
+ sys.exit(main())
@@ -0,0 +1,11 @@
1
+ """EduEvidence V2 Research Engine — internal capability core.
2
+
3
+ The competition artifact remains the EduEvidence Skill; this package is the
4
+ engine behind it. Native Core depends only on the Python standard library.
5
+ """
6
+
7
+ # Single source of truth for the engine version lives in engine/versions.py;
8
+ # re-exported here so `from engine import ENGINE_VERSION` stays valid.
9
+ from .versions import ENGINE_VERSION
10
+
11
+ __all__ = ["ENGINE_VERSION"]