Solveaux/.slvx Specv1.1.0 — Active
RFC-SLVX-001 · Open Standard · Published at solveaux.com/spec

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.

v1.1.0
Standard Version
RFC-SLVX-001
RFC Identifier
Living Standard
Status
.slvx
File Extension
Open (CC BY 4.0)
License
Section 1

Why Existing Formats Fail

Architecture decisions are too important to be lost in merge conflicts or buried in unstructured wikis.

FormatProblemAI-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
Section 2

File Placement & Repository Structure

Recommended

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

Primary extension: .slvx — Parsers MAY accept .solveaux or .slx as backward-compatible legacy aliases.
Section 3 & 4

Specification & Entity Types

[DECISION]alias: [ADR]
Architecture Decision Record

Captures structural, design, infrastructure, or library choices — including options considered, rationale, and accepted trade-offs.

Required: Status:
Optional: Author:Date:Files:Model:
## Context## Options Considered## Decision & Trade-offs## Consequences
[RESEARCH]alias: [SPIKE]
Technical Research Spike

Documents technical evaluations, benchmark experiments, performance tests, and prototype explorations.

Optional: Category:Author:Date:Files:
## Key Insights## Content

Live Annotated Example

project.slvx
---
[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)

RFC-SLVX-001 EBNF Grammar
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 ;
Section 5

Decision Lifecycle & AI Permission Governance

The .slvx spec enforces strict governance between autonomous AI coding agents and human tech leads.

Status: Proposed
AI Agent / Contributor

AI coding assistants and junior contributors MUST commit with Status: Proposed unless architect permission is explicitly granted.

Status: Accepted
Human Tech Lead

Officially endorsed by tech leadership. AI agents treat Accepted records as authoritative, non-negotiable codebase constraints.

Status: Deprecated
Human Tech Lead

Decision has been superseded or retired. AI agents are forbidden from implementing patterns referenced in Deprecated records.

Section 6

Configuring AI Coding Tools

Add these rule snippets to your repository so AI assistants automatically generate valid .slvx records.

Cursor
.cursorrules
Place in repo root
Claude Code / Desktop
CLAUDE.md
Or claude_desktop_config.json
Antigravity / Gemini
AGENTS.md
Standard agent rules file
.cursorrules / CLAUDE.md / AGENTS.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>
---
Section 7

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.

1

Format Compliant

Level 1
Format Compliant

Repository 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
2

Continuous Ingestion

Level 2
Continuous Ingestion

Repository 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
3

MCP Real-Time Sync

Level 3
MCP Real-Time Sync

AI 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

Compatible — Markdown
[![Solveaux .slvx Compatible](https://solveaux.com/badges/slvx-compatible.svg)](https://solveaux.com/spec)
Certified — Markdown
[![Solveaux Certified Standard](https://solveaux.com/badges/slvx-certified.svg)](https://solveaux.com/spec)
Shield — Markdown
[![Architecture: .slvx](https://solveaux.com/badges/slvx-shield.svg)](https://solveaux.com/spec)
HTML Embed
<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>

Official Live SVG Badges

Production Standard
Level 1: Format CompatibleLevel 1: Format Compatible
Level 2: Certified ProtocolLevel 2: Certified Protocol
Level 3: Architecture ShieldLevel 3: Architecture Shield
Section 8

Ingestion Workflows & Ecosystem

The .slvx standard is completely open. Repositories own their .slvx files — Solveaux provides the visualization and intelligence ecosystem.

A
Web UI Drag & Drop
Zero setup

Open your project on Solveaux → click Sync .slvx → drag and drop your files → review parsed visual diffs → commit to knowledge hub.

B
Automated GitHub Action
CI/CD integration

Auto-sync on every git push to main when project.slvx or .slvx/ files are modified.

C
MCP Real-Time Server
AI agent native

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
# .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"
Method C: MCP Real-Time Bridgenpx solveaux-mcp --key=slvx_proj_YOUR_KEY
Full MCP Setup Guide
Section 9

Reference 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.

lib/slvxParser.ts (TypeScript Reference)
// 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 };
  });
}
Section 10

Community & Ecosystem Launch Kit

Ready to Publish

Pre-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.

Recommended Title
Show HN: .slvx – An open, git-native standard for Architecture Decision Records
Submission Body / Outreach Pitch
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!
Section 11

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 LicenseCreative Commons CC BY 4.0 / Apache 2.0Commercial 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 Freedom100% 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 Rights100% Customer Property: You own your git-committed .slvx files. Zero lock-in.Solveaux never trains public AI models on your private architectural intelligence.
Read full legal terms in our official documentation:
Section 12

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.
Open Standard · solveaux.com/spec · RFC-SLVX-001

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.