{ "$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 }