ac-tool/backend/prompts/universal_schema.json
Vadym Samoilenko 72c50b2c92 Initial commit — AC Tool unified application
Merges ac-helper (PHP Activation Calendar) and brief-extractor (Python AI)
into a single Docker app with React/TypeScript frontend.

Features:
- Brief upload → AI extraction → review → Activation Calendar import
- Handsontable v17 spreadsheet with dependent dropdowns (148 categories)
- AI natural language commands via Gemini (YOLO mode, voice input)
- Azure AD MSAL SPA PKCE authentication, user roles (user/admin)
- CSV Activation Calendar export
- Real-time WebSocket job progress
- Admin: user management, dropdown Excel upload
- Multi-stage Dockerfile, docker-compose, nginx proxy instructions

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-23 13:24:46 +00:00

93 lines
No EOL
3.8 KiB
JSON
Executable file
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{
"name": "base_deliverable_extraction",
"description": "Extract base deliverables with multiplier arrays from document analysis",
"schema": {
"type": "object",
"properties": {
"assets": {
"type": "array",
"items": {
"type": "object",
"properties": {
"title": {
"type": "string",
"description": "Asset title or name (normalized base deliverable name without multipliers)"
},
"status": {
"type": "string",
"description": "Current status (e.g., 'Draft', 'In Progress', 'Final')"
},
"category": {
"type": "string",
"description": "Asset category (e.g., 'Social Media', 'Display Advertising', 'Video Content')"
},
"media": {
"type": "string",
"description": "Media type (e.g., 'IMAGE', 'VIDEO', 'COPY', 'INTERACTIVE')"
},
"asset_type": {
"type": "string",
"description": "File format (e.g., 'JPG', 'PNG', 'MP4', 'GIF')"
},
"brand_identifier": {
"type": "string",
"description": "Brand or client identifier (e.g., 'Adidas', 'Nike', 'Client A')"
},
"technical_specifications": {
"type": "array",
"items": {
"type": "string"
},
"description": "MULTIPLIER FIELD: Dimensions, sizes, requirements. Use array when document lists multiple sizes/specs for this deliverable (e.g., ['1080x1080', '1080x1920', '1200x1500']). Use single value ['1920x1080'] when only one size specified"
},
"review_date": {
"type": "string",
"description": "Review deadline (e.g., '2025-09-30')"
},
"live_date": {
"type": "string",
"description": "Go-live date (e.g., '2025-10-15')"
},
"end_date": {
"type": "string",
"description": "End/expiry date (e.g., '2025-12-31')"
},
"reference_material": {
"type": "string",
"description": "Requirements, links, notes (e.g., 'As per style guide', 'See attachment A')"
},
"language_country_market": {
"type": "array",
"items": {
"type": "string"
},
"description": "MULTIPLIER FIELD: Target language-country-market combinations using ISO codes. Use when deliverable serves multiple markets (e.g., ['EN-UK', 'DE-DE', 'FR-FR', 'ES-ES']). Use single value ['EN-US'] for single market. Format: [Language ISO]-[Country ISO] or just [Country ISO] if language not specified"
},
"quantity": {
"type": "string",
"description": "Expected total quantity for VALIDATION. Use this as a sense-check: the multiplication of all array fields should result in a total close to this quantity. If brief says '50 banners', ensure technical_specifications × language_country_market ≈ 50"
},
"page_number": {
"type": "string",
"description": "Source page reference (e.g., '5', 'Pages 3-7')"
},
"priority_level": {
"type": "string",
"description": "Business priority (e.g., 'High', 'Medium', 'Low')"
},
"creative_direction": {
"type": "string",
"description": "Design requirements (e.g., 'Brand colors, clean layout', 'Minimalist style')"
}
},
"required": [
"title"
]
}
}
},
"required": [
"assets"
]
}
}