@@ -631,26 +631,47 @@ All six landed together with CSS, recipes, manifest, README, changelog, and
631631 and drop the ` getInputClasses() ` workaround — see
632632 ` project-design/spectre-components/TODO.md ` Phase 6 P0.
633633
634+ - [x] ` .sp-sidebar-toggle ` stays visible on desktop, overlapping the docked
635+ sidebar
636+ - The ` @media (min-width: 768px) ` block in ` src/styles/components.css `
637+ reset ` .sp-sidebar ` and ` .sp-sidebar-backdrop ` for the docked layout but
638+ never hid ` .sp-sidebar-toggle ` , so the off-canvas hamburger button
639+ rendered on top of the docked sidebar at all viewport widths.
640+ - Fix: added ` .sp-sidebar-toggle { display: none; } ` to the same media
641+ query.
642+
634643- [x] Add regression coverage for downstream integration issues
635644 - Prefer focused contract tests over broad fixture expansion.
636645
637646- [x] Keep examples as verification fixtures
638647 - Add visual fixtures only when they support regression review for new public
639648 recipes or states.
640649
641- ### P1: UI Deprecation Readiness
642-
643- - [ ] Define a UI deprecation policy before removing public styling surface
644- - Cover recipe functions, recipe options, variants, states, CSS classes, CSS
645- entry points, and Tailwind exports.
646-
647- - [ ] Decide whether ` ui-contract.manifest.json ` needs deprecation metadata
648- - Add metadata only if it can be validated and kept narrow.
649-
650- - [ ] Document deprecation notices in ` CHANGELOG.md ` and ` CONTRIBUTING.md `
650+ ### P1: UI Deprecation Readiness (done)
651+
652+ - [x] Define a UI deprecation policy before removing public styling surface
653+ - Added a "Deprecation Policy" section to ` CONTRIBUTING.md ` , covering
654+ recipe functions, recipe options, variants, states, CSS classes, CSS
655+ entry points, and Tailwind exports: keep the surface working, add a
656+ ` CHANGELOG.md ` ` ### Deprecated ` entry naming the replacement and
657+ earliest removal version, note it at the source/README call site, and
658+ require a separate later ` breaking ` -classified change (with Bradley
659+ Potts's approval) to actually remove it.
660+
661+ - [x] Decide whether ` ui-contract.manifest.json ` needs deprecation metadata
662+ - Decision: no. The manifest's job is validating the current live
663+ contract, not tracking removal history — ` CHANGELOG.md ` is already the
664+ source of truth for classification and timeline, and adding parallel
665+ deprecation state to the manifest would need its own validator for a
666+ policy with zero deprecations to track yet. Revisit only if a real
667+ deprecation needs machine-readable tracking beyond the changelog.
668+
669+ - [x] Document deprecation notices in ` CHANGELOG.md ` and ` CONTRIBUTING.md `
651670 before the first removal or rename
652- - Consumers should see what is deprecated, what replaces it, and when removal
653- can happen.
671+ - Covered by the same ` CONTRIBUTING.md ` section: every deprecation gets a
672+ ` CHANGELOG.md [Unreleased] ` entry plus an in-repo docstring/README note,
673+ so consumers reading source, docs, or changelog all see the same notice
674+ before anything is removed.
654675
655676---
656677
@@ -681,10 +702,12 @@ All six landed together with CSS, recipes, manifest, README, changelog, and
681702 previously recipe-less ` sp-checkbox ` /` sp-radio ` /` sp-select ` /
682703 ` sp-textarea ` /` sp-fieldset ` /` sp-label ` components in
683704 ` spectre-components ` .
684- 12 . Phase 5 P0 — continuous; add regression coverage as adapter usage reveals
685- gaps.
686- 13 . Phase 5 P1 — define deprecation mechanics before retiring any public
687- class, recipe option, or variant.
705+ 12 . Phase 5 P0 — all known gaps closed; the "track adapter feedback" line
706+ stays open on a standing basis, add regression coverage as new usage
707+ reveals gaps.
708+ 13 . ** Phase 5 P1 — done.** Deprecation policy documented in
709+ ` CONTRIBUTING.md ` ; manifest deprecation metadata deliberately skipped
710+ (see rationale above).
688711
689712---
690713
0 commit comments