Forma Plugins
Reusable runtime and tooling capabilities for Forma language packages.
Forma gives teams the base toolchain for building executable DSLs. Plugins are how a language package opts into reusable capabilities without baking every concern into the core compiler or runtime. Some plugins run with deployed systems. Others support authoring, validation, generation, and operations.
The split is intentional:
Runtime plugins extend what a running DSL-backed system can store, execute, authorize, observe, or deploy. Tooling plugins extend what authors, agents, CI, and downstream consumers can do with source and Canonical IR.
Runtime Plugins#
Fact Store is durable semantic memory for facts, relationships, provenance, and history. It gives a runtime an inspectable state substrate instead of hiding state inside application-specific tables, queues, or logs.
VCS tracks source, IR, and runtime changes as reviewable history. It should support branches, diffs, deploy plans, rollback, and provenance. VCS usually depends on the Fact Store for runtime history and on Canonical IR for structural diffs.
Auth and Policy provides reusable actors, roles, permissions, policy checks, and capability grants. It keeps commands, agent tools, generated APIs, and operator surfaces under the same authority model.
Effects declares controlled interaction with the outside world: HTTP calls, notifications, blob writes, scheduled jobs, external sync, and agent invocation. Effects are named capabilities, not ambient power.
Workflow and Actors provides ordered mutation, commands, events, timers, queues, background work, and actor-local state. It often depends on Effects, Auth and Policy, and the Fact Store.
Observability records audit logs, traces, effect logs, command history, policy decisions, runtime health, and operational events. It gives teams a way to answer what happened and why.
Deployment packages, validates, applies, rolls back, and monitors runtime changes. It usually depends on VCS, Runtime SDK compatibility checks, and whichever runtime plugins the language package uses.
Tooling Plugins#
Editor and IDE provides language-server capabilities: completions, hover, definition lookup, document symbols, diagnostics, formatting, source-to-IR navigation, and preview surfaces. It depends on the Language SDK and Canonical IR provenance.
Test Kit provides fixtures, golden IR snapshots, simulations, replay, runtime conformance tests, malformed payload cases, and regression suites for language packages.
Codegen emits host artifacts from source and IR: TypeScript types, Effect Schemas, JSON Schema, SDK clients, OpenAPI, MCP descriptors, database index hints, and package manifests.
API Surface exposes runtime services as HTTP, RPC, MCP, CLI, and SDK surfaces. It should consume typed IR and runtime service metadata rather than reparsing source.
Agent Tools turns queries, commands, policies, views, and effects into safe tool surfaces for AI agents. It usually depends on Auth and Policy, API Surface, and Fact Store context.
Dependency Shape#
Plugins can depend on each other, but the direction should stay explicit.
This keeps Forma small at the center. The core defines how languages are built, lowered, and run. Plugins define reusable capabilities around that core.
Where Alpha Ontology Fits#
Alpha Ontology can ship with an opinionated plugin set: Fact Store, Auth and Policy, Effects, Workflow and Actors, VCS, Editor and IDE, Test Kit, Codegen, API Surface, Agent Tools, Observability, and Deployment.
Other Forma language packages can choose a different set. A configuration DSL might need Codegen, Test Kit, and Editor support but no Fact Store. A policy DSL might need Auth, API Surface, and Agent Tools. An operational workflow DSL might use nearly the whole plugin stack.