filter-chain-two-owners-one-writer
Installation
SKILL.md
One property, two owners, one writer
Media engines that expose their processing graph as a string property — a comma-separated list of stages — hand you an all-or-nothing setter. There is no "append a stage" and no "remove the stage I added": every write is the entire chain. The moment a second feature wants a stage in there, direct writes stop being viable.
The shape that survives is one field per owner and exactly one function that touches the property:
// adapted — the engine's filter-chain property is called `chainProperty` here, and the stage
// strings are shortened to `"eq(...)"` / `"sweep(...)"`; the real grammar is engine-specific.
@Volatile private var eqEntry: String? = null // owner A: null while flat
@Volatile private var transitionEntries: List<String> = emptyList() // owner B