Schema Reference

Workflows are workflow.json files stored in the local registry at ~/.config/athena/workflows/<name>/workflow.json.

Full Example

{
  "name": "e2e-test-builder",
  "version": "1.0.0",
  "description": "Automatically discover and generate end-to-end tests.",
  "plugins": [
    "e2e-test-builder@lespaceman/athena-workflow-marketplace",
    "site-knowledge@lespaceman/athena-workflow-marketplace"
  ],
  "promptTemplate": "Add comprehensive Playwright E2E tests for this codebase. Begin by analyzing existing test conventions, then identify untested user flows, implement tests for each, and run them to confirm they pass.",
  "systemPromptFile": "./system-prompt.md",
  "loop": {
    "enabled": true,
    "completionMarker": "ATHENA_COMPLETE",
    "maxIterations": 10,
    "blockedMarker": "ATHENA_BLOCKED",
    "trackerPath": ".athena-tracker.json",
    "continuePrompt": "Continue from where you left off. Tracker: {trackerPath}"
  },
  "isolation": "minimal",
  "model": "claude-opus-4-5",
  "env": {
    "PLAYWRIGHT_BROWSERS_PATH": "0"
  }
}

Field Reference

namestring, required

Unique workflow identifier. Used in --workflow flags and config.

Semver version. Shown in the header and marketplace listings.

descriptionstring, optional

Human-readable description for marketplace listings.

pluginsstring[], optional

Plugin references auto-loaded on activation. Local paths or marketplace refs (name@owner/repo). Merged with config/CLI plugins.

promptTemplatestring, required

Initial prompt injected as the user message to start the session.

systemPromptFilestring, optional

Relative path (from workflow directory) to a markdown system prompt.

loopobject, optional

Iterative execution. Omit for single-run workflows.

FieldTypeRequiredDescription
enabledbooleanYesWhether looping is active
completionMarkerstringYesString the agent outputs to signal completion
maxIterationsnumberYesMaximum iterations before stopping
blockedMarkerstringNoString the agent outputs when blocked
trackerPathstringNoRelative path to a tracker file
continuePromptstringNoPrompt for iterations 2+. Supports {trackerPath} interpolation

The loop runs until completionMarker is output, blockedMarker is output, or maxIterations is reached.

isolation"strict" | "minimal" | "permissive", optional

Session isolation preset. Upgrades the user's setting if the workflow needs more access (with a warning).

modelstring, optional

Model override. Accepts short aliases ("sonnet", "opus") or full model IDs.

envobject, optional

Environment variables injected into the agent process.

{
  "env": {
    "NODE_ENV": "test",
    "PLAYWRIGHT_BROWSERS_PATH": "0"
  }
}