super-ux 0.52.5 → 0.54.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 +70 -0
  2. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -1,3 +1,73 @@
1
+ ## 0.54.0 — FR-01 says who does the clicking, and where the tool has to stop
2
+
3
+ Closes `ssheleg/sshlg-skills#B-87` (board row), and widens two advertised triggers.
4
+
5
+ **A method told the agent to click through a competitor funnel by hand, in sessions
6
+ where two browser tools are connected.** FR-01 read *"open a competitor's ad, click
7
+ through, and you are in it at step one"* and named no tool for the click — while the
8
+ same repository's neighbours already name `chrome-devtools` for their own crawling and
9
+ `claude-in-chrome` is connected beside it. FR-01's whole output is *a list of live
10
+ funnel URLs with the ad that led to each*: a walk a browser tool performs and a person
11
+ performs slowly.
12
+
13
+ **The answer is both, and the split is the useful part.** The walk is mechanical until
14
+ it is not:
15
+
16
+ - a **browser tool** opens the ad's destination, follows the redirect chain and captures
17
+ four things a screenshot loses — the final URL after redirects, every step's URL in
18
+ order, the network requests on the paywall step (which processor, which price ids —
19
+ the one place a funnel states its own price without a human reading it), and the ad
20
+ that led there;
21
+ - a **human** takes over at three points that are not incidental: consent walls, which
22
+ vary by geography and are the first thing an automated walk gets stuck in; **sign-in
23
+ and paywall steps**, where a tool cannot proceed without real credentials or a real
24
+ card — and where FR-06 already forbids going further; and **ad libraries themselves**,
25
+ which rate-limit and serve challenges to a driven browser.
26
+
27
+ So: the library is read by a person, the funnel is walked by a tool, and the walk stops
28
+ at the first wall that asks who you are. **Silence here read as *nobody thought about
29
+ it*, which is worse than either answer** — and the method is otherwise the most
30
+ operationally precise document in the pack.
31
+
32
+ **Two advertised triggers corrected rather than added.** `copywriting` advertised
33
+ `"пост для твиттера"`, which demands a literal «для» an operator does not type; it now
34
+ reads `"пост в твиттер"`. And `"error text" / "текст ошибки"` is named, closing a route
35
+ the umbrella measured reaching nothing. The description moves 634 → 662 of 1024, leaving
36
+ 308 characters — well clear of the 60-character reserve the family's ratchet counts.
37
+
38
+ ## 0.53.0 — a coverage metric is a check, and its matching rule is where the assumptions hide
39
+
40
+ Closes `ssheleg/sshlg-skills#96`.
41
+
42
+ A metric is built to end an argument about coverage. Then **the rule that decides what a
43
+ document is ABOUT** turns out to be one line of string handling, and the number reports work
44
+ that exists as work that is missing — and the number now generates work that is fictional.
45
+
46
+ Measured: a screen inventory decided a screen was documented when a scenario named its path
47
+ as the primary entry point, taking the first backticked path from `Entry point:` **whole**.
48
+ Two scenarios name their subject with a query string — `/reset-password?token=…` and
49
+ `/account/billing/return?invoice=&status=` — so both matched no route, and **two screens
50
+ that had always been documented were published as having no scenario at all.** The board row
51
+ that followed named nine screens needing scenarios: two needed nothing, and a third was one
52
+ component at two addresses, which the rule can only ever name one of. **Three of nine rows
53
+ were fiction, in a number whose whole purpose was to stop people arguing about coverage from
54
+ memory.**
55
+
56
+ `ux-audit` now carries three rules for any metric over these documents:
57
+
58
+ - **the aboutness rule is a named, exported function with a table of synthetic inputs,
59
+ including the negative cases** — query strings, fragments, several paths in one field,
60
+ prose with no backticks. It was untestable while it was an inline regex, which is exactly
61
+ why it was never tested;
62
+ - **a metric that cannot express a real state says so beside the number** rather than
63
+ counting that state as a failure. One screen at two addresses is one screen, and the
64
+ matrix carries a derived *alias routes* line instead of silently ranking the second
65
+ address undocumented;
66
+ - **a deliberate, hard-won rule is a reason to test it, not to trust it.** This one had
67
+ already replaced a looser rule twice, each time after a screen was reported covered on a
68
+ mention rather than on a subject — and a rule with that history is the last one anybody
69
+ re-reads.
70
+
1
71
  ## 0.52.5 — the card the umbrella renders, and the half of the role that was copywriting's
2
72
 
3
73
  The committed social preview is now the umbrella's own render, byte for byte
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "super-ux",
3
- "version": "0.52.5",
3
+ "version": "0.54.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
  },