[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6XE86MQZA0ECT14VDF2AWR9":3,"skill-same:01M6XE86MQZA0ECT14VDF2AWR9":62},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":17,"publishedAt":36,"linkOnly":37,"markdownContent":38,"markdownBody":39,"frontMatter":40,"refName":41,"commitSha":42,"skillDirectory":43,"forksCount":13,"repositoryHtmlUrl":44,"repositoryHomepageUrl":6,"ownerHtmlUrl":45,"ownerBlogUrl":6,"ownerDescription":46,"updatedAt":47,"install":48,"resources":61},"01M6XE86MQZA0ECT14VDF2AWR9","glm-basics",null,"Basic usage of the General Lake Model (GLM) for lake temperature simulation. Use when you need to run GLM, understand input files, or modify configuration parameters.","Waaaalnut\u002Fskillsbench","Waaaalnut","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F103995656?v=4","01M6XCS9K1V51EY3JMB7DGMX24","01M6XCS9Q4WPW88W62C55G1H44",0,"MIT","https:\u002F\u002Fgithub.com\u002FWaaaalnut\u002Fskillsbench\u002Fblob\u002Fmain\u002Ftasks\u002Fglm-lake-mendota\u002Fenvironment\u002Fskills\u002Fglm-basics\u002FSKILL.md",[],[18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35],"glm basics","basics","glm","basic","when","for","usage","you","temperature","understand","input","run","configuration","general","files","use","model","simulation","2026-11-10 10:12:30",false,"---\nname: glm-basics\ndescription: Basic usage of the General Lake Model (GLM) for lake temperature simulation. Use when you need to run GLM, understand input files, or modify configuration parameters.\nlicense: MIT\n---\n\n# GLM Basics Guide\n\n## Overview\n\nGLM (General Lake Model) is a 1D hydrodynamic model that simulates vertical temperature and mixing dynamics in lakes. It reads configuration from a namelist file and produces NetCDF output.\n\n## Running GLM\n```bash\ncd \u002Froot\nglm\n```\n\nGLM reads `glm3.nml` in the current directory and produces output in `output\u002Foutput.nc`.\n\n## Input File Structure\n\n| File | Description |\n|------|-------------|\n| `glm3.nml` | Main configuration file (Fortran namelist format) |\n| `bcs\u002F*.csv` | Boundary condition files (meteorology, inflows, outflows) |\n\n## Configuration File Format\n\n`glm3.nml` uses Fortran namelist format with multiple sections:\n```fortran\n&glm_setup\n   sim_name = 'LakeName'\n   max_layers = 500\n\u002F\n&light\n   Kw = 0.3\n\u002F\n&mixing\n   coef_mix_hyp = 0.5\n\u002F\n&meteorology\n   meteo_fl = 'bcs\u002Fmeteo.csv'\n   wind_factor = 1\n   lw_factor = 1\n   ch = 0.0013\n\u002F\n&inflow\n   inflow_fl = 'bcs\u002Finflow1.csv','bcs\u002Finflow2.csv'\n\u002F\n&outflow\n   outflow_fl = 'bcs\u002Foutflow.csv'\n\u002F\n```\n\n## Modifying Parameters with Python\n```python\nimport re\n\ndef modify_nml(nml_path, params):\n    with open(nml_path, 'r') as f:\n        content = f.read()\n    for param, value in params.items():\n        pattern = rf\"({param}\\s*=\\s*)[\\d\\.\\-e]+\"\n        replacement = rf\"\\g\u003C1>{value}\"\n        content = re.sub(pattern, replacement, content)\n    with open(nml_path, 'w') as f:\n        f.write(content)\n\n# Example usage\nmodify_nml('glm3.nml', {'Kw': 0.25, 'wind_factor': 0.9})\n```\n\n## Common Issues\n\n| Issue | Cause | Solution |\n|-------|-------|----------|\n| GLM fails to start | Missing input files | Check bcs\u002F directory |\n| No output generated | Invalid nml syntax | Check namelist format |\n| Simulation crashes | Unrealistic parameters | Use values within valid ranges |\n\n## Best Practices\n\n- Always backup `glm3.nml` before modifying\n- Run GLM after each parameter change to verify it works\n- Check `output\u002F` directory for results after each run\n","# GLM Basics Guide\n\n## Overview\n\nGLM (General Lake Model) is a 1D hydrodynamic model that simulates vertical temperature and mixing dynamics in lakes. It reads configuration from a namelist file and produces NetCDF output.\n\n## Running GLM\n```bash\ncd \u002Froot\nglm\n```\n\nGLM reads `glm3.nml` in the current directory and produces output in `output\u002Foutput.nc`.\n\n## Input File Structure\n\n| File | Description |\n|------|-------------|\n| `glm3.nml` | Main configuration file (Fortran namelist format) |\n| `bcs\u002F*.csv` | Boundary condition files (meteorology, inflows, outflows) |\n\n## Configuration File Format\n\n`glm3.nml` uses Fortran namelist format with multiple sections:\n```fortran\n&glm_setup\n   sim_name = 'LakeName'\n   max_layers = 500\n\u002F\n&light\n   Kw = 0.3\n\u002F\n&mixing\n   coef_mix_hyp = 0.5\n\u002F\n&meteorology\n   meteo_fl = 'bcs\u002Fmeteo.csv'\n   wind_factor = 1\n   lw_factor = 1\n   ch = 0.0013\n\u002F\n&inflow\n   inflow_fl = 'bcs\u002Finflow1.csv','bcs\u002Finflow2.csv'\n\u002F\n&outflow\n   outflow_fl = 'bcs\u002Foutflow.csv'\n\u002F\n```\n\n## Modifying Parameters with Python\n```python\nimport re\n\ndef modify_nml(nml_path, params):\n    with open(nml_path, 'r') as f:\n        content = f.read()\n    for param, value in params.items():\n        pattern = rf\"({param}\\s*=\\s*)[\\d\\.\\-e]+\"\n        replacement = rf\"\\g\u003C1>{value}\"\n        content = re.sub(pattern, replacement, content)\n    with open(nml_path, 'w') as f:\n        f.write(content)\n\n# Example usage\nmodify_nml('glm3.nml', {'Kw': 0.25, 'wind_factor': 0.9})\n```\n\n## Common Issues\n\n| Issue | Cause | Solution |\n|-------|-------|----------|\n| GLM fails to start | Missing input files | Check bcs\u002F directory |\n| No output generated | Invalid nml syntax | Check namelist format |\n| Simulation crashes | Unrealistic parameters | Use values within valid ranges |\n\n## Best Practices\n\n- Always backup `glm3.nml` before modifying\n- Run GLM after each parameter change to verify it works\n- Check `output\u002F` directory for results after each run\n",{"name":5,"license":14,"description":7},"main","7eeb258ada72b7f58119b0e7a2c00ea89d9beedd","tasks\u002Fglm-lake-mendota\u002Fenvironment\u002Fskills\u002Fglm-basics","https:\u002F\u002Fgithub.com\u002FWaaaalnut\u002Fskillsbench","https:\u002F\u002Fgithub.com\u002FWaaaalnut","student of Zhejiang University","2026-04-21 23:16:23",{"source":8,"skillName":5,"commands":49,"prompt":59,"zipAvailable":60},[50,53,56],{"tool":51,"command":52},"npx","npx skills add Waaaalnut\u002Fskillsbench --skill glm-basics",{"tool":54,"command":55},"bunx","bunx skills add Waaaalnut\u002Fskillsbench --skill glm-basics",{"tool":57,"command":58},"pnpm","pnpm dlx skills add Waaaalnut\u002Fskillsbench --skill glm-basics","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FWaaaalnut\u002Fskillsbench\u002Fblob\u002Fmain\u002Ftasks\u002Fglm-lake-mendota\u002Fenvironment\u002Fskills\u002Fglm-basics\u002FSKILL.md",true,[],[63,78,92,117,139,157],{"skillNo":64,"name":65,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":66,"licenseFileUrl":6,"sourceHtmlUrl":67,"categories":68,"keywords":74,"publishedAt":36},"01M6XEWMJ6VY3ZC53MPDCPG3GH","data-reconciliation","Apache-2.0","https:\u002F\u002Fgithub.com\u002FWaaaalnut\u002Fskillsbench\u002Fblob\u002Fmain\u002Ftasks\u002Fxlsx-recover-data\u002Fenvironment\u002Fskills\u002Fdata-reconciliation\u002FSKILL.md",[69],{"categoryNo":70,"categoryName":71,"taxonomyType":72,"taxonomyTypeDesc":73},"01JBSEEDCAT000000000000033","数据分析师","PROFESSION","适用职业",[75,76,77],"data reconciliation","reconciliation","data",{"skillNo":79,"name":80,"nameZh":6,"description":81,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":66,"licenseFileUrl":6,"sourceHtmlUrl":82,"categories":83,"keywords":84,"publishedAt":36},"01M6XEW8MNPMF1KRXV6ATGFRQF","speech-to-text","Transcribe video to timestamped text using Whisper tiny model (pre-installed).","https:\u002F\u002Fgithub.com\u002FWaaaalnut\u002Fskillsbench\u002Fblob\u002Fmain\u002Ftasks\u002Fvideo-tutorial-indexer\u002Fenvironment\u002Fskills\u002Fspeech-to-text\u002FSKILL.md",[],[85,86,87,88,89,34,90,91],"speech","text","speech to text","transcribe video","whisper","Video","transcribe",{"skillNo":93,"name":94,"nameZh":6,"description":95,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":66,"licenseFileUrl":6,"sourceHtmlUrl":96,"categories":97,"keywords":103,"publishedAt":36},"01M6XEW3FQZP0T1RKQQJFXVY9T","video-processor","Process videos by removing segments and concatenating remaining parts. Use when you need to remove detected pauses\u002Fopenings from videos, create highlight reels, or batch process segment removals using ffmpeg filter_complex.","https:\u002F\u002Fgithub.com\u002FWaaaalnut\u002Fskillsbench\u002Fblob\u002Fmain\u002Ftasks\u002Fvideo-silence-remover\u002Fenvironment\u002Fskills\u002Fvideo-processor\u002FSKILL.md",[98],{"categoryNo":99,"categoryName":100,"taxonomyType":101,"taxonomyTypeDesc":102},"01JBSEEDCAT000000000000016","图像与多媒体","SCENARIO","使用场景",[90,104,105,106,107,108,22,109,110,111,112,25,113,114,115,33,116],"processor","video processor","batch","create","reels","parts","segments","process","videos","segment","filter","ffmpeg","remove",{"skillNo":118,"name":119,"nameZh":6,"description":120,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":66,"licenseFileUrl":6,"sourceHtmlUrl":121,"categories":122,"keywords":124,"publishedAt":36},"01M6XEVXJ5KZ0NTY3XZKRY4AS1","silence-detector","Detect initial silence segments in audio\u002Fvideo using energy-based analysis. Use when you need to find low-energy periods at the start of recordings (title slides, setup time, pre-roll silence).","https:\u002F\u002Fgithub.com\u002FWaaaalnut\u002Fskillsbench\u002Fblob\u002Fmain\u002Ftasks\u002Fvideo-silence-remover\u002Fenvironment\u002Fskills\u002Fsilence-detector\u002FSKILL.md",[123],{"categoryNo":99,"categoryName":100,"taxonomyType":101,"taxonomyTypeDesc":102},[125,126,127,128,22,25,129,130,131,132,133,110,134,135,90,136,137,138,33],"detector","silence detector","title","slides","time","energy","at","recordings","detect","find","Audio","analysis","start","setup",{"skillNo":140,"name":141,"nameZh":6,"description":142,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":66,"licenseFileUrl":6,"sourceHtmlUrl":143,"categories":144,"keywords":145,"publishedAt":36},"01M6XEVT3NGRN1FT7JPMAPXS6M","segment-combiner","Combine multiple segment detection results into a unified list. Use when you need to merge segments from different detectors, prepare removal lists for video processing, or consolidate detection outputs.","https:\u002F\u002Fgithub.com\u002FWaaaalnut\u002Fskillsbench\u002Fblob\u002Fmain\u002Ftasks\u002Fvideo-silence-remover\u002Fenvironment\u002Fskills\u002Fsegment-combiner\u002FSKILL.md",[],[113,146,90,147,148,149,150,23,22,151,152,110,25,153,154,33,155,156],"segment combiner","detection","prepare","merge","video processing","outputs","combine","processing","consolidate","results","list",{"skillNo":158,"name":159,"nameZh":6,"description":160,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":66,"licenseFileUrl":6,"sourceHtmlUrl":161,"categories":162,"keywords":166,"publishedAt":36},"01M6XEVMPVASGS2KX86QK4FMT7","report-generator","Generate compression reports for video processing. Use when you need to create structured JSON reports with duration statistics, compression ratios, and segment details after video processing.","https:\u002F\u002Fgithub.com\u002FWaaaalnut\u002Fskillsbench\u002Fblob\u002Fmain\u002Ftasks\u002Fvideo-silence-remover\u002Fenvironment\u002Fskills\u002Freport-generator\u002FSKILL.md",[163],{"categoryNo":164,"categoryName":165,"taxonomyType":72,"taxonomyTypeDesc":73},"01JBSEEDCAT000000000000034","行政与办公人员",[167,168,169,113,22,23,25,170,153,171,172,173,33,150,174,90,175,176,107],"generator","report generator","report","with","statistics","structured","reports","json","compression","generate"]