{
  "schemaVersion": "1.0",
  "item": {
    "slug": "curriculum-designer",
    "name": "Curriculum Designer",
    "source": "tencent",
    "type": "skill",
    "category": "内容创作",
    "sourceUrl": "https://clawhub.ai/tarasinghrajput/curriculum-designer",
    "canonicalUrl": "https://clawhub.ai/tarasinghrajput/curriculum-designer",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/curriculum-designer",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=curriculum-designer",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "SKILL.md",
      "curriculum-designer.sh"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "Download the package from Yavira.",
        "Extract it into a folder your agent can access.",
        "Paste one of the prompts below and point your agent at the extracted folder."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
        },
        {
          "label": "Upgrade existing",
          "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-04-23T16:43:11.935Z",
      "expiresAt": "2026-04-30T16:43:11.935Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=4claw-imageboard",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=4claw-imageboard",
        "contentDisposition": "attachment; filename=\"4claw-imageboard-1.0.1.zip\"",
        "redirectLocation": null,
        "bodySnippet": null
      },
      "scope": "source",
      "summary": "Source download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this source.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/curriculum-designer"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/curriculum-designer",
    "agentPageUrl": "https://openagent3.xyz/skills/curriculum-designer/agent",
    "manifestUrl": "https://openagent3.xyz/skills/curriculum-designer/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/curriculum-designer/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "Download the package from Yavira.",
      "Extract it into a folder your agent can access.",
      "Paste one of the prompts below and point your agent at the extracted folder."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
      },
      {
        "label": "Upgrade existing",
        "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "Curriculum Designer",
        "body": "Design customized curricula for Apni Pathshala PODs with real YouTube video links.\n\nFEATURES:\n\n✅ Staged execution with checkpointing (recovery from failures)\n✅ YouTube link verification with fallback logic (no blank URLs)\n✅ Context capping per lesson (reduced token usage)\n✅ Every topic gets a valid video OR search query fallback"
      },
      {
        "title": "How This Skill Works",
        "body": "When invoked, the agent follows a 5-stage workflow with checkpointing:\n\nStageWhat HappensCheckpoint File1Gather requirementsrequirements.json2Research YouTube videosresearch-results.json3Verify videos + fallback logicvalidated-resources.json4Design curriculum (one lesson at a time)curriculum-structure.json5Create Google Sheetfinal-sheet-url.txt"
      },
      {
        "title": "Checkpoint Behavior",
        "body": "Each stage saves its output to a checkpoint file\nIf checkpoint exists, stage loads it and skips processing\nIf checkpoint doesn't exist, stage runs from scratch\nRe-running resumes from first incomplete stage"
      },
      {
        "title": "Trigger",
        "body": "User message contains:\n\n\"Design curriculum\" → Start curriculum creation\n\"Create curriculum for [POD name]\" → Start with POD context\n\"Build learning plan\" → Start curriculum creation\n\"Curriculum for [subject/topic]\" → Start with topic context"
      },
      {
        "title": "Target User",
        "body": "This skill is designed for Madhur (Academic Associate) who designs curricula for PODs."
      },
      {
        "title": "Configuration",
        "body": "API Keys: Stored locally in ~/.openclaw/workspace/skills/curriculum-designer/.env (NOT in git)\nOutput Folder: 1upJQu-IVmZRJQsNGmJNRzq9IwL67MVL9 (Curriculum Designer)\nCheckpoint Directory: ~/.openclaw/workspace/curriculum-designer-checkpoints/\n\nYouTube API Key:\n\nYOUTUBE_API_KEY=your_key_here\n\nGet from: https://console.cloud.google.com/apis/credentials"
      },
      {
        "title": "Model Allocation for Stages",
        "body": "Action: Use different LLM models for different stages to optimize cost and performance."
      },
      {
        "title": "Stage-Specific Model Assignment",
        "body": "StageRecommended ModelReasonStage 1: Requirements Collectionglm-4.7Quick reasoning, sufficient for form fillingStage 2: YouTube Researchglm-5Fast research, needs latest web knowledgeStage 3: Video Validationglm-4.7Pattern matching, simple logicStage 4: Curriculum Designglm-4.7Structured generation, cost-effective for lessonsStage 5: Sheet Creationglm-4.7JSON formatting, simple transformations"
      },
      {
        "title": "How to Set Models",
        "body": "Option 1: Specify model when calling agent\n\n# Use glm-5 for research stage\nagent.chat --model glm-5 --message \"Research YouTube videos for...\"\n\n# Use glm-4.7 for design stage\nagent.chat --model glm-4.7 --message \"Generate lesson structure...\"\n\nOption 2: Configure in SKILL.md\nEach stage should include model recommendation in its instructions:\n\n### Stage 2: Research YouTube Resources\n\n**Action:** Search YouTube for videos based on requirements\n\n**Recommended Model:** glm-5 (fast research, latest web knowledge)\n\n**Why:** Research needs up-to-date information and fast processing."
      },
      {
        "title": "Stage 1: Gather Requirements",
        "body": "Action: Ask the user these questions (from SOP):\n\nBasic Information\n\nPOD Name - Which POD is this curriculum for?\nTarget Audience - Grade level or age group of students?\nSubject Areas - What subjects/topics should be covered?\nDuration - How long is the program? (e.g., 1 month, 3 months, 6 months)\nFrequency - How many classes per week?\nDaily Lab Hours - How many hours will the lab operate?\nPrevious Exposure - Have students done digital learning before?\n\nTeacher Context\n\nTeacher Capability - Can teachers operate computers independently?\nTeacher Training Needed - Do teachers need any training?\n\nLearning Outcomes\n\nLearning Area Focus - Which area(s) to prioritize?\n\nDigital Literacy\nAcademic Empowerment\nSkill Development\nEmployment Readiness\n\n\nSpecific Skills - What specific skills should students acquire?\nAssessment Method - How will learning be measured?\n\nOutput: Save to checkpoint as JSON:\n\n{\n  \"pod_name\": \"Example POD\",\n  \"target_audience\": \"Grade 8-10\",\n  \"subject_areas\": [\"Digital Literacy\", \"Computer Basics\"],\n  \"duration\": \"1 month\",\n  \"frequency\": \"3 days/week\",\n  \"daily_lab_hours\": 2,\n  \"previous_exposure\": \"None\",\n  \"teacher_capability\": \"Basic\",\n  \"teacher_training_needed\": true,\n  \"learning_area_focus\": [\"Digital Literacy\"],\n  \"specific_skills\": [\"Basic computer operations\", \"Internet safety\"],\n  \"assessment_method\": \"Practical exercises and quizzes\"\n}\n\nCheckpoint: ~/.openclaw/workspace/curriculum-designer-checkpoints/<timestamp>-<session-id>/requirements.json"
      },
      {
        "title": "Stage 2: Research YouTube Resources",
        "body": "Action: Search YouTube for videos based on requirements\n\nAPI: Use YouTube Data API v3 with key from .env\n\nSearch Queries (Default):\n\nsearch_queries = [\n    \"computer basics tutorial hindi beginners\",\n    \"typing practice hindi tutorial\",\n    \"internet browser basics hindi\",\n    \"gmail email tutorial hindi beginners\",\n    \"google docs tutorial hindi\",\n    \"google sheets tutorial hindi\",\n    \"chatgpt tutorial hindi beginners 2024\",\n    \"ai tools for students hindi\"\n]\n\nSearch Parameters:\n\npart=snippet\nq=<query>\ntype=video\nmaxResults=5\nvideoDuration=medium (5-10 minutes preferred)\nrelevanceLanguage=hi (Hindi preference)\n\nOutput Structure:\n\n{\n  \"resources\": [\n    {\n      \"topic\": \"computer basics\",\n      \"videos\": [\n        {\n          \"title\": \"Computer Basics for Beginners in Hindi\",\n          \"channel\": \"TechGuruji\",\n          \"url\": \"https://youtube.com/watch?v=ABC123\",\n          \"video_id\": \"ABC123\"\n        }\n      ]\n    }\n  ]\n}\n\nResearch Summary (Before Validation)\n\nAfter completing all searches, summarize the research results before passing to validation stage.\n\nWhy summarize?\n\nReduces token usage when passing to Stage 3 (validation)\nProvides cleaner input for validation logic\nAllows easy review of what was researched\n\nSummary Structure:\n\n{\n  \"research_summary\": {\n    \"total_searches\": 8,\n    \"topics_researched\": [\n      \"computer basics\",\n      \"typing practice\",\n      \"internet browser basics\",\n      \"gmail email tutorial\",\n      \"google docs tutorial\",\n      \"google sheets tutorial\",\n      \"chatgpt tutorial\",\n      \"ai tools for students\"\n    ],\n    \"total_videos_found\": 24,\n    \"video_channels\": [\"TechGuruji\", \"LearnWithMe\", \"DigitalSkills\", \"HindiTechTutorials\"],\n    \"search_language\": \"Hindi preference\",\n    \"video_duration_preference\": \"5-10 minutes\",\n    \"notes\": \"Most videos from 2023-2024. Good variety of channels. Some topics have fewer results, may need fallback search.\"\n  }\n}\n\nSave summary:\n\nAppend research_summary to research-results.json\nValidation stage uses summary for context, not raw results\n\nCheckpoint: ~/.openclaw/workspace/curriculum-designer-checkpoints/<timestamp>-<session-id>/research-results.json"
      },
      {
        "title": "Stage 3: Verify Videos + Fallback Logic",
        "body": "Action: Verify each video via YouTube oEmbed API. If invalid, retry with alternative search terms.\n\nVerification Method\n\nUse oEmbed endpoint (fast, lightweight):\n\nhttps://www.youtube.com/oembed?url=https://youtube.com/watch?v=VIDEO_ID\n\nHTTP 200 = Valid video\nHTTP 404 = Invalid/deleted video\nHTTP 4xx/5xx = Try again (rate limit or temporary error)\n\nFallback Logic (CRITICAL)\n\nFor each topic, follow this logic:\n\nFor each video in topic:\n  1. Verify via oEmbed\n  2. If valid → Add to validated list, done with topic\n  3. If invalid → Try next video in topic\n\nIf NO valid videos found for topic:\n  1. Retry search with alternative queries:\n     - Original query + \"part 2\"\n     - Original query + \"for students\"\n     - Original query + \"in english\" (if Hindi failed)\n  2. Verify new results\n  3. If still no valid videos → ADD FALLBACK:\n     - \"search_query\": \"<original query> tutorial hindi beginners\"\n     - \"fallback_reason\": \"No valid videos found, please search manually\"\n\nOutput Structure (With Fallbacks)\n\n{\n  \"resources\": [\n    {\n      \"topic\": \"computer basics\",\n      \"video\": {\n        \"title\": \"Computer Basics for Beginners in Hindi\",\n        \"channel\": \"TechGuruji\",\n        \"url\": \"https://youtube.com/watch?v=ABC123\",\n        \"video_id\": \"ABC123\",\n        \"status\": \"valid\"\n      }\n    },\n    {\n      \"topic\": \"advanced excel\",\n      \"fallback\": {\n        \"search_query\": \"advanced excel tutorial hindi beginners\",\n        \"reason\": \"No valid videos found after 3 retry attempts\"\n      }\n    }\n  ]\n}\n\nIMPORTANT: Every topic MUST have either:\n\nA valid video URL, OR\nA search query fallback\n\nCheckpoint: ~/.openclaw/workspace/curriculum-designer-checkpoints/<timestamp>-<session-id>/validated-resources.json"
      },
      {
        "title": "Stage 4: Design Curriculum (Context Capping + Summarization)",
        "body": "Action: Generate curriculum structure, processing one lesson at a time with summarization and context cleanup.\n\nHow Context Capping + Summarization Works\n\nInstead of:\n\nPass entire curriculum (all lessons) to LLM at once → High token usage\n\nDo this:\n\nFor each lesson (1, 2, 3, ... N):\n  1. Load lesson N context only (this lesson's topic + resources)\n  2. Generate lesson content\n  3. SUMMARIZE lesson N context\n  4. Save lesson + summary to curriculum structure\n  5. WIPE lesson N context from memory\n  6. Continue to next lesson\n\nWhen all lessons complete:\n  1. Summarize entire curriculum\n  2. Save summary to curriculum structure\n  3. Save summary to Stage 2 checkpoint (research-results.json)\n\nLesson-by-Lesson Process\n\nFor lesson N:\n\nLoad context:\n\nLesson N topic\nLesson N resources (from validated-resources.json)\nPrevious lesson summary (if N > 1)\n\n\n\nGenerate lesson:\n\nDaily learning objectives\nDaily assessment\nModule content\nYouTube link/fallback\n\n\n\nSummarize lesson:\n\nCreate concise summary of lesson N\nFocus on: key skills, tools used, assessment type\n\n\n\nSave to curriculum:\n\nFull lesson details\nLesson summary (for next lesson's context)\n\n\n\nContext cleanup:\n\nRemove lesson N's full context from memory\nKeep only lesson N's summary for N+1\n\nLesson Summary Template\n\n{\n  \"lesson_number\": 1,\n  \"summary\": \"Students learned basic computer components, mouse/keyboard operations, and system navigation. Introduced primary computer parts and basic troubleshooting. Assessment involved identifying components and practicing typing.\",\n  \"key_skills\": [\n    \"Identifying computer parts\",\n    \"Mouse and keyboard basics\",\n    \"System navigation\"\n  ],\n  \"tools_used\": [\"Computer\", \"Mouse\", \"Keyboard\"],\n  \"assessment_type\": \"Practical exercise and observation\"\n}\n\nLesson Generation Template\n\nFor each lesson, generate:\n\nFieldDescriptionDayLesson number (1, 2, 3, ...)SubjectSubject area / Learning areaModuleModule/Topic nameDaily Learning ObjectivesWhat students learn that dayDaily AssessmentHow to assess understandingYouTube LinkValid video URL OR search query fallbackYouTube TitleVideo title (if applicable)Tools UsedRequired software/platformsFallback Search QuerySearch query if no valid video (or blank)Lesson SummaryConcise summary for next lesson's context\n\nSample Lesson Output (With Summary)\n\n{\n  \"day\": 1,\n  \"subject\": \"Digital Literacy\",\n  \"module\": \"Module 1: Introduction to Computers\",\n  \"daily_learning_objectives\": \"Understand basic computer components, learn to use mouse and keyboard\",\n  \"daily_assessment\": \"Practical exercise: Identify computer parts, practice typing\",\n  \"youtube_link\": \"https://youtube.com/watch?v=ABC123\",\n  \"youtube_title\": \"Computer Basics for Beginners in Hindi\",\n  \"tools_used\": \"Computer, Mouse, Keyboard\",\n  \"fallback_search_query\": \"\",\n  \"lesson_summary\": {\n    \"summary\": \"Students learned basic computer components, mouse/keyboard operations, and system navigation.\",\n    \"key_skills\": [\"Identifying computer parts\", \"Mouse and keyboard basics\", \"System navigation\"],\n    \"tools_used\": [\"Computer\", \"Mouse\", \"Keyboard\"],\n    \"assessment_type\": \"Practical exercise and observation\"\n  }\n}\n\nWith Fallback Example\n\n{\n  \"day\": 5,\n  \"subject\": \"Skill Development\",\n  \"module\": \"Module 5: Advanced Spreadsheets\",\n  \"daily_learning_objectives\": \"Learn Excel formulas and data analysis\",\n  \"daily_assessment\": \"Create a budget spreadsheet using formulas\",\n  \"youtube_link\": \"\",\n  \"youtube_title\": \"\",\n  \"tools_used\": \"Google Sheets\",\n  \"fallback_search_query\": \"advanced excel formulas tutorial hindi beginners\",\n  \"lesson_summary\": {\n    \"summary\": \"Students advanced from basic Google Sheets to formulas and data analysis. Learned SUM, AVERAGE, IF functions, and chart creation.\",\n    \"key_skills\": [\"Google Sheets formulas\", \"Data analysis basics\", \"Chart creation\"],\n    \"tools_used\": [\"Google Sheets\"],\n    \"assessment_type\": \"Project-based: Budget spreadsheet\"\n  }\n}\n\nFinal Curriculum Summary (When All Lessons Complete)\n\nAfter generating all lessons:\n\nSummarize entire curriculum:\n\nTotal lessons\nSubject areas covered\nKey skills progression\nAssessment approach\nTools/software used\n\n\n\nSave to curriculum structure:\n\n{\n  \"curriculum_summary\": {\n    \"total_lessons\": 12,\n    \"duration\": \"1 month\",\n    \"frequency\": \"3 days/week\",\n    \"subject_areas\": [\"Digital Literacy\", \"Skill Development\"],\n    \"skills_progression\": [\n      \"Week 1: Computer basics and navigation\",\n      \"Week 2: Internet and email fundamentals\",\n      \"Week 3: Document creation and editing\",\n      \"Week 4: Spreadsheets and data analysis\"\n    ],\n    \"assessment_methods\": [\"Practical exercises\", \"Quizzes\", \"Projects\"],\n    \"tools_used\": [\"Computer\", \"Google Docs\", \"Google Sheets\", \"YouTube videos\"],\n    \"learning_outcomes\": \"Students will gain basic computer literacy, internet safety awareness, and productivity tool proficiency.\"\n  }\n}\n\nUpdate Stage 2 checkpoint:\n\nAdd curriculum_summary field to research-results.json\nThis keeps summary alongside research results for reference\n\nCheckpoint: ~/.openclaw/workspace/curriculum-designer-checkpoints/<timestamp>-<session-id>/curriculum-structure.json\n\nAlso updates: ~/.openclaw/workspace/curriculum-designer-checkpoints/<timestamp>-<session-id>/research-results.json (adds curriculum_summary)"
      },
      {
        "title": "Stage 5: Create Google Sheet",
        "body": "Action: Create Google Sheet with curriculum data using gog CLI.\n\nStep 1: Create Sheet\n\n# Use gog CLI to create new spreadsheet\nSHEET_ID=$(gog drive spreadsheet create \\\n  --name \"Curriculum_[POD]_[YYYY-MM-DD]\" \\\n  --parent-folder \"$GOG_FOLDER_ID\" \\\n  --json | python3 -c \"import sys, json; print(json.load(sys.stdin).get('id', ''))\")\n\necho \"Sheet ID: $SHEET_ID\"\n\nStep 2: Add Headers\n\n# Add header row\ngog sheets update \"$SHEET_ID\" \"Sheet1!A1:H1\" \\\n  --values-json '[[\"Day\",\"Subject\",\"Module\",\"Daily Learning Objectives\",\"Daily Assessment\",\"YouTube Link\",\"YouTube Title\",\"Tools Used\",\"Fallback Search Query\"]]'\n\nStep 3: Populate with Lessons\n\n# Read curriculum structure and convert to gog format\n# For each lesson, create a row array\n# Then append all rows at once\n\n# Format each lesson as: [Day, Subject, Module, Objectives, Assessment, URL, Title, Tools, Fallback]\ngog sheets append \"$SHEET_ID\" \"Sheet1!A2:H\" \\\n  --values-json '[\n    [\"1\",\"Digital Literacy\",\"Module 1: Introduction\",\"Understand basic components\",\"Practical exercise\",\"https://youtube.com/watch?v=ABC123\",\"Computer Basics\",\"Computer,Mouse\",\"\"],\n    [\"2\",\"Digital Literacy\",\"Module 2: File Management\",\"Learn to organize files\",\"Create folders\",\"https://youtube.com/watch?v=DEF456\",\"File Management\",\"File Explorer\",\"\"],\n    ...\n  ]' \\\n  --insert INSERT_ROWS\n\nData format:\n\nColumn A: Day (1, 2, 3, ...)\nColumn B: Subject\nColumn C: Module\nColumn D: Daily Learning Objectives\nColumn E: Daily Assessment\nColumn F: YouTube Link\nColumn G: YouTube Title\nColumn H: Tools Used\nColumn I: Fallback Search Query\n\nValidation:\n\nOne row per lesson\nInclude fallback search queries (if any)\nEnsure no blank YouTube Links OR populated Fallback Search Query\n\nStep 4: Share Sheet\n\n# ⚠️ CRITICAL: Always share with public view access\ngog drive share \"$SHEET_ID\" --to anyone --role reader\n\nStep 5: Save URL\n\n# Construct public URL and save\nPUBLIC_URL=\"https://docs.google.com/spreadsheets/d/${SHEET_ID}\"\necho \"$PUBLIC_URL\" > \"<checkpoint-dir>/final-sheet-url.txt\"\n\nCheckpoint: ~/.openclaw/workspace/curriculum-designer-checkpoints/<timestamp>-<session-id>/final-sheet-url.txt"
      },
      {
        "title": "Learning Areas Framework",
        "body": "Learning AreaFocusDigital LiteracyBasic computer skills, internet safety, AI toolsAcademic EmpowermentStudy skills, exam prep, note-takingSkill DevelopmentProgramming, design, content creationEmployment ReadinessResume, communication, job skills"
      },
      {
        "title": "Video Selection Criteria",
        "body": "✅ 5-10 minutes max - keeps engagement high\n✅ Clear explanations - no jargon-heavy content\n✅ Hindi or bilingual - accessible for all students\n✅ Recent content - prefer 2023+ videos\n❌ Long lectures - students lose interest\n❌ Advanced content - match to target audience level"
      },
      {
        "title": "⚠️ CRITICAL: Sharing Permissions",
        "body": "ALWAYS share sheet with --to anyone --role reader before returning link\nNEVER return a restricted link - user cannot view it\nCommand: gog drive share <SHEET_ID> --to anyone --role reader"
      },
      {
        "title": "⚠️ CRITICAL: No Blank URLs",
        "body": "Every topic MUST have either:\n\nA valid YouTube URL, OR\nA search query fallback\n\n\nNever leave both fields blank"
      },
      {
        "title": "Assessment Design",
        "body": "Formative (daily): Quick quizzes, practice exercises, short tasks\nSummative (end): Projects, presentations, comprehensive tests\nKeep assessments practical and hands-on"
      },
      {
        "title": "Folder Reference",
        "body": "ResourceLinkCurriculum Designer Folderhttps://drive.google.com/drive/folders/1upJQu-IVmZRJQsNGmJNRzq9IwL67MVL9Example Curriculum (AI Tools)https://docs.google.com/spreadsheets/d/1hYC2Q2KlW8dM71biC97RPSvFnxTQa-zNSOP Documenthttps://docs.google.com/document/d/1Y5qetW8S4RWsTg7hycIyujgTwTCFn9VV"
      },
      {
        "title": "Security Note",
        "body": "⚠️ API keys are stored locally in .env file - NEVER commit this file to git!"
      },
      {
        "title": "Future Improvements",
        "body": "Resume from specific stage - Ability to jump to any stage, not just first failed one"
      },
      {
        "title": "Purpose",
        "body": "Delete checkpoint directories older than 7 days to prevent disk space bloat while keeping recent sessions for debugging."
      },
      {
        "title": "Cron Job Configuration",
        "body": "Option 1: Add to User Crontab\n\n# Edit crontab\ncrontab -e\n\n# Add this line (runs daily at midnight)\n0 0 * * * find ~/.openclaw/workspace/curriculum-designer-checkpoints/ -type d -mtime +7 -exec rm -rf {} \\;\n\nOption 2: Using OpenClaw Cron\n\n# Create cron job via OpenClaw\nopenclaw cron create \\\n  --name \"checkpoint-cleanup\" \\\n  --schedule \"0 0 * * *\" \\\n  --command \"find ~/.openclaw/workspace/curriculum-designer-checkpoints/ -type d -mtime +7 -exec rm -rf {} \\;\" \\\n  --description \"Delete curriculum-designer checkpoints older than 7 days\"\n\nCron Schedule Options\n\nScheduleCrontab FormatDescriptionDaily at midnight0 0 * * *Every day at 00:00Weekly on Sunday0 0 * * 0Every Sunday at 00:00Every 6 hours0 */6 * * *Every 6 hours (may be too frequent)Twice daily0 0,12 * * *At 00:00 and 12:00"
      },
      {
        "title": "Verification",
        "body": "After setting up cron, verify it's working:\n\n# List cron jobs (crontab)\ncrontab -l\n\n# List cron jobs (OpenClaw)\nopenclaw cron list"
      },
      {
        "title": "Manual Cleanup Test",
        "body": "Test the cleanup command manually before setting up cron:\n\n# Dry run (see what would be deleted)\nfind ~/.openclaw/workspace/curriculum-designer-checkpoints/ -type d -mtime +7 -ls\n\n# Actual cleanup\nfind ~/.openclaw/workspace/curriculum-designer-checkpoints/ -type d -mtime +7 -exec rm -rf {} \\;\n\n# Verify\nls ~/.openclaw/workspace/curriculum-designer-checkpoints/"
      },
      {
        "title": "Notes",
        "body": "-mtime +7: Files/directories modified more than 7 days ago\n-type d: Only directories (sessions), not individual files\n-exec rm -rf {} \\;: Remove directory and all contents\nCheckpoints are preserved after completion for review, then auto-cleaned after 7 days\nAdjust +7 to a different value if you want different retention period (+3, +14, +30)"
      },
      {
        "title": "Notes",
        "body": "Always search for REAL video URLs before creating curriculum\nSave curriculum sheets in the designated folder\nShare viewable link at the end\nConsider teacher training needs if curriculum requires new tools\nCheckpoints are preserved after completion for review\nEvery topic in final curriculum must have valid video OR search query fallback"
      }
    ],
    "body": "Curriculum Designer\n\nDesign customized curricula for Apni Pathshala PODs with real YouTube video links.\n\nFEATURES:\n\n✅ Staged execution with checkpointing (recovery from failures)\n✅ YouTube link verification with fallback logic (no blank URLs)\n✅ Context capping per lesson (reduced token usage)\n✅ Every topic gets a valid video OR search query fallback\n⚡ Quick Start\nHow This Skill Works\n\nWhen invoked, the agent follows a 5-stage workflow with checkpointing:\n\nStage\tWhat Happens\tCheckpoint File\n1\tGather requirements\trequirements.json\n2\tResearch YouTube videos\tresearch-results.json\n3\tVerify videos + fallback logic\tvalidated-resources.json\n4\tDesign curriculum (one lesson at a time)\tcurriculum-structure.json\n5\tCreate Google Sheet\tfinal-sheet-url.txt\nCheckpoint Behavior\nEach stage saves its output to a checkpoint file\nIf checkpoint exists, stage loads it and skips processing\nIf checkpoint doesn't exist, stage runs from scratch\nRe-running resumes from first incomplete stage\nTrigger\n\nUser message contains:\n\n\"Design curriculum\" → Start curriculum creation\n\"Create curriculum for [POD name]\" → Start with POD context\n\"Build learning plan\" → Start curriculum creation\n\"Curriculum for [subject/topic]\" → Start with topic context\nTarget User\n\nThis skill is designed for Madhur (Academic Associate) who designs curricula for PODs.\n\nConfiguration\nAPI Keys: Stored locally in ~/.openclaw/workspace/skills/curriculum-designer/.env (NOT in git)\nOutput Folder: 1upJQu-IVmZRJQsNGmJNRzq9IwL67MVL9 (Curriculum Designer)\nCheckpoint Directory: ~/.openclaw/workspace/curriculum-designer-checkpoints/\n\nYouTube API Key:\n\nYOUTUBE_API_KEY=your_key_here\n\n\nGet from: https://console.cloud.google.com/apis/credentials\n\nAgent Workflow Instructions\nModel Allocation for Stages\n\nAction: Use different LLM models for different stages to optimize cost and performance.\n\nStage-Specific Model Assignment\nStage\tRecommended Model\tReason\nStage 1: Requirements Collection\tglm-4.7\tQuick reasoning, sufficient for form filling\nStage 2: YouTube Research\tglm-5\tFast research, needs latest web knowledge\nStage 3: Video Validation\tglm-4.7\tPattern matching, simple logic\nStage 4: Curriculum Design\tglm-4.7\tStructured generation, cost-effective for lessons\nStage 5: Sheet Creation\tglm-4.7\tJSON formatting, simple transformations\nHow to Set Models\n\nOption 1: Specify model when calling agent\n\n# Use glm-5 for research stage\nagent.chat --model glm-5 --message \"Research YouTube videos for...\"\n\n# Use glm-4.7 for design stage\nagent.chat --model glm-4.7 --message \"Generate lesson structure...\"\n\n\nOption 2: Configure in SKILL.md Each stage should include model recommendation in its instructions:\n\n### Stage 2: Research YouTube Resources\n\n**Action:** Search YouTube for videos based on requirements\n\n**Recommended Model:** glm-5 (fast research, latest web knowledge)\n\n**Why:** Research needs up-to-date information and fast processing.\n\nAgent Workflow Instructions\nStage 1: Gather Requirements\n\nAction: Ask the user these questions (from SOP):\n\nBasic Information\nPOD Name - Which POD is this curriculum for?\nTarget Audience - Grade level or age group of students?\nSubject Areas - What subjects/topics should be covered?\nDuration - How long is the program? (e.g., 1 month, 3 months, 6 months)\nFrequency - How many classes per week?\nDaily Lab Hours - How many hours will the lab operate?\nPrevious Exposure - Have students done digital learning before?\nTeacher Context\nTeacher Capability - Can teachers operate computers independently?\nTeacher Training Needed - Do teachers need any training?\nLearning Outcomes\nLearning Area Focus - Which area(s) to prioritize?\nDigital Literacy\nAcademic Empowerment\nSkill Development\nEmployment Readiness\nSpecific Skills - What specific skills should students acquire?\nAssessment Method - How will learning be measured?\n\nOutput: Save to checkpoint as JSON:\n\n{\n  \"pod_name\": \"Example POD\",\n  \"target_audience\": \"Grade 8-10\",\n  \"subject_areas\": [\"Digital Literacy\", \"Computer Basics\"],\n  \"duration\": \"1 month\",\n  \"frequency\": \"3 days/week\",\n  \"daily_lab_hours\": 2,\n  \"previous_exposure\": \"None\",\n  \"teacher_capability\": \"Basic\",\n  \"teacher_training_needed\": true,\n  \"learning_area_focus\": [\"Digital Literacy\"],\n  \"specific_skills\": [\"Basic computer operations\", \"Internet safety\"],\n  \"assessment_method\": \"Practical exercises and quizzes\"\n}\n\n\nCheckpoint: ~/.openclaw/workspace/curriculum-designer-checkpoints/<timestamp>-<session-id>/requirements.json\n\nStage 2: Research YouTube Resources\n\nAction: Search YouTube for videos based on requirements\n\nAPI: Use YouTube Data API v3 with key from .env\n\nSearch Queries (Default):\n\nsearch_queries = [\n    \"computer basics tutorial hindi beginners\",\n    \"typing practice hindi tutorial\",\n    \"internet browser basics hindi\",\n    \"gmail email tutorial hindi beginners\",\n    \"google docs tutorial hindi\",\n    \"google sheets tutorial hindi\",\n    \"chatgpt tutorial hindi beginners 2024\",\n    \"ai tools for students hindi\"\n]\n\n\nSearch Parameters:\n\npart=snippet\nq=<query>\ntype=video\nmaxResults=5\nvideoDuration=medium (5-10 minutes preferred)\nrelevanceLanguage=hi (Hindi preference)\n\nOutput Structure:\n\n{\n  \"resources\": [\n    {\n      \"topic\": \"computer basics\",\n      \"videos\": [\n        {\n          \"title\": \"Computer Basics for Beginners in Hindi\",\n          \"channel\": \"TechGuruji\",\n          \"url\": \"https://youtube.com/watch?v=ABC123\",\n          \"video_id\": \"ABC123\"\n        }\n      ]\n    }\n  ]\n}\n\nResearch Summary (Before Validation)\n\nAfter completing all searches, summarize the research results before passing to validation stage.\n\nWhy summarize?\n\nReduces token usage when passing to Stage 3 (validation)\nProvides cleaner input for validation logic\nAllows easy review of what was researched\n\nSummary Structure:\n\n{\n  \"research_summary\": {\n    \"total_searches\": 8,\n    \"topics_researched\": [\n      \"computer basics\",\n      \"typing practice\",\n      \"internet browser basics\",\n      \"gmail email tutorial\",\n      \"google docs tutorial\",\n      \"google sheets tutorial\",\n      \"chatgpt tutorial\",\n      \"ai tools for students\"\n    ],\n    \"total_videos_found\": 24,\n    \"video_channels\": [\"TechGuruji\", \"LearnWithMe\", \"DigitalSkills\", \"HindiTechTutorials\"],\n    \"search_language\": \"Hindi preference\",\n    \"video_duration_preference\": \"5-10 minutes\",\n    \"notes\": \"Most videos from 2023-2024. Good variety of channels. Some topics have fewer results, may need fallback search.\"\n  }\n}\n\n\nSave summary:\n\nAppend research_summary to research-results.json\nValidation stage uses summary for context, not raw results\n\nCheckpoint: ~/.openclaw/workspace/curriculum-designer-checkpoints/<timestamp>-<session-id>/research-results.json\n\nStage 3: Verify Videos + Fallback Logic\n\nAction: Verify each video via YouTube oEmbed API. If invalid, retry with alternative search terms.\n\nVerification Method\n\nUse oEmbed endpoint (fast, lightweight):\n\nhttps://www.youtube.com/oembed?url=https://youtube.com/watch?v=VIDEO_ID\n\nHTTP 200 = Valid video\nHTTP 404 = Invalid/deleted video\nHTTP 4xx/5xx = Try again (rate limit or temporary error)\nFallback Logic (CRITICAL)\n\nFor each topic, follow this logic:\n\nFor each video in topic:\n  1. Verify via oEmbed\n  2. If valid → Add to validated list, done with topic\n  3. If invalid → Try next video in topic\n\nIf NO valid videos found for topic:\n  1. Retry search with alternative queries:\n     - Original query + \"part 2\"\n     - Original query + \"for students\"\n     - Original query + \"in english\" (if Hindi failed)\n  2. Verify new results\n  3. If still no valid videos → ADD FALLBACK:\n     - \"search_query\": \"<original query> tutorial hindi beginners\"\n     - \"fallback_reason\": \"No valid videos found, please search manually\"\n\nOutput Structure (With Fallbacks)\n{\n  \"resources\": [\n    {\n      \"topic\": \"computer basics\",\n      \"video\": {\n        \"title\": \"Computer Basics for Beginners in Hindi\",\n        \"channel\": \"TechGuruji\",\n        \"url\": \"https://youtube.com/watch?v=ABC123\",\n        \"video_id\": \"ABC123\",\n        \"status\": \"valid\"\n      }\n    },\n    {\n      \"topic\": \"advanced excel\",\n      \"fallback\": {\n        \"search_query\": \"advanced excel tutorial hindi beginners\",\n        \"reason\": \"No valid videos found after 3 retry attempts\"\n      }\n    }\n  ]\n}\n\n\nIMPORTANT: Every topic MUST have either:\n\nA valid video URL, OR\nA search query fallback\n\nCheckpoint: ~/.openclaw/workspace/curriculum-designer-checkpoints/<timestamp>-<session-id>/validated-resources.json\n\nStage 4: Design Curriculum (Context Capping + Summarization)\n\nAction: Generate curriculum structure, processing one lesson at a time with summarization and context cleanup.\n\nHow Context Capping + Summarization Works\n\nInstead of:\n\nPass entire curriculum (all lessons) to LLM at once → High token usage\n\n\nDo this:\n\nFor each lesson (1, 2, 3, ... N):\n  1. Load lesson N context only (this lesson's topic + resources)\n  2. Generate lesson content\n  3. SUMMARIZE lesson N context\n  4. Save lesson + summary to curriculum structure\n  5. WIPE lesson N context from memory\n  6. Continue to next lesson\n\nWhen all lessons complete:\n  1. Summarize entire curriculum\n  2. Save summary to curriculum structure\n  3. Save summary to Stage 2 checkpoint (research-results.json)\n\nLesson-by-Lesson Process\n\nFor lesson N:\n\nLoad context:\n\nLesson N topic\nLesson N resources (from validated-resources.json)\nPrevious lesson summary (if N > 1)\n\nGenerate lesson:\n\nDaily learning objectives\nDaily assessment\nModule content\nYouTube link/fallback\n\nSummarize lesson:\n\nCreate concise summary of lesson N\nFocus on: key skills, tools used, assessment type\n\nSave to curriculum:\n\nFull lesson details\nLesson summary (for next lesson's context)\n\nContext cleanup:\n\nRemove lesson N's full context from memory\nKeep only lesson N's summary for N+1\nLesson Summary Template\n{\n  \"lesson_number\": 1,\n  \"summary\": \"Students learned basic computer components, mouse/keyboard operations, and system navigation. Introduced primary computer parts and basic troubleshooting. Assessment involved identifying components and practicing typing.\",\n  \"key_skills\": [\n    \"Identifying computer parts\",\n    \"Mouse and keyboard basics\",\n    \"System navigation\"\n  ],\n  \"tools_used\": [\"Computer\", \"Mouse\", \"Keyboard\"],\n  \"assessment_type\": \"Practical exercise and observation\"\n}\n\nLesson Generation Template\n\nFor each lesson, generate:\n\nField\tDescription\nDay\tLesson number (1, 2, 3, ...)\nSubject\tSubject area / Learning area\nModule\tModule/Topic name\nDaily Learning Objectives\tWhat students learn that day\nDaily Assessment\tHow to assess understanding\nYouTube Link\tValid video URL OR search query fallback\nYouTube Title\tVideo title (if applicable)\nTools Used\tRequired software/platforms\nFallback Search Query\tSearch query if no valid video (or blank)\nLesson Summary\tConcise summary for next lesson's context\nSample Lesson Output (With Summary)\n{\n  \"day\": 1,\n  \"subject\": \"Digital Literacy\",\n  \"module\": \"Module 1: Introduction to Computers\",\n  \"daily_learning_objectives\": \"Understand basic computer components, learn to use mouse and keyboard\",\n  \"daily_assessment\": \"Practical exercise: Identify computer parts, practice typing\",\n  \"youtube_link\": \"https://youtube.com/watch?v=ABC123\",\n  \"youtube_title\": \"Computer Basics for Beginners in Hindi\",\n  \"tools_used\": \"Computer, Mouse, Keyboard\",\n  \"fallback_search_query\": \"\",\n  \"lesson_summary\": {\n    \"summary\": \"Students learned basic computer components, mouse/keyboard operations, and system navigation.\",\n    \"key_skills\": [\"Identifying computer parts\", \"Mouse and keyboard basics\", \"System navigation\"],\n    \"tools_used\": [\"Computer\", \"Mouse\", \"Keyboard\"],\n    \"assessment_type\": \"Practical exercise and observation\"\n  }\n}\n\nWith Fallback Example\n{\n  \"day\": 5,\n  \"subject\": \"Skill Development\",\n  \"module\": \"Module 5: Advanced Spreadsheets\",\n  \"daily_learning_objectives\": \"Learn Excel formulas and data analysis\",\n  \"daily_assessment\": \"Create a budget spreadsheet using formulas\",\n  \"youtube_link\": \"\",\n  \"youtube_title\": \"\",\n  \"tools_used\": \"Google Sheets\",\n  \"fallback_search_query\": \"advanced excel formulas tutorial hindi beginners\",\n  \"lesson_summary\": {\n    \"summary\": \"Students advanced from basic Google Sheets to formulas and data analysis. Learned SUM, AVERAGE, IF functions, and chart creation.\",\n    \"key_skills\": [\"Google Sheets formulas\", \"Data analysis basics\", \"Chart creation\"],\n    \"tools_used\": [\"Google Sheets\"],\n    \"assessment_type\": \"Project-based: Budget spreadsheet\"\n  }\n}\n\nFinal Curriculum Summary (When All Lessons Complete)\n\nAfter generating all lessons:\n\nSummarize entire curriculum:\n\nTotal lessons\nSubject areas covered\nKey skills progression\nAssessment approach\nTools/software used\n\nSave to curriculum structure:\n\n{\n  \"curriculum_summary\": {\n    \"total_lessons\": 12,\n    \"duration\": \"1 month\",\n    \"frequency\": \"3 days/week\",\n    \"subject_areas\": [\"Digital Literacy\", \"Skill Development\"],\n    \"skills_progression\": [\n      \"Week 1: Computer basics and navigation\",\n      \"Week 2: Internet and email fundamentals\",\n      \"Week 3: Document creation and editing\",\n      \"Week 4: Spreadsheets and data analysis\"\n    ],\n    \"assessment_methods\": [\"Practical exercises\", \"Quizzes\", \"Projects\"],\n    \"tools_used\": [\"Computer\", \"Google Docs\", \"Google Sheets\", \"YouTube videos\"],\n    \"learning_outcomes\": \"Students will gain basic computer literacy, internet safety awareness, and productivity tool proficiency.\"\n  }\n}\n\nUpdate Stage 2 checkpoint:\nAdd curriculum_summary field to research-results.json\nThis keeps summary alongside research results for reference\n\nCheckpoint: ~/.openclaw/workspace/curriculum-designer-checkpoints/<timestamp>-<session-id>/curriculum-structure.json\n\nAlso updates: ~/.openclaw/workspace/curriculum-designer-checkpoints/<timestamp>-<session-id>/research-results.json (adds curriculum_summary)\n\nStage 5: Create Google Sheet\n\nAction: Create Google Sheet with curriculum data using gog CLI.\n\nStep 1: Create Sheet\n# Use gog CLI to create new spreadsheet\nSHEET_ID=$(gog drive spreadsheet create \\\n  --name \"Curriculum_[POD]_[YYYY-MM-DD]\" \\\n  --parent-folder \"$GOG_FOLDER_ID\" \\\n  --json | python3 -c \"import sys, json; print(json.load(sys.stdin).get('id', ''))\")\n\necho \"Sheet ID: $SHEET_ID\"\n\nStep 2: Add Headers\n# Add header row\ngog sheets update \"$SHEET_ID\" \"Sheet1!A1:H1\" \\\n  --values-json '[[\"Day\",\"Subject\",\"Module\",\"Daily Learning Objectives\",\"Daily Assessment\",\"YouTube Link\",\"YouTube Title\",\"Tools Used\",\"Fallback Search Query\"]]'\n\nStep 3: Populate with Lessons\n# Read curriculum structure and convert to gog format\n# For each lesson, create a row array\n# Then append all rows at once\n\n# Format each lesson as: [Day, Subject, Module, Objectives, Assessment, URL, Title, Tools, Fallback]\ngog sheets append \"$SHEET_ID\" \"Sheet1!A2:H\" \\\n  --values-json '[\n    [\"1\",\"Digital Literacy\",\"Module 1: Introduction\",\"Understand basic components\",\"Practical exercise\",\"https://youtube.com/watch?v=ABC123\",\"Computer Basics\",\"Computer,Mouse\",\"\"],\n    [\"2\",\"Digital Literacy\",\"Module 2: File Management\",\"Learn to organize files\",\"Create folders\",\"https://youtube.com/watch?v=DEF456\",\"File Management\",\"File Explorer\",\"\"],\n    ...\n  ]' \\\n  --insert INSERT_ROWS\n\n\nData format:\n\nColumn A: Day (1, 2, 3, ...)\nColumn B: Subject\nColumn C: Module\nColumn D: Daily Learning Objectives\nColumn E: Daily Assessment\nColumn F: YouTube Link\nColumn G: YouTube Title\nColumn H: Tools Used\nColumn I: Fallback Search Query\n\nValidation:\n\nOne row per lesson\nInclude fallback search queries (if any)\nEnsure no blank YouTube Links OR populated Fallback Search Query\nStep 4: Share Sheet\n# ⚠️ CRITICAL: Always share with public view access\ngog drive share \"$SHEET_ID\" --to anyone --role reader\n\nStep 5: Save URL\n# Construct public URL and save\nPUBLIC_URL=\"https://docs.google.com/spreadsheets/d/${SHEET_ID}\"\necho \"$PUBLIC_URL\" > \"<checkpoint-dir>/final-sheet-url.txt\"\n\n\nCheckpoint: ~/.openclaw/workspace/curriculum-designer-checkpoints/<timestamp>-<session-id>/final-sheet-url.txt\n\nLearning Areas Framework\nLearning Area\tFocus\nDigital Literacy\tBasic computer skills, internet safety, AI tools\nAcademic Empowerment\tStudy skills, exam prep, note-taking\nSkill Development\tProgramming, design, content creation\nEmployment Readiness\tResume, communication, job skills\nVideo Selection Criteria\n✅ 5-10 minutes max - keeps engagement high\n✅ Clear explanations - no jargon-heavy content\n✅ Hindi or bilingual - accessible for all students\n✅ Recent content - prefer 2023+ videos\n❌ Long lectures - students lose interest\n❌ Advanced content - match to target audience level\nImportant Guidelines\n⚠️ CRITICAL: Sharing Permissions\nALWAYS share sheet with --to anyone --role reader before returning link\nNEVER return a restricted link - user cannot view it\nCommand: gog drive share <SHEET_ID> --to anyone --role reader\n⚠️ CRITICAL: No Blank URLs\nEvery topic MUST have either:\nA valid YouTube URL, OR\nA search query fallback\nNever leave both fields blank\nAssessment Design\nFormative (daily): Quick quizzes, practice exercises, short tasks\nSummative (end): Projects, presentations, comprehensive tests\nKeep assessments practical and hands-on\nFolder Reference\nResource\tLink\nCurriculum Designer Folder\thttps://drive.google.com/drive/folders/1upJQu-IVmZRJQsNGmJNRzq9IwL67MVL9\nExample Curriculum (AI Tools)\thttps://docs.google.com/spreadsheets/d/1hYC2Q2KlW8dM71biC97RPSvFnxTQa-zN\nSOP Document\thttps://docs.google.com/document/d/1Y5qetW8S4RWsTg7hycIyujgTwTCFn9VV\nSecurity Note\n\n⚠️ API keys are stored locally in .env file - NEVER commit this file to git!\n\nFuture Improvements\nResume from specific stage - Ability to jump to any stage, not just first failed one\nAutomatic Checkpoint Cleanup (Cron Job)\nPurpose\n\nDelete checkpoint directories older than 7 days to prevent disk space bloat while keeping recent sessions for debugging.\n\nCron Job Configuration\nOption 1: Add to User Crontab\n# Edit crontab\ncrontab -e\n\n# Add this line (runs daily at midnight)\n0 0 * * * find ~/.openclaw/workspace/curriculum-designer-checkpoints/ -type d -mtime +7 -exec rm -rf {} \\;\n\nOption 2: Using OpenClaw Cron\n# Create cron job via OpenClaw\nopenclaw cron create \\\n  --name \"checkpoint-cleanup\" \\\n  --schedule \"0 0 * * *\" \\\n  --command \"find ~/.openclaw/workspace/curriculum-designer-checkpoints/ -type d -mtime +7 -exec rm -rf {} \\;\" \\\n  --description \"Delete curriculum-designer checkpoints older than 7 days\"\n\nCron Schedule Options\nSchedule\tCrontab Format\tDescription\nDaily at midnight\t0 0 * * *\tEvery day at 00:00\nWeekly on Sunday\t0 0 * * 0\tEvery Sunday at 00:00\nEvery 6 hours\t0 */6 * * *\tEvery 6 hours (may be too frequent)\nTwice daily\t0 0,12 * * *\tAt 00:00 and 12:00\nVerification\n\nAfter setting up cron, verify it's working:\n\n# List cron jobs (crontab)\ncrontab -l\n\n# List cron jobs (OpenClaw)\nopenclaw cron list\n\nManual Cleanup Test\n\nTest the cleanup command manually before setting up cron:\n\n# Dry run (see what would be deleted)\nfind ~/.openclaw/workspace/curriculum-designer-checkpoints/ -type d -mtime +7 -ls\n\n# Actual cleanup\nfind ~/.openclaw/workspace/curriculum-designer-checkpoints/ -type d -mtime +7 -exec rm -rf {} \\;\n\n# Verify\nls ~/.openclaw/workspace/curriculum-designer-checkpoints/\n\nNotes\n-mtime +7: Files/directories modified more than 7 days ago\n-type d: Only directories (sessions), not individual files\n-exec rm -rf {} \\;: Remove directory and all contents\nCheckpoints are preserved after completion for review, then auto-cleaned after 7 days\nAdjust +7 to a different value if you want different retention period (+3, +14, +30)\nNotes\nAlways search for REAL video URLs before creating curriculum\nSave curriculum sheets in the designated folder\nShare viewable link at the end\nConsider teacher training needs if curriculum requires new tools\nCheckpoints are preserved after completion for review\nEvery topic in final curriculum must have valid video OR search query fallback"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/tarasinghrajput/curriculum-designer",
    "publisherUrl": "https://clawhub.ai/tarasinghrajput/curriculum-designer",
    "owner": "tarasinghrajput",
    "version": "1.0.1",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/curriculum-designer",
    "downloadUrl": "https://openagent3.xyz/downloads/curriculum-designer",
    "agentUrl": "https://openagent3.xyz/skills/curriculum-designer/agent",
    "manifestUrl": "https://openagent3.xyz/skills/curriculum-designer/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/curriculum-designer/agent.md"
  }
}