SLASHED

Version Freeze Policy

Status: ACTIVE — The project is frozen at 0.6.x.x. Enforced since: v0.6.28.0 (2026-05-11). Last reviewed: v0.6.30.0.


What is frozen

The MAJOR version digit (second position in 0.MAJOR.MINOR.PATCH) is locked at 6. No bump to 0.7.0.0 or higher is permitted until every unlock condition below is satisfied.

Within 0.6.x.x, normal development continues:

The version ceiling is enforced by bin/bump-version.sh — it will reject any target version ≥ 0.7.0.0 unless a FREEZE_UNLOCK file exists in the repo root.


Why this freeze exists

The token and variable system is the foundation of everything in SLASHED. Every component, every utility, every consumer override depends on token names being correct, complete, and DX-friendly.

Rushing to 0.7.0.0 (the token freeze milestone per ROADMAP.md) before the system is battle-tested would lock in naming mistakes, coverage gaps, and DX friction permanently. Once 0.7.0.0 ships, token names become stable API — renames require deprecation aliases with overlap, and removals must wait for 0.8.0.0.

The cost of premature freeze is higher than the cost of staying at 0.6.x.x.


Unlock conditions

ALL of the following must be true before 0.7.0.0 can ship:

1. Token completeness

2. Token testing

3. DX parity validation

4. Documentation completeness

5. Naming audit

6. Philosophy compliance


How to unlock

When all conditions above are verified:

  1. Check every box in this document (edit this file, commit).
  2. Run the full verification suite:
    bin/sync-docs.sh
    bin/check-token-parity.sh --verbose --report
    bin/check-philosophy-drift.sh
    
  3. Create FREEZE_UNLOCK in the repo root with the following content:
    Freeze unlock authorized.
    All conditions in docs/VERSION-FREEZE.md verified.
    Signed: [maintainer name]
    Date: [YYYY-MM-DD]
    
  4. Run bin/bump-version.sh 0.7.0.0.
  5. After the bump succeeds, delete FREEZE_UNLOCK (it’s a one-time gate).
  6. Commit everything as: chore(release): bump version to v0.7.0.0 — token freeze

After unlock: what 0.7.0.0 means

Per ROADMAP.md, at 0.7.0.0:

Component classes (.sf-*), instance tokens (--sf-btn-bg, etc.), and the JS API stay mutable until 0.8.0.0.


FAQ

Q: What if we discover a token naming issue at 0.6.45.0? A: Fix it. That’s exactly why we’re frozen — free renames are possible in 0.6.x.x with no deprecation overhead. After 0.7.0.0 that freedom is gone.

Q: How long will this freeze last? A: As long as it takes. There is no calendar deadline. Quality over speed.

Q: Can the freeze be bypassed for urgent reasons? A: No. The FREEZE_UNLOCK mechanism is the only path. If it’s truly urgent, complete the unlock conditions — that’s the fastest path.

Q: What about the blueprint library? A: Blueprints have their own versioning. They are content, not API. The framework version freeze does not affect blueprint releases.