[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6C1ZPVFRR7QBXJ254H1663T":3,"skill-same:01M6C1ZPVFRR7QBXJ254H1663T":81},{"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":23,"publishedAt":45,"linkOnly":46,"markdownContent":47,"markdownBody":48,"frontMatter":49,"refName":57,"commitSha":58,"skillDirectory":59,"forksCount":60,"repositoryHtmlUrl":61,"repositoryHomepageUrl":62,"ownerHtmlUrl":63,"ownerBlogUrl":64,"ownerDescription":65,"updatedAt":66,"install":67,"resources":80},"01M6C1ZPVFRR7QBXJ254H1663T","profile-generate",null,"Scaffold compact PROF-P entity profiles for unprofiled hub authors — ranks corpus REFs by citation in-degree, takes each top REF's primary author, skips institutional\u002Fgroup names and already-profiled people. Runs via `aiwg corpus profile-generate`.","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\u002Fframeworks\u002Fresearch-complete\u002Fskills\u002Fprofile-generate\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44],"generate","profile","profile generate","scan","standard","author","for","top","limit","sonnet","profiles","people","via","compact","research","hub","write","read","coding","Bash","scaffold","2026-11-10 10:12:30",false,"---\nnamespace: aiwg\nplatforms: [all]\nname: profile-generate\ndescription: Scaffold compact PROF-P entity profiles for unprofiled hub authors — ranks corpus REFs by citation in-degree, takes each top REF's primary author, skips institutional\u002Fgroup names and already-profiled people. Runs via `aiwg corpus profile-generate`.\ncommandHint:\n  argumentHint: \"[--limit N] [--scan N] [--write]\"\n  allowedTools: Read, Bash, Write\n  model: sonnet\n  category: research-profiles\n  modelRole: coding\n  modelTier: standard\n---\n\n# Profile Generate\n\nGenerate Tier-1 `PROF-P` entity profiles for the corpus's most-cited authors who\ndon't have a profile yet — the bulk profile-induction pass.\n\n## How to run\n\n```bash\naiwg corpus profile-generate                 # dry-run: list the PROF-P profiles it would create\naiwg corpus profile-generate --write         # write them (skips existing)\naiwg corpus profile-generate --limit 10 --write\naiwg corpus profile-generate --scan 100 --limit 40 --write\naiwg corpus profile-generate --fm --write    # FM-author PROF-P + group PROF-G from fm-config.yaml\n```\n\n### `--fm` — foundation-model author\u002Fgroup profiles\n\n`--fm` runs the FM pass (port of `build_fm_profiles.py`): it reads a corpus-local\n`documentation\u002Fprofiles\u002Ffm-config.yaml` and scaffolds PROF-P profiles for the\ntop-N authors of each listed FM paper plus PROF-G group profiles for team-authored\nreleases. The FM-paper list and group specs are **corpus data**, not built-in:\n\n```yaml\n# documentation\u002Fprofiles\u002Ffm-config.yaml\nfm-papers:\n  REF-052: { model: \"GPT-3\", top-authors: 5 }\n  REF-835: { model: \"Llama 3\", group: PROF-G-llama-team }\ngroups:\n  PROF-G-llama-team:\n    name: \"Llama Team — AI @ Meta\"\n    parent-org: \"Meta AI Research\"\n    parent-slug: PROF-O-meta-fair\n    refs: [REF-835]\n```\n\nAbsent file → no-op. Institutional\u002Fteam author names are skipped from PROF-P.\n\n- **Dry-run by default.** `--write` creates files; existing profiles are skipped.\n- Ranks REFs by **corpus in-degree** (citations within the corpus, derived from\n  the citation sidecars), takes each top REF's **primary author**, and skips\n  institutional\u002Fgroup \"authors\" (team, labs, foundation, consortium, …) — those\n  get group profiles, not PROF-P.\n- `--scan N` = how many top-in-degree REFs to consider (default 60);\n  `--limit N` = max profiles to generate (default 25).\n- Generates a compact 5-section profile (summary, corpus presence, focus,\n  co-author network, notes). `affiliation` is left blank for manual enrichment;\n  `corpus-refs` is written as a list of REF-id strings.\n\n## Triggers\n\n- \"generate profiles for top corpus authors\"\n- \"scaffold tier-1 hub-author profiles\"\n- \"profile the unprofiled hubs\"\n- `\u002Fprofile-generate`\n\n## References\n\n- @$AIWG_ROOT\u002Fsrc\u002Fartifacts\u002Fcorpus-tools\u002Fprofile-generate.ts — implementation\n- profile-status — entity-profile staleness; radar-init — the radar-sidecar analogue\n","# Profile Generate\n\nGenerate Tier-1 `PROF-P` entity profiles for the corpus's most-cited authors who\ndon't have a profile yet — the bulk profile-induction pass.\n\n## How to run\n\n```bash\naiwg corpus profile-generate                 # dry-run: list the PROF-P profiles it would create\naiwg corpus profile-generate --write         # write them (skips existing)\naiwg corpus profile-generate --limit 10 --write\naiwg corpus profile-generate --scan 100 --limit 40 --write\naiwg corpus profile-generate --fm --write    # FM-author PROF-P + group PROF-G from fm-config.yaml\n```\n\n### `--fm` — foundation-model author\u002Fgroup profiles\n\n`--fm` runs the FM pass (port of `build_fm_profiles.py`): it reads a corpus-local\n`documentation\u002Fprofiles\u002Ffm-config.yaml` and scaffolds PROF-P profiles for the\ntop-N authors of each listed FM paper plus PROF-G group profiles for team-authored\nreleases. The FM-paper list and group specs are **corpus data**, not built-in:\n\n```yaml\n# documentation\u002Fprofiles\u002Ffm-config.yaml\nfm-papers:\n  REF-052: { model: \"GPT-3\", top-authors: 5 }\n  REF-835: { model: \"Llama 3\", group: PROF-G-llama-team }\ngroups:\n  PROF-G-llama-team:\n    name: \"Llama Team — AI @ Meta\"\n    parent-org: \"Meta AI Research\"\n    parent-slug: PROF-O-meta-fair\n    refs: [REF-835]\n```\n\nAbsent file → no-op. Institutional\u002Fteam author names are skipped from PROF-P.\n\n- **Dry-run by default.** `--write` creates files; existing profiles are skipped.\n- Ranks REFs by **corpus in-degree** (citations within the corpus, derived from\n  the citation sidecars), takes each top REF's **primary author**, and skips\n  institutional\u002Fgroup \"authors\" (team, labs, foundation, consortium, …) — those\n  get group profiles, not PROF-P.\n- `--scan N` = how many top-in-degree REFs to consider (default 60);\n  `--limit N` = max profiles to generate (default 25).\n- Generates a compact 5-section profile (summary, corpus presence, focus,\n  co-author network, notes). `affiliation` is left blank for manual enrichment;\n  `corpus-refs` is written as a list of REF-id strings.\n\n## Triggers\n\n- \"generate profiles for top corpus authors\"\n- \"scaffold tier-1 hub-author profiles\"\n- \"profile the unprofiled hubs\"\n- `\u002Fprofile-generate`\n\n## References\n\n- @$AIWG_ROOT\u002Fsrc\u002Fartifacts\u002Fcorpus-tools\u002Fprofile-generate.ts — implementation\n- profile-status — entity-profile staleness; radar-init — the radar-sidecar analogue\n",{"name":5,"namespace":50,"platforms":51,"commandHint":53,"description":7},"aiwg",[52],"all",{"model":33,"category":54,"modelRole":42,"modelTier":28,"allowedTools":55,"argumentHint":56},"research-profiles","Read, Bash, Write","[--limit N] [--scan N] [--write]","main","6754967c344ccb087a8de06972f55a41067b291b","agentic\u002Fcode\u002Fframeworks\u002Fresearch-complete\u002Fskills\u002Fprofile-generate",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":68,"prompt":78,"zipAvailable":79},[69,72,75],{"tool":70,"command":71},"npx","npx skills add jmagly\u002Faiwg --skill profile-generate",{"tool":73,"command":74},"bunx","bunx skills add jmagly\u002Faiwg --skill profile-generate",{"tool":76,"command":77},"pnpm","pnpm dlx skills add jmagly\u002Faiwg --skill profile-generate","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fjmagly\u002Faiwg\u002Fblob\u002Fmain\u002Fagentic\u002Fcode\u002Fframeworks\u002Fresearch-complete\u002Fskills\u002Fprofile-generate\u002FSKILL.md",true,[],[82,108,131,137,144,158],{"skillNo":83,"name":84,"nameZh":6,"description":85,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":86,"categories":87,"keywords":89,"publishedAt":45},"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",[88],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[90,91,92,41,93,94,95,96,97,98,43,99,100,101,102,103,104,105,106,107],"host","host hardening","hardening","re","recommendations","remediation","plan","port","verification","access","only","retention","audit","never","firewall","bind","secrets","request",{"skillNo":109,"name":110,"nameZh":6,"description":111,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":112,"categories":113,"keywords":118,"publishedAt":45},"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",[114,117],{"categoryNo":115,"categoryName":116,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000011","运维与部署",{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[119,120,121,41,122,97,123,124,43,125,90,126,100,127,128,103,104,129,130,40],"exposure analysis","analysis","unknown","credentials","collection","ufw","ports","internet","local","scope","reconstruction","operator",{"skillNo":132,"name":84,"nameZh":6,"description":85,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":133,"categories":134,"keywords":136,"publishedAt":45},"01M70P8QATMPKA78E4FT5D2TNA","https:\u002F\u002Fgithub.com\u002Fjmagly\u002Faiwg\u002Fblob\u002Fmain\u002Fagentic\u002Fcode\u002Fframeworks\u002Fsecurity-engineering\u002Fskills\u002Fhost-hardening\u002FSKILL.md",[135],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[92,90,91,99,41,107,95,94,102,96,97,98,43,106,100,101,93,103,104,105],{"skillNo":138,"name":110,"nameZh":6,"description":111,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":139,"categories":140,"keywords":143,"publishedAt":45},"01M70NMPVJ5H0JH131P60FW4R8","https:\u002F\u002Fgithub.com\u002Fjmagly\u002Faiwg\u002Fblob\u002Fmain\u002Fagentic\u002Fcode\u002Fframeworks\u002Fforensics-complete\u002Fskills\u002Fexposure-analysis\u002FSKILL.md",[141,142],{"categoryNo":115,"categoryName":116,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[120,119,103,122,97,123,43,121,90,126,100,127,128,41,104,125,124,129,130,40],{"skillNo":145,"name":146,"nameZh":6,"description":147,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":148,"categories":149,"keywords":151,"publishedAt":45},"01M6CB4DDR0B4NNCFK7ZK7449H","fixture-skill","Exercise rule delivery.","https:\u002F\u002Fgithub.com\u002Fjmagly\u002Faiwg\u002Fblob\u002Fmain\u002Ftest\u002Ffixtures\u002Frule-delivery\u002Fskills\u002Ffixture-skill\u002FSKILL.md",[150],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[152,153,154,155,156,157],"fixture skill","fixture","rule","delivery","true","exercise",{"skillNo":159,"name":160,"nameZh":6,"description":161,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":162,"categories":163,"keywords":165,"publishedAt":45},"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",[164],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[166,167,127,168,153],"pi","pi local","duplicate"]