[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6C43G7EVHV6ZFDDVVWNKD3E":3,"skill-same:01M6C43G7EVHV6ZFDDVVWNKD3E":92},{"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":28,"publishedAt":34,"linkOnly":35,"markdownContent":36,"markdownBody":37,"frontMatter":38,"refName":39,"commitSha":40,"skillDirectory":41,"forksCount":42,"repositoryHtmlUrl":43,"repositoryHomepageUrl":6,"ownerHtmlUrl":44,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":45,"install":46,"resources":59},"01M6C43G7EVHV6ZFDDVVWNKD3E","data-transformer",null,"Transform data between CSV and JSON formats with filtering and column selection","EnactProtocol\u002Fenact","EnactProtocol","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F194414857?v=4","01M6C43B2F5VYTYADD4J30S5ZJ","Enact","01M6C43B6MAFKP2M81NYCQ2EKD",19,"Apache-2.0","https:\u002F\u002Fgithub.com\u002FEnactProtocol\u002Fenact\u002Fblob\u002Fmain\u002Ftools\u002Fdata-transformer\u002FSKILL.md",[18,23],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000004","电子表格","SCENARIO","使用场景",{"categoryNo":24,"categoryName":25,"taxonomyType":26,"taxonomyTypeDesc":27},"01JBSEEDCAT000000000000033","数据分析师","PROFESSION","适用职业",[29,30,31,32,33],"data","data transformer","csv","json","filtering","2026-11-10 10:12:30",false,"---\nname: data-transformer\ndescription: Transform data between CSV and JSON formats with filtering and column selection\n---\n\n# Data Transformer\n\nA TypeScript-based tool that transforms data between CSV and JSON formats with advanced filtering and column selection capabilities.\n\n## Features\n\n- **Format Conversion**: Convert between CSV and JSON formats\n- **Filtering**: Filter rows based on column values\n- **Column Selection**: Select specific columns to include in output\n- **Type Safety**: Built with TypeScript for robust data handling\n- **Error Handling**: Comprehensive error reporting\n\n## Usage Examples\n\n### CSV to JSON\n\n```bash\nenact run enact\u002Fdata\u002Ftransformer -a '{\n  \"input\": \"name,age,city\\nAlice,30,NYC\\nBob,25,LA\",\n  \"input_format\": \"csv\",\n  \"output_format\": \"json\"\n}'\n```\n\n### JSON to CSV\n\n```bash\nenact run enact\u002Fdata\u002Ftransformer -a '{\n  \"input\": \"[{\\\"name\\\":\\\"Alice\\\",\\\"age\\\":30},{\\\"name\\\":\\\"Bob\\\",\\\"age\\\":25}]\",\n  \"input_format\": \"json\",\n  \"output_format\": \"csv\"\n}'\n```\n\n### Filter Data\n\n```bash\nenact run enact\u002Fdata\u002Ftransformer -a '{\n  \"input\": \"[{\\\"name\\\":\\\"Alice\\\",\\\"age\\\":30,\\\"city\\\":\\\"NYC\\\"},{\\\"name\\\":\\\"Bob\\\",\\\"age\\\":25,\\\"city\\\":\\\"LA\\\"}]\",\n  \"input_format\": \"json\",\n  \"output_format\": \"json\",\n  \"filter_column\": \"city\",\n  \"filter_value\": \"NYC\"\n}'\n```\n\n### Select Specific Columns\n\n```bash\nenact run enact\u002Fdata\u002Ftransformer -a '{\n  \"input\": \"[{\\\"name\\\":\\\"Alice\\\",\\\"age\\\":30,\\\"city\\\":\\\"NYC\\\"}]\",\n  \"input_format\": \"json\",\n  \"output_format\": \"json\",\n  \"select_columns\": \"name,age\"\n}'\n```\n\n## Output Format\n\nSuccess response:\n```json\n{\n  \"status\": \"success\",\n  \"data\": \"\u003Ctransformed data>\",\n  \"rowCount\": 2,\n  \"columnCount\": 3,\n  \"columns\": [\"name\", \"age\", \"city\"]\n}\n```\n\nError response:\n```json\n{\n  \"status\": \"error\",\n  \"error\": \"Error message describing what went wrong\"\n}\n```\n","# Data Transformer\n\nA TypeScript-based tool that transforms data between CSV and JSON formats with advanced filtering and column selection capabilities.\n\n## Features\n\n- **Format Conversion**: Convert between CSV and JSON formats\n- **Filtering**: Filter rows based on column values\n- **Column Selection**: Select specific columns to include in output\n- **Type Safety**: Built with TypeScript for robust data handling\n- **Error Handling**: Comprehensive error reporting\n\n## Usage Examples\n\n### CSV to JSON\n\n```bash\nenact run enact\u002Fdata\u002Ftransformer -a '{\n  \"input\": \"name,age,city\\nAlice,30,NYC\\nBob,25,LA\",\n  \"input_format\": \"csv\",\n  \"output_format\": \"json\"\n}'\n```\n\n### JSON to CSV\n\n```bash\nenact run enact\u002Fdata\u002Ftransformer -a '{\n  \"input\": \"[{\\\"name\\\":\\\"Alice\\\",\\\"age\\\":30},{\\\"name\\\":\\\"Bob\\\",\\\"age\\\":25}]\",\n  \"input_format\": \"json\",\n  \"output_format\": \"csv\"\n}'\n```\n\n### Filter Data\n\n```bash\nenact run enact\u002Fdata\u002Ftransformer -a '{\n  \"input\": \"[{\\\"name\\\":\\\"Alice\\\",\\\"age\\\":30,\\\"city\\\":\\\"NYC\\\"},{\\\"name\\\":\\\"Bob\\\",\\\"age\\\":25,\\\"city\\\":\\\"LA\\\"}]\",\n  \"input_format\": \"json\",\n  \"output_format\": \"json\",\n  \"filter_column\": \"city\",\n  \"filter_value\": \"NYC\"\n}'\n```\n\n### Select Specific Columns\n\n```bash\nenact run enact\u002Fdata\u002Ftransformer -a '{\n  \"input\": \"[{\\\"name\\\":\\\"Alice\\\",\\\"age\\\":30,\\\"city\\\":\\\"NYC\\\"}]\",\n  \"input_format\": \"json\",\n  \"output_format\": \"json\",\n  \"select_columns\": \"name,age\"\n}'\n```\n\n## Output Format\n\nSuccess response:\n```json\n{\n  \"status\": \"success\",\n  \"data\": \"\u003Ctransformed data>\",\n  \"rowCount\": 2,\n  \"columnCount\": 3,\n  \"columns\": [\"name\", \"age\", \"city\"]\n}\n```\n\nError response:\n```json\n{\n  \"status\": \"error\",\n  \"error\": \"Error message describing what went wrong\"\n}\n```\n",{"name":5,"description":7},"main","6f0177ccc353147d443b467a122a0caec89433f4","tools\u002Fdata-transformer",3,"https:\u002F\u002Fgithub.com\u002FEnactProtocol\u002Fenact","https:\u002F\u002Fgithub.com\u002FEnactProtocol","2026-03-18 03:30:56",{"source":8,"skillName":5,"commands":47,"prompt":57,"zipAvailable":58},[48,51,54],{"tool":49,"command":50},"npx","npx skills add EnactProtocol\u002Fenact --skill data-transformer",{"tool":52,"command":53},"bunx","bunx skills add EnactProtocol\u002Fenact --skill data-transformer",{"tool":55,"command":56},"pnpm","pnpm dlx skills add EnactProtocol\u002Fenact --skill data-transformer","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FEnactProtocol\u002Fenact\u002Fblob\u002Fmain\u002Ftools\u002Fdata-transformer\u002FSKILL.md",true,[60,66,70,76,80,84,88],{"path":61,"resourceType":62,"resourceTypeDesc":63,"sizeBytes":64,"sourceHtmlUrl":65},"package.json","REFERENCE","参考文档",500,"https:\u002F\u002Fgithub.com\u002FEnactProtocol\u002Fenact\u002Fblob\u002Fmain\u002Ftools\u002Fdata-transformer\u002Fpackage.json",{"path":67,"resourceType":62,"resourceTypeDesc":63,"sizeBytes":68,"sourceHtmlUrl":69},"skill.package.yml",244,"https:\u002F\u002Fgithub.com\u002FEnactProtocol\u002Fenact\u002Fblob\u002Fmain\u002Ftools\u002Fdata-transformer\u002Fskill.package.yml",{"path":71,"resourceType":72,"resourceTypeDesc":73,"sizeBytes":74,"sourceHtmlUrl":75},"src\u002Fcsv-parser.ts","SCRIPT","脚本",838,"https:\u002F\u002Fgithub.com\u002FEnactProtocol\u002Fenact\u002Fblob\u002Fmain\u002Ftools\u002Fdata-transformer\u002Fsrc\u002Fcsv-parser.ts",{"path":77,"resourceType":72,"resourceTypeDesc":73,"sizeBytes":78,"sourceHtmlUrl":79},"src\u002Findex.ts",3540,"https:\u002F\u002Fgithub.com\u002FEnactProtocol\u002Fenact\u002Fblob\u002Fmain\u002Ftools\u002Fdata-transformer\u002Fsrc\u002Findex.ts",{"path":81,"resourceType":72,"resourceTypeDesc":73,"sizeBytes":82,"sourceHtmlUrl":83},"src\u002Fjson-handler.ts",717,"https:\u002F\u002Fgithub.com\u002FEnactProtocol\u002Fenact\u002Fblob\u002Fmain\u002Ftools\u002Fdata-transformer\u002Fsrc\u002Fjson-handler.ts",{"path":85,"resourceType":72,"resourceTypeDesc":73,"sizeBytes":86,"sourceHtmlUrl":87},"src\u002Ftypes.ts",415,"https:\u002F\u002Fgithub.com\u002FEnactProtocol\u002Fenact\u002Fblob\u002Fmain\u002Ftools\u002Fdata-transformer\u002Fsrc\u002Ftypes.ts",{"path":89,"resourceType":62,"resourceTypeDesc":63,"sizeBytes":90,"sourceHtmlUrl":91},"tsconfig.json",445,"https:\u002F\u002Fgithub.com\u002FEnactProtocol\u002Fenact\u002Fblob\u002Fmain\u002Ftools\u002Fdata-transformer\u002Ftsconfig.json",[93,104,123,133,142,152],{"skillNo":94,"name":95,"nameZh":6,"description":96,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":97,"categories":98,"keywords":99,"publishedAt":34},"01M6C441CA6AN9F9QN146CS5N6","whatweb","Web scanner that identifies websites, CMS, frameworks, web servers, and embedded devices","https:\u002F\u002Fgithub.com\u002FEnactProtocol\u002Fenact\u002Fblob\u002Fmain\u002Ftools\u002Fwhatweb\u002FSKILL.md",[],[95,100,101,102,103],"embedded","devices","cms","web",{"skillNo":105,"name":106,"nameZh":6,"description":107,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":108,"categories":109,"keywords":116,"publishedAt":34},"01M6C43ZCXD71CXHNNTE6G3YVK","playwright","Browser automation tool using Playwright - captures screenshots and extracts content from web pages","https:\u002F\u002Fgithub.com\u002FEnactProtocol\u002Fenact\u002Fblob\u002Fmain\u002Ftools\u002Fplaywright\u002FSKILL.md",[110,113],{"categoryNo":111,"categoryName":112,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000008","测试与质量",{"categoryNo":114,"categoryName":115,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发",[106,117,118,119,120,103,121,122],"automation","tool","content","browser","browser automation","screenshots",{"skillNo":124,"name":125,"nameZh":6,"description":126,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":127,"categories":128,"keywords":129,"publishedAt":34},"01M6C43Y0815A6QR9CMQX8DB93","hello-rust","A simple Rust greeting tool","https:\u002F\u002Fgithub.com\u002FEnactProtocol\u002Fenact\u002Fblob\u002Fmain\u002Ftools\u002Fhello-rust\u002FSKILL.md",[],[130,131,132,118],"hello rust","hello","rust",{"skillNo":134,"name":135,"nameZh":6,"description":136,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":137,"categories":138,"keywords":139,"publishedAt":34},"01M6C43WCR3D1ZYE398KA7MGH8","hello-ruby","A simple Ruby greeting tool","https:\u002F\u002Fgithub.com\u002FEnactProtocol\u002Fenact\u002Fblob\u002Fmain\u002Ftools\u002Fhello-ruby\u002FSKILL.md",[],[140,141,131,118],"hello ruby","ruby",{"skillNo":143,"name":144,"nameZh":6,"description":145,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":146,"categories":147,"keywords":148,"publishedAt":34},"01M6C43V0DG5K0RNMYPY5T8YBF","hello-js","A simple JavaScript greeting tool","https:\u002F\u002Fgithub.com\u002FEnactProtocol\u002Fenact\u002Fblob\u002Fmain\u002Ftools\u002Fhello-js\u002FSKILL.md",[],[149,131,150,151,118],"js","hello js","javascript",{"skillNo":153,"name":154,"nameZh":6,"description":155,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":156,"categories":157,"keywords":158,"publishedAt":34},"01M6C43S98S1SJP1Z3SGXCZZ1Q","hello-go","A simple Go greeting tool","https:\u002F\u002Fgithub.com\u002FEnactProtocol\u002Fenact\u002Fblob\u002Fmain\u002Ftools\u002Fhello-go\u002FSKILL.md",[],[131,159,160,118],"go","hello go"]