Schema Docs Β· VERSA Spec Β· Validator
JSON Schema definitions that validate every file in your .ai/ folder. Ensures your VERSA configuration is correct before runtime.
{
"$schema": "https://dotaislash.github.io/schemas/context.json",
"version": "1.0",
"rules": ["rules/style.md"],
"settings": {
"model": "claude-sonnet-4"
}
}- β Validation - Catch errors before they reach production
- π§ Autocomplete - IDE suggestions for all properties
- π Documentation - Inline descriptions for every field
- π― Type Safety - Generate TypeScript types from schemas
- π Versioned - Support for multiple VERSA versions
# Bun (recommended)
bun add -d @dotaislash/schemas
# npm
npm install --save-dev @dotaislash/schemas
# pnpm
pnpm add -D @dotaislash/schemas| Schema | File | Purpose |
|---|---|---|
| context | context.json |
Base .ai/ configuration |
| profile | profiles/*.json |
Tool-specific overrides |
| agent | agents/*.json |
Agent definitions |
| rule | rules/*.md |
Markdown rule metadata |
| tool | tools/*.json |
MCP server configs |
| permission | permissions.json |
Security policies |
| settings | Settings embedded | Model and UI preferences |
| memory | memory.json |
Retention policies |
Add $schema to your JSON files for validation and autocomplete:
{
"$schema": "https://dotaislash.github.io/schemas/context.json",
"version": "1.0",
"rules": ["rules/style.md"]
}// .vscode/settings.json
{
"json.schemas": [
{
"fileMatch": [".ai/context.json"],
"url": "https://dotaislash.github.io/schemas/context.json"
},
{
"fileMatch": [".ai/profiles/*.json"],
"url": "https://dotaislash.github.io/schemas/profile.json"
},
{
"fileMatch": [".ai/agents/*.json"],
"url": "https://dotaislash.github.io/schemas/agent.json"
}
]
}import { validateContext, validateProfile, validateAgent } from '@dotaislash/schemas';
// Validate context.json
const result = validateContext(yourContextData);
if (!result.valid) {
console.error('Validation errors:', result.errors);
result.errors.forEach(err => {
console.error(` ${err.instancePath}: ${err.message}`);
});
}# Automatically validates using schemas
versa lint{
"$schema": "https://dotaislash.github.io/schemas/profile.json",
"version": "1.0",
"merge": "deep", // Required: Merge strategy
"rules": ["rules/cursor-specific.md"],
"settings": {
"shortcuts": {
"review": "agents/code-reviewer.json"
}
}
}{
"$schema": "https://dotaislash.github.io/schemas/agent.json",
"version": "1.0",
"name": "Code Reviewer",
"description": "Reviews code for quality and best practices",
"model": "claude-sonnet-4",
"temperature": 0.3,
"tools": ["tools/linter.json"],
"rules": ["rules/review-checklist.md"],
"systemPrompt": "You are an expert code reviewer..."
}All schemas include:
- Property descriptions
- Enum values
- Default values
- Examples
- Pattern validation
Import built-in TypeScript types:
import type { Context, Profile, Agent, Settings, Permissions } from '@dotaislash/schemas';
const config: Context = {
version: '1.0',
rules: ['rules/style.md'],
settings: {
model: 'claude-sonnet-4',
temperature: 0.7
}
};version- Must be "1.0"merge- Required in profiles (shallow|deep|replace)
- File Paths - Must match glob patterns
- URLs - Must be valid HTTP(S) URLs
- Models - Must match known model names
- Versions - Semver format (1.0.0)
import { customFormats } from '@dotaislash/schemas';
// Add custom validators
ajv.addFormat('glob-pattern', customFormats.globPattern);
ajv.addFormat('model-name', customFormats.modelName);# Run schema tests
bun test
# Run with coverage
bun test --coverage
# Run in watch mode
bun test --watch| Version | Release Date | Status | Breaking Changes |
|---|---|---|---|
| 1.0.0 | 2025-10-17 | β Stable | Initial release |
# Clone repository
git clone https://github.com/dotAIslash/dotaislash-schemas.git
cd dotaislash-schemas
# Install dependencies
bun install
# Run tests
bun test
# Build package
bun run build
# Lint code
bun run lintHelp improve VERSA schemas!
- π Report schema bugs
- π‘ Suggest new fields
- π Improve documentation
- π§ͺ Add test cases
See CONTRIBUTING.md for guidelines.
MIT Β© dotAIslash
{ "$schema": "https://dotaislash.github.io/schemas/context.json", "version": "1.0", // Required: VERSA version "rules": ["rules/style.md"], // Optional: Rule files "context": ["src/**/*.ts"], // Optional: File patterns "agents": ["agents/reviewer.json"], // Optional: Agent configs "tools": ["tools/mcp-servers.json"], // Optional: Tool configs "settings": { // Optional: Settings "model": "claude-sonnet-4", "temperature": 0.7 }, "permissions": { // Optional: Permissions "files": { "read": ["src/**"] }, "network": { "allow": ["https://api.openai.com"] } } }