{
  "schemaVersion": 1,
  "entries": [
    {
      "id": "chg_cli_channels_logs",
      "changeId": "chg_cli_channels_logs",
      "date": "2026-07-30T00:00:00.000Z",
      "courseId": "openclaw-cli-essentials",
      "lessonIds": [
        "openclaw-cli-essentials.channels-logs"
      ],
      "changeType": "structure",
      "learnerImpact": "Publishes independently reviewed, evidence-led CLI diagnostics instruction with an explicit action boundary.",
      "sourceUrls": [
        "https://github.com/openclaw/openclaw/blob/1237c0cf8157a6ad4a900d6b165ea8c830449e78/docs/cli/channels.md"
      ],
      "receiptId": "rr_cli_channels_logs",
      "breakingForLearner": false,
      "author": "academy-editorial",
      "reviewer": "academy-editorial"
    },
    {
      "id": "chg_cli_command_discovery",
      "changeId": "chg_cli_command_discovery",
      "date": "2026-07-30T00:00:00.000Z",
      "courseId": "openclaw-cli-essentials",
      "lessonIds": [
        "openclaw-cli-essentials.command-discovery"
      ],
      "changeType": "structure",
      "learnerImpact": "Publishes independently reviewed, evidence-led CLI diagnostics instruction with an explicit action boundary.",
      "sourceUrls": [
        "https://github.com/openclaw/openclaw/blob/1237c0cf8157a6ad4a900d6b165ea8c830449e78/docs/cli/index.md"
      ],
      "receiptId": "rr_cli_command_discovery",
      "breakingForLearner": false,
      "author": "academy-editorial",
      "reviewer": "academy-editorial"
    },
    {
      "id": "chg_cli_config_inspection",
      "changeId": "chg_cli_config_inspection",
      "date": "2026-07-30T00:00:00.000Z",
      "courseId": "openclaw-cli-essentials",
      "lessonIds": [
        "openclaw-cli-essentials.config-inspection"
      ],
      "changeType": "structure",
      "learnerImpact": "Publishes independently reviewed, evidence-led CLI diagnostics instruction with an explicit action boundary.",
      "sourceUrls": [
        "https://github.com/openclaw/openclaw/blob/1237c0cf8157a6ad4a900d6b165ea8c830449e78/docs/cli/config.md"
      ],
      "receiptId": "rr_cli_config_inspection",
      "breakingForLearner": false,
      "author": "academy-editorial",
      "reviewer": "academy-editorial"
    },
    {
      "id": "chg_cli_diagnostic_capstone",
      "changeId": "chg_cli_diagnostic_capstone",
      "date": "2026-07-30T00:00:00.000Z",
      "courseId": "openclaw-cli-essentials",
      "lessonIds": [
        "openclaw-cli-essentials.diagnostic-capstone"
      ],
      "changeType": "assessment",
      "learnerImpact": "Publishes independently reviewed, evidence-led CLI diagnostics instruction with an explicit action boundary.",
      "sourceUrls": [
        "https://github.com/openclaw/openclaw/blob/1237c0cf8157a6ad4a900d6b165ea8c830449e78/docs/cli/health.md"
      ],
      "receiptId": "rr_cli_diagnostic_capstone",
      "breakingForLearner": false,
      "author": "academy-editorial",
      "reviewer": "academy-editorial"
    },
    {
      "id": "chg_cli_health_doctor",
      "changeId": "chg_cli_health_doctor",
      "date": "2026-07-30T00:00:00.000Z",
      "courseId": "openclaw-cli-essentials",
      "lessonIds": [
        "openclaw-cli-essentials.health-doctor"
      ],
      "changeType": "structure",
      "learnerImpact": "Publishes independently reviewed, evidence-led CLI diagnostics instruction with an explicit action boundary.",
      "sourceUrls": [
        "https://github.com/openclaw/openclaw/blob/1237c0cf8157a6ad4a900d6b165ea8c830449e78/docs/cli/health.md"
      ],
      "receiptId": "rr_cli_health_doctor",
      "breakingForLearner": false,
      "author": "academy-editorial",
      "reviewer": "academy-editorial"
    },
    {
      "id": "chg_cli_recovery_handoff",
      "changeId": "chg_cli_recovery_handoff",
      "date": "2026-07-30T00:00:00.000Z",
      "courseId": "openclaw-cli-essentials",
      "lessonIds": [
        "openclaw-cli-essentials.recovery-handoff"
      ],
      "changeType": "structure",
      "learnerImpact": "Publishes independently reviewed, evidence-led CLI diagnostics instruction with an explicit action boundary.",
      "sourceUrls": [
        "https://github.com/openclaw/openclaw/blob/1237c0cf8157a6ad4a900d6b165ea8c830449e78/docs/cli/doctor.md"
      ],
      "receiptId": "rr_cli_recovery_handoff",
      "breakingForLearner": false,
      "author": "academy-editorial",
      "reviewer": "academy-editorial"
    },
    {
      "id": "chg_cli_safe_update",
      "changeId": "chg_cli_safe_update",
      "date": "2026-07-30T00:00:00.000Z",
      "courseId": "openclaw-cli-essentials",
      "lessonIds": [
        "openclaw-cli-essentials.safe-update"
      ],
      "changeType": "structure",
      "learnerImpact": "Publishes independently reviewed, evidence-led CLI diagnostics instruction with an explicit action boundary.",
      "sourceUrls": [
        "https://github.com/openclaw/openclaw/blob/1237c0cf8157a6ad4a900d6b165ea8c830449e78/docs/cli/update.md"
      ],
      "receiptId": "rr_cli_safe_update",
      "breakingForLearner": false,
      "author": "academy-editorial",
      "reviewer": "academy-editorial"
    },
    {
      "id": "chg_foundations_capability_boundaries",
      "changeId": "chg_foundations_capability_boundaries",
      "date": "2026-07-30T00:00:00.000Z",
      "courseId": "openclaw-foundations-architecture",
      "lessonIds": [
        "openclaw-foundations-architecture.capability-boundaries"
      ],
      "changeType": "structure",
      "learnerImpact": "Publishes reviewed instruction distinguishing tools, skills, plugins, and enforcement boundaries.",
      "sourceUrls": [
        "https://github.com/openclaw/openclaw/blob/2e26244cec32e61f6117740d3ea273b1ecb54efc/docs/tools/index.md"
      ],
      "receiptId": "rr_foundations_capability_boundaries",
      "breakingForLearner": false,
      "author": "academy-editorial",
      "reviewer": "academy-editorial"
    },
    {
      "id": "chg_foundations_channel_trust",
      "changeId": "chg_foundations_channel_trust",
      "date": "2026-07-30T00:00:00.000Z",
      "courseId": "openclaw-foundations-architecture",
      "lessonIds": [
        "openclaw-foundations-architecture.channel-trust"
      ],
      "changeType": "security",
      "learnerImpact": "Publishes reviewed channel ingress, trust-boundary, and separate-Gateway decision guidance.",
      "sourceUrls": [
        "https://github.com/openclaw/openclaw/blob/2e26244cec32e61f6117740d3ea273b1ecb54efc/docs/gateway/security/index.md"
      ],
      "receiptId": "rr_foundations_channel_trust",
      "breakingForLearner": false,
      "author": "academy-editorial",
      "reviewer": "academy-editorial"
    },
    {
      "id": "chg_foundations_operating_map_capstone",
      "changeId": "chg_foundations_operating_map_capstone",
      "date": "2026-07-30T00:00:00.000Z",
      "courseId": "openclaw-foundations-architecture",
      "lessonIds": [
        "openclaw-foundations-architecture.operating-map-capstone"
      ],
      "changeType": "assessment",
      "learnerImpact": "Publishes the reviewed architecture capstone with evidence, ownership, stop rules, and a rubric.",
      "sourceUrls": [
        "https://github.com/openclaw/openclaw/blob/2e26244cec32e61f6117740d3ea273b1ecb54efc/docs/concepts/architecture.md"
      ],
      "receiptId": "rr_foundations_operating_map_capstone",
      "breakingForLearner": false,
      "author": "academy-editorial",
      "reviewer": "academy-editorial"
    },
    {
      "id": "chg_foundations_request_path",
      "changeId": "chg_foundations_request_path",
      "date": "2026-07-30T00:00:00.000Z",
      "courseId": "openclaw-foundations-architecture",
      "lessonIds": [
        "openclaw-foundations-architecture.request-path"
      ],
      "changeType": "structure",
      "learnerImpact": "Publishes the reviewed agent-loop request trace and tool-result evidence boundary.",
      "sourceUrls": [
        "https://github.com/openclaw/openclaw/blob/2e26244cec32e61f6117740d3ea273b1ecb54efc/docs/concepts/agent-loop.md"
      ],
      "receiptId": "rr_foundations_request_path",
      "breakingForLearner": false,
      "author": "academy-editorial",
      "reviewer": "academy-editorial"
    },
    {
      "id": "chg_foundations_sessions_memory",
      "changeId": "chg_foundations_sessions_memory",
      "date": "2026-07-30T00:00:00.000Z",
      "courseId": "openclaw-foundations-architecture",
      "lessonIds": [
        "openclaw-foundations-architecture.sessions-memory"
      ],
      "changeType": "security",
      "learnerImpact": "Publishes reviewed session-scope and durable-memory guidance that rejects accidental mixed-trust context sharing.",
      "sourceUrls": [
        "https://github.com/openclaw/openclaw/blob/2e26244cec32e61f6117740d3ea273b1ecb54efc/docs/concepts/session.md"
      ],
      "receiptId": "rr_foundations_sessions_memory",
      "breakingForLearner": false,
      "author": "academy-editorial",
      "reviewer": "academy-editorial"
    },
    {
      "id": "chg_foundations_system_map",
      "changeId": "chg_foundations_system_map",
      "date": "2026-07-30T00:00:00.000Z",
      "courseId": "openclaw-foundations-architecture",
      "lessonIds": [
        "openclaw-foundations-architecture.system-map"
      ],
      "changeType": "structure",
      "learnerImpact": "Publishes the Gateway and system-map lesson after independent review against immutable primary architecture evidence.",
      "sourceUrls": [
        "https://github.com/openclaw/openclaw/blob/2e26244cec32e61f6117740d3ea273b1ecb54efc/docs/concepts/architecture.md"
      ],
      "receiptId": "rr_foundations_system_map",
      "breakingForLearner": false,
      "author": "academy-editorial",
      "reviewer": "academy-editorial"
    },
    {
      "id": "chg_local_models_benchmark_fixture",
      "changeId": "chg_local_models_benchmark_fixture",
      "date": "2026-07-30T00:00:00.000Z",
      "courseId": "openclaw-local-models-performance-cost",
      "lessonIds": [
        "openclaw-local-models-performance-cost.benchmark"
      ],
      "changeType": "assessment",
      "learnerImpact": "Publishes a bounded benchmark lab, scorecard, worked check, and original diagram brief.",
      "sourceUrls": [
        "https://github.com/openclaw-academy/learn/blob/df3f389443b530374acdb9f2dd8da88821eaa7a1/docs/spec/curriculum/LAUNCH_READY_COURSE_OUTLINES.md"
      ],
      "receiptId": "rr_local_models_benchmark_fixture",
      "breakingForLearner": false,
      "author": "academy-editorial",
      "reviewer": "academy-specification-review"
    },
    {
      "id": "chg_local_models_boundary_gpu_fixture",
      "changeId": "chg_local_models_boundary_gpu_fixture",
      "date": "2026-07-30T00:00:00.000Z",
      "courseId": "openclaw-local-models-performance-cost",
      "lessonIds": [
        "openclaw-local-models-performance-cost.boundary-gpu"
      ],
      "changeType": "structure",
      "learnerImpact": "Publishes a bounded lesson for local inference boundaries and capacity assumptions.",
      "sourceUrls": [
        "https://github.com/openclaw-academy/learn/blob/df3f389443b530374acdb9f2dd8da88821eaa7a1/docs/spec/curriculum/LAUNCH_READY_COURSE_OUTLINES.md"
      ],
      "receiptId": "rr_local_models_boundary_gpu_fixture",
      "breakingForLearner": false,
      "author": "academy-editorial",
      "reviewer": "academy-specification-review"
    },
    {
      "id": "chg_local_models_context_performance_fixture",
      "changeId": "chg_local_models_context_performance_fixture",
      "date": "2026-07-30T00:00:00.000Z",
      "courseId": "openclaw-local-models-performance-cost",
      "lessonIds": [
        "openclaw-local-models-performance-cost.context-performance"
      ],
      "changeType": "structure",
      "learnerImpact": "Publishes a bounded lesson for context, tail latency, queueing, and concurrency measurement.",
      "sourceUrls": [
        "https://github.com/openclaw-academy/learn/blob/df3f389443b530374acdb9f2dd8da88821eaa7a1/docs/spec/curriculum/LAUNCH_READY_COURSE_OUTLINES.md"
      ],
      "receiptId": "rr_local_models_context_performance_fixture",
      "breakingForLearner": false,
      "author": "academy-editorial",
      "reviewer": "academy-specification-review"
    },
    {
      "id": "chg_local_models_fallback_capstone_fixture",
      "changeId": "chg_local_models_fallback_capstone_fixture",
      "date": "2026-07-30T00:00:00.000Z",
      "courseId": "openclaw-local-models-performance-cost",
      "lessonIds": [
        "openclaw-local-models-performance-cost.fallback-capstone"
      ],
      "changeType": "assessment",
      "learnerImpact": "Publishes the fallback exercise, regression loop, model decision record, and weighted capstone rubric.",
      "sourceUrls": [
        "https://github.com/openclaw-academy/learn/blob/df3f389443b530374acdb9f2dd8da88821eaa7a1/docs/spec/curriculum/LAUNCH_READY_COURSE_OUTLINES.md"
      ],
      "receiptId": "rr_local_models_fallback_capstone_fixture",
      "breakingForLearner": false,
      "author": "academy-editorial",
      "reviewer": "academy-specification-review"
    },
    {
      "id": "chg_local_models_routing_cost_fixture",
      "changeId": "chg_local_models_routing_cost_fixture",
      "date": "2026-07-30T00:00:00.000Z",
      "courseId": "openclaw-local-models-performance-cost",
      "lessonIds": [
        "openclaw-local-models-performance-cost.routing-cost"
      ],
      "changeType": "assessment",
      "learnerImpact": "Publishes a bounded routing-policy and budget-quota exercise with escalation boundaries.",
      "sourceUrls": [
        "https://github.com/openclaw-academy/learn/blob/df3f389443b530374acdb9f2dd8da88821eaa7a1/docs/spec/curriculum/LAUNCH_READY_COURSE_OUTLINES.md"
      ],
      "receiptId": "rr_local_models_routing_cost_fixture",
      "breakingForLearner": false,
      "author": "academy-editorial",
      "reviewer": "academy-specification-review"
    },
    {
      "id": "chg_local_models_workload_policy_fixture",
      "changeId": "chg_local_models_workload_policy_fixture",
      "date": "2026-07-30T00:00:00.000Z",
      "courseId": "openclaw-local-models-performance-cost",
      "lessonIds": [
        "openclaw-local-models-performance-cost.workload-policy"
      ],
      "changeType": "structure",
      "learnerImpact": "Publishes a bounded lesson for workload classification and measurable decision boundaries.",
      "sourceUrls": [
        "https://github.com/openclaw-academy/learn/blob/df3f389443b530374acdb9f2dd8da88821eaa7a1/docs/spec/curriculum/LAUNCH_READY_COURSE_OUTLINES.md"
      ],
      "receiptId": "rr_local_models_workload_policy_fixture",
      "breakingForLearner": false,
      "author": "academy-editorial",
      "reviewer": "academy-specification-review"
    },
    {
      "id": "chg_multi_agent_boundaries_handoffs",
      "changeId": "chg_multi_agent_boundaries_handoffs",
      "date": "2026-07-30T00:00:00.000Z",
      "courseId": "openclaw-multi-agent-production-operations",
      "lessonIds": [
        "openclaw-multi-agent-production-operations.boundaries-handoffs"
      ],
      "changeType": "security",
      "learnerImpact": "Publishes reviewed role-boundary, workspace, routing, and inspectable-handoff controls.",
      "sourceUrls": [
        "https://github.com/openclaw/openclaw/blob/ec53d0eaae19b0e54522bc91ab06234427acafd9/docs/concepts/multi-agent.md"
      ],
      "receiptId": "rr_multi_agent_boundaries_handoffs",
      "breakingForLearner": false,
      "author": "academy-editorial",
      "reviewer": "scout-independent-review"
    },
    {
      "id": "chg_multi_agent_capstone_postmortem",
      "changeId": "chg_multi_agent_capstone_postmortem",
      "date": "2026-07-30T00:00:00.000Z",
      "courseId": "openclaw-multi-agent-production-operations",
      "lessonIds": [
        "openclaw-multi-agent-production-operations.capstone-postmortem"
      ],
      "changeType": "assessment",
      "learnerImpact": "Publishes a reviewed human-gated release-intelligence capstone, failure tabletop, and postmortem rubric.",
      "sourceUrls": [
        "https://github.com/openclaw/openclaw/blob/ec53d0eaae19b0e54522bc91ab06234427acafd9/docs/concepts/multi-agent.md"
      ],
      "receiptId": "rr_multi_agent_capstone_postmortem",
      "breakingForLearner": false,
      "author": "academy-editorial",
      "reviewer": "scout-independent-review"
    },
    {
      "id": "chg_multi_agent_durable_jobs_retries",
      "changeId": "chg_multi_agent_durable_jobs_retries",
      "date": "2026-07-30T00:00:00.000Z",
      "courseId": "openclaw-multi-agent-production-operations",
      "lessonIds": [
        "openclaw-multi-agent-production-operations.durable-jobs-retries"
      ],
      "changeType": "structure",
      "learnerImpact": "Publishes reviewed durable-job inspection, retry classification, and idempotency exercises.",
      "sourceUrls": [
        "https://github.com/openclaw/openclaw/blob/ec53d0eaae19b0e54522bc91ab06234427acafd9/docs/automation/cron-jobs.md"
      ],
      "receiptId": "rr_multi_agent_durable_jobs_retries",
      "breakingForLearner": false,
      "author": "academy-editorial",
      "reviewer": "scout-independent-review"
    },
    {
      "id": "chg_multi_agent_evaluation_review_gates",
      "changeId": "chg_multi_agent_evaluation_review_gates",
      "date": "2026-07-30T00:00:00.000Z",
      "courseId": "openclaw-multi-agent-production-operations",
      "lessonIds": [
        "openclaw-multi-agent-production-operations.evaluation-review-gates"
      ],
      "changeType": "assessment",
      "learnerImpact": "Publishes reviewed source-linked acceptance criteria and an independent human release gate.",
      "sourceUrls": [
        "https://github.com/openclaw/openclaw/blob/ec53d0eaae19b0e54522bc91ab06234427acafd9/docs/cli/agent.md"
      ],
      "receiptId": "rr_multi_agent_evaluation_review_gates",
      "breakingForLearner": false,
      "author": "academy-editorial",
      "reviewer": "scout-independent-review"
    },
    {
      "id": "chg_multi_agent_goals_stop_conditions",
      "changeId": "chg_multi_agent_goals_stop_conditions",
      "date": "2026-07-30T00:00:00.000Z",
      "courseId": "openclaw-multi-agent-production-operations",
      "lessonIds": [
        "openclaw-multi-agent-production-operations.goals-stop-conditions"
      ],
      "changeType": "structure",
      "learnerImpact": "Publishes reviewed measurable goals, budgets, terminal states, and escalation controls.",
      "sourceUrls": [
        "https://github.com/openclaw/openclaw/blob/ec53d0eaae19b0e54522bc91ab06234427acafd9/docs/cli/agent.md"
      ],
      "receiptId": "rr_multi_agent_goals_stop_conditions",
      "breakingForLearner": false,
      "author": "academy-editorial",
      "reviewer": "scout-independent-review"
    },
    {
      "id": "chg_multi_agent_outcomes_graph",
      "changeId": "chg_multi_agent_outcomes_graph",
      "date": "2026-07-30T00:00:00.000Z",
      "courseId": "openclaw-multi-agent-production-operations",
      "lessonIds": [
        "openclaw-multi-agent-production-operations.outcomes-graph"
      ],
      "changeType": "structure",
      "learnerImpact": "Publishes reviewed an outcome-first dependency-graph lesson with human-held publication gates.",
      "sourceUrls": [
        "https://github.com/openclaw/openclaw/blob/ec53d0eaae19b0e54522bc91ab06234427acafd9/docs/concepts/multi-agent.md"
      ],
      "receiptId": "rr_multi_agent_outcomes_graph",
      "breakingForLearner": false,
      "author": "academy-editorial",
      "reviewer": "scout-independent-review"
    },
    {
      "id": "chg_security_audit_detection",
      "changeId": "chg_security_audit_detection",
      "date": "2026-07-30T00:00:00.000Z",
      "courseId": "openclaw-security-hardening",
      "lessonIds": [
        "openclaw-security-hardening.audit-detection"
      ],
      "changeType": "security",
      "learnerImpact": "Publishes a reproducible hardening-audit protocol with drift detection and accountable remediation.",
      "sourceUrls": [
        "https://docs.openclaw.ai/gateway/audit"
      ],
      "receiptId": "rr_security_audit_detection",
      "breakingForLearner": false,
      "author": "academy-security",
      "reviewer": "academy-security-source-review"
    },
    {
      "id": "chg_security_identities_approvals",
      "changeId": "chg_security_identities_approvals",
      "date": "2026-07-30T00:00:00.000Z",
      "courseId": "openclaw-security-hardening",
      "lessonIds": [
        "openclaw-security-hardening.identities-approvals"
      ],
      "changeType": "security",
      "learnerImpact": "Publishes an authority-matrix lab that separates authentication, authorization, and explicit approval.",
      "sourceUrls": [
        "https://docs.openclaw.ai/gateway/authentication"
      ],
      "receiptId": "rr_security_identities_approvals",
      "breakingForLearner": false,
      "author": "academy-security",
      "reviewer": "academy-security-source-review"
    },
    {
      "id": "chg_security_incident_capstone",
      "changeId": "chg_security_incident_capstone",
      "date": "2026-07-30T00:00:00.000Z",
      "courseId": "openclaw-security-hardening",
      "lessonIds": [
        "openclaw-security-hardening.incident-capstone"
      ],
      "changeType": "assessment",
      "learnerImpact": "Publishes a sandbox-only incident rehearsal and hardening-dossier capstone with an evidence rubric.",
      "sourceUrls": [
        "https://docs.openclaw.ai/gateway/security"
      ],
      "receiptId": "rr_security_incident_capstone",
      "breakingForLearner": false,
      "author": "academy-security",
      "reviewer": "academy-security-source-review"
    },
    {
      "id": "chg_security_prompt_boundaries",
      "changeId": "chg_security_prompt_boundaries",
      "date": "2026-07-30T00:00:00.000Z",
      "courseId": "openclaw-security-hardening",
      "lessonIds": [
        "openclaw-security-hardening.prompt-boundaries"
      ],
      "changeType": "security",
      "learnerImpact": "Publishes a safe adversarial prompt-boundary pack and conditional concept-video review notes.",
      "sourceUrls": [
        "https://docs.openclaw.ai/gateway/security"
      ],
      "receiptId": "rr_security_prompt_boundaries",
      "breakingForLearner": false,
      "author": "academy-security",
      "reviewer": "academy-security-source-review"
    },
    {
      "id": "chg_security_secrets_revocation",
      "changeId": "chg_security_secrets_revocation",
      "date": "2026-07-30T00:00:00.000Z",
      "courseId": "openclaw-security-hardening",
      "lessonIds": [
        "openclaw-security-hardening.secrets-revocation"
      ],
      "changeType": "security",
      "learnerImpact": "Publishes a redacted credential inventory and disposable-credential revocation rehearsal.",
      "sourceUrls": [
        "https://docs.openclaw.ai/gateway/secrets"
      ],
      "receiptId": "rr_security_secrets_revocation",
      "breakingForLearner": false,
      "author": "academy-security",
      "reviewer": "academy-security-source-review"
    },
    {
      "id": "chg_security_threat_model",
      "changeId": "chg_security_threat_model",
      "date": "2026-07-30T00:00:00.000Z",
      "courseId": "openclaw-security-hardening",
      "lessonIds": [
        "openclaw-security-hardening.threat-model"
      ],
      "changeType": "security",
      "learnerImpact": "Publishes a deployment-specific threat-model lab with accountable boundary and residual-risk evidence.",
      "sourceUrls": [
        "https://docs.openclaw.ai/gateway/security"
      ],
      "receiptId": "rr_security_threat_model",
      "breakingForLearner": false,
      "author": "academy-security",
      "reviewer": "academy-security-source-review"
    },
    {
      "id": "chg_security_tool_network_isolation",
      "changeId": "chg_security_tool_network_isolation",
      "date": "2026-07-30T00:00:00.000Z",
      "courseId": "openclaw-security-hardening",
      "lessonIds": [
        "openclaw-security-hardening.tool-network-isolation"
      ],
      "changeType": "security",
      "learnerImpact": "Publishes a least-privilege tool, network, plugin, and skill review gate with a kill-switch requirement.",
      "sourceUrls": [
        "https://docs.openclaw.ai/gateway/sandboxing"
      ],
      "receiptId": "rr_security_tool_network_isolation",
      "breakingForLearner": false,
      "author": "academy-security",
      "reviewer": "academy-security-source-review"
    },
    {
      "id": "chg_setup_capstone_teardown",
      "changeId": "chg_setup_capstone_teardown",
      "date": "2026-07-30T00:00:00.000Z",
      "courseId": "openclaw-setup-guide",
      "lessonIds": [
        "openclaw-setup-guide.setup-capstone-teardown"
      ],
      "changeType": "assessment",
      "learnerImpact": "Publishes the reviewed reversible first-agent capstone, credential drill, dry-run teardown, and rubric.",
      "sourceUrls": [
        "https://github.com/openclaw/openclaw/blob/1237c0cf8157a6ad4a900d6b165ea8c830449e78/docs/install/uninstall.md"
      ],
      "receiptId": "rr_setup_capstone_teardown",
      "breakingForLearner": false,
      "author": "academy-editorial",
      "reviewer": "academy-editorial"
    },
    {
      "id": "chg_setup_first_agent",
      "changeId": "chg_setup_first_agent",
      "date": "2026-07-30T00:00:00.000Z",
      "courseId": "openclaw-setup-guide",
      "lessonIds": [
        "openclaw-setup-guide.setup-first-agent"
      ],
      "changeType": "assessment",
      "learnerImpact": "Publishes the reviewed isolated proposal-only first-agent procedure and approval gate.",
      "sourceUrls": [
        "https://github.com/openclaw/openclaw/blob/1237c0cf8157a6ad4a900d6b165ea8c830449e78/docs/cli/agent.md"
      ],
      "receiptId": "rr_setup_first_agent",
      "breakingForLearner": false,
      "author": "academy-editorial",
      "reviewer": "academy-editorial"
    },
    {
      "id": "chg_setup_gateway_verify",
      "changeId": "chg_setup_gateway_verify",
      "date": "2026-07-30T00:00:00.000Z",
      "courseId": "openclaw-setup-guide",
      "lessonIds": [
        "openclaw-setup-guide.setup-gateway-verify"
      ],
      "changeType": "structure",
      "learnerImpact": "Publishes the reviewed layered CLI and Gateway verification ledger.",
      "sourceUrls": [
        "https://github.com/openclaw/openclaw/blob/1237c0cf8157a6ad4a900d6b165ea8c830449e78/docs/cli/health.md"
      ],
      "receiptId": "rr_setup_gateway_verify",
      "breakingForLearner": false,
      "author": "academy-editorial",
      "reviewer": "academy-editorial"
    },
    {
      "id": "chg_setup_install",
      "changeId": "chg_setup_install",
      "date": "2026-07-30T00:00:00.000Z",
      "courseId": "openclaw-setup-guide",
      "lessonIds": [
        "openclaw-setup-guide.setup-install"
      ],
      "changeType": "structure",
      "learnerImpact": "Publishes reviewed platform-specific installation commands with version and rollback evidence.",
      "sourceUrls": [
        "https://github.com/openclaw/openclaw/blob/1237c0cf8157a6ad4a900d6b165ea8c830449e78/docs/install/installer.md"
      ],
      "receiptId": "rr_setup_install",
      "breakingForLearner": false,
      "author": "academy-editorial",
      "reviewer": "academy-editorial"
    },
    {
      "id": "chg_setup_preflight",
      "changeId": "chg_setup_preflight",
      "date": "2026-07-30T00:00:00.000Z",
      "courseId": "openclaw-setup-guide",
      "lessonIds": [
        "openclaw-setup-guide.setup-preflight"
      ],
      "changeType": "structure",
      "learnerImpact": "Publishes the reviewed pre-flight lesson covering path selection, isolation, and stop conditions.",
      "sourceUrls": [
        "https://github.com/openclaw/openclaw/blob/1237c0cf8157a6ad4a900d6b165ea8c830449e78/docs/install/index.md"
      ],
      "receiptId": "rr_setup_preflight",
      "breakingForLearner": false,
      "author": "academy-editorial",
      "reviewer": "academy-editorial"
    },
    {
      "id": "chg_setup_provider_secrets",
      "changeId": "chg_setup_provider_secrets",
      "date": "2026-07-30T00:00:00.000Z",
      "courseId": "openclaw-setup-guide",
      "lessonIds": [
        "openclaw-setup-guide.setup-provider-secrets"
      ],
      "changeType": "security",
      "learnerImpact": "Publishes reviewed provider onboarding and secret-exposure containment guidance.",
      "sourceUrls": [
        "https://github.com/openclaw/openclaw/blob/1237c0cf8157a6ad4a900d6b165ea8c830449e78/docs/gateway/secrets.md"
      ],
      "receiptId": "rr_setup_provider_secrets",
      "breakingForLearner": false,
      "author": "academy-editorial",
      "reviewer": "academy-editorial"
    }
  ]
}