Quickstart
Use iBOM® as a policy layer between brand intent and execution. Model the brand as structured schemas (meaning, terminology, tone, accessibility, approvals), then encode those expectations as checks that run in CI before changes ship. Once that’s stable, expose the same policy to runtime workflows via MCP for consistent enforcement across tools.
1. Define semantic schemas
{
"brand": "Advanced Analytica",
"principles": ["Code", "Accessible", "Structured"],
"policy": {
"voice": "systems-first",
"approvals": ["brand-governance"]
}
} 2. Encode control policies
{
"rules": [
{ "id": "tone.systems", "enforce": true },
{ "id": "accessibility.altText", "enforce": true }
]
} 3. Deploy through MCP
Expose your checks as an MCP tool so any agent or workflow can ask for validation before publishing, shipping, or approving changes.
// server.ts (minimal MCP "validate" tool)
import { Server } from "@modelcontextprotocol/sdk/server/index.js";
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
import { z } from "zod";
// Replace these with your real iBOM loader + rules engine.
const loadPolicy = async () => ({ rules: ["tone.systems", "accessibility.altText"] });
const validate = async (text: string, policy: { rules: string[] }) => ({
ok: true,
policy: policy.rules,
notes: ["Example: wire this to your real checks"],
});
const server = new Server(
{ name: "iBOM-policy", version: "0.1.0" },
{ capabilities: { tools: {} } }
);
server.tool(
"iBOM.validate",
{ text: z.string() },
async ({ text }) => validate(text, await loadPolicy())
);
await server.connect(new StdioServerTransport());