← Back to Skills
Identity & Branding

brandkernel

Maximilian Appelt By Maximilian Appelt 👁 6 views ▲ 0 votes

SOUL.md with more depth. Triadic identity fields that give your agent red lines and bounded constraints, not flat strings.

GitHub
name: brandkernel
description: SOUL.md with more depth. A machine-readable identity schema that gives your agent red lines, not just vibes — structured as triadic fields so LLMs receive bounded constraints, not flat strings.
author: Maximilian Appelt
homepage: https://brandkernel.io
metadata:
  openclaw:
    emoji: "🧠"
    tags:
      - identity
      - brand
      - context
      - constraints
      - founders
---

# BrandKernel — SOUL.md, but deeper

SOUL.md theory is right. "Building an AI agent identity is really an act of self-excavation."

The method usually isn't. Upload your content, answer some questions, done in 10 minutes. That's extraction with better vocabulary. You'll get a first draft for an identity. Better than nothing — but not deep enough to actually govern an agent.

Two things are missing from most SOUL.md files:

**1. Red lines.** Your agent acts in your name. Books meetings. Writes emails. Represents you. What will it never do? Where does it stop even if instructed otherwise? That data isn't in your uploaded content — it was never articulated.

**2. Depth.** Too few data points for an agent to reason from your identity. It approximates. You want it to reason.

BrandKernel is the schema format that addresses both.

## The core idea: no flat strings

Most identity files look like this:
json
{ "voice": "direct, warm, no corporate speak" }
An LLM reads that and generates what it thinks "direct and warm" means — which is its training distribution, not yours.

BrandKernel uses triadic fields instead:
json
{
  "label": "Direct",
  "definition": "State the point first. No preamble, no softening, no 'great question'.",
  "anti_definition": "Not blunt or cold. Not skipping context when context is needed."
}
The `anti_definition` is the key. It narrows the semantic space from both sides — telling the model not just what you mean, but what you don't mean. Bounded regions, not flat labels.

Same principle for red lines:
json
{
  "constraint": "NEVER book a meeting without checking my calendar first",
  "enforcement": "REFUSE_AND_REDIRECT",
  "refusal_pattern": "I need to check availability before confirming — let me get back to you."
}
## The schema

8 layers. Each value encoded as a triad.

| Layer | What it encodes |
|---|---|
| **Identity** | The irreducible core. Who you are under pressure. |
| **Positioning** | Where you stand relative to everyone else. |
| **Strategy** | The decision logic connecting identity to action. |
| **Story** | What actually happened. Not the polished version. |
| **Voice** | The linguistic fingerprint no prompt can fake. |
| **Worldview** | What you believe even when it costs you. |
| **Principles** | The lines that don't move. Constitutional layer. |
| **Evidence** | Proof. Not claims — artifacts. |

Open schema: [github.com/Airmax1986/brandkernel-schema](https://github.com/Airmax1986/brandkernel-schema) — CC BY 4.0

Academic grounding: *BrandKernel: A Schema for Encoding Brand Identity as Machine-Readable Specifications* (arXiv, forthcoming)

## Get a kernel

Fill the schema manually using the open spec, or get it excavated properly at [brandkernel.io](https://brandkernel.io) — a structured human-AI dialogue that surfaces what you've never articulated. A few hours. Yours forever.
identity strategy constraints soul brand founders personality traits

Comments

Sign in to leave a comment

Loading comments...