← Files SaturationARCHIVED FILE
.codex-plugin/plugin.json
7.16 KB · Nov 15, 2026 · 07:32 UTC
{
"author": {
"name": "Saturation.io, Inc"
},
"description": "Saturation is production finance for film and TV. Users can create and manage projects and their budgets, record journal transactions, find and read purchase orders, contacts, and documents, ask read-only questions about budget vs actuals and ledger activity, and upload invoices and receipts to attach to records.",
"interface": {
"capabilities": [],
"category": "Finance",
"defaultPrompt": [
"Find my production projects.",
"Show the budget and actuals for a project I choose.",
"Find invoices in my connected workspace."
],
"developerName": "Saturation.io, Inc",
"displayName": "Saturation",
"longDescription": "Saturation is production finance for film and TV. Users can create and manage projects and their budgets, record journal transactions, find and read purchase orders, contacts, and documents, ask read-only questions about budget vs actuals and ledger activity, and upload invoices and receipts to attach to records.",
"privacyPolicyURL": "https://saturation.io/legal/privacy",
"shortDescription": "Film & TV production finance",
"supportURL": "https://support.saturation.io/en/",
"termsOfServiceURL": "https://saturation.io/legal/terms",
"websiteURL": "https://saturation.io",
"logo": "./assets/icon.svg",
"composerIcon": "./assets/icon.svg"
},
"name": "app-6a6e69cb59a88191b7329981a619b5e7",
"version": "1.0.0",
"mcpServers": "./.mcp.json",
"extensions": {
"com.openai": {
"review": {
"test_cases": {
"positive": [
{
"description": "Create a synthetic production project and verify its default budget.",
"prompt": "Create a project named OpenAI Review followed by the current date and time, with summary Synthetic review project. Show me its default budget, and include the project ID and budget ID.",
"tools_triggered": "projectsCreate, read",
"expected_behavior": "Create exactly one project using projectsCreate. Read the returned default budget and report the project and budget IDs. A new budget has Estimate, Actuals and Variance of USD 0. Do not reuse an existing project or claim success after a tool error."
},
{
"description": "Record an unpaid invoice without moving money.",
"prompt": "In OpenAI Review Verification 2026-10-01, record a manual unpaid invoice for USD 93.50 dated October 1, 2026, described as OpenAI review manual invoice. Leave it not actualized. Then read it back.",
"tools_triggered": "find, transactionsCreate, read",
"expected_behavior": "Resolve project y8ghpnxlu297zhl7lz41jiqn. Use transactionsCreate with type Invoice, amount 93.50 USD, status unpaid and actualized false. Read the returned transaction and confirm USD 93.50, project, type, status and description. This records a journal entry and does not initiate payment."
},
{
"description": "Read budget totals by phase from an existing seeded production.",
"prompt": "Show the budget totals by phase for Demo Feature Film. Keep Initial Estimate separate from Estimate and Actuals.",
"tools_triggered": "find, read, query",
"expected_behavior": "Resolve budget prpnd86folvltrjogszsbitj. Query budget_root_totals rather than summing parent and child rows. Report Initial Estimate USD 12,900; Estimate USD 0; Actuals USD 0; Variance USD 0. Initial Estimate inputs independently total 200*10 + 300*12 + 250*11 + 350*13 = 12900. Do not infer that zero actuals means there are no ledger transactions."
},
{
"description": "Find the existing Grip package purchase order and verify its lines.",
"prompt": "Find the Grip package purchase order for Demo Feature Film and show its line items and total.",
"tools_triggered": "find, read",
"expected_behavior": "Select purchase_order:po_imgdgdf4p7gq92oqn7uu3hij for Demo Feature Film, not the similarly named Demo Commercial Spot order. Report 2 tripod rentals at USD 40 = USD 80 and 5 dolly rentals at USD 220.50 = USD 1102.50, total USD 1182.50, draft status. Do not search for or invent PO-77."
},
{
"description": "Upload the attached sample invoice and attach it to the existing synthetic transaction.",
"prompt": "Upload the attached sample invoice PDF to Saturation and attach it to transaction txn_wqmsmpv6vq6lkh4qfsoxnp4k, OpenAI verification sample invoice INV-3337. Read the uploaded document and confirm its invoice number, total and transaction link. Do not create another transaction or make a payment.",
"tools_triggered": "upload, read",
"expected_behavior": "Pass the host-provided attachment object to upload as file, with assignTo.kind transaction and assignTo.id txn_wqmsmpv6vq6lkh4qfsoxnp4k. Read the returned document and page 1. Confirm invoice INV-3337, total USD 93.50, and the transaction link. Do not create another transaction, initiate payment, substitute a placeholder URL, or claim success after a tool error. If extraction is still processing, report that status rather than inventing extracted values.",
"file_attachment_urls": [
"https://slicedinvoices.com/pdf/wordpress-pdf-invoice-plugin-sample.pdf"
]
}
],
"negative": [
{
"description": "Calendar scheduling is outside the integration.",
"prompt": "Schedule a meeting with my crew tomorrow at 10 AM.",
"expected_behavior": "Do not call Saturation tools or claim a calendar event was created. Explain that this integration does not schedule meetings."
},
{
"description": "General news is outside the integration.",
"prompt": "What are today's top world news stories?",
"expected_behavior": "Do not call Saturation tools for general news."
},
{
"description": "Vendor email sending is outside the integration.",
"prompt": "Email the Grip package vendor to ask for a discount.",
"expected_behavior": "Do not call Saturation write tools to send email or claim email was sent. Offer to draft text; the integration does not send vendor email."
}
]
},
"demo_recording_url": "https://drive.google.com/file/d/1yN2oqqEfLzPGWSEA6qDK-OpWO-3vAVkW/view?usp=drivesdk"
},
"publication": {
"release_notes": "1.0.0 review revision: expose the existing 32 permitted record mutations as individually named tools with request schemas, plus writeDocumentNote. The generic write dispatcher is removed. Search metadata now describes document search and project fallback; upload correctly declares external URL access. Existing workspace/project permissions and embedded-instruction defenses remain in place. Review examples use named tools. The linked walkthrough records earlier saved test evidence and limitations; its earlier generic-write catalog is superseded by this revision."
}
}
},
"apps": "./.app.json"
}
SHA-256: 110cd057efcfed9d559be258a444ca687367eee84812c0ef819fdaee0880ac36