[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6C38W5SSSWPGH2EK2ZXV828":3,"skill-same:01M6C38W5SSSWPGH2EK2ZXV828":106},{"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":55,"linkOnly":56,"markdownContent":57,"markdownBody":58,"frontMatter":59,"refName":82,"commitSha":83,"skillDirectory":84,"forksCount":85,"repositoryHtmlUrl":86,"repositoryHomepageUrl":87,"ownerHtmlUrl":88,"ownerBlogUrl":89,"ownerDescription":90,"updatedAt":91,"install":92,"resources":105},"01M6C38W5SSSWPGH2EK2ZXV828","prose-run",null,"Execute an OpenProse program within the current AIWG session, following the two-phase model (Forme wiring + Prose VM execution)","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-run\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,45,46,47,48,49,50,51,52,53,54],"run","prose","prose run","program","validate","running","phase","wiring","frontmatter","for","path","opus","sonnet","input","only","session","fix","execute","generated","context","context budget","model","simulation","Budget","manifest","execution","services","file","state","artifacts","vm","2026-11-10 10:12:30",false,"---\nnamespace: aiwg\nname: prose-run\ndescription: Execute an OpenProse program within the current AIWG session, following the two-phase model (Forme wiring + Prose VM execution)\nversion: 0.1.0\nplatforms: [all]\nrequires:\n  - program: path to an OpenProse program file (.md with contract frontmatter)\n  - \"if program has requires: fields: values for each required input\"\nensures:\n  - \"output: the program's ensures: outputs, delivered per contract obligation\"\n  - \"run-state: execution artifacts saved to .aiwg\u002Fworking\u002Fprose-runs\u002F{run-id}\u002F\"\n  - \"if multi-service (kind: program + services:): wiring manifest generated before execution\"\nerrors:\n  - prose-not-found: OpenProse installation not detected; run \u002Fprose-detect for guidance\n  - invalid-program: program file fails prose-validate checks; fix contract before running\n  - context-exceeded: multi-service program exceeds available context budget; split into smaller programs\ninvariants:\n  - Opus-class model required; Sonnet is insufficient for reliable Prose VM simulation\n  - execution state written to .aiwg\u002Fworking\u002Fprose-runs\u002F only; no writes outside that path\n---\n\n# Prose Run Skill\n\nYou execute OpenProse programs by loading the Prose VM specification into context and running the program according to its two-phase execution model.\n\n## Triggers\n\n- \"run prose program\" \u002F \"execute prose program\"\n- \"execute [file].md as prose\"\n- \"prose run [path]\"\n- \"run this as a prose program\"\n\n## Input\n\n- A path to an OpenProse program file (`.md`)\n- Optional: input values for the program's `requires:` contract\n\n## Behavior\n\n### Step 0: Detect OpenProse Installation\n\nRun `\u002Fprose-detect` to locate the OpenProse installation and resolve `PROSE_ROOT`. If not found, stop and report:\n\n```\nOpenProse not found. Run \u002Fprose-setup to install it, or set PROSE_ROOT to an existing installation.\n```\n\n### Step 1: Locate Prose Specs\n\nUsing the `PROSE_ROOT` resolved by `\u002Fprose-detect`:\n\n1. Prose VM spec: `$PROSE_ROOT\u002Fprose.md`\n2. Forme Container spec: `$PROSE_ROOT\u002Fforme.md`\n3. If files are missing at resolved path: report error (path is stale — re-run `\u002Fprose-detect`)\n\n### Step 2: Read the Program\n\nRead the target program file. Parse frontmatter to determine:\n- **Single-component** (`kind: service` or no `services:` list) → skip to Step 4\n- **Multi-component** (`kind: program` with `services:` list) → proceed to Step 3\n\n### Step 3: Phase 1 — Forme Wiring (Multi-Component Only)\n\nLoad `forme.md` into context and execute wiring:\n\n1. Read the program entry point\n2. Read all service `.md` files listed in `services:`\n3. For each service, extract `requires:` and `ensures:`\n4. Match outputs to inputs by semantic understanding\n5. Build a dependency graph\n6. Determine execution order (topological sort)\n7. Produce a manifest describing the wiring\n\n### Step 4: Phase 2 — Prose VM Execution\n\nLoad `prose.md` into context. This causes the LLM to simulate the Prose VM.\n\nFor each component in execution order:\n1. Spawn a sub-agent session via the Task tool\n2. Pass required inputs (from user input or previous component outputs)\n3. The sub-agent executes the component's contract\n4. Capture the `ensures:` outputs\n5. Store outputs in `.aiwg\u002Fworking\u002Fprose-runs\u002F{run-id}\u002F`\n\n### Step 5: Return Results\n\nCollect the final program outputs (the root program's `ensures:` values) and present them to the user.\n\n### Step 6: Report Execution Summary\n\n```markdown\n## Prose Execution Complete\n\n**Program**: {name}\n**Components executed**: {count}\n**Execution order**: {component1} → {component2} → ...\n**Duration**: {time}\n\n### Outputs\n| Name | Value Summary |\n|------|---------------|\n| {ensures name} | {brief output summary} |\n\n### State\nRun artifacts saved to: `.aiwg\u002Fworking\u002Fprose-runs\u002F{run-id}\u002F`\n```\n\n## Requirements\n\n- **Model**: Opus-class model required for reliable Prose VM simulation (\"Prose Complete\" definition)\n- **Prose installation**: `prose.md` and `forme.md` must be accessible\n- **Context budget**: Multi-service programs consume significant context — monitor carefully\n\n## Safety\n\n- Programs are executed in the current session's sandbox\n- File writes are limited to `.aiwg\u002Fworking\u002Fprose-runs\u002F`\n- Sub-agent sessions inherit the parent's tool permissions\n- No network access beyond what the parent session allows\n\n## Limitations\n\n- Requires Opus for reliable execution; Sonnet may produce partial or incorrect results\n- Large multi-service programs may exceed context budget\n- No persistent state across sessions (state lives in `.aiwg\u002Fworking\u002F`)\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\u002Fsubagent-scoping.md — Sub-agent spawning via Task tool for multi-component execution\n- @$AIWG_ROOT\u002Fagentic\u002Fcode\u002Faddons\u002Faiwg-utils\u002Frules\u002Fcontext-budget.md — Monitor context budget for large multi-service programs\n- @$AIWG_ROOT\u002Fagentic\u002Fcode\u002Faddons\u002Faiwg-utils\u002Frules\u002Fresearch-before-decision.md — Run prose-detect and prose-validate before execution\n- @$AIWG_ROOT\u002Fdocs\u002Fcli-reference.md — CLI reference for AIWG integration commands\n","# Prose Run Skill\n\nYou execute OpenProse programs by loading the Prose VM specification into context and running the program according to its two-phase execution model.\n\n## Triggers\n\n- \"run prose program\" \u002F \"execute prose program\"\n- \"execute [file].md as prose\"\n- \"prose run [path]\"\n- \"run this as a prose program\"\n\n## Input\n\n- A path to an OpenProse program file (`.md`)\n- Optional: input values for the program's `requires:` contract\n\n## Behavior\n\n### Step 0: Detect OpenProse Installation\n\nRun `\u002Fprose-detect` to locate the OpenProse installation and resolve `PROSE_ROOT`. If not found, stop and report:\n\n```\nOpenProse not found. Run \u002Fprose-setup to install it, or set PROSE_ROOT to an existing installation.\n```\n\n### Step 1: Locate Prose Specs\n\nUsing the `PROSE_ROOT` resolved by `\u002Fprose-detect`:\n\n1. Prose VM spec: `$PROSE_ROOT\u002Fprose.md`\n2. Forme Container spec: `$PROSE_ROOT\u002Fforme.md`\n3. If files are missing at resolved path: report error (path is stale — re-run `\u002Fprose-detect`)\n\n### Step 2: Read the Program\n\nRead the target program file. Parse frontmatter to determine:\n- **Single-component** (`kind: service` or no `services:` list) → skip to Step 4\n- **Multi-component** (`kind: program` with `services:` list) → proceed to Step 3\n\n### Step 3: Phase 1 — Forme Wiring (Multi-Component Only)\n\nLoad `forme.md` into context and execute wiring:\n\n1. Read the program entry point\n2. Read all service `.md` files listed in `services:`\n3. For each service, extract `requires:` and `ensures:`\n4. Match outputs to inputs by semantic understanding\n5. Build a dependency graph\n6. Determine execution order (topological sort)\n7. Produce a manifest describing the wiring\n\n### Step 4: Phase 2 — Prose VM Execution\n\nLoad `prose.md` into context. This causes the LLM to simulate the Prose VM.\n\nFor each component in execution order:\n1. Spawn a sub-agent session via the Task tool\n2. Pass required inputs (from user input or previous component outputs)\n3. The sub-agent executes the component's contract\n4. Capture the `ensures:` outputs\n5. Store outputs in `.aiwg\u002Fworking\u002Fprose-runs\u002F{run-id}\u002F`\n\n### Step 5: Return Results\n\nCollect the final program outputs (the root program's `ensures:` values) and present them to the user.\n\n### Step 6: Report Execution Summary\n\n```markdown\n## Prose Execution Complete\n\n**Program**: {name}\n**Components executed**: {count}\n**Execution order**: {component1} → {component2} → ...\n**Duration**: {time}\n\n### Outputs\n| Name | Value Summary |\n|------|---------------|\n| {ensures name} | {brief output summary} |\n\n### State\nRun artifacts saved to: `.aiwg\u002Fworking\u002Fprose-runs\u002F{run-id}\u002F`\n```\n\n## Requirements\n\n- **Model**: Opus-class model required for reliable Prose VM simulation (\"Prose Complete\" definition)\n- **Prose installation**: `prose.md` and `forme.md` must be accessible\n- **Context budget**: Multi-service programs consume significant context — monitor carefully\n\n## Safety\n\n- Programs are executed in the current session's sandbox\n- File writes are limited to `.aiwg\u002Fworking\u002Fprose-runs\u002F`\n- Sub-agent sessions inherit the parent's tool permissions\n- No network access beyond what the parent session allows\n\n## Limitations\n\n- Requires Opus for reliable execution; Sonnet may produce partial or incorrect results\n- Large multi-service programs may exceed context budget\n- No persistent state across sessions (state lives in `.aiwg\u002Fworking\u002F`)\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\u002Fsubagent-scoping.md — Sub-agent spawning via Task tool for multi-component execution\n- @$AIWG_ROOT\u002Fagentic\u002Fcode\u002Faddons\u002Faiwg-utils\u002Frules\u002Fcontext-budget.md — Monitor context budget for large multi-service programs\n- @$AIWG_ROOT\u002Fagentic\u002Fcode\u002Faddons\u002Faiwg-utils\u002Frules\u002Fresearch-before-decision.md — Run prose-detect and prose-validate before execution\n- @$AIWG_ROOT\u002Fdocs\u002Fcli-reference.md — CLI reference for AIWG integration commands\n",{"name":5,"errors":60,"ensures":67,"version":71,"requires":72,"namespace":76,"platforms":77,"invariants":79,"description":7},[61,63,65],{"prose-not-found":62},"OpenProse installation not detected; run \u002Fprose-detect for guidance",{"invalid-program":64},"program file fails prose-validate checks; fix contract before running",{"context-exceeded":66},"multi-service program exceeds available context budget; split into smaller programs",[68,69,70],"output: the program's ensures: outputs, delivered per contract obligation","run-state: execution artifacts saved to .aiwg\u002Fworking\u002Fprose-runs\u002F{run-id}\u002F","if multi-service (kind: program + services:): wiring manifest generated before execution","0.1.0",[73,75],{"program":74},"path to an OpenProse program file (.md with contract frontmatter)","if program has requires: fields: values for each required input","aiwg",[78],"all",[80,81],"Opus-class model required; Sonnet is insufficient for reliable Prose VM simulation","execution state written to .aiwg\u002Fworking\u002Fprose-runs\u002F only; no writes outside that path","main","6754967c344ccb087a8de06972f55a41067b291b","agentic\u002Fcode\u002Fplugins\u002Fprose-integration\u002Fskills\u002Fprose-run",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":93,"prompt":103,"zipAvailable":104},[94,97,100],{"tool":95,"command":96},"npx","npx skills add jmagly\u002Faiwg --skill prose-run",{"tool":98,"command":99},"bunx","bunx skills add jmagly\u002Faiwg --skill prose-run",{"tool":101,"command":102},"pnpm","pnpm dlx skills add jmagly\u002Faiwg --skill prose-run","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fjmagly\u002Faiwg\u002Fblob\u002Fmain\u002Fagentic\u002Fcode\u002Fplugins\u002Fprose-integration\u002Fskills\u002Fprose-run\u002FSKILL.md",true,[],[107,134,158,164,171,185],{"skillNo":108,"name":109,"nameZh":6,"description":110,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":111,"categories":112,"keywords":114,"publishedAt":55},"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",[113],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[115,116,117,118,119,120,121,122,123,124,125,126,38,127,128,129,130,131,132,133],"host","host hardening","hardening","read","re","recommendations","remediation","plan","port","verification","Bash","access","retention","audit","never","firewall","bind","secrets","request",{"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":144,"publishedAt":55},"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",[140,143],{"categoryNo":141,"categoryName":142,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000011","运维与部署",{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[145,146,147,118,148,123,149,150,125,151,115,152,38,153,154,129,130,155,156,157],"exposure analysis","analysis","unknown","credentials","collection","ufw","ports","internet","local","scope","reconstruction","operator","write",{"skillNo":159,"name":109,"nameZh":6,"description":110,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":160,"categories":161,"keywords":163,"publishedAt":55},"01M70P8QATMPKA78E4FT5D2TNA","https:\u002F\u002Fgithub.com\u002Fjmagly\u002Faiwg\u002Fblob\u002Fmain\u002Fagentic\u002Fcode\u002Fframeworks\u002Fsecurity-engineering\u002Fskills\u002Fhost-hardening\u002FSKILL.md",[162],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[117,115,116,126,118,133,121,120,128,122,123,124,125,132,38,127,119,129,130,131],{"skillNo":165,"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":166,"categories":167,"keywords":170,"publishedAt":55},"01M70NMPVJ5H0JH131P60FW4R8","https:\u002F\u002Fgithub.com\u002Fjmagly\u002Faiwg\u002Fblob\u002Fmain\u002Fagentic\u002Fcode\u002Fframeworks\u002Fforensics-complete\u002Fskills\u002Fexposure-analysis\u002FSKILL.md",[168,169],{"categoryNo":141,"categoryName":142,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[146,145,129,148,123,149,125,147,115,152,38,153,154,118,130,151,150,155,156,157],{"skillNo":172,"name":173,"nameZh":6,"description":174,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":175,"categories":176,"keywords":178,"publishedAt":55},"01M6CB4DDR0B4NNCFK7ZK7449H","fixture-skill","Exercise rule delivery.","https:\u002F\u002Fgithub.com\u002Fjmagly\u002Faiwg\u002Fblob\u002Fmain\u002Ftest\u002Ffixtures\u002Frule-delivery\u002Fskills\u002Ffixture-skill\u002FSKILL.md",[177],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[179,180,181,182,183,184],"fixture skill","fixture","rule","delivery","true","exercise",{"skillNo":186,"name":187,"nameZh":6,"description":188,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":189,"categories":190,"keywords":192,"publishedAt":55},"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",[191],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[193,194,153,195,180],"pi","pi local","duplicate"]