The .slvx Protocol
An open, git-native, append-only specification for capturing Architecture Decision Records, research spikes, and engineering trade-offs directly inside your code repository. Zero merge conflicts. Zero AI token cost.
Why Existing Formats Fail
Architecture decisions are too important to be lost in merge conflicts or buried in unstructured wikis.
| Format | Problem | AI-Queryable |
|---|---|---|
| Plain JSON (.json) | Missing comma crashes JSON.parse(). Hostile to multi-line explanations and Git diffs. | ✗ No |
| YAML (.yaml) | Whitespace-sensitive. Multi-line markdown inside YAML causes frequent parsing breakage. | ✗ No |
| Unstructured Markdown (.md) | Human-readable but lacks consistent schema for machine ingestion or AI context feeding. | ✗ No |
| .slvx (This Standard) | Combines Markdown readability with structured AST block predictability. Append-only, zero merge conflicts. | Yes |
File Placement & Repository Structure
Pattern A: Modular Directory
For teams working across multiple feature branches, microservices, or monorepos.
my-repo/ ├── .slvx/ │ ├── adr-001-auth-migration.slvx │ ├── adr-002-postgres-indexing.slvx │ └── spike-001-vector-db.slvx ├── src/ └── README.md
Naming: .slvx/adr-<number>-<slug>.slvx
Pattern B: Single Root File
For smaller libraries or compact codebases — easiest for AI tools to locate.
my-repo/ ├── project.slvx ← Authoritative file ├── src/ └── README.md
Fallback path accepted: .slvx/project.slvx
.slvx — Parsers MAY accept .solveaux or .slx as backward-compatible legacy aliases.Specification & Entity Types
[DECISION]alias: [ADR]Captures structural, design, infrastructure, or library choices — including options considered, rationale, and accepted trade-offs.
Status:Author:Date:Files:Model:[RESEARCH]alias: [SPIKE]Documents technical evaluations, benchmark experiments, performance tests, and prototype explorations.
Category:Author:Date:Files:Live Annotated Example
---
[DECISION] ADR-042: Migrate Client-Side Caching to TanStack React Query v5
Status: Accepted
Author: Sarah Chen (via Claude Code)
Date: 2026-09-27
Files: src/lib/queryClient.ts, src/app/providers.tsx
Model: Claude 3.7 Sonnet
## Context
Multiple components across dashboard routes were independently fetching
the same Supabase tables, causing redundant HTTP roundtrips and
inconsistent local cache states during optimistic updates.
## Options Considered
1. SWR (Vercel) — Lightweight, but weaker mutation and cache invalidation.
2. TanStack React Query v5 — Best-in-class devtools and structural sharing.
3. Custom Zustand cache slice — Required manual retry logic and serialization.
## Decision & Trade-offs
Adopted TanStack React Query v5 with global staleTime of 60 seconds.
Trade-off: Added 12kB to the initial client bundle.
## Consequences
- Deduplicated all concurrent Supabase API calls.
- Automated cache invalidation on decision updates.
- Standardized data loading patterns for team onboarding.
---Formal Grammar (EBNF)
slvx_file ::= [ header_comment ] { entity_block } ;
entity_block ::= "---" LF tag_line LF { metadata_line LF } blank_line { section_block } [ "---" ] ;
tag_line ::= "[" ( "DECISION" | "ADR" | "RESEARCH" | "SPIKE" ) "]" [ identifier ":" ] title ;
metadata_line ::= key ":" value ;
key ::= "Status" | "Author" | "Date" | "Files" | "Model" | "Category" ;
section_block ::= "## " section_title LF narrative_body ;Decision Lifecycle & AI Permission Governance
The .slvx spec enforces strict governance between autonomous AI coding agents and human tech leads.
Status: ProposedAI coding assistants and junior contributors MUST commit with Status: Proposed unless architect permission is explicitly granted.
Status: AcceptedOfficially endorsed by tech leadership. AI agents treat Accepted records as authoritative, non-negotiable codebase constraints.
Status: DeprecatedDecision has been superseded or retired. AI agents are forbidden from implementing patterns referenced in Deprecated records.
Configuring AI Coding Tools
Add these rule snippets to your repository so AI assistants automatically generate valid .slvx records.
.cursorrulesCLAUDE.mdAGENTS.md### Solveaux Architecture Protocol (.slvx)
Whenever you make a non-trivial architectural choice, add a new
library dependency, or resolve a technical trade-off, silently
append a [DECISION] block to project.slvx:
---
[DECISION] ADR-XXX: <Title>
Status: Proposed
Author: User (via Cursor)
Date: <YYYY-MM-DD>
Files: <comma-separated files>
## Context
<Problem and motivation>
## Options Considered
1. <Alternative A> — <trade-offs>
2. <Alternative B> — <selected>
## Decision & Trade-offs
<Final decision and why>
## Consequences
<Performance, maintainability, or architectural impact>
---Certified Compatible Badge Program
Repositories, tools, and libraries complying with the .slvx specification are eligible to display the official Solveaux Certified Compatible badge in their README.
Format Compliant
Level 1Repository contains valid .slvx files conforming to the EBNF grammar in Section 3 of this specification.
- At least one valid .slvx file at project.slvx or inside .slvx/ directory
- All entity blocks follow [DECISION] or [RESEARCH] tag structure
- Status fields use Proposed | Accepted | Deprecated values only
Continuous Ingestion
Level 2Repository automatically syncs .slvx records to the Solveaux platform via GitHub Actions or pre-push git hooks.
- Level 1 compliant
- Automated sync on every push to main branch via solveaux-sync.yml
- Status transitions (Proposed → Accepted) reviewed in pull requests
MCP Real-Time Sync
Level 3AI coding agents connected to the Solveaux MCP server query active ADRs before every refactor, and propose new decisions in real time.
- Level 1 and Level 2 compliant
- solveaux-mcp configured in .cursor/mcp.json, AGENTS.md, or CLAUDE.md
- Agent role (Architect / Contributor / Auditor) assigned via Solveaux RBAC
Badge Embed Codes
[](https://solveaux.com/spec)[](https://solveaux.com/spec)[](https://solveaux.com/spec)<a href="https://solveaux.com/spec" target="_blank" rel="noopener noreferrer">
<img src="https://solveaux.com/badges/slvx-compatible.svg" alt="Solveaux .slvx Compatible" height="20" />
</a>Ingestion Workflows & Ecosystem
The .slvx standard is completely open. Repositories own their .slvx files — Solveaux provides the visualization and intelligence ecosystem.
Open your project on Solveaux → click Sync .slvx → drag and drop your files → review parsed visual diffs → commit to knowledge hub.
Auto-sync on every git push to main when project.slvx or .slvx/ files are modified.
Run the local MCP bridge to allow Cursor, Claude Desktop, and Antigravity to query and create .slvx records in real time.
# .github/workflows/solveaux-sync.yml
name: Sync Architecture Decisions (.slvx)
on:
push:
branches: [main]
paths:
- 'project.slvx'
- '.slvx/**'
jobs:
sync:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Push .slvx to Solveaux
run: |
curl -X POST "https://solveaux.com/api/organizations/${{ secrets.SOLVEAUX_ORG_ID }}/projects/${{ secrets.SOLVEAUX_PROJECT_ID }}/sync" \
-H "x-api-key: ${{ secrets.SOLVEAUX_PROJECT_KEY }}" \
-H "Content-Type: text/plain" \
--data-binary "@project.slvx"npx solveaux-mcp --key=slvx_proj_YOUR_KEYReference Parser Implementation
Deterministic, zero-cost client parser written in TypeScript. Extracts decision metadata, options considered, and trade-offs in sub-millisecond execution with $0 AI billing.
// Reference TypeScript Parser (Deterministic, 0 AI tokens)
export interface ParsedSlvxEntity {
type: 'DECISION' | 'RESEARCH';
id?: string;
title: string;
metadata: Record<string, string>;
sections: { title: string; content: string }[];
rawBlock: string;
}
export function parseSlvxFile(content: string): ParsedSlvxEntity[] {
const normalized = content.replace(/\r\n/g, '\n');
const blocks = normalized.split(/\n---\s*\n/).filter((b) => b.trim().length > 0);
return blocks.map((raw) => {
const lines = raw.trim().split('\n');
const firstLine = lines[0] || '';
const isDecision = /^\[(?:DECISION|ADR)\]/i.test(firstLine);
const type = isDecision ? 'DECISION' : 'RESEARCH';
// Extract ID and Title: [DECISION] ADR-042: Migrate Caching
const tagMatch = firstLine.match(/^\[(?:DECISION|ADR|RESEARCH|SPIKE)\]\s*(?:([A-Za-z0-9_-]+):)?\s*(.+)$/i);
const id = tagMatch?.[1];
const title = tagMatch?.[2] || firstLine;
// Parse metadata lines until the first markdown section or blank line
const metadata: Record<string, string> = {};
let sectionStartIndex = lines.length;
for (let i = 1; i < lines.length; i++) {
const line = lines[i];
if (line.startsWith('## ')) {
sectionStartIndex = i;
break;
}
const metaMatch = line.match(/^([A-Za-z]+):\s*(.+)$/);
if (metaMatch) {
metadata[metaMatch[1]] = metaMatch[2].trim();
}
}
// Parse narrative sections (## Context, ## Options Considered, etc.)
const sections: { title: string; content: string }[] = [];
let currentTitle = '';
let currentLines: string[] = [];
for (let i = sectionStartIndex; i < lines.length; i++) {
const line = lines[i];
if (line.startsWith('## ')) {
if (currentTitle) {
sections.push({ title: currentTitle, content: currentLines.join('\n').trim() });
}
currentTitle = line.replace(/^##\s*/, '').trim();
currentLines = [];
} else {
currentLines.push(line);
}
}
if (currentTitle) {
sections.push({ title: currentTitle, content: currentLines.join('\n').trim() });
}
return { type, id, title, metadata, sections, rawBlock: raw };
});
}Community & Ecosystem Launch Kit
Ready to PublishPre-crafted, high-impact submission copies for Hacker News, Reddit (r/devtools, r/programming), and developer newsletters. Copy with one click to establish the .slvx open standard across dev ecosystems.
Hacker News (Show HN)
Submit as a URL link (https://solveaux.com/spec) or Text submission on Hacker News.
Hey HN, We published the .slvx specification (RFC-SLVX-001) as an open standard to tackle "AI Amnesia" in modern software development. With AI coding agents like Cursor, Claude Code, GitHub Copilot, and Windsurf, shipping speed has jumped 10x. But architectural reasoning, rejected alternatives, and security trade-offs remain trapped in ephemeral chat windows or developer heads. Weeks later, teams and AI agents repeatedly re-introduce rejected patterns or violate structural constraints. Why existing formats fail: • Plain JSON: High merge-conflict rate on multi-branch PRs; a single missing comma crashes JSON.parse(). • YAML: Indentation sensitivity breaks when pasting multi-line markdown or code blocks. • Raw unstructured Markdown: Human friendly, but lacks deterministic schema for AST ingestion and machine validation. The .slvx specification combines pure Markdown readability with structured AST predictability: 1. Append-only block delimiters (---) with zero git merge conflicts across feature branches. 2. Structured tags ([DECISION] ADR-XXX / [RESEARCH] SPIKE-XXX) with deterministic parsing costing $0 in AI cloud tokens. 3. Interactive permission governance (Proposed vs Accepted states for autonomous agents). 4. Direct Model Context Protocol (MCP) support via 'npx solveaux-mcp'. 5. Certified Compatible badge program for project READMEs. Official Specification: https://solveaux.com/spec Raw Markdown Spec: https://solveaux.com/spec/raw MCP Server: npx solveaux-mcp Open standard under CC BY 4.0. We'd love your brutal feedback on the syntax and governance model!
Dual-Licensing Architecture & Demarcation
Solveaux follows the proven Open Standard / Commercial Engine model. Developers own 100% of their .slvx files with zero vendor lock-in.
| Dimension | 🌐 Open Specification (.slvx) | 🔒 Proprietary Solveaux SaaS Platform |
|---|---|---|
| Governing License | Creative Commons CC BY 4.0 / Apache 2.0 | Commercial Proprietary (All Rights Reserved) |
| Components Covered | • .slvx file format, AST tags & EBNF grammar • Deterministic zero-token regex parser • .slvx/ directory hierarchy conventions • "Governed by Solveaux" badge SVG assets | • Multi-tenant cloud sync infrastructure (/api/.../sync) • Solveaux MCP Server & Agent RBAC engine (/api/mcp) • Interactive system architecture knowledge graph • Real-time continuous validation & conflict analysis |
| Commercial Freedom | 100% Free & Royalty-Free: Any IDE, agent, or commercial tool can produce or consume .slvx without fees. | Accessible via Early Access / paid subscriptions. No unauthorized cloning or white-labeling. |
| Customer Data Rights | 100% Customer Property: You own your git-committed .slvx files. Zero lock-in. | Solveaux never trains public AI models on your private architectural intelligence. |
Specification Changelog
v1.1.0Current Standard2026-09-27- ·Standardized .slvx as the official canonical file extension, replacing legacy .solveaux references.
- ·Modular directory hierarchy: added official support for .slvx/adr-*.slvx files alongside single project.slvx root files.
- ·Interactive Permission Governance: strict Proposed vs Accepted state enforcement for autonomous AI coding agents.
- ·Certified Compatible Badge Program: launched official badge specification, compliance tiers, and embed codes.
- ·MCP Real-Time Schema: standardized tool definitions for the Model Context Protocol stdio bridge.
- ·Dual-Licensing Architecture: formalized CC BY 4.0 open protocol vs proprietary cloud platform demarcation matrix.
v1.0.0Initial Release2026-08-15- ·Initial public release of the Solveaux Architecture Protocol.
- ·Core grammar: block delimiters (---), [DECISION] and [RESEARCH] tags, and standard Markdown narrative sections.
- ·Zero-Token Engine: deterministic client-side parser with no external AI billing.
Start Using .slvx in Your Repository Today
Add a project.slvx file to your repo root, commit your first ADR, and sync to Solveaux in one curl.