@ssheleg/sheleg-dev 0.13.4 → 0.14.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.
package/CHANGELOG.md CHANGED
@@ -1,3 +1,19 @@
1
+ ## v0.14.0 — frontend performance is tested in WebKit (Safari) first
2
+
3
+ - `frontend-performance/SKILL.md` gains *Test browser — WebKit (Safari) first*:
4
+ Safari through `safaridriver`, Playwright `webkit` (`--browser webkit`,
5
+ `npx playwright install webkit`), Safari Web Inspector's Timelines, and
6
+ `open -a Safari <url>` on macOS rather than the system default browser.
7
+ - Lighthouse, PageSpeed Insights, CrUX, CDP traces and the chrome-devtools MCP stay
8
+ as the stated Chromium exception (Chromium by definition): Chrome Dev, a
9
+ temporary profile, every started process closed. A page checked only in Chromium
10
+ is reported as exactly that; a Lighthouse score is not a cross-browser verdict.
11
+ - The Measure and Validate steps run the WebKit pass too; *Degradation* names the
12
+ WebKit channels; the contrast check in `references/accessibility-perf.md` starts
13
+ in Safari Web Inspector.
14
+ - New regression `test/audit_regressions/safari-first.py` with drop mutations. Text
15
+ integrity only; no hook or script behaviour changed.
16
+
1
17
  ## v0.13.4 — FW03 credential boundaries
2
18
 
3
19
  - Supply a copyable, locally tested Stripe mode assertion before client construction.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ssheleg/sheleg-dev",
3
- "version": "0.13.4",
3
+ "version": "0.14.0",
4
4
  "description": "Seven integration skills for the layer a product reaches once it has users: Stripe subscription billing and cancellation retention, crypto payments, ad and conversion tracking under Consent Mode v2, Google sign-in and the wider Google auth surface, error tracking, and Core Web Vitals. This package is the installer CLI.",
5
5
  "bin": {
6
6
  "sheleg-dev": "bin/sheleg-dev.js"
@@ -3,7 +3,7 @@
3
3
  "name": "sheleg-dev",
4
4
  "displayName": "Sheleg Dev",
5
5
  "description": "The integration layer a product needs once it has users: Stripe subscription billing reconciled into your own database, crypto payments that survive over-payment and duplicate webhooks, ad and conversion tracking under Consent Mode v2, Google sign-in with the account-linking guards, the wider Google auth surface, and Core Web Vitals work that moves the score, and Sentry error tracking wired so it does not forward your own credentials to a third party and so a stack trace names the commit that caused it.",
6
- "version": "0.13.4",
6
+ "version": "0.14.0",
7
7
  "author": {
8
8
  "name": "ssheleg",
9
9
  "url": "https://x.com/sshlg93"
@@ -20,11 +20,33 @@ Optimize frontend applications for maximum Lighthouse scores and real-user perfo
20
20
 
21
21
  ## Audit Workflow
22
22
 
23
- 1. **Measure** -- Run PageSpeed Insights or Lighthouse. Record scores and failing audits.
23
+ 1. **Measure** -- Run PageSpeed Insights or Lighthouse (Chromium) and load the same scenario in WebKit first (see *Test browser* below). Record scores, failing audits and the engine of each number.
24
24
  2. **Diagnose** -- Map each failing audit to a specific code-level cause (see checklist below).
25
25
  3. **Prioritize** -- Fix by impact: P0 blocks rendering, P1 hurts metrics, P2 is informational.
26
26
  4. **Implement** -- Apply fixes per the reference guides.
27
- 5. **Validate** -- `next build` (or framework equivalent) + re-run Lighthouse. Verify no regressions.
27
+ 5. **Validate** -- `next build` (or framework equivalent) + re-run Lighthouse and the WebKit run. Verify no regressions in either engine.
28
+
29
+ ## Test browser — WebKit (Safari) first
30
+
31
+ Load and profile the page in **WebKit first**: Safari through `safaridriver`
32
+ (WebDriver; `sudo safaridriver --enable` once) for a real browser, Playwright's
33
+ `webkit` (the `webkit` project, `--browser webkit`, installed with
34
+ `npx playwright install webkit`) for scripted runs and traces, Safari Web
35
+ Inspector's Timelines for debugging. On macOS open a page with
36
+ `open -a Safari <url>`, not the system default browser, which may be another
37
+ engine. An automation library (browser-use and the like) runs on its
38
+ WebKit/Safari backend where it has one. WebKit has the narrowest support
39
+ envelope of the big three — a regression that only iOS Safari users feel is
40
+ invisible to every Chrome tool below.
41
+
42
+ **Lighthouse, PageSpeed Insights, CrUX, a CDP trace and the chrome-devtools MCP
43
+ are Chromium by definition** — they stay in this workflow as the **stated
44
+ Chromium exception**: use them when the task needs Chrome itself, and say which
45
+ and why. Prefer the Chrome Dev build for a Chrome run you start; give it a
46
+ temporary profile (never the user's), record what you started, and close every
47
+ process you started before you finish. A page checked only in Chromium is
48
+ reported as "checked only in Chromium", never as "tested in a browser"; a
49
+ Lighthouse score is a Chrome lab number, not a cross-browser verdict.
28
50
 
29
51
  ## Core Web Vitals, and the diagnostics beside them
30
52
 
@@ -198,7 +220,7 @@ how a typo survives review.
198
220
  - **Not Claude Code** (Cursor, Codex, the skills CLI, the API container): the pack's
199
221
  `PreToolUse` gate does not run — every rule here still applies, enforced by a person
200
222
  instead of a hook.
201
- - **No browser channel** (no Chrome DevTools MCP, no Playwright): a page is judged from
223
+ - **No browser channel** (no `safaridriver`, no Playwright `webkit`, no Chrome DevTools MCP): a page is judged from
202
224
  the diff and the numbers are not measured on this machine. Record the weaker claim;
203
225
  a Lighthouse score nobody ran is not a score.
204
226
  - **No network**: PageSpeed Insights and field data are unavailable. Lab reasoning is
@@ -56,7 +56,7 @@ If you need visual hierarchy without reducing contrast below WCAG thresholds:
56
56
 
57
57
  ### Checking Contrast
58
58
 
59
- Use Chrome DevTools: inspect element -> color picker shows contrast ratio against computed background.
59
+ Inspect in Safari Web Inspector first: the Computed styles give the text colour and, on the element or the ancestor that paints it, the background colour; and the formula below gives the ratio. Chrome DevTools' color picker shows the contrast ratio directly — a Chromium tool, so name it as the engine you checked in.
60
60
 
61
61
  Or calculate manually: `(L1 + 0.05) / (L2 + 0.05)` where L1 is the lighter relative luminance.
62
62