Kometa dynamic collections
Skill nichtlegacy/kometa-skill/skills/kometa-dynamic-collections
Agent-first Kometa skill library for Codex and Claude: generate, review, and debug Plex automation YAML for configs, collections, overlays, metadata, playlists, defaults, operations, and reports.
npx -y skills add nichtlegacy/kometa-skill --skill kometa-dynamic-collectionsAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Use whenever the user wants Kometa dynamic collections, `dynamic_collections:` YAML, genre/country/network/person/year fan-out, `tmdb_collection`, `tmdb_popular_people`, `imdb_awards`, Letterboxd user-list fan-out, key overrides, addons, `title_format`, per-key `template_variables`, or help reviewing dynamic collection YAML. Use this skill for any request that should generate many collections from one dynamic definition.
SKILL.md
5.9 KB, ~1.3k tokens by cl100k_base, as published. Nobody here has run it
Kometa Dynamic Collections
Own dynamic_collections: definitions inside collection files.
Goal
- Produce valid-looking dynamic collection definitions.
- Explain key vocabulary, type/data requirements, and naming controls.
- Keep dynamic logic inside collection files.
Output Contract
Always return:
- YAML for a collection file containing
dynamic_collections: - 2-5 short bullets on type, naming, and generation behavior
- Caveats for
data, templates, provider dependencies, and over-generation risk
File Boundary
Belongs here:
dynamic_collections:- dynamic
type - optional
data exclude,include,addonstitle_format,remove_prefix,remove_suffix,key_name_override,title_overridetemplate- dynamic
template_variables
Does not belong here:
config.ymlroot wiring- standalone metadata edits
- plain one-off collections unless the user truly wants fan-out generation
Mental Model
- one dynamic definition creates many normal collections
typedetermines where keys come fromdatais only used for types that need extra input- each generated collection uses either the built-in default template for that type or a custom
template
Key Vocabulary
key: raw dynamic value, often an ID or source valuekey_name: display name after naming cleanuptitle_format: how the final collection title is rendered
If the user is confused:
- explain
keyas the source - explain
key_nameas the cleaned display name
Decision Rules
Use dynamic collections when:
- the user wants one rule to generate many collections
- the user wants per-genre, per-country, per-network, per-decade, or per-person collections
- the user wants awards or user-list fan-out without hand-writing each collection
Do not use dynamic collections when:
- the user wants one or two explicit collections only
- the user does not actually need fan-out
High-Value Types
Good default choices:
tmdb_collection- franchise collections from items already in the library
tmdb_popular_people- people collections from TMDb popular people
genre,country,network,decade,year- classic library-driven fan-out
imdb_awards- year-based awards fan-out with
event_id,starting, andending
- year-based awards fan-out with
letterboxd_user_lists- one collection per Letterboxd user list
audio_language,subtitle_language,edition,resolution- library-derived fan-out from real Plex traits
Data Rules
- some types do not use
data - some types require
data, often as a number or dictionary - if a type relies on external provider state, call that dependency out
Examples:
tmdb_popular_peopledata: 10
imdb_awards- dictionary with
event_id,starting,ending, optionalincrement
- dictionary with
Naming Rules
Best levers:
title_formatremove_prefixremove_suffixkey_name_overridetitle_override
Use addons when:
- multiple source keys should merge into one parent collection
Use exclude or include when:
- the user wants strict control over what gets generated
Template Rules
- each dynamic type has a default template
- switch to a custom
templatewhen the user needs different builders, sort logic, or metadata behavior template_variablescan be set per key, anddefaultcan act as a fallback key
Do not confuse this with defaults-style template_variables.
Embedded Examples
TMDb collections
dynamic_collections:
TMDb Collections:
type: tmdb_collection
remove_suffix: Collection
TMDb popular people
dynamic_collections:
TMDb Popular People:
type: tmdb_popular_people
data: 10
IMDb awards
dynamic_collections:
Oscar Awards Lists:
type: imdb_awards
data:
event_id: ev0000003
starting: latest-15
ending: latest
Country naming cleanup
dynamic_collections:
Countries:
type: country
title_format: <<key_name>> Cinema
key_name_override:
France: French
Audio language fan-out
dynamic_collections:
Audio Languages:
type: audio_language
title_format: Top <<key_name>> Movies
Edition fan-out
dynamic_collections:
Editions:
type: edition
title_format: <<key_name>> Cuts
Addons merge
dynamic_collections:
Networks:
type: network
addons:
MTV:
- MTV2
- MTV3
- MTV (UK)
Local References
Read only what matches the request:
references/cards/files--dynamic.mdreferences/cards/dynamic--core.mdreferences/cards/dynamic--types.mdreferences/cards/dynamic--library-derived.mdreferences/cards/templates--core.md
Use these tiny examples first:
examples/gold/gold-dynamic-region.ymlexamples/gold/gold-dynamic-tmdb-people.ymlexamples/gold/gold-dynamic-imdb-awards.ymlexamples/gold/gold-dynamic-audio-languages.ymlexamples/gold/gold-dynamic-editions.ymlexamples/gold/gold-template-external-actor.yml
Review Checklist
- is this inside a collection file?
- does the chosen
typeactually fit the request? - does the type require
data, and if so is it present? - are naming overrides under the dynamic entry instead of somewhere random?
- does the user really need fan-out generation?
Stopping Condition
Finish when:
- the dynamic collection shape is correct
typeanddatarequirements are explicit- naming and generation behavior are clear
What ships with it: 1 file
376 B alongside SKILL.md
agents/
- openai.yaml376 B