[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6P9NTRDRBJ285KS87ZB69KB":3,"skill-same:01M6P9NTRDRBJ285KS87ZB69KB":45},{"skillNo":4,"name":5,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":17,"publishedAt":21,"linkOnly":22,"markdownContent":23,"markdownBody":23,"frontMatter":24,"refName":25,"commitSha":26,"skillDirectory":27,"forksCount":13,"repositoryHtmlUrl":28,"repositoryHomepageUrl":6,"ownerHtmlUrl":29,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":30,"install":31,"resources":44},"01M6P9NTRDRBJ285KS87ZB69KB","column-matching",null,"simonpfrank\u002Fagent-harness","simonpfrank","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F635887?v=4","01M6P9NJKSYWAZGZFPBE04FC8R","doughnut","01M6P9NJRB5MTKVVXN0W3H7NZA",0,"MIT","https:\u002F\u002Fgithub.com\u002Fsimonpfrank\u002Fagent-harness\u002Fblob\u002Fmain\u002Fskills\u002Fcolumn-matching\u002FSKILL.md",[],[18,19,20],"matching","column","column matching","2026-11-10 10:12:30",false,"# Column Matching\n\nHow to match columns between two data files (e.g. an incoming file to a reference\u002Ftemplate).\n\n## Core Principle\n\n**No false positives.** If in doubt, put the column in `non_matches` with reasoning. A missed match can be added later; a wrong match causes downstream data corruption.\n\n## Matching Signals (in priority order)\n\n1. **Sample values** — strongest signal. Do the actual values match or clearly relate? (e.g. M\u002FF vs Male\u002FFemale, POL001 vs P001)\n2. **Data type compatibility** — must be compatible. Don't match a date column to a numeric column.\n3. **Column name semantics** — consider abbreviations, domain-specific terminology, different naming conventions (snake_case vs camelCase vs spaces).\n4. **Data patterns and formats** — ID formats (AAA999), date formats (YYYY-MM-DD vs DD\u002FMM\u002FYYYY), numeric precision.\n5. **Population rates** — a fully populated column is unlikely to match a sparse one unless the input is a subset.\n6. **Business context** — domain knowledge about what columns represent.\n\n## Multi-Signal Validation\n\nA confident match needs 3+ signals aligning:\n- Sample values match or are clearly related\n- Data types are compatible\n- Semantic meaning is similar\n- Patterns align\n\nA match with only 1-2 signals should be flagged as uncertain or placed in `non_matches`.\n\n## Confidence Scoring\n\n| Score | Meaning | When to use |\n|-------|---------|-------------|\n| 0.95-1.0 | Near certain | Multiple strong signals: values + types + semantics + domain |\n| 0.85-0.94 | Strong match | Semantic match with confirming signals |\n| 0.70-0.84 | Probable match | Good match but some uncertainty |\n| 0.60-0.69 | Weak match | Review recommended, insufficient signals |\n| \u003C 0.60 | Do not match | Put in non_matches with reasoning |\n\nBe conservative. Only assign > 0.9 with multiple confirming signals.\n\n## Rules\n\n- **1:1 matching only** — each input column matches at most one reference column\n- **Never force a match** — unmatched columns are fine\n- **Always explain reasoning** — cite the specific signals that led to the match\n- **Profile before matching** — use `profile_data` on both files first to get structured metadata\n- **Use memory** — save successful match patterns for future use, recall past matches for consistency\n\n## Output Format\n\nReturn a JSON object:\n\n```json\n{\n  \"matches\": [\n    {\n      \"input_column\": \"col_name\",\n      \"reference_column\": \"ref_name\",\n      \"confidence\": 0.95,\n      \"reasoning\": \"Sample values align: M\u002FF matches Male\u002FFemale. Both categorical text. Semantic: both gender fields.\"\n    }\n  ],\n  \"non_matches\": [\n    {\n      \"input_column\": \"col_name\",\n      \"reasoning\": \"Why no match was found\",\n      \"possibilities\": [\n        {\n          \"reference_column\": \"ref_name\",\n          \"reason\": \"Why it almost matched but confidence too low\"\n        }\n      ]\n    }\n  ],\n  \"unmatched_input\": [\"columns\", \"with\", \"no\", \"match\"],\n  \"unmatched_reference\": [\"reference\", \"columns\", \"not\", \"matched\"]\n}\n```\n\n## Using Memory for Matching\n\n- **After a successful run**: save match patterns (e.g. \"pol_id -> PolicyID, pension scheme identifier\") so future runs on similar data are faster and more consistent.\n- **Before matching**: recall past matches to check if you've seen similar column names or patterns before.\n- **Record false positives**: if a match was wrong, save that as a negative example to avoid repeating it.\n",{},"main","83a817d6974bc1e005c717e627717b3ccb8cd9e8","skills\u002Fcolumn-matching","https:\u002F\u002Fgithub.com\u002Fsimonpfrank\u002Fagent-harness","https:\u002F\u002Fgithub.com\u002Fsimonpfrank","2026-08-31 20:01:09",{"source":7,"skillName":5,"commands":32,"prompt":42,"zipAvailable":43},[33,36,39],{"tool":34,"command":35},"npx","npx skills add simonpfrank\u002Fagent-harness --skill column-matching",{"tool":37,"command":38},"bunx","bunx skills add simonpfrank\u002Fagent-harness --skill column-matching",{"tool":40,"command":41},"pnpm","pnpm dlx skills add simonpfrank\u002Fagent-harness --skill column-matching","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fsimonpfrank\u002Fagent-harness\u002Fblob\u002Fmain\u002Fskills\u002Fcolumn-matching\u002FSKILL.md",true,[],[46,62,71,83],{"skillNo":47,"name":48,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":49,"categories":50,"keywords":59,"publishedAt":21},"01M6P9PH3ZGG0CNCDH54HDV6JP","test-skill","https:\u002F\u002Fgithub.com\u002Fsimonpfrank\u002Fagent-harness\u002Fblob\u002Fmain\u002Ftests\u002Fdata\u002Fagent_with_skills\u002Fskills\u002Ftest-skill\u002FSKILL.md",[51,56],{"categoryNo":52,"categoryName":53,"taxonomyType":54,"taxonomyTypeDesc":55},"01JBSEEDCAT000000000000008","测试与质量","SCENARIO","使用场景",{"categoryNo":57,"categoryName":58,"taxonomyType":54,"taxonomyTypeDesc":55},"01JBSEEDCAT000000000000023","Skill与智能体开发",[60,61],"test","Test Skill",{"skillNo":63,"name":64,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":65,"categories":66,"keywords":67,"publishedAt":21},"01M6P9PEAFNT032Y1RB24Q48TP","system-tools","https:\u002F\u002Fgithub.com\u002Fsimonpfrank\u002Fagent-harness\u002Fblob\u002Fmain\u002Fskills\u002Fsystem-tools\u002FSKILL.md",[],[68,69,70],"Tools","system","system tools",{"skillNo":72,"name":73,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":74,"categories":75,"keywords":79,"publishedAt":21},"01M6P9PBCDW8CTCSYVY1WF5YBX","csv-analysis","https:\u002F\u002Fgithub.com\u002Fsimonpfrank\u002Fagent-harness\u002Fblob\u002Fmain\u002Fskills\u002Fcsv-analysis\u002FSKILL.md",[76],{"categoryNo":77,"categoryName":78,"taxonomyType":54,"taxonomyTypeDesc":55},"01JBSEEDCAT000000000000004","电子表格",[80,81,82],"csv","analysis","csv analysis",{"skillNo":84,"name":85,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":86,"categories":87,"keywords":96,"publishedAt":21},"01M6P9NRYRZQ6AET1A7HAEMYBK","code-review","https:\u002F\u002Fgithub.com\u002Fsimonpfrank\u002Fagent-harness\u002Fblob\u002Fmain\u002Fskills\u002Fcode-review\u002FSKILL.md",[88,91],{"categoryNo":89,"categoryName":90,"taxonomyType":54,"taxonomyTypeDesc":55},"01JBSEEDCAT000000000000007","代码审查",{"categoryNo":92,"categoryName":93,"taxonomyType":94,"taxonomyTypeDesc":95},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",[97,98,99],"code review","review","code"]