- ai-sync-protocol.md: Session start and post-change sync rules - _sync section in schema for auto-sync configuration - Updated client skill template with Forgejo fetch patterns - Client projects now self-sufficient via central repo fetch Version 1.1.0 Made-with: Cursor
160 lines
4.7 KiB
JSON
160 lines
4.7 KiB
JSON
{
|
|
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
"$id": "https://git.abundancepartners.app/abundance/ai-ops-templates/schemas/ai-context.schema.json",
|
|
"title": "AI Context Manifest",
|
|
"description": "Schema for per-project AI context manifest - the single source of truth for AI agents",
|
|
"type": "object",
|
|
"required": ["client", "_sync"],
|
|
"properties": {
|
|
"_sync": {
|
|
"type": "object",
|
|
"description": "Sync configuration for fetching context from central repository",
|
|
"required": ["templates_repo"],
|
|
"properties": {
|
|
"templates_repo": {
|
|
"type": "string",
|
|
"format": "uri",
|
|
"description": "URL of the ai-ops-templates repository"
|
|
},
|
|
"last_check": {
|
|
"type": "string",
|
|
"format": "date-time",
|
|
"description": "ISO 8601 timestamp of last sync check"
|
|
},
|
|
"auto_sync": {
|
|
"type": "boolean",
|
|
"default": true,
|
|
"description": "Whether to automatically sync at session start"
|
|
},
|
|
"sync_interval_hours": {
|
|
"type": "integer",
|
|
"default": 24,
|
|
"minimum": 1,
|
|
"description": "Hours between automatic sync checks"
|
|
},
|
|
"preset_path": {
|
|
"type": "string",
|
|
"description": "Path to preset file (e.g., presets/slc-bride.json)"
|
|
},
|
|
"cached_context": {
|
|
"type": "object",
|
|
"description": "Locally cached context from last sync",
|
|
"properties": {
|
|
"brand": { "type": "object" },
|
|
"rules": { "type": "array", "items": { "type": "string" } },
|
|
"snippets": { "type": "array", "items": { "type": "string" } }
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"_meta": {
|
|
"type": "object",
|
|
"required": ["last_updated", "version"],
|
|
"properties": {
|
|
"last_updated": {
|
|
"type": "string",
|
|
"format": "date-time",
|
|
"description": "ISO 8601 timestamp of last update"
|
|
},
|
|
"version": {
|
|
"type": "string",
|
|
"pattern": "^\\d+\\.\\d+\\.\\d+$",
|
|
"description": "Semantic version of context"
|
|
},
|
|
"synced_from": {
|
|
"type": "string",
|
|
"format": "uri",
|
|
"description": "URL of the templates repo this was synced from"
|
|
},
|
|
"updated_by": {
|
|
"type": "string",
|
|
"enum": ["ai-agent", "human"],
|
|
"description": "Who made the last update"
|
|
}
|
|
}
|
|
},
|
|
"client": {
|
|
"type": "string",
|
|
"description": "Client/project identifier"
|
|
},
|
|
"brand_preset": {
|
|
"type": "string",
|
|
"format": "uri",
|
|
"description": "URL to the brand preset JSON"
|
|
},
|
|
"mcp_namespace": {
|
|
"type": "string",
|
|
"enum": ["all", "ui", "deploy", "seo", "supabase"],
|
|
"default": "all",
|
|
"description": "Which MCP tools are available for this project"
|
|
},
|
|
"infrastructure": {
|
|
"type": "object",
|
|
"required": ["server"],
|
|
"properties": {
|
|
"server": {
|
|
"type": "string",
|
|
"description": "Server short name"
|
|
},
|
|
"database": {
|
|
"type": "string",
|
|
"description": "Database identifier or 'from-env'"
|
|
},
|
|
"coolify_app_id": {
|
|
"type": "string",
|
|
"description": "Coolify app UUID or 'from-env'"
|
|
},
|
|
"coolify_staging_app_id": {
|
|
"type": "string",
|
|
"description": "Staging Coolify app UUID"
|
|
}
|
|
}
|
|
},
|
|
"common_patterns": {
|
|
"type": "array",
|
|
"items": { "type": "string" },
|
|
"description": "Paths to commonly used snippet files"
|
|
},
|
|
"routes": {
|
|
"type": "object",
|
|
"additionalProperties": { "type": "string" },
|
|
"description": "Route patterns for the application"
|
|
},
|
|
"database_schema": {
|
|
"type": "object",
|
|
"properties": {
|
|
"tables": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "object",
|
|
"properties": {
|
|
"name": { "type": "string" },
|
|
"description": { "type": "string" },
|
|
"key_columns": {
|
|
"type": "array",
|
|
"items": { "type": "string" }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"api_endpoints": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "object",
|
|
"properties": {
|
|
"name": { "type": "string" },
|
|
"path": { "type": "string" },
|
|
"method": { "type": "string", "enum": ["GET", "POST", "PUT", "DELETE", "PATCH"] },
|
|
"description": { "type": "string" }
|
|
}
|
|
}
|
|
},
|
|
"notes": {
|
|
"type": "string",
|
|
"description": "Any additional context for AI agents"
|
|
}
|
|
},
|
|
"additionalProperties": true
|
|
}
|