stylegallery 0.1.9 → 0.1.11

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/log.md CHANGED
@@ -1,5 +1,51 @@
1
1
  # StyleGallery Log
2
2
 
3
+ ## 2026-10-16
4
+
5
+ Understood as: release `stylegallery@0.1.11`, the first version published by the Trusted Publishing workflow from PR #57.
6
+
7
+ - Bumped the package version from `0.1.10` to `0.1.11`. The release carries PR #57: `.github/workflows/publish.yml` publishes the package when a GitHub Release is published, authenticating to npm with GitHub OIDC instead of a token, and the README Releasing section describes the flow. This version is published by creating the GitHub Release `v0.1.11`, not from a local machine.
8
+ - The package `files` list is unchanged. This release changes only the version, this log entry, the material registry for the log bytes, and the A2A and AG-UI caller inventories bound to `package.json` and the registry.
9
+
10
+ Consumer reference: not_applicable
11
+ Consumer reference reason: This change releases a package version and selects no consumer-reference profile or record.
12
+
13
+ Understood as: publish the npm package from GitHub Actions through npm Trusted Publishing (OIDC) instead of a local token.
14
+
15
+ - Added `.github/workflows/publish.yml`. A published GitHub Release runs it on a GitHub-hosted runner with `id-token: write`, Node 22, and npm 11.21.1 (Trusted Publishing needs npm 11.5.1 or later and Node 22.14 or later). It checks that the release tag is `v` plus the `package.json` version, runs the governance, lifecycle, reference-artifact, material, and Registrar checks and `npm pack --dry-run`, then runs `npm publish`. No npm token secret is used, and npm generates provenance for the public repository. Actions are pinned to the same commit SHAs as the other workflows.
16
+ - `README.md` gains a Releasing section: merge the version-bump pull request, create a GitHub Release tagged `v<version>`, and the workflow publishes. The workflow cannot publish until the `stylegallery` package names `changeroa/StyleGallery` and `publish.yml` as a Trusted Publisher on npmjs.com with `npm publish` allowed. That registration is not done yet, because a new entry expires unless its first publish succeeds within two days. Source: https://docs.npmjs.com/trusted-publishers, read 2026-10-16.
17
+
18
+ Consumer reference: not_applicable
19
+ Consumer reference reason: This change adds a release workflow and its documentation and selects no consumer-reference profile or record.
20
+
21
+ Understood as: release `stylegallery@0.1.10` with the Registrar, the Conservator, and the holy-grail and icon-frame doc fixes from PR #55.
22
+
23
+ - Bumped the package version from `0.1.9` to `0.1.10`. The release carries PR #55: `sg registrar` checks every claim record against 35 rules, `sg conservator` renders all 46 Layout pattern exhibits at 320, 768, and 1440 CSS pixels with negative controls, `holy-grail` stacks below 48rem, and the `icon-frame` sample has `role="img"`.
24
+ - The package `files` list already gained `scripts/registrar.mjs`, `scripts/conservator.mjs`, `scripts/conservator-exhibits.mjs`, `scripts/markdown-structure.mjs`, and `scripts/pattern-data.mjs` in PR #55. This release changes only the version, this log entry, the material registry for the log bytes, and the A2A and AG-UI caller inventories bound to `package.json` and the registry.
25
+
26
+ Consumer reference: not_applicable
27
+ Consumer reference reason: This change releases a package version and selects no consumer-reference profile or record.
28
+
29
+ Understood as: fix the two Layout doc defects the Conservator found, then measure both patterns without workarounds.
30
+
31
+ - `holy-grail` now has the breakpoint its `breakpointed` responsiveness promised. `scripts/pattern-data.mjs` adds `@media (max-width: 47.99rem) { .holy_grail { grid-template: "header" auto "left" auto "main" 1fr "right" auto "footer" auto / 1fr; } }`, so below 48rem the five regions stack in one column in DOM order and a 320px viewport no longer overflows by 96px. 1440px is unchanged. `scripts/generate-patterns.mjs` accepts an at-rule entry (`["@media ...", [[selector, declarations]], note]`), renders it as a nested block, counts its properties under Core Properties, and writes the change point and its note under Constraints And Change Points.
32
+ - The `icon-frame` sample adds `role="img"` to the labelled span, which clears axe-core's serious `aria-prohibited-attr`.
33
+ - The Conservator measures `holy-grail` at 320, 768, and 1440. Below 768px it checks the `holy-grail-stack` behavior: every region takes the full column width and follows the previous one with the 1rem gap, and the shared root-overflow check stays at 0. The negative control is unchanged (remove the base `grid-template`) and fails at 768 and 1440; at 320 the breakpoint overrides the removed declaration. The `icon-frame` exhibit imports the doc sample from `scripts/pattern-data.mjs` verbatim instead of adding its own `role`, and only a harness rule sizes the empty svg. Both `not_measured` entries and their claim-record notes (records 11 and 18) are removed. The package now ships `scripts/pattern-data.mjs` because the packaged exhibits import it.
34
+
35
+ Consumer reference: not_applicable
36
+ Consumer reference reason: This change corrects two Layout pattern docs and their render exhibits and selects no consumer-reference profile or record.
37
+
38
+ Understood as: rename the claim-record validator to the Registrar and the pattern render oracle to the Conservator, raise both to their widest useful coverage, and ship both as `sg` subcommands.
39
+
40
+ - Renamed `scripts/validate-claim-records.mjs` to `scripts/registrar.mjs` and `scripts/check-pattern-oracle.mjs` to `scripts/conservator.mjs`, with their tests, package scripts, and the `.github/workflows/registrar-conservator.yml` workflow (formerly `claim-records.yml`; jobs `registrar` and `conservator`). The names describe the gallery roles: the Registrar keeps the claim register and the provenance of each record, and the Conservator inspects each exhibit directly.
41
+ - The Registrar grows from 15 to 35 rules. New rules check every template field and the template itself, repeated fields, record numbering and title uniqueness, evidence-family names against `quality/evidence/families.md`, the consumer-reference shape, review dates that are in the future, out of order, or overdue (a warning), the source-revision format, a review date for claims bound to an external source, conflict refs that must name another record and be reciprocal, `sg://conservator/<pattern>` refs, `auto` verdicts that use human-outcome terms or lack the `validator` family, record-file indexing, and one record per Conservator exhibit. `sg registrar --stale` and `--unverified` list records that need review. Every rule has a failing fixture.
42
+ - The Conservator grows from one pattern to all 46 Layout patterns. Each exhibit renders the pattern doc's CSS block verbatim and measures that pattern's claimed geometry. Each negative control removes one declaration the doc lists as breaking and must fail on the named behavior. Claim Records 5 to 49 in `quality/claim-records/samples.md` bind each exhibit, and record 4 covers `scroll-body-shell`. Sample 4's evidence family `rendered` was not in the glossary and is now `validator`, `screenshot`, `accessibility`. The per-pattern records live in the existing samples file because the material corpus is sealed at 180 documents. The committed `tests/fixtures/pattern-oracle/` fixture is replaced by in-memory exhibits.
43
+ - Findings left for the Layout owner: the `icon-frame` doc sample puts `aria-label` on a span with no role, which axe-core reports as serious, so the exhibit adds `role="img"`. `holy-grail` is documented as breakpointed, but its CSS has no breakpoint and overflows a 320px viewport by 96px, so the exhibit is measured at 768 and 1440 only.
44
+ - Owner decision (2026-10-16): Playwright may be a required package dependency. `playwright` and `@axe-core/playwright` move to `dependencies` (about 22MB). Browsers are not downloaded at install. `sg conservator` reports `browser_missing` with the install command, accepts `--install-browser`, and accepts `--channel chrome` for an installed Chrome. The package now ships `scripts/registrar.mjs`, `scripts/conservator.mjs`, `scripts/conservator-exhibits.mjs`, and `scripts/markdown-structure.mjs`. In an installed package, evidence refs to repository-only files are warnings, not failures.
45
+
46
+ Consumer reference: not_applicable
47
+ Consumer reference reason: This change renames and extends repository quality checks and selects no consumer-reference profile or record.
48
+
3
49
  ## 2026-10-15
4
50
 
5
51
  Understood as: release `stylegallery@0.1.9` with the machine-verifiable claim records and the scroll-body-shell render oracle from PR #53.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "stylegallery",
3
- "version": "0.1.9",
3
+ "version": "0.1.11",
4
4
  "description": "A governed gallery of portable interface knowledge with knowledge CLIs, website compilation, and MCP servers.",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -256,6 +256,11 @@
256
256
  "scripts/compiler/mcp.mjs",
257
257
  "scripts/compiler/operations.mjs",
258
258
  "scripts/compiler/runtime.mjs",
259
+ "scripts/conservator-exhibits.mjs",
260
+ "scripts/conservator.mjs",
261
+ "scripts/markdown-structure.mjs",
262
+ "scripts/pattern-data.mjs",
263
+ "scripts/registrar.mjs",
259
264
  "scripts/sg-entry.mjs",
260
265
  "scripts/sg-material-mcp.mjs",
261
266
  "scripts/sg-material.mjs",
@@ -304,6 +309,10 @@
304
309
  "validate": "node scripts/validate-reference-artifacts.mjs --manifest consumer-reference/generated/manifest.json --json",
305
310
  "validate:component-state": "node scripts/validate-component-state.mjs --json && node scripts/generate-consumer-reference-evidence.mjs --check --json",
306
311
  "test:state-management": "node --test scripts/test-state-management-examples.mjs",
312
+ "registrar": "node scripts/registrar.mjs",
313
+ "test:registrar": "node scripts/test-registrar.mjs",
314
+ "conservator": "node scripts/conservator.mjs",
315
+ "test:conservator": "node scripts/test-conservator.mjs",
307
316
  "test:showcase": "node scripts/check-showcase.mjs",
308
317
  "test:showcase:self": "node scripts/test-check-showcase.mjs",
309
318
  "showcase:serve": "node scripts/serve-showcase.mjs",
@@ -312,14 +321,15 @@
312
321
  "sg:mcp:v1": "node scripts/sg-mcp.mjs"
313
322
  },
314
323
  "devDependencies": {
315
- "@axe-core/playwright": "4.12.1",
316
324
  "@playwright/test": "1.61.0",
317
325
  "ajv": "8.20.0",
318
326
  "ajv-formats": "3.0.1"
319
327
  },
320
328
  "dependencies": {
329
+ "@axe-core/playwright": "4.12.1",
321
330
  "@chenglou/pretext": "0.0.8",
322
331
  "@modelcontextprotocol/sdk": "1.29.0",
332
+ "playwright": "1.61.0",
323
333
  "style-dictionary": "5.5.0",
324
334
  "zod": "4.4.3"
325
335
  },
@@ -27,7 +27,7 @@ Use this pattern when you need to keep an icon aligned inside a fixed square slo
27
27
  ## HTML
28
28
 
29
29
  ```html
30
- <span class="icon_frame" aria-label="Calendar">
30
+ <span class="icon_frame" role="img" aria-label="Calendar">
31
31
  <svg aria-hidden="true" viewBox="0 0 24 24"></svg>
32
32
  </span>
33
33
  ```
@@ -66,6 +66,12 @@ Use this pattern when you need to place header, footer, sidebars, and main conte
66
66
  .holy_grail_footer {
67
67
  grid-area: footer;
68
68
  }
69
+
70
+ @media (max-width: 47.99rem) {
71
+ .holy_grail {
72
+ grid-template: "header" auto "left" auto "main" 1fr "right" auto "footer" auto / 1fr;
73
+ }
74
+ }
69
75
  ```
70
76
 
71
77
  ## Core Properties
@@ -79,6 +85,7 @@ Use this pattern when you need to place header, footer, sidebars, and main conte
79
85
  ## Constraints And Change Points
80
86
 
81
87
  - breakpointed responsiveness is part of the contract; change sizing values only when the new minimum, maximum, or wrap point is documented with the pattern.
88
+ - Change point `@media (max-width: 47.99rem)` overrides `grid-template` on `.holy_grail`. Below 48rem the two 12rem side columns no longer fit beside main content, so all five regions stack in one column in DOM order: header, left, main, right, footer. At 48rem and wider the three-column shell applies.
82
89
  - Keep the HTML class hooks and CSS selectors in one-to-one agreement.
83
90
 
84
91
  ## Scroll Ownership