Handbook
Task packs and registration
Built-in tasks are grouped into packs so optional domains (games, Playwright, RAG) can be controlled without editing catalog_v1.py for every deployment.
forge_lcdl.tasks.packs.install installs packs according to FORGE_LCDL_TASK_PACKS:
- Unset, empty, or
*→generic,rag,playwright,games(parity with historical “install everything” behavior). - Comma list → e.g.
generic,rag(omitplaywright/games).
Implementation detail: ensure_builtin_tasks_registered in tasks/registry.py calls install_default_packs() once (lazy, idempotent).
Pack contents
| Pack | Contents |
|---|---|
| generic | TASK_REGISTRY_V1 entries except RAG task IDs and game task IDs |
| rag | rag_query_plan, rag_enough_context_gate, answer_from_evidence |
| playwright | pw_* v1 tasks |
| games | Board + move catalog tasks (board_game_*, game_move_*) |
Constants RAG_TASK_IDS and GAME_TASK_IDS live in forge_lcdl.tasks.packs.install.
Custom tasks
Continue to use register_task(TaskSpec(...)) for app-specific tasks; packs only cover shipped builtins.
See also
- README.md — catalog tasks table
- CLIENT-API.md —
resolve_task/run_task