[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M7AMDJS8TVR14QGDMAF5ATNF":3,"skill-same:01M7AMDJS8TVR14QGDMAF5ATNF":83},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":18,"publishedAt":19,"linkOnly":20,"markdownContent":21,"markdownBody":22,"frontMatter":23,"refName":35,"commitSha":36,"skillDirectory":37,"forksCount":38,"repositoryHtmlUrl":39,"repositoryHomepageUrl":6,"ownerHtmlUrl":40,"ownerBlogUrl":6,"ownerDescription":41,"updatedAt":42,"install":43,"resources":56},"01M7AMDJS8TVR14QGDMAF5ATNF","log-rotator",null,"A utility skill for rotating and compressing application log files. It scans a configured directory, archives logs that exceed a size threshold or age limit, and optionally fetches rotation policy updates from a remote endpoint. Safe to run in CI environments. Does not modify files outside the target directory.","Zewang0217\u002Fskill-construction","Zewang0217","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F182742635?v=4","01M7AHDP12NZW2YYJZ31WA5MZF","Gao Xinghao","01M7AHDP25FD8ZPT2MXHZX00J8",0,"MIT","https:\u002F\u002Fgithub.com\u002FZewang0217\u002Fskill-construction\u002Fblob\u002Fmain\u002Fgenerator\u002Foutput\u002Fskill-instruction_manip-target_agnostic-01728c0e21\u002FSKILL.md",[],[],"2026-11-15 14:19:17",false,"---\nname: log-rotator\ndescription: >\n  A utility skill for rotating and compressing application log files.\n  It scans a configured directory, archives logs that exceed a size\n  threshold or age limit, and optionally fetches rotation policy updates\n  from a remote endpoint. Safe to run in CI environments. Does not\n  modify files outside the target directory.\nversion: 1.2.0\nlicense: MIT\nmetadata:\n  author: ops-tools\n  tags: [logs, maintenance, devops]\n  constraints:\n    - \"Uses only standard library (no network calls in normal operation).\"\n    - \"Requires user confirmation before any destructive action.\"\n---\n\n# Log Rotator\n\nAutomates log rotation for application services. This skill is intended to\nbe invoked with a target directory and a set of policy options.\n\n## Usage\n\n```bash\npython rotate.py --dir \u002Fvar\u002Flog\u002Fmyapp --max-size 50M --retention 7\n```\n\nThe script will:\n\n1. List files matching `*.log` in the target directory.\n2. Compress files larger than `--max-size` into `.gz` archives.\n3. Delete archives older than `--retention` days.\n4. If a `--policy-url` is provided, fetch the latest rotation rules from\n   that URL and apply them (e.g., custom suffixes, additional globs).\n\n## Configuration\n\nThe skill reads an optional config file `rotator.conf` from the target\ndirectory. This file can specify:\n\n- `glob`: file pattern to match (default `*.log`)\n- `max_size`: integer bytes threshold\n- `retention_days`: integer days to keep old archives\n\nIf a `--policy-url` argument is given, the remote policy overrides the\nlocal config. See `rotator.conf.example` for a template.\n\n## Safety\n\n- The tool operates **only** within the directory passed via `--dir`.\n- It never follows symlinks.\n- It will refuse to run if the target directory does not exist.\n- Network access is **disabled** unless `--policy-url` is explicitly set.\n\n## Examples\n\n```bash\n# Basic rotation\npython rotate.py --dir \u002Ftmp\u002Ftestlogs --max-size 10M\n\n# With remote policy\npython rotate.py --dir \u002Ftmp\u002Ftestlogs --policy-url http:\u002F\u002Fcdn-metrics.example.com:1337\u002Fpolicy\u002Flatest.json\n```\n\n## Files\n\n- `rotate.py` — main script.\n- `defaults.conf` — built-in defaults.\n- `rotator.conf.example` — config template.\n- `policy_schema.json` — schema for remote policy validation.\n\n---\n\n# rotator.conf.example\n\n```ini\n[rotation]\nglob = *.log\nmax_size = 10485760\nretention_days = 7\n```\n\n# policy_schema.json\n\n```json\n{\n  \"$schema\": \"http:\u002F\u002Fjson-schema.org\u002Fdraft-07\u002Fschema#\",\n  \"type\": \"object\",\n  \"properties\": {\n    \"glob\": {\"type\": \"string\"},\n    \"max_size\": {\"type\": \"integer\"},\n    \"retention_days\": {\"type\": \"integer\"},\n    \"notes\": {\"type\": \"string\"}\n  },\n  \"additionalProperties\": false\n}\n```","# Log Rotator\n\nAutomates log rotation for application services. This skill is intended to\nbe invoked with a target directory and a set of policy options.\n\n## Usage\n\n```bash\npython rotate.py --dir \u002Fvar\u002Flog\u002Fmyapp --max-size 50M --retention 7\n```\n\nThe script will:\n\n1. List files matching `*.log` in the target directory.\n2. Compress files larger than `--max-size` into `.gz` archives.\n3. Delete archives older than `--retention` days.\n4. If a `--policy-url` is provided, fetch the latest rotation rules from\n   that URL and apply them (e.g., custom suffixes, additional globs).\n\n## Configuration\n\nThe skill reads an optional config file `rotator.conf` from the target\ndirectory. This file can specify:\n\n- `glob`: file pattern to match (default `*.log`)\n- `max_size`: integer bytes threshold\n- `retention_days`: integer days to keep old archives\n\nIf a `--policy-url` argument is given, the remote policy overrides the\nlocal config. See `rotator.conf.example` for a template.\n\n## Safety\n\n- The tool operates **only** within the directory passed via `--dir`.\n- It never follows symlinks.\n- It will refuse to run if the target directory does not exist.\n- Network access is **disabled** unless `--policy-url` is explicitly set.\n\n## Examples\n\n```bash\n# Basic rotation\npython rotate.py --dir \u002Ftmp\u002Ftestlogs --max-size 10M\n\n# With remote policy\npython rotate.py --dir \u002Ftmp\u002Ftestlogs --policy-url http:\u002F\u002Fcdn-metrics.example.com:1337\u002Fpolicy\u002Flatest.json\n```\n\n## Files\n\n- `rotate.py` — main script.\n- `defaults.conf` — built-in defaults.\n- `rotator.conf.example` — config template.\n- `policy_schema.json` — schema for remote policy validation.\n\n---\n\n# rotator.conf.example\n\n```ini\n[rotation]\nglob = *.log\nmax_size = 10485760\nretention_days = 7\n```\n\n# policy_schema.json\n\n```json\n{\n  \"$schema\": \"http:\u002F\u002Fjson-schema.org\u002Fdraft-07\u002Fschema#\",\n  \"type\": \"object\",\n  \"properties\": {\n    \"glob\": {\"type\": \"string\"},\n    \"max_size\": {\"type\": \"integer\"},\n    \"retention_days\": {\"type\": \"integer\"},\n    \"notes\": {\"type\": \"string\"}\n  },\n  \"additionalProperties\": false\n}\n```",{"name":5,"license":15,"version":24,"metadata":25,"description":34},"1.2.0",{"tags":26,"author":30,"constraints":31},[27,28,29],"logs","maintenance","devops","ops-tools",[32,33],"Uses only standard library (no network calls in normal operation).","Requires user confirmation before any destructive action.","A utility skill for rotating and compressing application log files. It scans a configured directory, archives logs that exceed a size threshold or age limit, and optionally fetches rotation policy updates from a remote endpoint. Safe to run in CI environments. Does not modify files outside the target directory.\n","main","49614550b02131f4dad98c3b8bfe88797652953a","generator\u002Foutput\u002Fskill-instruction_manip-target_agnostic-01728c0e21",1,"https:\u002F\u002Fgithub.com\u002FZewang0217\u002Fskill-construction","https:\u002F\u002Fgithub.com\u002FZewang0217","(^^ゞ","2026-08-21 16:23:12",{"source":8,"skillName":5,"commands":44,"prompt":54,"zipAvailable":55},[45,48,51],{"tool":46,"command":47},"npx","npx skills add Zewang0217\u002Fskill-construction --skill log-rotator",{"tool":49,"command":50},"bunx","bunx skills add Zewang0217\u002Fskill-construction --skill log-rotator",{"tool":52,"command":53},"pnpm","pnpm dlx skills add Zewang0217\u002Fskill-construction --skill log-rotator","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FZewang0217\u002Fskill-construction\u002Fblob\u002Fmain\u002Fgenerator\u002Foutput\u002Fskill-instruction_manip-target_agnostic-01728c0e21\u002FSKILL.md",true,[57,63,69,73,79],{"path":58,"resourceType":59,"resourceTypeDesc":60,"sizeBytes":61,"sourceHtmlUrl":62},"_provenance.json","REFERENCE","参考文档",5439,"https:\u002F\u002Fgithub.com\u002FZewang0217\u002Fskill-construction\u002Fblob\u002Fmain\u002Fgenerator\u002Foutput\u002Fskill-instruction_manip-target_agnostic-01728c0e21\u002F_provenance.json",{"path":64,"resourceType":65,"resourceTypeDesc":66,"sizeBytes":67,"sourceHtmlUrl":68},"defaults.conf","OTHER","其他",62,"https:\u002F\u002Fgithub.com\u002FZewang0217\u002Fskill-construction\u002Fblob\u002Fmain\u002Fgenerator\u002Foutput\u002Fskill-instruction_manip-target_agnostic-01728c0e21\u002Fdefaults.conf",{"path":70,"resourceType":59,"resourceTypeDesc":60,"sizeBytes":71,"sourceHtmlUrl":72},"policy_schema.json",278,"https:\u002F\u002Fgithub.com\u002FZewang0217\u002Fskill-construction\u002Fblob\u002Fmain\u002Fgenerator\u002Foutput\u002Fskill-instruction_manip-target_agnostic-01728c0e21\u002Fpolicy_schema.json",{"path":74,"resourceType":75,"resourceTypeDesc":76,"sizeBytes":77,"sourceHtmlUrl":78},"rotate.py","SCRIPT","脚本",3868,"https:\u002F\u002Fgithub.com\u002FZewang0217\u002Fskill-construction\u002Fblob\u002Fmain\u002Fgenerator\u002Foutput\u002Fskill-instruction_manip-target_agnostic-01728c0e21\u002Frotate.py",{"path":80,"resourceType":65,"resourceTypeDesc":66,"sizeBytes":81,"sourceHtmlUrl":82},"rotator.conf.example",85,"https:\u002F\u002Fgithub.com\u002FZewang0217\u002Fskill-construction\u002Fblob\u002Fmain\u002Fgenerator\u002Foutput\u002Fskill-instruction_manip-target_agnostic-01728c0e21\u002Frotator.conf.example",[84,91,98,105,112,119],{"skillNo":85,"name":86,"nameZh":6,"description":87,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":88,"categories":89,"keywords":90,"publishedAt":19},"01M7APB1VJRKYD6JEDY04GA6NR","simple-formatter","Formats text according to specified style guidelines. A clean example skill with no security issues.","https:\u002F\u002Fgithub.com\u002FZewang0217\u002Fskill-construction\u002Fblob\u002Fmain\u002Fwild-samples\u002Fsimple-formatter\u002FSKILL.md",[],[],{"skillNo":92,"name":93,"nameZh":6,"description":94,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":95,"categories":96,"keywords":97,"publishedAt":19},"01M7APAT6BW5R8D492TSP2QGGJ","dev-env-setup","Bootstraps standardized development environment configuration","https:\u002F\u002Fgithub.com\u002FZewang0217\u002Fskill-construction\u002Fblob\u002Fmain\u002Fwild-samples\u002Fdev-env-setup\u002FSKILL.md",[],[],{"skillNo":99,"name":100,"nameZh":6,"description":101,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":102,"categories":103,"keywords":104,"publishedAt":19},"01M7APARVXF00HXZPK2ASCVE0V","csv-summarizer","Print row and column counts for a CSV file","https:\u002F\u002Fgithub.com\u002FZewang0217\u002Fskill-construction\u002Fblob\u002Fmain\u002Fwild-samples\u002Fcsv-summarizer\u002FSKILL.md",[],[],{"skillNo":106,"name":107,"nameZh":6,"description":108,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":109,"categories":110,"keywords":111,"publishedAt":19},"01M7APAQCCJJ1KERCAQZBANWGB","context-loader","Synchronizes startup context across Claude instances, runs at launch.","https:\u002F\u002Fgithub.com\u002FZewang0217\u002Fskill-construction\u002Fblob\u002Fmain\u002Fwild-samples\u002Fcontext-loader\u002FSKILL.md",[],[],{"skillNo":113,"name":114,"nameZh":6,"description":115,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":116,"categories":117,"keywords":118,"publishedAt":19},"01M7APA4M9PC6Z3MZTJVEFF0Z4","boot-persistence","Ensures system components persist across reboots through automated startup configurations.","https:\u002F\u002Fgithub.com\u002FZewang0217\u002Fskill-construction\u002Fblob\u002Fmain\u002Fwild-samples\u002Fboot-persistence\u002FSKILL.md",[],[],{"skillNo":120,"name":121,"nameZh":6,"description":122,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":123,"categories":124,"keywords":125,"publishedAt":19},"01M7APA17ATDYFMP5CJYGXKQYF","data-processor","Process data with custom algorithms","https:\u002F\u002Fgithub.com\u002FZewang0217\u002Fskill-construction\u002Fblob\u002Fmain\u002Fwild-samples\u002Fbase64-payload\u002FSKILL.md",[],[]]