adobe / adobe/spectrum-design-data
feat(sdk): promote SPEC-017 from Warning to Error at spec 2.0.0
- Dominant language
- Rust
- Stars
- 153
- Forks
- 35
- Avg merge
- 7h 54m
- Merged PRs (30d)
- 111
Description
## Context
Tracked follow-up from issue #941 (property field migration path) and the migration policy landed in `spec/token-format.md`.
## Work
At the spec `2.0.0` cut, flip SPEC-017 (`string-name-tech-debt`) from `warning` to `error`:
- `sdk/core/src/validate/rules/spec017.rs:40` — change `Severity::Warning` → `Severity::Error`.
- Update rule catalog in `packages/design-data-spec/rules/rules.yaml` if the severity is declared there.
- Add a changelog entry noting this is a breaking validator change.
- Verify `design-data validate packages/tokens/src --names-dir packages/token-names/names/` emits the expected error count (or zero if all string-name tokens are remediated before the 2.0.0 cut).
## Preconditions
- All string-named tokens in `packages/tokens/naming-exceptions.json` must be converted to structured name objects in `@adobe/token-names` (sidecar), or the dataset migration must be complete, before this PR ships.
- The validator must be invoked with `--names-dir packages/token-names/names/` so SPEC-017 can see the name objects (they are no longer inline in `packages/tokens/src/` as of #972).
- This PR must target the `2.0.0` release branch or be merged with a major-version bump.
## References
- Issue #941 (migration policy)
- PR #972 (sidecar extraction — `name` objects moved to `@adobe/token-names`)
- `docs/proposals/011-string-name-escape-hatch.md` (SPEC-017 origin)
- `packages/design-data-spec/spec/evolution.md` (severity tightening = major change)
Contributor guide
Research direction
Start with sdk/core/src/validate/rules/spec017.rs:40 and inspect packages/design-data-spec/rules/rules.yaml for the current severity declaration. Review the migration policy, evolution guidance, and naming-exception prerequisites before changing the rule. Run design-data validate packages/tokens/src --names-dir packages/token-names/names/ and verify the expected error count, then add the breaking-change note for the 2.0.0 release.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- release, tooling
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100