super-ux 0.53.0 → 0.55.0

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 +60 -0
  2. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -1,3 +1,63 @@
1
+ ## 0.55.0 — the ledger names the version it was measured on, because 0.54.0's did not
2
+
3
+ **A repair for what the previous release shipped, and the gate that would have caught
4
+ it.** `0.54.0` went out with its verification ledger's newest section naming **v0.53.0**.
5
+ This repository's own gate said nothing; the umbrella's cross-member ratchet caught it one
6
+ layer up — *3 member ledgers describe a version older than they ship, and the ratchet
7
+ stands at 2* — which is the right backstop and the wrong first line.
8
+
9
+ `validate_ledger_names_its_version` reads the newest `## …` section, resolves the version
10
+ it names and compares it with `package.json`. A ledger whose newest section names an older
11
+ artifact is a release nobody re-confirmed against anything.
12
+
13
+ **The first draft crashed instead of refusing.** It called a `fail()` this module does not
14
+ have — the name belongs to a sibling repository's validator — so the plant raised
15
+ `NameError` and the run stopped. `rc=1` either way, which is exactly why the plant looked
16
+ like it had worked. **A guard that crashes has not refused anything**: it stops the suite
17
+ before the rest of it can speak, and it reports a defect in itself as a defect in the
18
+ tree. Rewritten through `check()`, watched refusing its plant with no traceback.
19
+
20
+ Ledger section added for `0.54.0`'s own content, so the release it repairs is recorded
21
+ rather than skipped. `repo validator checks` recomputed 4621 → 4623 by running the command
22
+ `docs/brand/facts.md` names, not by adding two.
23
+
24
+ ## 0.54.0 — FR-01 says who does the clicking, and where the tool has to stop
25
+
26
+ Closes `ssheleg/sshlg-skills#B-87` (board row), and widens two advertised triggers.
27
+
28
+ **A method told the agent to click through a competitor funnel by hand, in sessions
29
+ where two browser tools are connected.** FR-01 read *"open a competitor's ad, click
30
+ through, and you are in it at step one"* and named no tool for the click — while the
31
+ same repository's neighbours already name `chrome-devtools` for their own crawling and
32
+ `claude-in-chrome` is connected beside it. FR-01's whole output is *a list of live
33
+ funnel URLs with the ad that led to each*: a walk a browser tool performs and a person
34
+ performs slowly.
35
+
36
+ **The answer is both, and the split is the useful part.** The walk is mechanical until
37
+ it is not:
38
+
39
+ - a **browser tool** opens the ad's destination, follows the redirect chain and captures
40
+ four things a screenshot loses — the final URL after redirects, every step's URL in
41
+ order, the network requests on the paywall step (which processor, which price ids —
42
+ the one place a funnel states its own price without a human reading it), and the ad
43
+ that led there;
44
+ - a **human** takes over at three points that are not incidental: consent walls, which
45
+ vary by geography and are the first thing an automated walk gets stuck in; **sign-in
46
+ and paywall steps**, where a tool cannot proceed without real credentials or a real
47
+ card — and where FR-06 already forbids going further; and **ad libraries themselves**,
48
+ which rate-limit and serve challenges to a driven browser.
49
+
50
+ So: the library is read by a person, the funnel is walked by a tool, and the walk stops
51
+ at the first wall that asks who you are. **Silence here read as *nobody thought about
52
+ it*, which is worse than either answer** — and the method is otherwise the most
53
+ operationally precise document in the pack.
54
+
55
+ **Two advertised triggers corrected rather than added.** `copywriting` advertised
56
+ `"пост для твиттера"`, which demands a literal «для» an operator does not type; it now
57
+ reads `"пост в твиттер"`. And `"error text" / "текст ошибки"` is named, closing a route
58
+ the umbrella measured reaching nothing. The description moves 634 → 662 of 1024, leaving
59
+ 308 characters — well clear of the 60-character reserve the family's ratchet counts.
60
+
1
61
  ## 0.53.0 — a coverage metric is a check, and its matching rule is where the assumptions hide
2
62
 
3
63
  Closes `ssheleg/sshlg-skills#96`.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "super-ux",
3
- "version": "0.53.0",
3
+ "version": "0.55.0",
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
  },