pull down to refresh

In order to have soft-fork any changes must be backward compatible with old-code running nodes.
So how could you possibly add new features while keeping backward compatibility? You make it so old nodes see the new soft-fork UTXOs as "anyone can spend", while soft-fork-aware nodes can understand new data and enforce narrower ruleset on those UTXOs.
If miners/nodes accepted the softfork all new blocks will follow the new ruleset, but old-codebase nodes will still work fine unaware of new rules thinking those are just "anyone can spend" UTXOs.