[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6C38ZFTC3BWZ41F4DZDBJ6C":3,"skill-same:01M6C38ZFTC3BWZ41F4DZDBJ6C":69},{"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":36,"linkOnly":37,"markdownContent":38,"markdownBody":39,"frontMatter":40,"refName":45,"commitSha":46,"skillDirectory":47,"forksCount":48,"repositoryHtmlUrl":49,"repositoryHomepageUrl":50,"ownerHtmlUrl":51,"ownerBlogUrl":52,"ownerDescription":53,"updatedAt":54,"install":55,"resources":68},"01M6C38ZFTC3BWZ41F4DZDBJ6C","prose-setup",null,"Clone or update the OpenProse repository to ensure AIWG prose tools hook into the latest version of the specification and examples","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\u002Fprose-integration\u002Fskills\u002Fprose-setup\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],"setup","prose setup","prose","update","examples","repository","Tools","version","specification","hook","latest","clone","2026-11-10 10:12:30",false,"---\nnamespace: aiwg\nname: prose-setup\ndescription: Clone or update the OpenProse repository to ensure AIWG prose tools hook into the latest version of the specification and examples\nversion: 0.1.0\nplatforms: [all]\n\n---\n\n# Prose Setup Skill\n\nYou ensure the OpenProse repository is cloned and up-to-date so that all prose-integration skills have access to the latest specifications, examples, and guidance.\n\n## Triggers\n\n- \"setup prose\" \u002F \"install prose\" \u002F \"install openprose\"\n- \"update prose\" \u002F \"update openprose\"\n- \"clone prose repo\"\n- \"ensure prose is available\"\n- \"prose setup\"\n\n## Behavior\n\n### Step 1: Check Current State\n\nCheck if OpenProse is already cloned:\n\n```bash\n# Check default location\nls \u002Ftmp\u002Fprose\u002Fskills\u002Fopen-prose\u002Fprose.md 2>\u002Fdev\u002Fnull\n\n# Check configured location (from addon config proseRoot)\n```\n\n### Step 2: Clone or Update\n\n**If not present** — clone from GitHub:\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Fopenprose\u002Fprose.git \u002Ftmp\u002Fprose\n```\n\n**If already present** — pull latest:\n\n```bash\ncd \u002Ftmp\u002Fprose && git pull origin main\n```\n\n### Step 3: Verify Installation\n\nAfter clone\u002Fupdate, verify key files exist:\n\n| File | Purpose | Required |\n|------|---------|----------|\n| `skills\u002Fopen-prose\u002Fprose.md` | Prose VM specification | Yes |\n| `skills\u002Fopen-prose\u002Fforme.md` | Forme Container specification | Yes |\n| `skills\u002Fopen-prose\u002Fguidance\u002Fpatterns.md` | Design patterns | Yes |\n| `skills\u002Fopen-prose\u002Fguidance\u002Fantipatterns.md` | Antipatterns guide | Yes |\n| `skills\u002Fopen-prose\u002Fguidance\u002Ftenets.md` | Design tenets | Yes |\n| `skills\u002Fopen-prose\u002Fexamples\u002F` | Example programs (50+) | Yes |\n\n### Step 4: Report Version\n\n```bash\ncd \u002Ftmp\u002Fprose && git log -1 --format=\"%H %ci %s\"\n```\n\n### Step 5: Output Summary\n\n```markdown\n## OpenProse Setup Complete\n\n**Location**: \u002Ftmp\u002Fprose\n**Version**: {commit hash} ({date})\n**Latest commit**: {subject}\n\n### Verified Files\n- [x] prose.md (Prose VM spec)\n- [x] forme.md (Forme Container spec)\n- [x] guidance\u002F (patterns, antipatterns, tenets)\n- [x] examples\u002F ({count} examples)\n\n### Available Skills\nAll prose-integration skills now have access to the latest OpenProse specification:\n- `\u002Fprose-reader` — parse contracts\n- `\u002Fprose-run` — execute programs\n- `\u002Fprose-validate` — validate grammar\n- `\u002Fforme-manifest` — generate wiring manifests\n```\n\n## Custom Install Location\n\nIf the user wants Prose installed somewhere other than `\u002Ftmp\u002Fprose`, they can configure it:\n\n```yaml\n# In aiwg.yml\naddons:\n  prose-integration:\n    proseRoot: \u002Fpath\u002Fto\u002Fprose\u002Fskills\u002Fopen-prose\n    proseRepoPath: \u002Fpath\u002Fto\u002Fprose\n```\n\nThe clone target is `proseRepoPath` (repo root), and `proseRoot` is `{proseRepoPath}\u002Fskills\u002Fopen-prose`.\n\n## Auto-Setup\n\nOther prose-integration skills should check for the Prose installation before operating. If not found, suggest running `\u002Fprose-setup` first:\n\n```markdown\nOpenProse not found at \u002Ftmp\u002Fprose\u002Fskills\u002Fopen-prose\u002Fprose.md\n\nRun `\u002Fprose-setup` to clone the latest OpenProse repository, or configure\na custom path in aiwg.yml under addons.prose-integration.proseRoot\n```\n\n## Model\n\nThis skill runs on **Haiku** — it's just git operations and file checks.\n\n## References\n\n- @$AIWG_ROOT\u002F${CLAUDE_PLUGIN_ROOT}\u002FREADME.md — prose-integration addon overview\n- @$AIWG_ROOT\u002Fagentic\u002Fcode\u002Faddons\u002Faiwg-utils\u002Frules\u002Fresearch-before-decision.md — Verify installation state before cloning or pulling\n- @$AIWG_ROOT\u002Fagentic\u002Fcode\u002Faddons\u002Faiwg-utils\u002Frules\u002Fhuman-authorization.md — Confirm custom install location with user when non-default path requested\n- @$AIWG_ROOT\u002Fdocs\u002Fcli-reference.md — CLI reference for AIWG addon configuration\n","# Prose Setup Skill\n\nYou ensure the OpenProse repository is cloned and up-to-date so that all prose-integration skills have access to the latest specifications, examples, and guidance.\n\n## Triggers\n\n- \"setup prose\" \u002F \"install prose\" \u002F \"install openprose\"\n- \"update prose\" \u002F \"update openprose\"\n- \"clone prose repo\"\n- \"ensure prose is available\"\n- \"prose setup\"\n\n## Behavior\n\n### Step 1: Check Current State\n\nCheck if OpenProse is already cloned:\n\n```bash\n# Check default location\nls \u002Ftmp\u002Fprose\u002Fskills\u002Fopen-prose\u002Fprose.md 2>\u002Fdev\u002Fnull\n\n# Check configured location (from addon config proseRoot)\n```\n\n### Step 2: Clone or Update\n\n**If not present** — clone from GitHub:\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Fopenprose\u002Fprose.git \u002Ftmp\u002Fprose\n```\n\n**If already present** — pull latest:\n\n```bash\ncd \u002Ftmp\u002Fprose && git pull origin main\n```\n\n### Step 3: Verify Installation\n\nAfter clone\u002Fupdate, verify key files exist:\n\n| File | Purpose | Required |\n|------|---------|----------|\n| `skills\u002Fopen-prose\u002Fprose.md` | Prose VM specification | Yes |\n| `skills\u002Fopen-prose\u002Fforme.md` | Forme Container specification | Yes |\n| `skills\u002Fopen-prose\u002Fguidance\u002Fpatterns.md` | Design patterns | Yes |\n| `skills\u002Fopen-prose\u002Fguidance\u002Fantipatterns.md` | Antipatterns guide | Yes |\n| `skills\u002Fopen-prose\u002Fguidance\u002Ftenets.md` | Design tenets | Yes |\n| `skills\u002Fopen-prose\u002Fexamples\u002F` | Example programs (50+) | Yes |\n\n### Step 4: Report Version\n\n```bash\ncd \u002Ftmp\u002Fprose && git log -1 --format=\"%H %ci %s\"\n```\n\n### Step 5: Output Summary\n\n```markdown\n## OpenProse Setup Complete\n\n**Location**: \u002Ftmp\u002Fprose\n**Version**: {commit hash} ({date})\n**Latest commit**: {subject}\n\n### Verified Files\n- [x] prose.md (Prose VM spec)\n- [x] forme.md (Forme Container spec)\n- [x] guidance\u002F (patterns, antipatterns, tenets)\n- [x] examples\u002F ({count} examples)\n\n### Available Skills\nAll prose-integration skills now have access to the latest OpenProse specification:\n- `\u002Fprose-reader` — parse contracts\n- `\u002Fprose-run` — execute programs\n- `\u002Fprose-validate` — validate grammar\n- `\u002Fforme-manifest` — generate wiring manifests\n```\n\n## Custom Install Location\n\nIf the user wants Prose installed somewhere other than `\u002Ftmp\u002Fprose`, they can configure it:\n\n```yaml\n# In aiwg.yml\naddons:\n  prose-integration:\n    proseRoot: \u002Fpath\u002Fto\u002Fprose\u002Fskills\u002Fopen-prose\n    proseRepoPath: \u002Fpath\u002Fto\u002Fprose\n```\n\nThe clone target is `proseRepoPath` (repo root), and `proseRoot` is `{proseRepoPath}\u002Fskills\u002Fopen-prose`.\n\n## Auto-Setup\n\nOther prose-integration skills should check for the Prose installation before operating. If not found, suggest running `\u002Fprose-setup` first:\n\n```markdown\nOpenProse not found at \u002Ftmp\u002Fprose\u002Fskills\u002Fopen-prose\u002Fprose.md\n\nRun `\u002Fprose-setup` to clone the latest OpenProse repository, or configure\na custom path in aiwg.yml under addons.prose-integration.proseRoot\n```\n\n## Model\n\nThis skill runs on **Haiku** — it's just git operations and file checks.\n\n## References\n\n- @$AIWG_ROOT\u002F${CLAUDE_PLUGIN_ROOT}\u002FREADME.md — prose-integration addon overview\n- @$AIWG_ROOT\u002Fagentic\u002Fcode\u002Faddons\u002Faiwg-utils\u002Frules\u002Fresearch-before-decision.md — Verify installation state before cloning or pulling\n- @$AIWG_ROOT\u002Fagentic\u002Fcode\u002Faddons\u002Faiwg-utils\u002Frules\u002Fhuman-authorization.md — Confirm custom install location with user when non-default path requested\n- @$AIWG_ROOT\u002Fdocs\u002Fcli-reference.md — CLI reference for AIWG addon configuration\n",{"name":5,"version":41,"namespace":42,"platforms":43,"description":7},"0.1.0","aiwg",[44],"all","main","6754967c344ccb087a8de06972f55a41067b291b","agentic\u002Fcode\u002Fplugins\u002Fprose-integration\u002Fskills\u002Fprose-setup",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-14 10:46:34",{"source":8,"skillName":5,"commands":56,"prompt":66,"zipAvailable":67},[57,60,63],{"tool":58,"command":59},"npx","npx skills add jmagly\u002Faiwg --skill prose-setup",{"tool":61,"command":62},"bunx","bunx skills add jmagly\u002Faiwg --skill prose-setup",{"tool":64,"command":65},"pnpm","pnpm dlx skills add jmagly\u002Faiwg --skill prose-setup","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fjmagly\u002Faiwg\u002Fblob\u002Fmain\u002Fagentic\u002Fcode\u002Fplugins\u002Fprose-integration\u002Fskills\u002Fprose-setup\u002FSKILL.md",true,[],[70,98,122,128,135,149],{"skillNo":71,"name":72,"nameZh":6,"description":73,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":74,"categories":75,"keywords":77,"publishedAt":36},"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",[76],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97],"host","host hardening","hardening","read","re","recommendations","remediation","plan","port","verification","Bash","access","only","retention","audit","never","firewall","bind","secrets","request",{"skillNo":99,"name":100,"nameZh":6,"description":101,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":102,"categories":103,"keywords":108,"publishedAt":36},"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",[104,107],{"categoryNo":105,"categoryName":106,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000011","运维与部署",{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[109,110,111,81,112,86,113,114,88,115,78,116,90,117,118,93,94,119,120,121],"exposure analysis","analysis","unknown","credentials","collection","ufw","ports","internet","local","scope","reconstruction","operator","write",{"skillNo":123,"name":72,"nameZh":6,"description":73,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":124,"categories":125,"keywords":127,"publishedAt":36},"01M70P8QATMPKA78E4FT5D2TNA","https:\u002F\u002Fgithub.com\u002Fjmagly\u002Faiwg\u002Fblob\u002Fmain\u002Fagentic\u002Fcode\u002Fframeworks\u002Fsecurity-engineering\u002Fskills\u002Fhost-hardening\u002FSKILL.md",[126],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[80,78,79,89,81,97,84,83,92,85,86,87,88,96,90,91,82,93,94,95],{"skillNo":129,"name":100,"nameZh":6,"description":101,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":130,"categories":131,"keywords":134,"publishedAt":36},"01M70NMPVJ5H0JH131P60FW4R8","https:\u002F\u002Fgithub.com\u002Fjmagly\u002Faiwg\u002Fblob\u002Fmain\u002Fagentic\u002Fcode\u002Fframeworks\u002Fforensics-complete\u002Fskills\u002Fexposure-analysis\u002FSKILL.md",[132,133],{"categoryNo":105,"categoryName":106,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[110,109,93,112,86,113,88,111,78,116,90,117,118,81,94,115,114,119,120,121],{"skillNo":136,"name":137,"nameZh":6,"description":138,"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":142,"publishedAt":36},"01M6CB4DDR0B4NNCFK7ZK7449H","fixture-skill","Exercise rule delivery.","https:\u002F\u002Fgithub.com\u002Fjmagly\u002Faiwg\u002Fblob\u002Fmain\u002Ftest\u002Ffixtures\u002Frule-delivery\u002Fskills\u002Ffixture-skill\u002FSKILL.md",[141],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[143,144,145,146,147,148],"fixture skill","fixture","rule","delivery","true","exercise",{"skillNo":150,"name":151,"nameZh":6,"description":152,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":153,"categories":154,"keywords":156,"publishedAt":36},"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",[155],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[157,158,117,159,144],"pi","pi local","duplicate"]