super-ux 0.52.2 → 0.52.4

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 +44 -0
  2. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,49 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.52.4 — the registry card stopped being four releases stale
4
+
5
+ `SKILL-CARD.md` carries the fields Anthropic's Skills-for-enterprise guidance asks every
6
+ organisation to keep — *"written so somebody who did not build this can decide"*. It said
7
+ `0.48.3` while this package shipped `0.52.3`.
8
+
9
+ **Nothing read it, so it could only drift.** The version moves in `package.json`,
10
+ `plugin.json` and `marketplace.json` on every release; the card was in no list. Measured
11
+ 2026-09-01 across the family: **four of nine cards were behind** — this one by four minor
12
+ releases, `agent-stack` by ten.
13
+
14
+ The check refuses a card whose `Version` row disagrees with `package.json`, and refuses a
15
+ card that states no version at all: one a reader cannot see go stale is worse than one
16
+ that lags visibly. Watched failing before it shipped. `repo validator checks`
17
+ 4617 → **4619**, recomputed by the command the fact itself cites rather than by hand.
18
+
19
+ **And the same defect as the sibling, in the same kind of place.** `test/validate.py`
20
+ carried an invalid escape sequence — a lone backslash-pipe in a non-raw docstring — which
21
+ Python already warns about and future versions will reject. It sat in a paragraph
22
+ explaining that *"the escape-awareness is the whole check"*. Now raw, zero escape
23
+ warnings — as `agent-stack`'s was an hour earlier, from a paragraph explaining how to
24
+ escape a pipe.
25
+
26
+ ## 0.52.3 — the front matter gets read by a parser, not by a regex
27
+
28
+ - **`validate_front_matter_is_yaml` parses all 30 shipped front-matter blocks with PyYAML**
29
+ (`B-033`): 7 `SKILL.md`, 15 commands, 8 `.mdc` mirrors. `front_matter()` reads a block line
30
+ by line and never asks what a YAML parser would, so a `: ` inside an unquoted scalar turns
31
+ the whole block into an invalid mapping and ships anyway — green here, refused by every
32
+ installer that parses YAML, and the hub copy freezes on the previous version. The family
33
+ shipped exactly that twice in twelve days (`sheleg-design` 1.37.4 and 1.58.0, both
34
+ `mapping values are not allowed here`), so the remedy is **ported from the sibling that
35
+ paid for it** rather than reinvented.
36
+ - **The two guards are the ones that history says matter.** It fails **closed** when PyYAML
37
+ is missing, because a guard that discloses and passes when its tool is absent is the hole
38
+ the first fix left open; and it refuses an **empty walk**, because globs that all match
39
+ nothing is a moved directory rather than a clean tree. Both watched: `yaml` blocked at
40
+ import, and the three globs renamed.
41
+ - **`YAML_SELF_TEST` is a permanent plant, not a one-off.** This gate's whole claim is that
42
+ it sees what `front_matter()` cannot; a parser that stopped refusing that shape would leave
43
+ it green on a clean tree forever, so the shape is re-checked on every run.
44
+ - PyYAML installed in both workflows: `setup-python` puts a different interpreter on PATH
45
+ than the runner's system one, which is where PyYAML is preinstalled.
46
+
3
47
  ## 0.52.2 — the evals stop being a promise, and 0.52.1's stowaways get their record
4
48
 
5
49
  - **The eval suite has dated rows instead of a vacant table** (SUX-04, family audit
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "super-ux",
3
- "version": "0.52.2",
3
+ "version": "0.52.4",
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
  },