[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M77M4VDVDTMDP7BAV9GWS4WM":3,"skill-same:01M77M4VDVDTMDP7BAV9GWS4WM":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":18,"linkOnly":19,"markdownContent":20,"markdownBody":20,"frontMatter":21,"refName":22,"commitSha":23,"skillDirectory":24,"forksCount":25,"repositoryHtmlUrl":26,"repositoryHomepageUrl":27,"ownerHtmlUrl":28,"ownerBlogUrl":6,"ownerDescription":29,"updatedAt":30,"install":31,"resources":44},"01M77M4VDVDTMDP7BAV9GWS4WM","loop-engine-governance",null,"Lord1Egypt\u002Fawesome-skill-forge","Lord1Egypt","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F99746359?v=4","01M7592YDNT0XK9WJ0T2MQVPDN","Mohamed Mounir Ali AL Keshita","01M75GRFNHC8VZNWEB8DKDE433",3,"MIT","https:\u002F\u002Fgithub.com\u002FLord1Egypt\u002Fawesome-skill-forge\u002Fblob\u002Fmaster\u002Fcommunity\u002Fclawhub\u002Fl\u002Floop-engine-governance\u002FSKILL.md",[],[],"2026-11-15 14:19:17",false,"# loop-engine-governance\n\n## Overview\n\n`loop-engine-governance` adds policy enforcement to OpenClaw workflows by routing decisions through Loop Engine transitions and guards.\n\n## Modes of operation\n\n### Local governance mode (no external LLM provider)\n\n- Uses Loop Engine runtime, guards, and audit trail only.\n- No external LLM API calls occur in this mode.\n- Suitable for human-only and automation-only loop flows.\n\n### LLM-augmented mode (external provider calls enabled)\n\n- Enabled only when a provider adapter is explicitly configured.\n- Provider-backed examples call external APIs and may transmit prompt\u002Fevidence context to that provider.\n\n## Installation\n\n```bash\n# Core (required for all modes)\nnpm install @loop-engine\u002Fsdk @loop-engine\u002Fadapter-memory @loop-engine\u002Fadapter-openclaw\n\n# Optional: provider-backed adapters (install only what you use)\nnpm install @loop-engine\u002Fadapter-anthropic @anthropic-ai\u002Fsdk\nnpm install @loop-engine\u002Fadapter-openai openai\nnpm install @loop-engine\u002Fadapter-grok\n```\n\n## Configuration\n\n- Local mode requires loop definitions, storage, and guard registry configuration only.\n- Provider-backed mode additionally requires the corresponding provider adapter and API key.\n- External provider calls are activated by adapter usage (for example `createOpenAIActorAdapter(...)`), not by Loop Engine core alone.\n\n## Environment variables\n\nProvider keys are required only for provider-backed examples:\n\n| Example | Mode | Required env var |\n|---|---|---|\n| `example-expense-approval.ts` | local governance | none |\n| `example-openclaw-integration.ts` | local governance + OpenClaw gateway | none |\n| `example-ai-replenishment-claude.ts` | provider-backed (Anthropic) | `ANTHROPIC_API_KEY` |\n| `example-infrastructure-change-openai.ts` | provider-backed (OpenAI) | `OPENAI_API_KEY` |\n| `example-fraud-review-grok.ts` | provider-backed (xAI) | `XAI_API_KEY` |\n\nAdditional provider key used elsewhere in this repo:\n\n- `GOOGLE_AI_API_KEY` for `@loop-engine\u002Fadapter-gemini` examples and adapter usage.\n\n## External network and data flow\n\n- **No provider adapter configured:** no external LLM network calls.\n- **Provider adapter configured:** prompt\u002Fevidence context passed to `createSubmission(...)` may be sent to:\n  - OpenAI (`@loop-engine\u002Fadapter-openai`)\n  - Anthropic (`@loop-engine\u002Fadapter-anthropic`)\n  - xAI Grok (`@loop-engine\u002Fadapter-grok`)\n  - Google Gemini (`@loop-engine\u002Fadapter-gemini`)\n- OpenClaw integration (`@loop-engine\u002Fadapter-openclaw`) uses a WebSocket gateway connection (`gatewayUrl`, default `ws:\u002F\u002F127.0.0.1:18789`) for event forwarding.\n\n## Sensitive data guidance\n\n- Do not send raw PII, PHI, PCI, credentials, or other regulated data to provider-backed examples without review.\n- Redact, tokenize, or minimize sensitive fields before submitting evidence context.\n- Review provider retention, training, and contractual controls before production use.\n\n## Provenance\n\n- **Canonical repository:** https:\u002F\u002Fgithub.com\u002Floopengine\u002Floop-engine\n- **Skill source path:** `packages\u002Fadapter-openclaw\u002Floop-engine-governance\u002F`\n- **Maintainer organization:** Better Data, Inc. (https:\u002F\u002Fbetterdata.co)\n- **Documentation site:** https:\u002F\u002Floopengine.io\u002Fdocs\u002Fintegrations\u002Fopenclaw\n\n## Package\u002Fsource references\n\n- `@loop-engine\u002Fadapter-openclaw`: https:\u002F\u002Fwww.npmjs.com\u002Fpackage\u002F@loop-engine\u002Fadapter-openclaw\n- `@loop-engine\u002Fsdk`: https:\u002F\u002Fwww.npmjs.com\u002Fpackage\u002F@loop-engine\u002Fsdk\n- `@loop-engine\u002Fadapter-openai`: https:\u002F\u002Fwww.npmjs.com\u002Fpackage\u002F@loop-engine\u002Fadapter-openai\n- `@loop-engine\u002Fadapter-anthropic`: https:\u002F\u002Fwww.npmjs.com\u002Fpackage\u002F@loop-engine\u002Fadapter-anthropic\n- `@loop-engine\u002Fadapter-grok`: https:\u002F\u002Fwww.npmjs.com\u002Fpackage\u002F@loop-engine\u002Fadapter-grok\n- `@loop-engine\u002Fadapter-gemini`: https:\u002F\u002Fwww.npmjs.com\u002Fpackage\u002F@loop-engine\u002Fadapter-gemini\n\n## What this skill does\n\nWires [Loop Engine](https:\u002F\u002Floopengine.io) into OpenClaw so that any workflow\nstep can be governed by:\n\n- **Human approval gates** — transitions only a named human actor can trigger\n- **AI confidence guards** — block AI recommendations below a threshold\n- **Evidence capture** — attach structured context to every decision\n- **Audit trail** — every transition is attributed, timestamped, and immutable\n\n## How it works with OpenClaw\n\n```\nOpenClaw agent proposes action\n        ↓\nLoop Engine evaluates guards       ← @loop-engine\u002Fadapter-openclaw\n        ↓\nHuman approves (if policy requires)\n        ↓\nOpenClaw executes the approved action\n```\n\nGuards are enforced at the runtime level — not in prompts.\n\n## How governance weighting works\n\nThree types of weighting evaluated in sequence — all must pass:\n\n**1. Confidence threshold (numeric gate)**\nEvery AI actor submission carries a 0–1 confidence score. The guard blocks\nthe transition if the score falls below the configured threshold.\n\n**2. Guard priority (hard vs soft)**\nHard failures block the transition regardless of everything else.\nA human-only guard is an absolute block — no confidence score overrides it.\n\n**3. Evidence completeness (structural gate)**\nThe evidence-required guard checks for specific fields before allowing a\ntransition. Missing any required field blocks the transition.\n\n**Evaluation order:**\n```\n1. Actor authorized for this signal?\n2. Required evidence fields present?\n3. Confidence score above threshold?\n4. All hard guards pass?\n```\n\n## Quick start (no API key required)\n\n```typescript\nimport { createLoopSystem, parseLoopYaml, CommonGuards, guardEvidence } from '@loop-engine\u002Fsdk'\nimport { MemoryAdapter } from '@loop-engine\u002Fadapter-memory'\n\nconst definition = parseLoopYaml(`\n  loopId: approval.workflow\n  name: Approval Workflow\n  version: 1.0.0\n  initialState: pending\n  states:\n    - stateId: pending\n      label: Pending Approval\n    - stateId: approved\n      label: Approved\n      terminal: true\n  transitions:\n    - transitionId: approve\n      from: pending\n      to: approved\n      signal: approve\n      allowedActors: [human]\n      guards: [human-only]\n`)\n\nconst system = createLoopSystem({\n  storage: new MemoryAdapter(),\n  guards: CommonGuards,\n})\n\nconst loop = await system.startLoop({ definition, context: {} })\n\n\u002F\u002F Only a human actor can approve — AI and automation actors are blocked.\n\u002F\u002F guardEvidence strips PII fields and prompt-injection patterns before\n\u002F\u002F the evidence object is forwarded to any external LLM adapter.\nawait system.transition({\n  loopId: loop.loopId,\n  signalId: 'approve',\n  actor: { id: 'alice', type: 'human' },\n  evidence: guardEvidence({ reviewNote: 'Looks good' }),\n})\n```\n\n## Examples included\n\n| File | Provider | API key |\n|---|---|---|\n| `example-expense-approval.ts` | None | Not required |\n| `example-ai-replenishment-claude.ts` | Anthropic Claude | `ANTHROPIC_API_KEY` |\n| `example-infrastructure-change-openai.ts` | OpenAI GPT-4o | `OPENAI_API_KEY` |\n| `example-fraud-review-grok.ts` | xAI Grok 3 | `XAI_API_KEY` |\n\nAll examples use synthetic data. Do not use real PII or regulated data\nwithout reviewing your provider's data processing agreements.\n\n## Evidence sanitization\n\nAll evidence objects must be guarded before being forwarded to external LLM adapters.\n`guardEvidence` (exported from `@loop-engine\u002Fsdk`) enforces three rules at the skill boundary:\n\n1. **PII field blocking** — fields whose names match known PII patterns (`ssn`, `email`, `phone`,\n   `dob`, `password`, `token`, `healthrecord`, `mrn`, and 20+ others) are dropped before forwarding.\n2. **Prompt injection stripping** — string values beginning with role prefixes (`system:`, `user:`,\n   `assistant:`) are stripped to prevent instruction injection via evidence payloads.\n3. **Value length cap** — string values are truncated at 512 characters to prevent context stuffing.\n\nAlways wrap caller-supplied evidence with `guardEvidence()` before passing it to\n`system.transition()`. The Quick Start above shows the correct pattern.\n\n## Security notes\n\n- Local governance mode runs without external LLM provider calls.\n- Provider-backed mode requires explicit adapter activation and the corresponding API key.\n- Evidence and prompt context can leave the local environment only in provider-backed mode.\n- This skill does not claim compliance certifications or data-processing guarantees.\n\n## Documentation\n\nhttps:\u002F\u002Floopengine.io\u002Fdocs\u002Fintegrations\u002Fopenclaw\n\n## License\n\nMIT-0 — free to use, modify, and redistribute. No attribution required.\n\n`@loop-engine\u002F*` packages: Apache-2.0\nProvider SDKs: licensed by their respective maintainers",{},"master","4aa004da461d820f4ea5499e58eb8d196cf99016","community\u002Fclawhub\u002Fl\u002Floop-engine-governance",0,"https:\u002F\u002Fgithub.com\u002FLord1Egypt\u002Fawesome-skill-forge","https:\u002F\u002Fskill-explorer-rho.vercel.app","https:\u002F\u002Fgithub.com\u002FLord1Egypt","Unbreakable. Unstoppable. Unmatched⚡.\r\n Speaker of machine tongues 🤖  | World-builder of decentralized dreams 🌐 | Defender of the digital realm🛡️.","2026-06-10 08:21:01",{"source":7,"skillName":5,"commands":32,"prompt":42,"zipAvailable":43},[33,36,39],{"tool":34,"command":35},"npx","npx skills add Lord1Egypt\u002Fawesome-skill-forge --skill loop-engine-governance",{"tool":37,"command":38},"bunx","bunx skills add Lord1Egypt\u002Fawesome-skill-forge --skill loop-engine-governance",{"tool":40,"command":41},"pnpm","pnpm dlx skills add Lord1Egypt\u002Fawesome-skill-forge --skill loop-engine-governance","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FLord1Egypt\u002Fawesome-skill-forge\u002Fblob\u002Fmaster\u002Fcommunity\u002Fclawhub\u002Fl\u002Floop-engine-governance\u002FSKILL.md",true,[],[46,53,60,67,74,81],{"skillNo":47,"name":48,"nameZh":6,"description":49,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":50,"categories":51,"keywords":52,"publishedAt":18},"01M785WKJB99G3STR1NF9NRTJW","youtube-content","YouTube transcripts to summaries, threads, blogs.","https:\u002F\u002Fgithub.com\u002FLord1Egypt\u002Fawesome-skill-forge\u002Fblob\u002Fmaster\u002Fskills\u002Fyoutube-content\u002FSKILL.md",[],[],{"skillNo":54,"name":55,"nameZh":6,"description":56,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":57,"categories":58,"keywords":59,"publishedAt":18},"01M785WEFHB0G2S9YA6EPR3H0E","xurl","X\u002FTwitter via xurl CLI: post, search, DM, media, v2 API.","https:\u002F\u002Fgithub.com\u002FLord1Egypt\u002Fawesome-skill-forge\u002Fblob\u002Fmaster\u002Fskills\u002Fxurl\u002FSKILL.md",[],[],{"skillNo":61,"name":62,"nameZh":6,"description":63,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":64,"categories":65,"keywords":66,"publishedAt":18},"01M785W98EDN4EFJXJPMQEHCRC","touchdesigner-mcp","Control a running TouchDesigner instance via twozero MCP — create operators, set parameters, wire connections, execute Python, build real-time visuals. 36 native tools.","https:\u002F\u002Fgithub.com\u002FLord1Egypt\u002Fawesome-skill-forge\u002Fblob\u002Fmaster\u002Fskills\u002Ftouchdesigner-mcp\u002FSKILL.md",[],[],{"skillNo":68,"name":69,"nameZh":6,"description":70,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":71,"categories":72,"keywords":73,"publishedAt":18},"01M785W5S9FP3QBH2V191E025P","test-driven-development","TDD: enforce RED-GREEN-REFACTOR, tests before code.","https:\u002F\u002Fgithub.com\u002FLord1Egypt\u002Fawesome-skill-forge\u002Fblob\u002Fmaster\u002Fskills\u002Ftest-driven-development\u002FSKILL.md",[],[],{"skillNo":75,"name":76,"nameZh":6,"description":77,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":78,"categories":79,"keywords":80,"publishedAt":18},"01M785W2AS08NSSH9YATCV6FJB","teams-meeting-pipeline","Operate the Teams meeting summary pipeline via Hermes CLI — summarize meetings, inspect pipeline status, replay jobs, manage Microsoft Graph subscriptions.","https:\u002F\u002Fgithub.com\u002FLord1Egypt\u002Fawesome-skill-forge\u002Fblob\u002Fmaster\u002Fskills\u002Fteams-meeting-pipeline\u002FSKILL.md",[],[],{"skillNo":82,"name":83,"nameZh":6,"description":84,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":85,"categories":86,"keywords":87,"publishedAt":18},"01M785VXKW4T34BTP1SCHW1R7F","systematic-debugging","4-phase root cause debugging: understand bugs before fixing.","https:\u002F\u002Fgithub.com\u002FLord1Egypt\u002Fawesome-skill-forge\u002Fblob\u002Fmaster\u002Fskills\u002Fsystematic-debugging\u002FSKILL.md",[],[]]