A specification is a shared description of behaviour, data, constraints, edge cases and quality expectations. For probabilistic systems it includes examples, unacceptable outputs and escalation.
An acceptance criterion is a verifiable condition for completing a feature. Some criteria become deterministic tests; others become eval cases and thresholds.
A quality attribute is a cross-cutting property such as security, privacy, accessibility, reliability, latency, cost or maintainability. Attributes shape architecture and release decisions.