Validate Selected Task

Check assets, translations, audio files, and code for the task selected above

1 Basic Information

Use lowercase with hyphens. This will be used in camelCase for the registry (e.g., egmaMath).
Additional context about the task implementation

2 Registry Configuration (taskConfig.ts)

File: core-tasks/task-launcher/src/tasks/taskConfig.ts
Add your task with the required entries: setConfig, getCorpus, getTranslations, buildTaskTimeline, variants (optional).
This is automatically generated from your task name (e.g., egma-math → egmaMath)

3 Timeline Implementation

File: core-tasks/task-launcher/src/tasks/<task-name>/timeline.ts
Export a default function that builds and returns the jsPsych timeline using task config and media assets.

4 Corpus CSV (Stimulus Data)

Upload to:
• Dev: gs://levante-assets-dev/corpus/<task-name>/<corpus>.csv
• Prod: gs://levante-assets-prod/corpus/<task-name>/<corpus>.csv
The CSV file containing your task's stimulus items

5 Media Assets (Audio/Visual)

Buckets: Automatically switch by environment (dev/prod)
Conventions:
• Visual: visual/<task-name>/...
• Audio: audio/<language>/... and audio/shared/...
Total number of audio files (from assets-per-task.json)

6 Required Assets Declaration (assets-per-task.json)

Hosted at: gs://levante-assets-{dev|prod}/audio/assets-per-task.json
List all audio item IDs your task requires (excluding corpus-specific audio).
Enter one ID per line (kebab-case). Logical audio IDs defined for this task; each typically requires a matching camelCase translation key.
IDs for audio cues that do not display any on-screen text and therefore do not require translation keys.
Shared audio used across multiple tasks (already in the shared section)

7 Translations (item-bank-translations.csv)

Source: gs://levante-assets-{dev|prod}/translations/item-bank-translations.csv
All strings referenced by your timeline must be present. Keys use kebab-case.
Enter translation keys (kebab-case), one per line

Language Support

8 Variants (Optional)

Define task variants with only fields that differ (e.g., corpus, numOfPracticeTrials, sequentialStimulus, buttonLayout, cat, language).

9 Environment Switching

No action required! Environment is automatically determined by Firebase project ID. Buckets change automatically—no code changes needed.

10 Implementation Checklist