Naming Conventions
Naming Tasks
Tasks must use slash-delimited kebab-case names following the below pattern:
[:vendor|:product] / [:api_version] / [:resource] / [:operation_name_as_noun] / [:model]
Examples:
- /v1/images/generatations
- videos/text-to-video
- images/enhancements/diffbir
API integration tasks
For tasks that do External API integration, append the vendor name at the beginning.
Additionally, try to keep the APIs closer to the original ones
Examples:
- openai/v1/chat-completions
- ideogram/v3/images/generations
- ideogram/v3/images/edits
- pika/text-to-video
Product-specific tasks
For tasks owned by a specific domain or designed to be used in a specific product, append the domain/product name at the beginning.
Examples:
- media-engine/videos/exports
- media-engine/videos/effect-apply
- api-bu/template-variations/generations
Tagging Tasks
warning
Only the tags listed below are allowed. Any unrecognized tag will fail validation.
Reusability
- platform-task - core tasks designed to be reused across different feature implementations
- feature-task - feature task (usually workflow) designed for individual features only. Not recommended for reuse
- deprecated - task is deprecated and should no longer be used. Include the recommended alternative task in the task description, if any
Alerting
- stability:stable - Default if not marked as beta or experimental. Provides 99.9% availability SLO
- stability:beta - Task is in beta phase. Provides 95% availability SLO
- stability:experimental - No SLO — used for early-stage or experimental tasks
Expense Tracking
These tags are required only if your task calls external APIs directly (i.e. not through flow.executeTask(...)).
- vendor:[VENDOR] — the external API vendor the task calls (e.g.
vendor:google,vendor:openai). - model:[MODEL] — the model the task uses. Only applicable when the model is hardcoded and not received as a parameter in the command.
Ownership
- app:[APP] — the app that owns this task.