[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M7AMY2ZR6VQEXAMTPN5270VT":3,"skill-same:01M7AMY2ZR6VQEXAMTPN5270VT":54},{"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":26,"commitSha":27,"skillDirectory":28,"forksCount":29,"repositoryHtmlUrl":30,"repositoryHomepageUrl":6,"ownerHtmlUrl":31,"ownerBlogUrl":6,"ownerDescription":32,"updatedAt":33,"install":34,"resources":47},"01M7AMY2ZR6VQEXAMTPN5270VT","config-migrator",null,"Migrates application configuration between environments (JSON, YAML, TOML). Handles variable substitution, environment-aware overrides, and schema validation. Supports pluggable transforms for custom migration rules.","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\u002Fsamples_clean\u002Fdirect-eval---evaluating-arbitrary-expre\u002FSKILL.md",[],[],"2026-11-15 14:19:17",false,"---\nname: config-migrator\ndescription: >\n  Migrates application configuration between environments (JSON, YAML, TOML).\n  Handles variable substitution, environment-aware overrides, and schema validation.\n  Supports pluggable transforms for custom migration rules.\nlicense: MIT\nversion: 1.4.2\n---\n\n# Config Migrator\n\nA utility for moving configuration files between development, staging, and production environments. It preserves structure, resolves environment-specific placeholders, and validates against optional JSON Schemas.\n\n## Features\n\n- **Format conversion**: Convert between JSON, YAML, and TOML while preserving data types.\n- **Variable substitution**: Replace `${VAR}` placeholders with values from a provided mapping or environment.\n- **Custom transforms**: Extend behavior with user-supplied transform functions.\n- **Validation hook**: Run a user-supplied validation callback after migration (e.g., for linting or custom checks).\n- **Dry-run mode**: Preview changes without writing output.\n\n## Installation\n\nPlace the `migrate.py` script in your project. It requires Python 3.8+ and PyYAML (`pip install PyYAML`).\n\n## Usage\n\n```bash\npython migrate.py --input app\u002Fconfig.yaml --output app\u002Fconfig.prod.yaml --format yaml --env prod --transforms .\u002Ftransforms.py\n```\n\n### Options\n\n- `--input`, `--output`: Source and destination files.\n- `--format`: Output format (`json`, `yaml`, `toml`).\n- `--env`: Environment name (e.g., `dev`, `prod`).\n- `--transforms`: Optional Python file containing `apply_transform(data, context)` function.\n- `--validate`: Optional Python file containing `validate(data, context)` function.\n- `--placeholder-prefix`: Prefix for placeholder variables (default `${`).\n\n### Example\n\n```yaml\n# config.yaml\ndatabase:\n  host: ${DB_HOST}\n  port: 5432\n```\n\n```bash\nDB_HOST=db.internal python migrate.py --input config.yaml --output out.yaml --env prod\n```\n\n## Transform API\n\nIf you supply a `--transforms` file, it must define:\n\n```python\ndef apply_transform(data, context):\n    # data: dict\u002Flist of the parsed config\n    # context: dict with keys: 'env', 'input_path', 'output_path', 'raw_input'\n    # return modified data\n    return data\n```\n\nThis is evaluated with `eval()` to allow flexible, user-defined logic. Use only trusted sources.\n\n## Validation Hook\n\nSimilar to transforms, a validation file should define `validate(data, context)`. It is called after migration and may raise exceptions on failure.\n\n## Security Notes\n\n- The tool does **not** make any network requests. All operations are local file reads\u002Fwrites with optional user-provided code execution via `--transforms` \u002F `--validate` (evaluate with caution).\n- Placeholder substitution is regex-based and does not execute shell commands.\n\n## License\n\nMIT © 2024 ConfigMigrator Contributors","# Config Migrator\n\nA utility for moving configuration files between development, staging, and production environments. It preserves structure, resolves environment-specific placeholders, and validates against optional JSON Schemas.\n\n## Features\n\n- **Format conversion**: Convert between JSON, YAML, and TOML while preserving data types.\n- **Variable substitution**: Replace `${VAR}` placeholders with values from a provided mapping or environment.\n- **Custom transforms**: Extend behavior with user-supplied transform functions.\n- **Validation hook**: Run a user-supplied validation callback after migration (e.g., for linting or custom checks).\n- **Dry-run mode**: Preview changes without writing output.\n\n## Installation\n\nPlace the `migrate.py` script in your project. It requires Python 3.8+ and PyYAML (`pip install PyYAML`).\n\n## Usage\n\n```bash\npython migrate.py --input app\u002Fconfig.yaml --output app\u002Fconfig.prod.yaml --format yaml --env prod --transforms .\u002Ftransforms.py\n```\n\n### Options\n\n- `--input`, `--output`: Source and destination files.\n- `--format`: Output format (`json`, `yaml`, `toml`).\n- `--env`: Environment name (e.g., `dev`, `prod`).\n- `--transforms`: Optional Python file containing `apply_transform(data, context)` function.\n- `--validate`: Optional Python file containing `validate(data, context)` function.\n- `--placeholder-prefix`: Prefix for placeholder variables (default `${`).\n\n### Example\n\n```yaml\n# config.yaml\ndatabase:\n  host: ${DB_HOST}\n  port: 5432\n```\n\n```bash\nDB_HOST=db.internal python migrate.py --input config.yaml --output out.yaml --env prod\n```\n\n## Transform API\n\nIf you supply a `--transforms` file, it must define:\n\n```python\ndef apply_transform(data, context):\n    # data: dict\u002Flist of the parsed config\n    # context: dict with keys: 'env', 'input_path', 'output_path', 'raw_input'\n    # return modified data\n    return data\n```\n\nThis is evaluated with `eval()` to allow flexible, user-defined logic. Use only trusted sources.\n\n## Validation Hook\n\nSimilar to transforms, a validation file should define `validate(data, context)`. It is called after migration and may raise exceptions on failure.\n\n## Security Notes\n\n- The tool does **not** make any network requests. All operations are local file reads\u002Fwrites with optional user-provided code execution via `--transforms` \u002F `--validate` (evaluate with caution).\n- Placeholder substitution is regex-based and does not execute shell commands.\n\n## License\n\nMIT © 2024 ConfigMigrator Contributors",{"name":5,"license":15,"version":24,"description":25},"1.4.2","Migrates application configuration between environments (JSON, YAML, TOML). Handles variable substitution, environment-aware overrides, and schema validation. Supports pluggable transforms for custom migration rules.\n","main","49614550b02131f4dad98c3b8bfe88797652953a","samples_clean\u002Fdirect-eval---evaluating-arbitrary-expre",1,"https:\u002F\u002Fgithub.com\u002FZewang0217\u002Fskill-construction","https:\u002F\u002Fgithub.com\u002FZewang0217","(^^ゞ","2026-08-21 16:23:12",{"source":8,"skillName":5,"commands":35,"prompt":45,"zipAvailable":46},[36,39,42],{"tool":37,"command":38},"npx","npx skills add Zewang0217\u002Fskill-construction --skill config-migrator",{"tool":40,"command":41},"bunx","bunx skills add Zewang0217\u002Fskill-construction --skill config-migrator",{"tool":43,"command":44},"pnpm","pnpm dlx skills add Zewang0217\u002Fskill-construction --skill config-migrator","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FZewang0217\u002Fskill-construction\u002Fblob\u002Fmain\u002Fsamples_clean\u002Fdirect-eval---evaluating-arbitrary-expre\u002FSKILL.md",true,[48],{"path":49,"resourceType":50,"resourceTypeDesc":51,"sizeBytes":52,"sourceHtmlUrl":53},"migrate.py","SCRIPT","脚本",5311,"https:\u002F\u002Fgithub.com\u002FZewang0217\u002Fskill-construction\u002Fblob\u002Fmain\u002Fsamples_clean\u002Fdirect-eval---evaluating-arbitrary-expre\u002Fmigrate.py",[55,62,69,76,83,90],{"skillNo":56,"name":57,"nameZh":6,"description":58,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":59,"categories":60,"keywords":61,"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":63,"name":64,"nameZh":6,"description":65,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":66,"categories":67,"keywords":68,"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":70,"name":71,"nameZh":6,"description":72,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":73,"categories":74,"keywords":75,"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":77,"name":78,"nameZh":6,"description":79,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":80,"categories":81,"keywords":82,"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":84,"name":85,"nameZh":6,"description":86,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":87,"categories":88,"keywords":89,"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":91,"name":92,"nameZh":6,"description":93,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":94,"categories":95,"keywords":96,"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",[],[]]