[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6C2PMZX7SHJDATKX62Z8EYJ":3,"skill-same:01M6C2PMZX7SHJDATKX62Z8EYJ":68},{"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":26,"publishedAt":34,"linkOnly":35,"markdownContent":36,"markdownBody":37,"frontMatter":38,"refName":44,"commitSha":45,"skillDirectory":46,"forksCount":47,"repositoryHtmlUrl":48,"repositoryHomepageUrl":49,"ownerHtmlUrl":50,"ownerBlogUrl":51,"ownerDescription":52,"updatedAt":53,"install":54,"resources":67},"01M6C2PMZX7SHJDATKX62Z8EYJ","corpus-health",null,"Report on research corpus health, completeness, and integrity","jmagly\u002Faiwg","jmagly","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F1159087?v=4","01M6C10AK8N2WCSQN11FYGTJWN","Joseph Magly","01M6C10AQ8A2RMED1Y1BSVY7NF",229,"MIT","https:\u002F\u002Fgithub.com\u002Fjmagly\u002Faiwg\u002Fblob\u002Fmain\u002Fagentic\u002Fcode\u002Fplugins\u002Fcodex-sdlc\u002Fskills\u002Fcorpus-health\u002FSKILL.md",[18,23],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000021","资料检索与研究","SCENARIO","使用场景",{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发",[27,28,29,30,31,32,33],"health","corpus health","research","report","integrity","quality","completeness","2026-11-10 10:12:30",false,"---\nnamespace: aiwg\nname: corpus-health\nplatforms: [all]\ndescription: Report on research corpus health, completeness, and integrity\ncommandHint:\n  category: research-quality\n---\n\n# Corpus Health Command\n\nAssess the health and completeness of the research corpus at `.aiwg\u002Fresearch\u002F`.\n\n## Kernel Delegation\n\n> As of ADR-021, `corpus-health` delegates structural lint to the semantic memory kernel.\n\n**Delegation pattern**:\n1. `corpus-health` retains its research-specific health-check UX\n2. Delegates to `memory-lint --consumer research-complete --severity warning`\n3. Research-specific layers remain in this wrapper:\n   - GRADE coverage check\n   - Citation completeness validation\n   - Research corpus-specific metrics\n\n**Backward compatibility**: No UX changes.\n\n@agentic\u002Fcode\u002Faddons\u002Fsemantic-memory\u002Fskills\u002Fmemory-lint\u002FSKILL.md\n\n## Instructions\n\nWhen invoked, analyze the research corpus and report on its health:\n\n1. **Scan Corpus Structure**\n   - Count sources in `.aiwg\u002Fresearch\u002Fsources\u002F`\n   - Count findings in `.aiwg\u002Fresearch\u002Ffindings\u002F`\n   - Count quality assessments in `.aiwg\u002Fresearch\u002Fquality-assessments\u002F`\n   - Count provenance records in `.aiwg\u002Fresearch\u002Fprovenance\u002Frecords\u002F`\n\n2. **Frontmatter Completeness**\n   - Check each source for required frontmatter per @$AIWG_ROOT\u002Fagentic\u002Fcode\u002Fframeworks\u002Fsdlc-complete\u002Fschemas\u002Fresearch\u002Ffrontmatter-schema.yaml\n   - Report sources missing: ref_id, title, authors, year, DOI, key_findings\n   - Calculate completeness percentage\n\n3. **PDF Integrity**\n   - Check `.aiwg\u002Fresearch\u002Fpdfs\u002F` for downloaded papers\n   - Verify SHA-256 checksums against frontmatter `pdf_hash` values\n   - Report missing PDFs and checksum mismatches\n\n4. **Cross-Reference Integrity**\n   - Verify all REF-XXX in findings reference valid sources\n   - Check for orphaned findings (no source reference)\n   - Check for orphaned sources (never cited in any artifact)\n\n5. **Staleness Check**\n   - Flag sources with `last_verified` > 90 days old\n   - Flag DOIs that haven't been re-verified\n   - Report sources needing refresh\n\n6. **Evidence Gaps**\n   - Load `.aiwg\u002Fresearch\u002FTODO.md` for planned research\n   - Count unresolved evidence gaps\n   - Report gap severity distribution\n\n7. **Generate Health Report**\n   - Summary dashboard with pass\u002Fwarn\u002Ffail indicators\n   - Detailed findings per category\n   - Action items prioritized by severity\n\n## Arguments\n\n- `--brief` - Show summary only\n- `--fix` - Attempt to fix frontmatter gaps and regenerate checksums\n- `--report` - Save report to `.aiwg\u002Freports\u002Fcorpus-health.md`\n\n## References\n\n- @$AIWG_ROOT\u002Fagentic\u002Fcode\u002Fframeworks\u002Fsdlc-complete\u002Fschemas\u002Fresearch\u002Ffrontmatter-schema.yaml - Frontmatter requirements\n- @$AIWG_ROOT\u002Fagentic\u002Fcode\u002Fframeworks\u002Fsdlc-complete\u002Fschemas\u002Fresearch\u002Ffixity-manifest.yaml - Fixity verification\n- @$AIWG_ROOT\u002Fagentic\u002Fcode\u002Fframeworks\u002Fsdlc-complete\u002Frules\u002Fresearch-metadata.md - Research metadata rules\n- @$AIWG_ROOT\u002Fagentic\u002Fcode\u002Fframeworks\u002Fsdlc-complete\u002Fagents\u002Fcitation-verifier.md - Citation Verifier agent\n","# Corpus Health Command\n\nAssess the health and completeness of the research corpus at `.aiwg\u002Fresearch\u002F`.\n\n## Kernel Delegation\n\n> As of ADR-021, `corpus-health` delegates structural lint to the semantic memory kernel.\n\n**Delegation pattern**:\n1. `corpus-health` retains its research-specific health-check UX\n2. Delegates to `memory-lint --consumer research-complete --severity warning`\n3. Research-specific layers remain in this wrapper:\n   - GRADE coverage check\n   - Citation completeness validation\n   - Research corpus-specific metrics\n\n**Backward compatibility**: No UX changes.\n\n@agentic\u002Fcode\u002Faddons\u002Fsemantic-memory\u002Fskills\u002Fmemory-lint\u002FSKILL.md\n\n## Instructions\n\nWhen invoked, analyze the research corpus and report on its health:\n\n1. **Scan Corpus Structure**\n   - Count sources in `.aiwg\u002Fresearch\u002Fsources\u002F`\n   - Count findings in `.aiwg\u002Fresearch\u002Ffindings\u002F`\n   - Count quality assessments in `.aiwg\u002Fresearch\u002Fquality-assessments\u002F`\n   - Count provenance records in `.aiwg\u002Fresearch\u002Fprovenance\u002Frecords\u002F`\n\n2. **Frontmatter Completeness**\n   - Check each source for required frontmatter per @$AIWG_ROOT\u002Fagentic\u002Fcode\u002Fframeworks\u002Fsdlc-complete\u002Fschemas\u002Fresearch\u002Ffrontmatter-schema.yaml\n   - Report sources missing: ref_id, title, authors, year, DOI, key_findings\n   - Calculate completeness percentage\n\n3. **PDF Integrity**\n   - Check `.aiwg\u002Fresearch\u002Fpdfs\u002F` for downloaded papers\n   - Verify SHA-256 checksums against frontmatter `pdf_hash` values\n   - Report missing PDFs and checksum mismatches\n\n4. **Cross-Reference Integrity**\n   - Verify all REF-XXX in findings reference valid sources\n   - Check for orphaned findings (no source reference)\n   - Check for orphaned sources (never cited in any artifact)\n\n5. **Staleness Check**\n   - Flag sources with `last_verified` > 90 days old\n   - Flag DOIs that haven't been re-verified\n   - Report sources needing refresh\n\n6. **Evidence Gaps**\n   - Load `.aiwg\u002Fresearch\u002FTODO.md` for planned research\n   - Count unresolved evidence gaps\n   - Report gap severity distribution\n\n7. **Generate Health Report**\n   - Summary dashboard with pass\u002Fwarn\u002Ffail indicators\n   - Detailed findings per category\n   - Action items prioritized by severity\n\n## Arguments\n\n- `--brief` - Show summary only\n- `--fix` - Attempt to fix frontmatter gaps and regenerate checksums\n- `--report` - Save report to `.aiwg\u002Freports\u002Fcorpus-health.md`\n\n## References\n\n- @$AIWG_ROOT\u002Fagentic\u002Fcode\u002Fframeworks\u002Fsdlc-complete\u002Fschemas\u002Fresearch\u002Ffrontmatter-schema.yaml - Frontmatter requirements\n- @$AIWG_ROOT\u002Fagentic\u002Fcode\u002Fframeworks\u002Fsdlc-complete\u002Fschemas\u002Fresearch\u002Ffixity-manifest.yaml - Fixity verification\n- @$AIWG_ROOT\u002Fagentic\u002Fcode\u002Fframeworks\u002Fsdlc-complete\u002Frules\u002Fresearch-metadata.md - Research metadata rules\n- @$AIWG_ROOT\u002Fagentic\u002Fcode\u002Fframeworks\u002Fsdlc-complete\u002Fagents\u002Fcitation-verifier.md - Citation Verifier agent\n",{"name":5,"namespace":39,"platforms":40,"commandHint":42,"description":7},"aiwg",[41],"all",{"category":43},"research-quality","main","6754967c344ccb087a8de06972f55a41067b291b","agentic\u002Fcode\u002Fplugins\u002Fcodex-sdlc\u002Fskills\u002Fcorpus-health",36,"https:\u002F\u002Fgithub.com\u002Fjmagly\u002Faiwg","https:\u002F\u002Faiwg.io","https:\u002F\u002Fgithub.com\u002Fjmagly","https:\u002F\u002Fintegrolabs.io","ml\u002Fai, industrial automation, safety\u002Fsecurity, ssi\r\n\r\nmagly.net\r\nintegrolabs.io\r\naiwg.io\r\nfortemi.com\r\npagenary.com\r\nbytecask.com","2026-11-12 00:33:10",{"source":8,"skillName":5,"commands":55,"prompt":65,"zipAvailable":66},[56,59,62],{"tool":57,"command":58},"npx","npx skills add jmagly\u002Faiwg --skill corpus-health",{"tool":60,"command":61},"bunx","bunx skills add jmagly\u002Faiwg --skill corpus-health",{"tool":63,"command":64},"pnpm","pnpm dlx skills add jmagly\u002Faiwg --skill corpus-health","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fjmagly\u002Faiwg\u002Fblob\u002Fmain\u002Fagentic\u002Fcode\u002Fplugins\u002Fcodex-sdlc\u002Fskills\u002Fcorpus-health\u002FSKILL.md",true,[],[69,97,121,127,134,148],{"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":76,"publishedAt":34},"01M70QA0BSYJ49EES9V4RE8QH1","host-hardening","Read-only system hardening baseline and plan-first host hardening recommendations for SSH, Docker bind addresses, firewall persistence, datastores, exporters and audit retention.","https:\u002F\u002Fgithub.com\u002Fjmagly\u002Faiwg\u002Fblob\u002Fmain\u002Fagentic\u002Fcode\u002Fplugins\u002Fsecurity-engineering\u002Fskills\u002Fhost-hardening\u002FSKILL.md",[75],{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},[77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96],"host","host hardening","hardening","read","re","recommendations","remediation","plan","port","verification","Bash","access","only","retention","audit","never","firewall","bind","secrets","request",{"skillNo":98,"name":99,"nameZh":6,"description":100,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":101,"categories":102,"keywords":107,"publishedAt":34},"01M70PNT2Z4HMZPRBTAF6073NN","exposure-analysis","Read-only firewall analysis and effective host exposure reconstruction for Docker published ports, UFW bypass, stale rules, CDN scope, IPv6 asymmetry and external probe allowlists.","https:\u002F\u002Fgithub.com\u002Fjmagly\u002Faiwg\u002Fblob\u002Fmain\u002Fagentic\u002Fcode\u002Fplugins\u002Fforensics\u002Fskills\u002Fexposure-analysis\u002FSKILL.md",[103,106],{"categoryNo":104,"categoryName":105,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000011","运维与部署",{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},[108,109,110,80,111,85,112,113,87,114,77,115,89,116,117,92,93,118,119,120],"exposure analysis","analysis","unknown","credentials","collection","ufw","ports","internet","local","scope","reconstruction","operator","write",{"skillNo":122,"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":123,"categories":124,"keywords":126,"publishedAt":34},"01M70P8QATMPKA78E4FT5D2TNA","https:\u002F\u002Fgithub.com\u002Fjmagly\u002Faiwg\u002Fblob\u002Fmain\u002Fagentic\u002Fcode\u002Fframeworks\u002Fsecurity-engineering\u002Fskills\u002Fhost-hardening\u002FSKILL.md",[125],{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},[79,77,78,88,80,96,83,82,91,84,85,86,87,95,89,90,81,92,93,94],{"skillNo":128,"name":99,"nameZh":6,"description":100,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":129,"categories":130,"keywords":133,"publishedAt":34},"01M70NMPVJ5H0JH131P60FW4R8","https:\u002F\u002Fgithub.com\u002Fjmagly\u002Faiwg\u002Fblob\u002Fmain\u002Fagentic\u002Fcode\u002Fframeworks\u002Fforensics-complete\u002Fskills\u002Fexposure-analysis\u002FSKILL.md",[131,132],{"categoryNo":104,"categoryName":105,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},[109,108,92,111,85,112,87,110,77,115,89,116,117,80,93,114,113,118,119,120],{"skillNo":135,"name":136,"nameZh":6,"description":137,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":138,"categories":139,"keywords":141,"publishedAt":34},"01M6CB4DDR0B4NNCFK7ZK7449H","fixture-skill","Exercise rule delivery.","https:\u002F\u002Fgithub.com\u002Fjmagly\u002Faiwg\u002Fblob\u002Fmain\u002Ftest\u002Ffixtures\u002Frule-delivery\u002Fskills\u002Ffixture-skill\u002FSKILL.md",[140],{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},[142,143,144,145,146,147],"fixture skill","fixture","rule","delivery","true","exercise",{"skillNo":149,"name":150,"nameZh":6,"description":151,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":152,"categories":153,"keywords":155,"publishedAt":34},"01M6CB4AVK1W76MFMPP0JP32CJ","pi-local","Pi-local duplicate-precedence fixture.","https:\u002F\u002Fgithub.com\u002Fjmagly\u002Faiwg\u002Fblob\u002Fmain\u002Ftest\u002Ffixtures\u002Fproviders\u002Fpi\u002Fproject\u002F.pi\u002Fskills\u002Fpi-local\u002FSKILL.md",[154],{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},[156,157,116,158,143],"pi","pi local","duplicate"]