
❌ This issue is not open for contribution. Visit Contributing guidelines to learn about the contributing process and how to find suitable issues.

Overview
Add a library enum to le-utils for use by both Studio and Kolibri to identify which library a channel belongs to. This enables distinguishing between Kolibri Library (public) channels and Community Library channels.
Complexity: Low
Target branch: main
Context
le-utils uses JSON spec files in spec/ to define constants, which are then generated into both Python and JavaScript via scripts/generate_from_specs.py. Simple enum constants use the array format in spec/constants-*.json files (e.g. constants-modalities.json).
The Change
Add a new spec/constants-library.json spec file defining the library enum values, and run the generation script to produce the Python and JS constant files.
Acceptance Criteria
AI usage
Used Claude Code to draft this issue interactively. I provided the requirements and Claude explored the le-utils codebase to understand the spec-driven constant generation pattern. All content reflects my decisions and was reviewed section by section.
❌ This issue is not open for contribution. Visit Contributing guidelines to learn about the contributing process and how to find suitable issues.
Overview
Add a library enum to le-utils for use by both Studio and Kolibri to identify which library a channel belongs to. This enables distinguishing between Kolibri Library (public) channels and Community Library channels.
Complexity: Low
Target branch: main
Context
le-utils uses JSON spec files in
spec/to define constants, which are then generated into both Python and JavaScript viascripts/generate_from_specs.py. Simple enum constants use the array format inspec/constants-*.jsonfiles (e.g.constants-modalities.json).The Change
Add a new
spec/constants-library.jsonspec file defining the library enum values, and run the generation script to produce the Python and JS constant files.Acceptance Criteria
spec/constants-library.jsondefines the library enum values (KOLIBRI,COMMUNITY)le_utils/constants/library.pywithchoicestuplejs/Library.jsAI usage
Used Claude Code to draft this issue interactively. I provided the requirements and Claude explored the le-utils codebase to understand the spec-driven constant generation pattern. All content reflects my decisions and was reviewed section by section.