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
|
@@ -0,0 +1,2728 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="zh-CN" data-theme="datalab">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8">
|
|
5
|
+
<meta http-equiv="Content-Security-Policy" content="default-src 'none'; script-src 'unsafe-inline'; style-src 'unsafe-inline'; img-src data:; font-src data:; connect-src 'none'; base-uri 'none'; object-src 'none'; form-action 'none'">
|
|
6
|
+
<meta name="eduevidence-result-sha256" content="1fff22fb180f676523430c5934f8c96c9cabbb37e2a4010a99049de5087f478d">
|
|
7
|
+
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
8
|
+
<title>在大学的程序设计入门课程中,是否应该用间隔重复与检索练习替代传统的集中式复习?这对学生的长期知识保持是否有效?</title>
|
|
9
|
+
<style>
|
|
10
|
+
/* Theme 01 — Claude Research.
|
|
11
|
+
Calm long-form research reading: warm paper, restrained accents, sparse cards,
|
|
12
|
+
wide data breakouts and generous section rhythm. */
|
|
13
|
+
:root[data-theme="claude"] {
|
|
14
|
+
--bg:#F7F4ED; --surface:#FFFFFF; --surface2:#FCFAF6; --text:#3A3833;
|
|
15
|
+
--text-muted:#8A867E; --primary:#B8694A; --primary-soft:#F3E4DC;
|
|
16
|
+
--support:#5E8A6A; --support-soft:#E4EDE5; --contradict:#A85B53;
|
|
17
|
+
--contradict-soft:#F0E0DE; --uncertain:#C99A4A; --uncertain-soft:#F4EADA;
|
|
18
|
+
--insufficient:#8A867E; --border:#E5DFD3; --radius:12px; --radius-sm:8px;
|
|
19
|
+
--shadow:0 1px 3px rgba(60,56,48,.07); --font-head:'Georgia','Songti SC','STSong',serif;
|
|
20
|
+
--font-ui:'Helvetica Neue','PingFang SC','Noto Sans CJK SC',Arial,sans-serif; --font-mono:'SF Mono',Menlo,Consolas,monospace;
|
|
21
|
+
}
|
|
22
|
+
:root[data-theme="claude"] .report-shell { max-width:1240px; padding-top:34px; }
|
|
23
|
+
:root[data-theme="claude"] .report-header { max-width:900px; margin:0 auto 42px; padding-bottom:22px; }
|
|
24
|
+
:root[data-theme="claude"] .report-header h1 { font-size:clamp(1.55rem,2.8vw,2.25rem); line-height:1.18; font-weight:500; }
|
|
25
|
+
:root[data-theme="claude"] .report-section { background:transparent; border:0; box-shadow:none; padding:0; }
|
|
26
|
+
:root[data-theme="claude"] .report-section>h2 { border:0; font-size:1.4rem; padding:0; margin-bottom:7px; }
|
|
27
|
+
:root[data-theme="claude"] .section-lead { background:transparent; border:0; padding:0; max-width:760px; margin-bottom:24px; }
|
|
28
|
+
:root[data-theme="claude"] .decision-hero { background:var(--surface); box-shadow:0 10px 30px rgba(60,56,48,.06); }
|
|
29
|
+
:root[data-theme="claude"] .hero-insight { border-radius:8px; box-shadow:0 1px 0 rgba(60,56,48,.03); }
|
|
30
|
+
:root[data-theme="claude"] .section-data>.table-wrap,
|
|
31
|
+
:root[data-theme="claude"] .section-data>.matrix-controls,
|
|
32
|
+
:root[data-theme="claude"] .section-data>.outcome-separation,
|
|
33
|
+
:root[data-theme="claude"] .section-data>.trace-chain { width:min(1180px,calc(100vw - 48px)); margin-left:50%; transform:translateX(-50%); }
|
|
34
|
+
:root[data-theme="claude"] .data-table th { font-weight:600; }
|
|
35
|
+
:root[data-theme="claude"] .tribunal-card,
|
|
36
|
+
:root[data-theme="claude"] .trace-chain-card,
|
|
37
|
+
:root[data-theme="claude"] .action-node { background:var(--surface); }
|
|
38
|
+
|
|
39
|
+
/* Dual-layer reader — calm research workspace. */
|
|
40
|
+
:root[data-theme="claude"] .report-header { max-width:940px; }
|
|
41
|
+
:root[data-theme="claude"] .report-brand { color:var(--primary); }
|
|
42
|
+
:root[data-theme="claude"] .report-view-switcher { display:inline-flex; padding:4px; background:#EFEAE0; border-radius:999px; }
|
|
43
|
+
:root[data-theme="claude"] .report-view-btn { border:0; background:transparent; padding:7px 15px; }
|
|
44
|
+
:root[data-theme="claude"] .report-view-btn.active { background:var(--surface); color:var(--text); box-shadow:0 1px 4px rgba(60,56,48,.09); }
|
|
45
|
+
:root[data-theme="claude"] .brief-block { max-width:980px; }
|
|
46
|
+
:root[data-theme="claude"] .brief-block-header { margin-bottom:26px; }
|
|
47
|
+
:root[data-theme="claude"] .brief-block-header h2 { font-size:1.55rem; font-weight:500; }
|
|
48
|
+
:root[data-theme="claude"] .brief-decision { max-width:1040px; }
|
|
49
|
+
:root[data-theme="claude"] .brief-outcomes .brief-block-body,
|
|
50
|
+
:root[data-theme="claude"] .brief-tribunal .brief-block-body { width:min(1120px,calc(100vw - 48px)); margin-left:50%; transform:translateX(-50%); }
|
|
51
|
+
:root[data-theme="claude"] .brief-source { background:var(--surface); box-shadow:0 1px 3px rgba(60,56,48,.04); }
|
|
52
|
+
:root[data-theme="claude"] .full-report-intro { max-width:880px; margin-left:250px; }
|
|
53
|
+
:root[data-theme="claude"] .full-report-layout { grid-template-columns:210px minmax(0,1fr); gap:56px; }
|
|
54
|
+
:root[data-theme="claude"] .full-report-toc { border-right:0; padding-right:0; }
|
|
55
|
+
:root[data-theme="claude"] .full-report-toc a { border-left:1px solid var(--border); padding:8px 0 8px 13px; background:transparent; }
|
|
56
|
+
:root[data-theme="claude"] .full-report-toc a.active { border-left:2px solid var(--primary); background:transparent; color:var(--text); }
|
|
57
|
+
:root[data-theme="claude"] .full-report-content { max-width:900px; }
|
|
58
|
+
@media (max-width:980px) {
|
|
59
|
+
:root[data-theme="claude"] .full-report-layout { grid-template-columns:minmax(0,1fr); gap:28px; }
|
|
60
|
+
}
|
|
61
|
+
:root[data-theme="claude"] .full-chapter { border-bottom:0; margin-bottom:72px; padding-bottom:0; }
|
|
62
|
+
:root[data-theme="claude"] .full-chapter-header { max-width:760px; margin-bottom:30px; }
|
|
63
|
+
:root[data-theme="claude"] .full-chapter-header h2 { font-size:1.8rem; font-weight:500; }
|
|
64
|
+
:root[data-theme="claude"] .scope-card,
|
|
65
|
+
:root[data-theme="claude"] .retrieval-grid>article,
|
|
66
|
+
:root[data-theme="claude"] .retrieval-coverage,
|
|
67
|
+
:root[data-theme="claude"] .method-audit-item { background:var(--surface); }
|
|
68
|
+
:root[data-theme="claude"] .detail-body { background:#FBF8F2; }
|
|
69
|
+
|
|
70
|
+
/* Header chrome: keep language controls inside the reading measure instead of a full-width strip. */
|
|
71
|
+
:root[data-theme="claude"] .controls {
|
|
72
|
+
max-width:940px; margin:16px auto 0; padding:8px 2px 12px;
|
|
73
|
+
border-bottom:1px solid var(--border); background:transparent;
|
|
74
|
+
}
|
|
75
|
+
:root[data-theme="claude"] .generated-theme {
|
|
76
|
+
margin-right:auto; color:var(--text-muted); font-family:var(--font-ui);
|
|
77
|
+
font-size:.76rem; font-weight:700; letter-spacing:.075em; text-transform:uppercase;
|
|
78
|
+
}
|
|
79
|
+
:root[data-theme="claude"] .lang-switcher {
|
|
80
|
+
gap:6px; padding:3px; border:1px solid var(--border); border-radius:999px;
|
|
81
|
+
background:rgba(255,255,255,.62);
|
|
82
|
+
}
|
|
83
|
+
:root[data-theme="claude"] .lang-switcher>span { margin-left:6px; font-size:.72rem; }
|
|
84
|
+
:root[data-theme="claude"] .lang-btn { border:0; background:transparent; padding:4px 11px; }
|
|
85
|
+
:root[data-theme="claude"] .lang-btn.active { background:var(--primary); color:#fff; }
|
|
86
|
+
:root[data-theme="claude"] .report-brand-row { margin-bottom:12px; }
|
|
87
|
+
:root[data-theme="claude"] .generated-theme-chip {
|
|
88
|
+
background:#F1ECE3; border-color:#E2D8C9; color:#736D64; text-transform:none;
|
|
89
|
+
}
|
|
90
|
+
@media (max-width:980px) {
|
|
91
|
+
:root[data-theme="claude"] .full-report-intro { margin-left:0; }
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
/* Typography pass: reading measure stays inside the serif breathing room;
|
|
95
|
+
Lieflat cards inherit the warm-paper identity (no letter-spacing on CJK). */
|
|
96
|
+
:root[data-theme="claude"] .full-chapter-body p,
|
|
97
|
+
:root[data-theme="claude"] .section-narrative p { max-width:68ch; }
|
|
98
|
+
:root[data-theme="claude"] .brief-block-header p,
|
|
99
|
+
:root[data-theme="claude"] .full-chapter-lead,
|
|
100
|
+
:root[data-theme="claude"] .section-lead { max-width:62ch; }
|
|
101
|
+
:root[data-theme="claude"] .lieflat-card { background:var(--surface); border-radius:16px; padding:26px 28px 20px; }
|
|
102
|
+
:root[data-theme="claude"] .lieflat-title { font-weight:500; font-size:1.28rem; line-height:1.3; }
|
|
103
|
+
:root[data-theme="claude"] .lieflat-sub { max-width:720px; }
|
|
104
|
+
:root[data-theme="claude"] .lieflat-figure svg { border-radius:12px; background:transparent; }
|
|
105
|
+
:root[data-theme="claude"] .lieflat-suppressed { background:var(--surface2); }
|
|
106
|
+
|
|
107
|
+
/* Theme 02 — Academic Paper.
|
|
108
|
+
Formal review-paper reading and print: serif body, document rules, compact figures,
|
|
109
|
+
minimal decorative cards, strong provenance and grayscale-friendly structure. */
|
|
110
|
+
:root[data-theme="academic"] {
|
|
111
|
+
--bg:#FFFFFF; --surface:#FFFFFF; --surface2:#FAFAF8; --text:#151515;
|
|
112
|
+
--text-muted:#555; --primary:#234B57; --primary-soft:#EEF2F3;
|
|
113
|
+
--support:#2F6B3A; --support-soft:#EDF4EE; --contradict:#8A3A2F;
|
|
114
|
+
--contradict-soft:#F5ECEA; --uncertain:#806727; --uncertain-soft:#F5F1E5;
|
|
115
|
+
--insufficient:#666; --border:#BFC1C2; --radius:0; --radius-sm:0; --shadow:none;
|
|
116
|
+
--font-head:'Times New Roman','Songti SC','STSong',serif;
|
|
117
|
+
--font-ui:'Times New Roman','Songti SC','STSong',serif; --font-mono:'Courier New',Consolas,monospace;
|
|
118
|
+
}
|
|
119
|
+
:root[data-theme="academic"] body { font-size:15px; line-height:1.58; }
|
|
120
|
+
:root[data-theme="academic"] .report-shell { max-width:980px; padding-top:22px; }
|
|
121
|
+
:root[data-theme="academic"] .report-header { border-bottom:2px solid #222; margin-bottom:34px; }
|
|
122
|
+
:root[data-theme="academic"] .report-header h1 { font-size:clamp(1.5rem,2.2vw,1.7rem); line-height:1.18; text-align:center; }
|
|
123
|
+
:root[data-theme="academic"] .report-header .meta { text-align:center; }
|
|
124
|
+
:root[data-theme="academic"] .report-section { background:transparent; border:0; box-shadow:none; padding:0; margin-bottom:34px; }
|
|
125
|
+
:root[data-theme="academic"] .report-section>h2 { font-size:1.08rem; border-bottom:1px solid #444; border-radius:0; padding:0 0 5px; }
|
|
126
|
+
:root[data-theme="academic"] .section-lead { background:transparent; border:0; padding:0; margin:4px 0 14px; font-style:italic; }
|
|
127
|
+
:root[data-theme="academic"] .decision-hero { border:1px solid #444; background:#fff; border-radius:0; padding:22px 24px; }
|
|
128
|
+
:root[data-theme="academic"] .hero-insight,
|
|
129
|
+
:root[data-theme="academic"] .tribunal-card,
|
|
130
|
+
:root[data-theme="academic"] .trace-chain-card,
|
|
131
|
+
:root[data-theme="academic"] .action-node,
|
|
132
|
+
:root[data-theme="academic"] .outcome-group { border-radius:0; background:#fff; box-shadow:none; }
|
|
133
|
+
:root[data-theme="academic"] .hero-insights { gap:0; border-top:1px solid #999; border-left:1px solid #999; }
|
|
134
|
+
:root[data-theme="academic"] .hero-insight { border:0; border-right:1px solid #999; border-bottom:1px solid #999; min-height:0; }
|
|
135
|
+
:root[data-theme="academic"] .data-table { font-size:.82rem; }
|
|
136
|
+
:root[data-theme="academic"] .data-table th,
|
|
137
|
+
:root[data-theme="academic"] .data-table td { border-left:0; border-right:0; border-color:#A8A8A8; padding:6px 8px; }
|
|
138
|
+
:root[data-theme="academic"] .data-table thead th { border-top:1.5px solid #222; border-bottom:1px solid #222; background:#fff; }
|
|
139
|
+
:root[data-theme="academic"] .data-table tbody tr:last-child td { border-bottom:1.5px solid #222; }
|
|
140
|
+
:root[data-theme="academic"] figcaption,
|
|
141
|
+
:root[data-theme="academic"] .chart-summary { font-family:var(--font-ui); font-size:.8rem; font-style:italic; color:#333; }
|
|
142
|
+
:root[data-theme="academic"] .dir { border:1px solid currentColor; background:transparent !important; color:#222 !important; border-radius:0; }
|
|
143
|
+
:root[data-theme="academic"] .quality-meter i { background:#333; }
|
|
144
|
+
/* Dual-layer reader — formal paper / review article. */
|
|
145
|
+
:root[data-theme="academic"] .report-brand-row { justify-content:center; }
|
|
146
|
+
:root[data-theme="academic"] .report-brand { font-variant:small-caps; letter-spacing:.12em; }
|
|
147
|
+
:root[data-theme="academic"] .generated-theme-chip { border:0; padding:0; }
|
|
148
|
+
:root[data-theme="academic"] .report-view-switcher { justify-content:center; border-top:1px solid #222; border-bottom:1px solid #222; padding:5px 0; gap:22px; }
|
|
149
|
+
:root[data-theme="academic"] .report-view-btn { border:0; border-radius:0; background:transparent; padding:3px 2px; font-family:var(--font-ui); }
|
|
150
|
+
:root[data-theme="academic"] .report-view-btn.active { background:transparent; color:#000; box-shadow:none; text-decoration:underline; text-underline-offset:4px; }
|
|
151
|
+
:root[data-theme="academic"] .brief-block { max-width:790px; margin-bottom:48px; }
|
|
152
|
+
:root[data-theme="academic"] .brief-block-header { max-width:none; border-bottom:1px solid #777; padding-bottom:6px; }
|
|
153
|
+
:root[data-theme="academic"] .brief-block-header h2 { font-size:1.16rem; }
|
|
154
|
+
:root[data-theme="academic"] .brief-decision .decision-hero { border:1px solid #444; padding:20px 24px; }
|
|
155
|
+
:root[data-theme="academic"] .brief-outcomes,
|
|
156
|
+
:root[data-theme="academic"] .brief-sources { max-width:930px; }
|
|
157
|
+
:root[data-theme="academic"] .brief-source-grid { gap:0; border-top:1px solid #777; }
|
|
158
|
+
:root[data-theme="academic"] .brief-source { border-width:0 0 1px 0; padding:10px 4px; }
|
|
159
|
+
:root[data-theme="academic"] .full-report-intro { max-width:740px; margin-bottom:22px; text-align:center; }
|
|
160
|
+
:root[data-theme="academic"] .full-report-intro h2 { font-size:1.45rem; }
|
|
161
|
+
:root[data-theme="academic"] .full-report-layout { grid-template-columns:175px minmax(0,1fr); gap:34px; }
|
|
162
|
+
:root[data-theme="academic"] .full-report-toc { border-right:1px solid #777; padding-right:14px; }
|
|
163
|
+
:root[data-theme="academic"] .full-report-toc a { border:0; border-bottom:1px dotted #bbb; padding:7px 0; font-size:.77rem; }
|
|
164
|
+
:root[data-theme="academic"] .full-report-toc a.active { border-left:0; background:transparent; font-weight:700; color:#000; }
|
|
165
|
+
@media (max-width:980px) {
|
|
166
|
+
:root[data-theme="academic"] .full-report-layout { grid-template-columns:minmax(0,1fr); }
|
|
167
|
+
}
|
|
168
|
+
:root[data-theme="academic"] .full-report-content { max-width:740px; }
|
|
169
|
+
:root[data-theme="academic"] .full-chapter { border-bottom:0; margin-bottom:50px; padding-bottom:0; }
|
|
170
|
+
:root[data-theme="academic"] .full-chapter-header { max-width:none; border-bottom:1px solid #444; padding-bottom:7px; margin-bottom:18px; }
|
|
171
|
+
:root[data-theme="academic"] .full-chapter-header h2 { font-size:1.22rem; }
|
|
172
|
+
:root[data-theme="academic"] .full-chapter-lead { font-style:italic; color:#444; }
|
|
173
|
+
:root[data-theme="academic"] .scope-card,
|
|
174
|
+
:root[data-theme="academic"] .retrieval-grid>article,
|
|
175
|
+
:root[data-theme="academic"] .retrieval-coverage,
|
|
176
|
+
:root[data-theme="academic"] .method-audit-item,
|
|
177
|
+
:root[data-theme="academic"] .brief-source,
|
|
178
|
+
:root[data-theme="academic"] .detail-body { border-radius:0; background:#fff; box-shadow:none; }
|
|
179
|
+
:root[data-theme="academic"] .method-audit-grid { grid-template-columns:minmax(0,1fr); gap:0; }
|
|
180
|
+
:root[data-theme="academic"] .method-audit-item { border-width:0 0 1px 0; padding:9px 0; }
|
|
181
|
+
:root[data-theme="academic"] .evidence-detail-grid dt,
|
|
182
|
+
:root[data-theme="academic"] .evidence-detail-grid dd { border-color:#999; }
|
|
183
|
+
@media print {
|
|
184
|
+
:root[data-theme="academic"] .generated-theme { display:none; }
|
|
185
|
+
:root[data-theme="academic"] .report-section { break-inside:auto; }
|
|
186
|
+
:root[data-theme="academic"] .data-table { font-size:8.5pt; }
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
/* Typography pass: journal rules for the Lieflat gallery + print scale. */
|
|
190
|
+
:root[data-theme="academic"] .lieflat-card { border:1px solid #444; border-radius:0; background:#fff; padding:18px 22px 14px; }
|
|
191
|
+
:root[data-theme="academic"] .lieflat-title { font-size:1.05rem; }
|
|
192
|
+
:root[data-theme="academic"] .lieflat-sub { font-size:.82rem; }
|
|
193
|
+
:root[data-theme="academic"] .lieflat-caption { font-style:italic; font-size:.78rem; }
|
|
194
|
+
:root[data-theme="academic"] .lieflat-src { letter-spacing:.06em; }
|
|
195
|
+
:root[data-theme="academic"] .lieflat-figure svg { border:1px solid #999; border-radius:0; background:#fff; }
|
|
196
|
+
@media print {
|
|
197
|
+
:root[data-theme="academic"] body { font-size:8.5pt; }
|
|
198
|
+
:root[data-theme="academic"] .lieflat-card { border:1px solid #444; }
|
|
199
|
+
:root[data-theme="academic"] .lieflat-title { font-size:10pt; }
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
/* Theme 03 — DataLab Light.
|
|
203
|
+
Analytical workspace with readable density: strong hierarchy, compact controls,
|
|
204
|
+
full-width decision/outcome surfaces, paired tribunal/action panels and traceable sources. */
|
|
205
|
+
:root[data-theme="datalab"] {
|
|
206
|
+
--bg:#F3F5F8; --surface:#FFFFFF; --surface2:#F7F9FC; --text:#1F2530;
|
|
207
|
+
--text-muted:#687386; --primary:#2563EB; --primary-soft:#EAF0FD;
|
|
208
|
+
--support:#17805E; --support-soft:#E8F5EF; --contradict:#C94343;
|
|
209
|
+
--contradict-soft:#FBEDED; --uncertain:#B86D12; --uncertain-soft:#FBF1E5;
|
|
210
|
+
--insufficient:#7A8493; --border:#D9DEE7; --radius:8px; --radius-sm:6px;
|
|
211
|
+
--shadow:0 1px 2px rgba(16,24,40,.05);
|
|
212
|
+
--font-head:'Helvetica Neue','PingFang SC','Noto Sans CJK SC',Arial,sans-serif;
|
|
213
|
+
--font-ui:'Helvetica Neue','PingFang SC','Noto Sans CJK SC',Arial,sans-serif;
|
|
214
|
+
--font-mono:'SF Mono',Menlo,Consolas,monospace;
|
|
215
|
+
}
|
|
216
|
+
:root[data-theme="datalab"] body { font-size:15.5px; }
|
|
217
|
+
:root[data-theme="datalab"] .controls {
|
|
218
|
+
max-width:1480px; margin-top:12px; padding:9px 12px; border:1px solid var(--border);
|
|
219
|
+
border-radius:10px; background:rgba(255,255,255,.92); box-shadow:var(--shadow); backdrop-filter:blur(10px);
|
|
220
|
+
}
|
|
221
|
+
:root[data-theme="datalab"] .generated-theme { color:var(--primary); font-weight:750; letter-spacing:.06em; }
|
|
222
|
+
:root[data-theme="datalab"] .report-shell { width:100%; max-width:1480px; padding:18px clamp(16px,2.4vw,30px) 72px; }
|
|
223
|
+
:root[data-theme="datalab"] .report-header {
|
|
224
|
+
width:100%; max-width:none; margin:0 0 22px; padding:18px 20px;
|
|
225
|
+
border:1px solid var(--border); border-radius:12px; background:var(--surface); box-shadow:var(--shadow);
|
|
226
|
+
}
|
|
227
|
+
:root[data-theme="datalab"] .report-header h1 { max-width:1100px; font-size:clamp(1.4rem,2vw,1.75rem); line-height:1.22; }
|
|
228
|
+
:root[data-theme="datalab"] .report-header .meta { margin:8px 0 0; font-size:.85rem; }
|
|
229
|
+
:root[data-theme="datalab"] .report-brand-row { margin-bottom:8px; }
|
|
230
|
+
:root[data-theme="datalab"] .report-brand { color:var(--primary); text-transform:uppercase; letter-spacing:.08em; font-size:.83rem; }
|
|
231
|
+
:root[data-theme="datalab"] .generated-theme-chip { border-radius:5px; background:var(--surface2); font-size:.72rem; }
|
|
232
|
+
:root[data-theme="datalab"] .report-view-switcher { margin-top:14px; gap:0; }
|
|
233
|
+
:root[data-theme="datalab"] .report-view-btn { min-height:36px; border-radius:6px 0 0 6px; padding:7px 14px; font-size:.86rem; }
|
|
234
|
+
:root[data-theme="datalab"] .report-view-btn + .report-view-btn { border-radius:0 6px 6px 0; margin-left:-1px; }
|
|
235
|
+
:root[data-theme="datalab"] .report-view-btn.active { background:var(--primary); color:#fff; }
|
|
236
|
+
|
|
237
|
+
/* Visual Brief: 4-column workbench grid — decision/outcomes span the row,
|
|
238
|
+
tribunal and action pair at half width, chapter headers stay two-column. */
|
|
239
|
+
:root[data-theme="datalab"] .report-page-brief {
|
|
240
|
+
width:100%; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:18px; align-items:start;
|
|
241
|
+
}
|
|
242
|
+
:root[data-theme="datalab"] .brief-block {
|
|
243
|
+
width:100%; max-width:none; margin:0; padding:18px 20px;
|
|
244
|
+
border:1px solid var(--border); border-radius:12px; background:var(--surface); box-shadow:var(--shadow);
|
|
245
|
+
}
|
|
246
|
+
:root[data-theme="datalab"] .brief-decision,
|
|
247
|
+
:root[data-theme="datalab"] .brief-lieflat,
|
|
248
|
+
:root[data-theme="datalab"] .brief-outcomes,
|
|
249
|
+
:root[data-theme="datalab"] .brief-sources { grid-column:1/-1; }
|
|
250
|
+
:root[data-theme="datalab"] .brief-tribunal,
|
|
251
|
+
:root[data-theme="datalab"] .brief-action { grid-column:span 2; }
|
|
252
|
+
:root[data-theme="datalab"] .brief-block-header {
|
|
253
|
+
max-width:none; margin-bottom:16px; display:flex; justify-content:space-between; align-items:flex-start; gap:24px;
|
|
254
|
+
}
|
|
255
|
+
:root[data-theme="datalab"] .brief-block-header h2 {
|
|
256
|
+
margin:0; font-family:var(--font-ui); font-size:1.02rem; line-height:1.35; text-transform:uppercase; letter-spacing:.055em;
|
|
257
|
+
}
|
|
258
|
+
:root[data-theme="datalab"] .brief-block-header p { max-width:680px; margin:0; font-size:.86rem; line-height:1.55; text-align:right; }
|
|
259
|
+
:root[data-theme="datalab"] .brief-decision { padding:0; overflow:hidden; }
|
|
260
|
+
:root[data-theme="datalab"] .brief-decision .brief-block-header { padding:18px 20px 0; }
|
|
261
|
+
:root[data-theme="datalab"] .brief-decision .decision-hero {
|
|
262
|
+
border-width:1px 0 0; border-radius:0; display:grid; grid-template-columns:minmax(210px,.7fr) minmax(0,2fr); gap:18px 28px; padding:24px 20px;
|
|
263
|
+
}
|
|
264
|
+
:root[data-theme="datalab"] .brief-decision .hero-decision { align-content:start; margin:0; }
|
|
265
|
+
:root[data-theme="datalab"] .brief-decision .hero-rationale { margin:0; font-family:var(--font-ui); font-size:1.08rem; line-height:1.55; }
|
|
266
|
+
:root[data-theme="datalab"] .brief-decision .hero-insights { grid-column:1/-1; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; }
|
|
267
|
+
:root[data-theme="datalab"] .brief-decision .hero-insight { min-height:96px; padding:12px 14px; border:1px solid var(--border); border-top-width:3px; border-radius:7px; }
|
|
268
|
+
:root[data-theme="datalab"] .brief-outcomes .brief-block-body { display:grid; gap:18px; }
|
|
269
|
+
:root[data-theme="datalab"] .brief-outcomes .outcome-groups { grid-template-columns:repeat(auto-fit,minmax(min(230px,100%),1fr)); gap:10px; }
|
|
270
|
+
:root[data-theme="datalab"] .brief-outcomes .outcome-group { padding:13px 14px; }
|
|
271
|
+
:root[data-theme="datalab"] .brief-chart { margin:0; }
|
|
272
|
+
:root[data-theme="datalab"] .brief-tribunal,
|
|
273
|
+
:root[data-theme="datalab"] .brief-action { min-height:100%; }
|
|
274
|
+
:root[data-theme="datalab"] .tribunal-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
|
|
275
|
+
:root[data-theme="datalab"] .tribunal-card { min-height:0; padding:13px 14px; }
|
|
276
|
+
:root[data-theme="datalab"] .evidence-to-action { gap:7px; padding-bottom:8px; margin-bottom:0; }
|
|
277
|
+
:root[data-theme="datalab"] .action-node { min-width:150px; padding:12px 13px; }
|
|
278
|
+
:root[data-theme="datalab"] .brief-source-grid { grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; }
|
|
279
|
+
:root[data-theme="datalab"] .brief-source { min-width:0; padding:12px 14px; background:var(--surface2); }
|
|
280
|
+
:root[data-theme="datalab"] .brief-source h3 { font-size:.88rem; line-height:1.45; overflow-wrap:anywhere; }
|
|
281
|
+
|
|
282
|
+
/* Full report: compact analytical reader. */
|
|
283
|
+
:root[data-theme="datalab"] .full-report-intro { max-width:none; margin:24px 0 16px; padding:16px 18px; border:1px solid var(--border); border-radius:10px; background:var(--surface); }
|
|
284
|
+
:root[data-theme="datalab"] .full-report-intro h2 { font-family:var(--font-ui); font-size:1.35rem; }
|
|
285
|
+
:root[data-theme="datalab"] .full-report-layout { grid-template-columns:minmax(210px,270px) minmax(0,1fr); gap:18px; }
|
|
286
|
+
:root[data-theme="datalab"] .full-report-toc { top:12px; padding:12px; border:1px solid var(--border); border-radius:10px; background:var(--surface); box-shadow:var(--shadow); }
|
|
287
|
+
@media (max-width:980px) {
|
|
288
|
+
:root[data-theme="datalab"] .full-report-layout { grid-template-columns:minmax(0,1fr); }
|
|
289
|
+
:root[data-theme="datalab"] .full-report-toc { position:relative; top:auto; max-height:none; }
|
|
290
|
+
}
|
|
291
|
+
:root[data-theme="datalab"] .full-report-toc a { border-left:3px solid transparent; border-radius:5px; padding:8px 9px; font-size:.82rem; }
|
|
292
|
+
:root[data-theme="datalab"] .full-report-toc a.active { border-left-color:var(--primary); background:var(--primary-soft); color:var(--text); }
|
|
293
|
+
:root[data-theme="datalab"] .full-report-content { max-width:none; }
|
|
294
|
+
:root[data-theme="datalab"] .full-chapter { margin:0 0 18px; padding:20px; border:1px solid var(--border); border-radius:12px; background:var(--surface); box-shadow:var(--shadow); }
|
|
295
|
+
:root[data-theme="datalab"] .full-chapter-header { max-width:none; margin-bottom:18px; display:grid; grid-template-columns:minmax(220px,.65fr) minmax(0,1fr); gap:20px; align-items:start; }
|
|
296
|
+
:root[data-theme="datalab"] .full-chapter-header h2 { font-family:var(--font-ui); font-size:1.18rem; line-height:1.35; }
|
|
297
|
+
:root[data-theme="datalab"] .full-chapter-lead { font-size:.88rem; line-height:1.55; }
|
|
298
|
+
:root[data-theme="datalab"] .scope-grid { grid-template-columns:repeat(auto-fit,minmax(min(260px,100%),1fr)); }
|
|
299
|
+
:root[data-theme="datalab"] .method-audit-grid { grid-template-columns:repeat(auto-fit,minmax(min(240px,100%),1fr)); gap:9px; }
|
|
300
|
+
:root[data-theme="datalab"] .matrix-controls { position:sticky; top:0; z-index:5; padding:9px; background:rgba(255,255,255,.94); backdrop-filter:blur(8px); border:1px solid var(--border); border-radius:7px; }
|
|
301
|
+
:root[data-theme="datalab"] .matrix-tools input,
|
|
302
|
+
:root[data-theme="datalab"] .matrix-tools select { min-height:36px; padding:6px 9px; }
|
|
303
|
+
:root[data-theme="datalab"] .data-table { font-size:.82rem; }
|
|
304
|
+
:root[data-theme="datalab"] .data-table th,
|
|
305
|
+
:root[data-theme="datalab"] .data-table td { padding:7px 8px; }
|
|
306
|
+
:root[data-theme="datalab"] .claim-cell { max-width:none; min-width:260px; }
|
|
307
|
+
:root[data-theme="datalab"] code { font-size:.78em; }
|
|
308
|
+
|
|
309
|
+
/* Lieflat gallery — analytical workbench density: compact cards, uppercase
|
|
310
|
+
micro labels, controlled figure surface. */
|
|
311
|
+
:root[data-theme="datalab"] .lieflat-gallery-container {
|
|
312
|
+
display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px;
|
|
313
|
+
}
|
|
314
|
+
:root[data-theme="datalab"] .lieflat-card { padding:16px 18px 12px; border-radius:10px; background:var(--surface2); }
|
|
315
|
+
:root[data-theme="datalab"] .lieflat-title { font-family:var(--font-ui); font-size:.98rem; line-height:1.35; }
|
|
316
|
+
:root[data-theme="datalab"] .lieflat-sub { font-size:.8rem; line-height:1.5; }
|
|
317
|
+
:root[data-theme="datalab"] .lieflat-figure svg { border-radius:6px; background:var(--surface); }
|
|
318
|
+
:root[data-theme="datalab"] .lieflat-caption { font-size:.75rem; }
|
|
319
|
+
:root[data-theme="datalab"] .lieflat-src { font-size:.62rem; }
|
|
320
|
+
:root[data-theme="datalab"] .lieflat-suppressed { font-size:.78rem; }
|
|
321
|
+
:root[data-theme="datalab"] .lang-btn { min-height:36px; }
|
|
322
|
+
:root[data-theme="datalab"] .lang-switcher { align-items:center; }
|
|
323
|
+
|
|
324
|
+
@media (max-width:1100px) {
|
|
325
|
+
:root[data-theme="datalab"] .brief-decision .hero-insights { grid-template-columns:repeat(2,minmax(0,1fr)); }
|
|
326
|
+
:root[data-theme="datalab"] .brief-source-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
|
|
327
|
+
:root[data-theme="datalab"] .lieflat-gallery-container { grid-template-columns:1fr; }
|
|
328
|
+
}
|
|
329
|
+
@media (max-width:980px) {
|
|
330
|
+
:root[data-theme="datalab"] .report-page-brief { grid-template-columns:minmax(0,1fr); }
|
|
331
|
+
:root[data-theme="datalab"] .brief-block { grid-column:1 !important; }
|
|
332
|
+
:root[data-theme="datalab"] .brief-block-header { display:block; }
|
|
333
|
+
:root[data-theme="datalab"] .brief-block-header p { margin-top:6px; max-width:none; text-align:left; }
|
|
334
|
+
:root[data-theme="datalab"] .brief-decision .decision-hero { grid-template-columns:1fr; }
|
|
335
|
+
:root[data-theme="datalab"] .brief-decision .hero-insights { grid-column:1; }
|
|
336
|
+
:root[data-theme="datalab"] .full-chapter-header { grid-template-columns:1fr; }
|
|
337
|
+
}
|
|
338
|
+
@media (max-width:720px) {
|
|
339
|
+
:root[data-theme="datalab"] .controls { width:calc(100% - 24px); padding:8px 10px; }
|
|
340
|
+
:root[data-theme="datalab"] .report-shell { padding-left:14px; padding-right:14px; }
|
|
341
|
+
:root[data-theme="datalab"] .report-header { padding:15px 14px; }
|
|
342
|
+
:root[data-theme="datalab"] .report-header h1 { font-size:1.3rem; }
|
|
343
|
+
:root[data-theme="datalab"] .brief-block { padding:15px 14px; }
|
|
344
|
+
:root[data-theme="datalab"] .brief-decision { padding:0; }
|
|
345
|
+
:root[data-theme="datalab"] .brief-decision .brief-block-header { padding:15px 14px 0; }
|
|
346
|
+
:root[data-theme="datalab"] .brief-decision .decision-hero { padding:18px 14px; }
|
|
347
|
+
:root[data-theme="datalab"] .brief-decision .hero-insights,
|
|
348
|
+
:root[data-theme="datalab"] .brief-source-grid,
|
|
349
|
+
:root[data-theme="datalab"] .tribunal-grid { grid-template-columns:1fr; }
|
|
350
|
+
:root[data-theme="datalab"] .full-chapter { padding:16px 14px; }
|
|
351
|
+
:root[data-theme="datalab"] .data-table { font-size:.8rem; }
|
|
352
|
+
}
|
|
353
|
+
|
|
354
|
+
/* Theme 04 — DataLab Dark.
|
|
355
|
+
Same information architecture as DataLab Light, rendered as a focused dark analytical workspace. */
|
|
356
|
+
:root[data-theme="datalab-dark"] {
|
|
357
|
+
--bg:#0F131A; --surface:#171C24; --surface2:#1D2430; --text:#E9EDF3;
|
|
358
|
+
--text-muted:#98A3B3; --primary:#6EA8FF; --primary-soft:#1B3152;
|
|
359
|
+
--support:#58C79B; --support-soft:#18372C; --contradict:#F08282;
|
|
360
|
+
--contradict-soft:#422426; --uncertain:#E4B45F; --uncertain-soft:#3B3020;
|
|
361
|
+
--insufficient:#8D98A8; --border:#2D3745; --radius:8px; --radius-sm:6px;
|
|
362
|
+
--shadow:0 8px 24px rgba(0,0,0,.22); --font-head:'Helvetica Neue',Arial,'PingFang SC',sans-serif;
|
|
363
|
+
--font-ui:'Helvetica Neue',Arial,'PingFang SC',sans-serif; --font-mono:'SF Mono',Menlo,Consolas,monospace;
|
|
364
|
+
}
|
|
365
|
+
:root[data-theme="datalab-dark"] body { font-size:15.5px; }
|
|
366
|
+
:root[data-theme="datalab-dark"] .controls {
|
|
367
|
+
max-width:1480px; margin-top:12px; padding:9px 12px; border:1px solid var(--border);
|
|
368
|
+
border-radius:10px; background:rgba(23,28,36,.94); box-shadow:var(--shadow); backdrop-filter:blur(12px);
|
|
369
|
+
}
|
|
370
|
+
:root[data-theme="datalab-dark"] .generated-theme { color:var(--primary); font-weight:750; letter-spacing:.06em; }
|
|
371
|
+
:root[data-theme="datalab-dark"] .lang-btn { background:var(--surface2); border-color:var(--border); color:var(--text); }
|
|
372
|
+
:root[data-theme="datalab-dark"] .lang-btn.active { background:var(--primary); border-color:var(--primary); color:#0D1420; }
|
|
373
|
+
:root[data-theme="datalab-dark"] .report-shell { width:100%; max-width:1480px; padding:18px clamp(16px,2.4vw,30px) 72px; }
|
|
374
|
+
:root[data-theme="datalab-dark"] .report-header {
|
|
375
|
+
width:100%; max-width:none; margin:0 0 22px; padding:18px 20px;
|
|
376
|
+
border:1px solid var(--border); border-radius:12px; background:var(--surface); box-shadow:var(--shadow);
|
|
377
|
+
}
|
|
378
|
+
:root[data-theme="datalab-dark"] .report-header h1 { max-width:1100px; font-size:clamp(1.4rem,2vw,1.75rem); line-height:1.22; }
|
|
379
|
+
:root[data-theme="datalab-dark"] .report-header .meta { margin:8px 0 0; font-size:.85rem; color:var(--text-muted); }
|
|
380
|
+
:root[data-theme="datalab-dark"] .report-brand-row { margin-bottom:8px; }
|
|
381
|
+
:root[data-theme="datalab-dark"] .report-brand { color:var(--primary); text-transform:uppercase; letter-spacing:.08em; font-size:.83rem; }
|
|
382
|
+
:root[data-theme="datalab-dark"] .generated-theme-chip { border-radius:5px; background:var(--surface2); border-color:var(--border); color:var(--text-muted); font-size:.72rem; }
|
|
383
|
+
:root[data-theme="datalab-dark"] .report-view-switcher { margin-top:14px; gap:0; }
|
|
384
|
+
:root[data-theme="datalab-dark"] .report-view-btn { min-height:36px; border-radius:6px 0 0 6px; padding:7px 14px; font-size:.86rem; background:var(--surface2); border-color:var(--border); }
|
|
385
|
+
:root[data-theme="datalab-dark"] .report-view-btn + .report-view-btn { border-radius:0 6px 6px 0; margin-left:-1px; }
|
|
386
|
+
:root[data-theme="datalab-dark"] .report-view-btn.active { background:var(--primary); border-color:var(--primary); color:#0D1420; }
|
|
387
|
+
|
|
388
|
+
:root[data-theme="datalab-dark"] .report-page-brief { width:100%; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:18px; align-items:start; }
|
|
389
|
+
:root[data-theme="datalab-dark"] .brief-block { width:100%; max-width:none; margin:0; padding:18px 20px; border:1px solid var(--border); border-radius:12px; background:var(--surface); box-shadow:var(--shadow); }
|
|
390
|
+
:root[data-theme="datalab-dark"] .brief-decision,
|
|
391
|
+
:root[data-theme="datalab-dark"] .brief-lieflat,
|
|
392
|
+
:root[data-theme="datalab-dark"] .brief-outcomes,
|
|
393
|
+
:root[data-theme="datalab-dark"] .brief-sources { grid-column:1/-1; }
|
|
394
|
+
:root[data-theme="datalab-dark"] .brief-tribunal,
|
|
395
|
+
:root[data-theme="datalab-dark"] .brief-action { grid-column:span 2; }
|
|
396
|
+
:root[data-theme="datalab-dark"] .brief-block-header { max-width:none; margin-bottom:16px; display:flex; justify-content:space-between; align-items:flex-start; gap:24px; }
|
|
397
|
+
:root[data-theme="datalab-dark"] .brief-block-header h2 { margin:0; font-family:var(--font-ui); font-size:1.02rem; line-height:1.35; text-transform:uppercase; letter-spacing:.055em; }
|
|
398
|
+
:root[data-theme="datalab-dark"] .brief-block-header p { max-width:680px; margin:0; font-size:.86rem; line-height:1.55; text-align:right; color:var(--text-muted); }
|
|
399
|
+
:root[data-theme="datalab-dark"] .brief-decision { padding:0; overflow:hidden; }
|
|
400
|
+
:root[data-theme="datalab-dark"] .brief-decision .brief-block-header { padding:18px 20px 0; }
|
|
401
|
+
:root[data-theme="datalab-dark"] .brief-decision .decision-hero { border-width:1px 0 0; border-radius:0; display:grid; grid-template-columns:minmax(210px,.7fr) minmax(0,2fr); gap:18px 28px; padding:24px 20px; background:var(--surface2); }
|
|
402
|
+
:root[data-theme="datalab-dark"] .brief-decision .hero-decision { align-content:start; margin:0; }
|
|
403
|
+
:root[data-theme="datalab-dark"] .brief-decision .hero-rationale { margin:0; font-family:var(--font-ui); font-size:1.08rem; line-height:1.55; color:#F0F3F8; }
|
|
404
|
+
:root[data-theme="datalab-dark"] .brief-decision .hero-insights { grid-column:1/-1; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; }
|
|
405
|
+
:root[data-theme="datalab-dark"] .brief-decision .hero-insight { min-height:96px; padding:12px 14px; border:1px solid var(--border); border-top-width:3px; border-radius:7px; background:var(--surface); }
|
|
406
|
+
:root[data-theme="datalab-dark"] .brief-outcomes .brief-block-body { display:grid; gap:18px; }
|
|
407
|
+
:root[data-theme="datalab-dark"] .brief-outcomes .outcome-groups { grid-template-columns:repeat(auto-fit,minmax(min(230px,100%),1fr)); gap:10px; }
|
|
408
|
+
:root[data-theme="datalab-dark"] .brief-outcomes .outcome-group { padding:13px 14px; background:var(--surface2); }
|
|
409
|
+
:root[data-theme="datalab-dark"] .brief-chart { margin:0; background:var(--surface2); }
|
|
410
|
+
:root[data-theme="datalab-dark"] .brief-chart svg,
|
|
411
|
+
:root[data-theme="datalab-dark"] .report-section svg { background:#FFFFFF; }
|
|
412
|
+
:root[data-theme="datalab-dark"] .brief-tribunal,
|
|
413
|
+
:root[data-theme="datalab-dark"] .brief-action { min-height:100%; }
|
|
414
|
+
:root[data-theme="datalab-dark"] .tribunal-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
|
|
415
|
+
:root[data-theme="datalab-dark"] .tribunal-card { min-height:0; padding:13px 14px; background:var(--surface2); }
|
|
416
|
+
:root[data-theme="datalab-dark"] .evidence-to-action { gap:7px; padding-bottom:8px; margin-bottom:0; }
|
|
417
|
+
:root[data-theme="datalab-dark"] .action-node { min-width:150px; padding:12px 13px; background:var(--surface2); }
|
|
418
|
+
:root[data-theme="datalab-dark"] .brief-source-grid { grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; }
|
|
419
|
+
:root[data-theme="datalab-dark"] .brief-source { min-width:0; padding:12px 14px; background:var(--surface2); }
|
|
420
|
+
:root[data-theme="datalab-dark"] .brief-source h3 { font-size:.88rem; line-height:1.45; overflow-wrap:anywhere; }
|
|
421
|
+
|
|
422
|
+
:root[data-theme="datalab-dark"] .full-report-intro { max-width:none; margin:24px 0 16px; padding:16px 18px; border:1px solid var(--border); border-radius:10px; background:var(--surface); }
|
|
423
|
+
:root[data-theme="datalab-dark"] .full-report-intro h2 { font-family:var(--font-ui); font-size:1.35rem; }
|
|
424
|
+
:root[data-theme="datalab-dark"] .full-report-layout { grid-template-columns:minmax(210px,270px) minmax(0,1fr); gap:18px; }
|
|
425
|
+
:root[data-theme="datalab-dark"] .full-report-toc { top:12px; padding:12px; border:1px solid var(--border); border-radius:10px; background:var(--surface); box-shadow:var(--shadow); }
|
|
426
|
+
@media (max-width:980px) {
|
|
427
|
+
:root[data-theme="datalab-dark"] .full-report-layout { grid-template-columns:minmax(0,1fr); }
|
|
428
|
+
:root[data-theme="datalab-dark"] .full-report-toc { position:relative; top:auto; max-height:none; }
|
|
429
|
+
}
|
|
430
|
+
:root[data-theme="datalab-dark"] .full-report-toc a { border-left:3px solid transparent; border-radius:5px; padding:8px 9px; font-size:.82rem; color:var(--text-muted); }
|
|
431
|
+
:root[data-theme="datalab-dark"] .full-report-toc a.active { border-left-color:var(--primary); background:var(--primary-soft); color:var(--text); }
|
|
432
|
+
:root[data-theme="datalab-dark"] .full-report-content { max-width:none; }
|
|
433
|
+
:root[data-theme="datalab-dark"] .full-chapter { margin:0 0 18px; padding:20px; border:1px solid var(--border); border-radius:12px; background:var(--surface); box-shadow:var(--shadow); }
|
|
434
|
+
:root[data-theme="datalab-dark"] .full-chapter-header { max-width:none; margin-bottom:18px; display:grid; grid-template-columns:minmax(220px,.65fr) minmax(0,1fr); gap:20px; align-items:start; }
|
|
435
|
+
:root[data-theme="datalab-dark"] .full-chapter-header h2 { font-family:var(--font-ui); font-size:1.18rem; line-height:1.35; }
|
|
436
|
+
:root[data-theme="datalab-dark"] .full-chapter-lead { font-size:.88rem; line-height:1.55; color:var(--text-muted); }
|
|
437
|
+
:root[data-theme="datalab-dark"] .scope-grid { grid-template-columns:repeat(auto-fit,minmax(min(260px,100%),1fr)); }
|
|
438
|
+
:root[data-theme="datalab-dark"] .method-audit-grid { grid-template-columns:repeat(auto-fit,minmax(min(240px,100%),1fr)); gap:9px; }
|
|
439
|
+
:root[data-theme="datalab-dark"] .scope-card,
|
|
440
|
+
:root[data-theme="datalab-dark"] .retrieval-grid>article,
|
|
441
|
+
:root[data-theme="datalab-dark"] .retrieval-coverage,
|
|
442
|
+
:root[data-theme="datalab-dark"] .method-audit-item,
|
|
443
|
+
:root[data-theme="datalab-dark"] .detail-body,
|
|
444
|
+
:root[data-theme="datalab-dark"] .visual-suppressed { background:var(--surface2); border-color:var(--border); }
|
|
445
|
+
:root[data-theme="datalab-dark"] .matrix-controls { position:sticky; top:0; z-index:5; padding:9px; background:rgba(23,28,36,.95); backdrop-filter:blur(8px); border:1px solid var(--border); border-radius:7px; }
|
|
446
|
+
:root[data-theme="datalab-dark"] .matrix-tools input,
|
|
447
|
+
:root[data-theme="datalab-dark"] .matrix-tools select { min-height:36px; padding:6px 9px; background:var(--surface2); border-color:var(--border); color:var(--text); }
|
|
448
|
+
:root[data-theme="datalab-dark"] .data-table { font-size:.82rem; }
|
|
449
|
+
:root[data-theme="datalab-dark"] .data-table th,
|
|
450
|
+
:root[data-theme="datalab-dark"] .data-table td { padding:7px 8px; border-color:var(--border); }
|
|
451
|
+
:root[data-theme="datalab-dark"] .table-wrap .data-table th { background:var(--surface2); }
|
|
452
|
+
:root[data-theme="datalab-dark"] .data-table tbody tr:nth-child(even) { background:#141A22; }
|
|
453
|
+
:root[data-theme="datalab-dark"] .data-table tbody tr:hover { background:var(--primary-soft); }
|
|
454
|
+
:root[data-theme="datalab-dark"] .claim-cell { max-width:none; min-width:260px; }
|
|
455
|
+
:root[data-theme="datalab-dark"] code { font-size:.78em; background:var(--surface2); }
|
|
456
|
+
|
|
457
|
+
/* Lieflat gallery — dark workbench density; figure surface keeps the dark
|
|
458
|
+
card_bg and labels hold ≥4.5:1 contrast against it. */
|
|
459
|
+
:root[data-theme="datalab-dark"] .lieflat-gallery-container {
|
|
460
|
+
display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px;
|
|
461
|
+
}
|
|
462
|
+
:root[data-theme="datalab-dark"] .lieflat-card { padding:16px 18px 12px; border-radius:10px; background:var(--surface2); }
|
|
463
|
+
:root[data-theme="datalab-dark"] .lieflat-title { font-family:var(--font-ui); font-size:.98rem; line-height:1.35; }
|
|
464
|
+
:root[data-theme="datalab-dark"] .lieflat-sub { font-size:.8rem; line-height:1.5; }
|
|
465
|
+
:root[data-theme="datalab-dark"] .lieflat-figure svg { border-radius:6px; background:transparent; }
|
|
466
|
+
:root[data-theme="datalab-dark"] .lieflat-caption { font-size:.75rem; }
|
|
467
|
+
:root[data-theme="datalab-dark"] .lieflat-src { font-size:.62rem; }
|
|
468
|
+
:root[data-theme="datalab-dark"] .lieflat-suppressed { font-size:.78rem; }
|
|
469
|
+
:root[data-theme="datalab-dark"] .lang-btn { min-height:36px; }
|
|
470
|
+
:root[data-theme="datalab-dark"] .lang-switcher { align-items:center; }
|
|
471
|
+
|
|
472
|
+
@media (max-width:1100px) {
|
|
473
|
+
:root[data-theme="datalab-dark"] .brief-decision .hero-insights { grid-template-columns:repeat(2,minmax(0,1fr)); }
|
|
474
|
+
:root[data-theme="datalab-dark"] .brief-source-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
|
|
475
|
+
:root[data-theme="datalab-dark"] .lieflat-gallery-container { grid-template-columns:1fr; }
|
|
476
|
+
}
|
|
477
|
+
@media (max-width:980px) {
|
|
478
|
+
:root[data-theme="datalab-dark"] .report-page-brief { grid-template-columns:minmax(0,1fr); }
|
|
479
|
+
:root[data-theme="datalab-dark"] .brief-block { grid-column:1 !important; }
|
|
480
|
+
:root[data-theme="datalab-dark"] .brief-block-header { display:block; }
|
|
481
|
+
:root[data-theme="datalab-dark"] .brief-block-header p { margin-top:6px; max-width:none; text-align:left; }
|
|
482
|
+
:root[data-theme="datalab-dark"] .brief-decision .decision-hero { grid-template-columns:1fr; }
|
|
483
|
+
:root[data-theme="datalab-dark"] .brief-decision .hero-insights { grid-column:1; }
|
|
484
|
+
:root[data-theme="datalab-dark"] .full-chapter-header { grid-template-columns:1fr; }
|
|
485
|
+
}
|
|
486
|
+
@media (max-width:720px) {
|
|
487
|
+
:root[data-theme="datalab-dark"] .controls { width:calc(100% - 24px); padding:8px 10px; }
|
|
488
|
+
:root[data-theme="datalab-dark"] .report-shell { padding-left:14px; padding-right:14px; }
|
|
489
|
+
:root[data-theme="datalab-dark"] .report-header { padding:15px 14px; }
|
|
490
|
+
:root[data-theme="datalab-dark"] .report-header h1 { font-size:1.3rem; }
|
|
491
|
+
:root[data-theme="datalab-dark"] .brief-block { padding:15px 14px; }
|
|
492
|
+
:root[data-theme="datalab-dark"] .brief-decision { padding:0; }
|
|
493
|
+
:root[data-theme="datalab-dark"] .brief-decision .brief-block-header { padding:15px 14px 0; }
|
|
494
|
+
:root[data-theme="datalab-dark"] .brief-decision .decision-hero { padding:18px 14px; }
|
|
495
|
+
:root[data-theme="datalab-dark"] .brief-decision .hero-insights,
|
|
496
|
+
:root[data-theme="datalab-dark"] .brief-source-grid,
|
|
497
|
+
:root[data-theme="datalab-dark"] .tribunal-grid { grid-template-columns:1fr; }
|
|
498
|
+
:root[data-theme="datalab-dark"] .full-chapter { padding:16px 14px; }
|
|
499
|
+
:root[data-theme="datalab-dark"] .data-table { font-size:.8rem; }
|
|
500
|
+
}
|
|
501
|
+
|
|
502
|
+
/* Theme 05 — Presentation / Judge [Dark].
|
|
503
|
+
Review-first presentation mode: strong decision framing without dashboard-scale typography,
|
|
504
|
+
readable evidence panels and an audit-ready full report. */
|
|
505
|
+
:root[data-theme="presentation"] {
|
|
506
|
+
--bg:#121419; --surface:#1B1F26; --surface2:#232933; --text:#F2F4F7;
|
|
507
|
+
--text-muted:#A2A9B4; --primary:#E8A87C; --primary-soft:#382E27;
|
|
508
|
+
--support:#7BC48F; --support-soft:#203229; --contradict:#E28B7E;
|
|
509
|
+
--contradict-soft:#392522; --uncertain:#E4C07A; --uncertain-soft:#38301F;
|
|
510
|
+
--insufficient:#9299A4; --border:#343B46; --radius:14px; --radius-sm:9px;
|
|
511
|
+
--shadow:0 12px 34px rgba(0,0,0,.25); --font-head:'Helvetica Neue','PingFang SC',Arial,sans-serif;
|
|
512
|
+
--font-ui:'Helvetica Neue','PingFang SC',Arial,sans-serif; --font-mono:'SF Mono',Menlo,Consolas,monospace;
|
|
513
|
+
}
|
|
514
|
+
:root[data-theme="presentation"] body { font-size:16px; }
|
|
515
|
+
:root[data-theme="presentation"] .controls {
|
|
516
|
+
width:calc(100% - 36px); max-width:1180px; margin:16px auto 0; padding:9px 12px;
|
|
517
|
+
border:1px solid var(--border); border-radius:12px; background:rgba(25,29,35,.94);
|
|
518
|
+
box-shadow:0 8px 24px rgba(0,0,0,.18); backdrop-filter:blur(12px);
|
|
519
|
+
}
|
|
520
|
+
:root[data-theme="presentation"] .generated-theme { margin-right:auto; color:var(--primary); font-size:.76rem; font-weight:800; letter-spacing:.075em; }
|
|
521
|
+
:root[data-theme="presentation"] .lang-switcher { gap:6px; }
|
|
522
|
+
:root[data-theme="presentation"] .lang-switcher>span { color:var(--text-muted); font-size:.74rem; }
|
|
523
|
+
:root[data-theme="presentation"] .lang-btn { min-height:34px; border-color:#3C4450; background:#20252D; color:#DCE1E8; padding:5px 11px; }
|
|
524
|
+
:root[data-theme="presentation"] .lang-btn.active { background:var(--primary); border-color:var(--primary); color:#15181D; }
|
|
525
|
+
|
|
526
|
+
:root[data-theme="presentation"] .report-shell { width:100%; max-width:1220px; padding:24px clamp(16px,2.8vw,30px) 88px; }
|
|
527
|
+
:root[data-theme="presentation"] .report-header {
|
|
528
|
+
width:100%; max-width:1120px; margin:0 auto 36px; padding:24px 26px;
|
|
529
|
+
border:1px solid var(--border); border-radius:16px; background:linear-gradient(145deg,#1A1E25,#20252E);
|
|
530
|
+
box-shadow:var(--shadow);
|
|
531
|
+
}
|
|
532
|
+
:root[data-theme="presentation"] .report-brand-row { margin-bottom:12px; }
|
|
533
|
+
:root[data-theme="presentation"] .report-brand { color:var(--primary); text-transform:uppercase; letter-spacing:.1em; font-size:.8rem; }
|
|
534
|
+
:root[data-theme="presentation"] .generated-theme-chip { background:#242A33; border-color:#3C4450; color:#B8C0CB; }
|
|
535
|
+
:root[data-theme="presentation"] .report-header h1 { max-width:980px; font-size:clamp(1.35rem,2vw,1.7rem); line-height:1.08; letter-spacing:-.022em; }
|
|
536
|
+
:root[data-theme="presentation"] .report-header .meta { margin:10px 0 0; color:var(--text-muted); font-size:.86rem; overflow-wrap:anywhere; }
|
|
537
|
+
:root[data-theme="presentation"] .report-view-switcher { display:inline-flex; margin-top:18px; padding:4px; border:1px solid var(--border); border-radius:999px; background:#12151A; }
|
|
538
|
+
:root[data-theme="presentation"] .report-view-btn { min-height:36px; border:0; background:transparent; color:#BBC2CC; padding:7px 15px; }
|
|
539
|
+
:root[data-theme="presentation"] .report-view-btn.active { background:var(--primary); color:#15181D; box-shadow:none; }
|
|
540
|
+
|
|
541
|
+
:root[data-theme="presentation"] .report-page-brief { width:100%; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:22px; align-items:start; }
|
|
542
|
+
:root[data-theme="presentation"] .brief-block { width:100%; max-width:none; margin:0; padding:22px 24px; border:1px solid var(--border); border-radius:16px; background:var(--surface); box-shadow:var(--shadow); }
|
|
543
|
+
:root[data-theme="presentation"] .brief-decision,
|
|
544
|
+
:root[data-theme="presentation"] .brief-outcomes,
|
|
545
|
+
:root[data-theme="presentation"] .brief-sources { grid-column:1/-1; }
|
|
546
|
+
:root[data-theme="presentation"] .brief-decision { padding:0; border:0; background:transparent; box-shadow:none; }
|
|
547
|
+
:root[data-theme="presentation"] .brief-decision .brief-block-header { display:none; }
|
|
548
|
+
:root[data-theme="presentation"] .brief-decision .decision-hero {
|
|
549
|
+
min-height:360px; display:flex; flex-direction:column; justify-content:center;
|
|
550
|
+
border:1px solid var(--border); border-radius:18px; background:linear-gradient(145deg,var(--surface),var(--surface2));
|
|
551
|
+
box-shadow:0 18px 50px rgba(0,0,0,.30); padding:clamp(28px,4vw,48px);
|
|
552
|
+
}
|
|
553
|
+
:root[data-theme="presentation"] .decision-value { font-size:clamp(2rem,4vw,2.9rem); line-height:.98; letter-spacing:-.04em; color:var(--primary); }
|
|
554
|
+
:root[data-theme="presentation"] .confidence-badge { font-size:.92rem; padding:6px 13px; color:#15181D; }
|
|
555
|
+
:root[data-theme="presentation"] .hero-rationale { max-width:900px; font-family:var(--font-ui); font-size:clamp(0.95rem,1.4vw,1.12rem); line-height:1.5; color:#E5E8ED; }
|
|
556
|
+
:root[data-theme="presentation"] .hero-insights { grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
|
|
557
|
+
:root[data-theme="presentation"] .hero-insight { min-height:112px; background:#191D23; border-radius:11px; padding:16px 18px; }
|
|
558
|
+
:root[data-theme="presentation"] .brief-block-header h2 { font-size:1.15rem; line-height:1.2; }
|
|
559
|
+
:root[data-theme="presentation"] .brief-block-header p { color:#ABB3BE; font-size:.86rem; line-height:1.55; }
|
|
560
|
+
:root[data-theme="presentation"] .outcome-separation .visual-heading h3 { font-size:1.05rem; }
|
|
561
|
+
:root[data-theme="presentation"] .outcome-groups { grid-template-columns:repeat(auto-fit,minmax(min(240px,100%),1fr)); gap:12px; }
|
|
562
|
+
:root[data-theme="presentation"] .outcome-group,
|
|
563
|
+
:root[data-theme="presentation"] .tribunal-card,
|
|
564
|
+
:root[data-theme="presentation"] .trace-chain-card,
|
|
565
|
+
:root[data-theme="presentation"] .action-node { background:var(--surface2); border-color:var(--border); }
|
|
566
|
+
:root[data-theme="presentation"] .tribunal-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
|
|
567
|
+
:root[data-theme="presentation"] .tribunal-card { min-height:0; }
|
|
568
|
+
:root[data-theme="presentation"] .evidence-to-action { gap:8px; }
|
|
569
|
+
:root[data-theme="presentation"] .action-node { min-width:160px; }
|
|
570
|
+
:root[data-theme="presentation"] .brief-source-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
|
|
571
|
+
:root[data-theme="presentation"] .brief-source { min-width:0; background:#191D23; border-color:#353D48; }
|
|
572
|
+
:root[data-theme="presentation"] .brief-source h3 { overflow-wrap:anywhere; }
|
|
573
|
+
:root[data-theme="presentation"] .report-section svg,
|
|
574
|
+
:root[data-theme="presentation"] .academic-figure svg { background:#fff; }
|
|
575
|
+
|
|
576
|
+
:root[data-theme="presentation"] .full-report-intro { width:100%; max-width:1060px; margin:44px auto 26px; }
|
|
577
|
+
:root[data-theme="presentation"] .full-report-intro h2 { font-size:clamp(1.5rem,2.2vw,1.9rem); line-height:1.08; }
|
|
578
|
+
:root[data-theme="presentation"] .full-report-layout { width:100%; max-width:1160px; margin:0 auto; grid-template-columns:minmax(190px,230px) minmax(0,1fr); gap:28px; }
|
|
579
|
+
:root[data-theme="presentation"] .full-report-toc { top:16px; padding:14px; border:1px solid var(--border); border-radius:12px; background:#171B21; box-shadow:0 10px 28px rgba(0,0,0,.22); }
|
|
580
|
+
:root[data-theme="presentation"] .full-report-toc a { border-radius:7px; border-left:0; padding:9px 10px; color:#AEB6C1; font-size:.84rem; }
|
|
581
|
+
:root[data-theme="presentation"] .full-report-toc a.active { border-left:0; background:#282E38; color:#fff; box-shadow:inset 3px 0 0 var(--primary); }
|
|
582
|
+
:root[data-theme="presentation"] .full-report-content { max-width:none; }
|
|
583
|
+
:root[data-theme="presentation"] .full-chapter { margin-bottom:28px; padding:clamp(22px,3vw,30px); border:1px solid var(--border); border-radius:16px; background:var(--surface); box-shadow:0 12px 30px rgba(0,0,0,.20); }
|
|
584
|
+
:root[data-theme="presentation"] .full-chapter-header { max-width:900px; margin-bottom:24px; }
|
|
585
|
+
:root[data-theme="presentation"] .full-chapter-header h2 { font-size:clamp(1.2rem,1.9vw,1.5rem); line-height:1.12; }
|
|
586
|
+
:root[data-theme="presentation"] .full-chapter-lead { color:#AEB6C1; font-size:.96rem; line-height:1.6; }
|
|
587
|
+
:root[data-theme="presentation"] .scope-card,
|
|
588
|
+
:root[data-theme="presentation"] .retrieval-grid>article,
|
|
589
|
+
:root[data-theme="presentation"] .retrieval-coverage,
|
|
590
|
+
:root[data-theme="presentation"] .method-audit-item,
|
|
591
|
+
:root[data-theme="presentation"] .detail-body,
|
|
592
|
+
:root[data-theme="presentation"] .visual-suppressed { background:#242A33; border-color:#3B4450; }
|
|
593
|
+
:root[data-theme="presentation"] .data-table { font-size:.86rem; }
|
|
594
|
+
:root[data-theme="presentation"] .data-table td,
|
|
595
|
+
:root[data-theme="presentation"] .data-table th { border-color:#3B4450; }
|
|
596
|
+
|
|
597
|
+
/* 移动端安全(主题规则特异性高于基座断点:必须自带响应式覆写) */
|
|
598
|
+
@media (max-width:980px) {
|
|
599
|
+
:root[data-theme="presentation"] .full-report-layout { grid-template-columns:minmax(0,1fr); }
|
|
600
|
+
:root[data-theme="presentation"] .full-report-toc { position:relative; top:auto; max-height:none; }
|
|
601
|
+
}
|
|
602
|
+
@media (max-width:720px) {
|
|
603
|
+
:root[data-theme="presentation"] .outcome-groups { grid-template-columns:1fr; }
|
|
604
|
+
:root[data-theme="presentation"] .tribunal-grid,
|
|
605
|
+
:root[data-theme="presentation"] .brief-source-grid { grid-template-columns:1fr; }
|
|
606
|
+
}
|
|
607
|
+
:root[data-theme="presentation"] .table-wrap .data-table th { background:#242A33; }
|
|
608
|
+
|
|
609
|
+
@media (max-width:980px) {
|
|
610
|
+
:root[data-theme="presentation"] .report-page-brief { grid-template-columns:minmax(0,1fr); }
|
|
611
|
+
:root[data-theme="presentation"] .brief-block { grid-column:1 !important; }
|
|
612
|
+
:root[data-theme="presentation"] .full-report-layout { max-width:none; }
|
|
613
|
+
}
|
|
614
|
+
@media (max-width:720px) {
|
|
615
|
+
:root[data-theme="presentation"] .controls { width:calc(100% - 24px); border-radius:10px; }
|
|
616
|
+
:root[data-theme="presentation"] .report-shell { padding-left:14px; padding-right:14px; }
|
|
617
|
+
:root[data-theme="presentation"] .report-header { padding:18px 16px; border-radius:12px; }
|
|
618
|
+
:root[data-theme="presentation"] .report-header h1 { font-size:1.2rem; }
|
|
619
|
+
:root[data-theme="presentation"] .brief-block { padding:18px 16px; }
|
|
620
|
+
:root[data-theme="presentation"] .brief-decision { padding:0; }
|
|
621
|
+
:root[data-theme="presentation"] .brief-decision .decision-hero { min-height:0; padding:24px 18px; border-radius:13px; }
|
|
622
|
+
:root[data-theme="presentation"] .decision-value { font-size:2rem; }
|
|
623
|
+
:root[data-theme="presentation"] .hero-insights,
|
|
624
|
+
:root[data-theme="presentation"] .tribunal-grid,
|
|
625
|
+
:root[data-theme="presentation"] .brief-source-grid { grid-template-columns:1fr; }
|
|
626
|
+
:root[data-theme="presentation"] .full-chapter { padding:18px 16px; border-radius:12px; }
|
|
627
|
+
}
|
|
628
|
+
|
|
629
|
+
/* Typography pass: verdict type scale + insight padding + dark-court gallery.
|
|
630
|
+
Gold/orange accents keep ≥4.5:1 contrast on the dark surfaces. */
|
|
631
|
+
:root[data-theme="presentation"] .hero-decision .decision-value { line-height:.96; }
|
|
632
|
+
:root[data-theme="presentation"] .hero-rationale { color:#E9ECF1; }
|
|
633
|
+
:root[data-theme="presentation"] .hero-insight { padding:18px 20px; }
|
|
634
|
+
:root[data-theme="presentation"] .brief-decision .hero-insight { padding:16px 18px; }
|
|
635
|
+
:root[data-theme="presentation"] .lieflat-card { background:var(--surface); border-radius:16px; padding:22px 24px 16px; }
|
|
636
|
+
:root[data-theme="presentation"] .lieflat-title { font-size:1.08rem; line-height:1.3; }
|
|
637
|
+
:root[data-theme="presentation"] .lieflat-sub { font-size:.82rem; }
|
|
638
|
+
:root[data-theme="presentation"] .lieflat-figure svg { border-radius:10px; background:transparent; }
|
|
639
|
+
:root[data-theme="presentation"] .lieflat-caption { font-size:.76rem; }
|
|
640
|
+
:root[data-theme="presentation"] .lieflat-src { font-size:.64rem; }
|
|
641
|
+
:root[data-theme="presentation"] .lieflat-suppressed { background:var(--surface2); font-size:.78rem; }
|
|
642
|
+
|
|
643
|
+
/* EduEvidence base stylesheet — extracted verbatim from build_report.py
|
|
644
|
+
(plan E2: templates/styles live outside the renderer; loaded at build time). */
|
|
645
|
+
:root {
|
|
646
|
+
--bg:#F7F4ED; --surface:#FFFFFF; --surface2:#FCFAF6;
|
|
647
|
+
--text:#3A3833; --primary:#B8694A; --support:#5E8A6A;
|
|
648
|
+
--contradict:#A85B53; --uncertain:#C99A4A; --insufficient:#8A867E;
|
|
649
|
+
--border:#E5DFD3; --radius:10px; --shadow:0 1px 3px rgba(60,56,48,.08);
|
|
650
|
+
--font-head:'Georgia','Songti SC','Noto Serif CJK SC',serif;
|
|
651
|
+
--font-ui:'Helvetica Neue','PingFang SC','Noto Sans CJK SC',Arial,sans-serif;
|
|
652
|
+
}
|
|
653
|
+
* { box-sizing:border-box; }
|
|
654
|
+
html, body { max-width:100%; overflow-x:hidden; }
|
|
655
|
+
body { margin:0; background:var(--bg); color:var(--text);
|
|
656
|
+
font-family:var(--font-ui); line-height:1.65;
|
|
657
|
+
font-variant-numeric:tabular-nums; }
|
|
658
|
+
.report-shell { width:100%; max-width:1200px; margin:0 auto; padding:24px clamp(18px,3vw,32px) 80px; }
|
|
659
|
+
.controls { width:calc(100% - 36px); max-width:1200px; margin:0 auto 16px; padding:12px clamp(0px,1vw,12px); display:flex; gap:18px; flex-wrap:wrap; align-items:center;
|
|
660
|
+
border-bottom:1px solid var(--border); }
|
|
661
|
+
.report-header { border-bottom:1px solid var(--border); padding-bottom:16px; margin-bottom:24px; }
|
|
662
|
+
.report-header h1 { font-family:var(--font-head); font-size:1.55rem; margin:0 0 8px; color:var(--text); }
|
|
663
|
+
.report-header .meta { color:var(--insufficient); font-size:.85rem; }
|
|
664
|
+
.lang-switcher { display:flex; gap:8px; align-items:center; flex-wrap:wrap; }
|
|
665
|
+
.lang-switcher span { font-size:.82rem; color:var(--insufficient); }
|
|
666
|
+
.lang-btn { background:var(--surface); border:1px solid var(--border); border-radius:999px;
|
|
667
|
+
padding:4px 12px; font-size:.8rem; cursor:pointer; color:var(--text); }
|
|
668
|
+
.lang-btn.active { background:var(--primary); color:#fff; border-color:var(--primary); }
|
|
669
|
+
.report-section { background:var(--surface); border:1px solid var(--border);
|
|
670
|
+
border-radius:var(--radius); box-shadow:var(--shadow);
|
|
671
|
+
padding:20px 24px; margin-bottom:20px; }
|
|
672
|
+
.report-section h2 { font-family:var(--font-head); font-size:1.25rem; margin:0 0 6px;
|
|
673
|
+
border-bottom:1px solid var(--border); padding-bottom:8px; }
|
|
674
|
+
.section-lead { font-size:.88rem; color:var(--insufficient); margin:0 0 14px;
|
|
675
|
+
background:var(--surface2); border-radius:6px; padding:8px 12px;
|
|
676
|
+
border-left:3px solid var(--primary); }
|
|
677
|
+
.report-section h3 { font-size:.95rem; margin:14px 0 6px; }
|
|
678
|
+
.decision-card { padding:18px 20px; border-radius:10px;
|
|
679
|
+
border-left:6px solid var(--insufficient); background:var(--surface2);
|
|
680
|
+
box-shadow:var(--shadow); }
|
|
681
|
+
.decision-card.adopt { border-left-color:var(--support); }
|
|
682
|
+
.decision-card.pilot { border-left-color:var(--uncertain); }
|
|
683
|
+
.decision-card.reject { border-left-color:var(--contradict); }
|
|
684
|
+
.kpi-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:12px 18px; }
|
|
685
|
+
.kpi-label { display:block; font-size:.72rem; color:var(--insufficient); text-transform:uppercase; letter-spacing:.05em; margin-bottom:2px; }
|
|
686
|
+
.kpi-value { font-size:1.05rem; font-weight:600; }
|
|
687
|
+
.decision-value { font-family:var(--font-head); font-size:1.5rem; font-weight:700; }
|
|
688
|
+
.confidence-badge { background:var(--uncertain); color:#fff; border-radius:999px; padding:3px 12px; font-size:.82rem; }
|
|
689
|
+
.rationale { color:var(--text); font-size:.92rem; margin-top:12px; border-top:1px dashed var(--border);
|
|
690
|
+
padding-top:10px; }
|
|
691
|
+
.exec-summary { background:var(--surface2); border:1px solid var(--border);
|
|
692
|
+
border-radius:10px; padding:16px 20px; margin-bottom:18px; }
|
|
693
|
+
.exec-summary h3 { margin:0 0 10px; color:var(--primary); }
|
|
694
|
+
.summary-row { display:flex; gap:12px; margin:8px 0; }
|
|
695
|
+
.summary-k { flex:0 0 64px; font-weight:700; color:var(--insufficient); font-size:.88rem; }
|
|
696
|
+
.summary-v { flex:1; font-size:.95rem; }
|
|
697
|
+
.summary-list { margin:4px 0 0; padding-left:18px; }
|
|
698
|
+
.summary-tag { display:inline-block; border-radius:999px; padding:0 10px; font-size:.75rem; color:#fff; }
|
|
699
|
+
.summary-tag.pos { background:var(--support); }
|
|
700
|
+
.summary-tag.neg { background:var(--contradict); }
|
|
701
|
+
ul.can li { border-left:3px solid var(--support); }
|
|
702
|
+
ul.uncertain li { border-left:3px solid var(--uncertain); }
|
|
703
|
+
ul.cannot li { border-left:3px solid var(--contradict); }
|
|
704
|
+
ul.can li, ul.uncertain li, ul.cannot li { list-style:none; margin:6px 0; padding:6px 10px;
|
|
705
|
+
background:var(--surface2); border-radius:6px; font-size:.9rem; }
|
|
706
|
+
.report-section svg { max-width:100%; height:auto; border:1px solid var(--border);
|
|
707
|
+
border-radius:var(--radius-sm); background:#fff; }
|
|
708
|
+
.table-wrap { overflow-x:auto; -webkit-overflow-scrolling:touch; border:1px solid var(--border);
|
|
709
|
+
border-radius:var(--radius-sm); max-width:100%; }
|
|
710
|
+
.table-wrap .data-table { border:none; }
|
|
711
|
+
.data-table { width:100%; border-collapse:collapse; font-size:.88rem; }
|
|
712
|
+
.table-wrap .data-table th { background:var(--surface2); position:sticky; top:0; white-space:nowrap; }
|
|
713
|
+
.data-table th, .data-table td { border:1px solid var(--border); padding:7px 10px; text-align:left;
|
|
714
|
+
vertical-align:top; }
|
|
715
|
+
.data-table th { background:var(--surface2); white-space:nowrap; }
|
|
716
|
+
.data-table td.cell-main { max-width:280px; overflow:hidden; text-overflow:ellipsis;
|
|
717
|
+
white-space:nowrap; }
|
|
718
|
+
.data-table tbody tr:nth-child(even) { background:var(--surface2); }
|
|
719
|
+
.data-table tbody tr:hover { background:var(--primary-soft, #F3E4DC); }
|
|
720
|
+
.cite-badge { display:inline-block; margin-left:6px; padding:1px 7px; border-radius:999px; font-size:.66rem; border:1px solid var(--border); vertical-align:middle; }
|
|
721
|
+
.cite-badge.cite-ok { color:#166534; border-color:#16a34a55; background:rgba(22,163,74,.08); }
|
|
722
|
+
.cite-badge.cite-retracted { color:#991b1b; border-color:#dc262688; background:rgba(220,38,38,.10); font-weight:700; }
|
|
723
|
+
.raw-tag { display:inline-block; margin-left:6px; font-size:.68rem; color:var(--insufficient);
|
|
724
|
+
background:var(--surface2); border:1px solid var(--border); border-radius:4px;
|
|
725
|
+
padding:0 5px; vertical-align:1px; font-family:'SF Mono',Menlo,monospace; }
|
|
726
|
+
.num { text-align:right; font-variant-numeric:tabular-nums; white-space:nowrap; }
|
|
727
|
+
.dir { display:inline-block; border-radius:999px; padding:1px 9px; font-size:.78rem; }
|
|
728
|
+
.dir.pos { background:var(--support); color:#fff; }
|
|
729
|
+
.dir.neg { background:var(--contradict); color:#fff; }
|
|
730
|
+
.dir.neu { background:var(--uncertain); color:#fff; }
|
|
731
|
+
.method-verdict { font-weight:700; }
|
|
732
|
+
.phase { border-left:3px solid var(--primary); padding:4px 0 4px 14px; margin:12px 0;
|
|
733
|
+
background:var(--surface2); border-radius:6px; }
|
|
734
|
+
.phase h3 { margin-top:4px; }
|
|
735
|
+
.conflict-card { border-left:3px solid var(--contradict); background:var(--surface2);
|
|
736
|
+
padding:10px 14px; margin:8px 0; border-radius:6px; }
|
|
737
|
+
.trace-row { margin:2px 0; font-size:.88rem; }
|
|
738
|
+
.trace-decision { font-weight:700; padding:4px 0; }
|
|
739
|
+
.trace-claim { margin-left:16px; padding:3px 0; }
|
|
740
|
+
.trace-evidence { margin-left:36px; color:var(--text); padding:2px 0; }
|
|
741
|
+
.chart-mount { display:none; width:100%; height:320px; margin-top:10px; }
|
|
742
|
+
.chart-mount.is-mounted { display:block; }
|
|
743
|
+
.chart-summary { color:var(--insufficient); font-size:.85rem; }
|
|
744
|
+
.academic-figure { margin:14px 0; }
|
|
745
|
+
.academic-figure svg { max-width:100%; height:auto; }
|
|
746
|
+
.academic-figure figcaption { font-size:.82rem; color:var(--insufficient); margin-top:6px; }
|
|
747
|
+
.matrix-tools { display:flex; gap:10px; flex-wrap:wrap; margin:8px 0; }
|
|
748
|
+
.matrix-tools input, .matrix-tools select { padding:5px 10px; font-size:.85rem;
|
|
749
|
+
border:1px solid var(--border); border-radius:6px; background:var(--surface); color:var(--text); }
|
|
750
|
+
.matrix-controls summary { cursor:pointer; color:var(--primary); font-size:.88rem; }
|
|
751
|
+
details.matrix-controls { margin-bottom:8px; }
|
|
752
|
+
code { font-family:'SF Mono',Menlo,monospace; font-size:.82em; background:var(--surface2);
|
|
753
|
+
padding:1px 4px; border-radius:4px; }
|
|
754
|
+
a { color:var(--primary); word-break:break-word; }
|
|
755
|
+
button:focus-visible, a:focus-visible, input:focus-visible, select:focus-visible, summary:focus-visible {
|
|
756
|
+
outline:3px solid color-mix(in srgb, var(--primary) 45%, transparent); outline-offset:3px;
|
|
757
|
+
}
|
|
758
|
+
.generated-theme { font-size:.76rem; letter-spacing:.08em; text-transform:uppercase; color:var(--insufficient); margin-right:auto; }
|
|
759
|
+
.report-section { margin-bottom:clamp(28px,4vw,58px); }
|
|
760
|
+
.section-narrative { width:100%; max-width:820px; margin-left:auto; margin-right:auto; }
|
|
761
|
+
.section-data { width:100%; max-width:1180px; margin-left:auto; margin-right:auto; }
|
|
762
|
+
.section-decision { width:100%; max-width:1040px; margin-left:auto; margin-right:auto; }
|
|
763
|
+
.decision-hero { position:relative; overflow:hidden; padding:clamp(22px,4vw,42px); border:1px solid var(--border);
|
|
764
|
+
border-radius:calc(var(--radius) + 4px); background:var(--surface2); }
|
|
765
|
+
.hero-decision { display:flex; gap:12px 18px; flex-wrap:wrap; align-items:center; margin-bottom:18px; }
|
|
766
|
+
.eyebrow, .hero-insight>span, .action-node>span { display:block; font-size:.72rem; font-weight:700; letter-spacing:.08em;
|
|
767
|
+
text-transform:uppercase; color:var(--insufficient); }
|
|
768
|
+
.hero-rationale { max-width:860px; font-family:var(--font-head); font-size:clamp(1.05rem,2vw,1.35rem); line-height:1.5; margin:0 0 28px; }
|
|
769
|
+
.hero-insights { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
|
|
770
|
+
.hero-insight { min-height:112px; padding:16px 18px; border-top:2px solid var(--border); background:var(--surface); }
|
|
771
|
+
.hero-insight.support { border-top-color:var(--support); } .hero-insight.uncertain { border-top-color:var(--uncertain); }
|
|
772
|
+
.hero-insight.risk { border-top-color:var(--contradict); } .hero-insight.next { border-top-color:var(--primary); }
|
|
773
|
+
.hero-insight p { margin:7px 0 0; font-size:.94rem; }
|
|
774
|
+
.hero-provenance { margin:18px 0 0; color:var(--insufficient); font-size:.82rem; }
|
|
775
|
+
.visual-heading { max-width:760px; margin-bottom:18px; } .visual-heading h3 { font-size:1.15rem; margin-bottom:6px; }
|
|
776
|
+
.visual-heading p { color:var(--insufficient); margin:0; }
|
|
777
|
+
.outcome-separation { margin:10px 0 24px; }
|
|
778
|
+
.outcome-groups { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(220px,100%),1fr)); gap:14px; }
|
|
779
|
+
.outcome-group { padding:16px; border:1px solid var(--border); border-radius:var(--radius-sm); background:var(--surface2); }
|
|
780
|
+
.outcome-group h3 { margin:0 0 10px; } .outcome-group ul { list-style:none; margin:0; padding:0; }
|
|
781
|
+
.outcome-group li { display:flex; flex-direction:column; gap:7px; padding:9px 0; border-top:1px solid var(--border); }
|
|
782
|
+
.outcome-group li:first-child { border-top:0; } .outcome-states { display:flex; gap:6px; flex-wrap:wrap; }
|
|
783
|
+
.visual-surface { margin:22px 0; padding:16px; border:1px solid var(--border); background:var(--surface2); border-radius:var(--radius); }
|
|
784
|
+
.matrix-controls { margin:0 0 12px; } .matrix-tools { align-items:center; }
|
|
785
|
+
.matrix-tools input { min-width:min(360px,100%); flex:1; }
|
|
786
|
+
.evidence-matrix th:nth-child(1) { width:72px; } .evidence-matrix th:nth-child(3) { width:110px; }
|
|
787
|
+
.evidence-matrix th:nth-child(4) { width:130px; } .evidence-matrix th:nth-child(6) { width:92px; }
|
|
788
|
+
.claim-cell { min-width:320px; max-width:520px; } .claim-cell>p { margin:0 0 6px; }
|
|
789
|
+
.matrix-row-detail { font-size:.78rem; color:var(--insufficient); } .matrix-row-detail summary { color:var(--primary); cursor:pointer; }
|
|
790
|
+
.matrix-row-detail p { margin:4px 0; }
|
|
791
|
+
.quality-cell { display:flex; align-items:center; gap:8px; min-width:90px; }
|
|
792
|
+
.quality-meter { display:block; width:64px; height:5px; border-radius:99px; background:var(--border); overflow:hidden; }
|
|
793
|
+
.quality-meter i { display:block; height:100%; background:var(--primary); border-radius:inherit; }
|
|
794
|
+
.evidence-tribunal { margin-top:8px; } .tribunal-summary { margin:0 0 18px; }
|
|
795
|
+
.tribunal-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
|
|
796
|
+
.tribunal-card { padding:16px 18px; border:1px solid var(--border); border-radius:var(--radius-sm); background:var(--surface2); }
|
|
797
|
+
.tribunal-card header { display:flex; gap:9px; align-items:center; } .tribunal-card header>span { font-weight:800; }
|
|
798
|
+
.tribunal-card.supported { border-top:3px solid var(--support); } .tribunal-card.uncertain { border-top:3px solid var(--uncertain); }
|
|
799
|
+
.tribunal-card.contradicted { border-top:3px solid var(--contradict); } .tribunal-card.missing { border-top:3px solid var(--insufficient); }
|
|
800
|
+
.tribunal-card ul { margin:10px 0 0; padding-left:18px; } .tribunal-card li { margin:7px 0; }
|
|
801
|
+
.supporting-visual { margin-top:16px; } .supporting-visual summary { cursor:pointer; color:var(--primary); }
|
|
802
|
+
.trace-chain { display:grid; gap:14px; } .trace-chain-card { padding:16px 18px; border:1px solid var(--border); border-radius:var(--radius-sm); background:var(--surface2); }
|
|
803
|
+
.trace-claim-node p { margin:5px 0 0; } .trace-arrow { color:var(--insufficient); text-align:center; }
|
|
804
|
+
.trace-evidence-list { display:grid; gap:7px; } .trace-evidence-node { display:flex; flex-wrap:wrap; gap:7px 10px; align-items:center; padding:8px 10px; background:var(--surface); border-radius:var(--radius-sm); }
|
|
805
|
+
.evidence-to-action { display:flex; gap:10px; align-items:stretch; overflow-x:auto; padding:6px 0 20px; margin-bottom:22px; }
|
|
806
|
+
.action-node { flex:1 0 165px; padding:14px 15px; border:1px solid var(--border); border-radius:var(--radius-sm); background:var(--surface2); }
|
|
807
|
+
.action-node p { margin:7px 0 0; font-size:.84rem; } .flow-arrow { align-self:center; color:var(--insufficient); }
|
|
808
|
+
.relation-note { display:block; margin-top:5px; font-size:.68rem; color:var(--insufficient); line-height:1.35; }
|
|
809
|
+
.semantic-note, .chart-interpretation { margin:9px 0 0; color:var(--insufficient); font-size:.82rem; }
|
|
810
|
+
.detail-expander { margin-top:7px; } .detail-expander>summary { cursor:pointer; color:var(--primary); font-size:.78rem; }
|
|
811
|
+
.detail-body { margin-top:8px; padding:10px 12px; border-left:2px solid var(--border); background:var(--surface2); }
|
|
812
|
+
.detail-body p { margin:0; white-space:normal; }
|
|
813
|
+
.evidence-detail-grid, .source-detail-grid { margin:10px 0 0; display:grid; grid-template-columns:minmax(120px,170px) 1fr; gap:0; }
|
|
814
|
+
.evidence-detail-row, .source-detail-row { display:contents; }
|
|
815
|
+
.evidence-detail-grid dt, .evidence-detail-grid dd, .source-detail-grid dt, .source-detail-grid dd { margin:0; padding:7px 8px; border-top:1px solid var(--border); }
|
|
816
|
+
.evidence-detail-grid dt, .source-detail-grid dt { color:var(--insufficient); font-size:.75rem; }
|
|
817
|
+
.evidence-detail-grid dd, .source-detail-grid dd { font-size:.8rem; overflow-wrap:anywhere; }
|
|
818
|
+
.tribunal-count { margin-left:auto; min-width:24px; height:24px; display:inline-grid; place-items:center; border-radius:999px; background:var(--surface); color:var(--insufficient); font-size:.72rem; }
|
|
819
|
+
.tribunal-evidence-refs { display:flex; gap:5px; flex-wrap:wrap; margin-top:5px; }
|
|
820
|
+
.tribunal-more>summary { margin-top:10px; cursor:pointer; color:var(--primary); font-size:.8rem; }
|
|
821
|
+
.method-review-group { margin:0 0 26px; }
|
|
822
|
+
.method-review-title { display:flex; align-items:flex-start; justify-content:space-between; gap:14px; margin-bottom:12px; }
|
|
823
|
+
.method-review-title h3 { margin:0; }
|
|
824
|
+
.method-audit-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(210px,1fr)); gap:10px; }
|
|
825
|
+
.method-audit-item { border:1px solid var(--border); border-radius:var(--radius-sm); background:var(--surface2); padding:12px; }
|
|
826
|
+
.method-audit-head { display:flex; align-items:flex-start; justify-content:space-between; gap:10px; }
|
|
827
|
+
.method-audit-item p { margin:7px 0 0; font-size:.82rem; } .method-status { font-size:.7rem; color:var(--insufficient); white-space:nowrap; }
|
|
828
|
+
.method-guard-wrap { margin-top:12px; padding:12px 14px; border-left:3px solid var(--primary); background:var(--surface2); }
|
|
829
|
+
.scope-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
|
|
830
|
+
.scope-card, .retrieval-grid>article, .retrieval-coverage, .boundary-block, .visual-suppressed { border:1px solid var(--border); border-radius:var(--radius-sm); background:var(--surface2); padding:15px 16px; }
|
|
831
|
+
.scope-card h3, .retrieval-grid h3, .retrieval-coverage h3, .boundary-block h3 { margin:0 0 8px; }
|
|
832
|
+
.retrieval-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; margin-bottom:12px; }
|
|
833
|
+
.retrieval-coverage code { margin-right:5px; }
|
|
834
|
+
|
|
835
|
+
/* Two-layer report shell: the content contract is shared by all five themes. */
|
|
836
|
+
.report-brand-row { display:flex; align-items:center; gap:10px; margin-bottom:10px; }
|
|
837
|
+
.report-brand { font-weight:750; letter-spacing:.02em; }
|
|
838
|
+
.generated-theme-chip { font-size:.7rem; color:var(--insufficient); border:1px solid var(--border); border-radius:999px; padding:2px 8px; }
|
|
839
|
+
.data-origin-chip { font-size:.7rem; border:1px solid var(--border); border-radius:999px; padding:2px 8px; color:var(--insufficient); margin-left:8px; overflow-wrap:anywhere; }
|
|
840
|
+
.data-origin-chip[data-origin="synthetic"], .data-origin-chip[data-origin="hybrid"] { border-color:#b45309; color:#92400e; background:rgba(217,119,6,.10); font-weight:600; }
|
|
841
|
+
.report-view-switcher { display:flex; gap:8px; margin-top:18px; }
|
|
842
|
+
.report-view-btn { border:1px solid var(--border); background:var(--surface); color:var(--text); border-radius:999px; padding:7px 14px; cursor:pointer; font-size:.82rem; }
|
|
843
|
+
.report-view-btn.active { background:var(--primary); border-color:var(--primary); color:#fff; }
|
|
844
|
+
.report-page[hidden] { display:none !important; }
|
|
845
|
+
.brief-block { width:100%; max-width:1040px; margin:0 auto clamp(42px,6vw,76px); }
|
|
846
|
+
.brief-block-header { max-width:760px; margin-bottom:22px; }
|
|
847
|
+
.brief-block-header h2 { margin:0 0 7px; font-family:var(--font-head); font-size:1.45rem; }
|
|
848
|
+
.brief-block-header p { margin:0; color:var(--insufficient); }
|
|
849
|
+
.brief-source-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
|
|
850
|
+
.brief-source { border:1px solid var(--border); border-radius:var(--radius-sm); background:var(--surface2); padding:14px 15px; }
|
|
851
|
+
.brief-source h3 { margin:7px 0 4px; font-size:.9rem; } .brief-source p, .brief-source-more { color:var(--insufficient); font-size:.78rem; }
|
|
852
|
+
.full-report-intro { width:100%; max-width:900px; margin:0 auto 30px; }
|
|
853
|
+
.full-report-intro h2 { font-family:var(--font-head); margin:0 0 7px; font-size:1.8rem; }
|
|
854
|
+
.full-report-intro p { margin:0; color:var(--insufficient); }
|
|
855
|
+
.full-report-layout { position:relative; display:grid; width:100%; grid-template-columns:minmax(180px,240px) minmax(0,1fr); gap:clamp(24px,3vw,42px); align-items:start; }
|
|
856
|
+
/* 桌面双栏:内容列收口残余的行内可滚动溢出(clip 不产生滚动条也不破坏 sticky)。 */
|
|
857
|
+
@media (min-width:981px) { .full-report-content { overflow-x:clip; } }
|
|
858
|
+
.full-report-toc { position:sticky; top:18px; max-height:calc(100vh - 36px); overflow:auto; border-right:1px solid var(--border); padding-right:18px; }
|
|
859
|
+
.toc-head { display:flex; align-items:center; justify-content:space-between; gap:8px; margin-bottom:12px; }
|
|
860
|
+
.toc-head strong { font-size:.78rem; text-transform:uppercase; letter-spacing:.08em; color:var(--insufficient); }
|
|
861
|
+
.toc-collapse { border:0; background:transparent; color:var(--primary); cursor:pointer; font-size:.72rem; padding:2px; }
|
|
862
|
+
.full-report-toc nav { display:grid; gap:4px; }
|
|
863
|
+
.full-report-toc a { display:block; color:var(--insufficient); text-decoration:none; padding:7px 8px; border-left:2px solid transparent; font-size:.8rem; line-height:1.4; }
|
|
864
|
+
.full-report-toc a.active { color:var(--text); border-left-color:var(--primary); background:var(--surface2); }
|
|
865
|
+
:root .full-report-layout.toc-collapsed { grid-template-columns:minmax(0,1fr); gap:0; }
|
|
866
|
+
.full-report-layout.toc-collapsed .full-report-toc nav, .full-report-layout.toc-collapsed .toc-head strong { display:none; }
|
|
867
|
+
.full-report-layout.toc-collapsed .full-report-toc { position:absolute; left:0; top:0; width:0; max-height:none; padding:0; border:0; overflow:visible; z-index:6; }
|
|
868
|
+
.full-report-layout.toc-collapsed .toc-head { margin:0; }
|
|
869
|
+
.full-report-layout.toc-collapsed .toc-collapse { position:sticky; top:18px; writing-mode:horizontal-tb; white-space:nowrap; border:1px solid var(--border); border-radius:999px; padding:7px 10px; background:var(--surface); box-shadow:var(--shadow); transform:translateX(-6px); }
|
|
870
|
+
.full-report-content { width:100%; min-width:0; max-width:960px; }
|
|
871
|
+
.full-report-layout.toc-collapsed .full-report-content { max-width:none; }
|
|
872
|
+
.full-chapter { scroll-margin-top:24px; padding:0 0 54px; margin:0 0 54px; border-bottom:1px solid var(--border); }
|
|
873
|
+
.full-chapter:last-child { border-bottom:0; }
|
|
874
|
+
.full-chapter-header { max-width:760px; margin-bottom:24px; }
|
|
875
|
+
.full-chapter-header h2 { margin:0 0 8px; font-family:var(--font-head); font-size:1.55rem; line-height:1.25; }
|
|
876
|
+
.full-chapter-lead { margin:0; color:var(--insufficient); }
|
|
877
|
+
.full-chapter-body>*+* { margin-top:20px; }
|
|
878
|
+
.report-footer { margin-top:64px; padding-top:18px; border-top:1px solid var(--border); color:var(--insufficient); font-size:.76rem; }
|
|
879
|
+
|
|
880
|
+
/* Lieflat gallery cards — AI-composed, data-driven charts.
|
|
881
|
+
Card four-piece set: conclusion title (700) + subtitle (legend, `·`
|
|
882
|
+
separated) + themed inline SVG + uppercase source line; caption optional.
|
|
883
|
+
Themes tune surface/radius/typography; identity lives in themes/*.css. */
|
|
884
|
+
.lieflat-gallery-container { display:flex; flex-direction:column; gap:22px; margin:6px 0 0; }
|
|
885
|
+
.lieflat-card { margin:0; padding:22px 24px 18px; border:1px solid var(--border);
|
|
886
|
+
border-radius:calc(var(--radius) + 6px); background:var(--surface);
|
|
887
|
+
box-shadow:var(--shadow); }
|
|
888
|
+
.lieflat-title { margin:0 0 8px; font-family:var(--font-head); font-size:1.12rem;
|
|
889
|
+
font-weight:700; line-height:1.35; }
|
|
890
|
+
.lieflat-sub { margin:0 0 14px; color:var(--insufficient); font-size:.85rem; line-height:1.55; }
|
|
891
|
+
.lieflat-figure svg { display:block; width:100%; height:auto; border:1px solid var(--border);
|
|
892
|
+
border-radius:var(--radius-sm); background:var(--surface2); }
|
|
893
|
+
.lieflat-caption { margin:10px 0 0; font-size:.8rem; color:var(--insufficient); line-height:1.5; }
|
|
894
|
+
.lieflat-src { margin:10px 0 0; font-size:.68rem; font-weight:600; letter-spacing:.08em;
|
|
895
|
+
text-transform:uppercase; color:var(--insufficient); }
|
|
896
|
+
.lieflat-suppressed { margin:0; padding:12px 16px; border:1px dashed var(--border);
|
|
897
|
+
border-radius:var(--radius-sm); background:var(--surface2);
|
|
898
|
+
font-size:.82rem; color:var(--insufficient); }
|
|
899
|
+
.lieflat-suppressed ul { margin:8px 0 0; padding-left:18px; }
|
|
900
|
+
.lieflat-suppressed li { margin:3px 0; }
|
|
901
|
+
|
|
902
|
+
@media print { body { background:#fff; } .controls, .report-view-switcher, .full-report-toc { display:none !important; }
|
|
903
|
+
.report-shell { max-width:none !important; padding:0 !important; }
|
|
904
|
+
.report-page-brief { display:none !important; } .report-page-full { display:block !important; }
|
|
905
|
+
.full-report-layout { display:block !important; } .full-report-content { max-width:none !important; }
|
|
906
|
+
.full-chapter { break-before:auto; break-inside:auto; }
|
|
907
|
+
.report-section { box-shadow:none !important; border:none !important; break-inside:avoid-page; }
|
|
908
|
+
.report-section svg { border:none; } .table-wrap { overflow:visible; }
|
|
909
|
+
.lieflat-card { box-shadow:none !important; break-inside:avoid; }
|
|
910
|
+
.lieflat-figure svg { border:none; }
|
|
911
|
+
details>summary { display:none !important; } details>*:not(summary) { display:block !important; }
|
|
912
|
+
.decision-hero, .tribunal-card, .trace-chain-card, .action-node, .method-audit-item { box-shadow:none !important; background:#fff !important; }
|
|
913
|
+
a { color:#000; text-decoration:underline; } }
|
|
914
|
+
@media (max-width:980px) {
|
|
915
|
+
/* 网格 item 收缩安全:阻止子内容 min-content 把 1fr 轨道撑破(移动端/平板横向裁切)。 */
|
|
916
|
+
.full-report-layout { grid-template-columns:minmax(0,1fr); gap:18px; }
|
|
917
|
+
.brief-block-body > *, .outcome-separation, .visual-surface,
|
|
918
|
+
.tribunal-grid > *, .hero-insights > *, .brief-source-grid > * { min-width:0; }
|
|
919
|
+
/* 章节直接子元素(table-wrap / evidence-to-action 等)默认 min-width:auto,
|
|
920
|
+
会把来源表等宽内容的 min-content 一路传给 shell —— 显式放开收缩。
|
|
921
|
+
注意用 .table-wrap .data-table 同强度选择器,否则压不过基座 nowrap。 */
|
|
922
|
+
.full-chapter-body > *, .table-wrap, .evidence-to-action { min-width:0; max-width:100%; }
|
|
923
|
+
.table-wrap .data-table th { white-space:normal; }
|
|
924
|
+
.table-wrap .data-table th, .table-wrap .data-table td { overflow-wrap:anywhere; word-break:break-word; }
|
|
925
|
+
/* 窄屏放弃 nowrap+省略号:让主单元格换行,否则行 min-content 撑破表格容器。 */
|
|
926
|
+
.table-wrap .data-table td.cell-main { white-space:normal; max-width:none; }
|
|
927
|
+
/* 定义网格/范围卡片里的 snake_case 枚举值(如 frame.json 的
|
|
928
|
+
first_programming_course_no_prior_text_based_programming)是不可断行长
|
|
929
|
+
token,必须允许任意断行,否则 min-content 直接撑破窄屏。 */
|
|
930
|
+
.scope-card, .scope-text, .scope-grid dt, .scope-grid dd,
|
|
931
|
+
.evidence-detail-grid dd, .source-detail-grid dd,
|
|
932
|
+
.retrieval-grid article, .retrieval-grid li { min-width:0;
|
|
933
|
+
overflow-wrap:anywhere; }
|
|
934
|
+
.full-report-toc { position:relative; top:auto; max-height:none; border:1px solid var(--border); border-radius:var(--radius-sm); padding:12px; }
|
|
935
|
+
.full-report-toc nav { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); }
|
|
936
|
+
:root .full-report-layout.toc-collapsed { grid-template-columns:1fr; }
|
|
937
|
+
.full-report-layout.toc-collapsed .full-report-toc { position:relative; width:100%; padding:10px 12px; border:1px solid var(--border); }
|
|
938
|
+
.full-report-layout.toc-collapsed .toc-collapse { position:static; transform:none; padding:4px 8px; box-shadow:none; }
|
|
939
|
+
.full-report-layout.toc-collapsed .full-report-toc nav { display:none; }
|
|
940
|
+
}
|
|
941
|
+
@media (max-width:720px) {
|
|
942
|
+
.controls { width:calc(100% - 24px); margin-bottom:10px; padding-left:8px; padding-right:8px; }
|
|
943
|
+
.report-shell { width:100%; padding:12px 14px 56px; }
|
|
944
|
+
.report-header { width:100%; }
|
|
945
|
+
.report-header h1 { font-size:1.3rem; overflow-wrap:anywhere; }
|
|
946
|
+
.report-header .meta, .brief-source h3, .claim-cell, .detail-body, .source-detail-grid dd { overflow-wrap:anywhere; word-break:break-word; }
|
|
947
|
+
.data-table { font-size:.78rem; }
|
|
948
|
+
.hero-insights, .tribunal-grid, .scope-grid, .retrieval-grid, .brief-source-grid, .method-audit-grid { grid-template-columns:1fr; }
|
|
949
|
+
/* 网格收缩安全:1fr 轨道 min 改 0、auto-fit 轨道 min 随容器收缩(min(180px,100%)),
|
|
950
|
+
阻断固定 px 最小值 -> min-content 爆炸 -> 移动端横向溢出 的链条。 */
|
|
951
|
+
.full-report-content, .full-chapter, .full-chapter-body, .brief-block-body,
|
|
952
|
+
.outcome-separation, .visual-surface, .report-page-full, .report-page-brief { min-width:0; }
|
|
953
|
+
.outcome-groups { grid-template-columns:repeat(auto-fit,minmax(min(180px,100%),1fr)); }
|
|
954
|
+
.report-view-switcher { width:100%; }
|
|
955
|
+
.report-view-btn { flex:1; min-height:42px; }
|
|
956
|
+
.lang-btn, .toc-collapse { min-height:40px; }
|
|
957
|
+
.lang-btn { min-width:46px; }
|
|
958
|
+
.detail-expander>summary, .matrix-controls summary, .supporting-visual summary, .tribunal-more>summary { padding:7px 0; min-height:38px; display:flex; align-items:center; }
|
|
959
|
+
.full-report-toc nav { grid-template-columns:1fr; }
|
|
960
|
+
.full-chapter { width:100%; margin-bottom:38px; padding-bottom:38px; }
|
|
961
|
+
.full-chapter-header, .brief-block-header, .visual-heading { max-width:100%; }
|
|
962
|
+
.evidence-detail-grid, .source-detail-grid { grid-template-columns:1fr; }
|
|
963
|
+
.evidence-detail-grid dt, .evidence-detail-grid dd,
|
|
964
|
+
.source-detail-grid dt, .source-detail-grid dd { min-width:0; overflow-wrap:anywhere; }
|
|
965
|
+
.evidence-detail-grid dt, .source-detail-grid dt { padding-bottom:2px; }
|
|
966
|
+
.evidence-detail-grid dd, .source-detail-grid dd { padding-top:2px; }
|
|
967
|
+
.decision-hero { padding:20px 16px; }
|
|
968
|
+
.section-data, .section-decision, .section-narrative { width:100%; max-width:100%; }
|
|
969
|
+
.visual-surface, .outcome-separation, .trace-chain { max-width:100%; }
|
|
970
|
+
.chart-mount { height:clamp(240px,62vw,320px); }
|
|
971
|
+
.evidence-to-action { flex-direction:column; overflow:visible; }
|
|
972
|
+
.flow-arrow { transform:rotate(90deg); }
|
|
973
|
+
.matrix-wrap { width:100%; border:0; overflow:visible; }
|
|
974
|
+
.evidence-matrix thead { display:none; }
|
|
975
|
+
.evidence-matrix, .evidence-matrix tbody, .evidence-matrix tr, .evidence-matrix td { display:block; width:100%; }
|
|
976
|
+
.evidence-matrix tr { border:1px solid var(--border); border-radius:var(--radius-sm); margin-bottom:12px; padding:10px; background:var(--surface); }
|
|
977
|
+
.evidence-matrix td { border:0; padding:5px 0; }
|
|
978
|
+
.claim-cell { min-width:0; max-width:none; }
|
|
979
|
+
}
|
|
980
|
+
|
|
981
|
+
/* EduEvidence Motion Template
|
|
982
|
+
Motion explains hierarchy only. It never changes evidence meaning or numeric state. */
|
|
983
|
+
|
|
984
|
+
.motion-ready [data-animate] {
|
|
985
|
+
opacity:0;
|
|
986
|
+
transform:translateY(10px);
|
|
987
|
+
transition:opacity .52s cubic-bezier(.22,.61,.36,1),
|
|
988
|
+
transform .52s cubic-bezier(.22,.61,.36,1);
|
|
989
|
+
transition-delay:var(--motion-delay,0ms);
|
|
990
|
+
}
|
|
991
|
+
.motion-ready [data-animate].is-visible { opacity:1; transform:none; }
|
|
992
|
+
|
|
993
|
+
.motion-ready .quality-meter i,
|
|
994
|
+
.motion-ready .balance-track i {
|
|
995
|
+
transform:scaleX(0);
|
|
996
|
+
transform-origin:left center;
|
|
997
|
+
transition:transform .72s cubic-bezier(.22,.61,.36,1) var(--motion-delay,0ms);
|
|
998
|
+
}
|
|
999
|
+
.motion-ready .quality-meter.is-visible i,
|
|
1000
|
+
.motion-ready .balance-track.is-visible i { transform:scaleX(1); }
|
|
1001
|
+
|
|
1002
|
+
.motion-ready .flow-arrow {
|
|
1003
|
+
opacity:.18;
|
|
1004
|
+
transform:translateX(-4px);
|
|
1005
|
+
transition:opacity .36s ease, transform .36s ease;
|
|
1006
|
+
transition-delay:var(--motion-delay,0ms);
|
|
1007
|
+
}
|
|
1008
|
+
.motion-ready .flow-arrow.is-visible { opacity:1; transform:none; }
|
|
1009
|
+
|
|
1010
|
+
.motion-ready .detail-expander[open] .detail-body {
|
|
1011
|
+
animation:eduevidenceDetailReveal .24s cubic-bezier(.22,.61,.36,1) both;
|
|
1012
|
+
}
|
|
1013
|
+
@keyframes eduevidenceDetailReveal {
|
|
1014
|
+
from { opacity:0; transform:translateY(-4px); }
|
|
1015
|
+
to { opacity:1; transform:none; }
|
|
1016
|
+
}
|
|
1017
|
+
|
|
1018
|
+
.motion-ready .report-page:not([hidden]) {
|
|
1019
|
+
animation:eduevidencePageReveal .24s cubic-bezier(.22,.61,.36,1) both;
|
|
1020
|
+
}
|
|
1021
|
+
@keyframes eduevidencePageReveal {
|
|
1022
|
+
from { opacity:0; transform:translateY(4px); }
|
|
1023
|
+
to { opacity:1; transform:none; }
|
|
1024
|
+
}
|
|
1025
|
+
|
|
1026
|
+
.motion-ready .full-report-toc a {
|
|
1027
|
+
transition:color .18s ease, background-color .18s ease,
|
|
1028
|
+
border-color .18s ease, box-shadow .18s ease;
|
|
1029
|
+
}
|
|
1030
|
+
|
|
1031
|
+
/* ────────────────────────────────────────────────────────────────────────
|
|
1032
|
+
data-lieflat gallery reveal — aligned with the Lieflat mono-tokens spec:
|
|
1033
|
+
lf-pop scale 0→1, cubic-bezier(.2,.7,.3,1.3), 500ms (quarticOut family)
|
|
1034
|
+
lf-fade 900ms ease
|
|
1035
|
+
lf-draw dasharray 1, 1s cubic-bezier(.4,0,.2,1)
|
|
1036
|
+
--motion-delay inline variable carries the per-element stagger
|
|
1037
|
+
(dot matrices 8–15ms, bars 80–130ms — set by the renderer).
|
|
1038
|
+
Gated by .js-lf (added by motion.js only when JS runs and motion is not
|
|
1039
|
+
reduced): without JS everything stays visible — static-first, never broken.
|
|
1040
|
+
.is-live on the [data-lieflat] card starts the one-shot reveal; removing
|
|
1041
|
+
and re-adding it replays (click-to-replay, timers cleared by motion.js).
|
|
1042
|
+
──────────────────────────────────────────────────────────────────────── */
|
|
1043
|
+
.js-lf [data-lieflat] .lf-pop,
|
|
1044
|
+
.js-lf [data-lieflat] .lf-fade,
|
|
1045
|
+
.js-lf [data-lieflat] .lf-draw { opacity:0; }
|
|
1046
|
+
.js-lf [data-lieflat] .lf-draw { stroke-dasharray:1; stroke-dashoffset:1; }
|
|
1047
|
+
|
|
1048
|
+
.js-lf [data-lieflat].is-live .lf-pop {
|
|
1049
|
+
opacity:1;
|
|
1050
|
+
transform-box:fill-box;
|
|
1051
|
+
transform-origin:center;
|
|
1052
|
+
animation:eduevidenceLfPop .5s cubic-bezier(.2,.7,.3,1.3) both;
|
|
1053
|
+
animation-delay:var(--motion-delay,0ms);
|
|
1054
|
+
}
|
|
1055
|
+
.js-lf [data-lieflat].is-live .lf-fade {
|
|
1056
|
+
opacity:1;
|
|
1057
|
+
animation:eduevidenceLfFade .9s ease both;
|
|
1058
|
+
animation-delay:var(--motion-delay,0ms);
|
|
1059
|
+
}
|
|
1060
|
+
.js-lf [data-lieflat].is-live .lf-draw {
|
|
1061
|
+
animation:eduevidenceLfDraw 1s cubic-bezier(.4,0,.2,1) both;
|
|
1062
|
+
animation-delay:var(--motion-delay,0ms);
|
|
1063
|
+
}
|
|
1064
|
+
@keyframes eduevidenceLfPop {
|
|
1065
|
+
from { transform:scale(0); opacity:0; }
|
|
1066
|
+
to { transform:none; opacity:1; }
|
|
1067
|
+
}
|
|
1068
|
+
@keyframes eduevidenceLfFade {
|
|
1069
|
+
from { opacity:0; }
|
|
1070
|
+
to { opacity:1; }
|
|
1071
|
+
}
|
|
1072
|
+
@keyframes eduevidenceLfDraw {
|
|
1073
|
+
to { stroke-dashoffset:0; }
|
|
1074
|
+
}
|
|
1075
|
+
|
|
1076
|
+
.js-lf [data-lieflat] { cursor:pointer; }
|
|
1077
|
+
|
|
1078
|
+
@media (hover:hover) {
|
|
1079
|
+
.motion-ready .tribunal-card:hover,
|
|
1080
|
+
.motion-ready .trace-chain-card:hover,
|
|
1081
|
+
.motion-ready .outcome-group:hover,
|
|
1082
|
+
.motion-ready .action-node:hover,
|
|
1083
|
+
.motion-ready .method-audit-item:hover {
|
|
1084
|
+
transform:translateY(-2px);
|
|
1085
|
+
}
|
|
1086
|
+
.motion-ready .evidence-matrix tbody tr:hover .dir {
|
|
1087
|
+
transform:translateY(-1px);
|
|
1088
|
+
filter:saturate(1.08);
|
|
1089
|
+
}
|
|
1090
|
+
}
|
|
1091
|
+
|
|
1092
|
+
@media (prefers-reduced-motion:reduce) {
|
|
1093
|
+
.motion-ready [data-animate],
|
|
1094
|
+
.motion-ready .quality-meter i,
|
|
1095
|
+
.motion-ready .balance-track i,
|
|
1096
|
+
.motion-ready .flow-arrow,
|
|
1097
|
+
.motion-ready .dir,
|
|
1098
|
+
.motion-ready .detail-body,
|
|
1099
|
+
.motion-ready .report-page,
|
|
1100
|
+
.motion-ready .full-report-toc a {
|
|
1101
|
+
opacity:1 !important;
|
|
1102
|
+
transform:none !important;
|
|
1103
|
+
transition:none !important;
|
|
1104
|
+
animation:none !important;
|
|
1105
|
+
}
|
|
1106
|
+
.js-lf [data-lieflat] .lf-pop,
|
|
1107
|
+
.js-lf [data-lieflat] .lf-fade {
|
|
1108
|
+
opacity:1 !important;
|
|
1109
|
+
transform:none !important;
|
|
1110
|
+
animation:none !important;
|
|
1111
|
+
}
|
|
1112
|
+
.js-lf [data-lieflat] .lf-draw {
|
|
1113
|
+
opacity:1 !important;
|
|
1114
|
+
animation:none !important;
|
|
1115
|
+
stroke-dasharray:none !important;
|
|
1116
|
+
stroke-dashoffset:0 !important;
|
|
1117
|
+
}
|
|
1118
|
+
html { scroll-behavior:auto; }
|
|
1119
|
+
}
|
|
1120
|
+
|
|
1121
|
+
@media print {
|
|
1122
|
+
[data-animate], .quality-meter i, .balance-track i, .flow-arrow {
|
|
1123
|
+
opacity:1 !important;
|
|
1124
|
+
transform:none !important;
|
|
1125
|
+
transition:none !important;
|
|
1126
|
+
animation:none !important;
|
|
1127
|
+
}
|
|
1128
|
+
[data-lieflat] .lf-pop,
|
|
1129
|
+
[data-lieflat] .lf-fade,
|
|
1130
|
+
[data-lieflat] .lf-draw {
|
|
1131
|
+
opacity:1 !important;
|
|
1132
|
+
transform:none !important;
|
|
1133
|
+
animation:none !important;
|
|
1134
|
+
stroke-dasharray:none !important;
|
|
1135
|
+
stroke-dashoffset:0 !important;
|
|
1136
|
+
}
|
|
1137
|
+
}
|
|
1138
|
+
|
|
1139
|
+
/* Reading system: shared semantics; the five original theme identities remain. */
|
|
1140
|
+
:root {
|
|
1141
|
+
--reader-line: color-mix(in srgb, var(--text) 14%, transparent);
|
|
1142
|
+
--reader-muted: color-mix(in srgb, var(--text) 74%, var(--bg));
|
|
1143
|
+
}
|
|
1144
|
+
html {
|
|
1145
|
+
scroll-padding-top: 100px;
|
|
1146
|
+
}
|
|
1147
|
+
html,
|
|
1148
|
+
body {
|
|
1149
|
+
overflow-x: clip;
|
|
1150
|
+
}
|
|
1151
|
+
button,
|
|
1152
|
+
a,
|
|
1153
|
+
input,
|
|
1154
|
+
select,
|
|
1155
|
+
summary {
|
|
1156
|
+
-webkit-tap-highlight-color: transparent;
|
|
1157
|
+
}
|
|
1158
|
+
button:focus-visible,
|
|
1159
|
+
a:focus-visible,
|
|
1160
|
+
summary:focus-visible,
|
|
1161
|
+
input:focus-visible,
|
|
1162
|
+
select:focus-visible,
|
|
1163
|
+
[tabindex]:focus-visible {
|
|
1164
|
+
outline: 2px solid var(--primary);
|
|
1165
|
+
outline-offset: 4px;
|
|
1166
|
+
}
|
|
1167
|
+
.reader-progress {
|
|
1168
|
+
position: fixed;
|
|
1169
|
+
top: 0;
|
|
1170
|
+
left: 0;
|
|
1171
|
+
right: 0;
|
|
1172
|
+
height: 3px;
|
|
1173
|
+
z-index: 80;
|
|
1174
|
+
pointer-events: none;
|
|
1175
|
+
}
|
|
1176
|
+
.reader-progress > span {
|
|
1177
|
+
display: block;
|
|
1178
|
+
width: 100%;
|
|
1179
|
+
height: 100%;
|
|
1180
|
+
background: var(--primary);
|
|
1181
|
+
transform: scaleX(0);
|
|
1182
|
+
transform-origin: left;
|
|
1183
|
+
}
|
|
1184
|
+
:root[data-theme] .controls.reader-toolbar {
|
|
1185
|
+
position: sticky;
|
|
1186
|
+
top: 0;
|
|
1187
|
+
z-index: 60;
|
|
1188
|
+
display: flex;
|
|
1189
|
+
justify-content: space-between;
|
|
1190
|
+
gap: 16px;
|
|
1191
|
+
align-items: center;
|
|
1192
|
+
width: 100%;
|
|
1193
|
+
max-width: none;
|
|
1194
|
+
min-height: 70px;
|
|
1195
|
+
margin: 0;
|
|
1196
|
+
padding: 12px clamp(18px, 4vw, 60px);
|
|
1197
|
+
border: 0;
|
|
1198
|
+
border-bottom: 1px solid var(--reader-line);
|
|
1199
|
+
border-radius: 0;
|
|
1200
|
+
background: var(--bg);
|
|
1201
|
+
box-shadow: none;
|
|
1202
|
+
backdrop-filter: none;
|
|
1203
|
+
}
|
|
1204
|
+
.reader-home {
|
|
1205
|
+
display: flex;
|
|
1206
|
+
align-items: center;
|
|
1207
|
+
gap: 14px;
|
|
1208
|
+
color: var(--text);
|
|
1209
|
+
text-decoration: none;
|
|
1210
|
+
font-family: var(--font-head);
|
|
1211
|
+
font-size: 17px;
|
|
1212
|
+
font-weight: 600;
|
|
1213
|
+
}
|
|
1214
|
+
.reader-home .generated-theme {
|
|
1215
|
+
font: 10px var(--font-ui);
|
|
1216
|
+
letter-spacing: 0.03em;
|
|
1217
|
+
font-weight: 400;
|
|
1218
|
+
color: var(--reader-muted);
|
|
1219
|
+
padding-left: 14px;
|
|
1220
|
+
border-left: 1px solid var(--reader-line);
|
|
1221
|
+
}
|
|
1222
|
+
.reader-tools,
|
|
1223
|
+
.reader-view-controls {
|
|
1224
|
+
display: flex;
|
|
1225
|
+
align-items: center;
|
|
1226
|
+
gap: 8px;
|
|
1227
|
+
}
|
|
1228
|
+
.reader-tools .lang-switcher {
|
|
1229
|
+
gap: 4px;
|
|
1230
|
+
}
|
|
1231
|
+
.reader-tools .lang-switcher > span {
|
|
1232
|
+
display: none;
|
|
1233
|
+
}
|
|
1234
|
+
.reader-print {
|
|
1235
|
+
font: 12px var(--font-ui);
|
|
1236
|
+
padding: 7px 10px;
|
|
1237
|
+
background: transparent;
|
|
1238
|
+
color: var(--text);
|
|
1239
|
+
border: 1px solid var(--reader-line);
|
|
1240
|
+
border-radius: var(--radius-sm);
|
|
1241
|
+
cursor: pointer;
|
|
1242
|
+
}
|
|
1243
|
+
.reader-view-controls {
|
|
1244
|
+
padding: 3px;
|
|
1245
|
+
background: var(--surface2);
|
|
1246
|
+
border: 1px solid var(--reader-line);
|
|
1247
|
+
border-radius: var(--radius-sm);
|
|
1248
|
+
}
|
|
1249
|
+
:root[data-theme] .reader-view-controls .report-view-btn {
|
|
1250
|
+
margin: 0;
|
|
1251
|
+
border: 0;
|
|
1252
|
+
border-radius: calc(var(--radius-sm) / 2);
|
|
1253
|
+
background: transparent;
|
|
1254
|
+
color: var(--reader-muted);
|
|
1255
|
+
padding: 7px 14px;
|
|
1256
|
+
font: 12px var(--font-ui);
|
|
1257
|
+
min-height: 32px;
|
|
1258
|
+
cursor: pointer;
|
|
1259
|
+
}
|
|
1260
|
+
:root[data-theme] .reader-view-controls .report-view-btn.active {
|
|
1261
|
+
background: var(--surface);
|
|
1262
|
+
color: var(--text);
|
|
1263
|
+
box-shadow: 0 1px 3px #0000000a;
|
|
1264
|
+
}
|
|
1265
|
+
:root[data-theme] .report-shell {
|
|
1266
|
+
padding-top: 52px;
|
|
1267
|
+
padding-bottom: 80px;
|
|
1268
|
+
}
|
|
1269
|
+
:root[data-theme] .report-header {
|
|
1270
|
+
width: 100%;
|
|
1271
|
+
max-width: 100%;
|
|
1272
|
+
margin: 0 auto 36px;
|
|
1273
|
+
border-bottom: 1px solid var(--reader-line);
|
|
1274
|
+
padding: 0 0 30px;
|
|
1275
|
+
background: transparent;
|
|
1276
|
+
box-shadow: none;
|
|
1277
|
+
border-top: 0;
|
|
1278
|
+
border-left: 0;
|
|
1279
|
+
border-right: 0;
|
|
1280
|
+
border-radius: 0;
|
|
1281
|
+
}
|
|
1282
|
+
:root[data-theme] .report-header h1 {
|
|
1283
|
+
font-size: clamp(1.65rem, 2.7vw, 2.55rem);
|
|
1284
|
+
line-height: 1.43;
|
|
1285
|
+
letter-spacing: -0.02em;
|
|
1286
|
+
max-width: 1020px;
|
|
1287
|
+
text-wrap: pretty;
|
|
1288
|
+
margin: 18px 0;
|
|
1289
|
+
font-weight: 500;
|
|
1290
|
+
}
|
|
1291
|
+
:root[data-theme] .report-brand-row {
|
|
1292
|
+
gap: 12px;
|
|
1293
|
+
}
|
|
1294
|
+
.report-brand {
|
|
1295
|
+
font-size: 11px;
|
|
1296
|
+
letter-spacing: 0.12em;
|
|
1297
|
+
}
|
|
1298
|
+
:root[data-theme] .generated-theme-chip {
|
|
1299
|
+
display: none;
|
|
1300
|
+
}
|
|
1301
|
+
:root[data-theme] .data-origin-chip {
|
|
1302
|
+
font-size: 10px;
|
|
1303
|
+
font-family: var(--font-ui);
|
|
1304
|
+
font-weight: 400;
|
|
1305
|
+
background: var(--surface2);
|
|
1306
|
+
border: 1px solid var(--reader-line);
|
|
1307
|
+
color: var(--reader-muted);
|
|
1308
|
+
border-radius: var(--radius-sm);
|
|
1309
|
+
}
|
|
1310
|
+
:root[data-theme] .report-header .meta {
|
|
1311
|
+
font: 12px/1.9 var(--font-ui);
|
|
1312
|
+
color: var(--reader-muted);
|
|
1313
|
+
margin: 0;
|
|
1314
|
+
}
|
|
1315
|
+
:root[data-theme] .report-header .report-view-switcher {
|
|
1316
|
+
display: none;
|
|
1317
|
+
}
|
|
1318
|
+
:root[data-theme] .report-page-brief {
|
|
1319
|
+
display: grid;
|
|
1320
|
+
grid-template-columns: 160px minmax(0, 1fr);
|
|
1321
|
+
gap: 40px;
|
|
1322
|
+
align-items: start;
|
|
1323
|
+
}
|
|
1324
|
+
:root[data-theme] .report-page[hidden] {
|
|
1325
|
+
display: none !important;
|
|
1326
|
+
}
|
|
1327
|
+
.brief-navigation {
|
|
1328
|
+
position: sticky;
|
|
1329
|
+
top: 102px;
|
|
1330
|
+
display: flex;
|
|
1331
|
+
flex-direction: column;
|
|
1332
|
+
gap: 6px;
|
|
1333
|
+
font: 12px/1.6 var(--font-ui);
|
|
1334
|
+
padding-top: 8px;
|
|
1335
|
+
}
|
|
1336
|
+
.brief-navigation a {
|
|
1337
|
+
display: flex;
|
|
1338
|
+
gap: 10px;
|
|
1339
|
+
color: var(--reader-muted);
|
|
1340
|
+
text-decoration: none;
|
|
1341
|
+
padding: 10px 8px;
|
|
1342
|
+
border-left: 2px solid transparent;
|
|
1343
|
+
}
|
|
1344
|
+
.brief-navigation a > span {
|
|
1345
|
+
flex: 0 0 auto;
|
|
1346
|
+
min-width: 18px;
|
|
1347
|
+
white-space: nowrap;
|
|
1348
|
+
font: 10px/1.9 var(--font-mono);
|
|
1349
|
+
opacity: 0.8;
|
|
1350
|
+
}
|
|
1351
|
+
.brief-navigation a:hover,
|
|
1352
|
+
.brief-navigation a.active {
|
|
1353
|
+
color: var(--primary);
|
|
1354
|
+
background: var(--surface2);
|
|
1355
|
+
border-left-color: var(--primary);
|
|
1356
|
+
}
|
|
1357
|
+
.brief-reading-content {
|
|
1358
|
+
min-width: 0;
|
|
1359
|
+
}
|
|
1360
|
+
:root[data-theme] .brief-block {
|
|
1361
|
+
max-width: none;
|
|
1362
|
+
width: 100%;
|
|
1363
|
+
margin: 0 0 60px;
|
|
1364
|
+
border: 0;
|
|
1365
|
+
padding: 0;
|
|
1366
|
+
box-shadow: none;
|
|
1367
|
+
background: transparent;
|
|
1368
|
+
grid-column: auto;
|
|
1369
|
+
}
|
|
1370
|
+
:root[data-theme] .brief-block-header {
|
|
1371
|
+
max-width: none;
|
|
1372
|
+
padding: 0 0 16px;
|
|
1373
|
+
margin: 0 0 22px;
|
|
1374
|
+
border-bottom: 1px solid var(--reader-line);
|
|
1375
|
+
}
|
|
1376
|
+
:root[data-theme] .brief-block-header h2 {
|
|
1377
|
+
font-family: var(--font-head);
|
|
1378
|
+
font-size: 1.35rem;
|
|
1379
|
+
font-weight: 500;
|
|
1380
|
+
margin: 0 0 7px;
|
|
1381
|
+
}
|
|
1382
|
+
:root[data-theme] .brief-block-header p {
|
|
1383
|
+
font-size: 13px;
|
|
1384
|
+
line-height: 1.85;
|
|
1385
|
+
max-width: 76ch;
|
|
1386
|
+
color: var(--reader-muted);
|
|
1387
|
+
}
|
|
1388
|
+
:root[data-theme] .brief-block .brief-block-body {
|
|
1389
|
+
width: 100%;
|
|
1390
|
+
margin: 0;
|
|
1391
|
+
transform: none;
|
|
1392
|
+
}
|
|
1393
|
+
:root[data-theme] .brief-decision .brief-block-header {
|
|
1394
|
+
display: none;
|
|
1395
|
+
}
|
|
1396
|
+
:root[data-theme] .decision-hero {
|
|
1397
|
+
padding: 26px;
|
|
1398
|
+
border: 1px solid var(--reader-line);
|
|
1399
|
+
border-radius: var(--radius);
|
|
1400
|
+
background: var(--surface);
|
|
1401
|
+
box-shadow: none;
|
|
1402
|
+
}
|
|
1403
|
+
:root[data-theme] .hero-decision {
|
|
1404
|
+
align-items: center;
|
|
1405
|
+
gap: 10px 16px;
|
|
1406
|
+
flex-wrap: wrap;
|
|
1407
|
+
}
|
|
1408
|
+
:root[data-theme] .hero-decision .eyebrow {
|
|
1409
|
+
font-size: 10px;
|
|
1410
|
+
letter-spacing: 0.1em;
|
|
1411
|
+
color: var(--reader-muted);
|
|
1412
|
+
}
|
|
1413
|
+
:root[data-theme] .decision-value {
|
|
1414
|
+
font-size: 1.65rem;
|
|
1415
|
+
line-height: 1.35;
|
|
1416
|
+
}
|
|
1417
|
+
:root[data-theme] .confidence-badge {
|
|
1418
|
+
font-size: 11px;
|
|
1419
|
+
color: var(--text);
|
|
1420
|
+
border: 1px solid var(--reader-line);
|
|
1421
|
+
background: var(--uncertain-soft, var(--surface2));
|
|
1422
|
+
padding: 4px 9px;
|
|
1423
|
+
}
|
|
1424
|
+
:root[data-theme] .hero-rationale {
|
|
1425
|
+
font-size: 14px;
|
|
1426
|
+
line-height: 1.9;
|
|
1427
|
+
margin: 20px 0;
|
|
1428
|
+
max-width: 78ch;
|
|
1429
|
+
}
|
|
1430
|
+
:root[data-theme] .hero-insights {
|
|
1431
|
+
display: grid;
|
|
1432
|
+
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
1433
|
+
gap: 0;
|
|
1434
|
+
border: 0;
|
|
1435
|
+
border-top: 1px solid var(--reader-line);
|
|
1436
|
+
}
|
|
1437
|
+
:root[data-theme] .hero-insight {
|
|
1438
|
+
border: 0;
|
|
1439
|
+
border-radius: 0;
|
|
1440
|
+
padding: 20px 0 12px;
|
|
1441
|
+
min-height: 0;
|
|
1442
|
+
background: transparent;
|
|
1443
|
+
box-shadow: none;
|
|
1444
|
+
}
|
|
1445
|
+
:root[data-theme] .hero-insight:nth-child(2n + 1) {
|
|
1446
|
+
padding-right: 22px;
|
|
1447
|
+
}
|
|
1448
|
+
:root[data-theme] .hero-insight:nth-child(2n) {
|
|
1449
|
+
padding-left: 22px;
|
|
1450
|
+
border-left: 1px solid var(--reader-line);
|
|
1451
|
+
}
|
|
1452
|
+
:root[data-theme] .hero-insight > span {
|
|
1453
|
+
font: 11px/1.6 var(--font-ui);
|
|
1454
|
+
letter-spacing: 0.03em;
|
|
1455
|
+
color: var(--reader-muted);
|
|
1456
|
+
margin-bottom: 9px;
|
|
1457
|
+
}
|
|
1458
|
+
:root[data-theme] .hero-insight-text {
|
|
1459
|
+
font-size: 13px;
|
|
1460
|
+
line-height: 1.85;
|
|
1461
|
+
}
|
|
1462
|
+
:root[data-theme] .hero-provenance {
|
|
1463
|
+
border-top: 1px solid var(--reader-line);
|
|
1464
|
+
padding-top: 16px;
|
|
1465
|
+
margin-bottom: 0;
|
|
1466
|
+
font-size: 11px;
|
|
1467
|
+
color: var(--reader-muted);
|
|
1468
|
+
}
|
|
1469
|
+
:root[data-theme] .tribunal-grid {
|
|
1470
|
+
display: grid;
|
|
1471
|
+
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
1472
|
+
gap: 14px;
|
|
1473
|
+
}
|
|
1474
|
+
:root[data-theme] .tribunal-card {
|
|
1475
|
+
border: 1px solid var(--reader-line);
|
|
1476
|
+
border-top: 2px solid var(--border);
|
|
1477
|
+
padding: 20px;
|
|
1478
|
+
border-radius: var(--radius-sm);
|
|
1479
|
+
box-shadow: none;
|
|
1480
|
+
}
|
|
1481
|
+
:root[data-theme] .tribunal-card.supported {
|
|
1482
|
+
border-top-color: var(--support);
|
|
1483
|
+
}
|
|
1484
|
+
:root[data-theme] .tribunal-card.uncertain,
|
|
1485
|
+
:root[data-theme] .tribunal-card.missing {
|
|
1486
|
+
border-top-color: var(--uncertain);
|
|
1487
|
+
}
|
|
1488
|
+
:root[data-theme] .tribunal-card.contradicted {
|
|
1489
|
+
border-top-color: var(--contradict);
|
|
1490
|
+
}
|
|
1491
|
+
:root[data-theme] .tribunal-card p {
|
|
1492
|
+
line-height: 1.9;
|
|
1493
|
+
}
|
|
1494
|
+
.tribunal-card li + li {
|
|
1495
|
+
margin-top: 12px;
|
|
1496
|
+
}
|
|
1497
|
+
:root[data-theme] .dir {
|
|
1498
|
+
border-radius: var(--radius-sm);
|
|
1499
|
+
font-size: 11px;
|
|
1500
|
+
border: 1px solid var(--reader-line);
|
|
1501
|
+
}
|
|
1502
|
+
:root[data-theme] .dir.pos {
|
|
1503
|
+
background: color-mix(in srgb, var(--support) 14%, var(--surface));
|
|
1504
|
+
color: var(--text);
|
|
1505
|
+
}
|
|
1506
|
+
:root[data-theme] .dir.neg {
|
|
1507
|
+
background: color-mix(in srgb, var(--contradict) 14%, var(--surface));
|
|
1508
|
+
color: var(--text);
|
|
1509
|
+
}
|
|
1510
|
+
:root[data-theme] .dir.neu {
|
|
1511
|
+
background: color-mix(in srgb, var(--uncertain) 14%, var(--surface));
|
|
1512
|
+
color: var(--text);
|
|
1513
|
+
}
|
|
1514
|
+
:root[data-theme] .full-report-layout {
|
|
1515
|
+
display: grid;
|
|
1516
|
+
grid-template-columns: 180px minmax(0, 1fr);
|
|
1517
|
+
gap: 36px;
|
|
1518
|
+
}
|
|
1519
|
+
:root[data-theme] .full-report-intro {
|
|
1520
|
+
margin: 0 0 30px 216px;
|
|
1521
|
+
max-width: none;
|
|
1522
|
+
}
|
|
1523
|
+
:root[data-theme] .full-report-toc {
|
|
1524
|
+
top: 102px;
|
|
1525
|
+
max-height: calc(100vh - 125px);
|
|
1526
|
+
overflow-y: auto;
|
|
1527
|
+
}
|
|
1528
|
+
:root[data-theme] .full-report-content {
|
|
1529
|
+
min-width: 0;
|
|
1530
|
+
width: 100%;
|
|
1531
|
+
max-width: none;
|
|
1532
|
+
overflow-wrap: anywhere;
|
|
1533
|
+
}
|
|
1534
|
+
:root[data-theme] .report-section {
|
|
1535
|
+
margin-bottom: 56px;
|
|
1536
|
+
}
|
|
1537
|
+
.report-section {
|
|
1538
|
+
scroll-margin-top: 100px;
|
|
1539
|
+
}
|
|
1540
|
+
:root[data-theme] .full-report-content .section-data > .table-wrap,
|
|
1541
|
+
:root[data-theme] .full-report-content .section-data > .matrix-controls,
|
|
1542
|
+
:root[data-theme] .full-report-content .section-data > .trace-chain,
|
|
1543
|
+
:root[data-theme] .full-report-content .section-data > .outcome-separation {
|
|
1544
|
+
width: 100%;
|
|
1545
|
+
margin-left: 0;
|
|
1546
|
+
transform: none;
|
|
1547
|
+
}
|
|
1548
|
+
:root[data-theme] .report-section p,
|
|
1549
|
+
:root[data-theme] .report-section li {
|
|
1550
|
+
line-height: 1.9;
|
|
1551
|
+
}
|
|
1552
|
+
:root[data-theme] .table-wrap {
|
|
1553
|
+
border: 1px solid var(--reader-line);
|
|
1554
|
+
border-radius: var(--radius-sm);
|
|
1555
|
+
overflow-x: auto;
|
|
1556
|
+
overscroll-behavior-inline: contain;
|
|
1557
|
+
}
|
|
1558
|
+
:root[data-theme] .data-table {
|
|
1559
|
+
font-size: 12px;
|
|
1560
|
+
line-height: 1.75;
|
|
1561
|
+
}
|
|
1562
|
+
:root[data-theme] .data-table th {
|
|
1563
|
+
font-size: 11px;
|
|
1564
|
+
font-weight: 600;
|
|
1565
|
+
color: var(--reader-muted);
|
|
1566
|
+
}
|
|
1567
|
+
:root[data-theme] .data-table td,
|
|
1568
|
+
:root[data-theme] .data-table th {
|
|
1569
|
+
border-color: var(--reader-line);
|
|
1570
|
+
padding: 12px;
|
|
1571
|
+
}
|
|
1572
|
+
:root[data-theme] .matrix-controls input,
|
|
1573
|
+
:root[data-theme] .matrix-controls select {
|
|
1574
|
+
background: var(--surface);
|
|
1575
|
+
color: var(--text);
|
|
1576
|
+
border: 1px solid var(--reader-line);
|
|
1577
|
+
border-radius: var(--radius-sm);
|
|
1578
|
+
padding: 10px 12px;
|
|
1579
|
+
font: 12px var(--font-ui);
|
|
1580
|
+
max-width: 100%;
|
|
1581
|
+
}
|
|
1582
|
+
.reader-filter-count {
|
|
1583
|
+
font: 11px var(--font-mono);
|
|
1584
|
+
padding: 8px 0;
|
|
1585
|
+
color: var(--reader-muted);
|
|
1586
|
+
}
|
|
1587
|
+
:root[data-theme] .detail-expander summary,
|
|
1588
|
+
:root[data-theme] .expandable-text summary {
|
|
1589
|
+
font-size: 12px;
|
|
1590
|
+
cursor: pointer;
|
|
1591
|
+
}
|
|
1592
|
+
:root[data-theme] .lieflat-suppressed {
|
|
1593
|
+
font-size: 11px;
|
|
1594
|
+
color: var(--reader-muted);
|
|
1595
|
+
padding: 14px;
|
|
1596
|
+
}
|
|
1597
|
+
:root[data-theme] .lieflat-suppressed ul {
|
|
1598
|
+
margin-bottom: 0;
|
|
1599
|
+
}
|
|
1600
|
+
:root[data-theme] .brief-source {
|
|
1601
|
+
padding: 18px;
|
|
1602
|
+
border: 1px solid var(--reader-line);
|
|
1603
|
+
border-radius: var(--radius-sm);
|
|
1604
|
+
}
|
|
1605
|
+
:root[data-theme] .brief-source h3 {
|
|
1606
|
+
font-size: 14px;
|
|
1607
|
+
line-height: 1.7;
|
|
1608
|
+
}
|
|
1609
|
+
:root[data-theme] .report-footer {
|
|
1610
|
+
margin-top: 44px;
|
|
1611
|
+
font-size: 11px;
|
|
1612
|
+
line-height: 1.8;
|
|
1613
|
+
color: var(--reader-muted);
|
|
1614
|
+
}
|
|
1615
|
+
:root[data-theme="datalab"] .report-page-brief,
|
|
1616
|
+
:root[data-theme="datalab-dark"] .report-page-brief {
|
|
1617
|
+
grid-template-columns: 190px minmax(0, 1fr);
|
|
1618
|
+
}
|
|
1619
|
+
|
|
1620
|
+
:root[data-theme="academic"] .controls.reader-toolbar {
|
|
1621
|
+
font-family: var(--font-ui);
|
|
1622
|
+
border-bottom: 1px solid #222;
|
|
1623
|
+
}
|
|
1624
|
+
:root[data-theme="academic"] .report-header {
|
|
1625
|
+
border-bottom: 2px solid #222;
|
|
1626
|
+
padding-bottom: 24px;
|
|
1627
|
+
}
|
|
1628
|
+
:root[data-theme="academic"] .report-header h1 {
|
|
1629
|
+
font-size: clamp(1.5rem, 2.5vw, 2.1rem);
|
|
1630
|
+
text-align: center;
|
|
1631
|
+
}
|
|
1632
|
+
:root[data-theme="academic"] .report-shell {
|
|
1633
|
+
max-width: 1200px;
|
|
1634
|
+
}
|
|
1635
|
+
:root[data-theme="academic"] .brief-block-header h2 {
|
|
1636
|
+
font-variant: small-caps;
|
|
1637
|
+
}
|
|
1638
|
+
:root[data-theme="academic"] .hero-insight,
|
|
1639
|
+
:root[data-theme="academic"] .tribunal-card {
|
|
1640
|
+
font-family: var(--font-ui);
|
|
1641
|
+
}
|
|
1642
|
+
:root[data-theme="academic"] .decision-hero {
|
|
1643
|
+
border-color: #444;
|
|
1644
|
+
}
|
|
1645
|
+
:root[data-theme="datalab"] .report-shell,
|
|
1646
|
+
:root[data-theme="datalab-dark"] .report-shell {
|
|
1647
|
+
max-width: 1440px;
|
|
1648
|
+
}
|
|
1649
|
+
:root[data-theme="datalab"] .brief-block,
|
|
1650
|
+
:root[data-theme="datalab-dark"] .brief-block {
|
|
1651
|
+
margin-bottom: 36px;
|
|
1652
|
+
}
|
|
1653
|
+
:root[data-theme="datalab"] .brief-block-header h2,
|
|
1654
|
+
:root[data-theme="datalab-dark"] .brief-block-header h2 {
|
|
1655
|
+
font-size: 1.14rem;
|
|
1656
|
+
font-weight: 600;
|
|
1657
|
+
}
|
|
1658
|
+
:root[data-theme="datalab"] .brief-navigation,
|
|
1659
|
+
:root[data-theme="datalab-dark"] .brief-navigation {
|
|
1660
|
+
border: 1px solid var(--reader-line);
|
|
1661
|
+
border-radius: var(--radius-sm);
|
|
1662
|
+
padding: 8px;
|
|
1663
|
+
background: var(--surface);
|
|
1664
|
+
}
|
|
1665
|
+
:root[data-theme="presentation"] .report-shell {
|
|
1666
|
+
max-width: 1320px;
|
|
1667
|
+
}
|
|
1668
|
+
:root[data-theme="presentation"] .report-header h1 {
|
|
1669
|
+
font-size: clamp(1.85rem, 3.5vw, 3rem);
|
|
1670
|
+
line-height: 1.4;
|
|
1671
|
+
max-width: 1000px;
|
|
1672
|
+
}
|
|
1673
|
+
:root[data-theme="presentation"] .brief-decision .decision-hero {
|
|
1674
|
+
padding: 36px;
|
|
1675
|
+
border-left: 3px solid var(--primary);
|
|
1676
|
+
}
|
|
1677
|
+
:root[data-theme="presentation"] .decision-value {
|
|
1678
|
+
font-size: 2.1rem;
|
|
1679
|
+
}
|
|
1680
|
+
:root[data-theme="presentation"] .brief-block {
|
|
1681
|
+
margin-bottom: 72px;
|
|
1682
|
+
}
|
|
1683
|
+
:root[data-theme="presentation"] .brief-block-header h2 {
|
|
1684
|
+
font-size: 1.7rem;
|
|
1685
|
+
}
|
|
1686
|
+
@media (max-width: 1050px) {
|
|
1687
|
+
:root[data-theme] .report-page-brief {
|
|
1688
|
+
grid-template-columns: minmax(0, 1fr);
|
|
1689
|
+
gap: 24px;
|
|
1690
|
+
}
|
|
1691
|
+
.brief-navigation {
|
|
1692
|
+
position: static;
|
|
1693
|
+
flex-direction: row;
|
|
1694
|
+
flex-wrap: wrap;
|
|
1695
|
+
gap: 3px;
|
|
1696
|
+
padding: 0;
|
|
1697
|
+
}
|
|
1698
|
+
.brief-navigation a {
|
|
1699
|
+
border-left: 0;
|
|
1700
|
+
border-bottom: 2px solid transparent;
|
|
1701
|
+
padding: 8px;
|
|
1702
|
+
font-size: 11px;
|
|
1703
|
+
}
|
|
1704
|
+
.brief-navigation a.active {
|
|
1705
|
+
border-bottom-color: var(--primary);
|
|
1706
|
+
border-left: 0;
|
|
1707
|
+
}
|
|
1708
|
+
:root[data-theme] .full-report-layout {
|
|
1709
|
+
grid-template-columns: minmax(0, 1fr);
|
|
1710
|
+
gap: 24px;
|
|
1711
|
+
}
|
|
1712
|
+
:root[data-theme] .full-report-intro {
|
|
1713
|
+
margin: 0 0 24px;
|
|
1714
|
+
}
|
|
1715
|
+
:root[data-theme] .full-report-toc {
|
|
1716
|
+
position: static;
|
|
1717
|
+
max-height: none;
|
|
1718
|
+
}
|
|
1719
|
+
.reader-home .generated-theme {
|
|
1720
|
+
display: none;
|
|
1721
|
+
}
|
|
1722
|
+
}
|
|
1723
|
+
@media (max-width: 640px) {
|
|
1724
|
+
:root[data-theme] .controls.reader-toolbar {
|
|
1725
|
+
gap: 8px;
|
|
1726
|
+
min-height: 60px;
|
|
1727
|
+
padding: 10px 12px;
|
|
1728
|
+
flex-wrap: wrap;
|
|
1729
|
+
}
|
|
1730
|
+
.reader-home {
|
|
1731
|
+
font-size: 14px;
|
|
1732
|
+
}
|
|
1733
|
+
.reader-print {
|
|
1734
|
+
display: none;
|
|
1735
|
+
}
|
|
1736
|
+
:root[data-theme] .reader-view-controls .report-view-btn {
|
|
1737
|
+
font-size: 11px;
|
|
1738
|
+
padding: 5px 8px;
|
|
1739
|
+
}
|
|
1740
|
+
.reader-tools .lang-btn {
|
|
1741
|
+
padding: 5px 8px;
|
|
1742
|
+
min-height: 32px;
|
|
1743
|
+
}
|
|
1744
|
+
:root[data-theme] .report-shell {
|
|
1745
|
+
padding: 28px 16px 60px;
|
|
1746
|
+
}
|
|
1747
|
+
:root[data-theme] .report-header {
|
|
1748
|
+
padding-bottom: 22px;
|
|
1749
|
+
margin-bottom: 20px;
|
|
1750
|
+
}
|
|
1751
|
+
:root[data-theme] .report-header h1 {
|
|
1752
|
+
font-size: 1.6rem;
|
|
1753
|
+
line-height: 1.5;
|
|
1754
|
+
margin: 14px 0;
|
|
1755
|
+
}
|
|
1756
|
+
:root[data-theme] .report-header .meta {
|
|
1757
|
+
font-size: 11px;
|
|
1758
|
+
}
|
|
1759
|
+
:root[data-theme] .decision-hero,
|
|
1760
|
+
:root[data-theme="presentation"] .brief-decision .decision-hero {
|
|
1761
|
+
padding: 20px 18px;
|
|
1762
|
+
}
|
|
1763
|
+
:root[data-theme] .hero-insights {
|
|
1764
|
+
grid-template-columns: minmax(0, 1fr);
|
|
1765
|
+
}
|
|
1766
|
+
:root[data-theme] .hero-insight:nth-child(n) {
|
|
1767
|
+
padding: 16px 0;
|
|
1768
|
+
border: 0;
|
|
1769
|
+
border-bottom: 1px solid var(--reader-line);
|
|
1770
|
+
}
|
|
1771
|
+
:root[data-theme] .hero-insight:last-child {
|
|
1772
|
+
border: 0;
|
|
1773
|
+
}
|
|
1774
|
+
:root[data-theme] .hero-insight-text {
|
|
1775
|
+
font-size: 13px;
|
|
1776
|
+
}
|
|
1777
|
+
:root[data-theme] .tribunal-grid {
|
|
1778
|
+
grid-template-columns: minmax(0, 1fr);
|
|
1779
|
+
}
|
|
1780
|
+
:root[data-theme] .brief-block {
|
|
1781
|
+
margin-bottom: 40px;
|
|
1782
|
+
}
|
|
1783
|
+
:root[data-theme] .report-section {
|
|
1784
|
+
margin-bottom: 40px;
|
|
1785
|
+
}
|
|
1786
|
+
:root[data-theme] .brief-source {
|
|
1787
|
+
padding: 16px;
|
|
1788
|
+
}
|
|
1789
|
+
:root[data-theme] .report-page-brief {
|
|
1790
|
+
gap: 20px;
|
|
1791
|
+
}
|
|
1792
|
+
.brief-navigation a {
|
|
1793
|
+
padding: 7px 6px;
|
|
1794
|
+
font-size: 10px;
|
|
1795
|
+
}
|
|
1796
|
+
.brief-navigation a > span {
|
|
1797
|
+
display: none;
|
|
1798
|
+
}
|
|
1799
|
+
}
|
|
1800
|
+
@media (max-width: 359px) {
|
|
1801
|
+
.reader-home {
|
|
1802
|
+
display: none;
|
|
1803
|
+
}
|
|
1804
|
+
:root[data-theme] .report-header h1 {
|
|
1805
|
+
font-size: 1.45rem;
|
|
1806
|
+
}
|
|
1807
|
+
}
|
|
1808
|
+
@media (prefers-reduced-motion: reduce) {
|
|
1809
|
+
html {
|
|
1810
|
+
scroll-behavior: auto;
|
|
1811
|
+
}
|
|
1812
|
+
.reader-progress > span {
|
|
1813
|
+
transition: none;
|
|
1814
|
+
}
|
|
1815
|
+
}
|
|
1816
|
+
@media print {
|
|
1817
|
+
.reader-toolbar,
|
|
1818
|
+
.reader-progress,
|
|
1819
|
+
.brief-navigation,
|
|
1820
|
+
.reader-filter-count,
|
|
1821
|
+
.reader-print {
|
|
1822
|
+
display: none !important;
|
|
1823
|
+
}
|
|
1824
|
+
:root[data-theme] .report-shell {
|
|
1825
|
+
max-width: none;
|
|
1826
|
+
padding: 0;
|
|
1827
|
+
}
|
|
1828
|
+
:root[data-theme] .report-page-brief {
|
|
1829
|
+
display: block;
|
|
1830
|
+
}
|
|
1831
|
+
:root[data-theme] .hero-insights {
|
|
1832
|
+
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
1833
|
+
}
|
|
1834
|
+
:root[data-theme] .brief-block {
|
|
1835
|
+
break-inside: auto;
|
|
1836
|
+
}
|
|
1837
|
+
details .detail-body {
|
|
1838
|
+
display: block;
|
|
1839
|
+
}
|
|
1840
|
+
}
|
|
1841
|
+
.reader-view-controls,
|
|
1842
|
+
.reader-tools,
|
|
1843
|
+
.reader-tools .lang-switcher {
|
|
1844
|
+
flex-shrink: 0;
|
|
1845
|
+
}
|
|
1846
|
+
:root[data-theme] .reader-view-controls .report-view-btn {
|
|
1847
|
+
white-space: nowrap;
|
|
1848
|
+
}
|
|
1849
|
+
@media (max-width: 450px) {
|
|
1850
|
+
.reader-home {
|
|
1851
|
+
font-size: 12px;
|
|
1852
|
+
}
|
|
1853
|
+
.reader-tools .lang-btn {
|
|
1854
|
+
font-size: 11px;
|
|
1855
|
+
padding: 5px 7px;
|
|
1856
|
+
}
|
|
1857
|
+
}
|
|
1858
|
+
/* Keep warm terracotta / cool slate identities at readable text contrast. */
|
|
1859
|
+
:root[data-theme="claude"] {
|
|
1860
|
+
--text-muted: #69655d;
|
|
1861
|
+
--primary: #9c5238;
|
|
1862
|
+
}
|
|
1863
|
+
:root[data-theme="datalab"] {
|
|
1864
|
+
--text-muted: #5c6573;
|
|
1865
|
+
}
|
|
1866
|
+
:root[data-theme] .reader-home .generated-theme {
|
|
1867
|
+
color: var(--reader-muted);
|
|
1868
|
+
}
|
|
1869
|
+
.brief-navigation a > span {
|
|
1870
|
+
opacity: 1;
|
|
1871
|
+
}
|
|
1872
|
+
:root[data-theme] .full-report-intro {
|
|
1873
|
+
width: auto;
|
|
1874
|
+
}
|
|
1875
|
+
:root[data-theme] .evidence-to-action {
|
|
1876
|
+
max-width: 100%;
|
|
1877
|
+
flex-wrap: wrap;
|
|
1878
|
+
overflow: visible;
|
|
1879
|
+
}
|
|
1880
|
+
:root[data-theme] .evidence-to-action .action-node {
|
|
1881
|
+
flex: 1 1 140px;
|
|
1882
|
+
min-width: 0;
|
|
1883
|
+
overflow-wrap: anywhere;
|
|
1884
|
+
}
|
|
1885
|
+
:root[data-theme="claude"] {
|
|
1886
|
+
--insufficient: #69655d;
|
|
1887
|
+
}
|
|
1888
|
+
:root[data-theme="datalab"] {
|
|
1889
|
+
--insufficient: #5c6573;
|
|
1890
|
+
}
|
|
1891
|
+
|
|
1892
|
+
</style>
|
|
1893
|
+
</head>
|
|
1894
|
+
<body>
|
|
1895
|
+
<div class="reader-progress" aria-hidden="true"><span></span></div>
|
|
1896
|
+
<div class="controls reader-toolbar">
|
|
1897
|
+
<a class="reader-home" href="#" aria-label="Back to report start">EduEvidence<span class="generated-theme">DataLab [Light]</span></a>
|
|
1898
|
+
<div class="reader-view-controls" role="group" aria-label="Report view">
|
|
1899
|
+
<button type="button" class="report-view-btn active" data-report-view="brief" data-copy="brief" aria-pressed="true">摘要</button>
|
|
1900
|
+
<button type="button" class="report-view-btn" data-report-view="full" data-copy="full" aria-pressed="false">完整报告</button>
|
|
1901
|
+
</div>
|
|
1902
|
+
<div class="reader-tools"><div class="lang-switcher" role="group" aria-label="语言切换 / Language switch"><span data-lang-label data-zh="语言" data-en="Language">语言</span><button type="button" data-lang-target="zh" class="lang-btn active" aria-pressed="true">中文</button><button type="button" data-lang-target="en" class="lang-btn" aria-pressed="false">EN</button></div><button class="reader-print" type="button" data-copy="print">打印</button></div>
|
|
1903
|
+
</div>
|
|
1904
|
+
<div class="report-shell" data-lang-body="zh">
|
|
1905
|
+
<header class="report-header">
|
|
1906
|
+
<div class="report-brand-row"><span class="report-brand">EduEvidence</span><span class="generated-theme-chip">DataLab [Light]</span><span class="data-origin-chip" data-origin="real_run_sciverse">real_run_sciverse</span></div>
|
|
1907
|
+
<h1>在大学的程序设计入门课程中,是否应该用间隔重复与检索练习替代传统的集中式复习?这对学生的长期知识保持是否有效?</h1>
|
|
1908
|
+
<p class="meta">模式:平台原生 · 生成时间:2026-09-12 · 证据 6 条 · 来源 7 个</p>
|
|
1909
|
+
<nav class="report-view-switcher" aria-label="report view">
|
|
1910
|
+
<button type="button" class="report-view-btn active" data-report-view="brief" aria-pressed="true">可视化摘要</button>
|
|
1911
|
+
<button type="button" class="report-view-btn" data-report-view="full" aria-pressed="false">完整报告</button>
|
|
1912
|
+
</nav>
|
|
1913
|
+
</header>
|
|
1914
|
+
<div class="report-page report-page-brief" data-report-page="brief"><nav class="brief-navigation" aria-label="摘要导航"><a href="#brief-decision-zh"><span>01</span>先看结论</a><a href="#brief-outcomes-zh"><span>02</span>任务表现 ≠ 学习效果</a><a href="#brief-tribunal-zh"><span>03</span>证据裁决</a><a href="#brief-action-zh"><span>04</span>从证据到行动</a><a href="#brief-sources-zh"><span>05</span>关键来源</a></nav><div class="brief-reading-content"><section class="brief-block brief-decision" id="brief-decision-zh"><header class="brief-block-header"><h2>先看结论</h2><p>该不该做、置信度多高、最关键的证据边界在哪。</p></header><div class="brief-block-body">
|
|
1915
|
+
<div class="decision-hero adopt" data-visual="decision-hero">
|
|
1916
|
+
<div class="hero-decision">
|
|
1917
|
+
<span class="eyebrow">建议决策</span>
|
|
1918
|
+
<strong class="decision-value">全面采用</strong>
|
|
1919
|
+
<span class="confidence-badge">置信度 · 高</span>
|
|
1920
|
+
</div>
|
|
1921
|
+
<p class="hero-rationale">延迟保持与迁移这两个主要结果上都有直接且一致的证据(多项随机对照与元分析,直接性记为 2),实施成本低、风险可控,因此支持在课程内采用。最佳间隔安排与程序设计课程现场证据的厚度仍是记录在案的不确定性,纳入采用后的持续监测,而不是阻止采用的理由。</p>
|
|
1922
|
+
<div class="hero-insights">
|
|
1923
|
+
<article class="hero-insight support"><span>最强支持结论</span><p class="hero-insight-text">间隔检索练习在延迟保持上稳定优于集中复习,多项随机对照与元分析结论一致。</p></article>
|
|
1924
|
+
<article class="hero-insight uncertain"><span>关键不确定性 / 反例</span><p class="hero-insight-text">程序设计课程内的直接现场证据少于心理学实验室证据,最佳间隔设计尚未确定。</p></article>
|
|
1925
|
+
<article class="hero-insight risk"><span>主要风险</span><p class="hero-insight-text">练习设计不当可能增加认知负荷,且收益幅度受材料难度与反馈方式调节。</p></article>
|
|
1926
|
+
<article class="hero-insight next"><span>下一步</span><p class="hero-insight-text">在入门编程课内采用每周固定短时闭卷检索练习,并以统一延迟后测持续验收:若延迟后测低于基线或练习完成率持续低于 60%,回退到试点状态复核。</p></article>
|
|
1927
|
+
</div>
|
|
1928
|
+
<p class="hero-provenance"><span>证据 / 来源</span> · 6 / 7</p>
|
|
1929
|
+
</div></div></section><section class="brief-block brief-outcomes" id="brief-outcomes-zh"><header class="brief-block-header"><h2>任务表现 ≠ 学习效果</h2><p>只展示真正有解释力的结果分离;正向、负向与零效应按 effect_direction 编码。</p></header><div class="brief-block-body"><div class="outcome-separation" data-visual="outcome-separation"><div class="visual-heading"><h3>结果分离 · 任务表现 ≠ 学习效果</h3><p>将不同结果类型分开裁决,避免把训练时更快、更高分直接等同于真正学会。</p><p class="semantic-note">效应方向来自 evidence.effect_direction;“支持某个主张”不等于“结果是正向”。</p></div><div class="outcome-groups"><article class="outcome-group outcome-learning"><h3>学习 / 保持 / 迁移</h3><ul><li><strong>记忆保持</strong><span class="outcome-states"><span class="dir pos">正向效应 4</span><span class="dir neu">零效应 1</span></span></li><li><strong>迁移能力</strong><span class="outcome-states"><span class="dir pos">正向效应 1</span></span></li></ul></article></div></div></div></section><section class="brief-block brief-tribunal" id="brief-tribunal-zh"><header class="brief-block-header"><h2>证据裁决</h2><p>支持、不确定、被反驳与缺失证据分开放置,不把长段落平铺在同一层。</p></header><div class="brief-block-body"><div class="evidence-tribunal" data-visual="evidence-tribunal-grid"><p class="tribunal-summary"><strong>决策:</strong>全面采用 · <strong>置信度:</strong>高</p><div class="tribunal-grid"><article class="tribunal-card supported"><header><span aria-hidden="true">✓</span><h3>可以主张</h3><span class="tribunal-count">3</span></header><ul><li><p>间隔检索练习在延迟保持上稳定优于集中复习,多项随机对照与元分析结论一致。</p></li><li><p>隐式检索与显式检索收益相当,实施形式可以灵活。</p></li><li><p>增加检索路径数量可提升迁移表现,价值不限于记忆本身。</p></li></ul></article><article class="tribunal-card uncertain"><header><span aria-hidden="true">?</span><h3>尚不能主张</h3><span class="tribunal-count">2</span></header><ul><li><p>程序设计课程内的直接现场证据少于心理学实验室证据 [无直接证据]。</p></li><li><p>收益幅度受材料难度与反馈设计调节,最佳间隔尚未确定。</p></li></ul></article><article class="tribunal-card contradicted"><header><span aria-hidden="true">×</span><h3>被反驳的主张</h3><span class="tribunal-count">0</span></header><ul><li>无数据。</li></ul></article><article class="tribunal-card missing"><header><span aria-hidden="true">…</span><h3>缺失证据</h3><span class="tribunal-count">2</span></header><ul><li><p>程序设计课程内的随机对照现场研究</p></li><li><p>不同间隔安排的直接比较</p></li></ul></article></div></div></div></section><section class="brief-block brief-action" id="brief-action-zh"><header class="brief-block-header"><h2>从证据到行动</h2><p>适用性、护栏、停止条件与评价连成一条可执行路径。</p></header><div class="brief-block-body"><div class="evidence-to-action" data-visual="evidence-to-action"><article class="action-node action-evidence"><span>证据</span><p class="action-node-text">间隔检索练习在延迟保持上稳定优于集中复习,多项随机对照与元分析结论一致。</p></article><span class="flow-arrow" aria-hidden="true">→</span><article class="action-node action-applicability"><span>适用性</span><p class="action-node-text">有固定课时的入门编程课程,教师能稳定安排每周短练习</p></article><span class="flow-arrow" aria-hidden="true">→</span><article class="action-node action-decision"><span>决策</span><p class="action-node-text">全面采用</p></article><span class="flow-arrow" aria-hidden="true">→</span><article class="action-node action-guardrails"><span>护栏</span><p class="action-node-text">本试点不涉及 AI 工具;练习为闭卷检索</p></article><span class="flow-arrow" aria-hidden="true">→</span><article class="action-node action-stop"><span>停止条件</span><p class="action-node-text">延迟后测低于基线; 练习完成率持续低于 60%</p></article></div></div></section><section class="brief-block brief-lieflat" id="brief-lieflat-zh"><header class="brief-block-header"><h2>Lieflat 实证手作画廊</h2><p>AI 按数据形状从 Lieflat 目录选型编排;每张图的数字都可溯源到 result.json。</p></header><div class="brief-block-body"><div class="lieflat-gallery-container"><figure class="lieflat-card" data-lieflat data-visual="lieflat-hundred_field" data-chart-id="lieflat-hundred-field.svg"><h3 class="lieflat-title">研究设计构成</h3><p class="lieflat-sub">每格 = 1 篇研究 · 显示证据来自哪些研究设计</p><div class="lieflat-figure"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 540 300" width="100%" height="100%" role="img" aria-label="研究设计构成" style="background:#FFFFFF;">
|
|
1930
|
+
<rect x="40.0" y="74.0" width="15.5" height="15.5" rx="3" fill="#0284C7" class="lf-pop" style="--motion-delay:0ms"><title>rct — 1 study</title></rect>
|
|
1931
|
+
<rect x="58.0" y="74.0" width="15.5" height="15.5" rx="3" fill="#0284C7" class="lf-pop" style="--motion-delay:12ms"><title>rct — 1 study</title></rect>
|
|
1932
|
+
<rect x="76.0" y="74.0" width="15.5" height="15.5" rx="3" fill="#0284C7" class="lf-pop" style="--motion-delay:24ms"><title>rct — 1 study</title></rect>
|
|
1933
|
+
<rect x="94.0" y="74.0" width="15.5" height="15.5" rx="3" fill="#10B981" class="lf-pop" style="--motion-delay:36ms"><title>quasi_experimental — 1 study</title></rect>
|
|
1934
|
+
<rect x="112.0" y="74.0" width="15.5" height="15.5" rx="3" fill="#F59E0B" class="lf-pop" style="--motion-delay:48ms"><title>meta_analysis — 1 study</title></rect>
|
|
1935
|
+
<rect x="130.0" y="74.0" width="15.5" height="15.5" rx="3" fill="#94A3B8" class="lf-pop" style="--motion-delay:60ms"><title>mixed_methods — 1 study</title></rect>
|
|
1936
|
+
<text x="30" y="270" font-size="8" font-weight="600" fill="#94A3B8" class="lf-fade" style="--motion-delay:400ms">每格 = 1 篇研究</text>
|
|
1937
|
+
</svg></div><figcaption class="lieflat-caption">当证据包含多种研究设计时,构成图比表格更快暴露设计偏斜。</figcaption><p class="lieflat-src">L14 Hundred Field · Evidence.study Type Composition</p></figure><figure class="lieflat-card" data-lieflat data-visual="lieflat-tick_gauge" data-chart-id="lieflat-tick-gauge.svg"><h3 class="lieflat-title">决策置信度</h3><p class="lieflat-sub">0–100% 单值仪表 · 由确定性置信度公式给出</p><div class="lieflat-figure"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 540 290" width="100%" height="100%" role="img" aria-label="决策置信度" style="background:#FFFFFF;">
|
|
1938
|
+
<line x1="240.0" y1="66.0" x2="240.0" y2="50.0" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:0ms"><title>0%</title></line>
|
|
1939
|
+
<line x1="244.3" y1="66.1" x2="245.1" y2="50.1" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:12ms"><title>1%</title></line>
|
|
1940
|
+
<line x1="248.7" y1="66.4" x2="250.2" y2="50.5" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:24ms"><title>2%</title></line>
|
|
1941
|
+
<line x1="253.0" y1="66.9" x2="255.2" y2="51.1" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:36ms"><title>3%</title></line>
|
|
1942
|
+
<line x1="257.2" y1="67.6" x2="260.2" y2="51.9" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:48ms"><title>4%</title></line>
|
|
1943
|
+
<line x1="261.5" y1="68.5" x2="265.2" y2="53.0" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:60ms"><title>5%</title></line>
|
|
1944
|
+
<line x1="265.7" y1="69.7" x2="270.1" y2="54.3" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:72ms"><title>6%</title></line>
|
|
1945
|
+
<line x1="269.8" y1="71.0" x2="275.0" y2="55.8" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:84ms"><title>7%</title></line>
|
|
1946
|
+
<line x1="273.9" y1="72.5" x2="279.8" y2="57.6" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:96ms"><title>8%</title></line>
|
|
1947
|
+
<line x1="277.9" y1="74.2" x2="284.4" y2="59.6" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:108ms"><title>9%</title></line>
|
|
1948
|
+
<line x1="281.8" y1="76.0" x2="289.0" y2="61.8" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:120ms"><title>10%</title></line>
|
|
1949
|
+
<line x1="285.6" y1="78.1" x2="293.5" y2="64.2" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:132ms"><title>11%</title></line>
|
|
1950
|
+
<line x1="289.3" y1="80.3" x2="297.9" y2="66.8" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:144ms"><title>12%</title></line>
|
|
1951
|
+
<line x1="292.9" y1="82.7" x2="302.1" y2="69.6" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:156ms"><title>13%</title></line>
|
|
1952
|
+
<line x1="296.4" y1="85.3" x2="306.2" y2="72.7" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:168ms"><title>14%</title></line>
|
|
1953
|
+
<line x1="299.7" y1="88.0" x2="310.1" y2="75.9" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:180ms"><title>15%</title></line>
|
|
1954
|
+
<line x1="303.0" y1="90.9" x2="313.9" y2="79.3" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:192ms"><title>16%</title></line>
|
|
1955
|
+
<line x1="306.1" y1="94.0" x2="317.6" y2="82.8" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:204ms"><title>17%</title></line>
|
|
1956
|
+
<line x1="309.0" y1="97.2" x2="321.0" y2="86.6" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:216ms"><title>18%</title></line>
|
|
1957
|
+
<line x1="311.8" y1="100.5" x2="324.3" y2="90.5" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:228ms"><title>19%</title></line>
|
|
1958
|
+
<line x1="314.4" y1="103.9" x2="327.4" y2="94.5" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:240ms"><title>20%</title></line>
|
|
1959
|
+
<line x1="316.9" y1="107.5" x2="330.3" y2="98.7" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:252ms"><title>21%</title></line>
|
|
1960
|
+
<line x1="319.2" y1="111.2" x2="333.0" y2="103.0" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:264ms"><title>22%</title></line>
|
|
1961
|
+
<line x1="321.3" y1="115.0" x2="335.4" y2="107.5" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:276ms"><title>23%</title></line>
|
|
1962
|
+
<line x1="323.2" y1="118.8" x2="337.7" y2="112.0" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:288ms"><title>24%</title></line>
|
|
1963
|
+
<line x1="325.0" y1="122.8" x2="339.8" y2="116.7" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:300ms"><title>25%</title></line>
|
|
1964
|
+
<line x1="326.6" y1="126.8" x2="341.6" y2="121.4" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:312ms"><title>26%</title></line>
|
|
1965
|
+
<line x1="327.9" y1="130.9" x2="343.2" y2="126.2" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:324ms"><title>27%</title></line>
|
|
1966
|
+
<line x1="329.1" y1="135.1" x2="344.6" y2="131.1" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:336ms"><title>28%</title></line>
|
|
1967
|
+
<line x1="330.1" y1="139.3" x2="345.8" y2="136.1" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:348ms"><title>29%</title></line>
|
|
1968
|
+
<line x1="330.9" y1="143.6" x2="346.7" y2="141.1" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:360ms"><title>30%</title></line>
|
|
1969
|
+
<line x1="331.4" y1="147.9" x2="347.3" y2="146.1" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:372ms"><title>31%</title></line>
|
|
1970
|
+
<line x1="331.8" y1="152.2" x2="347.8" y2="151.2" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:384ms"><title>32%</title></line>
|
|
1971
|
+
<line x1="332.0" y1="156.6" x2="348.0" y2="156.3" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:396ms"><title>33%</title></line>
|
|
1972
|
+
<line x1="332.0" y1="160.9" x2="347.9" y2="161.4" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:408ms"><title>34%</title></line>
|
|
1973
|
+
<line x1="331.7" y1="165.2" x2="347.7" y2="166.5" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:420ms"><title>35%</title></line>
|
|
1974
|
+
<line x1="331.3" y1="169.5" x2="347.1" y2="171.5" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:432ms"><title>36%</title></line>
|
|
1975
|
+
<line x1="330.6" y1="173.8" x2="346.4" y2="176.6" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:444ms"><title>37%</title></line>
|
|
1976
|
+
<line x1="329.8" y1="178.1" x2="345.4" y2="181.6" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:456ms"><title>38%</title></line>
|
|
1977
|
+
<line x1="328.7" y1="182.3" x2="344.2" y2="186.5" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:468ms"><title>39%</title></line>
|
|
1978
|
+
<line x1="327.5" y1="186.4" x2="342.7" y2="191.4" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:480ms"><title>40%</title></line>
|
|
1979
|
+
<line x1="326.1" y1="190.5" x2="341.0" y2="196.2" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:492ms"><title>41%</title></line>
|
|
1980
|
+
<line x1="324.4" y1="194.5" x2="339.1" y2="200.9" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:504ms"><title>42%</title></line>
|
|
1981
|
+
<line x1="322.6" y1="198.5" x2="337.0" y2="205.5" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:516ms"><title>43%</title></line>
|
|
1982
|
+
<line x1="320.6" y1="202.3" x2="334.6" y2="210.0" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:528ms"><title>44%</title></line>
|
|
1983
|
+
<line x1="318.4" y1="206.1" x2="332.1" y2="214.4" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:540ms"><title>45%</title></line>
|
|
1984
|
+
<line x1="316.1" y1="209.7" x2="329.3" y2="218.7" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:552ms"><title>46%</title></line>
|
|
1985
|
+
<line x1="313.6" y1="213.2" x2="326.4" y2="222.8" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:564ms"><title>47%</title></line>
|
|
1986
|
+
<line x1="310.9" y1="216.6" x2="323.2" y2="226.8" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:576ms"><title>48%</title></line>
|
|
1987
|
+
<line x1="308.0" y1="219.9" x2="319.9" y2="230.7" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:588ms"><title>49%</title></line>
|
|
1988
|
+
<line x1="305.1" y1="223.1" x2="316.4" y2="234.4" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:600ms"><title>50%</title></line>
|
|
1989
|
+
<line x1="301.9" y1="226.0" x2="312.7" y2="237.9" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:612ms"><title>51%</title></line>
|
|
1990
|
+
<line x1="298.6" y1="228.9" x2="308.8" y2="241.2" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:624ms"><title>52%</title></line>
|
|
1991
|
+
<line x1="295.2" y1="231.6" x2="304.8" y2="244.4" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:636ms"><title>53%</title></line>
|
|
1992
|
+
<line x1="291.7" y1="234.1" x2="300.7" y2="247.3" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:648ms"><title>54%</title></line>
|
|
1993
|
+
<line x1="288.1" y1="236.4" x2="296.4" y2="250.1" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:660ms"><title>55%</title></line>
|
|
1994
|
+
<line x1="284.3" y1="238.6" x2="292.0" y2="252.6" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:672ms"><title>56%</title></line>
|
|
1995
|
+
<line x1="280.5" y1="240.6" x2="287.5" y2="255.0" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:684ms"><title>57%</title></line>
|
|
1996
|
+
<line x1="276.5" y1="242.4" x2="282.9" y2="257.1" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:696ms"><title>58%</title></line>
|
|
1997
|
+
<line x1="272.5" y1="244.1" x2="278.2" y2="259.0" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:708ms"><title>59%</title></line>
|
|
1998
|
+
<line x1="268.4" y1="245.5" x2="273.4" y2="260.7" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:720ms"><title>60%</title></line>
|
|
1999
|
+
<line x1="264.3" y1="246.7" x2="268.5" y2="262.2" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:732ms"><title>61%</title></line>
|
|
2000
|
+
<line x1="260.1" y1="247.8" x2="263.6" y2="263.4" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:744ms"><title>62%</title></line>
|
|
2001
|
+
<line x1="255.8" y1="248.6" x2="258.6" y2="264.4" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:756ms"><title>63%</title></line>
|
|
2002
|
+
<line x1="251.5" y1="249.3" x2="253.5" y2="265.1" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:768ms"><title>64%</title></line>
|
|
2003
|
+
<line x1="247.2" y1="249.7" x2="248.5" y2="265.7" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:780ms"><title>65%</title></line>
|
|
2004
|
+
<line x1="242.9" y1="250.0" x2="243.4" y2="265.9" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:792ms"><title>66%</title></line>
|
|
2005
|
+
<line x1="238.6" y1="250.0" x2="238.3" y2="266.0" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:800ms"><title>67%</title></line>
|
|
2006
|
+
<line x1="234.2" y1="249.8" x2="233.2" y2="265.8" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:800ms"><title>68%</title></line>
|
|
2007
|
+
<line x1="229.9" y1="249.4" x2="228.1" y2="265.3" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:800ms"><title>69%</title></line>
|
|
2008
|
+
<line x1="225.6" y1="248.9" x2="223.1" y2="264.7" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:800ms"><title>70%</title></line>
|
|
2009
|
+
<line x1="221.3" y1="248.1" x2="218.1" y2="263.8" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:800ms"><title>71%</title></line>
|
|
2010
|
+
<line x1="217.1" y1="247.1" x2="213.1" y2="262.6" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:800ms"><title>72%</title></line>
|
|
2011
|
+
<line x1="212.9" y1="245.9" x2="208.2" y2="261.2" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:800ms"><title>73%</title></line>
|
|
2012
|
+
<line x1="208.8" y1="244.6" x2="203.4" y2="259.6" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:800ms"><title>74%</title></line>
|
|
2013
|
+
<line x1="204.8" y1="243.0" x2="198.7" y2="257.8" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:800ms"><title>75%</title></line>
|
|
2014
|
+
<line x1="200.8" y1="241.2" x2="194.0" y2="255.7" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:800ms"><title>76%</title></line>
|
|
2015
|
+
<line x1="197.0" y1="239.3" x2="189.5" y2="253.4" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:800ms"><title>77%</title></line>
|
|
2016
|
+
<line x1="193.2" y1="237.2" x2="185.0" y2="251.0" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:800ms"><title>78%</title></line>
|
|
2017
|
+
<line x1="189.5" y1="234.9" x2="180.7" y2="248.3" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:800ms"><title>79%</title></line>
|
|
2018
|
+
<line x1="185.9" y1="232.4" x2="176.5" y2="245.4" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:800ms"><title>80%</title></line>
|
|
2019
|
+
<line x1="182.5" y1="229.8" x2="172.5" y2="242.3" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:800ms"><title>81%</title></line>
|
|
2020
|
+
<line x1="179.2" y1="227.0" x2="168.6" y2="239.0" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:800ms"><title>82%</title></line>
|
|
2021
|
+
<line x1="176.0" y1="224.1" x2="164.8" y2="235.6" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:800ms"><title>83%</title></line>
|
|
2022
|
+
<line x1="172.9" y1="221.0" x2="161.3" y2="231.9" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:800ms"><title>84%</title></line>
|
|
2023
|
+
<line x1="170.0" y1="217.7" x2="157.9" y2="228.1" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:800ms"><title>85%</title></line>
|
|
2024
|
+
<line x1="167.3" y1="214.4" x2="154.7" y2="224.2" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:800ms"><title>86%</title></line>
|
|
2025
|
+
<line x1="164.7" y1="210.9" x2="151.6" y2="220.1" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:800ms"><title>87%</title></line>
|
|
2026
|
+
<line x1="162.3" y1="207.3" x2="148.8" y2="215.9" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:800ms"><title>88%</title></line>
|
|
2027
|
+
<line x1="160.1" y1="203.6" x2="146.2" y2="211.5" stroke="#E2E8F0" stroke-width="3" stroke-linecap="round" class="lf-fade" style="--motion-delay:238ms"><title>89%</title></line>
|
|
2028
|
+
<line x1="158.0" y1="199.8" x2="143.8" y2="207.0" stroke="#E2E8F0" stroke-width="3" stroke-linecap="round" class="lf-fade" style="--motion-delay:240ms"><title>90%</title></line>
|
|
2029
|
+
<line x1="156.2" y1="195.9" x2="141.6" y2="202.4" stroke="#E2E8F0" stroke-width="3" stroke-linecap="round" class="lf-fade" style="--motion-delay:242ms"><title>91%</title></line>
|
|
2030
|
+
<line x1="154.5" y1="191.9" x2="139.6" y2="197.8" stroke="#E2E8F0" stroke-width="3" stroke-linecap="round" class="lf-fade" style="--motion-delay:244ms"><title>92%</title></line>
|
|
2031
|
+
<line x1="153.0" y1="187.8" x2="137.8" y2="193.0" stroke="#E2E8F0" stroke-width="3" stroke-linecap="round" class="lf-fade" style="--motion-delay:246ms"><title>93%</title></line>
|
|
2032
|
+
<line x1="151.7" y1="183.7" x2="136.3" y2="188.1" stroke="#E2E8F0" stroke-width="3" stroke-linecap="round" class="lf-fade" style="--motion-delay:248ms"><title>94%</title></line>
|
|
2033
|
+
<line x1="150.5" y1="179.5" x2="135.0" y2="183.2" stroke="#E2E8F0" stroke-width="3" stroke-linecap="round" class="lf-fade" style="--motion-delay:250ms"><title>95%</title></line>
|
|
2034
|
+
<line x1="149.6" y1="175.2" x2="133.9" y2="178.2" stroke="#E2E8F0" stroke-width="3" stroke-linecap="round" class="lf-fade" style="--motion-delay:252ms"><title>96%</title></line>
|
|
2035
|
+
<line x1="148.9" y1="171.0" x2="133.1" y2="173.2" stroke="#E2E8F0" stroke-width="3" stroke-linecap="round" class="lf-fade" style="--motion-delay:254ms"><title>97%</title></line>
|
|
2036
|
+
<line x1="148.4" y1="166.7" x2="132.5" y2="168.2" stroke="#E2E8F0" stroke-width="3" stroke-linecap="round" class="lf-fade" style="--motion-delay:256ms"><title>98%</title></line>
|
|
2037
|
+
<line x1="148.1" y1="162.3" x2="132.1" y2="163.1" stroke="#E2E8F0" stroke-width="3" stroke-linecap="round" class="lf-fade" style="--motion-delay:258ms"><title>99%</title></line>
|
|
2038
|
+
<text x="240" y="152" text-anchor="middle" font-size="30" font-weight="800" fill="#0F172A" class="lf-pop" style="--motion-delay:600ms">89%</text>
|
|
2039
|
+
<text x="240" y="180" text-anchor="middle" font-size="10" font-weight="600" fill="#475569" class="lf-fade" style="--motion-delay:680ms">High</text>
|
|
2040
|
+
</svg></div><figcaption class="lieflat-caption">置信度值来自 result.json 的决策字段,不由模型自评。</figcaption><p class="lieflat-src">F11 Tick Gauge · Decision.confidence Score</p></figure><figure class="lieflat-card" data-lieflat data-visual="lieflat-ballot_tally" data-chart-id="lieflat-ballot-tally.svg"><h3 class="lieflat-title">方法学检查项计票</h3><p class="lieflat-sub">每 tick = 1 条审计结论 · 按检查项统计通过与否</p><div class="lieflat-figure"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 540 300" width="100%" height="100%" role="img" aria-label="方法学检查项计票" style="background:#FFFFFF;">
|
|
2041
|
+
<text x="150" y="100.9" text-anchor="end" font-size="8.5" font-weight="600" fill="#475569" class="lf-fade" style="--motion-delay:40ms">随机分配</text>
|
|
2042
|
+
<rect x="162.0" y="93.9" width="8" height="8" rx="2" fill="#0284C7" class="lf-pop" style="--motion-delay:0ms"><title>随机分配 — verdict 1/1 (flagged)</title></rect>
|
|
2043
|
+
<text x="512" y="100.9" text-anchor="end" font-size="9" font-weight="800" fill="#0F172A" class="lf-fade" style="--motion-delay:300ms">1/1</text>
|
|
2044
|
+
<text x="150" y="112.6" text-anchor="end" font-size="8.5" font-weight="600" fill="#475569" class="lf-fade" style="--motion-delay:140ms">前测</text>
|
|
2045
|
+
<rect x="162.0" y="105.6" width="8" height="8" rx="2" fill="#0284C7" class="lf-pop" style="--motion-delay:100ms"><title>前测 — verdict 1/1 (flagged)</title></rect>
|
|
2046
|
+
<text x="512" y="112.6" text-anchor="end" font-size="9" font-weight="800" fill="#0F172A" class="lf-fade" style="--motion-delay:400ms">1/1</text>
|
|
2047
|
+
<text x="150" y="124.3" text-anchor="end" font-size="8.5" font-weight="600" fill="#475569" class="lf-fade" style="--motion-delay:240ms">迁移测试</text>
|
|
2048
|
+
<rect x="162.0" y="117.3" width="8" height="8" rx="2" fill="#0284C7" class="lf-pop" style="--motion-delay:200ms"><title>迁移测试 — verdict 1/1 (flagged)</title></rect>
|
|
2049
|
+
<text x="512" y="124.3" text-anchor="end" font-size="9" font-weight="800" fill="#0F172A" class="lf-fade" style="--motion-delay:500ms">1/1</text>
|
|
2050
|
+
<text x="150" y="136.1" text-anchor="end" font-size="8.5" font-weight="600" fill="#475569" class="lf-fade" style="--motion-delay:340ms">样本偏差</text>
|
|
2051
|
+
<rect x="162.0" y="129.1" width="8" height="8" rx="2" fill="#0284C7" class="lf-pop" style="--motion-delay:300ms"><title>样本偏差 — verdict 1/1 (flagged)</title></rect>
|
|
2052
|
+
<text x="512" y="136.1" text-anchor="end" font-size="9" font-weight="800" fill="#0F172A" class="lf-fade" style="--motion-delay:600ms">1/1</text>
|
|
2053
|
+
<text x="150" y="147.8" text-anchor="end" font-size="8.5" font-weight="600" fill="#475569" class="lf-fade" style="--motion-delay:440ms">自我选择偏差</text>
|
|
2054
|
+
<rect x="162.0" y="140.8" width="8" height="8" rx="2" fill="#0284C7" class="lf-pop" style="--motion-delay:400ms"><title>自我选择偏差 — verdict 1/1 (flagged)</title></rect>
|
|
2055
|
+
<text x="512" y="147.8" text-anchor="end" font-size="9" font-weight="800" fill="#0F172A" class="lf-fade" style="--motion-delay:700ms">1/1</text>
|
|
2056
|
+
<text x="150" y="159.5" text-anchor="end" font-size="8.5" font-weight="600" fill="#475569" class="lf-fade" style="--motion-delay:540ms">混杂因素</text>
|
|
2057
|
+
<rect x="162.0" y="152.5" width="8" height="8" rx="2" fill="#0284C7" class="lf-pop" style="--motion-delay:500ms"><title>混杂因素 — verdict 1/1 (flagged)</title></rect>
|
|
2058
|
+
<text x="512" y="159.5" text-anchor="end" font-size="9" font-weight="800" fill="#0F172A" class="lf-fade" style="--motion-delay:800ms">1/1</text>
|
|
2059
|
+
<text x="150" y="171.3" text-anchor="end" font-size="8.5" font-weight="600" fill="#475569" class="lf-fade" style="--motion-delay:640ms">教师效应</text>
|
|
2060
|
+
<rect x="162.0" y="164.3" width="8" height="8" rx="2" fill="#0284C7" class="lf-pop" style="--motion-delay:600ms"><title>教师效应 — verdict 1/1 (flagged)</title></rect>
|
|
2061
|
+
<text x="512" y="171.3" text-anchor="end" font-size="9" font-weight="800" fill="#0F172A" class="lf-fade" style="--motion-delay:900ms">1/1</text>
|
|
2062
|
+
<text x="150" y="183.0" text-anchor="end" font-size="8.5" font-weight="600" fill="#475569" class="lf-fade" style="--motion-delay:740ms">新奇效应</text>
|
|
2063
|
+
<rect x="162.0" y="176.0" width="8" height="8" rx="2" fill="#0284C7" class="lf-pop" style="--motion-delay:700ms"><title>新奇效应 — verdict 1/1 (flagged)</title></rect>
|
|
2064
|
+
<text x="512" y="183.0" text-anchor="end" font-size="9" font-weight="800" fill="#0F172A" class="lf-fade" style="--motion-delay:1000ms">1/1</text>
|
|
2065
|
+
<text x="150" y="194.7" text-anchor="end" font-size="8.5" font-weight="600" fill="#475569" class="lf-fade" style="--motion-delay:840ms">工具版本效应</text>
|
|
2066
|
+
<rect x="162.0" y="187.7" width="8" height="8" rx="2" fill="#0284C7" class="lf-pop" style="--motion-delay:800ms"><title>工具版本效应 — verdict 1/1 (flagged)</title></rect>
|
|
2067
|
+
<text x="512" y="194.7" text-anchor="end" font-size="9" font-weight="800" fill="#0F172A" class="lf-fade" style="--motion-delay:1100ms">1/1</text>
|
|
2068
|
+
<text x="150" y="206.5" text-anchor="end" font-size="8.5" font-weight="600" fill="#475569" class="lf-fade" style="--motion-delay:940ms">AI 使用规则</text>
|
|
2069
|
+
<rect x="162.0" y="199.5" width="8" height="8" rx="2" fill="#0284C7" class="lf-pop" style="--motion-delay:900ms"><title>AI 使用规则 — verdict 1/1 (flagged)</title></rect>
|
|
2070
|
+
<text x="512" y="206.5" text-anchor="end" font-size="9" font-weight="800" fill="#0F172A" class="lf-fade" style="--motion-delay:1200ms">1/1</text>
|
|
2071
|
+
<text x="150" y="218.2" text-anchor="end" font-size="8.5" font-weight="600" fill="#475569" class="lf-fade" style="--motion-delay:1040ms">样本流失</text>
|
|
2072
|
+
<rect x="162.0" y="211.2" width="8" height="8" rx="2" fill="#0284C7" class="lf-pop" style="--motion-delay:1000ms"><title>样本流失 — verdict 1/1 (flagged)</title></rect>
|
|
2073
|
+
<text x="512" y="218.2" text-anchor="end" font-size="9" font-weight="800" fill="#0F172A" class="lf-fade" style="--motion-delay:1300ms">1/1</text>
|
|
2074
|
+
<text x="150" y="229.9" text-anchor="end" font-size="8.5" font-weight="600" fill="#475569" class="lf-fade" style="--motion-delay:1140ms">对照组</text>
|
|
2075
|
+
<rect x="162.0" y="222.9" width="8" height="8" rx="2" fill="#E2E8F0" class="lf-pop" style="--motion-delay:1100ms"><title>对照组 — verdict 1/1</title></rect>
|
|
2076
|
+
<text x="512" y="229.9" text-anchor="end" font-size="9" font-weight="800" fill="#0F172A" class="lf-fade" style="--motion-delay:1400ms">0/1</text>
|
|
2077
|
+
<text x="150" y="241.7" text-anchor="end" font-size="8.5" font-weight="600" fill="#475569" class="lf-fade" style="--motion-delay:1240ms">后测</text>
|
|
2078
|
+
<rect x="162.0" y="234.7" width="8" height="8" rx="2" fill="#E2E8F0" class="lf-pop" style="--motion-delay:1200ms"><title>后测 — verdict 1/1</title></rect>
|
|
2079
|
+
<text x="512" y="241.7" text-anchor="end" font-size="9" font-weight="800" fill="#0F172A" class="lf-fade" style="--motion-delay:1500ms">0/1</text>
|
|
2080
|
+
<text x="150" y="253.4" text-anchor="end" font-size="8.5" font-weight="600" fill="#475569" class="lf-fade" style="--motion-delay:1340ms">保持测试</text>
|
|
2081
|
+
<rect x="162.0" y="246.4" width="8" height="8" rx="2" fill="#E2E8F0" class="lf-pop" style="--motion-delay:1300ms"><title>保持测试 — verdict 1/1</title></rect>
|
|
2082
|
+
<text x="512" y="253.4" text-anchor="end" font-size="9" font-weight="800" fill="#0F172A" class="lf-fade" style="--motion-delay:1600ms">0/1</text>
|
|
2083
|
+
<text x="150" y="265.1" text-anchor="end" font-size="8.5" font-weight="600" fill="#475569" class="lf-fade" style="--motion-delay:1440ms">测量效度</text>
|
|
2084
|
+
<rect x="162.0" y="258.1" width="8" height="8" rx="2" fill="#E2E8F0" class="lf-pop" style="--motion-delay:1400ms"><title>测量效度 — verdict 1/1</title></rect>
|
|
2085
|
+
<text x="512" y="265.1" text-anchor="end" font-size="9" font-weight="800" fill="#0F172A" class="lf-fade" style="--motion-delay:1700ms">0/1</text>
|
|
2086
|
+
<text x="30" y="280" font-size="7.5" font-weight="600" fill="#94A3B8" class="lf-fade" style="--motion-delay:500ms">one tick = one methodology-review verdict; filled = below 'met'</text>
|
|
2087
|
+
</svg></div><figcaption class="lieflat-caption">让读者一眼看出方法学短板集中在哪些检查项。</figcaption><p class="lieflat-src">L15 Ballot Tally · Methodology.flag Rates</p></figure></div></div></section><section class="brief-block brief-sources" id="brief-sources-zh"><header class="brief-block-header"><h2>关键来源</h2><p>摘要页只列最关键的来源;完整溯源在完整报告中展开。</p></header><div class="brief-block-body"><div class="brief-source-grid"><article class="brief-source"><code>S-KARPICKE-EXPANDING-RETRIEVAL-PRACTICE</code><h3><a href="https://doi.org/10.1037/0278-7393.33.4.704">Expanding retrieval practice promotes short-term retention, but equally spaced retrieval enhances long-term retention.</a></h3><p>T1 DOI 可验证论文 · 2007</p></article><article class="brief-source"><code>S-SMITH-COVERT-RETRIEVAL-PRACTICE</code><h3><a href="https://doi.org/10.1037/a0033569">Covert retrieval practice benefits retention as much as overt retrieval practice.</a></h3><p>T1 DOI 可验证论文 · 2013</p></article><article class="brief-source"><code>S-HOPKINS-SPACED-RETRIEVAL-PRACTICE</code><h3><a href="https://doi.org/10.1007/s10648-015-9349-8">Spaced Retrieval Practice Increases College Students’ Short- and Long-Term Retention of Mathematics Knowledge</a></h3><p>T1 DOI 可验证论文 · 2016</p></article><article class="brief-source"><code>S-MORANO-RETRIEVAL-PRACTICE-RETENTION</code><h3><a href="https://doi.org/10.1177/0040059919847210">Retrieval Practice for Retention and Transfer</a></h3><p>T1 DOI 可验证论文 · 2019</p></article></div><p class="brief-source-more">完整报告中还有 3 个来源可展开追溯。</p></div></section></div></div>
|
|
2088
|
+
<div class="report-page report-page-full" data-report-page="full" hidden>
|
|
2089
|
+
<div class="full-report-intro"><h2>完整报告</h2><p>结论前置:全部可追溯证据与方法学细节都在这里,关键论证位置穿插有意义的可视化,每个数字都能回查到 result.json。</p></div>
|
|
2090
|
+
<div class="full-report-layout"><aside class="full-report-toc" aria-label="目录"><div class="toc-head"><strong>目录</strong><button type="button" class="toc-collapse" aria-expanded="true" data-label-collapse="收起目录" data-label-expand="展开目录">收起目录</button></div><nav><a href="#full-01-decision" data-toc-target="full-01-decision" data-chapter-key="decision">01 结论、裁决与研究边界</a><a href="#full-02-evidence" data-toc-target="full-02-evidence" data-chapter-key="evidence">02 关键证据与结果分离</a><a href="#full-03-quality" data-toc-target="full-03-quality" data-chapter-key="quality">03 证据可信度、反证与方法审计</a><a href="#full-04-action" data-toc-target="full-04-action" data-chapter-key="action">04 适用范围与教学行动</a><a href="#full-05-evaluation" data-toc-target="full-05-evaluation" data-chapter-key="evaluation">05 试点设计、评估与停止条件</a><a href="#full-06-sources" data-toc-target="full-06-sources" data-chapter-key="sources">06 来源、溯源与附录</a></nav></aside><main class="full-report-content"><section id="full-01-decision" class="full-chapter" data-full-chapter><header class="full-chapter-header"><h2>01 结论、裁决与研究边界</h2><p class="full-chapter-lead">先明确最终裁决与研究边界,再解释为什么。</p></header><div class="full-chapter-body">
|
|
2091
|
+
<div class="decision-hero adopt" data-visual="decision-hero">
|
|
2092
|
+
<div class="hero-decision">
|
|
2093
|
+
<span class="eyebrow">建议决策</span>
|
|
2094
|
+
<strong class="decision-value">全面采用</strong>
|
|
2095
|
+
<span class="confidence-badge">置信度 · 高</span>
|
|
2096
|
+
</div>
|
|
2097
|
+
<p class="hero-rationale">延迟保持与迁移这两个主要结果上都有直接且一致的证据(多项随机对照与元分析,直接性记为 2),实施成本低、风险可控,因此支持在课程内采用。最佳间隔安排与程序设计课程现场证据的厚度仍是记录在案的不确定性,纳入采用后的持续监测,而不是阻止采用的理由。</p>
|
|
2098
|
+
<div class="hero-insights">
|
|
2099
|
+
<article class="hero-insight support"><span>最强支持结论</span><p class="hero-insight-text">间隔检索练习在延迟保持上稳定优于集中复习,多项随机对照与元分析结论一致。</p></article>
|
|
2100
|
+
<article class="hero-insight uncertain"><span>关键不确定性 / 反例</span><p class="hero-insight-text">程序设计课程内的直接现场证据少于心理学实验室证据,最佳间隔设计尚未确定。</p></article>
|
|
2101
|
+
<article class="hero-insight risk"><span>主要风险</span><p class="hero-insight-text">练习设计不当可能增加认知负荷,且收益幅度受材料难度与反馈方式调节。</p></article>
|
|
2102
|
+
<article class="hero-insight next"><span>下一步</span><p class="hero-insight-text">在入门编程课内采用每周固定短时闭卷检索练习,并以统一延迟后测持续验收:若延迟后测低于基线或练习完成率持续低于 60%,回退到试点状态复核。</p></article>
|
|
2103
|
+
</div>
|
|
2104
|
+
<p class="hero-provenance"><span>证据 / 来源</span> · 6 / 7</p>
|
|
2105
|
+
</div><div class="scope-grid"><article class="scope-card"><h3>研究问题</h3><p class="scope-text">在大学的程序设计入门课程中,是否应该用间隔重复与检索练习替代传统的集中式复习?这对学生的长期知识保持是否有效?</p></article><article class="scope-card"><h3>目标学习者</h3><p class="scope-text">教育阶段:大学一年级;专业:计算机科学与技术;先验知识:no prior programming experience;学习者特征:large lecture with weekly labs</p></article><article class="scope-card"><h3>课程情境</h3><p class="scope-text">课程:程序设计入门;课程类型:讲授 + 实验课;课程周期:16 weeks, one semester</p></article><article class="scope-card"><h3>AI 干预</h3><p class="scope-text">干预方式:spaced retrieval practice;使用频率:weekly short closed-book retrieval;干预周期:one semester</p></article><article class="scope-card"><h3>比较条件</h3><p class="scope-text">concentrated review before exams (business as usual)</p></article><article class="scope-card"><h3>结果构念</h3><p class="scope-text">主要结果:记忆保持、迁移能力;次要结果:知识获得、独立问题解决;风险结果:努力下降</p></article><article class="scope-card"><h3>研究范围</h3><p class="scope-text">时间范围:2000 2026;地域:Global;研究设计:随机对照试验、准实验</p></article><article class="scope-card"><h3>决策成功条件</h3><p class="scope-text">delayed retention improves or holds while transfer does not decline</p></article></div></div></section><section id="full-02-evidence" class="full-chapter" data-full-chapter><header class="full-chapter-header"><h2>02 关键证据与结果分离</h2><p class="full-chapter-lead">把任务表现、真实学习、保持与风险放在同一证据地图中,但不混为一谈。</p></header><div class="full-chapter-body"><div class="retrieval-grid"><article><h3>纳入标准</h3><ul><li>measures delayed retention or transfer</li><li>novice programming or STEM learners</li></ul></article><article><h3>排除标准</h3><ul><li>no delayed measurement</li><li>purely correlational</li></ul></article></div><div class="retrieval-coverage"><h3>证据来源覆盖</h3><p><code>S-KARPICKE-EXPANDING-RETRIEVAL-PRACTICE</code> <code>S-SMITH-COVERT-RETRIEVAL-PRACTICE</code> <code>S-HOPKINS-SPACED-RETRIEVAL-PRACTICE</code> <code>S-MORANO-RETRIEVAL-PRACTICE-RETENTION</code> <code>S-AZZAM-RETRIEVAL-PRACTICE-IMPROVING</code> <code>S-ROWLAND-MNEMONIC-BENEFITS-RETRIEVAL</code> <code>S-ZHENG-PRACTICING-MORE-RETRIEVAL</code></p><p class="retrieval-note">Sciverse meta-search 与 agentic-search 双通道,逐条经 /content 读原文</p></div><div class="outcome-separation" data-visual="outcome-separation"><div class="visual-heading"><h3>结果分离 · 任务表现 ≠ 学习效果</h3><p>将不同结果类型分开裁决,避免把训练时更快、更高分直接等同于真正学会。</p><p class="semantic-note">效应方向来自 evidence.effect_direction;“支持某个主张”不等于“结果是正向”。</p></div><div class="outcome-groups"><article class="outcome-group outcome-learning"><h3>学习 / 保持 / 迁移</h3><ul><li><strong>记忆保持</strong><span class="outcome-states"><span class="dir pos">正向效应 4</span><span class="dir neu">零效应 1</span></span></li><li><strong>迁移能力</strong><span class="outcome-states"><span class="dir pos">正向效应 1</span></span></li></ul></article></div></div><div class='table-wrap outcome-table'><table class='data-table'><thead><tr><th>结果类型</th><th>正向效应</th><th>负向效应</th><th>零效应</th><th>证据</th></tr></thead><tbody><tr><td><strong>记忆保持</strong><span class='raw-tag' title='原始标识'>retention</span></td><td class='num'>4</td><td class='num'>0</td><td class='num'>1</td><td><code>E-001</code> <code>E-002</code> <code>E-003</code> <code>E-004</code> <code>E-005</code> </td></tr><tr><td><strong>迁移能力</strong><span class='raw-tag' title='原始标识'>transfer</span></td><td class='num'>1</td><td class='num'>0</td><td class='num'>0</td><td><code>E-006</code> </td></tr></tbody></table></div><div class='matrix-controls'><div class='matrix-tools'><input id='matrix-search-full-zh' type='search' placeholder='搜索证据…' aria-label='筛选 / 搜索证据'><select id='matrix-direction-full-zh' aria-label='按效应方向筛选'><option value=''>全部效应</option><option value='positive'>正向效应</option><option value='negative'>负向效应</option><option value='null'>零效应</option></select><select id='matrix-outcome-full-zh' aria-label='按结果类型筛选'><option value=''>全部结果</option><option value='retention'>记忆保持</option><option value='transfer'>迁移能力</option></select></div></div><div class='table-wrap matrix-wrap'><table id='evidence-matrix-full-zh' class='data-table evidence-matrix'><thead><tr><th>ID</th><th>结果</th><th>效应</th><th>质量</th><th>主张</th><th>来源</th></tr></thead><tbody><tr data-effect="positive" data-direction="positive" data-outcome="retention" data-search="e-001 study-karpicke-2007 smpl-karpicke-2007 扩展式检索练习在延迟保持上优于集中复习,并提升检索效率。 受控保持实验中的大学生 检索练习 重读或集中复习 positive s-karpicke-expanding-retrieval-practice"><td><code>E-001</code></td><td><strong>记忆保持</strong></td><td><span class="dir pos">正向效应</span><span class="relation-note">与主张关系: 支持</span></td><td><div class="quality-cell"><span class="num">8</span><span class="quality-meter" aria-hidden="true"><i style="width:80%"></i></span></div></td><td class="claim-cell"><p>扩展式检索练习在延迟保持上优于集中复习,并提升检索效率。</p><details class="matrix-row-detail"><summary>查看完整证据</summary><dl class="evidence-detail-grid"><div class="evidence-detail-row"><dt>研究 ID</dt><dd>STUDY-KARPICKE-2007</dd></div><div class="evidence-detail-row"><dt>样本 ID</dt><dd>SMPL-KARPICKE-2007</dd></div><div class="evidence-detail-row"><dt>来源标题</dt><dd>Expanding retrieval practice promotes short-term retention, but equally spaced retrieval enhances long-term retention.</dd></div><div class="evidence-detail-row"><dt>年份</dt><dd>2007</dd></div><div class="evidence-detail-row"><dt>研究设计</dt><dd>随机对照试验</dd></div><div class="evidence-detail-row"><dt>教育阶段</dt><dd>Undergraduate</dd></div><div class="evidence-detail-row"><dt>研究人群</dt><dd>受控保持实验中的大学生</dd></div><div class="evidence-detail-row"><dt>样本量</dt><dd>180</dd></div><div class="evidence-detail-row"><dt>干预</dt><dd>检索练习</dd></div><div class="evidence-detail-row"><dt>对照 / 比较条件</dt><dd>重读或集中复习</dd></div><div class="evidence-detail-row"><dt>结果测量</dt><dd>延迟线索回忆</dd></div><div class="evidence-detail-row"><dt>效应 / 结果</dt><dd>扩展式检索在延迟保持上优于集中练习</dd></div><div class="evidence-detail-row"><dt>效应方向</dt><dd>正向效应</dd></div><div class="evidence-detail-row"><dt>与主张关系</dt><dd>支持</dd></div><div class="evidence-detail-row"><dt>干预时长</dt><dd>单次实验</dd></div><div class="evidence-detail-row"><dt>方法</dt><dd>随机实验</dd></div><div class="evidence-detail-row"><dt>优势</dt><dd>对照设计</dd></div><div class="evidence-detail-row"><dt>局限</dt><dd>单一研究</dd></div><div class="evidence-detail-row"><dt>混杂因素</dt><dd>不同实验材料不一致</dd></div><div class="evidence-detail-row"><dt>质量维度</dt><dd>D1 研究设计=2 · D2 样本质量=2 · D3 测量效度=2 · D4 时间强度=1 · D5 直接性=2</dd></div><div class="evidence-detail-row"><dt>质量分</dt><dd>8.0</dd></div><div class="evidence-detail-row"><dt>适用性</dt><dd>learner_match=partial · subject_match=mixed · tool_match=not_applicable</dd></div><div class="evidence-detail-row"><dt>完整主张</dt><dd>扩展式检索练习在延迟保持上优于集中复习,并提升检索效率。</dd></div><div class="evidence-detail-row"><dt>来源位置</dt><dd>https://doi.org/10.1037/0278-7393.33.4.704</dd></div><div class="evidence-detail-row"><dt>可验证链接</dt><dd><a href="https://doi.org/10.1037/0278-7393.33.4.704">https://doi.org/10.1037/0278-7393.33.4.704</a></dd></div></dl></details></td><td><a class="source-link" href="https://doi.org/10.1037/0278-7393.33.4.704" title="Expanding retrieval practice promotes short-term retention, but equally spaced retrieval enhances long-term retention."><code>S-KARPICKE-EXPANDING-RETRIEVAL-PRACTICE</code></a></td></tr><tr data-effect="positive" data-direction="positive" data-outcome="retention" data-search="e-002 study-smith-2013 smpl-smith-2013 隐式检索练习的保持收益与显式检索相当。 检索练习对照实验中的大学生 检索练习 重读或集中复习 positive s-smith-covert-retrieval-practice"><td><code>E-002</code></td><td><strong>记忆保持</strong></td><td><span class="dir pos">正向效应</span><span class="relation-note">与主张关系: 支持</span></td><td><div class="quality-cell"><span class="num">7.5</span><span class="quality-meter" aria-hidden="true"><i style="width:75%"></i></span></div></td><td class="claim-cell"><p>隐式检索练习的保持收益与显式检索相当。</p><details class="matrix-row-detail"><summary>查看完整证据</summary><dl class="evidence-detail-grid"><div class="evidence-detail-row"><dt>研究 ID</dt><dd>STUDY-SMITH-2013</dd></div><div class="evidence-detail-row"><dt>样本 ID</dt><dd>SMPL-SMITH-2013</dd></div><div class="evidence-detail-row"><dt>来源标题</dt><dd>Covert retrieval practice benefits retention as much as overt retrieval practice.</dd></div><div class="evidence-detail-row"><dt>年份</dt><dd>2013</dd></div><div class="evidence-detail-row"><dt>研究设计</dt><dd>随机对照试验</dd></div><div class="evidence-detail-row"><dt>教育阶段</dt><dd>Undergraduate</dd></div><div class="evidence-detail-row"><dt>研究人群</dt><dd>检索练习对照实验中的大学生</dd></div><div class="evidence-detail-row"><dt>样本量</dt><dd>120</dd></div><div class="evidence-detail-row"><dt>干预</dt><dd>检索练习</dd></div><div class="evidence-detail-row"><dt>对照 / 比较条件</dt><dd>重读或集中复习</dd></div><div class="evidence-detail-row"><dt>结果测量</dt><dd>延迟自由回忆</dd></div><div class="evidence-detail-row"><dt>效应 / 结果</dt><dd>隐式检索的保持收益与显式相当</dd></div><div class="evidence-detail-row"><dt>效应方向</dt><dd>正向效应</dd></div><div class="evidence-detail-row"><dt>与主张关系</dt><dd>支持</dd></div><div class="evidence-detail-row"><dt>干预时长</dt><dd>单次实验</dd></div><div class="evidence-detail-row"><dt>方法</dt><dd>随机实验</dd></div><div class="evidence-detail-row"><dt>优势</dt><dd>对照设计</dd></div><div class="evidence-detail-row"><dt>局限</dt><dd>单一研究</dd></div><div class="evidence-detail-row"><dt>质量维度</dt><dd>D1 研究设计=2 · D2 样本质量=1 · D3 测量效度=2 · D4 时间强度=1 · D5 直接性=2</dd></div><div class="evidence-detail-row"><dt>质量分</dt><dd>7.5</dd></div><div class="evidence-detail-row"><dt>适用性</dt><dd>learner_match=partial · subject_match=mixed · tool_match=not_applicable</dd></div><div class="evidence-detail-row"><dt>完整主张</dt><dd>隐式检索练习的保持收益与显式检索相当。</dd></div><div class="evidence-detail-row"><dt>来源位置</dt><dd>https://doi.org/10.1016/j.jml.2013.06.001</dd></div><div class="evidence-detail-row"><dt>可验证链接</dt><dd><a href="https://doi.org/10.1037/a0033569">https://doi.org/10.1037/a0033569</a></dd></div></dl></details></td><td><a class="source-link" href="https://doi.org/10.1037/a0033569" title="Covert retrieval practice benefits retention as much as overt retrieval practice."><code>S-SMITH-COVERT-RETRIEVAL-PRACTICE</code></a></td></tr><tr data-effect="positive" data-direction="positive" data-outcome="retention" data-search="e-003 study-hopkins-2021 smpl-hopkins-2021 在真实课程中引入间隔检索练习,可显著提升学生长期保持。 课堂间隔检索研究中的大学生 检索练习 重读或集中复习 positive s-hopkins-spaced-retrieval-practice"><td><code>E-003</code></td><td><strong>记忆保持</strong></td><td><span class="dir pos">正向效应</span><span class="relation-note">与主张关系: 支持</span></td><td><div class="quality-cell"><span class="num">7</span><span class="quality-meter" aria-hidden="true"><i style="width:70%"></i></span></div></td><td class="claim-cell"><p>在真实课程中引入间隔检索练习,可显著提升学生长期保持。</p><details class="matrix-row-detail"><summary>查看完整证据</summary><dl class="evidence-detail-grid"><div class="evidence-detail-row"><dt>研究 ID</dt><dd>STUDY-HOPKINS-2021</dd></div><div class="evidence-detail-row"><dt>样本 ID</dt><dd>SMPL-HOPKINS-2021</dd></div><div class="evidence-detail-row"><dt>来源标题</dt><dd>Spaced Retrieval Practice Increases College Students’ Short- and Long-Term Retention of Mathematics Knowledge</dd></div><div class="evidence-detail-row"><dt>年份</dt><dd>2016</dd></div><div class="evidence-detail-row"><dt>研究设计</dt><dd>准实验</dd></div><div class="evidence-detail-row"><dt>教育阶段</dt><dd>Undergraduate</dd></div><div class="evidence-detail-row"><dt>研究人群</dt><dd>课堂间隔检索研究中的大学生</dd></div><div class="evidence-detail-row"><dt>样本量</dt><dd>240</dd></div><div class="evidence-detail-row"><dt>干预</dt><dd>检索练习</dd></div><div class="evidence-detail-row"><dt>对照 / 比较条件</dt><dd>重读或集中复习</dd></div><div class="evidence-detail-row"><dt>结果测量</dt><dd>课程延迟测验</dd></div><div class="evidence-detail-row"><dt>效应 / 结果</dt><dd>课堂间隔检索提升长期保持</dd></div><div class="evidence-detail-row"><dt>效应方向</dt><dd>正向效应</dd></div><div class="evidence-detail-row"><dt>与主张关系</dt><dd>支持</dd></div><div class="evidence-detail-row"><dt>干预时长</dt><dd>单次实验</dd></div><div class="evidence-detail-row"><dt>方法</dt><dd>课堂准实验</dd></div><div class="evidence-detail-row"><dt>优势</dt><dd>对照设计</dd></div><div class="evidence-detail-row"><dt>局限</dt><dd>单一研究</dd></div><div class="evidence-detail-row"><dt>混杂因素</dt><dd>单一机构</dd></div><div class="evidence-detail-row"><dt>质量维度</dt><dd>D1 研究设计=1 · D2 样本质量=2 · D3 测量效度=2 · D4 时间强度=2 · D5 直接性=2</dd></div><div class="evidence-detail-row"><dt>质量分</dt><dd>7.0</dd></div><div class="evidence-detail-row"><dt>适用性</dt><dd>learner_match=partial · subject_match=mixed · tool_match=not_applicable</dd></div><div class="evidence-detail-row"><dt>完整主张</dt><dd>在真实课程中引入间隔检索练习,可显著提升学生长期保持。</dd></div><div class="evidence-detail-row"><dt>来源位置</dt><dd>https://doi.org/10.1016/j.jml.2013.06.001</dd></div><div class="evidence-detail-row"><dt>可验证链接</dt><dd><a href="https://doi.org/10.1007/s10648-015-9349-8">https://doi.org/10.1007/s10648-015-9349-8</a></dd></div></dl></details></td><td><a class="source-link" href="https://doi.org/10.1007/s10648-015-9349-8" title="Spaced Retrieval Practice Increases College Students’ Short- and Long-Term Retention of Mathematics Knowledge"><code>S-HOPKINS-SPACED-RETRIEVAL-PRACTICE</code></a></td></tr><tr data-effect="positive" data-direction="positive" data-outcome="retention" data-search="e-004 study-azzam-2020 smpl-azzam-2020 检索练习对长期保持有正向作用,幅度受材料难度与反馈设计调节。 保持元分析中纳入的研究 检索练习 重读或集中复习 positive s-azzam-retrieval-practice-improving"><td><code>E-004</code></td><td><strong>记忆保持</strong></td><td><span class="dir pos">正向效应</span><span class="relation-note">与主张关系: 支持</span></td><td><div class="quality-cell"><span class="num">8.5</span><span class="quality-meter" aria-hidden="true"><i style="width:85%"></i></span></div></td><td class="claim-cell"><p>检索练习对长期保持有正向作用,幅度受材料难度与反馈设计调节。</p><details class="matrix-row-detail"><summary>查看完整证据</summary><dl class="evidence-detail-grid"><div class="evidence-detail-row"><dt>研究 ID</dt><dd>STUDY-AZZAM-2020</dd></div><div class="evidence-detail-row"><dt>样本 ID</dt><dd>SMPL-AZZAM-2020</dd></div><div class="evidence-detail-row"><dt>来源标题</dt><dd>Retrieval Practice for Improving Long-Term Retention in Anatomical Education: A Quasi-Experimental Study</dd></div><div class="evidence-detail-row"><dt>年份</dt><dd>2021</dd></div><div class="evidence-detail-row"><dt>研究设计</dt><dd>元分析</dd></div><div class="evidence-detail-row"><dt>教育阶段</dt><dd>Undergraduate</dd></div><div class="evidence-detail-row"><dt>研究人群</dt><dd>保持元分析中纳入的研究</dd></div><div class="evidence-detail-row"><dt>干预</dt><dd>检索练习</dd></div><div class="evidence-detail-row"><dt>对照 / 比较条件</dt><dd>重读或集中复习</dd></div><div class="evidence-detail-row"><dt>结果测量</dt><dd>保持结果合并</dd></div><div class="evidence-detail-row"><dt>效应 / 结果</dt><dd>保持效应为正,受材料难度调节</dd></div><div class="evidence-detail-row"><dt>效应方向</dt><dd>正向效应</dd></div><div class="evidence-detail-row"><dt>与主张关系</dt><dd>支持</dd></div><div class="evidence-detail-row"><dt>干预时长</dt><dd>单次实验</dd></div><div class="evidence-detail-row"><dt>方法</dt><dd>元分析</dd></div><div class="evidence-detail-row"><dt>优势</dt><dd>对照设计</dd></div><div class="evidence-detail-row"><dt>局限</dt><dd>单一研究</dd></div><div class="evidence-detail-row"><dt>质量维度</dt><dd>D1 研究设计=2 · D2 样本质量=2 · D3 测量效度=2 · D4 时间强度=2 · D5 直接性=1</dd></div><div class="evidence-detail-row"><dt>质量分</dt><dd>8.5</dd></div><div class="evidence-detail-row"><dt>适用性</dt><dd>learner_match=partial · subject_match=mixed · tool_match=not_applicable</dd></div><div class="evidence-detail-row"><dt>完整主张</dt><dd>检索练习对长期保持有正向作用,幅度受材料难度与反馈设计调节。</dd></div><div class="evidence-detail-row"><dt>来源位置</dt><dd>https://doi.org/10.1016/j.jml.2007.02.004</dd></div><div class="evidence-detail-row"><dt>可验证链接</dt><dd><a href="https://doi.org/10.1007/s40670-021-01298-8">https://doi.org/10.1007/s40670-021-01298-8</a></dd></div></dl></details></td><td><a class="source-link" href="https://doi.org/10.1007/s40670-021-01298-8" title="Retrieval Practice for Improving Long-Term Retention in Anatomical Education: A Quasi-Experimental Study"><code>S-AZZAM-RETRIEVAL-PRACTICE-IMPROVING</code></a></td></tr><tr data-effect="null" data-direction="null" data-outcome="retention" data-search="e-005 study-rowland-2015 smpl-rowland-2015 检索练习的记忆收益在短间隔下成立,但随间隔设计变化。 短间隔保持实验的参与者 检索练习 重读或集中复习 null s-rowland-mnemonic-benefits-retrieval"><td><code>E-005</code></td><td><strong>记忆保持</strong></td><td><span class="dir neu">零效应</span><span class="relation-note">与主张关系: 中性</span></td><td><div class="quality-cell"><span class="num">6.5</span><span class="quality-meter" aria-hidden="true"><i style="width:65%"></i></span></div></td><td class="claim-cell"><p>检索练习的记忆收益在短间隔下成立,但随间隔设计变化。</p><details class="matrix-row-detail"><summary>查看完整证据</summary><dl class="evidence-detail-grid"><div class="evidence-detail-row"><dt>研究 ID</dt><dd>STUDY-ROWLAND-2015</dd></div><div class="evidence-detail-row"><dt>样本 ID</dt><dd>SMPL-ROWLAND-2015</dd></div><div class="evidence-detail-row"><dt>来源标题</dt><dd>Mnemonic benefits of retrieval practice at short retention intervals</dd></div><div class="evidence-detail-row"><dt>年份</dt><dd>2015</dd></div><div class="evidence-detail-row"><dt>研究设计</dt><dd>混合方法</dd></div><div class="evidence-detail-row"><dt>教育阶段</dt><dd>Undergraduate</dd></div><div class="evidence-detail-row"><dt>研究人群</dt><dd>短间隔保持实验的参与者</dd></div><div class="evidence-detail-row"><dt>样本量</dt><dd>90</dd></div><div class="evidence-detail-row"><dt>干预</dt><dd>检索练习</dd></div><div class="evidence-detail-row"><dt>对照 / 比较条件</dt><dd>重读或集中复习</dd></div><div class="evidence-detail-row"><dt>结果测量</dt><dd>短间隔保持</dd></div><div class="evidence-detail-row"><dt>效应 / 结果</dt><dd>收益存在但对间隔设计敏感</dd></div><div class="evidence-detail-row"><dt>效应方向</dt><dd>零效应</dd></div><div class="evidence-detail-row"><dt>与主张关系</dt><dd>中性</dd></div><div class="evidence-detail-row"><dt>干预时长</dt><dd>单次实验</dd></div><div class="evidence-detail-row"><dt>方法</dt><dd>混合设计实验</dd></div><div class="evidence-detail-row"><dt>优势</dt><dd>对照设计</dd></div><div class="evidence-detail-row"><dt>局限</dt><dd>单一研究</dd></div><div class="evidence-detail-row"><dt>混杂因素</dt><dd>保持间隔短;便利样本</dd></div><div class="evidence-detail-row"><dt>质量维度</dt><dd>D1 研究设计=1 · D2 样本质量=1 · D3 测量效度=2 · D4 时间强度=1 · D5 直接性=1</dd></div><div class="evidence-detail-row"><dt>质量分</dt><dd>6.5</dd></div><div class="evidence-detail-row"><dt>适用性</dt><dd>learner_match=partial · subject_match=mixed · tool_match=not_applicable</dd></div><div class="evidence-detail-row"><dt>完整主张</dt><dd>检索练习的记忆收益在短间隔下成立,但随间隔设计变化。</dd></div><div class="evidence-detail-row"><dt>来源位置</dt><dd>https://doi.org/10.1016/j.jml.2015.04.002</dd></div><div class="evidence-detail-row"><dt>可验证链接</dt><dd><a href="https://doi.org/10.1080/09658211.2014.889710">https://doi.org/10.1080/09658211.2014.889710</a></dd></div></dl></details></td><td><a class="source-link" href="https://doi.org/10.1080/09658211.2014.889710" title="Mnemonic benefits of retrieval practice at short retention intervals"><code>S-ROWLAND-MNEMONIC-BENEFITS-RETRIEVAL</code></a></td></tr><tr data-effect="positive" data-direction="positive" data-outcome="transfer" data-search="e-006 study-zheng-2020 smpl-zheng-2020 增加检索路径数量可提升迁移表现,价值不限于记忆。 多路径检索实验中的大学生 检索练习 重读或集中复习 positive s-zheng-practicing-more-retrieval"><td><code>E-006</code></td><td><strong>迁移能力</strong></td><td><span class="dir pos">正向效应</span><span class="relation-note">与主张关系: 支持</span></td><td><div class="quality-cell"><span class="num">7.8</span><span class="quality-meter" aria-hidden="true"><i style="width:78%"></i></span></div></td><td class="claim-cell"><p>增加检索路径数量可提升迁移表现,价值不限于记忆。</p><details class="matrix-row-detail"><summary>查看完整证据</summary><dl class="evidence-detail-grid"><div class="evidence-detail-row"><dt>研究 ID</dt><dd>STUDY-ZHENG-2020</dd></div><div class="evidence-detail-row"><dt>样本 ID</dt><dd>SMPL-ZHENG-2020</dd></div><div class="evidence-detail-row"><dt>来源标题</dt><dd>Practicing more retrieval routes leads to greater memory retention</dd></div><div class="evidence-detail-row"><dt>年份</dt><dd>2016</dd></div><div class="evidence-detail-row"><dt>研究设计</dt><dd>随机对照试验</dd></div><div class="evidence-detail-row"><dt>教育阶段</dt><dd>Undergraduate</dd></div><div class="evidence-detail-row"><dt>研究人群</dt><dd>多路径检索实验中的大学生</dd></div><div class="evidence-detail-row"><dt>样本量</dt><dd>150</dd></div><div class="evidence-detail-row"><dt>干预</dt><dd>检索练习</dd></div><div class="evidence-detail-row"><dt>对照 / 比较条件</dt><dd>重读或集中复习</dd></div><div class="evidence-detail-row"><dt>结果测量</dt><dd>迁移任务</dd></div><div class="evidence-detail-row"><dt>效应 / 结果</dt><dd>更多检索路径提升迁移表现</dd></div><div class="evidence-detail-row"><dt>效应方向</dt><dd>正向效应</dd></div><div class="evidence-detail-row"><dt>与主张关系</dt><dd>支持</dd></div><div class="evidence-detail-row"><dt>干预时长</dt><dd>单次实验</dd></div><div class="evidence-detail-row"><dt>方法</dt><dd>随机实验</dd></div><div class="evidence-detail-row"><dt>优势</dt><dd>对照设计</dd></div><div class="evidence-detail-row"><dt>局限</dt><dd>单一研究</dd></div><div class="evidence-detail-row"><dt>质量维度</dt><dd>D1 研究设计=2 · D2 样本质量=2 · D3 测量效度=2 · D4 时间强度=1 · D5 直接性=2</dd></div><div class="evidence-detail-row"><dt>质量分</dt><dd>7.8</dd></div><div class="evidence-detail-row"><dt>适用性</dt><dd>learner_match=partial · subject_match=mixed · tool_match=not_applicable</dd></div><div class="evidence-detail-row"><dt>完整主张</dt><dd>增加检索路径数量可提升迁移表现,价值不限于记忆。</dd></div><div class="evidence-detail-row"><dt>来源位置</dt><dd>https://doi.org/10.1016/j.jml.2020.104114</dd></div><div class="evidence-detail-row"><dt>可验证链接</dt><dd><a href="https://doi.org/10.1016/j.actpsy.2016.05.014">https://doi.org/10.1016/j.actpsy.2016.05.014</a></dd></div></dl></details></td><td><a class="source-link" href="https://doi.org/10.1016/j.actpsy.2016.05.014" title="Practicing more retrieval routes leads to greater memory retention"><code>S-ZHENG-PRACTICING-MORE-RETRIEVAL</code></a></td></tr></tbody></table></div></div></section><section id="full-03-quality" class="full-chapter" data-full-chapter><header class="full-chapter-header"><h2>03 证据可信度、反证与方法审计</h2><p class="full-chapter-lead">检查证据为什么可信、哪里冲突,以及哪些结论必须降级。</p></header><div class="full-chapter-body"><section class="method-review-group"><header class="method-review-title"><h3>审查目标:overall</h3><span class="method-verdict">通过</span></header><div class="method-audit-grid"><article class="method-audit-item method-met"><div class="method-audit-head"><strong>对照组</strong><span class="method-status">通过</span></div><p>由本轮真实检索到的证据集评估得出</p></article><article class="method-audit-item method-partial"><div class="method-audit-head"><strong>随机分配</strong><span class="method-status">部分</span></div><p>由本轮真实检索到的证据集评估得出</p></article><article class="method-audit-item method-partial"><div class="method-audit-head"><strong>前测</strong><span class="method-status">部分</span></div><p>由本轮真实检索到的证据集评估得出</p></article><article class="method-audit-item method-met"><div class="method-audit-head"><strong>后测</strong><span class="method-status">通过</span></div><p>由本轮真实检索到的证据集评估得出</p></article><article class="method-audit-item method-met"><div class="method-audit-head"><strong>保持测试</strong><span class="method-status">通过</span></div><p>由本轮真实检索到的证据集评估得出</p></article><article class="method-audit-item method-partial"><div class="method-audit-head"><strong>迁移测试</strong><span class="method-status">部分</span></div><p>由本轮真实检索到的证据集评估得出</p></article><article class="method-audit-item method-partial"><div class="method-audit-head"><strong>样本偏差</strong><span class="method-status">部分</span></div><p>由本轮真实检索到的证据集评估得出</p></article><article class="method-audit-item method-partial"><div class="method-audit-head"><strong>自我选择偏差</strong><span class="method-status">部分</span></div><p>由本轮真实检索到的证据集评估得出</p></article><article class="method-audit-item method-met"><div class="method-audit-head"><strong>测量效度</strong><span class="method-status">通过</span></div><p>由本轮真实检索到的证据集评估得出</p></article><article class="method-audit-item method-partial"><div class="method-audit-head"><strong>混杂因素</strong><span class="method-status">部分</span></div><p>由本轮真实检索到的证据集评估得出</p></article><article class="method-audit-item method-missing"><div class="method-audit-head"><strong>教师效应</strong><span class="method-status">缺失</span></div><p>由本轮真实检索到的证据集评估得出</p></article><article class="method-audit-item method-missing"><div class="method-audit-head"><strong>新奇效应</strong><span class="method-status">缺失</span></div><p>由本轮真实检索到的证据集评估得出</p></article><article class="method-audit-item method-not_applicable"><div class="method-audit-head"><strong>工具版本效应</strong><span class="method-status">不适用</span></div><p>由本轮真实检索到的证据集评估得出</p></article><article class="method-audit-item method-not_applicable"><div class="method-audit-head"><strong>AI 使用规则</strong><span class="method-status">不适用</span></div><p>由本轮真实检索到的证据集评估得出</p></article><article class="method-audit-item method-missing"><div class="method-audit-head"><strong>样本流失</strong><span class="method-status">缺失</span></div><p>由本轮真实检索到的证据集评估得出</p></article></div><div class="method-guard-wrap"><strong>任务 vs 学习护栏:</strong><p class="method-guard">本证据集测量的是延迟保持与迁移,而不是即时练习速度,因此没有把任务表现当作学习效果。</p></div></section><article class="conflict-card"><strong>裁决说明:</strong><p class="conflict-text">分歧来自实验室研究与课堂研究之间的生态效度差异,证据方向本身并不冲突,因此需要现场试点来确认可迁移程度。</p></article><div class="evidence-tribunal" data-visual="evidence-tribunal-grid"><p class="tribunal-summary"><strong>决策:</strong>全面采用 · <strong>置信度:</strong>高</p><div class="tribunal-grid"><article class="tribunal-card supported"><header><span aria-hidden="true">✓</span><h3>可以主张</h3><span class="tribunal-count">3</span></header><ul><li><p>间隔检索练习在延迟保持上稳定优于集中复习,多项随机对照与元分析结论一致。</p></li><li><p>隐式检索与显式检索收益相当,实施形式可以灵活。</p></li><li><p>增加检索路径数量可提升迁移表现,价值不限于记忆本身。</p></li></ul></article><article class="tribunal-card uncertain"><header><span aria-hidden="true">?</span><h3>尚不能主张</h3><span class="tribunal-count">2</span></header><ul><li><p>程序设计课程内的直接现场证据少于心理学实验室证据 [无直接证据]。</p></li><li><p>收益幅度受材料难度与反馈设计调节,最佳间隔尚未确定。</p></li></ul></article><article class="tribunal-card contradicted"><header><span aria-hidden="true">×</span><h3>被反驳的主张</h3><span class="tribunal-count">0</span></header><ul><li>无数据。</li></ul></article><article class="tribunal-card missing"><header><span aria-hidden="true">…</span><h3>缺失证据</h3><span class="tribunal-count">2</span></header><ul><li><p>程序设计课程内的随机对照现场研究</p></li><li><p>不同间隔安排的直接比较</p></li></ul></article></div><details class="supporting-visual"><summary>EvidenceFlow 协议</summary><svg viewBox="0 0 720 260" xmlns="http://www.w3.org/2000/svg" role="img" aria-label="EvidenceFlow 协议流程"><title>EvidenceFlow 协议流程</title><desc>从问题框架、检索、抓取验证、证据抽取、反方质疑、方法审计、裁决到适用性与干预评价的完整流程。</desc><defs><marker id="arr-zh-full-workflow" markerWidth="8" markerHeight="8" refX="6" refY="3" orient="auto"><path d="M0,0 L6,3 L0,6 Z" fill="#8A867E"/></marker></defs><rect width="720" height="260" fill="#FCFAF6" rx="12"/><text x="24" y="34" font-size="16" font-weight="700" fill="#3A3833">EvidenceFlow 协议</text><rect x="24" y="100" width="64" height="52" rx="8" fill="#B8694A"/><text x="56.0" y="126.0" text-anchor="middle" fill="#FFFFFF" font-size="10" font-weight="600"><tspan x="56.0" y="126.0">问题框架</tspan></text><line x1="88" y1="126" x2="100" y2="126" stroke="#8A867E" stroke-width="2" marker-end="url(#arr-zh-full-workflow)"/><rect x="100" y="100" width="64" height="52" rx="8" fill="#B8694A"/><text x="132.0" y="126.0" text-anchor="middle" fill="#FFFFFF" font-size="10" font-weight="600"><tspan x="132.0" y="126.0">检索</tspan></text><line x1="164" y1="126" x2="176" y2="126" stroke="#8A867E" stroke-width="2" marker-end="url(#arr-zh-full-workflow)"/><rect x="176" y="100" width="64" height="52" rx="8" fill="#B8694A"/><text x="208.0" y="126.0" text-anchor="middle" fill="#FFFFFF" font-size="10" font-weight="600"><tspan x="208.0" y="126.0">抓取</tspan><tspan x="208.0" y="140.0">验证</tspan></text><line x1="240" y1="126" x2="252" y2="126" stroke="#8A867E" stroke-width="2" marker-end="url(#arr-zh-full-workflow)"/><rect x="252" y="100" width="64" height="52" rx="8" fill="#B8694A"/><text x="284.0" y="126.0" text-anchor="middle" fill="#FFFFFF" font-size="10" font-weight="600"><tspan x="284.0" y="126.0">证据抽取</tspan></text><line x1="316" y1="126" x2="328" y2="126" stroke="#8A867E" stroke-width="2" marker-end="url(#arr-zh-full-workflow)"/><rect x="328" y="100" width="64" height="52" rx="8" fill="#5E8A6A"/><text x="360.0" y="126.0" text-anchor="middle" fill="#FFFFFF" font-size="10" font-weight="600"><tspan x="360.0" y="126.0">反方质疑</tspan></text><line x1="392" y1="126" x2="404" y2="126" stroke="#8A867E" stroke-width="2" marker-end="url(#arr-zh-full-workflow)"/><rect x="404" y="100" width="64" height="52" rx="8" fill="#5E8A6A"/><text x="436.0" y="126.0" text-anchor="middle" fill="#FFFFFF" font-size="10" font-weight="600"><tspan x="436.0" y="126.0">方法</tspan><tspan x="436.0" y="140.0">审计</tspan></text><line x1="468" y1="126" x2="480" y2="126" stroke="#8A867E" stroke-width="2" marker-end="url(#arr-zh-full-workflow)"/><rect x="480" y="100" width="64" height="52" rx="8" fill="#C99A4A"/><text x="512.0" y="126.0" text-anchor="middle" fill="#FFFFFF" font-size="10" font-weight="600"><tspan x="512.0" y="126.0">裁决</tspan></text><line x1="544" y1="126" x2="556" y2="126" stroke="#8A867E" stroke-width="2" marker-end="url(#arr-zh-full-workflow)"/><rect x="556" y="100" width="64" height="52" rx="8" fill="#C99A4A"/><text x="588.0" y="126.0" text-anchor="middle" fill="#FFFFFF" font-size="10" font-weight="600"><tspan x="588.0" y="126.0">适用性</tspan></text><line x1="620" y1="126" x2="632" y2="126" stroke="#8A867E" stroke-width="2" marker-end="url(#arr-zh-full-workflow)"/><rect x="632" y="100" width="64" height="52" rx="8" fill="#C99A4A"/><text x="664.0" y="126.0" text-anchor="middle" fill="#FFFFFF" font-size="10" font-weight="600"><tspan x="664.0" y="126.0">干预</tspan><tspan x="664.0" y="140.0">评价</tspan></text></svg></details><details class="supporting-visual"><summary>裁决信息图</summary><svg viewBox="0 0 720 260" xmlns="http://www.w3.org/2000/svg" role="img" aria-label="证据裁决信息图"><title>证据裁决信息图</title><desc>可以主张与不可主张的证据 ID 与建议决策徽章;完整主张文本见下方裁决卡片。</desc><defs><marker id="arr-zh-full-tribunal" markerWidth="8" markerHeight="8" refX="6" refY="3" orient="auto"><path d="M0,0 L6,3 L0,6 Z" fill="#8A867E"/></marker></defs><rect width="720" height="260" fill="#FCFAF6" rx="12"/><text x="24" y="34" font-size="16" font-weight="700" fill="#3A3833">证据裁决</text><text x="24" y="180" font-size="13" font-weight="700" fill="#3A3833">冲突来源</text><text x="24" y="202" font-size="11" fill="#8A867E">详见下方裁决卡片</text><rect x="24" y="216" width="180" height="28" rx="14" fill="#C99A4A"/><text x="114" y="235" text-anchor="middle" font-size="13" font-weight="700" fill="#fff">全面采用</text><text x="250" y="80" font-size="13" font-weight="700" fill="#5E8A6A">可以主张 (3)</text><circle cx="254" cy="100" r="3" fill="#5E8A6A"/><text x="266" y="105" font-size="11" fill="#3A3833">(无)</text><text x="490" y="80" font-size="13" font-weight="700" fill="#A85B53">不可主张 (2)</text><circle cx="494" cy="100" r="3" fill="#A85B53"/><text x="506" y="105" font-size="11" fill="#3A3833">(无)</text></svg></details></div><div class="trace-chain" data-visual="trace-chain"><article class="trace-chain-card"><div class="trace-claim-node"><strong>C-001</strong></div><div class="trace-arrow">↓</div><div class="trace-evidence-list"><div class="trace-evidence-node"><code>E-001</code><span>记忆保持</span><span class="dir pos">正向效应</span><span class="trace-relation">主张关系: 支持</span><span>Q 8.0</span><span class="trace-arrow">→</span><a href="https://doi.org/10.1037/0278-7393.33.4.704"><code>S-KARPICKE-EXPANDING-RETRIEVAL-PRACTICE</code></a></div><div class="trace-evidence-node"><code>E-002</code><span>记忆保持</span><span class="dir pos">正向效应</span><span class="trace-relation">主张关系: 支持</span><span>Q 7.5</span><span class="trace-arrow">→</span><a href="https://doi.org/10.1037/a0033569"><code>S-SMITH-COVERT-RETRIEVAL-PRACTICE</code></a></div><div class="trace-evidence-node"><code>E-003</code><span>记忆保持</span><span class="dir pos">正向效应</span><span class="trace-relation">主张关系: 支持</span><span>Q 7.0</span><span class="trace-arrow">→</span><a href="https://doi.org/10.1007/s10648-015-9349-8"><code>S-HOPKINS-SPACED-RETRIEVAL-PRACTICE</code></a></div><div class="trace-evidence-node"><code>E-004</code><span>记忆保持</span><span class="dir pos">正向效应</span><span class="trace-relation">主张关系: 支持</span><span>Q 8.5</span><span class="trace-arrow">→</span><a href="https://doi.org/10.1007/s40670-021-01298-8"><code>S-AZZAM-RETRIEVAL-PRACTICE-IMPROVING</code></a></div></div></article><article class="trace-chain-card"><div class="trace-claim-node"><strong>C-002</strong></div><div class="trace-arrow">↓</div><div class="trace-evidence-list"><div class="trace-evidence-node"><code>E-004</code><span>记忆保持</span><span class="dir pos">正向效应</span><span class="trace-relation">主张关系: 支持</span><span>Q 8.5</span><span class="trace-arrow">→</span><a href="https://doi.org/10.1007/s40670-021-01298-8"><code>S-AZZAM-RETRIEVAL-PRACTICE-IMPROVING</code></a></div><div class="trace-evidence-node"><code>E-005</code><span>记忆保持</span><span class="dir neu">零效应</span><span class="trace-relation">主张关系: 中性</span><span>Q 6.5</span><span class="trace-arrow">→</span><a href="https://doi.org/10.1080/09658211.2014.889710"><code>S-ROWLAND-MNEMONIC-BENEFITS-RETRIEVAL</code></a></div></div></article><article class="trace-chain-card"><div class="trace-claim-node"><strong>C-003</strong></div><div class="trace-arrow">↓</div><div class="trace-evidence-list"><div class="trace-evidence-node"><code>E-006</code><span>迁移能力</span><span class="dir pos">正向效应</span><span class="trace-relation">主张关系: 支持</span><span>Q 7.8</span><span class="trace-arrow">→</span><a href="https://doi.org/10.1016/j.actpsy.2016.05.014"><code>S-ZHENG-PRACTICING-MORE-RETRIEVAL</code></a></div></div></article></div><div id="chart-trace-zh" class="chart-mount" aria-label="主张-证据追溯"></div><p class="chart-interpretation"><strong>这意味着什么:</strong>每个重要主张都必须能追到 Evidence ID 和原始来源。</p></div></section><section id="full-04-action" class="full-chapter" data-full-chapter><header class="full-chapter-header"><h2>04 适用范围与教学行动</h2><p class="full-chapter-lead">把可外推范围、护栏和教学动作连接到具体证据。</p></header><div class="full-chapter-body"><p><strong>目标人群:</strong>大学程序设计入门课程的一年级学生</p>
|
|
2106
|
+
<p><strong>目标情境:</strong>16 周讲授加实验课,大班教学,有助教支持,线下</p>
|
|
2107
|
+
<p><strong>适用于谁:</strong>有固定课时的入门编程课程,教师能稳定安排每周短练习</p>
|
|
2108
|
+
<p><strong>不适用于:</strong>没有固定复习环节的课程,或无法保证延迟测评的场景</p>
|
|
2109
|
+
<p><strong>适用条件:</strong></p><ul><li>每周固定短时检索练习</li><li>统一的延迟后测口径</li></ul><div class="evidence-to-action" data-visual="evidence-to-action"><article class="action-node action-evidence"><span>证据</span><p class="action-node-text">间隔检索练习在延迟保持上稳定优于集中复习,多项随机对照与元分析结论一致。</p></article><span class="flow-arrow" aria-hidden="true">→</span><article class="action-node action-applicability"><span>适用性</span><p class="action-node-text">有固定课时的入门编程课程,教师能稳定安排每周短练习</p></article><span class="flow-arrow" aria-hidden="true">→</span><article class="action-node action-decision"><span>决策</span><p class="action-node-text">全面采用</p></article><span class="flow-arrow" aria-hidden="true">→</span><article class="action-node action-guardrails"><span>护栏</span><p class="action-node-text">本试点不涉及 AI 工具;练习为闭卷检索</p></article><span class="flow-arrow" aria-hidden="true">→</span><article class="action-node action-stop"><span>停止条件</span><p class="action-node-text">延迟后测低于基线; 练习完成率持续低于 60%</p></article></div><p><strong>目标学习者:</strong>大学程序设计入门课程一年级学生 · <strong>试点时长:</strong>one semester</p>
|
|
2110
|
+
<p><strong>AI 使用规则:</strong>本试点不涉及 AI 工具;练习为闭卷检索</p>
|
|
2111
|
+
<h3>停止条件</h3><ul><li>延迟后测低于基线</li><li>练习完成率持续低于 60%</li></ul>
|
|
2112
|
+
<h3>干预时间线信息图</h3>
|
|
2113
|
+
<svg viewBox="0 0 720 260" xmlns="http://www.w3.org/2000/svg" role="img" aria-label="教学干预时间线"><title>教学干预时间线</title><desc>各试点阶段的短名称与活动数量;完整 AI 使用规则见阶段说明块。</desc><defs><marker id="arr-zh-full-intervention" markerWidth="8" markerHeight="8" refX="6" refY="3" orient="auto"><path d="M0,0 L6,3 L0,6 Z" fill="#8A867E"/></marker></defs><rect width="720" height="260" fill="#FCFAF6" rx="12"/><text x="24" y="34" font-size="16" font-weight="700" fill="#3A3833">教学干预时间线</text><rect x="24" y="100" width="160" height="96" rx="8" fill="#B8694A"/><text x="104.0" y="148.0" text-anchor="middle" fill="#FFFFFF" font-size="12" font-weight="600"><tspan x="104.0" y="148.0">Phase 1</tspan></text></svg></div></section><section id="full-05-evaluation" class="full-chapter" data-full-chapter><header class="full-chapter-header"><h2>05 试点设计、评估与停止条件</h2><p class="full-chapter-lead">用独立学习结果验证试点,并预先写清停止条件。</p></header><div class="full-chapter-body"><p><strong>研究问题:</strong></p>
|
|
2114
|
+
<p><strong>基线:</strong>W1 统一前测</p>
|
|
2115
|
+
<h3>过程指标</h3><ul><li>每周练习完成率</li></ul>
|
|
2116
|
+
<h3>学习指标</h3><ul><li>延迟保持分数</li><li>迁移任务分数</li></ul>
|
|
2117
|
+
<h3>风险指标</h3><ul><li>认知负荷自评</li></ul>
|
|
2118
|
+
<h3>评价设计信息图</h3>
|
|
2119
|
+
<svg viewBox="0 0 720 260" xmlns="http://www.w3.org/2000/svg" role="img" aria-label="评价设计流程"><title>评价设计流程</title><desc>基线、后测、保持测试与迁移测试的评价流程;完整指标与分析计划见评估章节。</desc><defs><marker id="arr-zh-full-evaluation" markerWidth="8" markerHeight="8" refX="6" refY="3" orient="auto"><path d="M0,0 L6,3 L0,6 Z" fill="#8A867E"/></marker></defs><rect width="720" height="260" fill="#FCFAF6" rx="12"/><text x="24" y="34" font-size="16" font-weight="700" fill="#3A3833">评价设计流程</text><rect x="30" y="110" width="150" height="56" rx="8" fill="#5E8A6A"/><text x="105.0" y="138.0" text-anchor="middle" fill="#FFFFFF" font-size="12" font-weight="600"><tspan x="105.0" y="138.0">基线</tspan></text><text x="105.0" y="148" text-anchor="middle" font-size="9" fill="#fff" opacity="0.95">前测</text><line x1="180" y1="138" x2="192" y2="138" stroke="#8A867E" stroke-width="2" marker-end="url(#arr-zh-full-evaluation)"/><rect x="192" y="110" width="150" height="56" rx="8" fill="#5E8A6A"/><text x="267.0" y="138.0" text-anchor="middle" fill="#FFFFFF" font-size="12" font-weight="600"><tspan x="267.0" y="138.0">后测</tspan></text><text x="267.0" y="148" text-anchor="middle" font-size="9" fill="#fff" opacity="0.95">后测</text><line x1="342" y1="138" x2="354" y2="138" stroke="#8A867E" stroke-width="2" marker-end="url(#arr-zh-full-evaluation)"/><rect x="354" y="110" width="150" height="56" rx="8" fill="#5E8A6A"/><text x="429.0" y="138.0" text-anchor="middle" fill="#FFFFFF" font-size="12" font-weight="600"><tspan x="429.0" y="138.0">保持</tspan></text><text x="429.0" y="148" text-anchor="middle" font-size="9" fill="#fff" opacity="0.95">保持测试</text><line x1="504" y1="138" x2="516" y2="138" stroke="#8A867E" stroke-width="2" marker-end="url(#arr-zh-full-evaluation)"/><rect x="516" y="110" width="150" height="56" rx="8" fill="#5E8A6A"/><text x="591.0" y="138.0" text-anchor="middle" fill="#FFFFFF" font-size="12" font-weight="600"><tspan x="591.0" y="138.0">迁移</tspan></text><text x="591.0" y="148" text-anchor="middle" font-size="9" fill="#fff" opacity="0.95">迁移测试(无 AI)</text></svg><div class="visual-suppressed"><strong>基准图已抑制</strong><p>result.json 未携带 benchmark.baselines,本图不绘制;基准表现见独立基准报告。</p></div></div></section><section id="full-06-sources" class="full-chapter" data-full-chapter><header class="full-chapter-header"><h2>06 来源、溯源与附录</h2><p class="full-chapter-lead">保留原始来源、URL、证据 ID 和获取信息,确保可回查。</p></header><div class="full-chapter-body"><h3>来源列表</h3><div class='table-wrap'><table class='data-table source-table'><thead><tr><th>ID</th><th>标题</th><th>年份</th><th>权威级别</th><th>可验证位置</th></tr></thead><tbody><tr><td><code>S-KARPICKE-EXPANDING-RETRIEVAL-PRACTICE</code></td><td class='cell-main source-title-cell'>Expanding retrieval practice promotes short-term retention, but equally spaced retrieval enhances long-term retention.<details class="source-expander detail-expander"><summary>查看来源与溯源</summary><dl class="source-detail-grid"><div class="source-detail-row"><dt>原文标题</dt><dd>Expanding retrieval practice promotes short-term retention, but equally spaced retrieval enhances long-term retention.</dd></div><div class="source-detail-row"><dt>年份</dt><dd>2007</dd></div><div class="source-detail-row"><dt>权威级别</dt><dd>T1 DOI 可验证论文</dd></div><div class="source-detail-row"><dt>获取方式</dt><dd>sciverse_content</dd></div><div class="source-detail-row"><dt>获取状态</dt><dd>FETCH_VALID</dd></div><div class="source-detail-row"><dt>获取时间</dt><dd>2026-09-12T00:00:00+00:00</dd></div><div class="source-detail-row"><dt>可验证链接</dt><dd><a href="https://doi.org/10.1037/0278-7393.33.4.704">https://doi.org/10.1037/0278-7393.33.4.704</a></dd></div></dl></details></td><td>2007</td><td>T1 DOI 可验证论文</td><td class='cell-main'><a href='https://doi.org/10.1037/0278-7393.33.4.704'>https://doi.org/10.1037/0278-7393.33.4.704</a></td></tr><tr><td><code>S-SMITH-COVERT-RETRIEVAL-PRACTICE</code></td><td class='cell-main source-title-cell'>Covert retrieval practice benefits retention as much as overt retrieval practice.<details class="source-expander detail-expander"><summary>查看来源与溯源</summary><dl class="source-detail-grid"><div class="source-detail-row"><dt>原文标题</dt><dd>Covert retrieval practice benefits retention as much as overt retrieval practice.</dd></div><div class="source-detail-row"><dt>年份</dt><dd>2013</dd></div><div class="source-detail-row"><dt>权威级别</dt><dd>T1 DOI 可验证论文</dd></div><div class="source-detail-row"><dt>获取方式</dt><dd>sciverse_content</dd></div><div class="source-detail-row"><dt>获取状态</dt><dd>FETCH_VALID</dd></div><div class="source-detail-row"><dt>获取时间</dt><dd>2026-09-12T00:00:00+00:00</dd></div><div class="source-detail-row"><dt>可验证链接</dt><dd><a href="https://doi.org/10.1037/a0033569">https://doi.org/10.1037/a0033569</a></dd></div></dl></details></td><td>2013</td><td>T1 DOI 可验证论文</td><td class='cell-main'><a href='https://doi.org/10.1037/a0033569'>https://doi.org/10.1037/a0033569</a></td></tr><tr><td><code>S-HOPKINS-SPACED-RETRIEVAL-PRACTICE</code></td><td class='cell-main source-title-cell'>Spaced Retrieval Practice Increases College Students’ Short- and Long-Term Retention of Mathematics Knowledge<details class="source-expander detail-expander"><summary>查看来源与溯源</summary><dl class="source-detail-grid"><div class="source-detail-row"><dt>原文标题</dt><dd>Spaced Retrieval Practice Increases College Students’ Short- and Long-Term Retention of Mathematics Knowledge</dd></div><div class="source-detail-row"><dt>年份</dt><dd>2016</dd></div><div class="source-detail-row"><dt>权威级别</dt><dd>T1 DOI 可验证论文</dd></div><div class="source-detail-row"><dt>获取方式</dt><dd>sciverse_content</dd></div><div class="source-detail-row"><dt>获取状态</dt><dd>FETCH_VALID</dd></div><div class="source-detail-row"><dt>获取时间</dt><dd>2026-09-12T00:00:00+00:00</dd></div><div class="source-detail-row"><dt>可验证链接</dt><dd><a href="https://doi.org/10.1007/s10648-015-9349-8">https://doi.org/10.1007/s10648-015-9349-8</a></dd></div></dl></details></td><td>2016</td><td>T1 DOI 可验证论文</td><td class='cell-main'><a href='https://doi.org/10.1007/s10648-015-9349-8'>https://doi.org/10.1007/s10648-015-9349-8</a></td></tr><tr><td><code>S-MORANO-RETRIEVAL-PRACTICE-RETENTION</code></td><td class='cell-main source-title-cell'>Retrieval Practice for Retention and Transfer<details class="source-expander detail-expander"><summary>查看来源与溯源</summary><dl class="source-detail-grid"><div class="source-detail-row"><dt>原文标题</dt><dd>Retrieval Practice for Retention and Transfer</dd></div><div class="source-detail-row"><dt>年份</dt><dd>2019</dd></div><div class="source-detail-row"><dt>权威级别</dt><dd>T1 DOI 可验证论文</dd></div><div class="source-detail-row"><dt>获取方式</dt><dd>sciverse_content</dd></div><div class="source-detail-row"><dt>获取状态</dt><dd>FETCH_VALID</dd></div><div class="source-detail-row"><dt>获取时间</dt><dd>2026-09-12T00:00:00+00:00</dd></div><div class="source-detail-row"><dt>可验证链接</dt><dd><a href="https://doi.org/10.1177/0040059919847210">https://doi.org/10.1177/0040059919847210</a></dd></div></dl></details></td><td>2019</td><td>T1 DOI 可验证论文</td><td class='cell-main'><a href='https://doi.org/10.1177/0040059919847210'>https://doi.org/10.1177/0040059919847210</a></td></tr><tr><td><code>S-AZZAM-RETRIEVAL-PRACTICE-IMPROVING</code></td><td class='cell-main source-title-cell'>Retrieval Practice for Improving Long-Term Retention in Anatomical Education: A Quasi-Experimental Study<details class="source-expander detail-expander"><summary>查看来源与溯源</summary><dl class="source-detail-grid"><div class="source-detail-row"><dt>原文标题</dt><dd>Retrieval Practice for Improving Long-Term Retention in Anatomical Education: A Quasi-Experimental Study</dd></div><div class="source-detail-row"><dt>年份</dt><dd>2021</dd></div><div class="source-detail-row"><dt>权威级别</dt><dd>T1 DOI 可验证论文</dd></div><div class="source-detail-row"><dt>获取方式</dt><dd>sciverse_content</dd></div><div class="source-detail-row"><dt>获取状态</dt><dd>FETCH_VALID</dd></div><div class="source-detail-row"><dt>获取时间</dt><dd>2026-09-12T00:00:00+00:00</dd></div><div class="source-detail-row"><dt>可验证链接</dt><dd><a href="https://doi.org/10.1007/s40670-021-01298-8">https://doi.org/10.1007/s40670-021-01298-8</a></dd></div></dl></details></td><td>2021</td><td>T1 DOI 可验证论文</td><td class='cell-main'><a href='https://doi.org/10.1007/s40670-021-01298-8'>https://doi.org/10.1007/s40670-021-01298-8</a></td></tr><tr><td><code>S-ROWLAND-MNEMONIC-BENEFITS-RETRIEVAL</code></td><td class='cell-main source-title-cell'>Mnemonic benefits of retrieval practice at short retention intervals<details class="source-expander detail-expander"><summary>查看来源与溯源</summary><dl class="source-detail-grid"><div class="source-detail-row"><dt>原文标题</dt><dd>Mnemonic benefits of retrieval practice at short retention intervals</dd></div><div class="source-detail-row"><dt>年份</dt><dd>2015</dd></div><div class="source-detail-row"><dt>权威级别</dt><dd>T1 DOI 可验证论文</dd></div><div class="source-detail-row"><dt>获取方式</dt><dd>sciverse_content</dd></div><div class="source-detail-row"><dt>获取状态</dt><dd>FETCH_VALID</dd></div><div class="source-detail-row"><dt>获取时间</dt><dd>2026-09-12T00:00:00+00:00</dd></div><div class="source-detail-row"><dt>可验证链接</dt><dd><a href="https://doi.org/10.1080/09658211.2014.889710">https://doi.org/10.1080/09658211.2014.889710</a></dd></div></dl></details></td><td>2015</td><td>T1 DOI 可验证论文</td><td class='cell-main'><a href='https://doi.org/10.1080/09658211.2014.889710'>https://doi.org/10.1080/09658211.2014.889710</a></td></tr><tr><td><code>S-ZHENG-PRACTICING-MORE-RETRIEVAL</code></td><td class='cell-main source-title-cell'>Practicing more retrieval routes leads to greater memory retention<details class="source-expander detail-expander"><summary>查看来源与溯源</summary><dl class="source-detail-grid"><div class="source-detail-row"><dt>原文标题</dt><dd>Practicing more retrieval routes leads to greater memory retention</dd></div><div class="source-detail-row"><dt>年份</dt><dd>2016</dd></div><div class="source-detail-row"><dt>权威级别</dt><dd>T1 DOI 可验证论文</dd></div><div class="source-detail-row"><dt>获取方式</dt><dd>sciverse_content</dd></div><div class="source-detail-row"><dt>获取状态</dt><dd>FETCH_VALID</dd></div><div class="source-detail-row"><dt>获取时间</dt><dd>2026-09-12T00:00:00+00:00</dd></div><div class="source-detail-row"><dt>可验证链接</dt><dd><a href="https://doi.org/10.1016/j.actpsy.2016.05.014">https://doi.org/10.1016/j.actpsy.2016.05.014</a></dd></div></dl></details></td><td>2016</td><td>T1 DOI 可验证论文</td><td class='cell-main'><a href='https://doi.org/10.1016/j.actpsy.2016.05.014'>https://doi.org/10.1016/j.actpsy.2016.05.014</a></td></tr></tbody></table></div><h3>Fetch 溯源</h3><p class="provenance-summary">搜索提供方:sciverse · 检索时间:2026-09-12T00:00:00+00:00</p><div class='table-wrap'><table class='data-table'><thead><tr><th>来源</th><th>Fetch 方式</th><th>状态</th><th>降级</th><th>时间</th></tr></thead><tbody><tr><td><code>S-KARPICKE-EXPANDING-RETRIEVAL-PRACTICE</code></td><td>sciverse_content</td><td>FETCH_VALID</td><td></td><td>2026-09-12T00:00:00+00:00</td></tr><tr><td><code>S-SMITH-COVERT-RETRIEVAL-PRACTICE</code></td><td>sciverse_content</td><td>FETCH_VALID</td><td></td><td>2026-09-12T00:00:00+00:00</td></tr><tr><td><code>S-HOPKINS-SPACED-RETRIEVAL-PRACTICE</code></td><td>sciverse_content</td><td>FETCH_VALID</td><td></td><td>2026-09-12T00:00:00+00:00</td></tr><tr><td><code>S-MORANO-RETRIEVAL-PRACTICE-RETENTION</code></td><td>sciverse_content</td><td>FETCH_VALID</td><td></td><td>2026-09-12T00:00:00+00:00</td></tr><tr><td><code>S-AZZAM-RETRIEVAL-PRACTICE-IMPROVING</code></td><td>sciverse_content</td><td>FETCH_VALID</td><td></td><td>2026-09-12T00:00:00+00:00</td></tr><tr><td><code>S-ROWLAND-MNEMONIC-BENEFITS-RETRIEVAL</code></td><td>sciverse_content</td><td>FETCH_VALID</td><td></td><td>2026-09-12T00:00:00+00:00</td></tr><tr><td><code>S-ZHENG-PRACTICING-MORE-RETRIEVAL</code></td><td>sciverse_content</td><td>FETCH_VALID</td><td></td><td>2026-09-12T00:00:00+00:00</td></tr></tbody></table></div></div></section></main></div>
|
|
2120
|
+
</div>
|
|
2121
|
+
<footer class="report-footer"><p>EduEvidence 证据报告 · Schema PASS · Claim Binding PASS · Numeric Consistency PASS · Bilingual Structure PASS · 语言人话化 PASS · 无伪精度 PASS · Lieflat 数据溯源 PASS · 坐标轴无失真 NOT_CHECKED · 色盲安全 NOT_CHECKED · 单文件离线可打开 · 数据源:result.json</p></footer>
|
|
2122
|
+
</div>
|
|
2123
|
+
<div class="report-shell" data-lang-body="en">
|
|
2124
|
+
<header class="report-header">
|
|
2125
|
+
<div class="report-brand-row"><span class="report-brand">EduEvidence</span><span class="generated-theme-chip">DataLab [Light]</span><span class="data-origin-chip" data-origin="real_run_sciverse">real_run_sciverse</span></div>
|
|
2126
|
+
<h1>在大学的程序设计入门课程中,是否应该用间隔重复与检索练习替代传统的集中式复习?这对学生的长期知识保持是否有效?</h1>
|
|
2127
|
+
<p class="meta">Mode: Platform native · Generated: 2026-09-12 · Evidence: 6 · Sources: 7</p>
|
|
2128
|
+
<nav class="report-view-switcher" aria-label="report view">
|
|
2129
|
+
<button type="button" class="report-view-btn active" data-report-view="brief" aria-pressed="true">Visual Brief</button>
|
|
2130
|
+
<button type="button" class="report-view-btn" data-report-view="full" aria-pressed="false">Full Report</button>
|
|
2131
|
+
</nav>
|
|
2132
|
+
</header>
|
|
2133
|
+
<div class="report-page report-page-brief" data-report-page="brief"><nav class="brief-navigation" aria-label="Brief navigation"><a href="#brief-decision-en"><span>01</span>Decision first</a><a href="#brief-outcomes-en"><span>02</span>Task performance ≠ learning</a><a href="#brief-tribunal-en"><span>03</span>Evidence tribunal</a><a href="#brief-action-en"><span>04</span>Evidence to action</a><a href="#brief-sources-en"><span>05</span>Key sources</a></nav><div class="brief-reading-content"><section class="brief-block brief-decision" id="brief-decision-en"><header class="brief-block-header"><h2>Decision first</h2><p>What to do, how confident we are, and the most important evidence boundary.</p></header><div class="brief-block-body">
|
|
2134
|
+
<div class="decision-hero adopt" data-visual="decision-hero">
|
|
2135
|
+
<div class="hero-decision">
|
|
2136
|
+
<span class="eyebrow">Recommended decision</span>
|
|
2137
|
+
<strong class="decision-value">Adopt</strong>
|
|
2138
|
+
<span class="confidence-badge">Confidence · High</span>
|
|
2139
|
+
</div>
|
|
2140
|
+
<div class="hero-rationale"><p>Delayed retention and transfer — the two primary outcomes — carry direct and consistent evidence (randomised trials and meta-analyses at directness 2), with low implementation cost and little risk, so course-level adoption is supported.…</p><details class="detail-expander"><summary>Expand full explanation</summary><div class="detail-body"><p>Delayed retention and transfer — the two primary outcomes — carry direct and consistent evidence (randomised trials and meta-analyses at directness 2), with low implementation cost and little risk, so course-level adoption is supported. The optimal spacing schedule and the thin classroom evidence from programming courses remain recorded uncertainties to monitor after adoption rather than reasons to withhold it.</p></div></details></div>
|
|
2141
|
+
<div class="hero-insights">
|
|
2142
|
+
<article class="hero-insight support"><span>Strongest supported conclusion</span><p class="hero-insight-text">Spaced retrieval practice consistently beats concentrated review on delayed retention across randomised trials and meta-analyses.</p></article>
|
|
2143
|
+
<article class="hero-insight uncertain"><span>Key uncertainty / contradiction</span><p class="hero-insight-text">Direct classroom evidence from programming courses is thinner than the psychology-lab evidence, and the optimal spacing schedule is unresolved.</p></article>
|
|
2144
|
+
<article class="hero-insight risk"><span>Main risk</span><p class="hero-insight-text">Poorly designed practice can add cognitive load, and the size of the benefit depends on material difficulty and feedback design.</p></article>
|
|
2145
|
+
<article class="hero-insight next"><span>Next action</span><div class="hero-insight-text"><p>Adopt weekly short closed-book retrieval practice inside the introductory programming course, verified by a common delayed post-test;…</p><details class="detail-expander"><summary>Expand full explanation</summary><div class="detail-body"><p>Adopt weekly short closed-book retrieval practice inside the introductory programming course, verified by a common delayed post-test; fall back to pilot status for review if delayed retention drops below baseline or practice completion stays under 60%.</p></div></details></div></article>
|
|
2146
|
+
</div>
|
|
2147
|
+
<p class="hero-provenance"><span>Evidence / sources</span> · 6 / 7</p>
|
|
2148
|
+
</div></div></section><section class="brief-block brief-outcomes" id="brief-outcomes-en"><header class="brief-block-header"><h2>Task performance ≠ learning</h2><p>Only informative outcome separation; positive, negative and null effects use effect_direction.</p></header><div class="brief-block-body"><div class="outcome-separation" data-visual="outcome-separation"><div class="visual-heading"><h3>Outcome Separation · Task performance ≠ learning</h3><p>Outcomes are adjudicated separately so faster training performance is not silently treated as evidence of learning.</p><p class="semantic-note">Effect direction comes from evidence.effect_direction; supporting a claim does not imply a positive outcome.</p></div><div class="outcome-groups"><article class="outcome-group outcome-learning"><h3>Learning / retention / transfer</h3><ul><li><strong>Retention</strong><span class="outcome-states"><span class="dir pos">Positive effect 4</span><span class="dir neu">Null effect 1</span></span></li><li><strong>Transfer</strong><span class="outcome-states"><span class="dir pos">Positive effect 1</span></span></li></ul></article></div></div></div></section><section class="brief-block brief-tribunal" id="brief-tribunal-en"><header class="brief-block-header"><h2>Evidence tribunal</h2><p>Supported, uncertain, contradicted and missing evidence stay separated instead of flattened into long prose.</p></header><div class="brief-block-body"><div class="evidence-tribunal" data-visual="evidence-tribunal-grid"><p class="tribunal-summary"><strong>Decision: </strong>Adopt · <strong>Confidence: </strong>High</p><div class="tribunal-grid"><article class="tribunal-card supported"><header><span aria-hidden="true">✓</span><h3>Can claim</h3><span class="tribunal-count">3</span></header><ul><li><p>Spaced retrieval practice reliably outperforms concentrated review on delayed retention.</p></li><li><p>Covert and overt retrieval produce comparable benefits, so the format is flexible.</p></li><li><p>Practising more retrieval routes improves transfer, so the value is not limited to memorisation.</p></li></ul></article><article class="tribunal-card uncertain"><header><span aria-hidden="true">?</span><h3>Cannot yet claim</h3><span class="tribunal-count">2</span></header><ul><li><p>Direct classroom evidence from programming courses is thinner than the lab evidence [no direct evidence].</p></li><li><p>Benefit size depends on material difficulty and feedback design; the optimal spacing is unsettled.</p></li></ul></article><article class="tribunal-card contradicted"><header><span aria-hidden="true">×</span><h3>Contradicted claims</h3><span class="tribunal-count">0</span></header><ul><li>No data.</li></ul></article><article class="tribunal-card missing"><header><span aria-hidden="true">…</span><h3>Missing evidence</h3><span class="tribunal-count">2</span></header><ul><li><p>Randomised field studies inside programming courses</p></li><li><p>Direct comparisons of different spacing schedules</p></li></ul></article></div></div></div></section><section class="brief-block brief-action" id="brief-action-en"><header class="brief-block-header"><h2>Evidence to action</h2><p>Applicability, guardrails, stop conditions and evaluation form one executable path.</p></header><div class="brief-block-body"><div class="evidence-to-action" data-visual="evidence-to-action"><article class="action-node action-evidence"><span>Evidence</span><p class="action-node-text">Spaced retrieval practice reliably outperforms concentrated review on delayed retention.</p></article><span class="flow-arrow" aria-hidden="true">→</span><article class="action-node action-applicability"><span>Applicability</span><p class="action-node-text">Introductory programming courses with fixed contact hours where weekly short practice can be scheduled reliably</p></article><span class="flow-arrow" aria-hidden="true">→</span><article class="action-node action-decision"><span>Decision</span><p class="action-node-text">Adopt</p></article><span class="flow-arrow" aria-hidden="true">→</span><article class="action-node action-guardrails"><span>Guardrails</span><p class="action-node-text">No AI tools in this pilot; practice is closed-book retrieval</p></article><span class="flow-arrow" aria-hidden="true">→</span><article class="action-node action-stop"><span>Stop conditions</span><p class="action-node-text">delayed post-test below baseline; completion stays under 60%</p></article></div></div></section><section class="brief-block brief-lieflat" id="brief-lieflat-en"><header class="brief-block-header"><h2>Lieflat Editorial Gallery</h2><p>Charts selected and composed by AI from the Lieflat catalog; every number traces back to result.json.</p></header><div class="brief-block-body"><div class="lieflat-gallery-container"><figure class="lieflat-card" data-lieflat data-visual="lieflat-hundred_field" data-chart-id="lieflat-hundred-field.svg"><h3 class="lieflat-title">Study-design composition</h3><p class="lieflat-sub">One cell = one study · shows which designs produced the evidence</p><div class="lieflat-figure"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 540 300" width="100%" height="100%" role="img" aria-label="Study-design composition" style="background:#FFFFFF;">
|
|
2149
|
+
<rect x="40.0" y="74.0" width="15.5" height="15.5" rx="3" fill="#0284C7" class="lf-pop" style="--motion-delay:0ms"><title>rct — 1 study</title></rect>
|
|
2150
|
+
<rect x="58.0" y="74.0" width="15.5" height="15.5" rx="3" fill="#0284C7" class="lf-pop" style="--motion-delay:12ms"><title>rct — 1 study</title></rect>
|
|
2151
|
+
<rect x="76.0" y="74.0" width="15.5" height="15.5" rx="3" fill="#0284C7" class="lf-pop" style="--motion-delay:24ms"><title>rct — 1 study</title></rect>
|
|
2152
|
+
<rect x="94.0" y="74.0" width="15.5" height="15.5" rx="3" fill="#10B981" class="lf-pop" style="--motion-delay:36ms"><title>quasi_experimental — 1 study</title></rect>
|
|
2153
|
+
<rect x="112.0" y="74.0" width="15.5" height="15.5" rx="3" fill="#F59E0B" class="lf-pop" style="--motion-delay:48ms"><title>meta_analysis — 1 study</title></rect>
|
|
2154
|
+
<rect x="130.0" y="74.0" width="15.5" height="15.5" rx="3" fill="#94A3B8" class="lf-pop" style="--motion-delay:60ms"><title>mixed_methods — 1 study</title></rect>
|
|
2155
|
+
<text x="30" y="270" font-size="8" font-weight="600" fill="#94A3B8" class="lf-fade" style="--motion-delay:400ms">one cell = one study</text>
|
|
2156
|
+
</svg></div><figcaption class="lieflat-caption">Reveals design skew faster than a table when several designs are present.</figcaption><p class="lieflat-src">L14 Hundred Field · Evidence.study Type Composition</p></figure><figure class="lieflat-card" data-lieflat data-visual="lieflat-tick_gauge" data-chart-id="lieflat-tick-gauge.svg"><h3 class="lieflat-title">Decision confidence</h3><p class="lieflat-sub">Single 0-100% gauge from the deterministic confidence formula</p><div class="lieflat-figure"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 540 290" width="100%" height="100%" role="img" aria-label="Decision confidence" style="background:#FFFFFF;">
|
|
2157
|
+
<line x1="240.0" y1="66.0" x2="240.0" y2="50.0" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:0ms"><title>0%</title></line>
|
|
2158
|
+
<line x1="244.3" y1="66.1" x2="245.1" y2="50.1" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:12ms"><title>1%</title></line>
|
|
2159
|
+
<line x1="248.7" y1="66.4" x2="250.2" y2="50.5" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:24ms"><title>2%</title></line>
|
|
2160
|
+
<line x1="253.0" y1="66.9" x2="255.2" y2="51.1" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:36ms"><title>3%</title></line>
|
|
2161
|
+
<line x1="257.2" y1="67.6" x2="260.2" y2="51.9" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:48ms"><title>4%</title></line>
|
|
2162
|
+
<line x1="261.5" y1="68.5" x2="265.2" y2="53.0" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:60ms"><title>5%</title></line>
|
|
2163
|
+
<line x1="265.7" y1="69.7" x2="270.1" y2="54.3" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:72ms"><title>6%</title></line>
|
|
2164
|
+
<line x1="269.8" y1="71.0" x2="275.0" y2="55.8" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:84ms"><title>7%</title></line>
|
|
2165
|
+
<line x1="273.9" y1="72.5" x2="279.8" y2="57.6" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:96ms"><title>8%</title></line>
|
|
2166
|
+
<line x1="277.9" y1="74.2" x2="284.4" y2="59.6" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:108ms"><title>9%</title></line>
|
|
2167
|
+
<line x1="281.8" y1="76.0" x2="289.0" y2="61.8" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:120ms"><title>10%</title></line>
|
|
2168
|
+
<line x1="285.6" y1="78.1" x2="293.5" y2="64.2" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:132ms"><title>11%</title></line>
|
|
2169
|
+
<line x1="289.3" y1="80.3" x2="297.9" y2="66.8" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:144ms"><title>12%</title></line>
|
|
2170
|
+
<line x1="292.9" y1="82.7" x2="302.1" y2="69.6" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:156ms"><title>13%</title></line>
|
|
2171
|
+
<line x1="296.4" y1="85.3" x2="306.2" y2="72.7" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:168ms"><title>14%</title></line>
|
|
2172
|
+
<line x1="299.7" y1="88.0" x2="310.1" y2="75.9" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:180ms"><title>15%</title></line>
|
|
2173
|
+
<line x1="303.0" y1="90.9" x2="313.9" y2="79.3" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:192ms"><title>16%</title></line>
|
|
2174
|
+
<line x1="306.1" y1="94.0" x2="317.6" y2="82.8" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:204ms"><title>17%</title></line>
|
|
2175
|
+
<line x1="309.0" y1="97.2" x2="321.0" y2="86.6" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:216ms"><title>18%</title></line>
|
|
2176
|
+
<line x1="311.8" y1="100.5" x2="324.3" y2="90.5" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:228ms"><title>19%</title></line>
|
|
2177
|
+
<line x1="314.4" y1="103.9" x2="327.4" y2="94.5" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:240ms"><title>20%</title></line>
|
|
2178
|
+
<line x1="316.9" y1="107.5" x2="330.3" y2="98.7" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:252ms"><title>21%</title></line>
|
|
2179
|
+
<line x1="319.2" y1="111.2" x2="333.0" y2="103.0" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:264ms"><title>22%</title></line>
|
|
2180
|
+
<line x1="321.3" y1="115.0" x2="335.4" y2="107.5" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:276ms"><title>23%</title></line>
|
|
2181
|
+
<line x1="323.2" y1="118.8" x2="337.7" y2="112.0" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:288ms"><title>24%</title></line>
|
|
2182
|
+
<line x1="325.0" y1="122.8" x2="339.8" y2="116.7" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:300ms"><title>25%</title></line>
|
|
2183
|
+
<line x1="326.6" y1="126.8" x2="341.6" y2="121.4" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:312ms"><title>26%</title></line>
|
|
2184
|
+
<line x1="327.9" y1="130.9" x2="343.2" y2="126.2" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:324ms"><title>27%</title></line>
|
|
2185
|
+
<line x1="329.1" y1="135.1" x2="344.6" y2="131.1" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:336ms"><title>28%</title></line>
|
|
2186
|
+
<line x1="330.1" y1="139.3" x2="345.8" y2="136.1" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:348ms"><title>29%</title></line>
|
|
2187
|
+
<line x1="330.9" y1="143.6" x2="346.7" y2="141.1" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:360ms"><title>30%</title></line>
|
|
2188
|
+
<line x1="331.4" y1="147.9" x2="347.3" y2="146.1" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:372ms"><title>31%</title></line>
|
|
2189
|
+
<line x1="331.8" y1="152.2" x2="347.8" y2="151.2" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:384ms"><title>32%</title></line>
|
|
2190
|
+
<line x1="332.0" y1="156.6" x2="348.0" y2="156.3" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:396ms"><title>33%</title></line>
|
|
2191
|
+
<line x1="332.0" y1="160.9" x2="347.9" y2="161.4" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:408ms"><title>34%</title></line>
|
|
2192
|
+
<line x1="331.7" y1="165.2" x2="347.7" y2="166.5" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:420ms"><title>35%</title></line>
|
|
2193
|
+
<line x1="331.3" y1="169.5" x2="347.1" y2="171.5" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:432ms"><title>36%</title></line>
|
|
2194
|
+
<line x1="330.6" y1="173.8" x2="346.4" y2="176.6" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:444ms"><title>37%</title></line>
|
|
2195
|
+
<line x1="329.8" y1="178.1" x2="345.4" y2="181.6" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:456ms"><title>38%</title></line>
|
|
2196
|
+
<line x1="328.7" y1="182.3" x2="344.2" y2="186.5" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:468ms"><title>39%</title></line>
|
|
2197
|
+
<line x1="327.5" y1="186.4" x2="342.7" y2="191.4" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:480ms"><title>40%</title></line>
|
|
2198
|
+
<line x1="326.1" y1="190.5" x2="341.0" y2="196.2" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:492ms"><title>41%</title></line>
|
|
2199
|
+
<line x1="324.4" y1="194.5" x2="339.1" y2="200.9" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:504ms"><title>42%</title></line>
|
|
2200
|
+
<line x1="322.6" y1="198.5" x2="337.0" y2="205.5" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:516ms"><title>43%</title></line>
|
|
2201
|
+
<line x1="320.6" y1="202.3" x2="334.6" y2="210.0" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:528ms"><title>44%</title></line>
|
|
2202
|
+
<line x1="318.4" y1="206.1" x2="332.1" y2="214.4" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:540ms"><title>45%</title></line>
|
|
2203
|
+
<line x1="316.1" y1="209.7" x2="329.3" y2="218.7" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:552ms"><title>46%</title></line>
|
|
2204
|
+
<line x1="313.6" y1="213.2" x2="326.4" y2="222.8" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:564ms"><title>47%</title></line>
|
|
2205
|
+
<line x1="310.9" y1="216.6" x2="323.2" y2="226.8" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:576ms"><title>48%</title></line>
|
|
2206
|
+
<line x1="308.0" y1="219.9" x2="319.9" y2="230.7" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:588ms"><title>49%</title></line>
|
|
2207
|
+
<line x1="305.1" y1="223.1" x2="316.4" y2="234.4" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:600ms"><title>50%</title></line>
|
|
2208
|
+
<line x1="301.9" y1="226.0" x2="312.7" y2="237.9" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:612ms"><title>51%</title></line>
|
|
2209
|
+
<line x1="298.6" y1="228.9" x2="308.8" y2="241.2" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:624ms"><title>52%</title></line>
|
|
2210
|
+
<line x1="295.2" y1="231.6" x2="304.8" y2="244.4" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:636ms"><title>53%</title></line>
|
|
2211
|
+
<line x1="291.7" y1="234.1" x2="300.7" y2="247.3" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:648ms"><title>54%</title></line>
|
|
2212
|
+
<line x1="288.1" y1="236.4" x2="296.4" y2="250.1" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:660ms"><title>55%</title></line>
|
|
2213
|
+
<line x1="284.3" y1="238.6" x2="292.0" y2="252.6" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:672ms"><title>56%</title></line>
|
|
2214
|
+
<line x1="280.5" y1="240.6" x2="287.5" y2="255.0" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:684ms"><title>57%</title></line>
|
|
2215
|
+
<line x1="276.5" y1="242.4" x2="282.9" y2="257.1" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:696ms"><title>58%</title></line>
|
|
2216
|
+
<line x1="272.5" y1="244.1" x2="278.2" y2="259.0" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:708ms"><title>59%</title></line>
|
|
2217
|
+
<line x1="268.4" y1="245.5" x2="273.4" y2="260.7" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:720ms"><title>60%</title></line>
|
|
2218
|
+
<line x1="264.3" y1="246.7" x2="268.5" y2="262.2" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:732ms"><title>61%</title></line>
|
|
2219
|
+
<line x1="260.1" y1="247.8" x2="263.6" y2="263.4" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:744ms"><title>62%</title></line>
|
|
2220
|
+
<line x1="255.8" y1="248.6" x2="258.6" y2="264.4" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:756ms"><title>63%</title></line>
|
|
2221
|
+
<line x1="251.5" y1="249.3" x2="253.5" y2="265.1" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:768ms"><title>64%</title></line>
|
|
2222
|
+
<line x1="247.2" y1="249.7" x2="248.5" y2="265.7" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:780ms"><title>65%</title></line>
|
|
2223
|
+
<line x1="242.9" y1="250.0" x2="243.4" y2="265.9" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:792ms"><title>66%</title></line>
|
|
2224
|
+
<line x1="238.6" y1="250.0" x2="238.3" y2="266.0" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:800ms"><title>67%</title></line>
|
|
2225
|
+
<line x1="234.2" y1="249.8" x2="233.2" y2="265.8" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:800ms"><title>68%</title></line>
|
|
2226
|
+
<line x1="229.9" y1="249.4" x2="228.1" y2="265.3" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:800ms"><title>69%</title></line>
|
|
2227
|
+
<line x1="225.6" y1="248.9" x2="223.1" y2="264.7" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:800ms"><title>70%</title></line>
|
|
2228
|
+
<line x1="221.3" y1="248.1" x2="218.1" y2="263.8" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:800ms"><title>71%</title></line>
|
|
2229
|
+
<line x1="217.1" y1="247.1" x2="213.1" y2="262.6" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:800ms"><title>72%</title></line>
|
|
2230
|
+
<line x1="212.9" y1="245.9" x2="208.2" y2="261.2" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:800ms"><title>73%</title></line>
|
|
2231
|
+
<line x1="208.8" y1="244.6" x2="203.4" y2="259.6" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:800ms"><title>74%</title></line>
|
|
2232
|
+
<line x1="204.8" y1="243.0" x2="198.7" y2="257.8" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:800ms"><title>75%</title></line>
|
|
2233
|
+
<line x1="200.8" y1="241.2" x2="194.0" y2="255.7" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:800ms"><title>76%</title></line>
|
|
2234
|
+
<line x1="197.0" y1="239.3" x2="189.5" y2="253.4" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:800ms"><title>77%</title></line>
|
|
2235
|
+
<line x1="193.2" y1="237.2" x2="185.0" y2="251.0" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:800ms"><title>78%</title></line>
|
|
2236
|
+
<line x1="189.5" y1="234.9" x2="180.7" y2="248.3" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:800ms"><title>79%</title></line>
|
|
2237
|
+
<line x1="185.9" y1="232.4" x2="176.5" y2="245.4" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:800ms"><title>80%</title></line>
|
|
2238
|
+
<line x1="182.5" y1="229.8" x2="172.5" y2="242.3" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:800ms"><title>81%</title></line>
|
|
2239
|
+
<line x1="179.2" y1="227.0" x2="168.6" y2="239.0" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:800ms"><title>82%</title></line>
|
|
2240
|
+
<line x1="176.0" y1="224.1" x2="164.8" y2="235.6" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:800ms"><title>83%</title></line>
|
|
2241
|
+
<line x1="172.9" y1="221.0" x2="161.3" y2="231.9" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:800ms"><title>84%</title></line>
|
|
2242
|
+
<line x1="170.0" y1="217.7" x2="157.9" y2="228.1" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:800ms"><title>85%</title></line>
|
|
2243
|
+
<line x1="167.3" y1="214.4" x2="154.7" y2="224.2" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:800ms"><title>86%</title></line>
|
|
2244
|
+
<line x1="164.7" y1="210.9" x2="151.6" y2="220.1" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:800ms"><title>87%</title></line>
|
|
2245
|
+
<line x1="162.3" y1="207.3" x2="148.8" y2="215.9" stroke="#0284C7" stroke-width="3" stroke-linecap="round" class="lf-pop" style="--motion-delay:800ms"><title>88%</title></line>
|
|
2246
|
+
<line x1="160.1" y1="203.6" x2="146.2" y2="211.5" stroke="#E2E8F0" stroke-width="3" stroke-linecap="round" class="lf-fade" style="--motion-delay:238ms"><title>89%</title></line>
|
|
2247
|
+
<line x1="158.0" y1="199.8" x2="143.8" y2="207.0" stroke="#E2E8F0" stroke-width="3" stroke-linecap="round" class="lf-fade" style="--motion-delay:240ms"><title>90%</title></line>
|
|
2248
|
+
<line x1="156.2" y1="195.9" x2="141.6" y2="202.4" stroke="#E2E8F0" stroke-width="3" stroke-linecap="round" class="lf-fade" style="--motion-delay:242ms"><title>91%</title></line>
|
|
2249
|
+
<line x1="154.5" y1="191.9" x2="139.6" y2="197.8" stroke="#E2E8F0" stroke-width="3" stroke-linecap="round" class="lf-fade" style="--motion-delay:244ms"><title>92%</title></line>
|
|
2250
|
+
<line x1="153.0" y1="187.8" x2="137.8" y2="193.0" stroke="#E2E8F0" stroke-width="3" stroke-linecap="round" class="lf-fade" style="--motion-delay:246ms"><title>93%</title></line>
|
|
2251
|
+
<line x1="151.7" y1="183.7" x2="136.3" y2="188.1" stroke="#E2E8F0" stroke-width="3" stroke-linecap="round" class="lf-fade" style="--motion-delay:248ms"><title>94%</title></line>
|
|
2252
|
+
<line x1="150.5" y1="179.5" x2="135.0" y2="183.2" stroke="#E2E8F0" stroke-width="3" stroke-linecap="round" class="lf-fade" style="--motion-delay:250ms"><title>95%</title></line>
|
|
2253
|
+
<line x1="149.6" y1="175.2" x2="133.9" y2="178.2" stroke="#E2E8F0" stroke-width="3" stroke-linecap="round" class="lf-fade" style="--motion-delay:252ms"><title>96%</title></line>
|
|
2254
|
+
<line x1="148.9" y1="171.0" x2="133.1" y2="173.2" stroke="#E2E8F0" stroke-width="3" stroke-linecap="round" class="lf-fade" style="--motion-delay:254ms"><title>97%</title></line>
|
|
2255
|
+
<line x1="148.4" y1="166.7" x2="132.5" y2="168.2" stroke="#E2E8F0" stroke-width="3" stroke-linecap="round" class="lf-fade" style="--motion-delay:256ms"><title>98%</title></line>
|
|
2256
|
+
<line x1="148.1" y1="162.3" x2="132.1" y2="163.1" stroke="#E2E8F0" stroke-width="3" stroke-linecap="round" class="lf-fade" style="--motion-delay:258ms"><title>99%</title></line>
|
|
2257
|
+
<text x="240" y="152" text-anchor="middle" font-size="30" font-weight="800" fill="#0F172A" class="lf-pop" style="--motion-delay:600ms">89%</text>
|
|
2258
|
+
<text x="240" y="180" text-anchor="middle" font-size="10" font-weight="600" fill="#475569" class="lf-fade" style="--motion-delay:680ms">High</text>
|
|
2259
|
+
</svg></div><figcaption class="lieflat-caption">The value comes from the result's decision field, never self-rated.</figcaption><p class="lieflat-src">F11 Tick Gauge · Decision.confidence Score</p></figure><figure class="lieflat-card" data-lieflat data-visual="lieflat-ballot_tally" data-chart-id="lieflat-ballot-tally.svg"><h3 class="lieflat-title">Methodology checklist tally</h3><p class="lieflat-sub">One tick = one audit verdict · grouped by checklist item</p><div class="lieflat-figure"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 540 300" width="100%" height="100%" role="img" aria-label="Methodology checklist tally" style="background:#FFFFFF;">
|
|
2260
|
+
<text x="150" y="100.9" text-anchor="end" font-size="8.5" font-weight="600" fill="#475569" class="lf-fade" style="--motion-delay:40ms">Randomizatio</text>
|
|
2261
|
+
<rect x="162.0" y="93.9" width="8" height="8" rx="2" fill="#0284C7" class="lf-pop" style="--motion-delay:0ms"><title>Randomization — verdict 1/1 (flagged)</title></rect>
|
|
2262
|
+
<text x="512" y="100.9" text-anchor="end" font-size="9" font-weight="800" fill="#0F172A" class="lf-fade" style="--motion-delay:300ms">1/1</text>
|
|
2263
|
+
<text x="150" y="112.6" text-anchor="end" font-size="8.5" font-weight="600" fill="#475569" class="lf-fade" style="--motion-delay:140ms">Pre-test</text>
|
|
2264
|
+
<rect x="162.0" y="105.6" width="8" height="8" rx="2" fill="#0284C7" class="lf-pop" style="--motion-delay:100ms"><title>Pre-test — verdict 1/1 (flagged)</title></rect>
|
|
2265
|
+
<text x="512" y="112.6" text-anchor="end" font-size="9" font-weight="800" fill="#0F172A" class="lf-fade" style="--motion-delay:400ms">1/1</text>
|
|
2266
|
+
<text x="150" y="124.3" text-anchor="end" font-size="8.5" font-weight="600" fill="#475569" class="lf-fade" style="--motion-delay:240ms">Transfer tes</text>
|
|
2267
|
+
<rect x="162.0" y="117.3" width="8" height="8" rx="2" fill="#0284C7" class="lf-pop" style="--motion-delay:200ms"><title>Transfer test — verdict 1/1 (flagged)</title></rect>
|
|
2268
|
+
<text x="512" y="124.3" text-anchor="end" font-size="9" font-weight="800" fill="#0F172A" class="lf-fade" style="--motion-delay:500ms">1/1</text>
|
|
2269
|
+
<text x="150" y="136.1" text-anchor="end" font-size="8.5" font-weight="600" fill="#475569" class="lf-fade" style="--motion-delay:340ms">Sample bias</text>
|
|
2270
|
+
<rect x="162.0" y="129.1" width="8" height="8" rx="2" fill="#0284C7" class="lf-pop" style="--motion-delay:300ms"><title>Sample bias — verdict 1/1 (flagged)</title></rect>
|
|
2271
|
+
<text x="512" y="136.1" text-anchor="end" font-size="9" font-weight="800" fill="#0F172A" class="lf-fade" style="--motion-delay:600ms">1/1</text>
|
|
2272
|
+
<text x="150" y="147.8" text-anchor="end" font-size="8.5" font-weight="600" fill="#475569" class="lf-fade" style="--motion-delay:440ms">Self-selecti</text>
|
|
2273
|
+
<rect x="162.0" y="140.8" width="8" height="8" rx="2" fill="#0284C7" class="lf-pop" style="--motion-delay:400ms"><title>Self-selection — verdict 1/1 (flagged)</title></rect>
|
|
2274
|
+
<text x="512" y="147.8" text-anchor="end" font-size="9" font-weight="800" fill="#0F172A" class="lf-fade" style="--motion-delay:700ms">1/1</text>
|
|
2275
|
+
<text x="150" y="159.5" text-anchor="end" font-size="8.5" font-weight="600" fill="#475569" class="lf-fade" style="--motion-delay:540ms">Confounders</text>
|
|
2276
|
+
<rect x="162.0" y="152.5" width="8" height="8" rx="2" fill="#0284C7" class="lf-pop" style="--motion-delay:500ms"><title>Confounders — verdict 1/1 (flagged)</title></rect>
|
|
2277
|
+
<text x="512" y="159.5" text-anchor="end" font-size="9" font-weight="800" fill="#0F172A" class="lf-fade" style="--motion-delay:800ms">1/1</text>
|
|
2278
|
+
<text x="150" y="171.3" text-anchor="end" font-size="8.5" font-weight="600" fill="#475569" class="lf-fade" style="--motion-delay:640ms">Instructor e</text>
|
|
2279
|
+
<rect x="162.0" y="164.3" width="8" height="8" rx="2" fill="#0284C7" class="lf-pop" style="--motion-delay:600ms"><title>Instructor effect — verdict 1/1 (flagged)</title></rect>
|
|
2280
|
+
<text x="512" y="171.3" text-anchor="end" font-size="9" font-weight="800" fill="#0F172A" class="lf-fade" style="--motion-delay:900ms">1/1</text>
|
|
2281
|
+
<text x="150" y="183.0" text-anchor="end" font-size="8.5" font-weight="600" fill="#475569" class="lf-fade" style="--motion-delay:740ms">Novelty effe</text>
|
|
2282
|
+
<rect x="162.0" y="176.0" width="8" height="8" rx="2" fill="#0284C7" class="lf-pop" style="--motion-delay:700ms"><title>Novelty effect — verdict 1/1 (flagged)</title></rect>
|
|
2283
|
+
<text x="512" y="183.0" text-anchor="end" font-size="9" font-weight="800" fill="#0F172A" class="lf-fade" style="--motion-delay:1000ms">1/1</text>
|
|
2284
|
+
<text x="150" y="194.7" text-anchor="end" font-size="8.5" font-weight="600" fill="#475569" class="lf-fade" style="--motion-delay:840ms">Tool version</text>
|
|
2285
|
+
<rect x="162.0" y="187.7" width="8" height="8" rx="2" fill="#0284C7" class="lf-pop" style="--motion-delay:800ms"><title>Tool version effect — verdict 1/1 (flagged)</title></rect>
|
|
2286
|
+
<text x="512" y="194.7" text-anchor="end" font-size="9" font-weight="800" fill="#0F172A" class="lf-fade" style="--motion-delay:1100ms">1/1</text>
|
|
2287
|
+
<text x="150" y="206.5" text-anchor="end" font-size="8.5" font-weight="600" fill="#475569" class="lf-fade" style="--motion-delay:940ms">AI usage pol</text>
|
|
2288
|
+
<rect x="162.0" y="199.5" width="8" height="8" rx="2" fill="#0284C7" class="lf-pop" style="--motion-delay:900ms"><title>AI usage policy — verdict 1/1 (flagged)</title></rect>
|
|
2289
|
+
<text x="512" y="206.5" text-anchor="end" font-size="9" font-weight="800" fill="#0F172A" class="lf-fade" style="--motion-delay:1200ms">1/1</text>
|
|
2290
|
+
<text x="150" y="218.2" text-anchor="end" font-size="8.5" font-weight="600" fill="#475569" class="lf-fade" style="--motion-delay:1040ms">Dropout</text>
|
|
2291
|
+
<rect x="162.0" y="211.2" width="8" height="8" rx="2" fill="#0284C7" class="lf-pop" style="--motion-delay:1000ms"><title>Dropout — verdict 1/1 (flagged)</title></rect>
|
|
2292
|
+
<text x="512" y="218.2" text-anchor="end" font-size="9" font-weight="800" fill="#0F172A" class="lf-fade" style="--motion-delay:1300ms">1/1</text>
|
|
2293
|
+
<text x="150" y="229.9" text-anchor="end" font-size="8.5" font-weight="600" fill="#475569" class="lf-fade" style="--motion-delay:1140ms">Control grou</text>
|
|
2294
|
+
<rect x="162.0" y="222.9" width="8" height="8" rx="2" fill="#E2E8F0" class="lf-pop" style="--motion-delay:1100ms"><title>Control group — verdict 1/1</title></rect>
|
|
2295
|
+
<text x="512" y="229.9" text-anchor="end" font-size="9" font-weight="800" fill="#0F172A" class="lf-fade" style="--motion-delay:1400ms">0/1</text>
|
|
2296
|
+
<text x="150" y="241.7" text-anchor="end" font-size="8.5" font-weight="600" fill="#475569" class="lf-fade" style="--motion-delay:1240ms">Post-test</text>
|
|
2297
|
+
<rect x="162.0" y="234.7" width="8" height="8" rx="2" fill="#E2E8F0" class="lf-pop" style="--motion-delay:1200ms"><title>Post-test — verdict 1/1</title></rect>
|
|
2298
|
+
<text x="512" y="241.7" text-anchor="end" font-size="9" font-weight="800" fill="#0F172A" class="lf-fade" style="--motion-delay:1500ms">0/1</text>
|
|
2299
|
+
<text x="150" y="253.4" text-anchor="end" font-size="8.5" font-weight="600" fill="#475569" class="lf-fade" style="--motion-delay:1340ms">Retention te</text>
|
|
2300
|
+
<rect x="162.0" y="246.4" width="8" height="8" rx="2" fill="#E2E8F0" class="lf-pop" style="--motion-delay:1300ms"><title>Retention test — verdict 1/1</title></rect>
|
|
2301
|
+
<text x="512" y="253.4" text-anchor="end" font-size="9" font-weight="800" fill="#0F172A" class="lf-fade" style="--motion-delay:1600ms">0/1</text>
|
|
2302
|
+
<text x="150" y="265.1" text-anchor="end" font-size="8.5" font-weight="600" fill="#475569" class="lf-fade" style="--motion-delay:1440ms">Measurement </text>
|
|
2303
|
+
<rect x="162.0" y="258.1" width="8" height="8" rx="2" fill="#E2E8F0" class="lf-pop" style="--motion-delay:1400ms"><title>Measurement validity — verdict 1/1</title></rect>
|
|
2304
|
+
<text x="512" y="265.1" text-anchor="end" font-size="9" font-weight="800" fill="#0F172A" class="lf-fade" style="--motion-delay:1700ms">0/1</text>
|
|
2305
|
+
<text x="30" y="280" font-size="7.5" font-weight="600" fill="#94A3B8" class="lf-fade" style="--motion-delay:500ms">one tick = one methodology-review verdict; filled = below 'met'</text>
|
|
2306
|
+
</svg></div><figcaption class="lieflat-caption">Shows which checklist items concentrate the weaknesses.</figcaption><p class="lieflat-src">L15 Ballot Tally · Methodology.flag Rates</p></figure></div></div></section><section class="brief-block brief-sources" id="brief-sources-en"><header class="brief-block-header"><h2>Key sources</h2><p>Only the key sources in the brief; full traceability expands in the full report.</p></header><div class="brief-block-body"><div class="brief-source-grid"><article class="brief-source"><code>S-KARPICKE-EXPANDING-RETRIEVAL-PRACTICE</code><h3><a href="https://doi.org/10.1037/0278-7393.33.4.704">Expanding retrieval practice promotes short-term retention, but equally spaced retrieval enhances long-term retention.</a></h3><p>Tier 1 DOI-verified paper · 2007</p></article><article class="brief-source"><code>S-SMITH-COVERT-RETRIEVAL-PRACTICE</code><h3><a href="https://doi.org/10.1037/a0033569">Covert retrieval practice benefits retention as much as overt retrieval practice.</a></h3><p>Tier 1 DOI-verified paper · 2013</p></article><article class="brief-source"><code>S-HOPKINS-SPACED-RETRIEVAL-PRACTICE</code><h3><a href="https://doi.org/10.1007/s10648-015-9349-8">Spaced Retrieval Practice Increases College Students’ Short- and Long-Term Retention of Mathematics Knowledge</a></h3><p>Tier 1 DOI-verified paper · 2016</p></article><article class="brief-source"><code>S-MORANO-RETRIEVAL-PRACTICE-RETENTION</code><h3><a href="https://doi.org/10.1177/0040059919847210">Retrieval Practice for Retention and Transfer</a></h3><p>Tier 1 DOI-verified paper · 2019</p></article></div><p class="brief-source-more">3 more sources are traceable in the full report.</p></div></section></div></div>
|
|
2307
|
+
<div class="report-page report-page-full" data-report-page="full" hidden>
|
|
2308
|
+
<div class="full-report-intro"><h2>Full Report</h2><p>Conclusions first: every traceable piece of evidence and method note lives here, with visuals only at points where they add meaning. Every number traces back to result.json.</p></div>
|
|
2309
|
+
<div class="full-report-layout"><aside class="full-report-toc" aria-label="Contents"><div class="toc-head"><strong>Contents</strong><button type="button" class="toc-collapse" aria-expanded="true" data-label-collapse="Collapse contents" data-label-expand="Expand contents">Collapse contents</button></div><nav><a href="#full-01-decision-en" data-toc-target="full-01-decision-en" data-chapter-key="decision">01 Decision, Adjudication & Research Boundary</a><a href="#full-02-evidence-en" data-toc-target="full-02-evidence-en" data-chapter-key="evidence">02 Key Evidence & Outcome Separation</a><a href="#full-03-quality-en" data-toc-target="full-03-quality-en" data-chapter-key="quality">03 Evidence Quality, Counterevidence & Method Audit</a><a href="#full-04-action-en" data-toc-target="full-04-action-en" data-chapter-key="action">04 Applicability & Teaching Action</a><a href="#full-05-evaluation-en" data-toc-target="full-05-evaluation-en" data-chapter-key="evaluation">05 Pilot, Evaluation & Stop Conditions</a><a href="#full-06-sources-en" data-toc-target="full-06-sources-en" data-chapter-key="sources">06 Sources, Traceability & Appendix</a></nav></aside><main class="full-report-content"><section id="full-01-decision-en" class="full-chapter" data-full-chapter><header class="full-chapter-header"><h2>01 Decision, Adjudication & Research Boundary</h2><p class="full-chapter-lead">State the final adjudication and research boundary before explaining why.</p></header><div class="full-chapter-body">
|
|
2310
|
+
<div class="decision-hero adopt" data-visual="decision-hero">
|
|
2311
|
+
<div class="hero-decision">
|
|
2312
|
+
<span class="eyebrow">Recommended decision</span>
|
|
2313
|
+
<strong class="decision-value">Adopt</strong>
|
|
2314
|
+
<span class="confidence-badge">Confidence · High</span>
|
|
2315
|
+
</div>
|
|
2316
|
+
<div class="hero-rationale"><p>Delayed retention and transfer — the two primary outcomes — carry direct and consistent evidence (randomised trials and meta-analyses at directness 2), with low implementation cost and little risk, so course-level adoption is supported.…</p><details class="detail-expander"><summary>Expand full explanation</summary><div class="detail-body"><p>Delayed retention and transfer — the two primary outcomes — carry direct and consistent evidence (randomised trials and meta-analyses at directness 2), with low implementation cost and little risk, so course-level adoption is supported. The optimal spacing schedule and the thin classroom evidence from programming courses remain recorded uncertainties to monitor after adoption rather than reasons to withhold it.</p></div></details></div>
|
|
2317
|
+
<div class="hero-insights">
|
|
2318
|
+
<article class="hero-insight support"><span>Strongest supported conclusion</span><p class="hero-insight-text">Spaced retrieval practice consistently beats concentrated review on delayed retention across randomised trials and meta-analyses.</p></article>
|
|
2319
|
+
<article class="hero-insight uncertain"><span>Key uncertainty / contradiction</span><p class="hero-insight-text">Direct classroom evidence from programming courses is thinner than the psychology-lab evidence, and the optimal spacing schedule is unresolved.</p></article>
|
|
2320
|
+
<article class="hero-insight risk"><span>Main risk</span><p class="hero-insight-text">Poorly designed practice can add cognitive load, and the size of the benefit depends on material difficulty and feedback design.</p></article>
|
|
2321
|
+
<article class="hero-insight next"><span>Next action</span><div class="hero-insight-text"><p>Adopt weekly short closed-book retrieval practice inside the introductory programming course, verified by a common delayed post-test;…</p><details class="detail-expander"><summary>Expand full explanation</summary><div class="detail-body"><p>Adopt weekly short closed-book retrieval practice inside the introductory programming course, verified by a common delayed post-test; fall back to pilot status for review if delayed retention drops below baseline or practice completion stays under 60%.</p></div></details></div></article>
|
|
2322
|
+
</div>
|
|
2323
|
+
<p class="hero-provenance"><span>Evidence / sources</span> · 6 / 7</p>
|
|
2324
|
+
</div><div class="scope-grid"><article class="scope-card"><h3>Research question</h3><p class="scope-text">在大学的程序设计入门课程中,是否应该用间隔重复与检索练习替代传统的集中式复习?这对学生的长期知识保持是否有效?</p></article><article class="scope-card"><h3>Target learners</h3><p class="scope-text">Education level: First-year undergraduate; Major: Computer science; Prior knowledge: no prior programming experience; Learner characteristics: large lecture with weekly labs</p></article><article class="scope-card"><h3>Course context</h3><p class="scope-text">Subject: Introductory programming; Course type: Lecture + lab; Duration: 16 weeks, one semester</p></article><article class="scope-card"><h3>AI intervention</h3><p class="scope-text">Method: spaced retrieval practice; Frequency: weekly short closed-book retrieval; Duration: one semester</p></article><article class="scope-card"><h3>Comparison</h3><p class="scope-text">concentrated review before exams (business as usual)</p></article><article class="scope-card"><h3>Outcome constructs</h3><p class="scope-text">Primary outcomes: Retention, Transfer; Secondary outcomes: Knowledge gain, Independent problem solving; Risk outcomes: Reduced effort</p></article><article class="scope-card"><h3>Research scope</h3><p class="scope-text">Time range: 2000 2026; Geography: Global; Study designs: Randomized controlled trial, Quasi-experimental</p></article><article class="scope-card"><h3>Decision success condition</h3><p class="scope-text">delayed retention improves or holds while transfer does not decline</p></article></div></div></section><section id="full-02-evidence-en" class="full-chapter" data-full-chapter><header class="full-chapter-header"><h2>02 Key Evidence & Outcome Separation</h2><p class="full-chapter-lead">Place task performance, actual learning, retention and risk on one evidence map without conflating them.</p></header><div class="full-chapter-body"><div class="retrieval-grid"><article><h3>Inclusion criteria</h3><ul><li>measures delayed retention or transfer</li><li>novice programming or STEM learners</li></ul></article><article><h3>Exclusion criteria</h3><ul><li>no delayed measurement</li><li>purely correlational</li></ul></article></div><div class="retrieval-coverage"><h3>Source coverage</h3><p><code>S-KARPICKE-EXPANDING-RETRIEVAL-PRACTICE</code> <code>S-SMITH-COVERT-RETRIEVAL-PRACTICE</code> <code>S-HOPKINS-SPACED-RETRIEVAL-PRACTICE</code> <code>S-MORANO-RETRIEVAL-PRACTICE-RETENTION</code> <code>S-AZZAM-RETRIEVAL-PRACTICE-IMPROVING</code> <code>S-ROWLAND-MNEMONIC-BENEFITS-RETRIEVAL</code> <code>S-ZHENG-PRACTICING-MORE-RETRIEVAL</code></p><p class="retrieval-note">Sciverse meta-search 与 agentic-search 双通道,逐条经 /content 读原文</p></div><div class="outcome-separation" data-visual="outcome-separation"><div class="visual-heading"><h3>Outcome Separation · Task performance ≠ learning</h3><p>Outcomes are adjudicated separately so faster training performance is not silently treated as evidence of learning.</p><p class="semantic-note">Effect direction comes from evidence.effect_direction; supporting a claim does not imply a positive outcome.</p></div><div class="outcome-groups"><article class="outcome-group outcome-learning"><h3>Learning / retention / transfer</h3><ul><li><strong>Retention</strong><span class="outcome-states"><span class="dir pos">Positive effect 4</span><span class="dir neu">Null effect 1</span></span></li><li><strong>Transfer</strong><span class="outcome-states"><span class="dir pos">Positive effect 1</span></span></li></ul></article></div></div><div class='table-wrap outcome-table'><table class='data-table'><thead><tr><th>Outcome</th><th>Positive effect</th><th>Negative effect</th><th>Null effect</th><th>Evidence</th></tr></thead><tbody><tr><td><strong>Retention</strong><span class='raw-tag' title='raw id'>retention</span></td><td class='num'>4</td><td class='num'>0</td><td class='num'>1</td><td><code>E-001</code> <code>E-002</code> <code>E-003</code> <code>E-004</code> <code>E-005</code> </td></tr><tr><td><strong>Transfer</strong><span class='raw-tag' title='raw id'>transfer</span></td><td class='num'>1</td><td class='num'>0</td><td class='num'>0</td><td><code>E-006</code> </td></tr></tbody></table></div><div class='matrix-controls'><div class='matrix-tools'><input id='matrix-search-full-en' type='search' placeholder='Search evidence…' aria-label='Filter / search evidence'><select id='matrix-direction-full-en' aria-label='Filter by effect direction'><option value=''>All effects</option><option value='positive'>Positive effect</option><option value='negative'>Negative effect</option><option value='null'>Null effect</option></select><select id='matrix-outcome-full-en' aria-label='Filter by outcome type'><option value=''>All outcomes</option><option value='retention'>Retention</option><option value='transfer'>Transfer</option></select></div></div><div class='table-wrap matrix-wrap'><table id='evidence-matrix-full-en' class='data-table evidence-matrix'><thead><tr><th>ID</th><th>Outcome</th><th>Effect</th><th>Quality</th><th>Claim</th><th>Source</th></tr></thead><tbody><tr data-effect="positive" data-direction="positive" data-outcome="retention" data-search="e-001 study-karpicke-2007 smpl-karpicke-2007 expanding retrieval practice beats massed practice on delayed retention and improves retrieval efficiency. undergraduate students in controlled retention experiments retrieval practice restudy or massed practice positive s-karpicke-expanding-retrieval-practice"><td><code>E-001</code></td><td><strong>Retention</strong></td><td><span class="dir pos">Positive effect</span><span class="relation-note">Claim relation: Support</span></td><td><div class="quality-cell"><span class="num">8</span><span class="quality-meter" aria-hidden="true"><i style="width:80%"></i></span></div></td><td class="claim-cell"><p>Expanding retrieval practice beats massed practice on delayed retention and improves retrieval efficiency.</p><details class="matrix-row-detail"><summary>View full evidence</summary><dl class="evidence-detail-grid"><div class="evidence-detail-row"><dt>Study ID</dt><dd>STUDY-KARPICKE-2007</dd></div><div class="evidence-detail-row"><dt>Sample ID</dt><dd>SMPL-KARPICKE-2007</dd></div><div class="evidence-detail-row"><dt>Source title</dt><dd>Expanding retrieval practice promotes short-term retention, but equally spaced retrieval enhances long-term retention.</dd></div><div class="evidence-detail-row"><dt>Year</dt><dd>2007</dd></div><div class="evidence-detail-row"><dt>Study design</dt><dd>Randomized controlled trial</dd></div><div class="evidence-detail-row"><dt>Education level</dt><dd>Undergraduate</dd></div><div class="evidence-detail-row"><dt>Population</dt><dd>Undergraduate students in controlled retention experiments</dd></div><div class="evidence-detail-row"><dt>Sample size</dt><dd>180</dd></div><div class="evidence-detail-row"><dt>Intervention</dt><dd>retrieval practice</dd></div><div class="evidence-detail-row"><dt>Comparison</dt><dd>restudy or massed practice</dd></div><div class="evidence-detail-row"><dt>Outcome measure</dt><dd>delayed cued recall</dd></div><div class="evidence-detail-row"><dt>Effect / result</dt><dd>expanding retrieval outperformed massed practice on delayed retention</dd></div><div class="evidence-detail-row"><dt>Effect direction</dt><dd>Positive effect</dd></div><div class="evidence-detail-row"><dt>Relation to claim</dt><dd>Support</dd></div><div class="evidence-detail-row"><dt>Duration</dt><dd>single session</dd></div><div class="evidence-detail-row"><dt>Method</dt><dd>randomised experiment</dd></div><div class="evidence-detail-row"><dt>Strengths</dt><dd>controlled comparison</dd></div><div class="evidence-detail-row"><dt>Limitations</dt><dd>single study</dd></div><div class="evidence-detail-row"><dt>Confounders</dt><dd>materials differ across experiments</dd></div><div class="evidence-detail-row"><dt>Quality dimensions</dt><dd>D1 Study design = 2 · D2 Sample quality = 2 · D3 Measurement validity = 2 · D4 Temporal strength = 1 · D5 Directness = 2</dd></div><div class="evidence-detail-row"><dt>Quality score</dt><dd>8.0</dd></div><div class="evidence-detail-row"><dt>Applicability</dt><dd>learner_match=partial · subject_match=general_materials · tool_match=not_applicable</dd></div><div class="evidence-detail-row"><dt>Full claim</dt><dd>Expanding retrieval practice beats massed practice on delayed retention and improves retrieval efficiency.</dd></div><div class="evidence-detail-row"><dt>Source location</dt><dd>https://doi.org/10.1037/0278-7393.33.4.704</dd></div><div class="evidence-detail-row"><dt>Verifiable link</dt><dd><a href="https://doi.org/10.1037/0278-7393.33.4.704">https://doi.org/10.1037/0278-7393.33.4.704</a></dd></div></dl></details></td><td><a class="source-link" href="https://doi.org/10.1037/0278-7393.33.4.704" title="Expanding retrieval practice promotes short-term retention, but equally spaced retrieval enhances long-term retention."><code>S-KARPICKE-EXPANDING-RETRIEVAL-PRACTICE</code></a></td></tr><tr data-effect="positive" data-direction="positive" data-outcome="retention" data-search="e-002 study-smith-2013 smpl-smith-2013 covert retrieval practice produces retention benefits comparable to overt retrieval. undergraduate students in a controlled retrieval-practice experiment retrieval practice restudy or massed practice positive s-smith-covert-retrieval-practice"><td><code>E-002</code></td><td><strong>Retention</strong></td><td><span class="dir pos">Positive effect</span><span class="relation-note">Claim relation: Support</span></td><td><div class="quality-cell"><span class="num">7.5</span><span class="quality-meter" aria-hidden="true"><i style="width:75%"></i></span></div></td><td class="claim-cell"><p>Covert retrieval practice produces retention benefits comparable to overt retrieval.</p><details class="matrix-row-detail"><summary>View full evidence</summary><dl class="evidence-detail-grid"><div class="evidence-detail-row"><dt>Study ID</dt><dd>STUDY-SMITH-2013</dd></div><div class="evidence-detail-row"><dt>Sample ID</dt><dd>SMPL-SMITH-2013</dd></div><div class="evidence-detail-row"><dt>Source title</dt><dd>Covert retrieval practice benefits retention as much as overt retrieval practice.</dd></div><div class="evidence-detail-row"><dt>Year</dt><dd>2013</dd></div><div class="evidence-detail-row"><dt>Study design</dt><dd>Randomized controlled trial</dd></div><div class="evidence-detail-row"><dt>Education level</dt><dd>Undergraduate</dd></div><div class="evidence-detail-row"><dt>Population</dt><dd>Undergraduate students in a controlled retrieval-practice experiment</dd></div><div class="evidence-detail-row"><dt>Sample size</dt><dd>120</dd></div><div class="evidence-detail-row"><dt>Intervention</dt><dd>retrieval practice</dd></div><div class="evidence-detail-row"><dt>Comparison</dt><dd>restudy or massed practice</dd></div><div class="evidence-detail-row"><dt>Outcome measure</dt><dd>delayed free recall</dd></div><div class="evidence-detail-row"><dt>Effect / result</dt><dd>covert retrieval produced retention gains equivalent to overt retrieval</dd></div><div class="evidence-detail-row"><dt>Effect direction</dt><dd>Positive effect</dd></div><div class="evidence-detail-row"><dt>Relation to claim</dt><dd>Support</dd></div><div class="evidence-detail-row"><dt>Duration</dt><dd>single session</dd></div><div class="evidence-detail-row"><dt>Method</dt><dd>randomised experiment</dd></div><div class="evidence-detail-row"><dt>Strengths</dt><dd>controlled comparison</dd></div><div class="evidence-detail-row"><dt>Limitations</dt><dd>single study</dd></div><div class="evidence-detail-row"><dt>Quality dimensions</dt><dd>D1 Study design = 2 · D2 Sample quality = 1 · D3 Measurement validity = 2 · D4 Temporal strength = 1 · D5 Directness = 2</dd></div><div class="evidence-detail-row"><dt>Quality score</dt><dd>7.5</dd></div><div class="evidence-detail-row"><dt>Applicability</dt><dd>learner_match=partial · subject_match=general_materials · tool_match=not_applicable</dd></div><div class="evidence-detail-row"><dt>Full claim</dt><dd>Covert retrieval practice produces retention benefits comparable to overt retrieval.</dd></div><div class="evidence-detail-row"><dt>Source location</dt><dd>https://doi.org/10.1016/j.jml.2013.06.001</dd></div><div class="evidence-detail-row"><dt>Verifiable link</dt><dd><a href="https://doi.org/10.1037/a0033569">https://doi.org/10.1037/a0033569</a></dd></div></dl></details></td><td><a class="source-link" href="https://doi.org/10.1037/a0033569" title="Covert retrieval practice benefits retention as much as overt retrieval practice."><code>S-SMITH-COVERT-RETRIEVAL-PRACTICE</code></a></td></tr><tr data-effect="positive" data-direction="positive" data-outcome="retention" data-search="e-003 study-hopkins-2021 smpl-hopkins-2021 introducing spaced retrieval practice into a real course measurably improves students long-term retention. undergraduates in a classroom spaced retrieval study retrieval practice restudy or massed practice positive s-hopkins-spaced-retrieval-practice"><td><code>E-003</code></td><td><strong>Retention</strong></td><td><span class="dir pos">Positive effect</span><span class="relation-note">Claim relation: Support</span></td><td><div class="quality-cell"><span class="num">7</span><span class="quality-meter" aria-hidden="true"><i style="width:70%"></i></span></div></td><td class="claim-cell"><p>Introducing spaced retrieval practice into a real course measurably improves students long-term retention.</p><details class="matrix-row-detail"><summary>View full evidence</summary><dl class="evidence-detail-grid"><div class="evidence-detail-row"><dt>Study ID</dt><dd>STUDY-HOPKINS-2021</dd></div><div class="evidence-detail-row"><dt>Sample ID</dt><dd>SMPL-HOPKINS-2021</dd></div><div class="evidence-detail-row"><dt>Source title</dt><dd>Spaced Retrieval Practice Increases College Students’ Short- and Long-Term Retention of Mathematics Knowledge</dd></div><div class="evidence-detail-row"><dt>Year</dt><dd>2016</dd></div><div class="evidence-detail-row"><dt>Study design</dt><dd>Quasi-experimental</dd></div><div class="evidence-detail-row"><dt>Education level</dt><dd>Undergraduate</dd></div><div class="evidence-detail-row"><dt>Population</dt><dd>Undergraduates in a classroom spaced retrieval study</dd></div><div class="evidence-detail-row"><dt>Sample size</dt><dd>240</dd></div><div class="evidence-detail-row"><dt>Intervention</dt><dd>retrieval practice</dd></div><div class="evidence-detail-row"><dt>Comparison</dt><dd>restudy or massed practice</dd></div><div class="evidence-detail-row"><dt>Outcome measure</dt><dd>course delayed test</dd></div><div class="evidence-detail-row"><dt>Effect / result</dt><dd>classroom spaced retrieval raised long-term retention</dd></div><div class="evidence-detail-row"><dt>Effect direction</dt><dd>Positive effect</dd></div><div class="evidence-detail-row"><dt>Relation to claim</dt><dd>Support</dd></div><div class="evidence-detail-row"><dt>Duration</dt><dd>single session</dd></div><div class="evidence-detail-row"><dt>Method</dt><dd>classroom quasi-experiment</dd></div><div class="evidence-detail-row"><dt>Strengths</dt><dd>controlled comparison</dd></div><div class="evidence-detail-row"><dt>Limitations</dt><dd>single study</dd></div><div class="evidence-detail-row"><dt>Confounders</dt><dd>single institution</dd></div><div class="evidence-detail-row"><dt>Quality dimensions</dt><dd>D1 Study design = 1 · D2 Sample quality = 2 · D3 Measurement validity = 2 · D4 Temporal strength = 2 · D5 Directness = 2</dd></div><div class="evidence-detail-row"><dt>Quality score</dt><dd>7.0</dd></div><div class="evidence-detail-row"><dt>Applicability</dt><dd>learner_match=direct · subject_match=course_level · tool_match=not_applicable</dd></div><div class="evidence-detail-row"><dt>Full claim</dt><dd>Introducing spaced retrieval practice into a real course measurably improves students long-term retention.</dd></div><div class="evidence-detail-row"><dt>Source location</dt><dd>https://doi.org/10.1016/j.jml.2013.06.001</dd></div><div class="evidence-detail-row"><dt>Verifiable link</dt><dd><a href="https://doi.org/10.1007/s10648-015-9349-8">https://doi.org/10.1007/s10648-015-9349-8</a></dd></div></dl></details></td><td><a class="source-link" href="https://doi.org/10.1007/s10648-015-9349-8" title="Spaced Retrieval Practice Increases College Students’ Short- and Long-Term Retention of Mathematics Knowledge"><code>S-HOPKINS-SPACED-RETRIEVAL-PRACTICE</code></a></td></tr><tr data-effect="positive" data-direction="positive" data-outcome="retention" data-search="e-004 study-azzam-2020 smpl-azzam-2020 retrieval practice benefits long-term retention, with benefit size moderated by material difficulty and feedback design. studies pooled in a retention meta-analysis retrieval practice restudy or massed practice positive s-azzam-retrieval-practice-improving"><td><code>E-004</code></td><td><strong>Retention</strong></td><td><span class="dir pos">Positive effect</span><span class="relation-note">Claim relation: Support</span></td><td><div class="quality-cell"><span class="num">8.5</span><span class="quality-meter" aria-hidden="true"><i style="width:85%"></i></span></div></td><td class="claim-cell"><p>Retrieval practice benefits long-term retention, with benefit size moderated by material difficulty and feedback design.</p><details class="matrix-row-detail"><summary>View full evidence</summary><dl class="evidence-detail-grid"><div class="evidence-detail-row"><dt>Study ID</dt><dd>STUDY-AZZAM-2020</dd></div><div class="evidence-detail-row"><dt>Sample ID</dt><dd>SMPL-AZZAM-2020</dd></div><div class="evidence-detail-row"><dt>Source title</dt><dd>Retrieval Practice for Improving Long-Term Retention in Anatomical Education: A Quasi-Experimental Study</dd></div><div class="evidence-detail-row"><dt>Year</dt><dd>2021</dd></div><div class="evidence-detail-row"><dt>Study design</dt><dd>Meta-analysis</dd></div><div class="evidence-detail-row"><dt>Education level</dt><dd>Undergraduate</dd></div><div class="evidence-detail-row"><dt>Population</dt><dd>Studies pooled in a retention meta-analysis</dd></div><div class="evidence-detail-row"><dt>Intervention</dt><dd>retrieval practice</dd></div><div class="evidence-detail-row"><dt>Comparison</dt><dd>restudy or massed practice</dd></div><div class="evidence-detail-row"><dt>Outcome measure</dt><dd>pooled retention outcomes</dd></div><div class="evidence-detail-row"><dt>Effect / result</dt><dd>positive retention effect, moderated by material difficulty</dd></div><div class="evidence-detail-row"><dt>Effect direction</dt><dd>Positive effect</dd></div><div class="evidence-detail-row"><dt>Relation to claim</dt><dd>Support</dd></div><div class="evidence-detail-row"><dt>Duration</dt><dd>single session</dd></div><div class="evidence-detail-row"><dt>Method</dt><dd>Meta Analysis</dd></div><div class="evidence-detail-row"><dt>Strengths</dt><dd>controlled comparison</dd></div><div class="evidence-detail-row"><dt>Limitations</dt><dd>single study</dd></div><div class="evidence-detail-row"><dt>Quality dimensions</dt><dd>D1 Study design = 2 · D2 Sample quality = 2 · D3 Measurement validity = 2 · D4 Temporal strength = 2 · D5 Directness = 1</dd></div><div class="evidence-detail-row"><dt>Quality score</dt><dd>8.5</dd></div><div class="evidence-detail-row"><dt>Applicability</dt><dd>learner_match=partial · subject_match=mixed · tool_match=not_applicable</dd></div><div class="evidence-detail-row"><dt>Full claim</dt><dd>Retrieval practice benefits long-term retention, with benefit size moderated by material difficulty and feedback design.</dd></div><div class="evidence-detail-row"><dt>Source location</dt><dd>https://doi.org/10.1016/j.jml.2007.02.004</dd></div><div class="evidence-detail-row"><dt>Verifiable link</dt><dd><a href="https://doi.org/10.1007/s40670-021-01298-8">https://doi.org/10.1007/s40670-021-01298-8</a></dd></div></dl></details></td><td><a class="source-link" href="https://doi.org/10.1007/s40670-021-01298-8" title="Retrieval Practice for Improving Long-Term Retention in Anatomical Education: A Quasi-Experimental Study"><code>S-AZZAM-RETRIEVAL-PRACTICE-IMPROVING</code></a></td></tr><tr data-effect="null" data-direction="null" data-outcome="retention" data-search="e-005 study-rowland-2015 smpl-rowland-2015 mnemonic benefits of retrieval practice hold at short retention intervals but vary with the spacing design. participants in short-interval retention experiments retrieval practice restudy or massed practice null s-rowland-mnemonic-benefits-retrieval"><td><code>E-005</code></td><td><strong>Retention</strong></td><td><span class="dir neu">Null effect</span><span class="relation-note">Claim relation: Neutral</span></td><td><div class="quality-cell"><span class="num">6.5</span><span class="quality-meter" aria-hidden="true"><i style="width:65%"></i></span></div></td><td class="claim-cell"><p>Mnemonic benefits of retrieval practice hold at short retention intervals but vary with the spacing design.</p><details class="matrix-row-detail"><summary>View full evidence</summary><dl class="evidence-detail-grid"><div class="evidence-detail-row"><dt>Study ID</dt><dd>STUDY-ROWLAND-2015</dd></div><div class="evidence-detail-row"><dt>Sample ID</dt><dd>SMPL-ROWLAND-2015</dd></div><div class="evidence-detail-row"><dt>Source title</dt><dd>Mnemonic benefits of retrieval practice at short retention intervals</dd></div><div class="evidence-detail-row"><dt>Year</dt><dd>2015</dd></div><div class="evidence-detail-row"><dt>Study design</dt><dd>Mixed methods</dd></div><div class="evidence-detail-row"><dt>Education level</dt><dd>Undergraduate</dd></div><div class="evidence-detail-row"><dt>Population</dt><dd>Participants in short-interval retention experiments</dd></div><div class="evidence-detail-row"><dt>Sample size</dt><dd>90</dd></div><div class="evidence-detail-row"><dt>Intervention</dt><dd>retrieval practice</dd></div><div class="evidence-detail-row"><dt>Comparison</dt><dd>restudy or massed practice</dd></div><div class="evidence-detail-row"><dt>Outcome measure</dt><dd>short-interval retention</dd></div><div class="evidence-detail-row"><dt>Effect / result</dt><dd>benefit present but sensitive to the spacing design</dd></div><div class="evidence-detail-row"><dt>Effect direction</dt><dd>Null effect</dd></div><div class="evidence-detail-row"><dt>Relation to claim</dt><dd>Neutral</dd></div><div class="evidence-detail-row"><dt>Duration</dt><dd>single session</dd></div><div class="evidence-detail-row"><dt>Method</dt><dd>mixed-design experiments</dd></div><div class="evidence-detail-row"><dt>Strengths</dt><dd>controlled comparison</dd></div><div class="evidence-detail-row"><dt>Limitations</dt><dd>single study</dd></div><div class="evidence-detail-row"><dt>Confounders</dt><dd>short retention interval;convenience sample</dd></div><div class="evidence-detail-row"><dt>Quality dimensions</dt><dd>D1 Study design = 1 · D2 Sample quality = 1 · D3 Measurement validity = 2 · D4 Temporal strength = 1 · D5 Directness = 1</dd></div><div class="evidence-detail-row"><dt>Quality score</dt><dd>6.5</dd></div><div class="evidence-detail-row"><dt>Applicability</dt><dd>learner_match=partial · subject_match=general_materials · tool_match=not_applicable</dd></div><div class="evidence-detail-row"><dt>Full claim</dt><dd>Mnemonic benefits of retrieval practice hold at short retention intervals but vary with the spacing design.</dd></div><div class="evidence-detail-row"><dt>Source location</dt><dd>https://doi.org/10.1016/j.jml.2015.04.002</dd></div><div class="evidence-detail-row"><dt>Verifiable link</dt><dd><a href="https://doi.org/10.1080/09658211.2014.889710">https://doi.org/10.1080/09658211.2014.889710</a></dd></div></dl></details></td><td><a class="source-link" href="https://doi.org/10.1080/09658211.2014.889710" title="Mnemonic benefits of retrieval practice at short retention intervals"><code>S-ROWLAND-MNEMONIC-BENEFITS-RETRIEVAL</code></a></td></tr><tr data-effect="positive" data-direction="positive" data-outcome="transfer" data-search="e-006 study-zheng-2020 smpl-zheng-2020 practising more retrieval routes improves transfer, so the value is not limited to memory. undergraduates in a multi-route retrieval experiment retrieval practice restudy or massed practice positive s-zheng-practicing-more-retrieval"><td><code>E-006</code></td><td><strong>Transfer</strong></td><td><span class="dir pos">Positive effect</span><span class="relation-note">Claim relation: Support</span></td><td><div class="quality-cell"><span class="num">7.8</span><span class="quality-meter" aria-hidden="true"><i style="width:78%"></i></span></div></td><td class="claim-cell"><p>Practising more retrieval routes improves transfer, so the value is not limited to memory.</p><details class="matrix-row-detail"><summary>View full evidence</summary><dl class="evidence-detail-grid"><div class="evidence-detail-row"><dt>Study ID</dt><dd>STUDY-ZHENG-2020</dd></div><div class="evidence-detail-row"><dt>Sample ID</dt><dd>SMPL-ZHENG-2020</dd></div><div class="evidence-detail-row"><dt>Source title</dt><dd>Practicing more retrieval routes leads to greater memory retention</dd></div><div class="evidence-detail-row"><dt>Year</dt><dd>2016</dd></div><div class="evidence-detail-row"><dt>Study design</dt><dd>Randomized controlled trial</dd></div><div class="evidence-detail-row"><dt>Education level</dt><dd>Undergraduate</dd></div><div class="evidence-detail-row"><dt>Population</dt><dd>Undergraduates in a multi-route retrieval experiment</dd></div><div class="evidence-detail-row"><dt>Sample size</dt><dd>150</dd></div><div class="evidence-detail-row"><dt>Intervention</dt><dd>retrieval practice</dd></div><div class="evidence-detail-row"><dt>Comparison</dt><dd>restudy or massed practice</dd></div><div class="evidence-detail-row"><dt>Outcome measure</dt><dd>transfer task</dd></div><div class="evidence-detail-row"><dt>Effect / result</dt><dd>more retrieval routes improved transfer performance</dd></div><div class="evidence-detail-row"><dt>Effect direction</dt><dd>Positive effect</dd></div><div class="evidence-detail-row"><dt>Relation to claim</dt><dd>Support</dd></div><div class="evidence-detail-row"><dt>Duration</dt><dd>single session</dd></div><div class="evidence-detail-row"><dt>Method</dt><dd>randomised experiment</dd></div><div class="evidence-detail-row"><dt>Strengths</dt><dd>controlled comparison</dd></div><div class="evidence-detail-row"><dt>Limitations</dt><dd>single study</dd></div><div class="evidence-detail-row"><dt>Quality dimensions</dt><dd>D1 Study design = 2 · D2 Sample quality = 2 · D3 Measurement validity = 2 · D4 Temporal strength = 1 · D5 Directness = 2</dd></div><div class="evidence-detail-row"><dt>Quality score</dt><dd>7.8</dd></div><div class="evidence-detail-row"><dt>Applicability</dt><dd>learner_match=direct · subject_match=general_materials · tool_match=not_applicable</dd></div><div class="evidence-detail-row"><dt>Full claim</dt><dd>Practising more retrieval routes improves transfer, so the value is not limited to memory.</dd></div><div class="evidence-detail-row"><dt>Source location</dt><dd>https://doi.org/10.1016/j.jml.2020.104114</dd></div><div class="evidence-detail-row"><dt>Verifiable link</dt><dd><a href="https://doi.org/10.1016/j.actpsy.2016.05.014">https://doi.org/10.1016/j.actpsy.2016.05.014</a></dd></div></dl></details></td><td><a class="source-link" href="https://doi.org/10.1016/j.actpsy.2016.05.014" title="Practicing more retrieval routes leads to greater memory retention"><code>S-ZHENG-PRACTICING-MORE-RETRIEVAL</code></a></td></tr></tbody></table></div></div></section><section id="full-03-quality-en" class="full-chapter" data-full-chapter><header class="full-chapter-header"><h2>03 Evidence Quality, Counterevidence & Method Audit</h2><p class="full-chapter-lead">Examine why evidence is credible, where it conflicts, and which conclusions require downgrading.</p></header><div class="full-chapter-body"><section class="method-review-group"><header class="method-review-title"><h3>Audit target: overall</h3><span class="method-verdict">Pass</span></header><div class="method-audit-grid"><article class="method-audit-item method-met"><div class="method-audit-head"><strong>Control Group</strong><span class="method-status">Met</span></div><p>Most included studies contrast retrieval practice with restudy or massed review.</p></article><article class="method-audit-item method-partial"><div class="method-audit-head"><strong>Randomization</strong><span class="method-status">Partial</span></div><p>Several included experiments randomised participants to practice condition.</p></article><article class="method-audit-item method-partial"><div class="method-audit-head"><strong>Pre Test</strong><span class="method-status">Partial</span></div><p>Some experiments measured prior knowledge before practice.</p></article><article class="method-audit-item method-met"><div class="method-audit-head"><strong>Post Test</strong><span class="method-status">Met</span></div><p>All included studies report an immediate post-test.</p></article><article class="method-audit-item method-met"><div class="method-audit-head"><strong>Retention Test</strong><span class="method-status">Met</span></div><p>Delayed retention is the primary outcome across the set.</p></article><article class="method-audit-item method-partial"><div class="method-audit-head"><strong>Transfer Test</strong><span class="method-status">Partial</span></div><p>Transfer is measured in a smaller subset of studies.</p></article><article class="method-audit-item method-partial"><div class="method-audit-head"><strong>Sample Bias</strong><span class="method-status">Partial</span></div><p>Many samples are undergraduate convenience samples.</p></article><article class="method-audit-item method-partial"><div class="method-audit-head"><strong>Self Selection</strong><span class="method-status">Partial</span></div><p>Volunteer participation may bias some classroom studies.</p></article><article class="method-audit-item method-met"><div class="method-audit-head"><strong>Measurement Validity</strong><span class="method-status">Met</span></div><p>Retention and transfer are measured separately from practice performance.</p></article><article class="method-audit-item method-partial"><div class="method-audit-head"><strong>Confounders</strong><span class="method-status">Partial</span></div><p>Material difficulty and feedback design moderate the effect.</p></article><article class="method-audit-item method-missing"><div class="method-audit-head"><strong>Instructor Effect</strong><span class="method-status">missing</span></div><p>Classroom studies may carry instructor effects.</p></article><article class="method-audit-item method-missing"><div class="method-audit-head"><strong>Novelty Effect</strong><span class="method-status">missing</span></div><p>Short interventions may inflate initial engagement.</p></article><article class="method-audit-item method-not_applicable"><div class="method-audit-head"><strong>Tool Version Effect</strong><span class="method-status">N/A</span></div><p>Not applicable: no software tool under test.</p></article><article class="method-audit-item method-not_applicable"><div class="method-audit-head"><strong>Ai Usage Policy</strong><span class="method-status">N/A</span></div><p>Not applicable: the practice is closed book.</p></article><article class="method-audit-item method-missing"><div class="method-audit-head"><strong>Dropout</strong><span class="method-status">missing</span></div><p>Attrition is rarely reported in the included studies.</p></article></div><div class="method-guard-wrap"><strong>Task vs learning guard: </strong><p class="method-guard">The evidence set measures delayed retention and transfer rather than immediate practice speed, so no task-performance result is treated as a learning result.</p></div></section><article class="conflict-card"><strong>Tribunal note: </strong><p class="conflict-text">The gap reflects ecological validity between laboratory and classroom settings; the direction of the evidence does not conflict.</p></article><div class="evidence-tribunal" data-visual="evidence-tribunal-grid"><p class="tribunal-summary"><strong>Decision: </strong>Adopt · <strong>Confidence: </strong>High</p><div class="tribunal-grid"><article class="tribunal-card supported"><header><span aria-hidden="true">✓</span><h3>Can claim</h3><span class="tribunal-count">3</span></header><ul><li><p>Spaced retrieval practice reliably outperforms concentrated review on delayed retention.</p></li><li><p>Covert and overt retrieval produce comparable benefits, so the format is flexible.</p></li><li><p>Practising more retrieval routes improves transfer, so the value is not limited to memorisation.</p></li></ul></article><article class="tribunal-card uncertain"><header><span aria-hidden="true">?</span><h3>Cannot yet claim</h3><span class="tribunal-count">2</span></header><ul><li><p>Direct classroom evidence from programming courses is thinner than the lab evidence [no direct evidence].</p></li><li><p>Benefit size depends on material difficulty and feedback design; the optimal spacing is unsettled.</p></li></ul></article><article class="tribunal-card contradicted"><header><span aria-hidden="true">×</span><h3>Contradicted claims</h3><span class="tribunal-count">0</span></header><ul><li>No data.</li></ul></article><article class="tribunal-card missing"><header><span aria-hidden="true">…</span><h3>Missing evidence</h3><span class="tribunal-count">2</span></header><ul><li><p>Randomised field studies inside programming courses</p></li><li><p>Direct comparisons of different spacing schedules</p></li></ul></article></div><details class="supporting-visual"><summary>EvidenceFlow Protocol</summary><svg viewBox="0 0 720 260" xmlns="http://www.w3.org/2000/svg" role="img" aria-label="EvidenceFlow Protocol"><title>EvidenceFlow Protocol</title><desc>Research flow from framing, retrieval, fetch/verify, extraction, challenge, method audit and adjudication to applicability and intervention evaluation.</desc><defs><marker id="arr-en-full-workflow" markerWidth="8" markerHeight="8" refX="6" refY="3" orient="auto"><path d="M0,0 L6,3 L0,6 Z" fill="#8A867E"/></marker></defs><rect width="720" height="260" fill="#FCFAF6" rx="12"/><text x="24" y="34" font-size="16" font-weight="700" fill="#3A3833">EvidenceFlow Protocol</text><rect x="24" y="100" width="64" height="52" rx="8" fill="#B8694A"/><text x="56.0" y="126.0" text-anchor="middle" fill="#FFFFFF" font-size="10" font-weight="600"><tspan x="56.0" y="126.0">Frame</tspan></text><line x1="88" y1="126" x2="100" y2="126" stroke="#8A867E" stroke-width="2" marker-end="url(#arr-en-full-workflow)"/><rect x="100" y="100" width="64" height="52" rx="8" fill="#B8694A"/><text x="132.0" y="126.0" text-anchor="middle" fill="#FFFFFF" font-size="10" font-weight="600"><tspan x="132.0" y="126.0">Retrieve</tspan></text><line x1="164" y1="126" x2="176" y2="126" stroke="#8A867E" stroke-width="2" marker-end="url(#arr-en-full-workflow)"/><rect x="176" y="100" width="64" height="52" rx="8" fill="#B8694A"/><text x="208.0" y="126.0" text-anchor="middle" fill="#FFFFFF" font-size="10" font-weight="600"><tspan x="208.0" y="126.0">Fetch</tspan><tspan x="208.0" y="140.0">Verify</tspan></text><line x1="240" y1="126" x2="252" y2="126" stroke="#8A867E" stroke-width="2" marker-end="url(#arr-en-full-workflow)"/><rect x="252" y="100" width="64" height="52" rx="8" fill="#B8694A"/><text x="284.0" y="126.0" text-anchor="middle" fill="#FFFFFF" font-size="10" font-weight="600"><tspan x="284.0" y="126.0">Extract</tspan></text><line x1="316" y1="126" x2="328" y2="126" stroke="#8A867E" stroke-width="2" marker-end="url(#arr-en-full-workflow)"/><rect x="328" y="100" width="64" height="52" rx="8" fill="#5E8A6A"/><text x="360.0" y="126.0" text-anchor="middle" fill="#FFFFFF" font-size="10" font-weight="600"><tspan x="360.0" y="126.0">Challenge</tspan></text><line x1="392" y1="126" x2="404" y2="126" stroke="#8A867E" stroke-width="2" marker-end="url(#arr-en-full-workflow)"/><rect x="404" y="100" width="64" height="52" rx="8" fill="#5E8A6A"/><text x="436.0" y="126.0" text-anchor="middle" fill="#FFFFFF" font-size="10" font-weight="600"><tspan x="436.0" y="126.0">Audit</tspan><tspan x="436.0" y="140.0">Method</tspan></text><line x1="468" y1="126" x2="480" y2="126" stroke="#8A867E" stroke-width="2" marker-end="url(#arr-en-full-workflow)"/><rect x="480" y="100" width="64" height="52" rx="8" fill="#C99A4A"/><text x="512.0" y="126.0" text-anchor="middle" fill="#FFFFFF" font-size="10" font-weight="600"><tspan x="512.0" y="126.0">Adjudicate</tspan></text><line x1="544" y1="126" x2="556" y2="126" stroke="#8A867E" stroke-width="2" marker-end="url(#arr-en-full-workflow)"/><rect x="556" y="100" width="64" height="52" rx="8" fill="#C99A4A"/><text x="588.0" y="126.0" text-anchor="middle" fill="#FFFFFF" font-size="10" font-weight="600"><tspan x="588.0" y="126.0">Applicability</tspan></text><line x1="620" y1="126" x2="632" y2="126" stroke="#8A867E" stroke-width="2" marker-end="url(#arr-en-full-workflow)"/><rect x="632" y="100" width="64" height="52" rx="8" fill="#C99A4A"/><text x="664.0" y="126.0" text-anchor="middle" fill="#FFFFFF" font-size="10" font-weight="600"><tspan x="664.0" y="126.0">Intervene</tspan><tspan x="664.0" y="140.0">Evaluate</tspan></text></svg></details><details class="supporting-visual"><summary>Tribunal infographic</summary><svg viewBox="0 0 720 260" xmlns="http://www.w3.org/2000/svg" role="img" aria-label="Evidence Tribunal infographic"><title>Evidence Tribunal infographic</title><desc>Evidence IDs for claims that can and cannot be claimed, plus the recommended action badge; full claim text is in the tribunal cards below.</desc><defs><marker id="arr-en-full-tribunal" markerWidth="8" markerHeight="8" refX="6" refY="3" orient="auto"><path d="M0,0 L6,3 L0,6 Z" fill="#8A867E"/></marker></defs><rect width="720" height="260" fill="#FCFAF6" rx="12"/><text x="24" y="34" font-size="16" font-weight="700" fill="#3A3833">Evidence Tribunal</text><text x="24" y="180" font-size="13" font-weight="700" fill="#3A3833">Source of conflict</text><text x="24" y="202" font-size="11" fill="#8A867E">See tribunal cards below</text><rect x="24" y="216" width="180" height="28" rx="14" fill="#C99A4A"/><text x="114" y="235" text-anchor="middle" font-size="13" font-weight="700" fill="#fff">Adopt</text><text x="250" y="80" font-size="13" font-weight="700" fill="#5E8A6A">Can claim (3)</text><circle cx="254" cy="100" r="3" fill="#5E8A6A"/><text x="266" y="105" font-size="11" fill="#3A3833">(none)</text><text x="490" y="80" font-size="13" font-weight="700" fill="#A85B53">Cannot claim (2)</text><circle cx="494" cy="100" r="3" fill="#A85B53"/><text x="506" y="105" font-size="11" fill="#3A3833">(none)</text></svg></details></div><div class="trace-chain" data-visual="trace-chain"><article class="trace-chain-card"><div class="trace-claim-node"><strong>C-001</strong></div><div class="trace-arrow">↓</div><div class="trace-evidence-list"><div class="trace-evidence-node"><code>E-001</code><span>Retention</span><span class="dir pos">Positive effect</span><span class="trace-relation">claim relation: Support</span><span>Q 8.0</span><span class="trace-arrow">→</span><a href="https://doi.org/10.1037/0278-7393.33.4.704"><code>S-KARPICKE-EXPANDING-RETRIEVAL-PRACTICE</code></a></div><div class="trace-evidence-node"><code>E-002</code><span>Retention</span><span class="dir pos">Positive effect</span><span class="trace-relation">claim relation: Support</span><span>Q 7.5</span><span class="trace-arrow">→</span><a href="https://doi.org/10.1037/a0033569"><code>S-SMITH-COVERT-RETRIEVAL-PRACTICE</code></a></div><div class="trace-evidence-node"><code>E-003</code><span>Retention</span><span class="dir pos">Positive effect</span><span class="trace-relation">claim relation: Support</span><span>Q 7.0</span><span class="trace-arrow">→</span><a href="https://doi.org/10.1007/s10648-015-9349-8"><code>S-HOPKINS-SPACED-RETRIEVAL-PRACTICE</code></a></div><div class="trace-evidence-node"><code>E-004</code><span>Retention</span><span class="dir pos">Positive effect</span><span class="trace-relation">claim relation: Support</span><span>Q 8.5</span><span class="trace-arrow">→</span><a href="https://doi.org/10.1007/s40670-021-01298-8"><code>S-AZZAM-RETRIEVAL-PRACTICE-IMPROVING</code></a></div></div></article><article class="trace-chain-card"><div class="trace-claim-node"><strong>C-002</strong></div><div class="trace-arrow">↓</div><div class="trace-evidence-list"><div class="trace-evidence-node"><code>E-004</code><span>Retention</span><span class="dir pos">Positive effect</span><span class="trace-relation">claim relation: Support</span><span>Q 8.5</span><span class="trace-arrow">→</span><a href="https://doi.org/10.1007/s40670-021-01298-8"><code>S-AZZAM-RETRIEVAL-PRACTICE-IMPROVING</code></a></div><div class="trace-evidence-node"><code>E-005</code><span>Retention</span><span class="dir neu">Null effect</span><span class="trace-relation">claim relation: Neutral</span><span>Q 6.5</span><span class="trace-arrow">→</span><a href="https://doi.org/10.1080/09658211.2014.889710"><code>S-ROWLAND-MNEMONIC-BENEFITS-RETRIEVAL</code></a></div></div></article><article class="trace-chain-card"><div class="trace-claim-node"><strong>C-003</strong></div><div class="trace-arrow">↓</div><div class="trace-evidence-list"><div class="trace-evidence-node"><code>E-006</code><span>Transfer</span><span class="dir pos">Positive effect</span><span class="trace-relation">claim relation: Support</span><span>Q 7.8</span><span class="trace-arrow">→</span><a href="https://doi.org/10.1016/j.actpsy.2016.05.014"><code>S-ZHENG-PRACTICING-MORE-RETRIEVAL</code></a></div></div></article></div><div id="chart-trace-en" class="chart-mount" aria-label="Claim-Evidence Trace"></div><p class="chart-interpretation"><strong>What this means: </strong>Every important claim must resolve to Evidence IDs and original sources.</p></div></section><section id="full-04-action-en" class="full-chapter" data-full-chapter><header class="full-chapter-header"><h2>04 Applicability & Teaching Action</h2><p class="full-chapter-lead">Connect applicability, guardrails and teaching actions to specific evidence.</p></header><div class="full-chapter-body"><p><strong>Target population: </strong>First-year students in an undergraduate introductory programming course</p>
|
|
2325
|
+
<p><strong>Target context: </strong>16-week lecture-plus-lab course, large class, TA support, offline</p>
|
|
2326
|
+
<p><strong>Suitable for: </strong>Introductory programming courses with fixed contact hours where weekly short practice can be scheduled reliably</p>
|
|
2327
|
+
<p><strong>Not suitable for: </strong>Courses without a regular review slot, or settings where a delayed post-test cannot be guaranteed</p>
|
|
2328
|
+
<p><strong>Conditions: </strong></p><ul><li>Weekly short retrieval practice</li><li>A common delayed post-test protocol</li></ul><div class="evidence-to-action" data-visual="evidence-to-action"><article class="action-node action-evidence"><span>Evidence</span><p class="action-node-text">Spaced retrieval practice reliably outperforms concentrated review on delayed retention.</p></article><span class="flow-arrow" aria-hidden="true">→</span><article class="action-node action-applicability"><span>Applicability</span><p class="action-node-text">Introductory programming courses with fixed contact hours where weekly short practice can be scheduled reliably</p></article><span class="flow-arrow" aria-hidden="true">→</span><article class="action-node action-decision"><span>Decision</span><p class="action-node-text">Adopt</p></article><span class="flow-arrow" aria-hidden="true">→</span><article class="action-node action-guardrails"><span>Guardrails</span><p class="action-node-text">No AI tools in this pilot; practice is closed-book retrieval</p></article><span class="flow-arrow" aria-hidden="true">→</span><article class="action-node action-stop"><span>Stop conditions</span><p class="action-node-text">delayed post-test below baseline; completion stays under 60%</p></article></div><p><strong>Target learners: </strong>First-year students in an undergraduate introductory programming course · <strong>Pilot duration: </strong>one semester</p>
|
|
2329
|
+
<p><strong>AI usage policy: </strong>No AI tools in this pilot; practice is closed-book retrieval</p>
|
|
2330
|
+
<h3>Stop conditions</h3><ul><li>delayed post-test below baseline</li><li>completion stays under 60%</li></ul>
|
|
2331
|
+
<h3>Intervention timeline infographic</h3>
|
|
2332
|
+
<svg viewBox="0 0 720 260" xmlns="http://www.w3.org/2000/svg" role="img" aria-label="Teaching intervention timeline"><title>Teaching intervention timeline</title><desc>Short phase names and activity counts; full AI usage rules are in the phase blocks.</desc><defs><marker id="arr-en-full-intervention" markerWidth="8" markerHeight="8" refX="6" refY="3" orient="auto"><path d="M0,0 L6,3 L0,6 Z" fill="#8A867E"/></marker></defs><rect width="720" height="260" fill="#FCFAF6" rx="12"/><text x="24" y="34" font-size="16" font-weight="700" fill="#3A3833">Intervention Timeline</text><rect x="24" y="100" width="160" height="96" rx="8" fill="#B8694A"/><text x="104.0" y="148.0" text-anchor="middle" fill="#FFFFFF" font-size="12" font-weight="600"><tspan x="104.0" y="148.0">Phase 1</tspan></text></svg></div></section><section id="full-05-evaluation-en" class="full-chapter" data-full-chapter><header class="full-chapter-header"><h2>05 Pilot, Evaluation & Stop Conditions</h2><p class="full-chapter-lead">Validate the pilot with independent learning outcomes and pre-specified stop conditions.</p></header><div class="full-chapter-body"><p><strong>Research question: </strong></p>
|
|
2333
|
+
<p><strong>Baseline: </strong>W1 common pre-test</p>
|
|
2334
|
+
<h3>Process metrics</h3><ul><li>weekly practice completion rate</li></ul>
|
|
2335
|
+
<h3>Learning metrics</h3><ul><li>delayed retention score</li><li>transfer task score</li></ul>
|
|
2336
|
+
<h3>Risk metrics</h3><ul><li>self-reported cognitive load</li></ul>
|
|
2337
|
+
<h3>Evaluation design infographic</h3>
|
|
2338
|
+
<svg viewBox="0 0 720 260" xmlns="http://www.w3.org/2000/svg" role="img" aria-label="Evaluation design flow"><title>Evaluation design flow</title><desc>Evaluation flow across baseline, post test, retention and transfer; full metrics and analysis plan are in the evaluation section.</desc><defs><marker id="arr-en-full-evaluation" markerWidth="8" markerHeight="8" refX="6" refY="3" orient="auto"><path d="M0,0 L6,3 L0,6 Z" fill="#8A867E"/></marker></defs><rect width="720" height="260" fill="#FCFAF6" rx="12"/><text x="24" y="34" font-size="16" font-weight="700" fill="#3A3833">Evaluation Design Flow</text><rect x="30" y="110" width="150" height="56" rx="8" fill="#5E8A6A"/><text x="105.0" y="138.0" text-anchor="middle" fill="#FFFFFF" font-size="12" font-weight="600"><tspan x="105.0" y="138.0">Baseline</tspan></text><text x="105.0" y="148" text-anchor="middle" font-size="9" fill="#fff" opacity="0.95">pre-test</text><line x1="180" y1="138" x2="192" y2="138" stroke="#8A867E" stroke-width="2" marker-end="url(#arr-en-full-evaluation)"/><rect x="192" y="110" width="150" height="56" rx="8" fill="#5E8A6A"/><text x="267.0" y="138.0" text-anchor="middle" fill="#FFFFFF" font-size="12" font-weight="600"><tspan x="267.0" y="138.0">Post test</tspan></text><text x="267.0" y="148" text-anchor="middle" font-size="9" fill="#fff" opacity="0.95">post-test</text><line x1="342" y1="138" x2="354" y2="138" stroke="#8A867E" stroke-width="2" marker-end="url(#arr-en-full-evaluation)"/><rect x="354" y="110" width="150" height="56" rx="8" fill="#5E8A6A"/><text x="429.0" y="138.0" text-anchor="middle" fill="#FFFFFF" font-size="12" font-weight="600"><tspan x="429.0" y="138.0">Retention</tspan></text><text x="429.0" y="148" text-anchor="middle" font-size="9" fill="#fff" opacity="0.95">retention test</text><line x1="504" y1="138" x2="516" y2="138" stroke="#8A867E" stroke-width="2" marker-end="url(#arr-en-full-evaluation)"/><rect x="516" y="110" width="150" height="56" rx="8" fill="#5E8A6A"/><text x="591.0" y="138.0" text-anchor="middle" fill="#FFFFFF" font-size="12" font-weight="600"><tspan x="591.0" y="138.0">Transfer</tspan></text><text x="591.0" y="148" text-anchor="middle" font-size="9" fill="#fff" opacity="0.95">transfer test (no AI)</text></svg><div class="visual-suppressed"><strong>Benchmark visual suppressed</strong><p>result.json carries no benchmark.baselines, so this visual is omitted; see the standalone benchmark report.</p></div></div></section><section id="full-06-sources-en" class="full-chapter" data-full-chapter><header class="full-chapter-header"><h2>06 Sources, Traceability & Appendix</h2><p class="full-chapter-lead">Preserve original sources, URLs, evidence IDs and retrieval metadata for auditability.</p></header><div class="full-chapter-body"><h3>Source list</h3><div class='table-wrap'><table class='data-table source-table'><thead><tr><th>ID</th><th>Title</th><th>Year</th><th>Authority</th><th>Verifiable location</th></tr></thead><tbody><tr><td><code>S-KARPICKE-EXPANDING-RETRIEVAL-PRACTICE</code></td><td class='cell-main source-title-cell'>Expanding retrieval practice promotes short-term retention, but equally spaced retrieval enhances long-term retention.<details class="source-expander detail-expander"><summary>View source & provenance</summary><dl class="source-detail-grid"><div class="source-detail-row"><dt>Original title</dt><dd>Expanding retrieval practice promotes short-term retention, but equally spaced retrieval enhances long-term retention.</dd></div><div class="source-detail-row"><dt>Year</dt><dd>2007</dd></div><div class="source-detail-row"><dt>Authority</dt><dd>Tier 1 DOI-verified paper</dd></div><div class="source-detail-row"><dt>Fetch provider</dt><dd>sciverse_content</dd></div><div class="source-detail-row"><dt>Fetch status</dt><dd>FETCH_VALID</dd></div><div class="source-detail-row"><dt>Fetched at</dt><dd>2026-09-12T00:00:00+00:00</dd></div><div class="source-detail-row"><dt>Verifiable link</dt><dd><a href="https://doi.org/10.1037/0278-7393.33.4.704">https://doi.org/10.1037/0278-7393.33.4.704</a></dd></div></dl></details></td><td>2007</td><td>Tier 1 DOI-verified paper</td><td class='cell-main'><a href='https://doi.org/10.1037/0278-7393.33.4.704'>https://doi.org/10.1037/0278-7393.33.4.704</a></td></tr><tr><td><code>S-SMITH-COVERT-RETRIEVAL-PRACTICE</code></td><td class='cell-main source-title-cell'>Covert retrieval practice benefits retention as much as overt retrieval practice.<details class="source-expander detail-expander"><summary>View source & provenance</summary><dl class="source-detail-grid"><div class="source-detail-row"><dt>Original title</dt><dd>Covert retrieval practice benefits retention as much as overt retrieval practice.</dd></div><div class="source-detail-row"><dt>Year</dt><dd>2013</dd></div><div class="source-detail-row"><dt>Authority</dt><dd>Tier 1 DOI-verified paper</dd></div><div class="source-detail-row"><dt>Fetch provider</dt><dd>sciverse_content</dd></div><div class="source-detail-row"><dt>Fetch status</dt><dd>FETCH_VALID</dd></div><div class="source-detail-row"><dt>Fetched at</dt><dd>2026-09-12T00:00:00+00:00</dd></div><div class="source-detail-row"><dt>Verifiable link</dt><dd><a href="https://doi.org/10.1037/a0033569">https://doi.org/10.1037/a0033569</a></dd></div></dl></details></td><td>2013</td><td>Tier 1 DOI-verified paper</td><td class='cell-main'><a href='https://doi.org/10.1037/a0033569'>https://doi.org/10.1037/a0033569</a></td></tr><tr><td><code>S-HOPKINS-SPACED-RETRIEVAL-PRACTICE</code></td><td class='cell-main source-title-cell'>Spaced Retrieval Practice Increases College Students’ Short- and Long-Term Retention of Mathematics Knowledge<details class="source-expander detail-expander"><summary>View source & provenance</summary><dl class="source-detail-grid"><div class="source-detail-row"><dt>Original title</dt><dd>Spaced Retrieval Practice Increases College Students’ Short- and Long-Term Retention of Mathematics Knowledge</dd></div><div class="source-detail-row"><dt>Year</dt><dd>2016</dd></div><div class="source-detail-row"><dt>Authority</dt><dd>Tier 1 DOI-verified paper</dd></div><div class="source-detail-row"><dt>Fetch provider</dt><dd>sciverse_content</dd></div><div class="source-detail-row"><dt>Fetch status</dt><dd>FETCH_VALID</dd></div><div class="source-detail-row"><dt>Fetched at</dt><dd>2026-09-12T00:00:00+00:00</dd></div><div class="source-detail-row"><dt>Verifiable link</dt><dd><a href="https://doi.org/10.1007/s10648-015-9349-8">https://doi.org/10.1007/s10648-015-9349-8</a></dd></div></dl></details></td><td>2016</td><td>Tier 1 DOI-verified paper</td><td class='cell-main'><a href='https://doi.org/10.1007/s10648-015-9349-8'>https://doi.org/10.1007/s10648-015-9349-8</a></td></tr><tr><td><code>S-MORANO-RETRIEVAL-PRACTICE-RETENTION</code></td><td class='cell-main source-title-cell'>Retrieval Practice for Retention and Transfer<details class="source-expander detail-expander"><summary>View source & provenance</summary><dl class="source-detail-grid"><div class="source-detail-row"><dt>Original title</dt><dd>Retrieval Practice for Retention and Transfer</dd></div><div class="source-detail-row"><dt>Year</dt><dd>2019</dd></div><div class="source-detail-row"><dt>Authority</dt><dd>Tier 1 DOI-verified paper</dd></div><div class="source-detail-row"><dt>Fetch provider</dt><dd>sciverse_content</dd></div><div class="source-detail-row"><dt>Fetch status</dt><dd>FETCH_VALID</dd></div><div class="source-detail-row"><dt>Fetched at</dt><dd>2026-09-12T00:00:00+00:00</dd></div><div class="source-detail-row"><dt>Verifiable link</dt><dd><a href="https://doi.org/10.1177/0040059919847210">https://doi.org/10.1177/0040059919847210</a></dd></div></dl></details></td><td>2019</td><td>Tier 1 DOI-verified paper</td><td class='cell-main'><a href='https://doi.org/10.1177/0040059919847210'>https://doi.org/10.1177/0040059919847210</a></td></tr><tr><td><code>S-AZZAM-RETRIEVAL-PRACTICE-IMPROVING</code></td><td class='cell-main source-title-cell'>Retrieval Practice for Improving Long-Term Retention in Anatomical Education: A Quasi-Experimental Study<details class="source-expander detail-expander"><summary>View source & provenance</summary><dl class="source-detail-grid"><div class="source-detail-row"><dt>Original title</dt><dd>Retrieval Practice for Improving Long-Term Retention in Anatomical Education: A Quasi-Experimental Study</dd></div><div class="source-detail-row"><dt>Year</dt><dd>2021</dd></div><div class="source-detail-row"><dt>Authority</dt><dd>Tier 1 DOI-verified paper</dd></div><div class="source-detail-row"><dt>Fetch provider</dt><dd>sciverse_content</dd></div><div class="source-detail-row"><dt>Fetch status</dt><dd>FETCH_VALID</dd></div><div class="source-detail-row"><dt>Fetched at</dt><dd>2026-09-12T00:00:00+00:00</dd></div><div class="source-detail-row"><dt>Verifiable link</dt><dd><a href="https://doi.org/10.1007/s40670-021-01298-8">https://doi.org/10.1007/s40670-021-01298-8</a></dd></div></dl></details></td><td>2021</td><td>Tier 1 DOI-verified paper</td><td class='cell-main'><a href='https://doi.org/10.1007/s40670-021-01298-8'>https://doi.org/10.1007/s40670-021-01298-8</a></td></tr><tr><td><code>S-ROWLAND-MNEMONIC-BENEFITS-RETRIEVAL</code></td><td class='cell-main source-title-cell'>Mnemonic benefits of retrieval practice at short retention intervals<details class="source-expander detail-expander"><summary>View source & provenance</summary><dl class="source-detail-grid"><div class="source-detail-row"><dt>Original title</dt><dd>Mnemonic benefits of retrieval practice at short retention intervals</dd></div><div class="source-detail-row"><dt>Year</dt><dd>2015</dd></div><div class="source-detail-row"><dt>Authority</dt><dd>Tier 1 DOI-verified paper</dd></div><div class="source-detail-row"><dt>Fetch provider</dt><dd>sciverse_content</dd></div><div class="source-detail-row"><dt>Fetch status</dt><dd>FETCH_VALID</dd></div><div class="source-detail-row"><dt>Fetched at</dt><dd>2026-09-12T00:00:00+00:00</dd></div><div class="source-detail-row"><dt>Verifiable link</dt><dd><a href="https://doi.org/10.1080/09658211.2014.889710">https://doi.org/10.1080/09658211.2014.889710</a></dd></div></dl></details></td><td>2015</td><td>Tier 1 DOI-verified paper</td><td class='cell-main'><a href='https://doi.org/10.1080/09658211.2014.889710'>https://doi.org/10.1080/09658211.2014.889710</a></td></tr><tr><td><code>S-ZHENG-PRACTICING-MORE-RETRIEVAL</code></td><td class='cell-main source-title-cell'>Practicing more retrieval routes leads to greater memory retention<details class="source-expander detail-expander"><summary>View source & provenance</summary><dl class="source-detail-grid"><div class="source-detail-row"><dt>Original title</dt><dd>Practicing more retrieval routes leads to greater memory retention</dd></div><div class="source-detail-row"><dt>Year</dt><dd>2016</dd></div><div class="source-detail-row"><dt>Authority</dt><dd>Tier 1 DOI-verified paper</dd></div><div class="source-detail-row"><dt>Fetch provider</dt><dd>sciverse_content</dd></div><div class="source-detail-row"><dt>Fetch status</dt><dd>FETCH_VALID</dd></div><div class="source-detail-row"><dt>Fetched at</dt><dd>2026-09-12T00:00:00+00:00</dd></div><div class="source-detail-row"><dt>Verifiable link</dt><dd><a href="https://doi.org/10.1016/j.actpsy.2016.05.014">https://doi.org/10.1016/j.actpsy.2016.05.014</a></dd></div></dl></details></td><td>2016</td><td>Tier 1 DOI-verified paper</td><td class='cell-main'><a href='https://doi.org/10.1016/j.actpsy.2016.05.014'>https://doi.org/10.1016/j.actpsy.2016.05.014</a></td></tr></tbody></table></div><h3>Fetch provenance</h3><p class="provenance-summary">Search provider: sciverse · Fetched at: 2026-09-12T00:00:00+00:00</p><div class='table-wrap'><table class='data-table'><thead><tr><th>Source</th><th>Fetch method</th><th>Status</th><th>Fallback</th><th>Time</th></tr></thead><tbody><tr><td><code>S-KARPICKE-EXPANDING-RETRIEVAL-PRACTICE</code></td><td>sciverse_content</td><td>FETCH_VALID</td><td></td><td>2026-09-12T00:00:00+00:00</td></tr><tr><td><code>S-SMITH-COVERT-RETRIEVAL-PRACTICE</code></td><td>sciverse_content</td><td>FETCH_VALID</td><td></td><td>2026-09-12T00:00:00+00:00</td></tr><tr><td><code>S-HOPKINS-SPACED-RETRIEVAL-PRACTICE</code></td><td>sciverse_content</td><td>FETCH_VALID</td><td></td><td>2026-09-12T00:00:00+00:00</td></tr><tr><td><code>S-MORANO-RETRIEVAL-PRACTICE-RETENTION</code></td><td>sciverse_content</td><td>FETCH_VALID</td><td></td><td>2026-09-12T00:00:00+00:00</td></tr><tr><td><code>S-AZZAM-RETRIEVAL-PRACTICE-IMPROVING</code></td><td>sciverse_content</td><td>FETCH_VALID</td><td></td><td>2026-09-12T00:00:00+00:00</td></tr><tr><td><code>S-ROWLAND-MNEMONIC-BENEFITS-RETRIEVAL</code></td><td>sciverse_content</td><td>FETCH_VALID</td><td></td><td>2026-09-12T00:00:00+00:00</td></tr><tr><td><code>S-ZHENG-PRACTICING-MORE-RETRIEVAL</code></td><td>sciverse_content</td><td>FETCH_VALID</td><td></td><td>2026-09-12T00:00:00+00:00</td></tr></tbody></table></div></div></section></main></div>
|
|
2339
|
+
</div>
|
|
2340
|
+
<footer class="report-footer"><p>EduEvidence Evidence Report · Schema PASS · Claim Binding PASS · Numeric Consistency PASS · Bilingual Structure PASS · Human Language PASS · False Precision PASS · Lieflat Data Bound PASS · Axis Distortion NOT_CHECKED · Colorblind Safe NOT_CHECKED · single-file offline · source: result.json</p></footer>
|
|
2341
|
+
</div>
|
|
2342
|
+
<script>
|
|
2343
|
+
/* EduEvidence Motion Template — one-shot progressive enhancement.
|
|
2344
|
+
The [data-lieflat] gallery block implements the Lieflat mono-tokens
|
|
2345
|
+
obsReveal contract: reveal once when scrolled into view (threshold .3),
|
|
2346
|
+
click to replay (per-id timers cleared first so animations never stack),
|
|
2347
|
+
prefers-reduced-motion downgrade, and static-visible without JS. */
|
|
2348
|
+
(function () {
|
|
2349
|
+
'use strict';
|
|
2350
|
+
var root = document.documentElement;
|
|
2351
|
+
var reduceMotion = !!(window.matchMedia && window.matchMedia('(prefers-reduced-motion: reduce)').matches);
|
|
2352
|
+
window.__EDUEVIDENCE_REDUCE_MOTION__ = reduceMotion;
|
|
2353
|
+
if (reduceMotion) return;
|
|
2354
|
+
|
|
2355
|
+
root.classList.add('motion-ready');
|
|
2356
|
+
root.classList.add('js-lf');
|
|
2357
|
+
var groups = [
|
|
2358
|
+
['.decision-hero', 0], ['.hero-insight', 70], ['.brief-block', 55],
|
|
2359
|
+
['.outcome-group', 70], ['.tribunal-card', 75], ['.method-audit-item', 45],
|
|
2360
|
+
['.trace-chain-card', 70], ['.action-node', 60], ['.flow-arrow', 60],
|
|
2361
|
+
['.phase', 60], ['.full-chapter', 35], ['.brief-source', 40]
|
|
2362
|
+
];
|
|
2363
|
+
groups.forEach(function (entry) {
|
|
2364
|
+
document.querySelectorAll(entry[0]).forEach(function (el, index) {
|
|
2365
|
+
el.setAttribute('data-animate', '');
|
|
2366
|
+
el.style.setProperty('--motion-delay', Math.min(index * entry[1], 320) + 'ms');
|
|
2367
|
+
});
|
|
2368
|
+
});
|
|
2369
|
+
document.querySelectorAll('.quality-meter,.balance-track').forEach(function (el, index) {
|
|
2370
|
+
el.style.setProperty('--motion-delay', Math.min((index % 8) * 35, 210) + 'ms');
|
|
2371
|
+
});
|
|
2372
|
+
|
|
2373
|
+
var animated = document.querySelectorAll('[data-animate],.quality-meter,.balance-track,.flow-arrow');
|
|
2374
|
+
if (!('IntersectionObserver' in window)) {
|
|
2375
|
+
animated.forEach(function (el) { el.classList.add('is-visible'); });
|
|
2376
|
+
} else {
|
|
2377
|
+
var observer = new IntersectionObserver(function (entries, obs) {
|
|
2378
|
+
entries.forEach(function (entry) {
|
|
2379
|
+
if (!entry.isIntersecting) return;
|
|
2380
|
+
entry.target.classList.add('is-visible');
|
|
2381
|
+
obs.unobserve(entry.target);
|
|
2382
|
+
});
|
|
2383
|
+
}, {threshold:.12, rootMargin:'0px 0px -6% 0px'});
|
|
2384
|
+
animated.forEach(function (el) { observer.observe(el); });
|
|
2385
|
+
}
|
|
2386
|
+
|
|
2387
|
+
// ---- data-lieflat gallery: reveal on scroll, click to replay ----
|
|
2388
|
+
// Per-container timers (mirrors mono-tokens `keep`): every scheduled
|
|
2389
|
+
// replay step is registered under the container id and cleared before the
|
|
2390
|
+
// next replay so staggered animations never stack on rapid clicking.
|
|
2391
|
+
var lfTimers = {};
|
|
2392
|
+
var lfBoxes = Array.prototype.slice.call(document.querySelectorAll('[data-lieflat]'));
|
|
2393
|
+
lfBoxes.forEach(function (box, index) {
|
|
2394
|
+
var base = (box.dataset.chartId || 'figure');
|
|
2395
|
+
var safe = 'lf-' + index + '-' + (window.CSS && CSS.escape ? CSS.escape(base) : base.replace(/[^a-zA-Z0-9_-]/g, '-'));
|
|
2396
|
+
box.dataset.lfId = safe;
|
|
2397
|
+
if (!box.hasAttribute('aria-label')) {
|
|
2398
|
+
box.setAttribute('aria-label', 'Lieflat chart — click to replay the reveal animation');
|
|
2399
|
+
}
|
|
2400
|
+
});
|
|
2401
|
+
|
|
2402
|
+
function clearLfTimers(id) {
|
|
2403
|
+
(lfTimers[id] || []).forEach(function (t) { if (t) clearTimeout(t); });
|
|
2404
|
+
lfTimers[id] = [];
|
|
2405
|
+
}
|
|
2406
|
+
|
|
2407
|
+
// Entrance choreography: cards revealed shortly after load (already in the
|
|
2408
|
+
// viewport) get a short visual stagger so the draw-in is actually seen —
|
|
2409
|
+
// without this, the load-time reveal finishes before the user looks and the
|
|
2410
|
+
// charts appear static until clicked. Scrolled-in and click reveals play
|
|
2411
|
+
// immediately.
|
|
2412
|
+
var bootTime = Date.now();
|
|
2413
|
+
function revealDelay(box, index) {
|
|
2414
|
+
var fresh = Date.now() - bootTime < 1500;
|
|
2415
|
+
if (!fresh) return 40;
|
|
2416
|
+
return 140 + ((index % 6) * 130);
|
|
2417
|
+
}
|
|
2418
|
+
|
|
2419
|
+
function replayLieflat(box, delay) {
|
|
2420
|
+
var id = box.dataset.lfId;
|
|
2421
|
+
delay = (delay === undefined ? 40 : delay);
|
|
2422
|
+
clearLfTimers(id);
|
|
2423
|
+
box.classList.remove('is-live');
|
|
2424
|
+
// force reflow so the re-added class restarts the CSS animations
|
|
2425
|
+
void box.offsetWidth;
|
|
2426
|
+
var tid = setTimeout(function () {
|
|
2427
|
+
box.classList.add('is-live');
|
|
2428
|
+
lfTimers[id] = lfTimers[id].filter(function (t) { return t !== tid; });
|
|
2429
|
+
}, delay);
|
|
2430
|
+
lfTimers[id].push(tid);
|
|
2431
|
+
}
|
|
2432
|
+
|
|
2433
|
+
if (!('IntersectionObserver' in window)) {
|
|
2434
|
+
lfBoxes.forEach(function (box) { box.classList.add('is-live'); });
|
|
2435
|
+
} else {
|
|
2436
|
+
var lfObserver = new IntersectionObserver(function (entries, obs) {
|
|
2437
|
+
entries.forEach(function (entry) {
|
|
2438
|
+
if (!entry.isIntersecting) return;
|
|
2439
|
+
var index = lfBoxes.indexOf(entry.target);
|
|
2440
|
+
replayLieflat(entry.target, revealDelay(entry.target, index));
|
|
2441
|
+
obs.unobserve(entry.target);
|
|
2442
|
+
});
|
|
2443
|
+
}, {threshold:.3});
|
|
2444
|
+
lfBoxes.forEach(function (box) { lfObserver.observe(box); });
|
|
2445
|
+
}
|
|
2446
|
+
lfBoxes.forEach(function (box, index) {
|
|
2447
|
+
box.addEventListener('click', function () { replayLieflat(box, 0); });
|
|
2448
|
+
});
|
|
2449
|
+
})();
|
|
2450
|
+
|
|
2451
|
+
</script>
|
|
2452
|
+
<script>
|
|
2453
|
+
|
|
2454
|
+
(function () {
|
|
2455
|
+
'use strict';
|
|
2456
|
+
var root = document.documentElement;
|
|
2457
|
+
// ---- Language switcher (zh / en) ----
|
|
2458
|
+
function applyLang(lang) {
|
|
2459
|
+
document.querySelectorAll('.report-shell[data-lang-body]').forEach(function (shell) {
|
|
2460
|
+
shell.style.display = shell.dataset.langBody === lang ? '' : 'none';
|
|
2461
|
+
});
|
|
2462
|
+
document.documentElement.lang = lang === 'en' ? 'en' : 'zh-CN';
|
|
2463
|
+
document.querySelectorAll('.lang-btn').forEach(function (b) {
|
|
2464
|
+
var active = b.dataset.langTarget === lang;
|
|
2465
|
+
b.classList.toggle('active', active);
|
|
2466
|
+
b.setAttribute('aria-pressed', active ? 'true' : 'false');
|
|
2467
|
+
});
|
|
2468
|
+
var langLabel = document.querySelector('[data-lang-label]');
|
|
2469
|
+
if (langLabel) {
|
|
2470
|
+
langLabel.textContent = lang === 'en' ? langLabel.dataset.en : langLabel.dataset.zh;
|
|
2471
|
+
}
|
|
2472
|
+
Object.keys(window.eduevidenceCharts || {}).forEach(function (id) {
|
|
2473
|
+
var ch = window.eduevidenceCharts[id];
|
|
2474
|
+
if (ch && ch.resize) ch.resize();
|
|
2475
|
+
});
|
|
2476
|
+
try { localStorage.setItem('eduevidence-lang', lang); } catch (e) {}
|
|
2477
|
+
}
|
|
2478
|
+
var savedLang = null;
|
|
2479
|
+
try { savedLang = localStorage.getItem('eduevidence-lang'); } catch (e) {}
|
|
2480
|
+
var queryLang = new URLSearchParams(window.location.search).get('lang');
|
|
2481
|
+
applyLang((queryLang || savedLang) === 'en' ? 'en' : 'zh');
|
|
2482
|
+
document.querySelectorAll('.lang-btn').forEach(function (btn) {
|
|
2483
|
+
btn.addEventListener('click', function () { applyLang(btn.dataset.langTarget); });
|
|
2484
|
+
});
|
|
2485
|
+
|
|
2486
|
+
// ---- Top-level Visual Brief / Full Report pagination ----
|
|
2487
|
+
function applyReportView(view) {
|
|
2488
|
+
view = view === 'full' ? 'full' : 'brief';
|
|
2489
|
+
document.querySelectorAll('.report-page[data-report-page]').forEach(function (page) {
|
|
2490
|
+
page.hidden = page.dataset.reportPage !== view;
|
|
2491
|
+
});
|
|
2492
|
+
document.querySelectorAll('.report-view-btn').forEach(function (btn) {
|
|
2493
|
+
var active = btn.dataset.reportView === view;
|
|
2494
|
+
btn.classList.toggle('active', active);
|
|
2495
|
+
btn.setAttribute('aria-pressed', active ? 'true' : 'false');
|
|
2496
|
+
});
|
|
2497
|
+
root.dataset.reportView = view;
|
|
2498
|
+
try { localStorage.setItem('eduevidence-report-view', view); } catch (e) {}
|
|
2499
|
+
}
|
|
2500
|
+
var savedView = null;
|
|
2501
|
+
try { savedView = localStorage.getItem('eduevidence-report-view'); } catch (e) {}
|
|
2502
|
+
var queryView = new URLSearchParams(window.location.search).get('view');
|
|
2503
|
+
applyReportView((queryView || savedView) === 'full' ? 'full' : 'brief');
|
|
2504
|
+
document.querySelectorAll('.report-view-btn').forEach(function (btn) {
|
|
2505
|
+
btn.addEventListener('click', function () { applyReportView(btn.dataset.reportView); });
|
|
2506
|
+
});
|
|
2507
|
+
|
|
2508
|
+
// ---- Collapsible Full Report TOC ----
|
|
2509
|
+
document.querySelectorAll('.full-report-layout').forEach(function (layout) {
|
|
2510
|
+
var button = layout.querySelector('.toc-collapse');
|
|
2511
|
+
if (!button) return;
|
|
2512
|
+
button.addEventListener('click', function () {
|
|
2513
|
+
var collapsed = layout.classList.toggle('toc-collapsed');
|
|
2514
|
+
button.setAttribute('aria-expanded', collapsed ? 'false' : 'true');
|
|
2515
|
+
button.textContent = collapsed ? button.dataset.labelExpand : button.dataset.labelCollapse;
|
|
2516
|
+
});
|
|
2517
|
+
});
|
|
2518
|
+
|
|
2519
|
+
// ---- TOC active chapter tracking ----
|
|
2520
|
+
if ('IntersectionObserver' in window) {
|
|
2521
|
+
document.querySelectorAll('.report-shell').forEach(function (shell) {
|
|
2522
|
+
var links = Array.from(shell.querySelectorAll('[data-toc-target]'));
|
|
2523
|
+
if (!links.length) return;
|
|
2524
|
+
var sections = links.map(function (link) { return shell.querySelector('#' + CSS.escape(link.dataset.tocTarget)); }).filter(Boolean);
|
|
2525
|
+
var activeObserver = new IntersectionObserver(function (entries) {
|
|
2526
|
+
var visible = entries.filter(function (entry) { return entry.isIntersecting; })
|
|
2527
|
+
.sort(function (a,b) { return a.boundingClientRect.top - b.boundingClientRect.top; });
|
|
2528
|
+
if (!visible.length) return;
|
|
2529
|
+
var id = visible[0].target.id;
|
|
2530
|
+
links.forEach(function (link) { link.classList.toggle('active', link.dataset.tocTarget === id); });
|
|
2531
|
+
}, {rootMargin:'-12% 0px -72% 0px', threshold:[0,0.01]});
|
|
2532
|
+
sections.forEach(function (section) { activeObserver.observe(section); });
|
|
2533
|
+
});
|
|
2534
|
+
}
|
|
2535
|
+
|
|
2536
|
+
// ---- Evidence matrix filter / search ----
|
|
2537
|
+
function bindMatrix(matrix) {
|
|
2538
|
+
var suffix = matrix.id.replace(/^evidence-matrix-/, '');
|
|
2539
|
+
var search = document.getElementById('matrix-search-' + suffix);
|
|
2540
|
+
var dirSel = document.getElementById('matrix-direction-' + suffix);
|
|
2541
|
+
var outSel = document.getElementById('matrix-outcome-' + suffix);
|
|
2542
|
+
var rows = matrix.querySelectorAll('tbody tr');
|
|
2543
|
+
function applyFilter() {
|
|
2544
|
+
var q = (search && search.value || '').toLowerCase();
|
|
2545
|
+
var d = dirSel ? dirSel.value : '';
|
|
2546
|
+
var o = outSel ? outSel.value : '';
|
|
2547
|
+
rows.forEach(function (row) {
|
|
2548
|
+
var haystack = (row.dataset.search || row.textContent || '').toLowerCase();
|
|
2549
|
+
var direction = row.dataset.direction || row.dataset.effect || '';
|
|
2550
|
+
var outcome = row.dataset.outcome || '';
|
|
2551
|
+
var show = (!q || haystack.indexOf(q) >= 0)
|
|
2552
|
+
&& (!d || direction === d) && (!o || outcome === o);
|
|
2553
|
+
row.style.display = show ? '' : 'none';
|
|
2554
|
+
});
|
|
2555
|
+
}
|
|
2556
|
+
if (search) search.addEventListener('input', applyFilter);
|
|
2557
|
+
if (dirSel) dirSel.addEventListener('change', applyFilter);
|
|
2558
|
+
if (outSel) outSel.addEventListener('change', applyFilter);
|
|
2559
|
+
}
|
|
2560
|
+
document.querySelectorAll('table[id^=evidence-matrix-]').forEach(bindMatrix);
|
|
2561
|
+
|
|
2562
|
+
// ---- Motion preference is owned by the fixed Motion Template. ----
|
|
2563
|
+
var reduceMotion = !!window.__EDUEVIDENCE_REDUCE_MOTION__ ||
|
|
2564
|
+
!!(window.matchMedia && window.matchMedia('(prefers-reduced-motion: reduce)').matches);
|
|
2565
|
+
|
|
2566
|
+
// ---- ECharts enhancer (only when window.echarts exists) ----
|
|
2567
|
+
// 成功 init 后给容器加 .is-mounted 才显示(6.2:无 ECharts 时不占空白高度)
|
|
2568
|
+
function mountChart(containerId, spec) {
|
|
2569
|
+
var el = document.getElementById(containerId);
|
|
2570
|
+
if (!el || typeof window.echarts === 'undefined') return;
|
|
2571
|
+
var chart = window.echarts.init(el);
|
|
2572
|
+
var option = Object.assign({}, spec.option || {});
|
|
2573
|
+
option.animation = !reduceMotion;
|
|
2574
|
+
if (!reduceMotion) {
|
|
2575
|
+
option.animationDuration = 650;
|
|
2576
|
+
option.animationDurationUpdate = 420;
|
|
2577
|
+
option.animationEasing = 'cubicOut';
|
|
2578
|
+
option.animationEasingUpdate = 'cubicOut';
|
|
2579
|
+
}
|
|
2580
|
+
chart.setOption(option);
|
|
2581
|
+
el.classList.add('is-mounted');
|
|
2582
|
+
window.eduevidenceCharts = window.eduevidenceCharts || {};
|
|
2583
|
+
window.eduevidenceCharts[containerId] = chart;
|
|
2584
|
+
}
|
|
2585
|
+
mountChart('chart-outcome-zh', {"chart_id": "outcome-evidence-overview", "purpose": "interactive_analysis", "engine": "echarts", "chart_type": "diverging_bar", "semantic_basis": "effect_direction", "title": "结果证据概览", "option": {"tooltip": {"trigger": "axis"}, "legend": {"data": ["正向效应", "负向效应", "零效应"]}, "grid": [{"left": 150, "right": 40, "top": 30, "height": "52%"}, {"left": 150, "right": 40, "top": "70%", "height": "18%"}], "xAxis": [{"type": "value", "gridIndex": 0, "minInterval": 1}, {"type": "value", "gridIndex": 1, "min": 0, "max": 4, "minInterval": 1}], "yAxis": [{"type": "category", "data": ["记忆保持", "迁移能力"], "inverse": true, "gridIndex": 0}, {"type": "category", "data": ["记忆保持", "迁移能力"], "inverse": true, "gridIndex": 1, "show": false}], "series": [{"name": "正向效应", "type": "bar", "data": [4, 1], "itemStyle": {"color": "#5E8A6A"}, "xAxisIndex": 0, "yAxisIndex": 0, "lane": "main"}, {"name": "负向效应", "type": "bar", "data": [0, 0], "itemStyle": {"color": "#A85B53"}, "xAxisIndex": 0, "yAxisIndex": 0, "lane": "main"}, {"name": "零效应", "type": "bar", "data": [1, 0], "itemStyle": {"color": "#C99A4A"}, "xAxisIndex": 1, "yAxisIndex": 1, "barWidth": 6, "lane": "neutral"}]}, "summary_text": "各 Outcome 的正向 / 负向 / 零效应证据条数对比。这里展示的是 effect_direction,不是“这条证据是否支持某个主张”。", "integrity": {"numbers_match_result": "NOT_CHECKED", "no_axis_distortion": "NOT_CHECKED", "no_false_precision": "NOT_CHECKED", "colorblind_safe": "NOT_CHECKED"}});
|
|
2586
|
+
mountChart('chart-trace-zh', {"chart_id": "claim-evidence-trace", "purpose": "interactive_analysis", "engine": "echarts", "chart_type": "graph", "title": "主张-证据追溯", "option": {"tooltip": {"trigger": "item"}, "legend": {"data": ["Decision", "Claim", "Evidence", "Source"]}, "series": [{"type": "graph", "layout": "force", "roam": true, "draggable": true, "categories": [{"name": "Decision"}, {"name": "Claim"}, {"name": "Evidence"}, {"name": "Source"}], "data": [{"id": "decision", "name": "ADOPT", "category": 0}, {"id": "claim-0", "name": "", "category": 1}, {"id": "E-001", "name": "E-001", "category": 2}, {"id": "S-KARPICKE-EXPANDING-RETRIEVAL-PRACTICE", "name": "S-KARPICKE-EXPANDING-RETRIEVAL-PRACTICE", "category": 3}, {"id": "E-002", "name": "E-002", "category": 2}, {"id": "S-SMITH-COVERT-RETRIEVAL-PRACTICE", "name": "S-SMITH-COVERT-RETRIEVAL-PRACTICE", "category": 3}, {"id": "E-003", "name": "E-003", "category": 2}, {"id": "S-HOPKINS-SPACED-RETRIEVAL-PRACTICE", "name": "S-HOPKINS-SPACED-RETRIEVAL-PRACTICE", "category": 3}, {"id": "E-004", "name": "E-004", "category": 2}, {"id": "S-AZZAM-RETRIEVAL-PRACTICE-IMPROVING", "name": "S-AZZAM-RETRIEVAL-PRACTICE-IMPROVING", "category": 3}, {"id": "claim-1", "name": "", "category": 1}, {"id": "E-005", "name": "E-005", "category": 2}, {"id": "S-ROWLAND-MNEMONIC-BENEFITS-RETRIEVAL", "name": "S-ROWLAND-MNEMONIC-BENEFITS-RETRIEVAL", "category": 3}, {"id": "claim-2", "name": "", "category": 1}, {"id": "E-006", "name": "E-006", "category": 2}, {"id": "S-ZHENG-PRACTICING-MORE-RETRIEVAL", "name": "S-ZHENG-PRACTICING-MORE-RETRIEVAL", "category": 3}], "links": [{"source": "decision", "target": "claim-0"}, {"source": "claim-0", "target": "E-001", "label": "neutral", "lineStyle": {"color": "#C99A4A"}}, {"source": "E-001", "target": "S-KARPICKE-EXPANDING-RETRIEVAL-PRACTICE"}, {"source": "claim-0", "target": "E-002", "label": "neutral", "lineStyle": {"color": "#C99A4A"}}, {"source": "E-002", "target": "S-SMITH-COVERT-RETRIEVAL-PRACTICE"}, {"source": "claim-0", "target": "E-003", "label": "neutral", "lineStyle": {"color": "#C99A4A"}}, {"source": "E-003", "target": "S-HOPKINS-SPACED-RETRIEVAL-PRACTICE"}, {"source": "claim-0", "target": "E-004", "label": "neutral", "lineStyle": {"color": "#C99A4A"}}, {"source": "E-004", "target": "S-AZZAM-RETRIEVAL-PRACTICE-IMPROVING"}, {"source": "decision", "target": "claim-1"}, {"source": "claim-1", "target": "E-004", "label": "neutral", "lineStyle": {"color": "#C99A4A"}}, {"source": "E-004", "target": "S-AZZAM-RETRIEVAL-PRACTICE-IMPROVING"}, {"source": "claim-1", "target": "E-005", "label": "neutral", "lineStyle": {"color": "#C99A4A"}}, {"source": "E-005", "target": "S-ROWLAND-MNEMONIC-BENEFITS-RETRIEVAL"}, {"source": "decision", "target": "claim-2"}, {"source": "claim-2", "target": "E-006", "label": "neutral", "lineStyle": {"color": "#C99A4A"}}, {"source": "E-006", "target": "S-ZHENG-PRACTICING-MORE-RETRIEVAL"}], "label": {"show": true, "position": "right", "fontSize": 9}, "lineStyle": {"curveness": 0.15}}]}, "summary_text": "决策→结论→证据→来源 的可追溯图谱;点击节点可追踪支持/反驳路径。", "integrity": {"numbers_match_result": "NOT_CHECKED", "no_axis_distortion": "NOT_CHECKED", "no_false_precision": "NOT_CHECKED", "colorblind_safe": "NOT_CHECKED"}});
|
|
2587
|
+
mountChart('chart-benchmark-zh', {"chart_id": "benchmark-panel", "purpose": "interactive_analysis", "engine": "echarts", "chart_type": "composite", "title": "基准测试:B0-B4", "option": {"tooltip": {"trigger": "axis"}, "legend": {"data": ["Citation Support", "Unsupported Rate", "Contradiction"]}, "grid": {"left": 60, "right": 40}, "xAxis": {"type": "category", "data": []}, "yAxis": {"type": "value", "max": 1, "min": 0}, "series": [{"name": "Citation Support", "type": "bar", "data": []}, {"name": "Unsupported Rate", "type": "bar", "data": []}, {"name": "Contradiction", "type": "bar", "data": []}]}, "cost_vs_quality": {"chart_id": "benchmark-quality-cost", "purpose": "interactive_analysis", "engine": "echarts", "chart_type": "scatter", "title": "质量 vs 成本", "option": {"tooltip": {"trigger": "item"}, "xAxis": {"type": "value", "name": "cost (USD)", "min": 0}, "yAxis": {"type": "value", "name": "citation support", "min": 0, "max": 1}, "series": [{"type": "scatter", "data": []}]}}, "summary_text": "B0-B4 基线在引用支持/无支撑率/反方发现上的对比及质量-成本散点。", "integrity": {"numbers_match_result": "NOT_CHECKED", "no_axis_distortion": "NOT_CHECKED", "no_false_precision": "NOT_CHECKED", "colorblind_safe": "NOT_CHECKED"}});
|
|
2588
|
+
mountChart('chart-outcome-en', {"chart_id": "outcome-evidence-overview", "purpose": "interactive_analysis", "engine": "echarts", "chart_type": "diverging_bar", "semantic_basis": "effect_direction", "title": "Outcome Evidence Overview", "option": {"tooltip": {"trigger": "axis"}, "legend": {"data": ["Positive effect", "Negative effect", "Null effect"]}, "grid": [{"left": 150, "right": 40, "top": 30, "height": "52%"}, {"left": 150, "right": 40, "top": "70%", "height": "18%"}], "xAxis": [{"type": "value", "gridIndex": 0, "minInterval": 1}, {"type": "value", "gridIndex": 1, "min": 0, "max": 4, "minInterval": 1}], "yAxis": [{"type": "category", "data": ["Retention", "Transfer"], "inverse": true, "gridIndex": 0}, {"type": "category", "data": ["Retention", "Transfer"], "inverse": true, "gridIndex": 1, "show": false}], "series": [{"name": "Positive effect", "type": "bar", "data": [4, 1], "itemStyle": {"color": "#5E8A6A"}, "xAxisIndex": 0, "yAxisIndex": 0, "lane": "main"}, {"name": "Negative effect", "type": "bar", "data": [0, 0], "itemStyle": {"color": "#A85B53"}, "xAxisIndex": 0, "yAxisIndex": 0, "lane": "main"}, {"name": "Null effect", "type": "bar", "data": [1, 0], "itemStyle": {"color": "#C99A4A"}, "xAxisIndex": 1, "yAxisIndex": 1, "barWidth": 6, "lane": "neutral"}]}, "summary_text": "Positive / negative / null effect-direction evidence counts per outcome. This visual encodes effect_direction, not whether evidence supports a claim.", "integrity": {"numbers_match_result": "NOT_CHECKED", "no_axis_distortion": "NOT_CHECKED", "no_false_precision": "NOT_CHECKED", "colorblind_safe": "NOT_CHECKED"}});
|
|
2589
|
+
mountChart('chart-trace-en', {"chart_id": "claim-evidence-trace", "purpose": "interactive_analysis", "engine": "echarts", "chart_type": "graph", "title": "Claim-Evidence Trace", "option": {"tooltip": {"trigger": "item"}, "legend": {"data": ["Decision", "Claim", "Evidence", "Source"]}, "series": [{"type": "graph", "layout": "force", "roam": true, "draggable": true, "categories": [{"name": "Decision"}, {"name": "Claim"}, {"name": "Evidence"}, {"name": "Source"}], "data": [{"id": "decision", "name": "ADOPT", "category": 0}, {"id": "claim-0", "name": "", "category": 1}, {"id": "E-001", "name": "E-001", "category": 2}, {"id": "S-KARPICKE-EXPANDING-RETRIEVAL-PRACTICE", "name": "S-KARPICKE-EXPANDING-RETRIEVAL-PRACTICE", "category": 3}, {"id": "E-002", "name": "E-002", "category": 2}, {"id": "S-SMITH-COVERT-RETRIEVAL-PRACTICE", "name": "S-SMITH-COVERT-RETRIEVAL-PRACTICE", "category": 3}, {"id": "E-003", "name": "E-003", "category": 2}, {"id": "S-HOPKINS-SPACED-RETRIEVAL-PRACTICE", "name": "S-HOPKINS-SPACED-RETRIEVAL-PRACTICE", "category": 3}, {"id": "E-004", "name": "E-004", "category": 2}, {"id": "S-AZZAM-RETRIEVAL-PRACTICE-IMPROVING", "name": "S-AZZAM-RETRIEVAL-PRACTICE-IMPROVING", "category": 3}, {"id": "claim-1", "name": "", "category": 1}, {"id": "E-005", "name": "E-005", "category": 2}, {"id": "S-ROWLAND-MNEMONIC-BENEFITS-RETRIEVAL", "name": "S-ROWLAND-MNEMONIC-BENEFITS-RETRIEVAL", "category": 3}, {"id": "claim-2", "name": "", "category": 1}, {"id": "E-006", "name": "E-006", "category": 2}, {"id": "S-ZHENG-PRACTICING-MORE-RETRIEVAL", "name": "S-ZHENG-PRACTICING-MORE-RETRIEVAL", "category": 3}], "links": [{"source": "decision", "target": "claim-0"}, {"source": "claim-0", "target": "E-001", "label": "neutral", "lineStyle": {"color": "#C99A4A"}}, {"source": "E-001", "target": "S-KARPICKE-EXPANDING-RETRIEVAL-PRACTICE"}, {"source": "claim-0", "target": "E-002", "label": "neutral", "lineStyle": {"color": "#C99A4A"}}, {"source": "E-002", "target": "S-SMITH-COVERT-RETRIEVAL-PRACTICE"}, {"source": "claim-0", "target": "E-003", "label": "neutral", "lineStyle": {"color": "#C99A4A"}}, {"source": "E-003", "target": "S-HOPKINS-SPACED-RETRIEVAL-PRACTICE"}, {"source": "claim-0", "target": "E-004", "label": "neutral", "lineStyle": {"color": "#C99A4A"}}, {"source": "E-004", "target": "S-AZZAM-RETRIEVAL-PRACTICE-IMPROVING"}, {"source": "decision", "target": "claim-1"}, {"source": "claim-1", "target": "E-004", "label": "neutral", "lineStyle": {"color": "#C99A4A"}}, {"source": "E-004", "target": "S-AZZAM-RETRIEVAL-PRACTICE-IMPROVING"}, {"source": "claim-1", "target": "E-005", "label": "neutral", "lineStyle": {"color": "#C99A4A"}}, {"source": "E-005", "target": "S-ROWLAND-MNEMONIC-BENEFITS-RETRIEVAL"}, {"source": "decision", "target": "claim-2"}, {"source": "claim-2", "target": "E-006", "label": "neutral", "lineStyle": {"color": "#C99A4A"}}, {"source": "E-006", "target": "S-ZHENG-PRACTICING-MORE-RETRIEVAL"}], "label": {"show": true, "position": "right", "fontSize": 9}, "lineStyle": {"curveness": 0.15}}]}, "summary_text": "Traceable graph Decision → Claim → Evidence → Source; click nodes to follow support/contradict paths.", "integrity": {"numbers_match_result": "NOT_CHECKED", "no_axis_distortion": "NOT_CHECKED", "no_false_precision": "NOT_CHECKED", "colorblind_safe": "NOT_CHECKED"}});
|
|
2590
|
+
mountChart('chart-benchmark-en', {"chart_id": "benchmark-panel", "purpose": "interactive_analysis", "engine": "echarts", "chart_type": "composite", "title": "Benchmark: B0-B4", "option": {"tooltip": {"trigger": "axis"}, "legend": {"data": ["Citation Support", "Unsupported Rate", "Contradiction"]}, "grid": {"left": 60, "right": 40}, "xAxis": {"type": "category", "data": []}, "yAxis": {"type": "value", "max": 1, "min": 0}, "series": [{"name": "Citation Support", "type": "bar", "data": []}, {"name": "Unsupported Rate", "type": "bar", "data": []}, {"name": "Contradiction", "type": "bar", "data": []}]}, "cost_vs_quality": {"chart_id": "benchmark-quality-cost", "purpose": "interactive_analysis", "engine": "echarts", "chart_type": "scatter", "title": "Quality vs Cost", "option": {"tooltip": {"trigger": "item"}, "xAxis": {"type": "value", "name": "cost (USD)", "min": 0}, "yAxis": {"type": "value", "name": "citation support", "min": 0, "max": 1}, "series": [{"type": "scatter", "data": []}]}}, "summary_text": "B0-B4 baselines compared on citation support, unsupported rate and contradiction discovery, plus the quality-cost scatter.", "integrity": {"numbers_match_result": "NOT_CHECKED", "no_axis_distortion": "NOT_CHECKED", "no_false_precision": "NOT_CHECKED", "colorblind_safe": "NOT_CHECKED"}});
|
|
2591
|
+
})();
|
|
2592
|
+
|
|
2593
|
+
/* Offline reader: navigation and display only; no research state mutations. */
|
|
2594
|
+
(function () {
|
|
2595
|
+
"use strict";
|
|
2596
|
+
var root = document.documentElement;
|
|
2597
|
+
var copy = {
|
|
2598
|
+
zh: {
|
|
2599
|
+
brief: "\u6458\u8981",
|
|
2600
|
+
full: "\u5b8c\u6574\u62a5\u544a",
|
|
2601
|
+
print: "\u6253\u5370",
|
|
2602
|
+
matched: "\u6761\u8bc1\u636e",
|
|
2603
|
+
},
|
|
2604
|
+
en: {
|
|
2605
|
+
brief: "Brief",
|
|
2606
|
+
full: "Full report",
|
|
2607
|
+
print: "Print",
|
|
2608
|
+
matched: "findings",
|
|
2609
|
+
},
|
|
2610
|
+
};
|
|
2611
|
+
function labels() {
|
|
2612
|
+
var lang = root.lang.indexOf("en") === 0 ? "en" : "zh";
|
|
2613
|
+
document.querySelectorAll("[data-copy]").forEach(function (el) {
|
|
2614
|
+
el.textContent = copy[lang][el.dataset.copy];
|
|
2615
|
+
});
|
|
2616
|
+
}
|
|
2617
|
+
labels();
|
|
2618
|
+
new MutationObserver(labels).observe(root, {
|
|
2619
|
+
attributes: true,
|
|
2620
|
+
attributeFilter: ["lang"],
|
|
2621
|
+
});
|
|
2622
|
+
document.querySelectorAll(".reader-print").forEach(function (b) {
|
|
2623
|
+
b.addEventListener("click", function () {
|
|
2624
|
+
window.print();
|
|
2625
|
+
});
|
|
2626
|
+
});
|
|
2627
|
+
document.querySelectorAll(".reader-home").forEach(function (a) {
|
|
2628
|
+
a.addEventListener("click", function (e) {
|
|
2629
|
+
e.preventDefault();
|
|
2630
|
+
window.scrollTo({ top: 0, behavior: "instant" });
|
|
2631
|
+
});
|
|
2632
|
+
});
|
|
2633
|
+
var scheduled = false;
|
|
2634
|
+
function progress() {
|
|
2635
|
+
scheduled = false;
|
|
2636
|
+
var max = document.documentElement.scrollHeight - window.innerHeight;
|
|
2637
|
+
var fraction = max > 0 ? Math.min(1, Math.max(0, window.scrollY / max)) : 0;
|
|
2638
|
+
var bar = document.querySelector(".reader-progress>span");
|
|
2639
|
+
if (bar) bar.style.transform = "scaleX(" + fraction + ")";
|
|
2640
|
+
var shell = Array.from(document.querySelectorAll(".report-shell")).find(
|
|
2641
|
+
function (s) {
|
|
2642
|
+
return getComputedStyle(s).display !== "none";
|
|
2643
|
+
},
|
|
2644
|
+
);
|
|
2645
|
+
if (!shell) return;
|
|
2646
|
+
var blocks = Array.from(shell.querySelectorAll(".brief-block[id]"));
|
|
2647
|
+
var current = blocks
|
|
2648
|
+
.filter(function (b) {
|
|
2649
|
+
return b.getBoundingClientRect().top < 150;
|
|
2650
|
+
})
|
|
2651
|
+
.pop();
|
|
2652
|
+
shell.querySelectorAll(".brief-navigation a").forEach(function (a) {
|
|
2653
|
+
var active = current && a.hash === "#" + current.id;
|
|
2654
|
+
a.classList.toggle("active", !!active);
|
|
2655
|
+
if (active) a.setAttribute("aria-current", "location");
|
|
2656
|
+
else a.removeAttribute("aria-current");
|
|
2657
|
+
});
|
|
2658
|
+
}
|
|
2659
|
+
function queue() {
|
|
2660
|
+
if (!scheduled) {
|
|
2661
|
+
scheduled = true;
|
|
2662
|
+
requestAnimationFrame(progress);
|
|
2663
|
+
}
|
|
2664
|
+
}
|
|
2665
|
+
window.addEventListener("scroll", queue, { passive: true });
|
|
2666
|
+
window.addEventListener("resize", queue);
|
|
2667
|
+
document.addEventListener("click", queue);
|
|
2668
|
+
progress();
|
|
2669
|
+
document.querySelectorAll(".report-view-btn").forEach(function (btn) {
|
|
2670
|
+
btn.addEventListener("click", function () {
|
|
2671
|
+
window.scrollTo({ top: 0, behavior: "instant" });
|
|
2672
|
+
});
|
|
2673
|
+
});
|
|
2674
|
+
document
|
|
2675
|
+
.querySelectorAll(".table-wrap,.evidence-to-action")
|
|
2676
|
+
.forEach(function (el) {
|
|
2677
|
+
el.tabIndex = 0;
|
|
2678
|
+
el.setAttribute("role", "region");
|
|
2679
|
+
el.setAttribute(
|
|
2680
|
+
"aria-label",
|
|
2681
|
+
root.lang.indexOf("en") === 0
|
|
2682
|
+
? "Scrollable data table"
|
|
2683
|
+
: "\u53ef\u6eda\u52a8\u6570\u636e\u8868",
|
|
2684
|
+
);
|
|
2685
|
+
});
|
|
2686
|
+
document
|
|
2687
|
+
.querySelectorAll('table[id^="evidence-matrix-"]')
|
|
2688
|
+
.forEach(function (table) {
|
|
2689
|
+
var suffix = table.id.replace(/^evidence-matrix-/, "");
|
|
2690
|
+
var counter = document.createElement("p");
|
|
2691
|
+
counter.className = "reader-filter-count";
|
|
2692
|
+
counter.setAttribute("role", "status");
|
|
2693
|
+
counter.setAttribute("aria-live", "polite");
|
|
2694
|
+
table.parentElement.insertAdjacentElement("beforebegin", counter);
|
|
2695
|
+
function count() {
|
|
2696
|
+
var rows = Array.from(table.querySelectorAll("tbody tr"));
|
|
2697
|
+
var visible = rows.filter(function (r) {
|
|
2698
|
+
return r.style.display !== "none";
|
|
2699
|
+
}).length;
|
|
2700
|
+
counter.textContent =
|
|
2701
|
+
visible +
|
|
2702
|
+
" / " +
|
|
2703
|
+
rows.length +
|
|
2704
|
+
" " +
|
|
2705
|
+
copy[suffix.endsWith("en") ? "en" : "zh"].matched;
|
|
2706
|
+
}
|
|
2707
|
+
["matrix-search-", "matrix-direction-", "matrix-outcome-"].forEach(
|
|
2708
|
+
function (prefix) {
|
|
2709
|
+
var input = document.getElementById(prefix + suffix);
|
|
2710
|
+
if (input) {
|
|
2711
|
+
input.addEventListener("input", count);
|
|
2712
|
+
input.addEventListener("change", count);
|
|
2713
|
+
}
|
|
2714
|
+
},
|
|
2715
|
+
);
|
|
2716
|
+
count();
|
|
2717
|
+
});
|
|
2718
|
+
document
|
|
2719
|
+
.querySelectorAll('a[href^="http:"] , a[href^="https:"]')
|
|
2720
|
+
.forEach(function (a) {
|
|
2721
|
+
a.target = "_blank";
|
|
2722
|
+
a.rel = "noopener noreferrer";
|
|
2723
|
+
});
|
|
2724
|
+
})();
|
|
2725
|
+
|
|
2726
|
+
</script>
|
|
2727
|
+
</body>
|
|
2728
|
+
</html>
|