Skip to main content

plugin-development

Create, test, sign, and publish Memoria governance plugins. Covers Rhai and gRPC runtimes, manifest format, lifecycle. Use when developing or managing plugins.

跳到安装

来源信息

仓库
matrixorigin/Memoria
最近来源活动
2026年3月18日 10:27
检测到的 SKILL.md 语言
英语
星标
597
分支
77

安装方式

默认使用会先检查来源的 Prompt;你也可以切换为直接命令,或下载本地副本。

检查来源文件

决定是否安装前,请先阅读 SKILL.md,以及 SkillsMP 当前展示的配套文件。

正在显示 SKILL.md

SKILL.md
来源说明 · 只读预览
name
plugin-development
description
Create, test, sign, and publish Memoria governance plugins. Covers Rhai and gRPC runtimes, manifest format, lifecycle. Use when developing or managing plugins.
## Quick Start ```bash memoria plugin init --dir ./my-plugin --name my-governance \ --capabilities governance.plan,governance.execute ``` Creates: ``` my-plugin/ ├── manifest.json # Plugin metadata, permissions, limits └── policy.rhai # Governance logic (Rhai script) ``` ## manifest.json ```json { "name": "memoria-my-governance", "version": "0.1.0", "api_version": "v1", "runtime": "rhai", "entry": { "rhai": { "script": "policy.rhai", "entrypoint": "memoria_plugin" } }, "capabilities": ["governance.plan", "governance.execute"], "compatibility": { "memoria": ">=0.1.0" }, "permissions": { "network": false, "filesystem": false, "env": [] }, "limits": { "timeout_ms": 500, "max_memory_mb": 32, "max_output_bytes": 8192 }, "integrity": { "sha256": "", "signature": "", "signer": "" }, "metadata": { "display_name": "My Governance Plugin" } } ``` Key fields: - `runtime`: `rhai` (sandboxed) or `grpc` (remote service) - `capabilities`: must include `governance.plan` and/or `governance.execute` - `integrity`: auto-filled by `memoria plugin publish` ## policy.rhai ```rhai fn memoria_plugin(ctx) { if ctx["phase"] == "plan" { let review = decision("my-plugin:check", "Description", 0.8); review["evidence"] = [evidence("source", "What was found")]; return #{ requires_approval: false, actions: [review], estimated_impact: #{ "my.metric": 1.0 } }; } if ctx["phase"] == "execute" { return #{ warnings: [], metrics: #{ "my.metric": 1.0 } }; } return #{}; } ``` Built-in helpers: `decision(id, reason, confidence)`, `evidence(source, description)` ## Runtime Types | Runtime | Sandboxing | Use Case | |---------|-----------|----------| | `rhai` | In-process, memory/time limited | Simple rules, no external deps | | `grpc` | Out-of-process, network call | Complex logic, external services | ## Development Workflow ### 1. Local dev (no signature, no DB) ```bash MEMORIA_GOVERNANCE_ENABLED=true \ MEMORIA_GOVERNANCE_PLUGIN_DIR=./my-plugin \ memoria serve ``` ### 2. Contract testing See `memoria-service/tests/plugin_contract.rs` — uses `GovernancePluginContractHarness`. ### 3. Sign and publish ```bash memoria plugin dev-keygen --dir ./my-plugin memoria plugin signer-add --signer my-team --public-key <base64-ed25519> memoria plugin publish --package-dir ./my-plugin memoria plugin review --key governance:my-governance:v1 --version 0.1.0 --status active memoria plugin activate --domain governance --binding default \ --plugin-key governance:my-governance:v1 --version 0.1.0 ``` ### 4. Production ```bash MEMORIA_GOVERNANCE_ENABLED=true MEMORIA_GOVERNANCE_PLUGIN_BINDING=default MEMORIA_GOVERNANCE_PLUGIN_SUBJECT=system ``` ## Lifecycle ``` scaffold → local dev → sign → publish → review → activate → scheduler loads ``` ## CLI Reference | Command | Description | |---------|-------------| | `memoria plugin init --dir <d> --name <n>` | Scaffold | | `memoria plugin dev-keygen --dir <d>` | Generate ed25519 keypair | | `memoria plugin publish --package-dir <d>` | Sign and publish | | `memoria plugin list` | List published | | `memoria plugin review --key <k> --version <v> --status <s>` | Review | | `memoria plugin activate --domain <d> --binding <b> --plugin-key <k> --version <v>` | Activate | | `memoria plugin rules` | List binding rules | | `memoria plugin score --key <k> --version <v>` | Compatibility score | | `memoria plugin matrix` | Compatibility matrix | | `memoria plugin events` | Audit events | ## Code Reference | File | Purpose | |------|---------| | `plugin/manifest.rs` | PluginManifest, PluginPackage, signing | | `plugin/repository.rs` | Publish, review, score, binding CRUD | | `plugin/rhai_runtime.rs` | RhaiGovernanceStrategy | | `plugin/grpc_runtime.rs` | GrpcGovernanceStrategy | | `plugin/governance_hook.rs` | Contract testing harness | | `plugin/templates/` | Rhai template |
在 GitHub 查看