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
@@ -1,20 +1,37 @@
1
1
  ---
2
2
  name: methodology-audit
3
3
  description: "Audits empirical studies against WWC 5.0, GRADE risk-of-bias frameworks, and social science pitfalls."
4
+ capability: methodology_appraisal
4
5
  ---
6
+
5
7
  # Methodology Audit Skill (Methodology Tribunal)
6
8
 
7
- ## 1. When to Use
9
+ ## When to Use
8
10
  Trigger before claim synthesis to evaluate threats to internal and external validity, applying methodological confidence scoring.
9
11
 
10
- ## 2. Audit Frameworks
11
- 1. **WWC 5.0 Rating**:
12
- - Tier 1: Meets WWC Standards Without Reservations (clean RCT, low attrition).
13
- - Tier 2: Meets WWC Standards With Reservations (QED with baseline equivalence).
14
- - Tier 3: Correlational / Promising.
15
- 2. **Social Science 4 Critical Pitfalls**:
16
- - Task Performance != Genuine Learning.
17
- - Short-Term Score != Long-Term Retention (4+ weeks).
18
- - AI-Assisted Performance != Independent Transfer.
19
- - Correlation != Causation.
20
- 3. **GRADE Certainty Rating**: High, Moderate, Low, Very Low.
12
+ ## Inputs
13
+ - `evidence.jsonl` + `fetch/` 原文
14
+ - `references/wwc_standards.md`、`references/grade_framework.md`、`references/social_science_pitfalls.md`
15
+
16
+ ## Process
17
+ 1. **WWC 5.0 Rating**: Tier 1 (meets standards without reservations — clean RCT, low attrition), Tier 2 (with reservations — QED with baseline equivalence), Tier 3 (correlational / promising).
18
+ 2. **Social Science Pitfalls**: task performance ≠ genuine learning; short-term score ≠ retention (4+ weeks); AI-assisted performance ≠ independent transfer; correlation ≠ causation.
19
+ 3. **GRADE Certainty**: High / Moderate / Low / Very Low at the body-of-evidence level.
20
+ 4. **15-item checklist** in fixed order (control_group … dropout), each `met|partial|missing|not_applicable`.
21
+
22
+ ## Output Contract
23
+ `methodology.json` per `schemas/methodology.schema.json`, including `task_vs_learning_guard.equates_task_with_learning`.
24
+
25
+ ## Quality Gates
26
+ - [ ] 15 项齐全且仅用四值枚举。
27
+ - [ ] guard 结论明确。
28
+ - [ ] 审计只判"证据是否成立",不判"证据说什么"。
29
+
30
+ ## Anti-Patterns
31
+ - 用样本量大掩盖无对照;把相关性研究列入因果结论;缺项直接记 `met`。
32
+
33
+ ## Worked Example
34
+ 某准实验无前测等价性 → Tier 2 (with reservations) + `pre_test: missing`;其结论只可用于"提示可能",不进强支持列。
35
+
36
+ ## References
37
+ - `references/methodology-audit.md`、`references/tribunal-policy.md`、`skill/agents/method-reviewer.md`、`skill/task-briefs/audit.md`
@@ -1,29 +1,36 @@
1
1
  ---
2
2
  name: report-generation
3
3
  description: "Renders 5 baked-theme single-file bilingual HTML reports, executive Visual Briefs, and Markdown reports, powered by Lieflat Charts editorial visualization standards and AI-composed, data-driven chart galleries."
4
+ capability: report_projection + report_rendering
4
5
  ---
5
6
  # Report Generation Skill
6
7
 
7
8
  ## 1. When to Use
8
9
  Trigger at the completion of a research cycle (Step 9: Present stage) to deliver visual dossiers, decision briefs, and publication-grade reports.
9
10
 
10
- ## 2. Lieflat Charts Editorial Standards Integration
11
- All statistical figures, evidence matrices, and causal trajectories follow the **Lieflat Charts Editorial Codex** (`visualization/lieflat-charts/`). Chart galleries are **AI-composed but data-driven**: the upstream AI writes a chart plan (`visual_layout`), and the deterministic renderer extracts every number from `result.json` via `scripts/charts_data.py`. **The AI never writes numeric values into the layout** — values are un-tamperable and always traceable.
11
+ ## 2. AI-Composed Data Visualization
12
+ Use the self-contained selection catalog at `visualization/eduevidence-report/references/chart-selection-catalog.md` together with the executable registry in `references/lieflat-composition.md`. Chart galleries are **AI-composed but data-driven**: the upstream AI writes a chart plan (`visual_layout`), and the deterministic renderer extracts every number from `result.json` via `scripts/charts_data.py`. **The AI never writes numeric values into the layout** — values are traceable and cannot be replaced by invented chart data.
12
13
 
13
14
  ### 2.1 Six-Step Chart Composition Workflow
14
15
  1. **判数据形状。** 看 `result.json` 的数据长什么样(效应量 g+CI / 年份×维度 / 方向计数 / 阶段周区间 / 置信度单值 / 审计状态……),形状是选图的主键。
15
- 2. **按 catalog 审计候选。** 在 `visualization/lieflat-charts/catalog.md` 按数据形状召回候选,至少比较 3 个并写下淘汰理由(语义契合、单位诚实、标签容纳、阅读速度、本批次是否重复)。Glance 系只在 Lupi/Basics 不适配或用户明确要求快读时进入候选。
16
+ 2. **按自包含 catalog 审计候选。** 在 `visualization/eduevidence-report/references/chart-selection-catalog.md` 按数据形状召回候选;通常比较至少 3 个可行图型并写下淘汰理由(语义契合、单位诚实、标签容纳、阅读速度、移动端适配、本批次是否重复)。如果数据形状只有 1–2 个有效候选,不得为了凑满 3 个选择语义错误的图。
16
17
  3. **锁定注册表 `type`。** 只能选 `visualization/eduevidence-report/references/lieflat-composition.md` 注册表内的图型(type ↔ 目录编号 ↔ 数据形状 ↔ 提取器);**未注册 type 会显式报错并被丢弃,不存在静默回退**。
17
18
  4. **写 `report_outline` + `visual_layout`。** 每张图承担一个独立结论;总数 ≤6 张;同一批形状不重复(不堆同类环/条/点阵);每张图写清 `type / catalog_ref / title_zh+en / subtitle_zh+en / caption_zh+en / source / params`,副标题写清图例与单位;主题色系由烘焙主题锁定,布局不得换色。
18
19
  5. **渲染。** 运行 `build_report.py`(或 `scripts/rebake_all_5themes.py`)——渲染器对每个条目走注册表提取器:数据不足 → 该图抑制并记录原因(镜像 Meaningful Visualization Gate);全部无效 → 确定性安全组合(forest_plot + dot_cascade + bubble_almanac + tick_rows)。
19
- 6. **按 Lieflat skill 第八节自检**(面积 sqrt、最小字号 6.5/5.5px、数值 800、reveal 滚入播放 + 点击重播 + reduced-motion、卡片四件套齐全、数值与视觉成正比)。
20
+ 6. **按本地 catalog + 渲染不变量自检**(面积 sqrt、最小字号 6.5/5.5px、数值 800、reveal 滚入播放 + 点击重播 + reduced-motion、卡片四件套齐全、数值与视觉成正比)。
20
21
 
21
22
  ### 2.2 数据契约:AI 写计划,渲染器出数
22
23
  - `visual_layout` 条目 = 图型 + 目录编号 + 双语文案 + 数据源参数。**数值一律由 `scripts/charts_data.py` 的提取器从 `result.json` 读出**,渲染器只接收提取器 bundle——被篡改的数值天然不被采用,完整性门 `lieflat_data_bound` 逐值核对溯源。
23
24
  - 50 篇级大样本 → 提取器 top-N 截断 + SVG `<title>` 悬停读数,不加欺骗性交互。
24
25
  - 中文长类目 → 按决策树选横排图(F5/F1/F6 系),L2 cascade 类目名 ≤4 字约束保留。
25
26
 
26
- ### 2.3 5 Theme Palettes Adaptive Binding (Zero-CDN Guarantee)
27
+ ### 2.3 Tables are audit surfaces, not failed visualizations
28
+ - Keep `EvidenceMatrix`, `SourceList`, methodology details, and `ClaimTrace` for exact row-level verification and provenance.
29
+ - Use charts for patterns, comparisons, distributions, composition, time/phase structure, and decision summaries.
30
+ - Never replace a provenance table merely to make the report look more visual. A chart may summarize a table, but the auditable rows remain reachable.
31
+ - If no chart adds information without inventing missing values or mixing incompatible outcomes, suppress the visualization and explain why.
32
+
33
+ ### 2.4 5 Theme Palettes Adaptive Binding (Zero-CDN Guarantee)
27
34
  Every chart is rendered as **pure self-contained inline SVG** following the baked report theme's color system:
28
35
  - **`claude` (智库典雅)** ➔ **Lieflat Palm (暖棕)**: `#FAF7F2` paper base, `#B8694A` terracotta, `#5E8A6A` forest green, `#C99A4A` amber.
29
36
  - **`academic` (学术顶刊)** ➔ **Lieflat Mono / Nature (学术黑白灰)**: `#FFFFFF` paper base, `#0F172A` ink black, Okabe-Ito colorblind-safe accents.
@@ -33,7 +40,7 @@ Every chart is rendered as **pure self-contained inline SVG** following the bake
33
40
 
34
41
  Dark themes draw on the theme's `card_bg`; text contrast is checked against the theme palette (≥4.5:1 for body/labels). The chart structure is identical across light/dark — only colors change.
35
42
 
36
- ### 2.4 排版守则(五主题统一约束)
43
+ ### 2.5 排版守则(五主题统一约束)
37
44
  五个烘焙主题的排版必须通过 `scripts/lint_report_layout.py`(静态不变量 + 浏览器级
38
45
  390/768/1280 × brief/full 实测):轨道 `minmax(0,1fr)` / `minmax(min(Npx,100%),1fr)`、
39
46
  主题自带移动端媒体覆写、禁止裸 `1fr` 与固定 px 最小值 auto-fit、表格外包 `overflow-x:auto`。
@@ -49,3 +56,30 @@ Dark themes draw on the theme's `card_bg`; text contrast is checked against the
49
56
 
50
57
  ## 4. Web Studio Sync
51
58
  The Local Web Studio (`scripts/dashboard_server.py`) serves the baked HTML reports and Lieflat figures directly.
59
+
60
+ ## Inputs
61
+ - `result.json` / `result.zh.json`(叙述字段先过语言门禁 `check_language_parallel`)
62
+ - 当前 Graph Revision 与 decision snapshot 标识
63
+
64
+ ## Quality Gates
65
+ - [ ] 双语语义对齐(数字 / ID / 枚举 / URL 不变)。
66
+ - [ ] 渲染完整性门通过:显示数值可回溯到 `result.json`,探针无 `REPORT_INVALID`。
67
+ - [ ] 布局不变量通过 `scripts/lint_report_layout.py`(390 / 768 / 1280 × brief/full)。
68
+ - [ ] 溯源表格保留(来源表 / 证据矩阵 / Claim Trace),图表只作补充。
69
+ - [ ] `artifact_manifest.json` 记录来源 revision 与各产物哈希。
70
+
71
+ ## Anti-Patterns
72
+ - 由模型写入图表数值(数值必须来自 `scripts/charts_data.py` 提取器)。
73
+ - 为了"更可视化"而删除可核验表格;用占位或虚构数据补齐缺失图表。
74
+ - 报告与快照不一致时改报告不改结论;在 HTML 内提供运行时换肤。
75
+
76
+ ## Failure Handling
77
+ | 失败 | 处理 |
78
+ |---|---|
79
+ | `REPORT_INVALID` | 阻断发布并重跑渲染,不带缺陷投放。 |
80
+ | 双语不对齐 | 修复 `result.zh.json` 后重新烘焙。 |
81
+ | 数据不足以支撑某图 | 抑制该图并记录原因,不补造数据。 |
82
+ | 快照缺失 | 回到上游科学阶段补齐;禁止用默认值生成报告。 |
83
+
84
+ ## References
85
+ - `skill/task-briefs/present.md`、`skill/task-briefs/projection.md`、`visualization/eduevidence-report/references/layout-constraints.md`
@@ -1,21 +1,48 @@
1
1
  ---
2
2
  name: research-planning
3
- description: "Extracts the structured Education Research Frame (PICO + decision target) from user natural language and determines execution mode (S/M/L) via the Complexity Gate."
3
+ description: "Extracts the structured Research Frame (PICO + decision target, in the selected domain's vocabulary) from user natural language and determines execution mode (S/M/L) via the Complexity Gate."
4
+ capability: research_framing
4
5
  ---
6
+
5
7
  # Research Planning Skill
6
8
 
7
- ## 1. When to Use
8
- Trigger this skill when the user initiates a new empirical educational or social science inquiry or updates the research scope. This is the **Frame** stage of the Canonical Protocol (docs/architecture.md).
9
+ ## When to Use
10
+ Trigger this skill when the user initiates a new empirical inquiry — education, policy, organisational practice, or any other registered domain — or updates the research scope. This is the **Frame** stage of the Canonical Protocol (`docs/architecture.md`).
11
+
12
+ ## Inputs
13
+ - 用户原始问题(自然语言,可能含隐含假设)
14
+ - 可选结构化线索:population / intervention / comparison / outcomes / constraints / depth
15
+ - 领域(决定 frame 词汇):education(learner/course)/ policy(decision_object/population/stakeholders),或其他注册在 `domains/` 下的领域
9
16
 
10
- ## 2. Process
11
- 1. **Frame Formulation (Education Research Frame)**:
12
- - **Population (P)**: Target learner/cohort demographics, grade level, domain.
13
- - **Intervention (I)**: Specific pedagogical technique, tool, AI system, or curriculum change.
17
+ ## Process
18
+ 1. **Frame Formulation (Research Frame,字段随领域而定)**
19
+ - **Population (P)**: Who or what the decision acts on — learners and courses in education, affected groups and stakeholders in policy, customers or staff in organisations. Use the field vocabulary of the selected domain.
20
+ - **Intervention (I)**: The specific practice under decision — a teaching method, tool, AI system, curriculum change, regulation, process or programme.
14
21
  - **Comparison (C)**: Active control, business-as-usual, or non-intervention baseline.
15
- - **Outcomes (O)**: Primary and secondary outcome metrics (task performance vs delayed transfer must be separated).
16
- - **decision_target + scope + inclusion/exclusion criteria**: required by education-frame.schema.json.
17
- 2. **Complexity Gating (S/M/L)** (scripts/complexity_gate.py, 全程唯一权威分级):
18
- - S (Quick Fact): Fact-checking single claim (k=3-5).
19
- - M (Standard Review): Full multi-source evidence review (k=8-15).
20
- - L (Deep Causal Cycle): Synthesis + Trial Design + Empirical DID Regression.
21
- 3. **Output Contract**: Frame 本体按 schemas/education-frame.schema.json(V1)校验;研究意图投影用 schemas/v2/research-intent.schema.json(V2 契约)。框架完整前禁止任何教学建议(领域层第一道闸门)。
22
+ - **Outcomes (O)**: Primary and secondary outcome metrics; task performance and delayed transfer must stay separate.
23
+ - **decision target + scope + inclusion/exclusion criteria**: required by the selected domain's frame schema.
24
+ 2. **Complexity Gating (S/M/L)** — `scripts/complexity_gate.py` is the single authority:
25
+ - S (Quick Fact): fact-check a single claim (k=3–5).
26
+ - M (Standard Review): full multi-source evidence review (k=8–15).
27
+ - L (Deep Causal Cycle): synthesis + trial design + empirical DID regression.
28
+ 3. **Missing inputs**: ask the user (`NEEDS_USER_CONTEXT`); never invent a default population, comparator, or outcome.
29
+
30
+ ## Output Contract
31
+ - Frame body validates against the selected domain's frame schema (`domains/<id>/manifest.json` → `frame_schema`): `schemas/education-frame.schema.json` for education, `domains/policy/frame.schema.json` for policy.
32
+ - Research-intent projection uses `schemas/v2/research-intent.schema.json` (V2 contract).
33
+ - **No intervention advice may be produced before framing completes** — the domain layer's first gate.
34
+
35
+ ## Quality Gates
36
+ - [ ] PICO 五要素齐全,comparator 明确,且字段词汇与所选领域一致。
37
+ - [ ] primary outcome 与 secondary/risk outcome 分离。
38
+ - [ ] scope 与纳排标准可操作,非"相关研究"式表述。
39
+ - [ ] 随 frame 输出 S/M/L 等级建议。
40
+
41
+ ## Anti-Patterns
42
+ - 把"相关研究"当作 scope;把任务完成速度当作学习效果;为缺失人群编造默认值;frame 未完成即给干预建议;把某个领域的字段强制套到另一个领域。
43
+
44
+ ## Worked Example
45
+ 输入"大一 C 语言课程要不要允许用 AI 编程助手?" → education 域:population=CS1 学生;intervention=生成式 AI 编程助手(含护栏);comparison=无 AI 常规教学;primary outcome=独立考试成绩(learning);decision_target=teaching_decision。同一协议在 policy 域写成:population=客服团队与受影响客户;intervention=带人工审核的 AI 助手;decision_object=adopt。
46
+
47
+ ## References
48
+ - `schemas/education-frame.schema.json`、`references/education-framing.md`、`references/outcome-taxonomy.md`、`skill/task-briefs/frame.md`
@@ -1,16 +1,37 @@
1
1
  ---
2
2
  name: study-design
3
3
  description: "Generates pre-registered quasi-experimental DID and RCT trial designs to fill identified knowledge gaps."
4
+ capability: study_design + measurement_design
4
5
  ---
6
+
5
7
  # Study Design Skill
6
8
 
7
- ## 1. When to Use
8
- Trigger automatically when Evidence Graph yields MIXED, UNCERTAIN, or INSUFFICIENT verdicts, converting knowledge gaps into actionable empirical protocols.
9
+ ## When to Use
10
+ Trigger when the Evidence Graph yields MIXED, UNCERTAIN, or INSUFFICIENT outcomes — converting knowledge gaps into actionable empirical protocols. **A new design requires an explicit evidence-grounded KnowledgeGap ID.**
11
+
12
+ ## Inputs
13
+ - `GapNode`(`GAP-*`)+ claim 状态
14
+ - 目标人群、可用课时、伦理审查结论
15
+
16
+ ## Process
17
+ 1. **Trial Specification**: sampling frame; cluster randomization or matched control classes; 4-phase rollout — baseline pre-test (W1), treatment exposure (W2–W9), immediate post-test (W10), 4-week delayed transfer test (W14).
18
+ 2. **Pre-Registration Manifest**: power calculation (e.g. N > 120 for power ≥ 0.80 at g = 0.35); primary/secondary instruments; stopping rules; pre-specified regression model.
19
+ 3. **Measurement plan**: hand over to evaluation design so thresholds are fixed before enrolment.
20
+
21
+ ## Output Contract
22
+ StudyDesign + measurement plan validated against the grounded-study gate (`scripts/complexity_gate.py` + engine study-design checks). "Few papers found" alone never authorises a pilot.
23
+
24
+ ## Quality Gates
25
+ - [ ] 设计引用显式 KnowledgeGap ID。
26
+ - [ ] 功效计算与停止规则齐备。
27
+ - [ ] 包含无 AI 的延迟迁移测量。
28
+ - [ ] 伦理审查已通过。
29
+
30
+ ## Anti-Patterns
31
+ - 因"文献少"直接开研究;事后补功效计算;把即测当作迁移。
32
+
33
+ ## Worked Example
34
+ GAP-RETENTION-001 → 12 周集群随机设计:W1 前测 / W10 即测 / W14 无 AI 迁移测,N≈160,预先注册分析模型。
9
35
 
10
- ## 2. Process
11
- 1. **12-Week Trial Specification**:
12
- - Sampling frame, cluster randomization / matched control classrooms.
13
- - 4-phase rollout: Baseline pre-test (W1), Treatment exposure (W2-W9), Immediate post-test (W10), 4-week delayed transfer test (W14).
14
- 2. **Pre-Registration Manifest**:
15
- - Statistical power calculation (N > 120 for power >= 0.80 at effect size g = 0.35).
16
- - Primary/secondary outcome instruments, stopping rules, and pre-specified regression model.
36
+ ## References
37
+ - `engine/study_design.py`、`references/intervention-design.md`、`skill/sub-skills/ethics-review/SKILL.md`
@@ -4,14 +4,39 @@
4
4
  整合 Frame + Evidence Matrix + Skeptic Findings + Method Reviews,产出四态裁决
5
5
  (ADOPT/PILOT/REJECT/INSUFFICIENT EVIDENCE)+ Can/Cannot Claim + 证据边界。
6
6
 
7
- ## 输入
8
- - frame.json、evidence.jsonl、skeptic.json、methodology.json
7
+ ## 前置输入
8
+ - `frame.json`、`evidence.jsonl`、`skeptic.json`、`methodology.json`
9
+ - 确定性置信度脚本 `scripts/compute_confidence.py` 与裁决前闸门 `scripts/pre_verdict_gate.py`
9
10
 
10
11
  ## 产出
11
- - raw_verdict.json(模型裁决)→ orchestrator 跑 Pre-Verdict Gate + 确定性置信度
12
- → final_verdict.json(schemas/verdict.schema.json)。
12
+ - `raw_verdict.json`(模型裁决)→ orchestrator 跑 Pre-Verdict Gate + 确定性置信度
13
+ → `final_verdict.json`(`schemas/verdict.schema.json`)。
13
14
 
14
- ## 规则(人话化硬标准,第一页决策语言)
15
- - decision_rationale 必须为 ≤4 句面向读者的流畅散文(en/zh 分写);
15
+ ## 执行规则(人话化硬标准,第一页决策语言)
16
+ - `decision_rationale` 必须为 ≤4 句面向读者的流畅散文(en/zh 分写);
16
17
  - 禁证据 ID 列表(E-xxx/EV-xxx)、禁 schema 键(overall_risk= 等)、禁截断残留(null);
17
- - what_can/cannot_be_claimed 等列表同样人话化;统计数字可保留但以自然表达呈现。
18
+ - what_can/cannot_be_claimed 等列表同样人话化;统计数字可保留但以自然表达呈现。
19
+ - **先过 Pre-Verdict Gate 再定稿**:critical 失败会封顶置信度并禁止高置信 ADOPT。
20
+ - 置信度由规则化公式给出(0.30 质量 + 0.25 一致性 + 0.20 直接性 + 0.25 独立研究数 − 双罚分),不由模型自评。
21
+ - 证据不足时输出 INSUFFICIENT EVIDENCE,并写明"什么证据会改变这个决定"。
22
+ - 语言人话化规则见 `references/scientific-invariants.md` 与角色提示词。
23
+
24
+ ## 质量门
25
+ - [ ] `final_verdict.json` 通过 verdict schema,action 取自四态枚举。
26
+ - [ ] Pre-Verdict Gate 已执行并留痕(`gate_report.json`)。
27
+ - [ ] 置信度可复算,分解项可审计。
28
+ - [ ] 反证与 threats_to_validity 均被显式回应(采纳、限定或驳回并说明理由)。
29
+
30
+ ## 失败模式与回退
31
+ | 失败 | 处理 |
32
+ |---|---|
33
+ | `PRE_VERDICT_FAILED` | 修复前置产物(schema / 交叉评审 / 方法学)后重跑闸门。 |
34
+ | `GATE_CRITICAL_FAILURE` | 封顶置信度,强制降至 PILOT 或 INSUFFICIENT EVIDENCE。 |
35
+ | `CONFLICT_UNRESOLVED` | 保持不确定,不强行裁决。 |
36
+ | 证据仅支持任务表现 | 不得据以产出学习效果类结论。 |
37
+
38
+ ## 语言与呈现契约
39
+ 面向决策者的第一页语言;ID、枚举、URL 保留可追溯性,但不出现在叙述句中。
40
+
41
+ ## 交接说明
42
+ `final_verdict.json` 是 Applicability / Intervene / Evaluate 与一切投影的唯一依据。
@@ -0,0 +1,38 @@
1
+ # Task Brief — stage: applicability(角色:evidence-judge)
2
+
3
+ ## 目标
4
+ 判定证据可迁移到目标人群与场景的程度:明确支持人群、实施条件、被排除人群、结局边界与不确定性。
5
+
6
+ ## 前置输入
7
+ - `evidence.jsonl`(含人群、场景、剂量与结局信息)
8
+ - `final_verdict.json`(裁决与边界)
9
+ - `references/applicability-policy.md`
10
+
11
+ ## 产出
12
+ - `applicability.json`:supported / unsupported populations、conditions、outcome limits、
13
+ boundary of transfer、uncertainty statement;供 Intervene 判断试点人群是否落在支持范围内。
14
+
15
+ ## 执行规则
16
+ - **阳性结果不自动迁移**:不能因为"研究有效"就推定目标人群同样有效。
17
+ - 逐条对齐:目标人群 vs 研究人群、目标场景 vs 研究场景、目标 outcome vs 已测量 outcome。
18
+ - 明确写出被排除人群(例如被排除的补习班学生、特殊需求学习者)与理由。
19
+ - 剂量与实施条件(师资培训、课时、工具版本、护栏)必须显式列出——这些常常是效果成立的前提。
20
+ - 不确定之处如实标注为不确定,不用"一般来说"这类泛化措辞掩盖缺口。
21
+
22
+ ## 质量门
23
+ - [ ] 支持人群、条件、结局边界、排除人群四类信息齐全。
24
+ - [ ] 每条边界都追溯到具体证据,而非泛泛陈述。
25
+ - [ ] 不确定性显式声明,且与裁决置信度一致。
26
+
27
+ ## 失败模式与回退
28
+ | 失败 | 处理 |
29
+ |---|---|
30
+ | `SCOPE_MISMATCH` | 缩小结论范围而非放宽适用条件。 |
31
+ | 关键人群信息缺失 | 记入不确定项;不得默认"与目标人群相同"。 |
32
+ | 边界与裁决口径冲突 | 以证据为准修正边界,并回退到 Adjudicate 复核。 |
33
+
34
+ ## 语言与呈现契约
35
+ 面向决策者的人话表述:谁适用、在什么条件下、对哪些结果、到什么程度为止。
36
+
37
+ ## 交接说明
38
+ `applicability.json` 约束 Intervene 的试点人群;越界设计必须被拒绝或缩回支持范围。
@@ -3,13 +3,38 @@
3
3
  ## 目标
4
4
  按审计清单审查每个研究的方法学质量,强制执行"任务完成表现 ≠ 学习效果"最高优先级规则。
5
5
 
6
- ## 输入
7
- - evidence.jsonl + 来源 fetch 内容
6
+ ## 前置输入
7
+ - `evidence.jsonl` + 来源 fetch 内容
8
+ - 审计框架:`references/wwc_standards.md`、`references/grade_framework.md`、`references/methodology-audit.md`
8
9
 
9
10
  ## 产出
10
- - methodology.json:audit_items(含 task_vs_learning_guard)+ 每条 PASS/CONCERN/FAIL verdict
11
- (显示层经 zh_labels 映射中文)。
11
+ - `methodology.json`:15 项 `audit_items`(control_group / randomization / pre_test / post_test /
12
+ retention_test / transfer_test / sample_bias / self_selection / measurement_validity / confounders /
13
+ instructor_effect / novelty_effect / tool_version_effect / ai_usage_policy / dropout,每项 status:
14
+ met|partial|missing|not_applicable)+ 每条 PASS/CONCERN/FAIL verdict + `task_vs_learning_guard`
15
+ (显示层经 zh_labels 映射中文),须通过 `schemas/methodology.schema.json`。
12
16
 
13
- ## 规则
14
- - 只审"证据站不站得住",不审"证据说什么";审计说明(note/summary)为人话叙述,
15
- 枚举/代号(PASS/CONCERN/FAIL)只作标签。
17
+ ## 执行规则
18
+ - 只审"证据站不站得住",不审"证据说什么"——审计结论不得夹带对效果的判断。
19
+ - `task_vs_learning_guard.equates_task_with_learning` 必须显式给出;为 true 时该研究不得支撑任何学习效果声明。
20
+ - 审计说明(note/summary)为人话叙述,枚举/代号(PASS/CONCERN/FAIL)只作标签。
21
+ - 独立性:Method Reviewer 与内容判断角色分离(`independence_required: true`),且需强上下文能力。
22
+
23
+ ## 质量门
24
+ - [ ] 15 项审计项齐全,无缺项、无自造项。
25
+ - [ ] 每项状态取自四值枚举,`not_applicable` 必须说明为何不适用。
26
+ - [ ] `task_vs_learning_guard` 存在且结论明确。
27
+ - [ ] 每条 PASS/CONCERN/FAIL 有可核验依据(对应原文特征)。
28
+
29
+ ## 失败模式与回退
30
+ | 失败 | 处理 |
31
+ |---|---|
32
+ | 关键信息缺失(如未报告随机化) | 记 `missing` 并在说明中写清缺什么,不猜测。 |
33
+ | 结论依赖任务表现 | 触发 guard,剥夺其学习效果支撑资格。 |
34
+ | schema 校验失败 | 修复后重跑审计。 |
35
+
36
+ ## 语言与呈现契约
37
+ 审计叙述为人话;状态枚举只作标签显示。
38
+
39
+ ## 交接说明
40
+ `methodology.json` 直接决定每条证据能否支持 claim;Adjudicate 必须读取 `task_vs_learning_guard` 与各条 verdict。
@@ -5,11 +5,40 @@
5
5
  novelty effect、alternative explanation;禁止虚构反方证据;没有反方证据时输出
6
6
  NO CONTRADICTORY EVIDENCE FOUND。
7
7
 
8
- ## 输入
9
- - evidence.jsonl
8
+ ## 前置输入
9
+ - `evidence.jsonl`
10
+ - `frame.json`(用于判断结论是否超出研究范围)
10
11
 
11
12
  ## 产出
12
- - skeptic.json:search_performed=true;findings(counter_evidence/null_results/confounders)。
13
+ - `skeptic.json`:`search_performed=true`;`skeptic_findings[]`(九项检查,字段名稳定:
14
+ `check` / `status`(found|not_found)/ `detail` / `related_evidence_ids`);
15
+ `contradictory_evidence_found`;`no_contradictory_evidence_statement`;`threats_to_validity`。
16
+ - 作为独立交叉审核角色时的输出须符合 `schemas/cross-model-review.schema.json`
17
+ (必需字段 `agreement`、`final_recommendation`)。
13
18
 
14
- ## 规则(人话化硬标准)
15
- - 叙述字段为面向研究者的流畅中文;禁证据 ID 堆砌(用"作者-年份 + 人话描述"替代)。
19
+ ## 执行规则(固定 9 项检查,缺一不可)
20
+ 1. null result 2. negative result 3. contradictory evidence 4. alternative explanation
21
+ 5. measurement mismatch(测的是任务完成还是学习) 6. sampling bias
22
+ 7. novelty effect 8. AI dependency / over-reliance 9. scope overreach
23
+
24
+ - 反方检索必须独立构造查询,不复用支持证据的检索式。
25
+ - 找不到反证就是 "not_found",并输出标准语句;**不得为了凑数虚构反方文献**。
26
+ - 独立性:Skeptic 不得与主分析使用同一模型家族(`independence_required: true`)。
27
+
28
+ ## 质量门
29
+ - [ ] 九项检查全部有 `status`,无遗漏项。
30
+ - [ ] 每条 `found` 的 finding 都绑定 `related_evidence_ids` 或明确来源。
31
+ - [ ] `no_contradictory_evidence_statement` 与 `contradictory_evidence_found` 语义一致。
32
+
33
+ ## 失败模式与回退
34
+ | 失败 | 处理 |
35
+ |---|---|
36
+ | 反证检索为空 | 记录 negative-search record;输出标准语句,不填充虚构来源。 |
37
+ | 反证与支持证据冲突 | 保留双方,交 Adjudicate 处理;不在此阶段裁决。 |
38
+ | 交叉审核不可用(无独立模型) | 降级为原生自审并显式标注,不得伪装为独立审核。 |
39
+
40
+ ## 语言与呈现契约(人话化硬标准)
41
+ 叙述字段为面向研究者的流畅中文;禁证据 ID 堆砌(用"作者-年份 + 人话描述"替代)。
42
+
43
+ ## 交接说明
44
+ `skeptic.json` 是 Adjudicate 的必读输入;其 `threats_to_validity` 必须被裁决明确回应或采纳。
@@ -3,11 +3,36 @@
3
3
  ## 目标
4
4
  为 PILOT/ADOPT 配套评价方案:基线/后测/保持/迁移 + 过程/学习/风险指标 + 成功阈值与停止条件。
5
5
 
6
- ## 输入
7
- - intervention.json + final_verdict.json
6
+ ## 前置输入
7
+ - `intervention.json` + `final_verdict.json`
8
+ - 评价框架:`references/evaluation-design.md`、`references/evaluation-policy.md`、`references/outcome-taxonomy.md`
8
9
 
9
10
  ## 产出
10
- - evaluation.json(schemas/evaluation.schema.json)。
11
+ - `evaluation.json`(`schemas/evaluation.schema.json`):baseline / post / retention / transfer 测量点,
12
+ 过程与风险指标,成功与失败阈值,分析计划(可被 `scripts/did_regression.py` 直接执行)。
11
13
 
12
- ## 规则
13
- - 分离 Task Performance 与 Learning Effect;叙述为人话。
14
+ ## 执行规则
15
+ - 分离 Task Performance 与 Learning Effect;两者指标不得合并成一个"效果"。
16
+ - 保持(retention)与迁移(transfer)必须单独设计测量点,不能只做即测。
17
+ - 阈值在数据到达前固定;事后改阈值属协议偏离,须记录而非吸收。
18
+ - 分析计划要具体到可执行(设计类型、比较组、协变量、缺失处理),使 DID/效应量脚本无需再做决定。
19
+ - 叙述为人话。
20
+
21
+ ## 质量门
22
+ - [ ] `evaluation.json` 通过 evaluation schema。
23
+ - [ ] 基线、即测、保持、迁移四类测量点齐全。
24
+ - [ ] 成功、失败、停止阈值三者都在,且先于数据固定。
25
+ - [ ] 分析计划可被确定性脚本执行(无残留人工决策)。
26
+
27
+ ## 失败模式与回退
28
+ | 失败 | 处理 |
29
+ |---|---|
30
+ | 无法做对照 | 改为单组前后测并显式标注设计局限,不得仍按因果口径表述。 |
31
+ | 阈值事后调整 | 记录为协议偏离并降级结论强度。 |
32
+ | 样本量不足 | 报告功效局限;不得以不显著当作"无效果"。 |
33
+
34
+ ## 语言与呈现契约
35
+ 人话评价方案;统计符号与阈值数字保留原样以便复算。
36
+
37
+ ## 交接说明
38
+ 试用数据回收后由 `evaluate-and-update` 工作流重新注入证据图谱并再裁决。
@@ -3,14 +3,37 @@
3
3
  ## 目标
4
4
  从校验通过的来源中抽取 Claim 级证据对象,执行 Outcome Separation;只结构化,不裁决。
5
5
 
6
- ## 输入
7
- - sources.jsonl + fetch/ 全文内容
6
+ ## 前置输入
7
+ - `sources.jsonl`(全部为 FETCH_VALID / 规则确认的 FETCH_PARTIAL)
8
+ - `fetch/` 全文内容(raw + clean + provenance)
8
9
 
9
10
  ## 产出
10
- - evidence.jsonl:每行一个 Evidence Object(evidence_id/source_id/claim/outcome_type/
11
- effect_direction/relation_to_claim/source_location/quality_score),须通过
12
- schemas/evidence.schema.json 校验。
11
+ - `evidence.jsonl`:每行一个 Evidence Object(evidence_id / source_id / study_id / sample_id / claim_id / claim /
12
+ outcome_type / relation_to_claim / effect_direction / effect size 与 CI / sample size / source_location / quality_score),
13
+ 须通过 `schemas/evidence.schema.json` 校验(V1 顶层契约,修订 1.1)。
13
14
 
14
- ## 规则
15
- - 任务表现 ≠ 学习效果:outcome 分类不得混用。
16
- - claim 文本用可读人话,禁止把内部字段名写进叙述。
15
+ ## 执行规则
16
+ - **任务表现 ≠ 学习效果**:outcome 分类不得混用;两者的取值一律分离记录。
17
+ - `relation_to_claim` 属于链接(EvidenceLink)而非研究本身——支持/反驳/中性三列严格分离,不静默合并。
18
+ - 未报告的统计量保持缺失(未知就是未知),禁止由显著性反推效应量或补造 CI。
19
+ - 数字与单位从原文抽取,保留页码/章节等 `source_location`,使每条发现可回查。
20
+ - claim 文本用可读人话,禁止把内部字段名写进叙述。
21
+
22
+ ## 质量门
23
+ - [ ] 每行通过 evidence schema;枚举值合法(outcome_type / relation_to_claim / effect_direction)。
24
+ - [ ] 每条证据都能定位到 `fetch/` 中的具体内容。
25
+ - [ ] 任务表现与学习效果的记录互不混用。
26
+ - [ ] 缺失的效应量如实留空,未出现推断值。
27
+
28
+ ## 失败模式与回退
29
+ | 失败 | 处理 |
30
+ |---|---|
31
+ | `UNSUPPORTED_CLAIM` | 该 claim 无法绑定可核验来源时降级或丢弃,不得保留。 |
32
+ | 表格/正文含混 | 回退读 `/content` 或原文相邻段落,必要时标 `FETCH_PARTIAL` 走人工确认。 |
33
+ | schema 校验失败 | 修复后重跑抽取。 |
34
+
35
+ ## 语言与呈现契约
36
+ claim 与说明为人话;ID、枚举、统计符号保留原样以便追溯。
37
+
38
+ ## 交接说明
39
+ `evidence.jsonl` 同时供 Challenge、Audit 与 Adjudicate 使用;三者都不得修改该文件,只新增各自产物。
@@ -1,17 +1,46 @@
1
- # Task Brief — stage: frame(角色:education-planner)
1
+ # Task Brief — stage: frame(角色:research-planner)
2
2
 
3
3
  ## 目标
4
- 把原始教育问题结构化为主 Question / Learner / Intervention / Comparison / Outcome / Context 的完整
5
- Education Research Frame;框架完整前禁止生成任何教学建议。
4
+ 把原始决策问题结构化为主 Question / Population / Intervention / Comparison / Outcome / Context 的完整
5
+ Research Frame;框架完整前禁止生成任何干预建议。领域决定字段词汇:education 用 learner/course,
6
+ policy 用 decision_object/population/stakeholders,其他领域见 `domains/<id>/` 自带的 frame 契约。
6
7
 
7
- ## 输入
8
- - 用户原始问题(run manifest → question)
8
+ ## 前置输入
9
+ - 用户原始问题(`run manifest → question`)
10
+ - 已知的结构化线索:population / intervention / comparison / outcomes / constraints / depth / target
11
+ - 目标领域(`eduevidence domain list`)
12
+ - 复杂度等级建议(S/M/L,由 `scripts/complexity_gate.py` 复核)
9
13
 
10
14
  ## 产出(写入本 run workspace)
11
- - frame.json,须通过 schemas/education-frame.schema.json 校验
12
- - 字段:question / decision_target / learner / course / intervention / comparison /
13
- outcomes(primary/secondary)/ context / scope / inclusion_criteria / exclusion_criteria / success_condition
15
+ - `frame.json`,须通过所选领域的 frame schema 校验(`domains/<id>/manifest.json` → `frame_schema`;education 为
16
+ `schemas/education-frame.schema.json`,policy 为 `domains/policy/frame.schema.json`)
17
+ - 字段:question / decision_target(或 decision_object)/ population 语境 / intervention / comparison /
18
+ outcomes(primary/secondary/risk)/ context / scope / inclusion_criteria / exclusion_criteria / success_condition
14
19
 
15
- ## 规则
20
+ ## 执行规则
21
+ - **Framing 完成前不得输出任何干预建议**——这是第一道科学闸门。
22
+ - 缺失的目标人群、干预变体、对照条件、主 outcome 只能向用户询问(`NEEDS_USER_CONTEXT`),禁止编造默认值。
23
+ - 决策枚举必须取自所选领域的 schema:education 用 `decision_target`(evidence_review / teaching_decision /
24
+ pilot_design / evaluation_design),policy 用 `decision_object`(adopt / modify / terminate / maintain /
25
+ evaluate_impact);不得跨领域混用。
26
+ - Scope(时间范围、地域、研究类型)与纳排标准必须可判定,不能写成"相关研究"这类不可操作表述。
16
27
  - 语言:面向"阅读证据档案的人"(研究者/决策者),中文叙述通顺,禁内部字段名碎语。
17
- - 复杂度门:随 frame 输出建议 S/M/L(由 scripts/complexity_gate.py 复核)。
28
+
29
+ ## 质量门
30
+ - [ ] `frame.json` 通过所选领域的 frame schema。
31
+ - [ ] PICO 五要素齐全,`comparison` 明确(含 "business as usual" 这类显式对照)。
32
+ - [ ] primary outcome 与 secondary/risk outcome 分离,且未把任务表现写成学习效果。
33
+ - [ ] `success_condition` 可被后续 Evaluate 阶段度量。
34
+
35
+ ## 失败模式与回退
36
+ | 失败 | 处理 |
37
+ |---|---|
38
+ | 缺少关键输入 | `NEEDS_USER_CONTEXT`:向用户提问,不猜测、不继续。 |
39
+ | 问题跨多个决策 | 拆分为多个 frame,各自独立成 run;不要在一个 frame 里塞两个决策。 |
40
+ | schema 校验失败 | 修复后重跑该阶段,不得带缺陷推进。 |
41
+
42
+ ## 语言与呈现契约
43
+ 叙述字段为流畅人话;枚举、代号、schema 键只作标签,不进正文。
44
+
45
+ ## 交接说明
46
+ `frame.json` 是 Retrieve 的唯一检索边界来源;下游角色只读该文件,不读原始对话。
@@ -2,13 +2,39 @@
2
2
 
3
3
  ## 目标
4
4
  把 Verdict 转化为最小可验证试点(阶段化使用规则、护栏、停止条件、证据对齐);禁止直接推荐全面部署。
5
+ 干预对象随领域而定:教学干预、政策工具、组织流程或产品策略都属于同一协议。
5
6
 
6
- ## 输入
7
- - final_verdict.json + frame.json
7
+ ## 前置输入
8
+ - `final_verdict.json` + `frame.json`(+ `applicability.json`)
9
+ - 存在经验缺口时:显式、有证据奠基的 KnowledgeGap ID
8
10
 
9
11
  ## 产出
10
- - intervention.json(schemas/intervention.schema.json):phases/ai_usage_policy/
11
- stop_conditions/evidence_alignment。
12
+ - `intervention.json`(`schemas/intervention.schema.json`):phases / ai_usage_policy /
13
+ stop_conditions / evidence_alignment / owner / population,须通过 schema 校验。
12
14
 
13
- ## 规则
14
- - 叙述为人话;枚举/代号只作标签。
15
+ ## 执行规则
16
+ - **无证据奠基不得设计新研究**:设计必须引用显式 KnowledgeGap ID(冻结科学规则)。
17
+ - 每个阶段含:时长、参与人群、使用规则与护栏、责任人、停止条件、决策点。
18
+ - 停止条件必须包含风险/损害停止,不只是效果不达标停止。
19
+ - 叙述为人话;枚举/代号只作标签。
20
+ - 伦理与合规先过 `skill/sub-skills/ethics-review/SKILL.md`(涉及学生数据与对照分组时)。
21
+
22
+ ## 质量门
23
+ - [ ] `intervention.json` 通过 intervention schema。
24
+ - [ ] 每个阶段都有停止条件与决策点,且可在数周内判定。
25
+ - [ ] 证据对齐字段把每条设计选择映射到具体证据或 KnowledgeGap。
26
+ - [ ] 全文未出现"推荐全面部署/正式采用"这类超范围表述。
27
+
28
+ ## 失败模式与回退
29
+ | 失败 | 处理 |
30
+ |---|---|
31
+ | `INSUFFICIENT_EVIDENCE` | 停在评审:安全或损害证据缺失时不得启动试点。 |
32
+ | 无 KnowledgeGap | 不设计研究,改为报告"还需要什么证据"。 |
33
+ | 伦理审查未通过 | 阻断试点,先行修正设计。 |
34
+ | 人群越出适用边界 | 缩小试点人群至支持范围内。 |
35
+
36
+ ## 语言与呈现契约
37
+ 面向决策责任人的方案:谁、何时、做什么、什么条件下停。
38
+
39
+ ## 交接说明
40
+ `intervention.json` 是 Evaluate 的输入;评价方案必须能判定该试点的成功、失败与停止。