super-ux 0.54.0 → 0.55.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/CHANGELOG.md +49 -0
  2. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -1,3 +1,52 @@
1
+ ## 0.55.1 — the opt-out the router promises now lives in the bodies that honor it
2
+
3
+ Family audit 2026-09-06, wave AUDIT-WAVE-0906. **The operator's routing block
4
+ promises a spoken refusal for each chain — "no scenarios" / «без сценариев» for
5
+ the UX chain, "no brand" / «без бренда» (plus "draft it" / «черновиком» for
6
+ copywriting) for the copy chain — and no skill text in this pack carried any of
7
+ them.** With the routing block installed the promise held one layer up; a
8
+ standalone install advertised no opt-out at all, so an operator who wanted the
9
+ route skipped had no phrase the skill had agreed to hear.
10
+
11
+ One sentence in each of the seven bodies now states it: the operator declines
12
+ the route by saying the phrase, and the skill proceeds without the chain while
13
+ saying so — never silently. Measured before and after with the house auditor:
14
+ every body stays inside its working limit, the tightest being `ux-audit`
15
+ ~4626/4750 and `ux-flows` ~4529/4750 tokens.
16
+
17
+ **No `description:` changed, by decision rather than accident.** Descriptions
18
+ pair with the umbrella's trigger table, and a dropped advertised phrase refuses
19
+ the family pin. `ux-flows`'s description stands at 965/1024 — 965 of the 970
20
+ working limit — and is recorded here untouched for exactly that reason:
21
+ `git diff -U0` over the skills shows zero changed `description:` lines.
22
+
23
+ `repo validator checks` re-measured at 4623 by running the command
24
+ `docs/brand/facts.md` names — the count did not move with this change, and
25
+ that is a measurement, not a restatement.
26
+
27
+ ## 0.55.0 — the ledger names the version it was measured on, because 0.54.0's did not
28
+
29
+ **A repair for what the previous release shipped, and the gate that would have caught
30
+ it.** `0.54.0` went out with its verification ledger's newest section naming **v0.53.0**.
31
+ This repository's own gate said nothing; the umbrella's cross-member ratchet caught it one
32
+ layer up — *3 member ledgers describe a version older than they ship, and the ratchet
33
+ stands at 2* — which is the right backstop and the wrong first line.
34
+
35
+ `validate_ledger_names_its_version` reads the newest `## …` section, resolves the version
36
+ it names and compares it with `package.json`. A ledger whose newest section names an older
37
+ artifact is a release nobody re-confirmed against anything.
38
+
39
+ **The first draft crashed instead of refusing.** It called a `fail()` this module does not
40
+ have — the name belongs to a sibling repository's validator — so the plant raised
41
+ `NameError` and the run stopped. `rc=1` either way, which is exactly why the plant looked
42
+ like it had worked. **A guard that crashes has not refused anything**: it stops the suite
43
+ before the rest of it can speak, and it reports a defect in itself as a defect in the
44
+ tree. Rewritten through `check()`, watched refusing its plant with no traceback.
45
+
46
+ Ledger section added for `0.54.0`'s own content, so the release it repairs is recorded
47
+ rather than skipped. `repo validator checks` recomputed 4621 → 4623 by running the command
48
+ `docs/brand/facts.md` names, not by adding two.
49
+
1
50
  ## 0.54.0 — FR-01 says who does the clicking, and where the tool has to stop
2
51
 
3
52
  Closes `ssheleg/sshlg-skills#B-87` (board row), and widens two advertised triggers.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "super-ux",
3
- "version": "0.54.0",
3
+ "version": "0.55.1",
4
4
  "scripts": {
5
5
  "test": "python3 test/validate.py && python3 test/brand_lint_test.py && python3 test/ux_lint_test.py && python3 docs/ux/lint.py && python3 docs/brand/lint.py && node test/installer_test.js"
6
6
  },