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.
- package/CONTRIBUTING.md +105 -0
- package/README.md +142 -75
- package/README.zh-CN.md +73 -30
- package/SKILL.md +397 -131
- package/agents/openai.yaml +4 -0
- package/assets/readme/controlled-execution.svg +34 -0
- package/assets/readme/landing-tour.gif +0 -0
- package/assets/readme/logo.png +0 -0
- package/assets/readme/research-workflow.svg +56 -0
- package/assets/readme/studio-graph.png +0 -0
- package/assets/readme/studio-overview.png +0 -0
- package/assets/readme/studio-reports.png +0 -0
- package/assets/readme/studio-tour.gif +0 -0
- package/autoevolve/config.yaml +17 -0
- package/autoevolve/program.md +25 -0
- package/autoevolve/protected.manifest.yaml +34 -0
- package/benchmarks/adversarial/cases.jsonl +7 -0
- package/benchmarks/evidence-library.json +5268 -0
- package/benchmarks/partitions.json +8 -0
- package/bin/eduevidence.js +2 -1
- package/docs/architecture.md +496 -0
- package/docs/autoresearch-evolution-plan.md +2903 -0
- package/docs/autoresearch-implementation-status.md +101 -0
- package/docs/demo-storyboard.md +20 -0
- package/docs/demo-workplace-ai.md +92 -0
- package/docs/demo.md +32 -0
- package/docs/install-guide.md +150 -0
- package/docs/orchestration-role-model.md +1254 -0
- package/docs/release-closeout/README.md +17 -0
- package/docs/release-closeout/frontend-acceptance.md +23 -0
- package/docs/release-closeout/issues.md +19 -0
- package/docs/release-closeout/verification.md +28 -0
- package/docs/release-contract.md +108 -0
- package/docs/research-studio-guide.zh-CN.md +166 -0
- package/docs/sciverse-api.md +125 -0
- package/eduevidence_cli.py +29 -13
- package/engine/_resources.py +13 -0
- package/engine/autoevolve/__init__.py +3 -0
- package/engine/autoevolve/agent_view.py +167 -0
- package/engine/autoevolve/core.py +357 -0
- package/engine/autoevolve/events.py +11 -0
- package/engine/autoevolve/git_workspace.py +77 -0
- package/engine/autoevolve/projection.py +23 -0
- package/engine/autoevolve/runner.py +413 -0
- package/engine/autoevolve/trust.py +146 -0
- package/engine/autoresearch/__init__.py +6 -0
- package/engine/autoresearch/commit.py +132 -0
- package/engine/autoresearch/contracts.py +126 -0
- package/engine/autoresearch/controller.py +207 -0
- package/engine/autoresearch/events.py +12 -0
- package/engine/autoresearch/gap_priority.py +168 -0
- package/engine/autoresearch/projection.py +30 -0
- package/engine/autoresearch/research_memory.py +59 -0
- package/engine/autoresearch/saturation.py +91 -0
- package/engine/briefs.py +2 -1
- package/engine/capabilities.py +1 -0
- package/engine/contracts.py +3 -1
- package/engine/decision_policy.py +96 -0
- package/engine/evidence_graph.py +14 -10
- package/engine/evidencecore.py +7 -5
- package/engine/gaps.py +132 -73
- package/engine/ids.py +2 -0
- package/engine/judge_pack.py +65 -0
- package/engine/library.py +6 -2
- package/engine/library_builtin.py +3 -1
- package/engine/living.py +36 -5
- package/engine/meta_synthesis.py +3 -1
- package/engine/migration.py +88 -3
- package/engine/orchestration.py +460 -0
- package/engine/paths.py +2 -0
- package/engine/pilot.py +36 -33
- package/engine/project.py +2 -2
- package/engine/research_service.py +113 -0
- package/engine/studio_read_model.py +400 -0
- package/engine/taxonomy.py +211 -0
- package/engine/tribunal.py +44 -33
- package/engine/update.py +1 -0
- package/engine/versions.py +1 -1
- package/engine/worker_result.py +109 -0
- package/engine/workflows.py +70 -0
- package/examples/ai-coding-assistant-evidence/EduEvidence_Report.html +2934 -0
- package/examples/ai-coding-assistant-evidence/artifact_manifest.json +15 -0
- package/examples/ai-coding-assistant-evidence/citation_check.json +79 -0
- package/examples/ai-coding-assistant-evidence/claims.jsonl +12 -0
- package/examples/ai-coding-assistant-evidence/evaluation.json +35 -0
- package/examples/ai-coding-assistant-evidence/evidence.jsonl +12 -0
- package/examples/ai-coding-assistant-evidence/final_verdict.json +107 -0
- package/examples/ai-coding-assistant-evidence/frame.json +48 -0
- package/examples/ai-coding-assistant-evidence/gate_report.json +101 -0
- package/examples/ai-coding-assistant-evidence/intervention.json +51 -0
- package/examples/ai-coding-assistant-evidence/methodology.json +36 -0
- package/examples/ai-coding-assistant-evidence/raw_verdict.json +86 -0
- package/examples/ai-coding-assistant-evidence/report_spec.json +230 -0
- package/examples/ai-coding-assistant-evidence/reports-5themes/EduEvidence_Report_academic.html +2934 -0
- package/examples/ai-coding-assistant-evidence/reports-5themes/EduEvidence_Report_claude.html +2934 -0
- package/examples/ai-coding-assistant-evidence/reports-5themes/EduEvidence_Report_datalab-dark.html +2934 -0
- package/examples/ai-coding-assistant-evidence/reports-5themes/EduEvidence_Report_datalab.html +2934 -0
- package/examples/ai-coding-assistant-evidence/reports-5themes/EduEvidence_Report_presentation.html +2934 -0
- package/examples/ai-coding-assistant-evidence/reports-5themes/report_academic.html +2934 -0
- package/examples/ai-coding-assistant-evidence/reports-5themes/report_claude.html +2934 -0
- package/examples/ai-coding-assistant-evidence/reports-5themes/report_datalab-dark.html +2934 -0
- package/examples/ai-coding-assistant-evidence/reports-5themes/report_datalab.html +2934 -0
- package/examples/ai-coding-assistant-evidence/reports-5themes/report_presentation.html +2934 -0
- package/examples/ai-coding-assistant-evidence/result.json +1457 -0
- package/examples/ai-coding-assistant-evidence/result.zh.json +1457 -0
- package/examples/ai-coding-assistant-evidence/skeptic.json +72 -0
- package/examples/ai-coding-assistant-evidence/sources.jsonl +8 -0
- package/examples/ai-coding-assistant-evidence/verdict.json +107 -0
- package/examples/spaced-retrieval-practice/applicability.json +14 -0
- package/examples/spaced-retrieval-practice/artifact_manifest.json +15 -0
- package/examples/spaced-retrieval-practice/claims.jsonl +3 -0
- package/examples/spaced-retrieval-practice/evidence.jsonl +6 -0
- package/examples/spaced-retrieval-practice/final_verdict.json +93 -0
- package/examples/spaced-retrieval-practice/frame.json +58 -0
- package/examples/spaced-retrieval-practice/gate_report.json +101 -0
- package/examples/spaced-retrieval-practice/methodology.json +78 -0
- package/examples/spaced-retrieval-practice/report_spec.json +212 -0
- package/examples/spaced-retrieval-practice/reports-5themes/EduEvidence_Report_academic.html +2728 -0
- package/examples/spaced-retrieval-practice/reports-5themes/EduEvidence_Report_claude.html +2728 -0
- package/examples/spaced-retrieval-practice/reports-5themes/EduEvidence_Report_datalab-dark.html +2728 -0
- package/examples/spaced-retrieval-practice/reports-5themes/EduEvidence_Report_datalab.html +2728 -0
- package/examples/spaced-retrieval-practice/reports-5themes/EduEvidence_Report_presentation.html +2728 -0
- package/examples/spaced-retrieval-practice/reports-5themes/report_academic.html +2728 -0
- package/examples/spaced-retrieval-practice/reports-5themes/report_claude.html +2728 -0
- package/examples/spaced-retrieval-practice/reports-5themes/report_datalab-dark.html +2728 -0
- package/examples/spaced-retrieval-practice/reports-5themes/report_datalab.html +2728 -0
- package/examples/spaced-retrieval-practice/reports-5themes/report_presentation.html +2728 -0
- package/examples/spaced-retrieval-practice/result.json +942 -0
- package/examples/spaced-retrieval-practice/result.zh.json +942 -0
- package/examples/spaced-retrieval-practice/skeptic.json +70 -0
- package/examples/spaced-retrieval-practice/sources.jsonl +7 -0
- package/examples/spaced-retrieval-practice/verdict.json +93 -0
- package/examples/workplace-ai-assistant/artifact_manifest.json +15 -0
- package/examples/workplace-ai-assistant/claims.jsonl +4 -0
- package/examples/workplace-ai-assistant/evaluation.json +19 -0
- package/examples/workplace-ai-assistant/evidence.jsonl +4 -0
- package/examples/workplace-ai-assistant/evidence_graph.json +444 -0
- package/examples/workplace-ai-assistant/final_verdict.json +78 -0
- package/examples/workplace-ai-assistant/frame.json +41 -0
- package/examples/workplace-ai-assistant/gate_report.json +101 -0
- package/examples/workplace-ai-assistant/intervention.json +27 -0
- package/examples/workplace-ai-assistant/legacy-link-check.json +16 -0
- package/examples/workplace-ai-assistant/methodology.json +60 -0
- package/examples/workplace-ai-assistant/report_spec.json +224 -0
- package/examples/workplace-ai-assistant/reports-5themes/EduEvidence_Report_academic.html +2814 -0
- package/examples/workplace-ai-assistant/reports-5themes/EduEvidence_Report_claude.html +2814 -0
- package/examples/workplace-ai-assistant/reports-5themes/EduEvidence_Report_datalab-dark.html +2814 -0
- package/examples/workplace-ai-assistant/reports-5themes/EduEvidence_Report_datalab.html +2814 -0
- package/examples/workplace-ai-assistant/reports-5themes/EduEvidence_Report_presentation.html +2814 -0
- package/examples/workplace-ai-assistant/reports-5themes/report_academic.html +2814 -0
- package/examples/workplace-ai-assistant/reports-5themes/report_claude.html +2814 -0
- package/examples/workplace-ai-assistant/reports-5themes/report_datalab-dark.html +2814 -0
- package/examples/workplace-ai-assistant/reports-5themes/report_datalab.html +2814 -0
- package/examples/workplace-ai-assistant/reports-5themes/report_presentation.html +2814 -0
- package/examples/workplace-ai-assistant/result.json +615 -0
- package/examples/workplace-ai-assistant/result.zh.json +615 -0
- package/examples/workplace-ai-assistant/search_log.json +19 -0
- package/examples/workplace-ai-assistant/skeptic.json +72 -0
- package/examples/workplace-ai-assistant/sources.jsonl +3 -0
- package/examples/workplace-ai-assistant/validation_result.json +9 -0
- package/examples/workplace-ai-assistant/verdict.json +78 -0
- package/install.sh +7 -7
- package/integrations/agent_mcp.py +2 -2
- package/integrations/orchestration_dispatch.py +146 -0
- package/package.json +46 -3
- package/pyproject.toml +14 -22
- package/references/autoresearch.md +30 -0
- package/references/evaluation-policy.md +24 -0
- package/references/orchestration.md +22 -0
- package/references/report-copy-style.md +67 -0
- package/references/retrieval-compliance.md +75 -0
- package/references/retrieval-protocol.md +20 -0
- package/references/scientific-invariants.md +19 -0
- package/retrieval/audit.py +178 -0
- package/retrieval/fetch.py +96 -0
- package/retrieval/sciverse.py +398 -0
- package/retrieval/search.py +47 -7
- package/schemas/applicability.schema.json +94 -0
- package/schemas/chart-spec.schema.json +10 -3
- package/schemas/evidence.schema.json +316 -43
- package/schemas/fetch-result.schema.json +2 -1
- package/schemas/intervention.schema.json +106 -21
- package/schemas/report-result.schema.json +12 -4
- package/schemas/report-spec.schema.json +98 -100
- package/schemas/skeptic.schema.json +86 -0
- package/schemas/source.schema.json +21 -2
- package/schemas/v2/finding.schema.json +5 -1
- package/schemas/v2/methodology-audit.schema.json +5 -1
- package/schemas/v2/outcome.schema.json +28 -5
- package/schemas/v2/project.schema.json +2 -2
- package/schemas/v2/run.schema.json +1 -1
- package/schemas/v2/study.schema.json +5 -1
- package/schemas/vNext/autoevolve-session.schema.json +34 -0
- package/schemas/vNext/eval-snapshot.schema.json +77 -0
- package/schemas/vNext/execution-plan.schema.json +50 -0
- package/schemas/vNext/gap-priority.schema.json +54 -0
- package/schemas/vNext/negative-search-record.schema.json +68 -0
- package/schemas/vNext/research-iteration.schema.json +87 -0
- package/schemas/vNext/research-strategy.schema.json +62 -0
- package/schemas/vNext/skill-experiment.schema.json +90 -0
- package/schemas/vNext/task-spec.schema.json +156 -0
- package/schemas/vNext/worker-result.schema.json +60 -0
- package/schemas/verdict.schema.json +164 -28
- package/scripts/benchmark_judge.py +2 -2
- package/scripts/benchmark_v3.py +26 -43
- package/scripts/build_esl_artifacts.py +4 -4
- package/scripts/build_evidence_library.py +2 -2
- package/scripts/build_gh_pages.py +98 -0
- package/scripts/build_readme_diagrams.py +72 -0
- package/scripts/build_report_variants.py +101 -0
- package/scripts/build_result.py +74 -9
- package/scripts/check_autoresearch_invariants.py +95 -0
- package/scripts/check_package_parity.py +85 -0
- package/scripts/check_protocol_alignment.py +375 -0
- package/scripts/check_versioned_schemas.py +254 -0
- package/scripts/claim_audit.py +13 -8
- package/scripts/compute_confidence.py +10 -0
- package/scripts/daily_evolve.py +30 -0
- package/scripts/dashboard_server.py +130 -101
- package/scripts/did_regression.py +17 -32
- package/scripts/enrich_projects_human_and_lieflat.py +1 -1
- package/scripts/evidence_score.py +5 -2
- package/scripts/generate_metrics.py +4 -3
- package/scripts/generate_new_projects.py +5 -5
- package/scripts/orchestrator.py +286 -36
- package/scripts/pre_verdict_gate.py +224 -26
- package/scripts/quickstart.py +18 -2
- package/scripts/rebake_all_5themes.py +1 -2
- package/scripts/research_auto_cli.py +475 -0
- package/scripts/run_workspace.py +24 -8
- package/scripts/search_provenance.py +64 -0
- package/scripts/serve_web.py +9 -10
- package/scripts/skill_lint.py +1 -1
- package/scripts/skill_payload.py +81 -0
- package/scripts/test_adversarial_empirical.py +26 -19
- package/scripts/validate_schema.py +46 -2
- package/scripts/vnext_cli.py +133 -0
- package/setup.py +12 -0
- package/skill/agents/evaluation-designer.md +20 -4
- package/skill/agents/evidence-analyst.md +19 -3
- package/skill/agents/evidence-judge.md +50 -2
- package/skill/agents/evidence-retriever.md +20 -3
- package/skill/agents/intervention-designer.md +20 -4
- package/skill/agents/method-reviewer.md +18 -2
- package/skill/agents/{education-planner.md → research-planner.md} +19 -3
- package/skill/agents/skeptic.md +18 -2
- package/skill/roles/registry.yaml +45 -0
- package/skill/sub-skills/aihot-trend-analysis/SKILL.md +28 -9
- package/skill/sub-skills/contradiction-analysis/SKILL.md +31 -11
- package/skill/sub-skills/data-analysis/SKILL.md +34 -15
- package/skill/sub-skills/ethics-review/SKILL.md +33 -10
- package/skill/sub-skills/evidence-extraction/SKILL.md +29 -11
- package/skill/sub-skills/evidence-review/SKILL.md +31 -12
- package/skill/sub-skills/gap-analysis/SKILL.md +31 -9
- package/skill/sub-skills/literature-review/SKILL.md +35 -14
- package/skill/sub-skills/methodology-audit/SKILL.md +29 -12
- package/skill/sub-skills/report-generation/SKILL.md +40 -6
- package/skill/sub-skills/research-planning/SKILL.md +41 -14
- package/skill/sub-skills/study-design/SKILL.md +30 -9
- package/skill/task-briefs/adjudicate.md +32 -7
- package/skill/task-briefs/applicability.md +38 -0
- package/skill/task-briefs/audit.md +32 -7
- package/skill/task-briefs/challenge.md +34 -5
- package/skill/task-briefs/evaluate.md +30 -5
- package/skill/task-briefs/extract.md +31 -8
- package/skill/task-briefs/frame.md +39 -10
- package/skill/task-briefs/intervene.md +32 -6
- package/skill/task-briefs/present.md +32 -8
- package/skill/task-briefs/projection.md +37 -0
- package/skill/task-briefs/retrieve.md +36 -6
- package/skill/workflows/decision-and-pilot.md +85 -0
- package/skill/workflows/evaluate-and-update.md +93 -0
- package/skill/workflows/evidence-review.md +117 -0
- package/visualization/eduevidence-report/assets/base.css +2 -2
- package/visualization/eduevidence-report/assets/reader.css +752 -0
- package/visualization/eduevidence-report/assets/reader.js +132 -0
- package/visualization/eduevidence-report/references/chart-selection-catalog.md +109 -0
- package/visualization/eduevidence-report/references/lieflat-composition.md +3 -1
- package/visualization/eduevidence-report/scripts/build_figures.py +25 -3
- package/visualization/eduevidence-report/scripts/build_infographics.py +5 -1
- package/visualization/eduevidence-report/scripts/build_report.py +561 -121
- package/visualization/eduevidence-report/scripts/charts_data.py +2 -0
- package/visualization/eduevidence-report/scripts/lieflat_engine.py +371 -136
- package/visualization/eduevidence-report/scripts/zh_labels.py +80 -1
- package/visualization/eduevidence-report/themes/academic.css +1 -1
- package/visualization/eduevidence-report/themes/claude.css +1 -1
- package/visualization/eduevidence-report/themes/datalab-dark.css +2 -2
- package/visualization/eduevidence-report/themes/datalab.css +2 -2
- package/visualization/eduevidence-report/themes/presentation.css +2 -2
- package/web/README.md +18 -0
- package/web/architecture.html +14885 -0
- package/web/index.html +53 -0
- package/web/studio/THIRD_PARTY_LICENSES.txt +146 -0
- package/web/studio/assets/index-B8tkF44Q.css +1 -0
- package/web/studio/assets/index-CQ6Keoyc.js +230 -0
- package/web/studio/config.json +1 -0
- package/web/studio/index.html +14 -0
- package/engine/__pycache__/__init__.cpython-312.pyc +0 -0
- package/engine/__pycache__/analysis.cpython-312.pyc +0 -0
- package/engine/__pycache__/bias.cpython-312.pyc +0 -0
- package/engine/__pycache__/briefs.cpython-312.pyc +0 -0
- package/engine/__pycache__/capabilities.cpython-312.pyc +0 -0
- package/engine/__pycache__/citation_check.cpython-312.pyc +0 -0
- package/engine/__pycache__/contracts.cpython-312.pyc +0 -0
- package/engine/__pycache__/datasets.cpython-312.pyc +0 -0
- package/engine/__pycache__/events.cpython-312.pyc +0 -0
- package/engine/__pycache__/evidence_graph.cpython-312.pyc +0 -0
- package/engine/__pycache__/evidence_review.cpython-312.pyc +0 -0
- package/engine/__pycache__/evidencecore.cpython-312.pyc +0 -0
- package/engine/__pycache__/gap_lens.cpython-312.pyc +0 -0
- package/engine/__pycache__/gaps.cpython-312.pyc +0 -0
- package/engine/__pycache__/graph_store.cpython-312.pyc +0 -0
- package/engine/__pycache__/graph_validate.cpython-312.pyc +0 -0
- package/engine/__pycache__/ids.cpython-312.pyc +0 -0
- package/engine/__pycache__/library.cpython-312.pyc +0 -0
- package/engine/__pycache__/library_builtin.cpython-312.pyc +0 -0
- package/engine/__pycache__/living.cpython-312.pyc +0 -0
- package/engine/__pycache__/log.cpython-312.pyc +0 -0
- package/engine/__pycache__/meta_analysis.cpython-312.pyc +0 -0
- package/engine/__pycache__/meta_synthesis.cpython-312.pyc +0 -0
- package/engine/__pycache__/migration.cpython-312.pyc +0 -0
- package/engine/__pycache__/mode_router.cpython-312.pyc +0 -0
- package/engine/__pycache__/paths.cpython-312.pyc +0 -0
- package/engine/__pycache__/pilot.cpython-312.pyc +0 -0
- package/engine/__pycache__/planner.cpython-312.pyc +0 -0
- package/engine/__pycache__/project.cpython-312.pyc +0 -0
- package/engine/__pycache__/projections.cpython-312.pyc +0 -0
- package/engine/__pycache__/robustness.cpython-312.pyc +0 -0
- package/engine/__pycache__/run.cpython-312.pyc +0 -0
- package/engine/__pycache__/semantics.cpython-312.pyc +0 -0
- package/engine/__pycache__/study_design.cpython-312.pyc +0 -0
- package/engine/__pycache__/synthesis.cpython-312.pyc +0 -0
- package/engine/__pycache__/tribunal.cpython-312.pyc +0 -0
- package/engine/__pycache__/update.cpython-312.pyc +0 -0
- package/engine/__pycache__/versions.cpython-312.pyc +0 -0
- package/integrations/__pycache__/__init__.cpython-312.pyc +0 -0
- package/integrations/__pycache__/agent_mcp.cpython-312.pyc +0 -0
- package/integrations/__pycache__/smart_web_fetch.cpython-312.pyc +0 -0
- package/retrieval/__pycache__/__init__.cpython-312.pyc +0 -0
- package/retrieval/__pycache__/corpus_store.cpython-312.pyc +0 -0
- package/retrieval/__pycache__/dedupe.cpython-312.pyc +0 -0
- package/retrieval/__pycache__/failures.cpython-312.pyc +0 -0
- package/retrieval/__pycache__/fetch.cpython-312.pyc +0 -0
- package/retrieval/__pycache__/search.cpython-312.pyc +0 -0
- package/retrieval/__pycache__/source.cpython-312.pyc +0 -0
- package/retrieval/__pycache__/validate.cpython-312.pyc +0 -0
- package/scripts/__pycache__/__init__.cpython-312.pyc +0 -0
- package/scripts/__pycache__/benchmark.cpython-312.pyc +0 -0
- package/scripts/__pycache__/benchmark_evaluator.cpython-312.pyc +0 -0
- package/scripts/__pycache__/benchmark_judge.cpython-312.pyc +0 -0
- package/scripts/__pycache__/benchmark_routing.cpython-312.pyc +0 -0
- package/scripts/__pycache__/benchmark_v2.cpython-312.pyc +0 -0
- package/scripts/__pycache__/benchmark_v3.cpython-312.pyc +0 -0
- package/scripts/__pycache__/build_result.cpython-312.pyc +0 -0
- package/scripts/__pycache__/claim_audit.cpython-312.pyc +0 -0
- package/scripts/__pycache__/complexity_gate.cpython-312.pyc +0 -0
- package/scripts/__pycache__/compute_confidence.cpython-312.pyc +0 -0
- package/scripts/__pycache__/dashboard_server.cpython-312.pyc +0 -0
- package/scripts/__pycache__/did_regression.cpython-312.pyc +0 -0
- package/scripts/__pycache__/effect_calculator.cpython-312.pyc +0 -0
- package/scripts/__pycache__/evidence_matrix.cpython-312.pyc +0 -0
- package/scripts/__pycache__/evidence_score.cpython-312.pyc +0 -0
- package/scripts/__pycache__/evidence_semantics.cpython-312.pyc +0 -0
- package/scripts/__pycache__/fetch_benchmark.cpython-312.pyc +0 -0
- package/scripts/__pycache__/lint_report_layout.cpython-312.pyc +0 -0
- package/scripts/__pycache__/orchestrator.cpython-312.pyc +0 -0
- package/scripts/__pycache__/pre_verdict_gate.cpython-312.pyc +0 -0
- package/scripts/__pycache__/recompute_demo_quality.cpython-312.pyc +0 -0
- package/scripts/__pycache__/render_report.cpython-312.pyc +0 -0
- package/scripts/__pycache__/render_report_html.cpython-312.pyc +0 -0
- package/scripts/__pycache__/run_workspace.cpython-312.pyc +0 -0
- package/scripts/__pycache__/skill_lint.cpython-312.pyc +0 -0
- package/scripts/__pycache__/startup_probe.cpython-312.pyc +0 -0
- package/scripts/__pycache__/sync_killer_demo_report.cpython-312.pyc +0 -0
- package/scripts/__pycache__/test_adversarial_empirical.cpython-312-pytest-9.0.2.pyc +0 -0
- package/scripts/__pycache__/test_adversarial_empirical.cpython-312-pytest-9.1.1.pyc +0 -0
- package/scripts/__pycache__/validate_schema.cpython-312.pyc +0 -0
- package/visualization/eduevidence-report/scripts/__pycache__/adapter_contract.cpython-312.pyc +0 -0
- package/visualization/eduevidence-report/scripts/__pycache__/build_artifact_manifest.cpython-312.pyc +0 -0
- package/visualization/eduevidence-report/scripts/__pycache__/build_charts.cpython-312.pyc +0 -0
- package/visualization/eduevidence-report/scripts/__pycache__/build_figures.cpython-312.pyc +0 -0
- package/visualization/eduevidence-report/scripts/__pycache__/build_infographics.cpython-312.pyc +0 -0
- package/visualization/eduevidence-report/scripts/__pycache__/build_report.cpython-312.pyc +0 -0
- package/visualization/eduevidence-report/scripts/__pycache__/charts_data.cpython-312.pyc +0 -0
- package/visualization/eduevidence-report/scripts/__pycache__/lieflat_engine.cpython-312.pyc +0 -0
- package/visualization/eduevidence-report/scripts/__pycache__/zh_labels.cpython-312.pyc +0 -0
package/CONTRIBUTING.md
ADDED
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
# Contributing to EduEvidence
|
|
2
|
+
|
|
3
|
+
EduEvidence 是一个**证据驱动的决策引擎**:它的产出要能被第三方复核。因此本仓库的贡献规则有一条主线——**契约先行**。每个科学概念都在多处声明(协议、能力、角色、简报、子技能、分包),任何一处漂移都会让结论失去可追溯性。
|
|
4
|
+
|
|
5
|
+
## 1. 环境准备
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
git clone https://github.com/37chengshan/eduevidence.git
|
|
9
|
+
cd eduevidence
|
|
10
|
+
bash install.sh # venv + 依赖 + 自检 + 测试
|
|
11
|
+
# 或最小安装
|
|
12
|
+
python3 -m venv .venv && .venv/bin/pip install -e '.[dev]'
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
要求 Python ≥ 3.10;内核(`engine/`、`retrieval/`)零第三方依赖,测试需要 `pytest`。Node 只在构建 Research Studio 前端时需要。
|
|
16
|
+
|
|
17
|
+
## 2. 提交前必须跑的门
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
python scripts/check_version_consistency.py # 版本口径单一权威
|
|
21
|
+
python scripts/generate_metrics.py --check # 文档数字与仓库一致
|
|
22
|
+
python scripts/skill_lint.py # Skill 结构完整
|
|
23
|
+
python scripts/check_protocol_alignment.py # 协议五方对齐
|
|
24
|
+
ruff check --select E9,F63,F7,F82 .
|
|
25
|
+
python -m pytest -q
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
CI(`.github/workflows/ci.yml`)会重复执行上述门,外加 wheel 隔离安装冒烟、schema-smoke 与提交包构建。本地全绿是提交的最低门槛。
|
|
29
|
+
|
|
30
|
+
## 3. 科学不变量(不可协商)
|
|
31
|
+
|
|
32
|
+
- **任务表现 ≠ 学习效果**:任何把任务完成度当作学习收益的写法都会被门拒绝。
|
|
33
|
+
- **snippet ≠ 证据**:检索片段与摘要只是发现线索,只有抓取并通过校验门的正文可以抽取。
|
|
34
|
+
- **缺证据 ≠ 零效应**:证据不足时输出 `INSUFFICIENT EVIDENCE`,不得换算成"无效"。
|
|
35
|
+
- **无证据奠基不得设计新研究**:研究设计必须引用显式的 KnowledgeGap ID。
|
|
36
|
+
- **证据 append-only**:修订产生新 revision 与新 decision snapshot,绝不覆盖历史。
|
|
37
|
+
- **写入者唯一**:图修订只能由规范写入者提交,worker 不得直接写图。
|
|
38
|
+
|
|
39
|
+
详见 `references/scientific-invariants.md`,由 `scripts/check_autoresearch_invariants.py` 强制。
|
|
40
|
+
|
|
41
|
+
## 4. 如何新增一项能力(capability)
|
|
42
|
+
|
|
43
|
+
能力是"协议能做什么"的最小单元,它与模型、CLI、Agent 数量无关。新增一项能力需要同时落地四处,缺一不可:
|
|
44
|
+
|
|
45
|
+
1. `engine/capabilities.py`:用 `_register(...)` 注册 `capability_id`、输入/输出契约、是否可确定性本地执行,以及(如有)科学门。
|
|
46
|
+
2. `skill/roles/registry.yaml`:把能力分配给承担它的角色(`capabilities:` 列表)。
|
|
47
|
+
3. `skill/agents/<role>.md`:在 frontmatter 的 `capabilities` 中同步,并在正文写清产出契约。
|
|
48
|
+
4. `skill/sub-skills/<name>/SKILL.md`:frontmatter 写 `capability:`,正文按 recipe 模板给出 Inputs / Process / Output Contract / Quality Gates / Anti-Patterns。
|
|
49
|
+
|
|
50
|
+
跑 `python scripts/check_protocol_alignment.py` 验证五方一致。
|
|
51
|
+
|
|
52
|
+
## 5. 如何新增一个子技能(sub-skill)
|
|
53
|
+
|
|
54
|
+
子技能是内部能力配方,不是新的用户入口。模板:
|
|
55
|
+
|
|
56
|
+
```markdown
|
|
57
|
+
---
|
|
58
|
+
name: <dir-name> # 必须与目录名一致
|
|
59
|
+
description: "..."
|
|
60
|
+
capability: <capability_id> # 映射到 engine/capabilities.py
|
|
61
|
+
---
|
|
62
|
+
|
|
63
|
+
# <Title>
|
|
64
|
+
## When to Use
|
|
65
|
+
## Inputs
|
|
66
|
+
## Process
|
|
67
|
+
## Output Contract
|
|
68
|
+
## Quality Gates
|
|
69
|
+
## Anti-Patterns
|
|
70
|
+
## Worked Example
|
|
71
|
+
## References
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
## 6. 如何新增一个角色(role)
|
|
75
|
+
|
|
76
|
+
角色是责任单元,不是运行时 Agent。新增角色需要:`skill/roles/registry.yaml`(stage / capability / critical_path)、`skill/agents/<role>.md`(frontmatter 用 `role_id` / `capabilities` / `output_contracts` / `recommended_reasoning`,**不得写死模型或 CLI 名**)、`integrations/agent_mcp.py` 的 `ROLE_REQUIREMENTS`(只写能力等级)。
|
|
77
|
+
|
|
78
|
+
需要独立性的角色显式声明:`independence_required: different-model-family`(如 skeptic)或 `role-separation`(如 method-reviewer)。
|
|
79
|
+
|
|
80
|
+
## 7. 如何新增一个检索通道
|
|
81
|
+
|
|
82
|
+
1. 在 `retrieval/` 下实现 provider(stdlib-only、超时、定型错误,不抛异常到管道)。
|
|
83
|
+
2. 零配置通道进 `zero_config_academic` / `zero_config_web`;需 key 的学术通道进 `academic_key_providers`,并实现 `is_available()`。
|
|
84
|
+
3. 命中结果统一为 `SearchHit`;沿用 `doc_id` / `chunk_id` / `offset` 表达定位(如适用)。
|
|
85
|
+
4. 在 `docs/` 记录端点契约,在 `references/retrieval-compliance.md` 补齐配额与限制,在 `tests/` 用 mock HTTP 覆盖成功与各类失败。
|
|
86
|
+
|
|
87
|
+
## 8. 证据纪律与文档
|
|
88
|
+
|
|
89
|
+
- 示例与演示必须如实标注 `data_origin`(manual_curated / synthetic / hybrid);不得把手工整理文献说成模型运行结果。
|
|
90
|
+
- 数字口径以 `docs/metrics.json` 为准,文档中不硬编码会漂移的计数。
|
|
91
|
+
- 内部文档用中文,`SKILL.md` 保持英文;协议语义(九步、四态、Projection 边界)不因文档改写而改变。
|
|
92
|
+
|
|
93
|
+
## 9. PR 检查表
|
|
94
|
+
|
|
95
|
+
- [ ] 五个门本地全绿(版本 / 指标 / skill_lint / 协议对齐 / 测试)。
|
|
96
|
+
- [ ] 新增或改动的契约在五方(协议 / 能力 / 角色 / 简报 / 子技能)一致。
|
|
97
|
+
- [ ] 未引入硬编码的模型名、CLI 名或密钥。
|
|
98
|
+
- [ ] 科学不变量未被弱化;如有例外,在 PR 说明中显式论证。
|
|
99
|
+
- [ ] 文档、CHANGELOG、`docs/plans/STATUS.md` 同步更新。
|
|
100
|
+
- [ ] 未提交本地运行状态、私有数据或凭据。
|
|
101
|
+
|
|
102
|
+
## 10. 行为准则
|
|
103
|
+
|
|
104
|
+
讨论以证据为准:提出结论时给出可核验来源;被反驳时更新结论而不是更新措辞。对他人贡献的评审聚焦"证据是否支撑结论",不针对作者。
|
|
105
|
+
|
package/README.md
CHANGED
|
@@ -1,18 +1,35 @@
|
|
|
1
|
+
<p align="center">
|
|
2
|
+
<img src="assets/readme/logo.png" width="88" height="88" alt="EduEvidence logo" />
|
|
3
|
+
</p>
|
|
4
|
+
|
|
1
5
|
# EduEvidence
|
|
2
6
|
|
|
3
7
|
> **🌐 English | [中文](README.zh-CN.md)**
|
|
4
8
|
|
|
5
|
-
## EduEvidence Research Engine — Evidence
|
|
9
|
+
## EduEvidence Research Engine — Evidence Research & Decision Skill
|
|
10
|
+
|
|
11
|
+
> **From Research Questions to Evidence-Based Decisions.** · Current release **6.2.0**
|
|
6
12
|
|
|
7
|
-
>
|
|
13
|
+
> **▶ Live demo:** [Landing](https://37chengshan.github.io/eduevidence/) · [Research Studio](https://37chengshan.github.io/eduevidence/studio/) · [Deep Research comparison](https://37chengshan.github.io/eduevidence/comparison.html)
|
|
8
14
|
|
|
9
15
|
EduEvidence is delivered as an **AI Agent Skill**; inside the Skill operates
|
|
10
16
|
the **EduEvidence Research Engine** — a persistent, auditable engine that
|
|
11
|
-
turns
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
17
|
+
turns a decision question into an evidence-grounded answer. It is **multi-domain**:
|
|
18
|
+
the domain registry (`domains/manifest.json`) ships **education** and **policy**
|
|
19
|
+
today, each declaring its own frame schema, outcome taxonomy and methodology
|
|
20
|
+
checklist, so one nine-stage protocol serves education and applied social science
|
|
21
|
+
work without forking the engine.
|
|
22
|
+
|
|
23
|
+
- **Three public workflows** — **Evidence Review**, **Decision & Pilot**, and
|
|
24
|
+
**Evaluate & Update**. A full research cycle connects existing evidence,
|
|
25
|
+
grounded knowledge gaps, a study design, new data and a revised decision.
|
|
26
|
+
- **Multi-domain by contract** — `education` and `policy` are registered domains;
|
|
27
|
+
a run validates against its own domain's frame schema and outcome taxonomy
|
|
28
|
+
(`engine/taxonomy.py` is the single authority; unknown tokens fail closed).
|
|
29
|
+
- **Retrieval that stays traceable** — zero-config channels (OpenAlex / Semantic
|
|
30
|
+
Scholar / CrossRef / AIHot / AgentSearch / DuckDuckGo) plus key-based channels:
|
|
31
|
+
**Sciverse** (citation-grade academic retrieval with full-text locators),
|
|
32
|
+
Tavily and Brave. A lookup snippet is a locator, never evidence.
|
|
16
33
|
- **Project Workspace + Evidence Graph** — long-lived Projects with versioned,
|
|
17
34
|
immutable graph revisions; `result.json`/HTML/Markdown are projections, not
|
|
18
35
|
fact stores.
|
|
@@ -21,18 +38,38 @@ turns education questions into evidence-grounded decisions.
|
|
|
21
38
|
- **Frozen scientific rule** — *No new study design without evidence
|
|
22
39
|
grounding*: designs must reference explicit, evidence-grounded Knowledge
|
|
23
40
|
Gap IDs.
|
|
24
|
-
- ⚖️
|
|
41
|
+
- ⚖️ Inspect what the evidence supports, what it cannot support, who it applies to, and how to pilot and verify it.
|
|
25
42
|
- 🧪 Built on real research (examples include CHI 2023 / PNAS 2025 / ACL 2025 / Springer 2024 empirical evidence); no claims without sources.
|
|
26
|
-
- 🚦 The output is not a binary "allow/forbid" answer but a four-state decision — **ADOPT / PILOT / REJECT / INSUFFICIENT EVIDENCE** — plus an actionable
|
|
43
|
+
- 🚦 The output is not a binary "allow/forbid" answer but a four-state decision — **ADOPT / PILOT / REJECT / INSUFFICIENT EVIDENCE** — plus an actionable intervention and evaluation plan.
|
|
27
44
|
- 🧩 The engine is an internal capability architecture — not a standalone
|
|
28
45
|
server/app; Native Core runs on Python stdlib only and never requires
|
|
29
46
|
Agent MCP or a daemon.
|
|
30
47
|
|
|
31
|
-

|
|
49
|
+
|
|
50
|
+
*Recorded from the actual local Studio — no mockups: overview → report library → five report identities. Below, the introduction page walkthrough:*
|
|
51
|
+
|
|
52
|
+

|
|
32
53
|
|
|
33
54
|
---
|
|
34
55
|
|
|
35
|
-
## Quick
|
|
56
|
+
## Quick Start
|
|
57
|
+
|
|
58
|
+
**Fastest path — read a finished report (no install):**
|
|
59
|
+
|
|
60
|
+
```bash
|
|
61
|
+
open examples/ai-coding-assistant-evidence/EduEvidence_Report.html
|
|
62
|
+
open examples/spaced-retrieval-practice/EduEvidence_Report.html # real Sciverse run
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
**Look at the console (Python 3.10+, Node not required):**
|
|
66
|
+
|
|
67
|
+
```bash
|
|
68
|
+
python3 scripts/dashboard_server.py --host 127.0.0.1 --port 8765
|
|
69
|
+
# browser: http://127.0.0.1:8765/studio/ (read-only research console)
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
**Install it:**
|
|
36
73
|
|
|
37
74
|
**npm (recommended for Skill install)**
|
|
38
75
|
|
|
@@ -54,7 +91,7 @@ bash install.sh # one-click: venv + deps + self-check + tests
|
|
|
54
91
|
Open the example report right away:
|
|
55
92
|
|
|
56
93
|
```bash
|
|
57
|
-
open examples/ai-coding-assistant/EduEvidence_Report.html
|
|
94
|
+
open examples/ai-coding-assistant-evidence/EduEvidence_Report.html
|
|
58
95
|
```
|
|
59
96
|
|
|
60
97
|
> Requires Python 3.10+; the core has zero third-party dependencies. `pip install matplotlib` is optional for academic-figure PNG/PDF export.
|
|
@@ -129,7 +166,7 @@ runnable + sample report renderable).
|
|
|
129
166
|
|
|
130
167
|
## What Problem We Solve
|
|
131
168
|
|
|
132
|
-
A typical AI answers
|
|
169
|
+
A typical AI answers a decision question like this:
|
|
133
170
|
|
|
134
171
|
```text
|
|
135
172
|
Question → Search a few sources → Summarize opinions → Give advice
|
|
@@ -138,15 +175,15 @@ Question → Search a few sources → Summarize opinions → Give advice
|
|
|
138
175
|
EduEvidence does this instead:
|
|
139
176
|
|
|
140
177
|
```text
|
|
141
|
-
|
|
142
|
-
→
|
|
178
|
+
Decision question (education or applied social science)
|
|
179
|
+
→ Domain Research Framing (learner or decision object / intervention / comparison / outcomes / context)
|
|
143
180
|
→ Literature & evidence retrieval (supporting evidence + independent counter-evidence)
|
|
144
181
|
→ Claim-Level Evidence Extraction
|
|
145
182
|
→ Skeptic challenge protocol + Method Reviewer audit
|
|
146
183
|
→ Evidence Tribunal
|
|
147
184
|
→ Applicability Analysis
|
|
148
185
|
→ Decision: ADOPT / PILOT / REJECT / INSUFFICIENT EVIDENCE
|
|
149
|
-
→
|
|
186
|
+
→ Intervention (minimum viable pilot)
|
|
150
187
|
→ Evaluation Plan
|
|
151
188
|
```
|
|
152
189
|
|
|
@@ -155,43 +192,44 @@ It answers six questions:
|
|
|
155
192
|
1. What does the current evidence actually support?
|
|
156
193
|
2. What can the current evidence not support?
|
|
157
194
|
3. Why do different studies reach different results?
|
|
158
|
-
4. Which
|
|
159
|
-
5. If an institution adopts it, how
|
|
195
|
+
4. Which population, in which setting, under which conditions does it apply to?
|
|
196
|
+
5. If an institution adopts it, how should it be rolled out with low risk?
|
|
160
197
|
6. How to verify whether it actually works after implementation?
|
|
161
198
|
|
|
162
|
-
## 30-second
|
|
199
|
+
## 30-second tour
|
|
163
200
|
|
|
164
|
-
>
|
|
201
|
+
> Flagship question: **Should first-year C programming students be allowed to use generative AI coding assistants?**
|
|
165
202
|
|
|
166
203
|
| Time | Stage |
|
|
167
204
|
|---|---|
|
|
168
|
-
| 0–20s | Ask the
|
|
169
|
-
| 20–45s |
|
|
205
|
+
| 0–20s | Ask the decision question |
|
|
206
|
+
| 20–45s | Research Frame (domain-specific schema) |
|
|
170
207
|
| 45–75s | Evidence Retrieval |
|
|
171
208
|
| 75–110s | Evidence Matrix |
|
|
172
209
|
| 110–135s | Methodology + Skeptic |
|
|
173
210
|
| 135–155s | Evidence Tribunal |
|
|
174
|
-
| 155–170s |
|
|
211
|
+
| 155–170s | Intervention + Evaluation |
|
|
175
212
|
| 170–180s | Benchmark |
|
|
176
213
|
|
|
177
|
-
Full example pack: [`examples/ai-coding-assistant/`](examples/ai-coding-assistant/).
|
|
214
|
+
Full example pack: [`examples/ai-coding-assistant-evidence/`](examples/ai-coding-assistant-evidence/).
|
|
178
215
|
|
|
179
|
-
## Why
|
|
216
|
+
## Why Evidence Decisions Are Hard
|
|
180
217
|
|
|
181
|
-
|
|
218
|
+
Evidence across education and applied social science shares the same natural pitfalls. EduEvidence's core contribution is standardizing the countermeasures:
|
|
182
219
|
|
|
183
220
|
- **Outcome Separation**: `faster task completion ≠ actually learning to program`; `short-term score gains ≠ long-term retention`; `completing tasks with AI ≠ transferring skills without AI`.
|
|
184
221
|
- **Counter-Evidence Search**: it does not just verify the user's initial assumption — it independently searches for null / negative / contradictory evidence, AI dependency, novelty effects, self-selection bias, and more.
|
|
185
222
|
- **Evidence Tribunal**: instead of listing pros and cons, it judges which studies are more credible, whether conflicts come from samples / measurement / course / tool / design, and what can be concluded so far.
|
|
186
|
-
- **Evidence-to-Action Bridge**: it does not stop at "research shows…" — it connects to applicability, the
|
|
223
|
+
- **Evidence-to-Action Bridge**: it does not stop at "research shows…" — it connects to applicability, the decision, pilot intervention, and evaluation design.
|
|
187
224
|
|
|
188
225
|
## How EduEvidence Works
|
|
189
226
|
|
|
190
227
|
```text
|
|
191
228
|
┌─────────────────────────────────────┐
|
|
192
229
|
│ EduEvidence │
|
|
193
|
-
│
|
|
194
|
-
│
|
|
230
|
+
│ domain contracts (education / │
|
|
231
|
+
│ policy) + decision + intervention │
|
|
232
|
+
│ + evaluation │
|
|
195
233
|
└────────────────┬────────────────────┘
|
|
196
234
|
│
|
|
197
235
|
┌────────────────▼────────────────────┐
|
|
@@ -209,22 +247,24 @@ Education evidence has natural pitfalls. EduEvidence's core contribution is stan
|
|
|
209
247
|
The 9-step workflow:
|
|
210
248
|
|
|
211
249
|
```text
|
|
212
|
-
1. Frame Build the
|
|
250
|
+
1. Frame Build the domain frame (education frame / policy frame)
|
|
213
251
|
2. Retrieve Retrieve literature & evidence (support + independent counter-evidence)
|
|
214
252
|
3. Extract Extract claim-level evidence (bound to outcomes)
|
|
215
253
|
4. Challenge Skeptic protocol (fixed 9 checks)
|
|
216
254
|
5. Audit Method Reviewer audit (15-item checklist)
|
|
217
255
|
6. Adjudicate Evidence Tribunal (Evidence Matrix + Verdict)
|
|
218
256
|
7. Applicability Applicability analysis
|
|
219
|
-
8. Intervene
|
|
257
|
+
8. Intervene Intervention design (minimum viable pilot)
|
|
220
258
|
9. Evaluate Evaluation Plan design
|
|
221
259
|
```
|
|
222
260
|
|
|
223
|
-
Every step is validated against JSON Schemas (`schemas/`), deterministic logic lives in `scripts/`, and the
|
|
261
|
+
Every step is validated against JSON Schemas (`schemas/`), deterministic logic lives in `scripts/`, and the methodology is documented independently in `references/` (21 documents: evidence quality, skeptic protocol, tribunal policy, WWC/GRADE standards, social-science pitfalls, retrieval protocol, report copy style …; counts in `docs/metrics.json`).
|
|
224
262
|
|
|
225
263
|
## Outcome Separation
|
|
226
264
|
|
|
227
|
-
|
|
265
|
+
Outcome tokens are domain-owned. The education taxonomy declares **20 tokens** in four categories (`domains/education/outcome_taxonomy.json`); the policy domain declares its own categories and tokens (`domains/policy/outcome_taxonomy.json`). `engine/taxonomy.py` is the only reader: an unknown token or unregistered domain **fails closed** instead of being silently classified as a learning outcome.
|
|
266
|
+
|
|
267
|
+
The education set (`references/outcome-taxonomy.md`):
|
|
228
268
|
|
|
229
269
|
```text
|
|
230
270
|
Learning: Knowledge Gain / Concept Understanding / Retention / Transfer / Independent Problem Solving
|
|
@@ -233,25 +273,25 @@ Process: Engagement / Motivation / Cognitive Load / Help-Seeking / Metacogni
|
|
|
233
273
|
Risk: AI Dependency / Over-reliance / Reduced Effort / Reduced Transfer / Academic Integrity Risk / False Confidence
|
|
234
274
|
```
|
|
235
275
|
|
|
236
|
-
The demo's highlight: in Kazemitabaar et al. (CHI 2023), the AI code assistant raised task completion by 1.15× and correctness by 1.8×, but the one-week retention test showed no significant difference — **task performance ≠ learning**.
|
|
276
|
+
The flagship demo's highlight: in Kazemitabaar et al. (CHI 2023), the AI code assistant raised task completion by 1.15× and correctness by 1.8×, but the one-week retention test showed no significant difference — **task performance ≠ learning**.
|
|
237
277
|
|
|
238
278
|
## Evidence Tribunal
|
|
239
279
|
|
|
240
|
-
`references/tribunal-policy.md` defines the adjudication rules: input = Frame + Evidence Matrix + Skeptic Findings + Method Reviews; output =
|
|
280
|
+
`references/tribunal-policy.md` defines the adjudication rules: input = Frame + Evidence Matrix + Skeptic Findings + Method Reviews; output = the domain Verdict (`schemas/verdict.schema.json`), including:
|
|
241
281
|
|
|
242
282
|
- supported / uncertain / contradicted claims
|
|
243
283
|
- conflict-source analysis (sample / measurement / course / tool / design)
|
|
244
284
|
- Can Claim / Cannot Claim boundaries
|
|
245
285
|
- four-state decision + Confidence (rule-based, not model-generated freely)
|
|
246
286
|
|
|
247
|
-

|
|
248
288
|
|
|
249
289
|
## From Evidence to Action
|
|
250
290
|
|
|
251
|
-
Evidence must connect to the real classroom (`references/applicability-policy.md`, `intervention-design.md`, `evaluation-design.md`):
|
|
291
|
+
Evidence must connect to the real setting — a classroom, a support team, a policy roll-out (`references/applicability-policy.md`, `intervention-design.md`, `evaluation-design.md`):
|
|
252
292
|
|
|
253
|
-
- **Applicability**: For whom?
|
|
254
|
-
- **Intervention**: always a "minimum viable pilot", never direct full deployment; includes AI usage rules,
|
|
293
|
+
- **Applicability**: For whom? In which setting? For which outcome? Under what conditions? With what AI usage policy?
|
|
294
|
+
- **Intervention**: always a "minimum viable pilot", never direct full deployment; includes AI usage rules, staff/user roles, reflection requirements, and stop conditions.
|
|
255
295
|
- **Evaluation**: every PILOT/ADOPT recommendation must come with an evaluation plan; distinguishes baseline / post-test / retention / transfer, and task-performance vs learning metrics.
|
|
256
296
|
|
|
257
297
|
## Benchmark
|
|
@@ -276,47 +316,51 @@ Key metrics: Citation Support Precision / Unsupported Claim Rate / Contradiction
|
|
|
276
316
|
|
|
277
317
|
> **Should first-year C programming students be allowed to use generative AI coding assistants?**
|
|
278
318
|
|
|
279
|
-
`examples/ai-coding-assistant/` shows the full path from question to decision:
|
|
319
|
+
`examples/ai-coding-assistant-evidence/` shows the full path from question to decision:
|
|
280
320
|
|
|
281
|
-
- **Evidence** (
|
|
321
|
+
- **Evidence** (12 findings from 8 sources): task-performance gains (Kazemitabaar 2023), unguarded access harming independent exam performance by −17% (Bastani 2025, PNAS), guardrails eliminating the negative effect (Bastani 2025), formative-feedback writing evidence (Marzuki 2024).
|
|
282
322
|
- **Decision**: **PILOT** — task-performance evidence is strong, but direct learning-effect evidence for university programming courses is missing, and the unguarded-access risk is documented.
|
|
283
323
|
- **Intervention**: 4-phase pilot (Independent Foundation → Explain Don't Solve → Structured Collaboration → Transfer Check).
|
|
284
324
|
- **Evaluation**: no-AI baseline / post-test / final-exam retention / no-AI transfer task + AI-dependency risk metrics.
|
|
285
325
|
|
|
286
|
-
|
|
326
|
+
A second public example, `examples/workplace-ai-assistant/`, evaluates AI assistance in enterprise customer support using the policy domain: 4 findings from 3 studies, with direct and indirect evidence distinguished. Its proposed supervised pilot has not been executed.
|
|
327
|
+
|
|
328
|
+
The third public example, `examples/spaced-retrieval-practice/`, asks whether spaced repetition and retrieval practice should replace massed review in an introductory programming course. It is the first pack whose sources were located through the **Sciverse** channel (`discovery_provider=sciverse`, `fetch_provider=sciverse_content`) and whose `meta.data_origin` is `real_run_sciverse`: 6 findings from 7 tier-1 DOI sources, decision **ADOPT** (High confidence). It is the worked example that the ADOPT path is reachable: retention and transfer - the two primary outcomes - carry direct, consistent evidence at directness 2, while the coding and workplace cases stay bounded at PILOT because their primary learning evidence is missing.
|
|
287
329
|
|
|
288
|
-
|
|
289
|
-
badge in its report header and in `result.json.meta`:
|
|
330
|
+
Each pack ships `result.json` + `result.zh.json` (bilingual parallel data), a packaged-`EduEvidence_Report.html` root report, and `reports-5themes/` with the five standalone theme HTML files.
|
|
290
331
|
|
|
291
|
-
|
|
292
|
-
registry-verified DOIs (Crossref/DataCite audit: `benchmarks/doi-audit/report.md`),
|
|
293
|
-
engine-computed confidence; data_origin=`manual_curated`.
|
|
294
|
-
- `examples/ai-coding-assistant/`, `ai-tutor/`, `ai-writing-assistant/` — real-source
|
|
295
|
-
walkthrough packs.
|
|
296
|
-
- `examples/esl-academic-writing-ai/`, `highschool-math-ai-tutor/` — **synthetic
|
|
297
|
-
demonstrations** (data_origin=`synthetic`). Their numbers and citations are illustrative,
|
|
298
|
-
not real studies; reports carry a loud SYNTHETIC badge. Do not cite them as evidence.
|
|
332
|
+
All three public examples are literature demonstrations, and their `data_origin` says exactly what produced them. The coding and workplace cases are **manually curated** (`manual_curated`); the spaced-retrieval case is a recorded **Sciverse-backed run** (`real_run_sciverse`). A rendered report never establishes that an agent completed the whole nine-stage research workflow. See [the workplace evidence notes](docs/demo-workplace-ai.md) for source versions and limitations, and [`docs/reproducibility.md`](docs/reproducibility.md) for how `data_origin` is declared.
|
|
299
333
|
|
|
300
334
|
### Start your own research in ~30 minutes
|
|
301
335
|
|
|
302
336
|
```bash
|
|
303
|
-
python3 scripts/quickstart.py "
|
|
337
|
+
python3 scripts/quickstart.py "你的研究问题" # creates runs/<id> + NEXT_STEPS.md
|
|
304
338
|
# hand the LLM stages to your AI agent per NEXT_STEPS.md, then finish with:
|
|
305
339
|
python3 scripts/orchestrator.py adjudicate --project runs/<id>
|
|
306
340
|
bash scripts/bake_pack.sh <pack_dir> # 5-theme bilingual report
|
|
307
341
|
python3 scripts/citation_check.py --pack <pack_dir> --write-back # DOI ✓ badges
|
|
308
342
|
```
|
|
309
343
|
|
|
344
|
+
## Studio in use
|
|
345
|
+
|
|
346
|
+
Select a graph node to trace source → finding → claim. The flow is a visual aid; it does not signal an active research run.
|
|
347
|
+
|
|
348
|
+

|
|
349
|
+
|
|
350
|
+
Read the same evidence through five independent report themes, with bilingual and brief/full views.
|
|
351
|
+
|
|
352
|
+

|
|
353
|
+
|
|
310
354
|
## Visualization: Bilingual HTML Report + Infographics + Academic Figures
|
|
311
355
|
|
|
312
|
-
After research completes, `result.json` is rendered into three visualization outputs by deterministic Python adapters. The adapters themselves use the standard library;
|
|
356
|
+
After research completes, `result.json` is rendered into three visualization outputs by deterministic Python adapters. The adapters themselves use the standard library; legacy ECharts enhancement is optional and is not required by the new Research Studio.
|
|
313
357
|
|
|
314
358
|
```text
|
|
315
359
|
result.json + result.zh.json (Chinese parallel data)
|
|
316
|
-
├─ build_charts.py → chart_specs.json (ECharts option data; no ECharts runtime bundled)
|
|
317
|
-
├─ build_infographics.py → infographics.json (hand-authored SVGs)
|
|
318
|
-
├─ build_figures.py → figures/ (publication figures: figure_data.json + SVG/PNG/PDF)
|
|
319
|
-
└─ build_report.py → EduEvidence_Report.html (single-file bilingual report + report_spec.json)
|
|
360
|
+
├─ visualization/eduevidence-report/scripts/build_charts.py → chart_specs.json (ECharts option data; no ECharts runtime bundled)
|
|
361
|
+
├─ visualization/eduevidence-report/scripts/build_infographics.py → infographics.json (hand-authored SVGs)
|
|
362
|
+
├─ visualization/eduevidence-report/scripts/build_figures.py → figures/ (publication figures: figure_data.json + SVG/PNG/PDF)
|
|
363
|
+
└─ visualization/eduevidence-report/scripts/build_report.py → EduEvidence_Report.html (single-file bilingual report + report_spec.json)
|
|
320
364
|
```
|
|
321
365
|
|
|
322
366
|
**EduEvidence_Report.html (main deliverable)**:
|
|
@@ -328,14 +372,33 @@ result.json + result.zh.json (Chinese parallel data)
|
|
|
328
372
|
- **Static-first**: decision, matrix, tribunal, intervention and sources remain readable without JavaScript; ECharts is an optional enhancement.
|
|
329
373
|
- **Integrity gate**: chart numbers are checked against result.json item by item; publishing is blocked with `REPORT_INVALID` on mismatch.
|
|
330
374
|
|
|
331
|
-
**
|
|
375
|
+
**Research Studio** is a read-only research workspace. Start `python3 scripts/dashboard_server.py --port 8765` and open `/studio/` to inspect projects, evidence, sources, recorded runs, committed revisions and five report identities. Skill Autoevolve has a separate observation view; the console cannot start research, mutate evidence or dispatch agents.
|
|
376
|
+
|
|
377
|
+
The React + TypeScript frontend ships as static assets: Node is needed only for development, not for running the packaged Skill. Its charts do not depend on a remote ECharts CDN and never compute a pooled effect in the browser. Local research remains local; GitHub Pages exports public example packs only. Report themes are generated from complete bilingual inputs with explicit missing-data states, not fabricated fallback claims.
|
|
378
|
+
|
|
379
|
+
See [Research Studio workflow and delivery guide](docs/research-studio-guide.zh-CN.md).
|
|
380
|
+
|
|
381
|
+
> Open the example directly: `examples/ai-coding-assistant-evidence/EduEvidence_Report.html`
|
|
332
382
|
|
|
333
|
-
|
|
383
|
+
|
|
384
|
+
### Optional key-based retrieval channels
|
|
385
|
+
|
|
386
|
+
Zero-config retrieval (OpenAlex / Semantic Scholar / CrossRef / AIHot / AgentSearch) works out of the box. These channels activate once a key is present and stay silently inactive otherwise — the scientific gates never depend on them:
|
|
387
|
+
|
|
388
|
+
```bash
|
|
389
|
+
export SCIVERSE_API_TOKEN=sv-... # citation-grade academic retrieval + full-text location
|
|
390
|
+
export TAVILY_API_KEY=... # general web search
|
|
391
|
+
export BRAVE_API_KEY=... # general web search
|
|
392
|
+
```
|
|
393
|
+
|
|
394
|
+
The Sciverse channel treats an `/agentic-search` chunk as a **locator**: it must be expanded through `/content` and pass the validation gate before it may enter evidence extraction (RULE 2, machine-enforced). Contract: `docs/sciverse-api.md`; compliance: `references/retrieval-compliance.md`.
|
|
334
395
|
|
|
335
396
|
## Architecture
|
|
336
397
|
|
|
337
398
|
The repository is a complete **Skill package**: `SKILL.md` is the entry point; everything else is layered as *skill core → quality assurance → demos*. See [`docs/architecture.md`](docs/architecture.md):
|
|
338
399
|
|
|
400
|
+
Read the illustrated single-file walkthrough of the same architecture (nine-step protocol, roles and independence, artifact/state map, execution and approval loop) at [`web/architecture.html`](web/architecture.html).
|
|
401
|
+
|
|
339
402
|
```text
|
|
340
403
|
EduEvidence/ (= one Skill package)
|
|
341
404
|
│
|
|
@@ -360,14 +423,14 @@ EduEvidence/ (= one Skill package)
|
|
|
360
423
|
│ bilingual HTML composer + V2 project surfaces)
|
|
361
424
|
│
|
|
362
425
|
├─ Quality assurance
|
|
363
|
-
│ ├─ tests/ pytest test matrix (V1–V4,
|
|
426
|
+
│ ├─ tests/ pytest test matrix (V1–V4, current counts in docs/metrics.json)
|
|
364
427
|
│ └─ benchmarks/ V1 questions + benchmarks/v2/ (graph/contract metrics)
|
|
365
428
|
│
|
|
366
429
|
└─ Demos & distribution
|
|
367
430
|
├─ examples/ Research & Decision Packs + full-research-cycle-fixture (synthetic)
|
|
368
431
|
├─ docs/ architecture / methodology / benchmark / demo / reproducibility
|
|
369
432
|
├─ install.sh one-click install (local / multi-agent Skill) + self-check
|
|
370
|
-
├─ pyproject.toml packaging metadata (wheel ships CLI
|
|
433
|
+
├─ pyproject.toml packaging metadata (wheel ships CLI, engine and installed runtime resources; stdlib-only core)
|
|
371
434
|
└─ README(.en).md bilingual docs
|
|
372
435
|
```
|
|
373
436
|
|
|
@@ -419,7 +482,7 @@ Agent MCP is a **performance & reliability enhancement layer, not a prerequisite
|
|
|
419
482
|
|
|
420
483
|
> 🔒 Agent MCP principle: **Scan first. Recommend second. Ask the user. Execute only after explicit confirmation.** No spawn without user approval; reject → fall back to Native.
|
|
421
484
|
|
|
422
|
-

|
|
423
486
|
|
|
424
487
|
|
|
425
488
|
## Usage
|
|
@@ -427,33 +490,37 @@ Agent MCP is a **performance & reliability enhancement layer, not a prerequisite
|
|
|
427
490
|
```bash
|
|
428
491
|
# 1. Validate data against the schema contracts
|
|
429
492
|
python3 scripts/validate_schema.py --schema schemas/evidence.schema.json \
|
|
430
|
-
--data examples/ai-coding-assistant/evidence.jsonl
|
|
493
|
+
--data examples/ai-coding-assistant-evidence/evidence.jsonl
|
|
431
494
|
|
|
432
495
|
# 2. Compute evidence quality scores and Confidence
|
|
433
|
-
python3 scripts/evidence_score.py examples/ai-coding-assistant/evidence.jsonl
|
|
496
|
+
python3 scripts/evidence_score.py examples/ai-coding-assistant-evidence/evidence.jsonl
|
|
434
497
|
|
|
435
498
|
# 3. Generate the Evidence Matrix (one of the core views)
|
|
436
|
-
python3 scripts/evidence_matrix.py examples/ai-coding-assistant/evidence.jsonl
|
|
499
|
+
python3 scripts/evidence_matrix.py examples/ai-coding-assistant-evidence/evidence.jsonl
|
|
437
500
|
|
|
438
501
|
# 4. Run the Citation Audit (claim-evidence traceability)
|
|
439
|
-
python3 scripts/claim_audit.py
|
|
502
|
+
python3 scripts/claim_audit.py \
|
|
503
|
+
--claims examples/ai-coding-assistant-evidence/claims.jsonl \
|
|
504
|
+
--evidence examples/ai-coding-assistant-evidence/evidence.jsonl
|
|
440
505
|
|
|
441
506
|
# 5. Render the Research & Decision Pack (Markdown)
|
|
442
507
|
python3 scripts/render_report.py \
|
|
443
|
-
--frame examples/ai-coding-assistant/frame.json \
|
|
444
|
-
--evidence examples/ai-coding-assistant/evidence.jsonl \
|
|
445
|
-
--methodology examples/ai-coding-assistant/methodology.json \
|
|
446
|
-
--verdict examples/ai-coding-assistant/verdict.json \
|
|
447
|
-
--intervention examples/ai-coding-assistant/intervention.json \
|
|
448
|
-
--evaluation examples/ai-coding-assistant/evaluation.json \
|
|
508
|
+
--frame examples/ai-coding-assistant-evidence/frame.json \
|
|
509
|
+
--evidence examples/ai-coding-assistant-evidence/evidence.jsonl \
|
|
510
|
+
--methodology examples/ai-coding-assistant-evidence/methodology.json \
|
|
511
|
+
--verdict examples/ai-coding-assistant-evidence/verdict.json \
|
|
512
|
+
--intervention examples/ai-coding-assistant-evidence/intervention.json \
|
|
513
|
+
--evaluation examples/ai-coding-assistant-evidence/evaluation.json \
|
|
449
514
|
--out REPORT.md
|
|
450
515
|
|
|
451
516
|
# 6. Render the single-file bilingual HTML report (main deliverable)
|
|
452
517
|
python3 visualization/eduevidence-report/scripts/build_report.py \
|
|
453
|
-
--result examples/ai-coding-assistant/result.json \
|
|
454
|
-
--out examples/ai-coding-assistant/EduEvidence_Report.html
|
|
518
|
+
--result examples/ai-coding-assistant-evidence/result.json \
|
|
519
|
+
--out examples/ai-coding-assistant-evidence/EduEvidence_Report.html
|
|
455
520
|
|
|
456
521
|
# 7. Validate the benchmark question set
|
|
522
|
+
# Source checkout only: benchmarks/questions.jsonl is not part of the
|
|
523
|
+
# shipped Skill package (see packaging/upload-layout.md).
|
|
457
524
|
python3 scripts/benchmark.py --questions benchmarks/questions.jsonl
|
|
458
525
|
|
|
459
526
|
# 8. Run the tests
|