Most design systems die at the same moment: handoff. Designers build an elegant library in their design tool, it gets handed to engineers who rebuild it with their own logic, and within three months you have two systems that don't match — and the "real" one is whatever's in the code, like it or not.
A system is a contract, not a library
The system that survives is written as a contract between both sides: every component has one name in design and in code, agreed states, and clear rules for what a designer may change and what needs an engineering review. The values — colours, spacing, type — live as shared tokens both sides read from a single source.
Most importantly: a system needs an owner. Without someone responsible for accepting and rejecting changes, any system becomes an archive of good intentions.
The takeaway
Don't ask "do we have a design system?" Ask "can a new engineer build a correct page without asking a designer?" If the answer is no, you have a library — not a system.