§ Spec masthead

§ Draft 2.2 · May 2026 · Apache 2.0

AIX

The AI Interchange Standard

Author
Michael Tchong, Ubertrends LLC
License
Apache 2.0 — Open Standard
Heritage
CrossARM (2014) · Ubertrends LLC · Solo Trillion
Status
Ratified · May 2026

AIX is an open standard for naming, exchanging data, and establishing interoperability between generative AI tools, agents, and applications. This document merges the AIX Interchange Format Specification and the AIX Naming Convention Standard into a single authoritative reference.

1. Introduction #

1.1 The Problem #

The generative AI revolution has produced hundreds of specialized tools — each with its own API format, authentication method, and response structure. This fragmentation creates developer burden through custom integration code for each provider, vendor lock-in when switching providers requires rewriting applications, workflow friction when chaining tools requires format conversion, and no standard way to compare outputs across providers.

A parallel problem exists inside AI agents themselves: without a naming standard, every team invents its own key vocabulary for fields, configuration properties, and persona data. Keys proliferate without governance — some snake_case, some camelCase, some abbreviated, some redundant — until the system becomes unmaintainable and incompatible with external implementers.

1.2 The Solution #

AIX addresses both problems with a single specification. It defines a standard envelope for AI task requests and responses so any AIX-compliant tool can accept standardized inputs, return standardized outputs, be swapped with any other tool in the same category, and chain seamlessly with other AIX tools in workflows. It also defines a canonical naming convention so every field, key, and identifier in the AIX ecosystem is unambiguous, hierarchical, and implementable by developers with no internal context.

1.3 Heritage: CrossARM (2014) #

AIX follows the pattern established by CrossARM, a data interchange standard developed by Ubertrends LLC in 2014 for cross-platform marketing data exchange. CrossARM’s governing principle was: use Schema.org canonical names where they exist, and invent proprietary extensions for what Schema.org does not cover.

code
// CrossARM 2014 — Schema.org base vocabulary
givenName, familyName, worksFor, address, email, telephone  (Person)
brand, legalName, duns, isicV4                              (Organization)

// CrossARM 2014 — Proprietary extensions (Schema.org had no equivalent)
facebookName, twitterName, twitterFollowers, engagementRate
uniqueVisits, timeOnSite, bounceRate, influencerRating

AIX v2.0 formalizes this pattern. Schema.org canonical names are used wherever applicable. Fields that Schema.org does not cover are defined as AIX extensions, noted as such in the registry.

1.4 Relationship to Existing Standards #

Standard Focus AIX Relationship
MCP (Model Context Protocol) Connecting AI to data sources Complementary — MCP handles inputs, AIX handles outputs
Schema.org Structured web data vocabulary Foundation — AIX uses Schema.org canonical names as base layer
Eden AI Schemas Traditional AI APIs (OCR, NLP) Predecessor — AIX extends into generative AI task types
JSON Schema Data validation Implementation — AIX uses JSON Schema for field validation
CrossARM (2014) Cross-platform marketing data Heritage — established the Schema.org base + extension pattern

2. Core Naming Principles #

These principles govern every field name, key, and identifier in the AIX specification and in any AIX-compliant implementation.

2.1 camelCase Throughout #

All field names and identifiers use camelCase. No snake_case, no kebab-case, no PascalCase for field names. This aligns with JSON, JavaScript, and modern API conventions.

code
// ✓ Correct
givenName  familyName  jobTitle  telephoneMobile  linkedinUrl

// ✗ Incorrect
given_name    // snake_case
given-name    // kebab-case
GivenName     // PascalCase

Layer-specific exceptions: - Database columns use snake_case by PostgreSQL convention. API responses, JSON exports, and all specification field names use camelCase. ORM/serialization layers handle the translation (e.g., given_name → givenName). - Slugs and URLs use dash-case (e.g., futuresight-studio, rss-discovery). Slugs are identifiers in routing and storage contexts, not AIX field names, and follow web convention. Slug values are never used as AIX field keys. - Schema version strings use the format {type}-v{N} (e.g., studio-json-v1, canvas-document-v1). These are opaque version identifiers, not field keys, and are exempt from the camelCase rule.

2.2 Hierarchical Namespace #

Every internal AIX identifier (agent configs, format types, quality passes, module keys) follows a strict four-part hierarchy. Each segment narrows scope from broad to specific. Underscores serve exclusively as namespace separators — they are not snake_case within a segment.

code
{component}_{objectType}_{identifier}_{property}

writingAgent_format_default_systemPrompt
writingAgent_format_newsletter_outputRules
researchAgent_qualityPass_hallucinationSweep_systemPrompt
personaAgent_voice_brand
publishingModule_emailStudio_studioJson

2.3 Schema.org Base + AIX Extensions #

For persona data and interchange fields, AIX uses Schema.org canonical property names where they exist. When Schema.org does not have a suitable property, AIX defines extensions, marked ‘AIX extension’ in the Source column.

Layer Example Fields Rule
Schema.org canonical givenName, familyName, jobTitle, legalName, telephone, email, naics, foundingDate Use as-is, no modification
AIX extensions telephoneMobile, emailBusiness, linkedinUrl, twitterUrl Only when Schema.org has no equivalent
AIX hierarchy keys writingAgent_format_default_systemPrompt Four-part camelCase hierarchy for agent/config keys

2.4 No Abbreviations #

All segments use full English words. The only exceptions are established industry acronyms registered in the AIX permitted acronym list.

✗ Prohibited (abbreviated) ✓ Required (full word)
liUrl linkedinUrl
sp systemPrompt
or outputRules
docType documentType
qPass qualityPass
ra researchAgent

Permitted acronyms: aix, api, url, html, json, uuid, naics, rss, uma

rss added 2026-05-12. RSS (Really Simple Syndication / RDF Site Summary) has been the W3C-canonical name for the format since 2002. uma added 2026-05-09. UMA (Unified Module Architecture) is the registered module platform layer in the AIX ecosystem.

2.5 Identifier Names the Format — Properties Define It #

The identifier segment (position 3 in the hierarchy) uses a short, stable handle. The systemPrompt and outputRules properties carry the full behavioral specification. Never encode behavior into the identifier name.

code
// ✓ Correct — identifier is a short stable handle
writingAgent_format_newsletter_systemPrompt
writingAgent_format_newsletter_outputRules

// ✗ Wrong — behavior encoded into identifier name
writingAgent_format_formattedNewsletterWithCuratedSections_systemPrompt

2.6 Naming Validation Tests #

Before any new key is ratified, it must pass all six tests. A key that fails any test must be revised.

Test Question Fail Condition
1. Stranger Test Could a developer with no internal context understand this key from its name alone? Requires docs or explanation to parse
2. Hierarchy Test Does the key follow {component}{objectType}?}_{property Missing segment when more specificity exists
3. Abbreviation Test Does the key contain any prohibited abbreviated segments? Any segment not a full word or registered acronym
4. Case Test Is every segment in camelCase? Any snake_case, kebab-case, or UPPER_SNAKE within a segment
5. Redundancy Test Does any segment restate or mirror an adjacent segment? e.g. documentType_document — concept repeated
6. Conflict Test Does the key duplicate or closely mirror an existing canonical key? Duplicate or near-duplicate of a ratified key

3. Persona Field Registry #

The Persona Field Registry defines every field in the AIX identity vault. Each field is either a Schema.org canonical property (used as-is) or an AIX extension (defined because Schema.org has no equivalent). This registry is the authoritative source for all Persona Vault implementations.

Schema.org canonical fields are used as-is. AIX extension fields are marked ‘AIX extension’ in the Source column. The field key is the bare name — e.g., linkedinUrl, not aix:linkedinUrl.

3.1 Essentials #

AIX Field Key Source Description Example Value
givenName Schema.org Legal first name Michael
familyName Schema.org Legal last name Tchong
preferredName AIX extension Preferred name or nickname if different from legal name Mike
jobTitle Schema.org Professional title Founder & CEO
worksFor Schema.org Primary organization name Ubertrends LLC
industry AIX extension Industry or sector Technology Consulting
addressHome AIX extension Home or personal display location (City, State) Las Vegas, NV
timezone AIX extension IANA timezone identifier America/Los_Angeles

3.2 Professional #

AIX Field Key Source Description
activeProject1 AIX extension Current primary project name and one-line description
activeProject2 AIX extension Current secondary project
currentGoal1 AIX extension Active goal with target date
currentGoal2 AIX extension Active goal with target date
currentGoal3 AIX extension Active goal with target date
expertise AIX extension Core areas of expertise (comma-separated or prose)
toolsUsed AIX extension Primary tools and platforms currently in use
resume AIX extension Short professional bio or resume summary

3.3 Organization #

These fields describe the author’s organization or business entity. They use Schema.org Organization vocabulary where available.

AIX Field Key Source Description
legalName Schema.org Full legal name of the organization — see §3.4 for authoritative definition
description Schema.org Short organization description (elevator pitch)
companyBackgrounder AIX extension Longer organization backgrounder for press or partners
productServiceDescription1 AIX extension Primary product or service description
productServiceDescription2 AIX extension Secondary product or service description
url Schema.org Primary website URL
websiteUrl2 AIX extension Secondary website URL

legalName is a shared field defined authoritatively in §3.4 Financial & Legal. It appears here because Organization context is where most implementations first encounter it. §3.4 is the canonical definition.

3.4 Financial & Legal #

AIX Field Key Source Description
legalName Schema.org Legal entity name (also in Organization — shared field)
entityType AIX extension Legal entity type (LLC, Corp, Sole Prop, etc.)
foundingDate Schema.org Date organization was founded or incorporated
naics Schema.org NAICS industry classification code
taxCategory AIX extension Tax classification (e.g., Disregarded Entity, S-Corp)
addressBusiness AIX extension Full business mailing address
addressHome AIX extension Home or personal display location
bank AIX extension Primary banking institution name
references AIX extension Professional references (names, titles, contact info)
telephoneBusiness AIX extension Business/office telephone number
telephoneMobile AIX extension Mobile telephone number

AIX Disambiguation Pattern — Schema.org has single-value properties for address, telephone, and email. AIX extends each with a qualifier suffix: addressBusiness / addressHome, telephoneBusiness / telephoneMobile, emailBusiness / emailPersonal. The Schema.org base property is not used directly in AIX implementations.

3.5 Media Collections #

AIX v2.1 introduced the media array: a collection of Medium entries, each typed with controlled vocabulary, carrying its own name, optional brand, optional tagline, optional URL, and a primary flag.

Field Definitions #

AIX Field Key Source Type Required Description
media AIX extension array No Ordered collection of Medium objects representing the author’s media surfaces
mediumType AIX extension string Yes (per entry) Controlled vocabulary — see table below
mediumName AIX extension string Yes (per entry) User-facing display name of this media surface
mediumBrand AIX extension string No Optional umbrella brand if distinct from mediumName
mediumTagline AIX extension string No Per-medium tagline; defaults to persona tagline if absent
mediumUrl AIX extension string (URL) No Canonical URL for this media surface
isPrimary AIX extension boolean Yes (per entry) Exactly one entry per persona must be true

mediumName vs. worksForworksFor names the organization ("Ubertrends LLC"). mediumName names the media surface ("Ubertrends"). For solo operators whose company IS their media brand, the values may converge. Template substitution contexts differ: {worksFor} = organizational affiliation; {mediumName} = publication/media byline.

mediumType Controlled Vocabulary #

Value Description Examples
newsletter Email-delivered periodic publication Ubertrends, The Hustle, Morning Brew
blog Web-native long-form writing surface Waitbutwhy, Stratechery
podcast Audio episodic series The Tim Ferriss Show, Lex Fridman Podcast
channel Video episodic series — platform-neutral Veritasium (YouTube), MKBHD
social Broadcast-style social presence LinkedIn, X/Twitter, Threads, Bluesky
platform Product or service where content appears Solo Trillion Orchestra, a SaaS product blog
publication Formal editorial container Substack, Ghost, Medium publication
community Membership or discussion space Discord server, Slack community, Circle
other Any surface not covered above

Implementations MUST accept unknown mediumType values without error, treating them as other.

Template Substitution Resolution Rule #

When a Writing Agent resolves {mediumName}, {mediumBrand}, or {mediumTagline} at generation time:

Step Condition Action
1 Generation request specifies mediumId or mediumType Substitute from the matching media[] entry
2 No request-level override Substitute from the entry where isPrimary: true
3 No primary entry Substitute from media[0]
4 media[] is empty or absent Fall back to worksFor for {mediumName}; log a warning

This resolution rule is normative. Any AIX-compliant Writing Agent must implement it identically.

Reference Implementation Example #

json
"media": [
  {
    "mediumType": "newsletter",
    "mediumName": "Ubertrends",
    "mediumBrand": "FutureSight",
    "mediumTagline": "America's Most Influential Trend Spotter",
    "mediumUrl": "https://ubertrends.com",
    "isPrimary": true
  },
  {
    "mediumType": "platform",
    "mediumName": "Solo Trillion Orchestra",
    "mediumUrl": "https://solotrillion.ai",
    "isPrimary": false
  }
]

Backwards Compatibility #

AIX v2.1 is purely additive. The non-canonical {publication_name} placeholder is deprecated in favor of {mediumName}. {publication_name} will be removed in v3.0.

3.6 Social Media #

AIX Field Key Source Description Format
linkedinUrl AIX extension LinkedIn profile URL https://linkedin.com/in/handle
twitterUrl AIX extension X/Twitter profile URL https://x.com/handle
facebookUrl AIX extension Facebook profile or page URL https://facebook.com/handle
instagramUrl AIX extension Instagram profile URL https://instagram.com/handle
youtubeUrl AIX extension YouTube channel URL https://youtube.com/@handle
tiktokUrl AIX extension TikTok profile URL https://tiktok.com/@handle
substackUrl AIX extension Substack publication URL https://name.substack.com

Naming pattern: {platform}Url — the Url suffix is required. Without it, linkedin is ambiguous (handle string, URL, or boolean). Schema.org equivalent: sameAs (array) — insufficient for per-platform agent use.

3.7 Contact (Email) #

AIX Field Key Source Description
email Schema.org Primary email address
emailBusiness AIX extension Business email address
emailPersonal AIX extension Personal email address

3.8 Preferences #

AIX Field Key Source Description
communicationStyle AIX extension Preferred communication style with this agent
checkinFrequency AIX extension How frequently and in what format to receive check-ins
interests AIX extension Personal and professional interests
offLimitsTopics AIX extension Topics or subjects to avoid in generated content
responseFormat AIX extension Preferred response format (prose, bullets, structured, etc.)

3.9 Conversational Agent #

AIX Field Key Source Description
conversationalAgentName AIX extension Display name of the conversational agent. Default: Rosie
conversationalAgentVoiceId AIX extension TTS voice identifier (e.g., ElevenLabs voice ID)
conversationalAgentSystemPrompt AIX extension System prompt defining the conversational agent persona

3.10 Published Works #

AIX v2.2 introduces fields for authors who publish long-form structured works (books, field guides, reference manuals). These fields enable book chapter chaining, sidebar attribution, and cross-referencing within multi-chapter publications.

AIX Field Key Source Description
bookTitle AIX extension Full title of the book or long-form work
bookKey AIX extension Stable slug identifier for the book (dash-case, e.g., ai-power-tools)
chapterKey AIX extension Stable slug identifier for a chapter (e.g., chapter-01-foundations)
chapterTitle AIX extension Display title of the chapter
chapterNumber AIX extension Sequential chapter number (integer)
chapterContent AIX extension Full prose content of the chapter
chapterSummary AIX extension Short summary of the chapter for navigation and indexing
chapterSubsections AIX extension Array of subsection headings within the chapter
contentType AIX extension Type of content unit: chapter | sidebar | appendix | introduction
parentChapterKey AIX extension For sidebars: the chapterKey of the containing chapter

Stranger Test validation (all 10 fields): All fields use full English words, follow the {concept}{Qualifier} camelCase pattern, and are self-describing to a developer with no internal context. bookKey and chapterKey use Key as a suffix indicating a stable slug identifier — consistent with the AIX extension pattern for opaque handles.


4. Component & Agent Registry #

Components are the top-level namespace segment in all AIX hierarchy keys. New components require a spec amendment before use.

Component Key Full Name Description
researchAgent Research Agent Web research, source synthesis, hallucination detection
writingAgent Writing Agent Content generation, format management, output formatting
personaAgent Persona Agent Identity vault, voice, guidelines, guardrails
conversationalAgent Conversational Agent Conversational assistant (Telegram + web) — default name: Rosie
rosie Rosie Registered component key for Rosie-specific configuration keys. Use conversationalAgent for generic interchange; use rosie for Rosie-specific implementation keys.
orchestra Orchestra Platform-level orchestration, agent chaining, workflow config
aix AIX Standard Specification-level fields (version, schema, envelope)

4.7 Agent Behavioral Modes #

AIX-compliant agents may declare a behavioral mode that governs how they respond to inputs and initiate actions.

4.7.1 The Problem #

Without a standard mode declaration, agents default to their training bias — typically “helpful general assistant” — regardless of the role they are assigned. A naming standard alone does not solve this; behavior must be declarable and queryable at the protocol level.

4.7.2 The behavioralMode Field #

json
{
  "aix": "2.2",
  "agent": {
    "id": "rosie",
    "role": "chief_of_staff",
    "behavioralMode": "observer",
    "allowedModes": ["observer", "orchestrator", "briefing", "off"]
  }
}

4.7.3 Standard Mode Vocabulary #

Mode Description Agent Behavior
observer Default monitoring state Listens, classifies, surfaces signals. Does not initiate external actions without explicit trigger.
orchestrator Active pipeline execution Runs workflows, coordinates other agents, executes scheduled tasks.
briefing Delivery state Formats and delivers digests, summaries, and reports. Read-only relative to source data.
off Silent state No proactive outreach. Responds to direct queries only. Executes no scheduled tasks.

4.7.4 Mode Transitions #

Behavioral mode transitions must be explicit. An agent must not self-transition between modes based on conversation context alone. Mode changes require a direct user instruction, a scheduled trigger, or an orchestration signal from another AIX-compliant agent.

4.7.5 Mode Declaration in Task Envelopes #

json
{
  "aix": "2.2",
  "task": { "type": "content_authoring", "provider": "anthropic", "model": "claude-sonnet-4-6" },
  "meta": { "requestId": "req_abc123", "timestamp": "2026-05-01T09:00:00Z", "agentMode": "orchestrator" }
}

4.7.6 Soul Documents #

A Soul Document is a persistent identity file that defines an agent’s role, constraints, personality, and behavioral boundaries. Loaded before any system prompt, conversation history, or user input.

Section Required Description
Identity Yes Who the agent is and what role it serves
Role Yes Specific functions the agent performs
Constraints Yes Explicit list of what the agent never does
Behavioral Modes Recommended Mapping to AIX 4.7.3 standard vocabulary
Tone Examples Recommended Compliant and non-compliant response examples

The Soul Document pattern was formalized in AIX 2.1 based on implementation experience with Solo Trillion Orchestra’s Rosie agent and the OpenClaw project’s SOUL.md architecture.

4.7.7 Relationship to Existing Standards #

Standard Relationship
MCP (Model Context Protocol) MCP defines what data an agent can access. AIX behavioral modes define how the agent acts on that data. Complementary.
OpenAI Assistants API Assistants have instructions but no standard mode vocabulary. AIX modes are interoperable across providers.
LangChain Agent Types LangChain defines execution strategies (ReAct, Plan-and-Execute). AIX modes define behavioral scope. Complementary.

4.8 Module Manifest Standard #

AIX v2.2 formally ratifies the module manifest hierarchy for the Unified Module Architecture (UMA) platform layer. Modules are self-describing units that declare their identity, requirements, and contracts in a standardized manifest.

4.8.1 Module Key Hierarchy #

Module keys follow the four-part AIX hierarchy with a specialized pattern:

code
{moduleType}Module_{moduleId}_{property}

publishingModule_emailStudio_studioJson
publishingModule_emailStudio_publishRecord
researchModule_rssDiscovery_feedUrl

Module type segments (position 1): - publishingModule — Content publishing and distribution modules - researchModule — Research, discovery, and source modules - writingModule — Writing assistance and generation modules - personaModule — Identity and voice customization modules

Module ID segment (position 2): The registered moduleId in camelCase (e.g., emailStudio, rssDiscovery). This corresponds to the module’s app_id slug converted to camelCase. Note: the manifest’s moduleId field stores the dash-case slug ("futuresight-studio"); the AIX hierarchy key uses its camelCase equivalent (emailStudio). These are the same module — different representations for different contexts.

Property segment (position 3+): The specific property or data schema key.

4.8.2 Module Manifest Schema #

Every AIX-compliant module carries a manifest object:

json
{
  "aixVersion": "2.2",
  "moduleId": "futuresight-studio",
  "moduleType": "publishing",
  "displayName": "FutureSight Studio",
  "version": "1.0.0",
  "requires": ["writingAgent", "personaAgent"],
  "inputContracts": ["content_authoring"],
  "outputContracts": ["studio-json-v1"],
  "permissionScopes": ["persona:read", "writing:generate", "publishing:send"],
  "billing": { "model": "per_use", "unit": "generation" }
}

Slug-to-camelCase rule: The module’s app_id is dash-case (futuresight-studio). The AIX module key uses camelCase for the identifier segment (emailStudio). The dash-case slug is used in routing and database storage only; the camelCase form is the canonical AIX key.


5. Reserved Segment Vocabulary #

5.1 Object Type Segments (Position 2) #

Object Segment Usage Example
format Output format variants for the Writing Agent writingAgent_format_default_systemPrompt
qualityPass Error-check and verification passes (any agent) researchAgent_qualityPass_hallucinationSweep_systemPrompt
config General agent operational configuration researchAgent_config_default_systemPrompt
voice Author identity and brand voice data personaAgent_voice_brand
output Generation output schema fields writingAgent_output_draft_headline
input Generation input schema fields writingAgent_input_contentBrief_format
schema JSON schema definitions aix_schema_contentAuthoring_input
meta Metadata (cost, latency, tokens) aix_meta_cost_amount

documentType deprecated: The documentType object segment (used in v2.0–v2.1 keys like writingAgent_documentType_article_systemPrompt) is deprecated in v2.2. New keys use format. Deprecated keys remain in the registry marked [DEPRECATED]; do not use for new implementations.

5.2 Identifier Segments (Position 3) #

Format Identifiers (under writingAgent_format) #

default is the open-form workhorse — shaped entirely by the user’s persona and config, producing articles, proposals, field guides, business plans, or any freeform document. Named formats have a defined structure.

Identifier What It Produces
default Open-form output — structure defined by persona and config. Produces articles, field guides, business plans, proposals, or any freeform document.
meetingBrief Condensed pre-meeting intelligence brief — structured, actionable
executiveBrief Executive summary — structured for senior audience
competitiveAnalysis Competitive analysis — structured comparison report
newsletter Newsletter edition — curated, conversational
linkedinPost LinkedIn post — compressed authority, plain text output

Migration note: article and fieldGuide identifiers (previously under writingAgent_documentType_*) are deprecated. writingAgent_format_default_systemPrompt is the canonical replacement. Existing implementations using these identifiers should migrate; deprecated keys remain in §6 for reference.

Quality Pass Identifiers (under {agent}_qualityPass) #

Universal quality control vocabulary shared across all agents.

Identifier Description
researchBuild Initial data gathering and source synthesis pass
factCheck Verify all claims against cited sources
hallucinationSweep Detect and flag fabricated or unsupported content
complianceEdit Apply guardrails, voice rules, and editorial standards
qualityScore Final quality assessment and confidence scoring
optimizationPass Refine output for performance, cost, or length targets

Voice Identifiers (under personaAgent_voice) #

Identifier Description
brand Author brand voice DNA — tone, vocabulary, sentence rhythm, signature phrases
guidelines Editorial writing structure and style rules
guardrails Hard stops, non-negotiables, topics requiring human review

Config Identifiers (under {agent}_config) #

Identifier Description
default The baseline configuration that ships with the product

5.3 Property Segments (Position 4) #

Property Suffix Value Type Description
systemPrompt string LLM system prompt for the given context
outputRules string Formatting and structure rules for generated output
config object Configuration object (when used as terminal node)
schema object JSON Schema definition
template object Complete template bundle (prompt + rules + metadata)
label string Human-readable display label
description string Human-readable description
version string Semantic version string
enabled boolean Feature flag

6. Canonical Key Reference #

The master reference for all currently ratified AIX hierarchy keys.

Key version markers: - Keys marked 1.x were introduced in v1.x of the specification - Keys marked 2.0** are newly introduced in v2.0 - Keys marked 2.0* replace prior v1.2 keys - Keys marked 2.2** are newly introduced in v2.2 - Keys marked [DEPRECATED] must not be used for new work; retained for backwards compatibility

6.1 Persona Agent — Voice #

Canonical Key Type Ver Description
personaAgent_voice_brand string 1.1 Author brand voice DNA
personaAgent_voice_guidelines string 1.1 Editorial writing guidelines
personaAgent_voice_guardrails string 1.1 Hard stops and non-negotiables

6.2 Writing Agent — Format (v2.2) #

Canonical Key Type Ver Description
writingAgent_format_default_systemPrompt string 2.2** Default open-form system prompt
writingAgent_format_default_outputRules string 2.2** Default open-form output rules
writingAgent_format_meetingBrief_systemPrompt string 2.2** Meeting Brief system prompt
writingAgent_format_meetingBrief_outputRules string 2.2** Meeting Brief output rules
writingAgent_format_executiveBrief_systemPrompt string 2.2** Executive Brief system prompt
writingAgent_format_executiveBrief_outputRules string 2.2** Executive Brief output rules
writingAgent_format_competitiveAnalysis_systemPrompt string 2.2** Competitive Analysis system prompt
writingAgent_format_competitiveAnalysis_outputRules string 2.2** Competitive Analysis output rules
writingAgent_format_newsletter_systemPrompt string 2.2** Newsletter system prompt
writingAgent_format_newsletter_outputRules string 2.2** Newsletter output rules
writingAgent_format_linkedinPost_systemPrompt string 2.2** LinkedIn Post system prompt
writingAgent_format_linkedinPost_outputRules string 2.2** LinkedIn Post output rules
writingAgent_config_default_systemPrompt string 2.0* Default Writing Agent system prompt
writingAgent_config_default_outputRules string 2.0* Default output rules

6.3 Research Agent #

Canonical Key Type Ver Description
researchAgent_config_default_systemPrompt string 1.2 Research Agent default system prompt
researchAgent_qualityPass_researchBuild_systemPrompt string 2.0** Pass 1: Research Build prompt
researchAgent_qualityPass_factCheck_systemPrompt string 2.0** Pass 2: Fact Check prompt
researchAgent_qualityPass_hallucinationSweep_systemPrompt string 2.0** Pass 3: Hallucination Sweep prompt
researchAgent_qualityPass_complianceEdit_systemPrompt string 2.0** Pass 4: Compliance Edit prompt
researchAgent_qualityPass_qualityScore_systemPrompt string 2.0** Pass 5: Quality Score prompt

6.4 UMA Platform Keys (v2.2) #

Platform-level keys for the Unified Module Architecture. These keys travel at the platform layer, not the agent layer.

Canonical Key Type Ver Description
umaModule_registry_manifest object 2.2** Module manifest JSON object
umaModule_entitlement_status string 2.2** Module entitlement state: active | suspended | pending
umaModule_billing_ref string 2.2** Billing reference ID for usage tracking
umaModule_usage_event object 2.2** Metering event payload

6.5 Publishing Module — FutureSight Studio (v2.2) #

Keys for the FutureSight Studio publishing module (moduleId: emailStudio).

Canonical Key Type Ver Description
publishingModule_emailStudio_studioJson object 2.2** AIX Canvas envelope for email Studio rendering
publishingModule_emailStudio_canvasDocument object 2.2** Canvas document schema [RESERVED — v1.5]
publishingModule_emailStudio_publishRecord object 2.2** Record of a completed publish operation
publishingModule_emailStudio_deliveryTarget string 2.2** Target delivery address or list identifier
publishingModule_emailStudio_issueSubject string 2.2** Email subject line for this issue
publishingModule_emailStudio_issueDate string 2.2** Publication date (ISO-8601)

6.6 Deprecated Keys #

These keys remain in the registry for backwards compatibility. Do not use for new implementations.

Show 16 deprecated keys with replacements
Deprecated Key Replacement Deprecated In
writingAgent_documentType_article_systemPrompt writingAgent_format_default_systemPrompt 2.2
writingAgent_documentType_article_outputRules writingAgent_format_default_outputRules 2.2
writingAgent_documentType_fieldGuide_systemPrompt writingAgent_format_default_systemPrompt 2.2
writingAgent_documentType_fieldGuide_outputRules writingAgent_format_default_outputRules 2.2
writingAgent_documentType_meetingBrief_systemPrompt writingAgent_format_meetingBrief_systemPrompt 2.2
writingAgent_documentType_meetingBrief_outputRules writingAgent_format_meetingBrief_outputRules 2.2
writingAgent_documentType_executiveBrief_systemPrompt writingAgent_format_executiveBrief_systemPrompt 2.2
writingAgent_documentType_executiveBrief_outputRules writingAgent_format_executiveBrief_outputRules 2.2
writingAgent_documentType_competitiveAnalysis_systemPrompt writingAgent_format_competitiveAnalysis_systemPrompt 2.2
writingAgent_documentType_competitiveAnalysis_outputRules writingAgent_format_competitiveAnalysis_outputRules 2.2
writingAgent_documentType_newsletter_systemPrompt writingAgent_format_newsletter_systemPrompt 2.2
writingAgent_documentType_newsletter_outputRules writingAgent_format_newsletter_outputRules 2.2
writingAgent_documentType_linkedinPost_systemPrompt writingAgent_format_linkedinPost_systemPrompt 2.2
writingAgent_documentType_linkedinPost_outputRules writingAgent_format_linkedinPost_outputRules 2.2
writingAgent_template_* writingAgent_format_* 2.0
researchAgent_config_passOne_* researchAgent_qualityPass_researchBuild_* 2.0
researchAgent_config_passTwo_* researchAgent_qualityPass_factCheck_* 2.0
researchAgent_config_passThree_* researchAgent_qualityPass_hallucinationSweep_* 2.0

7. AIX Envelope & Task Types #

7.1 The AIX Envelope #

Every AIX message is wrapped in an envelope. The aix field carries the specification version.

json
{
  "aix": "2.2",
  "id": "uuid-v4",
  "timestamp": "ISO-8601",
  "task": { "type": "...", "provider": "...", "model": "..." },
  "input": { },
  "output": { },
  "meta": { "cost": { }, "latency": { }, "tokens": { } },
  "error": { }
}

7.2 Task Type Registry #

Category Task Type Description
Text text_generation Generate text from prompts
Text text_completion Complete partial text
Text text_summarization Summarize longer text
Text text_translation Translate between languages
Voice voice_synthesis Generate speech from text
Voice voice_cloning Clone a voice from samples
Voice speech_to_text Transcribe audio to text
Image image_generation Generate images from prompts
Image image_editing Modify existing images
Image image_upscaling Increase image resolution
Video video_generation Generate video from prompts
Video video_editing Modify existing video
Video image_to_video Animate a static image
Code code_generation Generate code from description
Code code_completion Complete partial code
Code code_review Analyze and review code
Music music_generation Generate music / audio
3D model_generation Generate 3D models
Content content_authoring Generate authored content with voice, guidelines, and guardrails

7.3 Metadata Object #

json
"meta": {
  "cost":    { "amount": 0.018, "currency": "USD", "unit": "per_request" },
  "latency": { "totalMs": 8400, "processingMs": 8100, "networkMs": 300 },
  "tokens":  { "input": 4200, "output": 1850, "total": 6050 },
  "modelVersion": "claude-sonnet-4-6",
  "requestId": "req_abc123",
  "region": "us-east-1",
  "retention": { "inputStored": false, "outputStored": true, "retentionDays": 30 }
}

7.4 Error Object #

json
"error": {
  "code": "rate_limited",  // invalid_input | rate_limited | quota_exceeded |
                           // content_filtered | model_unavailable | timeout |
                           // provider_error | unknown
  "message": "Rate limit exceeded for this model.",
  "retryable": true,
  "retry_after_ms": 5000,
  "provider_error": { }   // Raw error object from provider
}

8. Task-Specific Schemas #

8.1 content_authoring #

The content_authoring task type enables AI-generated content carrying full author identity, editorial voice, structural guidelines, and hard guardrails.

Input: author object #

json
"author": {
  "givenName": "Michael",
  "familyName": "Tchong",
  "displayName": "Michael Tchong",
  "jobTitle": "Founder, Solo Trillion",
  "bio": "Short author bio for attribution",
  "socialProfiles": {
    "linkedinUrl": "https://linkedin.com/in/michaeltchong",
    "twitterUrl":  "https://x.com/michaeltchong",
    "youtubeUrl":  "https://youtube.com/@michaeltchong",
    "url":         "https://ubertrends.com"
  },
  "media": [
    {
      "mediumType": "newsletter",
      "mediumName": "Ubertrends",
      "mediumBrand": "FutureSight",
      "isPrimary": true
    }
  ]
}

Input: voice, research, brief #

json
"voiceBrand":      "...",
"voiceGuidelines": "...",
"voiceGuardrails": "...",

"researchPacket": {
  "topic":          "...",
  "thesis":         "...",
  "narrativeAngle": "...",
  "keyFindings": [
    { "finding": "...", "sourceUrl": "...", "confidence": 8, "isContrarian": true }
  ],
  "traceabilityTable": [
    { "finding": "...", "sourceUrl": "...", "supportingPassage": "...", "confidence": 8 }
  ],
  "auditSummary": { "auditPassed": true, "hallucinationsFound": 0 }
},

"contentBrief": {
  "format":            "default",
  "toneOverride":      "contrarian",
  "targetLength":      "standard_1200",
  "targetPublication": "Solo Trillion",
  "selectedFindings":  []
}

Output #

json
"output": {
  "draft": {
    "headlineOptions": ["...", "...", "..."],
    "lede":    "...",
    "body":    "...",
    "sections": [{ "heading": "...", "content": "..." }],
    "cta":     "...",
    "wordCount": 1247,
    "citations": [{ "text": "...", "url": "...", "title": "..." }]
  },
  "guardrailFlags": [{ "flag": "...", "location": "...", "recommendation": "..." }],
  "finishReason": "complete"
}

8.2 voice_synthesis #

json
"input": {
  "text": "Welcome to the future of AI interchange standards.",
  "voice": "aria",  "language": "en-US",  "speed": 1.0,
  "emotion": "neutral",  "outputFormat": "mp3",  "sampleRate": 24000
},
"output": {
  "audio": { "url": "...", "format": "mp3", "sampleRate": 24000,
             "channels": 1, "durationMs": 3200, "fileSizeBytes": 51200 },
  "wordTimestamps": [{ "word": "Welcome", "startMs": 0, "endMs": 320 }]
}

8.3 image_generation #

json
"input": {
  "prompt": "A futuristic city at sunset, cyberpunk style",
  "negativePrompt": "blurry, low quality",
  "width": 1024,  "height": 1024,
  "style": "photorealistic",  "numOutputs": 1,
  "outputFormat": "png",  "seed": 42
},
"output": {
  "images": [{ "url": "...", "format": "png", "width": 1024, "height": 1024,
               "fileSizeBytes": 1048576, "revisedPrompt": "..." }],
  "nsfwDetected": false
}

8.4 text_generation #

json
"input": {
  "prompt": "...",  "systemPrompt": "...",
  "messages": [{ "role": "user", "content": "..." }],
  "maxTokens": 2000,  "temperature": 1.0,  "stream": false,
  "responseFormat": "markdown"
},
"output": {
  "text": "...",
  "finishReason": "complete",
  "citations": [{ "text": "...", "url": "...", "title": "..." }]
}

8.5 video_generation #

json
"input": {
  "prompt": "...",
  "image": { "url": "..." },
  "durationSeconds": 10,  "aspectRatio": "16:9",
  "resolution": "1080p",  "fps": 24,
  "motionIntensity": "medium",  "cameraMotion": "static"
},
"output": {
  "video": { "url": "...", "format": "mp4", "width": 1920, "height": 1080,
             "durationMs": 10000, "fps": 24, "fileSizeBytes": 8400000 },
  "thumbnail": { "url": "...", "timestampMs": 500 }
}

8.6 code_generation #

json
"input": {
  "prompt": "...",  "language": "python",
  "context": "...",  "framework": "fastapi",
  "includeTests": false,  "includeComments": true,
  "styleGuide": "pep8"
},
"output": {
  "code": "...",  "language": "python",  "explanation": "...",
  "files": [{ "filename": "main.py", "content": "...", "language": "python" }],
  "dependencies": [{ "name": "fastapi", "version": "^0.110.0" }]
}

9. Workflows & Chaining #

AIX supports chaining multiple tasks. The output of one step becomes the input of the next via ${step_id.output.field} variable substitution.

json
{
  "aix": "2.2",
  "workflow": {
    "id": "uuid",
    "name": "Research → Write → Synthesize Voice",
    "steps": [
      {
        "id": "step_research",
        "task": { "type": "text_generation", "provider": "anthropic" },
        "input": { "prompt": "Research AI agents replacing knowledge workers" }
      },
      {
        "id": "step_article",
        "task": { "type": "content_authoring", "provider": "anthropic" },
        "input": {
          "researchPacket": "${step_research.output.text}",
          "contentBrief": { "format": "default", "toneOverride": "contrarian" }
        }
      },
      {
        "id": "step_audio",
        "task": { "type": "voice_synthesis", "provider": "elevenlabs" },
        "input": { "text": "${step_article.output.draft.lede}", "voice": "aria" }
      }
    ]
  }
}

10. Provider Comparison Format #

json
{
  "aix": "2.2",
  "comparison": {
    "task": { "type": "voice_synthesis" },
    "input": { "text": "Hello, this is a comparison test.", "language": "en-US" },
    "results": [
      {
        "provider": "elevenlabs", "model": "eleven_multilingual_v2",
        "output": { "audio": { "url": "...", "durationMs": 2100 } },
        "meta":   { "cost": { "amount": 0.002 }, "latency": { "totalMs": 650 } }
      },
      {
        "provider": "openai", "model": "tts-1-hd",
        "output": { "audio": { "url": "...", "durationMs": 2080 } },
        "meta":   { "cost": { "amount": 0.003 }, "latency": { "totalMs": 580 } }
      }
    ]
  }
}

11. Security & Governance #

11.1 Security #

AIX does not define authentication — this is provider-specific. AIX messages must never contain API keys, passwords, or personal access tokens.

json
"safety": {
  "flagged": true,
  "categories": { "violence": false, "sexual": false, "hate": false,
                  "selfHarm": false, "dangerous": true },
  "actionTaken": "content_blocked"
}

11.2 Versioning #

Version Level Trigger Example
Major (X.0) Breaking changes to envelope, required fields, or task type removal 1.x → 2.0
Minor (2.X) New task types, new optional fields, additive features 2.1 → 2.2
Patch (2.0.X) Clarifications, documentation fixes, no schema changes 2.0 → 2.0.1

11.3 Amendment Process #

To add a new key: (1) propose with full four-part hierarchy and plain-English description; (2) run all six validation tests from §2.6; (3) check for conflicts with §6; (4) add to candidate keys in next minor version draft; (5) upon ratification, move to canonical reference.

Retroactive changes to ratified keys are prohibited. Deprecation is handled by adding a replacement key and marking the old key [DEPRECATED] in the registry — not by renaming it.

11.4 Governance #

Body Responsibility
Technical Steering Committee Specification changes and ratification
Provider Council Implementation feedback and provider registry
Community Contributors Pull requests, issues, and proposals

12. Appendix #

A. Provider Registry #

Slug Company Task Types
anthropic Anthropic text_generation, text_completion, content_authoring
openai OpenAI text_generation, image_generation, voice_synthesis, speech_to_text, code_generation
google Google text_generation, image_generation, speech_to_text
elevenlabs ElevenLabs voice_synthesis, voice_cloning, speech_to_text
playht PlayHT voice_synthesis, voice_cloning
runway Runway video_generation, image_to_video, image_editing
midjourney Midjourney image_generation
stability Stability AI image_generation, image_editing, image_upscaling
pika Pika Labs video_generation, image_to_video
replicate Replicate (various hosted models)
huggingface Hugging Face (various hosted models)

B. Language Codes (BCP-47) #

Code Language
en-US English (United States)
en-GB English (United Kingdom)
es-ES Spanish (Spain)
fr-FR French (France)
de-DE German (Germany)
ja-JP Japanese
zh-CN Chinese (Simplified)
zh-TW Chinese (Traditional)

C. Media Type Mappings #

Format MIME Type
mp3 audio/mpeg
wav audio/wav
ogg audio/ogg
flac audio/flac
mp4 video/mp4
webm video/webm
png image/png
jpeg image/jpeg
webp image/webp

D. References #

  1. Model Context Protocol (MCP) — https://github.com/modelcontextprotocol
  2. Eden AI APIs — https://github.com/edenai/edenai-apis
  3. Schema.org — https://schema.org
  4. JSON Schema — https://json-schema.org
  5. BCP-47 Language Tags — https://www.rfc-editor.org/info/bcp47
  6. CrossARM Data Interchange Standard (2014) — Ubertrends LLC (internal)

E. Implementation Notes (Non-Normative) #

This appendix is non-normative. Nothing here adds requirements to the AIX standard. Material here documents staging patterns, migration sequences, and operational guidance that implementers have found useful. When the spec body and this appendix appear to disagree, the spec body governs.

E.1 Section 3.5 Media Collections — Single-Primary Subset Pattern #

AIX-compliant implementations MAY ship a single-primary subset of media[] before supporting the full array. The subset stores one Medium object (the primary one) and applies Resolution Rule Step 2 directly. The full array is purely additive: a later upgrade adds the array shape without breaking the subset implementation.

The Solo Trillion Orchestra reference implementation uses this staging pattern — single-primary subset at beta launch (May 2026), full array post-beta.

E.2 Module Manifest — Staged Rollout #

Module manifests MAY omit optional fields (billing, permissionScopes) on initial implementation. Required fields for a v1 manifest: aixVersion, moduleId, moduleType, version. Add optional fields in subsequent releases.

E.3 writingAgent_format_* Migration Guide #

Implementations using writingAgent_documentType_* keys should migrate as follows: - writingAgent_documentType_article_*writingAgent_format_default_* - writingAgent_documentType_fieldGuide_*writingAgent_format_default_* - writingAgent_documentType_meetingBrief_*writingAgent_format_meetingBrief_* - All other documentType keys → corresponding format key (name maps directly)

Both key sets resolve identically during the transition. Remove deprecated keys after confirming all consumers have migrated.


13. Changelog #

Version 2.2 — May 2026 #

Minor version: additive. Formalizes module manifest hierarchy, deprecates documentType object segment in favor of format, adds slug/URL casing exception, adds Published Works field registry, and ratifies UMA Platform and FutureSight Studio canonical keys.

Area Change
§2.1 (UPDATED) Slug/URL casing exception added: dash-case for slugs/URLs, snake_case for database columns (was already noted), camelCase for field keys. Schema version string format ({type}-v{N}) documented as exempt from camelCase rule.
§2.2 (UPDATED) Hierarchy examples updated to use writingAgent_format_* pattern.
§2.4 (UPDATED) uma added to permitted acronym list.
§3.10 (NEW) Published Works field registry — 10 fields for book chapters and sidebars: bookTitle, bookKey, chapterKey, chapterTitle, chapterNumber, chapterContent, chapterSummary, chapterSubsections, contentType, parentChapterKey.
§4 (UPDATED) rosie added as a registered component key alongside conversationalAgent. Use conversationalAgent for generic interchange; use rosie for Rosie-specific configuration keys.
§4.8 (NEW) Module Manifest Standard — formalizes {moduleType}Module_{moduleId}_{property} hierarchy pattern. Module manifest schema defined. Slug-to-camelCase rule documented. Module type segments ratified: publishingModule, researchModule, writingModule, personaModule.
§5.1 (UPDATED) documentType deprecated as object type segment. format is the canonical replacement.
§5.2 (UPDATED) Format identifiers added under writingAgent_format: default, meetingBrief, executiveBrief, competitiveAnalysis, newsletter, linkedinPost. Migration note from article/fieldGuide.
§6.2 (UPDATED) writingAgent_format_* canonical keys added (12 new keys). All writingAgent_documentType_* keys deprecated with direct replacement mapping.
§6.4 (NEW) UMA Platform canonical keys: umaModule_registry_manifest, umaModule_entitlement_status, umaModule_billing_ref, umaModule_usage_event.
§6.5 (NEW) Publishing Module — FutureSight Studio canonical keys (6 keys under publishingModule_emailStudio_*).
§6.6 (NEW) Deprecated key registry with full replacement mapping table.
§7.3 (UPDATED) Metadata object example corrected to camelCase throughout: total_mstotalMs, processing_msprocessingMs, network_msnetworkMs, model_versionmodelVersion, request_idrequestId, input_storedinputStored, output_storedoutputStored, retention_daysretentionDays.
§8.1 (UPDATED) contentBrief.format examples updated to use "default" instead of "article".
Appendix E.2 (NEW) Module manifest staged rollout guidance.
Appendix E.3 (NEW) writingAgent_format_* migration guide.

Version 2.1 — April 2026 #

Minor version: additive. Introduces Media Collections standard, Agent Behavioral Modes standard, and Soul Document specification.

Area Change
§3.5 (NEW) Media Collections — media[] typed collection, mediumType vocabulary, four-step substitution rule, backwards compatibility
§4.7 (NEW) Agent Behavioral Modes — behavioralMode field, standard mode vocabulary (observer/orchestrator/briefing/off), mode transitions
§4.7.6 (NEW) Soul Documents — persistent agent identity file standard
§8.1 media array added to content_authoring author object
Appendix E.1 (NEW) Single-Primary Subset Pattern — staging guidance

Version 2.0 — March 2026 #

Major version: merges AIX Interchange Format Specification and AIX Naming Convention Standard into a single authoritative document.

Area Change
Document structure Merged two specs (v1.1 interchange + naming convention) into AIX v2.0
§3 (NEW) Persona Field Registry — 40+ fields with Schema.org base or AIX extension designation
§4 (NEW) Component & Agent Registry formalized
§5 (NEW) Reserved Segment Vocabulary — object types, identifiers, property suffixes
Author fields givenName/familyName replace first_name/last_name (Schema.org canonical)
Social media fields {platform}Url pattern; Url suffix required
Deprecated writingAgent_template_ | researchAgent_config_passOne/Two/Three_

Version 1.1 — February 2026 #

Area Change
content_authoring New task type added
author object first_name, last_name, display_name, title, bio, social_media_profiles
voice fields voice_brand, voice_guidelines, voice_guardrails
research_packet Research Agent → Writing Agent chaining input
guardrail_flags Human review signaling in output

Version 1.0 — December 2025 #

Initial specification. Core task types: text, voice, image, video, code. Metadata schema with cost/latency tracking. Workflow chaining support. Provider comparison format.


Apache 2.0 Licensed · aix-standard.org · github.com/aix-standard/aix-spec · aix@ubertrends.com · Copyright 2026 Michael Tchong, Ubertrends LLC