Skip to main content

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.