Files
adr-sml/package.json
T
Pouya LajevardiandClaude Opus 5 67847d94fa fix: regenerate favicon.ico with a transparent ground; tick Pouya's read-through
public/favicon.ico shipped with no transparency: all three frames declared a
32-bit alpha channel and then carried alpha=255 on every one of their 256/1024/
2304 pixels, ground opaque cream rgba(250,247,242,255). Pouya's read-through
finding, confirmed by parsing the ICO container directly.

The render source carries true alpha (2,272,386 transparent px, 20,795 partial),
so this is an export, not a mask derived from the cream ground — R13's harder
branch did not fire and R13 is unchanged on its own terms.

New scripts/icons.mjs + npm run icons re-derives the icon from the committed
master: asserts the source is still the documented crop (R14), verifies a
candidate file and renames on success so a rejected build cannot replace a good
favicon, and runs a boundary-colour halo test. Composition is unchanged —
ink bbox and pixel count identical at all three sizes.

apple-touch-icon.png is byte-identical and stays opaque cream deliberately; the
reason lives in docs/reference/brand-assets.md §The icon set, with the bar and a
pointer in BaseLayout.astro, docs/06 and R13.

docs/06: the read-through is ticked, and the cutover callout drops to ONE
blocker — Q60's waiting period.

Two adversarial review rounds, 15 findings, all resolved, none declined; stopped
at two per D19. claims-auditor correctly deferred to cutover per D20. Gates on
the committed bytes, exit status read: check 0, build 0 (23 pages),
check:claims 0, check:intake 0, og:proof 0, lint 0, lighthouse 0 (worst of 23
99/100/100/100). Nothing deployed.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Md3GndFqWPzK78xAoebsg5
2026-09-02 16:14:35 -04:00

55 lines
1.5 KiB
JSON

{
"name": "adr-smlcompany-ca",
"version": "0.1.0",
"private": true,
"description": "The dispute resolution practice of Pouya Lajevardi \u2014 Toronto",
"type": "module",
"engines": {
"node": "^22.13.0 || >=24",
"npm": ">=9.6.5"
},
"scripts": {
"dev": "astro dev",
"build": "astro build",
"preview": "astro preview",
"check": "astro check",
"check:claims": "node scripts/check-claims.mjs",
"lint": "eslint . && prettier --check .",
"format": "prettier --write .",
"deploy": "bash scripts/deploy-local.sh",
"lighthouse": "node scripts/lighthouse.mjs",
"og:proof": "node scripts/og-proof.mjs",
"check:intake": "node scripts/check-intake.mjs",
"bio:pdf": "node scripts/bio-pdf.mjs",
"icons": "node scripts/icons.mjs"
},
"dependencies": {
"@astrojs/mdx": "^7.0.8",
"@astrojs/sitemap": "^3.7.3",
"astro": "^7.2.9",
"sharp": "^0.35.4"
},
"devDependencies": {
"@astrojs/check": "^0.9.10",
"@eslint/js": "^10.0.1",
"@fontsource/geist": "^5.3.0",
"@fontsource/instrument-serif": "^5.3.0",
"chrome-launcher": "^1.2.1",
"eslint": "^10.9.1",
"eslint-plugin-astro": "^3.1.0",
"eslint-plugin-jsx-a11y": "^6.10.2",
"globals": "^17.11.0",
"lighthouse": "^13.4.1",
"prettier": "^3.9.6",
"prettier-plugin-astro": "^0.14.1",
"satori": "^0.33.4",
"typescript": "^6.0.3",
"typescript-eslint": "^8.68.0"
},
"overrides": {
"eslint-plugin-jsx-a11y": {
"eslint": "$eslint"
}
}
}