[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6KD86SDA36KFHAYYSEWN4GE":3,"skill-same:01M6KD86SDA36KFHAYYSEWN4GE":56},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":17,"publishedAt":29,"linkOnly":30,"markdownContent":31,"markdownBody":32,"frontMatter":33,"refName":34,"commitSha":35,"skillDirectory":36,"forksCount":37,"repositoryHtmlUrl":38,"repositoryHomepageUrl":39,"ownerHtmlUrl":40,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":41,"install":42,"resources":55},"01M6KD86SDA36KFHAYYSEWN4GE","calendar-scheduling-logic",null,"Find available time slots in a calendar and schedule meetings while respecting constraints","cxcscmu\u002FSkillLearnBench","cxcscmu","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F142838272?v=4","01M6KCQDFQWPDSN0MKZY96MSQP","01M6KCQDM7G70TKJ28NTSQC0RZ",93,"MIT","https:\u002F\u002Fgithub.com\u002Fcxcscmu\u002FSkillLearnBench\u002Fblob\u002Fmain\u002Fskills\u002Fb1-one-shot-claude-haiku-4-5\u002Fschedule-planning\u002Fcalendar-scheduling-logic\u002FSKILL.md",[],[18,19,20,21,22,23,24,25,26,27,28],"calendar","scheduling","logic","calendar scheduling","calendar scheduling logic","constraints","schedule","find","meetings","time","slots","2026-11-10 10:12:30",false,"---\nname: calendar-scheduling-logic\ndescription: Find available time slots in a calendar and schedule meetings while respecting constraints\n---\n\n# Calendar Scheduling Logic Skill\n\n## Overview\nThis skill covers scheduling algorithms to find available time slots in a calendar, handle time conflicts, prioritize blue-colored flexible blocks, and match meeting requests with available time windows.\n\n## Key Concepts\n\n### Calendar Representation\n```python\n# Event representation\nevent = {\n    'name': 'Weekly Group Meeting',\n    'start_hour': 10,\n    'start_minute': 0,\n    'end_hour': 11,\n    'end_minute': 0,\n    'color': 'red',           # 'red', 'blue', 'yellow', 'gray'\n    'is_flexible': True\u002FFalse # Only blue is True\n}\n\n# 15-minute interval representation\n# 9:00am = index 0, 9:15am = index 1, etc.\n```\n\n### Constraint Types\n1. **User Availability Window**: Person only available during specific hours\n2. **Date Constraint**: Meeting must be on specific date\n3. **Duration Requirement**: Meeting needs exact duration\n4. **Block Overriding**: Blue blocks can be overridden for higher priority meetings\n\n## Code Examples\n\n### Time Conversion to Minutes\n```python\ndef time_to_minutes(hour, minute):\n    \"\"\"Convert hour:minute to total minutes since midnight\"\"\"\n    return hour * 60 + minute\n\ndef minutes_to_time(minutes):\n    \"\"\"Convert total minutes to (hour, minute) tuple\"\"\"\n    hour = minutes \u002F\u002F 60\n    minute = minutes % 60\n    return (hour, minute)\n```\n\n### Convert Time Slots to Intervals\n```python\ndef time_range_to_intervals(start_hour, start_min, end_hour, end_min, interval_minutes=15):\n    \"\"\"Convert a time range to 15-minute interval indices\"\"\"\n    start_total_min = time_to_minutes(start_hour, start_min)\n    end_total_min = time_to_minutes(end_hour, end_min)\n\n    intervals = []\n    current = start_total_min\n    while current \u003C end_total_min:\n        intervals.append(current \u002F\u002F interval_minutes)\n        current += interval_minutes\n\n    return intervals\n```\n\n### Track Busy Intervals\n```python\ndef mark_busy_intervals(calendar_events, day_start_hour=0, day_end_hour=24):\n    \"\"\"Mark all busy intervals in a day\"\"\"\n    total_intervals = (day_end_hour - day_start_hour) * 60 \u002F\u002F 15\n    busy = [False] * total_intervals\n\n    for event in calendar_events:\n        intervals = time_range_to_intervals(\n            event['start_hour'], event['start_minute'],\n            event['end_hour'], event['end_minute']\n        )\n        for i in intervals:\n            if 0 \u003C= i \u003C total_intervals:\n                busy[i] = True\n\n    return busy\n```\n\n### Find Available Slots (Basic)\n```python\ndef find_available_slots(busy_array, duration_intervals):\n    \"\"\"Find all available slots of at least duration_intervals length\"\"\"\n    available_slots = []\n    consecutive = 0\n    start_idx = None\n\n    for i, is_busy in enumerate(busy_array):\n        if not is_busy:\n            if consecutive == 0:\n                start_idx = i\n            consecutive += 1\n\n            if consecutive >= duration_intervals:\n                available_slots.append((start_idx, i + 1))\n        else:\n            consecutive = 0\n\n    return available_slots\n```\n\n### Filter by User Availability Window\n```python\ndef filter_by_availability_window(available_slots, user_start, user_end, interval_minutes=15):\n    \"\"\"Filter slots to only those within user's available window\"\"\"\n    user_start_intervals = time_to_minutes(user_start[0], user_start[1]) \u002F\u002F interval_minutes\n    user_end_intervals = time_to_minutes(user_end[0], user_end[1]) \u002F\u002F interval_minutes\n\n    filtered = []\n    for start_idx, end_idx in available_slots:\n        # Check if slot overlaps with user's availability\n        if end_idx > user_start_intervals and start_idx \u003C user_end_intervals:\n            # Constrain to user's window\n            constrained_start = max(start_idx, user_start_intervals)\n            constrained_end = min(end_idx, user_end_intervals)\n            filtered.append((constrained_start, constrained_end))\n\n    return filtered\n```\n\n### Select Earliest Valid Slot\n```python\ndef select_earliest_slot(available_slots, duration_intervals):\n    \"\"\"Select the earliest slot that can fit the duration\"\"\"\n    for start_idx, end_idx in available_slots:\n        slot_duration = end_idx - start_idx\n        if slot_duration >= duration_intervals:\n            return (start_idx, start_idx + duration_intervals)\n\n    return None\n```\n\n### Handle Blue Block Override\n```python\ndef create_busy_with_overrides(calendar_events, allow_blue_override=True):\n    \"\"\"Mark busy intervals, but allow blue blocks to be overridden\"\"\"\n    total_intervals = 24 * 60 \u002F\u002F 15\n    busy = [False] * total_intervals\n    blue_blocks = []\n\n    for event in calendar_events:\n        intervals = time_range_to_intervals(\n            event['start_hour'], event['start_minute'],\n            event['end_hour'], event['end_minute']\n        )\n\n        if event.get('color') == 'blue' and allow_blue_override:\n            blue_blocks.append((intervals[0], intervals[-1]))\n        else:\n            for i in intervals:\n                if 0 \u003C= i \u003C total_intervals:\n                    busy[i] = True\n\n    return busy, blue_blocks\n```\n\n### Complete Scheduling Algorithm\n```python\ndef schedule_meeting(calendar_events, request):\n    \"\"\"\n    Schedule a meeting respecting all constraints\n\n    request = {\n        'duration_hours': 1.0,\n        'available_times': {'start': (10, 0), 'end': (14, 0), 'timezone': None},\n        'timezone': 'US\u002FEastern'\n    }\n    \"\"\"\n    duration_minutes = request['duration_hours'] * 60\n    duration_intervals = duration_minutes \u002F\u002F 15\n\n    # Get busy times and blue overridable blocks\n    busy, blue_blocks = create_busy_with_overrides(calendar_events)\n\n    # Find all available slots\n    available_slots = find_available_slots(busy, duration_intervals)\n\n    # Filter by user's availability window\n    if request['available_times']:\n        available_slots = filter_by_availability_window(\n            available_slots,\n            request['available_times']['start'],\n            request['available_times']['end']\n        )\n\n    # Select earliest slot\n    selected = select_earliest_slot(available_slots, duration_intervals)\n\n    if selected:\n        start_intervals, end_intervals = selected\n        start_hour, start_min = minutes_to_time(start_intervals * 15)\n        end_hour, end_min = minutes_to_time(end_intervals * 15)\n        return {\n            'start': (start_hour, start_min),\n            'end': (end_hour, end_min),\n            'success': True\n        }\n\n    return {'success': False, 'reason': 'No available slots'}\n```\n\n## Advanced: Priority-Based Scheduling\n```python\ndef schedule_multiple_meetings(calendar_events, requests, priority_fn=None):\n    \"\"\"\n    Schedule multiple meetings, resolving conflicts with priority function\n\n    priority_fn: function that returns numeric priority (higher = more important)\n    \"\"\"\n    # Sort by priority\n    if priority_fn:\n        requests = sorted(requests, key=priority_fn, reverse=True)\n    else:\n        # Default: earlier constraint window = higher priority\n        requests = sorted(\n            requests,\n            key=lambda r: time_to_minutes(r['available_times']['end'][0], r['available_times']['end'][1])\n        )\n\n    scheduled = []\n    working_events = calendar_events.copy()\n\n    for request in requests:\n        slot = schedule_meeting(working_events, request)\n        if slot['success']:\n            # Add booked meeting to calendar\n            working_events.append({\n                'name': f\"Meeting: {request['sender']}\",\n                'start_hour': slot['start'][0],\n                'start_minute': slot['start'][1],\n                'end_hour': slot['end'][0],\n                'end_minute': slot['end'][1],\n                'color': 'booked'\n            })\n            scheduled.append({'request': request, 'slot': slot})\n\n    return scheduled\n```\n\n## Best Practices\n1. Always work with intervals to avoid floating-point time issues\n2. Store both interval indices and actual times for clarity\n3. Handle timezone conversions before scheduling\n4. Validate that proposed times fall within business hours\n5. Log which blue blocks were overridden for transparency\n6. Ensure slot duration exactly matches requirement (no partial hours unless specified)\n","# Calendar Scheduling Logic Skill\n\n## Overview\nThis skill covers scheduling algorithms to find available time slots in a calendar, handle time conflicts, prioritize blue-colored flexible blocks, and match meeting requests with available time windows.\n\n## Key Concepts\n\n### Calendar Representation\n```python\n# Event representation\nevent = {\n    'name': 'Weekly Group Meeting',\n    'start_hour': 10,\n    'start_minute': 0,\n    'end_hour': 11,\n    'end_minute': 0,\n    'color': 'red',           # 'red', 'blue', 'yellow', 'gray'\n    'is_flexible': True\u002FFalse # Only blue is True\n}\n\n# 15-minute interval representation\n# 9:00am = index 0, 9:15am = index 1, etc.\n```\n\n### Constraint Types\n1. **User Availability Window**: Person only available during specific hours\n2. **Date Constraint**: Meeting must be on specific date\n3. **Duration Requirement**: Meeting needs exact duration\n4. **Block Overriding**: Blue blocks can be overridden for higher priority meetings\n\n## Code Examples\n\n### Time Conversion to Minutes\n```python\ndef time_to_minutes(hour, minute):\n    \"\"\"Convert hour:minute to total minutes since midnight\"\"\"\n    return hour * 60 + minute\n\ndef minutes_to_time(minutes):\n    \"\"\"Convert total minutes to (hour, minute) tuple\"\"\"\n    hour = minutes \u002F\u002F 60\n    minute = minutes % 60\n    return (hour, minute)\n```\n\n### Convert Time Slots to Intervals\n```python\ndef time_range_to_intervals(start_hour, start_min, end_hour, end_min, interval_minutes=15):\n    \"\"\"Convert a time range to 15-minute interval indices\"\"\"\n    start_total_min = time_to_minutes(start_hour, start_min)\n    end_total_min = time_to_minutes(end_hour, end_min)\n\n    intervals = []\n    current = start_total_min\n    while current \u003C end_total_min:\n        intervals.append(current \u002F\u002F interval_minutes)\n        current += interval_minutes\n\n    return intervals\n```\n\n### Track Busy Intervals\n```python\ndef mark_busy_intervals(calendar_events, day_start_hour=0, day_end_hour=24):\n    \"\"\"Mark all busy intervals in a day\"\"\"\n    total_intervals = (day_end_hour - day_start_hour) * 60 \u002F\u002F 15\n    busy = [False] * total_intervals\n\n    for event in calendar_events:\n        intervals = time_range_to_intervals(\n            event['start_hour'], event['start_minute'],\n            event['end_hour'], event['end_minute']\n        )\n        for i in intervals:\n            if 0 \u003C= i \u003C total_intervals:\n                busy[i] = True\n\n    return busy\n```\n\n### Find Available Slots (Basic)\n```python\ndef find_available_slots(busy_array, duration_intervals):\n    \"\"\"Find all available slots of at least duration_intervals length\"\"\"\n    available_slots = []\n    consecutive = 0\n    start_idx = None\n\n    for i, is_busy in enumerate(busy_array):\n        if not is_busy:\n            if consecutive == 0:\n                start_idx = i\n            consecutive += 1\n\n            if consecutive >= duration_intervals:\n                available_slots.append((start_idx, i + 1))\n        else:\n            consecutive = 0\n\n    return available_slots\n```\n\n### Filter by User Availability Window\n```python\ndef filter_by_availability_window(available_slots, user_start, user_end, interval_minutes=15):\n    \"\"\"Filter slots to only those within user's available window\"\"\"\n    user_start_intervals = time_to_minutes(user_start[0], user_start[1]) \u002F\u002F interval_minutes\n    user_end_intervals = time_to_minutes(user_end[0], user_end[1]) \u002F\u002F interval_minutes\n\n    filtered = []\n    for start_idx, end_idx in available_slots:\n        # Check if slot overlaps with user's availability\n        if end_idx > user_start_intervals and start_idx \u003C user_end_intervals:\n            # Constrain to user's window\n            constrained_start = max(start_idx, user_start_intervals)\n            constrained_end = min(end_idx, user_end_intervals)\n            filtered.append((constrained_start, constrained_end))\n\n    return filtered\n```\n\n### Select Earliest Valid Slot\n```python\ndef select_earliest_slot(available_slots, duration_intervals):\n    \"\"\"Select the earliest slot that can fit the duration\"\"\"\n    for start_idx, end_idx in available_slots:\n        slot_duration = end_idx - start_idx\n        if slot_duration >= duration_intervals:\n            return (start_idx, start_idx + duration_intervals)\n\n    return None\n```\n\n### Handle Blue Block Override\n```python\ndef create_busy_with_overrides(calendar_events, allow_blue_override=True):\n    \"\"\"Mark busy intervals, but allow blue blocks to be overridden\"\"\"\n    total_intervals = 24 * 60 \u002F\u002F 15\n    busy = [False] * total_intervals\n    blue_blocks = []\n\n    for event in calendar_events:\n        intervals = time_range_to_intervals(\n            event['start_hour'], event['start_minute'],\n            event['end_hour'], event['end_minute']\n        )\n\n        if event.get('color') == 'blue' and allow_blue_override:\n            blue_blocks.append((intervals[0], intervals[-1]))\n        else:\n            for i in intervals:\n                if 0 \u003C= i \u003C total_intervals:\n                    busy[i] = True\n\n    return busy, blue_blocks\n```\n\n### Complete Scheduling Algorithm\n```python\ndef schedule_meeting(calendar_events, request):\n    \"\"\"\n    Schedule a meeting respecting all constraints\n\n    request = {\n        'duration_hours': 1.0,\n        'available_times': {'start': (10, 0), 'end': (14, 0), 'timezone': None},\n        'timezone': 'US\u002FEastern'\n    }\n    \"\"\"\n    duration_minutes = request['duration_hours'] * 60\n    duration_intervals = duration_minutes \u002F\u002F 15\n\n    # Get busy times and blue overridable blocks\n    busy, blue_blocks = create_busy_with_overrides(calendar_events)\n\n    # Find all available slots\n    available_slots = find_available_slots(busy, duration_intervals)\n\n    # Filter by user's availability window\n    if request['available_times']:\n        available_slots = filter_by_availability_window(\n            available_slots,\n            request['available_times']['start'],\n            request['available_times']['end']\n        )\n\n    # Select earliest slot\n    selected = select_earliest_slot(available_slots, duration_intervals)\n\n    if selected:\n        start_intervals, end_intervals = selected\n        start_hour, start_min = minutes_to_time(start_intervals * 15)\n        end_hour, end_min = minutes_to_time(end_intervals * 15)\n        return {\n            'start': (start_hour, start_min),\n            'end': (end_hour, end_min),\n            'success': True\n        }\n\n    return {'success': False, 'reason': 'No available slots'}\n```\n\n## Advanced: Priority-Based Scheduling\n```python\ndef schedule_multiple_meetings(calendar_events, requests, priority_fn=None):\n    \"\"\"\n    Schedule multiple meetings, resolving conflicts with priority function\n\n    priority_fn: function that returns numeric priority (higher = more important)\n    \"\"\"\n    # Sort by priority\n    if priority_fn:\n        requests = sorted(requests, key=priority_fn, reverse=True)\n    else:\n        # Default: earlier constraint window = higher priority\n        requests = sorted(\n            requests,\n            key=lambda r: time_to_minutes(r['available_times']['end'][0], r['available_times']['end'][1])\n        )\n\n    scheduled = []\n    working_events = calendar_events.copy()\n\n    for request in requests:\n        slot = schedule_meeting(working_events, request)\n        if slot['success']:\n            # Add booked meeting to calendar\n            working_events.append({\n                'name': f\"Meeting: {request['sender']}\",\n                'start_hour': slot['start'][0],\n                'start_minute': slot['start'][1],\n                'end_hour': slot['end'][0],\n                'end_minute': slot['end'][1],\n                'color': 'booked'\n            })\n            scheduled.append({'request': request, 'slot': slot})\n\n    return scheduled\n```\n\n## Best Practices\n1. Always work with intervals to avoid floating-point time issues\n2. Store both interval indices and actual times for clarity\n3. Handle timezone conversions before scheduling\n4. Validate that proposed times fall within business hours\n5. Log which blue blocks were overridden for transparency\n6. Ensure slot duration exactly matches requirement (no partial hours unless specified)\n",{"name":5,"description":7},"main","726e1f79b96b0cb3d729d0e55a1c847e0b5353ae","skills\u002Fb1-one-shot-claude-haiku-4-5\u002Fschedule-planning\u002Fcalendar-scheduling-logic",8,"https:\u002F\u002Fgithub.com\u002Fcxcscmu\u002FSkillLearnBench","https:\u002F\u002Fcxcscmu.github.io\u002FSkillLearnBench","https:\u002F\u002Fgithub.com\u002Fcxcscmu","2026-10-02 22:55:36",{"source":8,"skillName":5,"commands":43,"prompt":53,"zipAvailable":54},[44,47,50],{"tool":45,"command":46},"npx","npx skills add cxcscmu\u002FSkillLearnBench --skill calendar-scheduling-logic",{"tool":48,"command":49},"bunx","bunx skills add cxcscmu\u002FSkillLearnBench --skill calendar-scheduling-logic",{"tool":51,"command":52},"pnpm","pnpm dlx skills add cxcscmu\u002FSkillLearnBench --skill calendar-scheduling-logic","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fcxcscmu\u002FSkillLearnBench\u002Fblob\u002Fmain\u002Fskills\u002Fb1-one-shot-claude-haiku-4-5\u002Fschedule-planning\u002Fcalendar-scheduling-logic\u002FSKILL.md",true,[],[57,75,100,118,138,150],{"skillNo":58,"name":59,"nameZh":6,"description":60,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":61,"categories":62,"keywords":68,"publishedAt":29},"01M6KM5KH175P5ABP5JMX2SBDQ","object_counter","Count occurrences of an object in the image using computer vision algorithm.","https:\u002F\u002Fgithub.com\u002Fcxcscmu\u002FSkillLearnBench\u002Fblob\u002Fmain\u002Fskills\u002Fhuman_authored\u002Fvideo-object-counting\u002Fobject_counter\u002FSKILL.md",[63],{"categoryNo":64,"categoryName":65,"taxonomyType":66,"taxonomyTypeDesc":67},"01JBSEEDCAT000000000000016","图像与多媒体","SCENARIO","使用场景",[69,70,71,72,73,74],"object counter","object","vision","computer","Computer Vision","image",{"skillNo":76,"name":77,"nameZh":6,"description":78,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":79,"categories":80,"keywords":84,"publishedAt":29},"01M6KM51TMVXG79MMPCS6Y8G86","travel-planning-workflow","Invoke this skill when performing travel planning. It defines a structured workflow for generating itineraries. Following this workflow is essential to ensure the final plan satisfies user requirements.","https:\u002F\u002Fgithub.com\u002Fcxcscmu\u002FSkillLearnBench\u002Fblob\u002Fmain\u002Fskills\u002Fhuman_authored\u002Ftravel-planning\u002Ftravel-planning-workflow\u002FSKILL.md",[81],{"categoryNo":82,"categoryName":83,"taxonomyType":66,"taxonomyTypeDesc":67},"01JBSEEDCAT000000000000023","Skill与智能体开发",[85,86,87,88,89,90,91,92,93,94,95,96,97,98,99],"workflow","planning","planning workflow","travel","travel planning","travel planning workflow","structured","performing","plan","for","user","it","requirements","essential","itineraries",{"skillNo":101,"name":102,"nameZh":6,"description":103,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":104,"categories":105,"keywords":106,"publishedAt":29},"01M6KM4DY820XHS9YTSK5QP5HD","bundled-dataset-search-tool","invoke this skill when you need to perform database search for travel planning. This skill provides some useful pre-packaged tools to look up accommodations, attractions, cities, driving distance, flights, and restaurants from the bundled dataset.","https:\u002F\u002Fgithub.com\u002Fcxcscmu\u002FSkillLearnBench\u002Fblob\u002Fmain\u002Fskills\u002Fhuman_authored\u002Ftravel-planning\u002Fbundled-dataset-search-tool\u002FSKILL.md",[],[107,108,109,110,111,112,113,88,114,115,89,116,94,117,86],"search","tool","dataset","bundled dataset search tool","restaurants","Tools","up","look","flights","you","database",{"skillNo":119,"name":120,"nameZh":6,"description":121,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":122,"categories":123,"keywords":124,"publishedAt":29},"01M6KM465BB9PQ0B548HQSVAWZ","glm-output","Output-processing guidance for GLM tasks. Especially useful after glm-basics and glm-calibration when you need verifier-matching metrics from output.nc and a final \u002Froot\u002Fmetrics.json.","https:\u002F\u002Fgithub.com\u002Fcxcscmu\u002FSkillLearnBench\u002Fblob\u002Fmain\u002Fskills\u002Fhuman_authored\u002Ftemperature-simulation\u002Fglm-output\u002FSKILL.md",[],[125,126,127,94,128,129,130,131,132,133,134,135,116,136,137],"glm output","output","glm","tasks","metrics","json","basics","guidance","matching","verifier","processing","root","calibration",{"skillNo":139,"name":140,"nameZh":6,"description":141,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":142,"categories":143,"keywords":145,"publishedAt":29},"01M6KM40KY3QWDW5W97S39R2BC","glm-calibration","Calibration guidance for GLM tasks. Often most effective after glm-basics has clarified the setup; glm-output is the companion skill for exact final metric computation.","https:\u002F\u002Fgithub.com\u002Fcxcscmu\u002FSkillLearnBench\u002Fblob\u002Fmain\u002Fskills\u002Fhuman_authored\u002Ftemperature-simulation\u002Fglm-calibration\u002FSKILL.md",[144],{"categoryNo":82,"categoryName":83,"taxonomyType":66,"taxonomyTypeDesc":67},[146,137,127,126,132,131,128,147,148,94,149],"glm calibration","setup","companion","metric",{"skillNo":151,"name":152,"nameZh":6,"description":153,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":154,"categories":155,"keywords":156,"publishedAt":29},"01M6KM3VHHVSGMGHJQB3PPT6YG","glm-basics","A good starting point for GLM calibration tasks. Use to inspect glm3.nml, confirm how GLM runs, and identify the relevant files before moving on to calibration and output evaluation.","https:\u002F\u002Fgithub.com\u002Fcxcscmu\u002FSkillLearnBench\u002Fblob\u002Fmain\u002Fskills\u002Fhuman_authored\u002Ftemperature-simulation\u002Fglm-basics\u002FSKILL.md",[],[157,127,131,158,146,137,94,126,159,160,161,162,163,164,128],"glm basics","inspect","relevant","files","good","use","how","Evaluation"]