@fugood/bricks-project 2.25.0-beta.13 → 2.25.0-beta.15
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/package.json +2 -2
- package/package.json.bak +2 -2
- package/skills/bricks-ctor/SKILL.md +3 -1
- package/skills/{bricks-design/references → bricks-ctor/rules}/verification-toolchain.md +12 -55
- package/skills/bricks-design/SKILL.md +11 -23
- package/skills/bricks-design/references/design-critique.md +2 -2
- package/skills/bricks-design/references/translating-inputs.md +1 -1
- package/skills/bricks-ux/references/accessibility.md +1 -1
- package/tools/deploy.ts +4 -0
package/package.json
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fugood/bricks-project",
|
|
3
|
-
"version": "2.25.0-beta.
|
|
3
|
+
"version": "2.25.0-beta.15",
|
|
4
4
|
"main": "index.ts",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"typecheck": "tsc --noEmit",
|
|
7
7
|
"build": "bun scripts/build.js"
|
|
8
8
|
},
|
|
9
9
|
"dependencies": {
|
|
10
|
-
"@fugood/bricks-cli": "^2.25.0-beta.
|
|
10
|
+
"@fugood/bricks-cli": "^2.25.0-beta.15",
|
|
11
11
|
"@huggingface/gguf": "^0.3.2",
|
|
12
12
|
"@iarna/toml": "^3.0.0",
|
|
13
13
|
"@modelcontextprotocol/sdk": "^1.15.0",
|
package/package.json.bak
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fugood/bricks-ctor",
|
|
3
|
-
"version": "2.25.0-beta.
|
|
3
|
+
"version": "2.25.0-beta.15",
|
|
4
4
|
"main": "index.ts",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"typecheck": "tsc --noEmit",
|
|
7
7
|
"build": "bun scripts/build.js"
|
|
8
8
|
},
|
|
9
9
|
"dependencies": {
|
|
10
|
-
"@fugood/bricks-cli": "^2.25.0-beta.
|
|
10
|
+
"@fugood/bricks-cli": "^2.25.0-beta.15",
|
|
11
11
|
"@huggingface/gguf": "^0.3.2",
|
|
12
12
|
"@iarna/toml": "^3.0.0",
|
|
13
13
|
"@modelcontextprotocol/sdk": "^1.15.0",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: bricks-ctor
|
|
3
|
-
description: Advanced BRICKS configuration knowledge. Covers Standby Transition, Automations (E2E testing), Data Calculation (JS sandbox libraries), Local Sync, Remote Data Bank, Media Flow,
|
|
3
|
+
description: Advanced BRICKS configuration knowledge. Covers Standby Transition, Automations (E2E testing), Data Calculation (JS sandbox libraries), Local Sync, Remote Data Bank, Media Flow, Buttress (remote inference), and the verification toolchain (compile/preview MCP, on-device DevTools, definition-of-done gate). Triggers on multi-device sync, cloud data, media assets, AI offloading, E2E testing, canvas transitions, or verifying project work before declaring done.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# BRICKS Ctor - Advanced Features
|
|
@@ -20,6 +20,7 @@ This skill covers advanced BRICKS features not in the main project instructions.
|
|
|
20
20
|
| [Remote Data Bank](rules/remote-data-bank.md) | Cloud data sync and API access |
|
|
21
21
|
| [Media Flow](rules/media-flow.md) | Media asset management |
|
|
22
22
|
| [Buttress](rules/buttress.md) | Remote inference for AI generators |
|
|
23
|
+
| [Verification Toolchain](rules/verification-toolchain.md) | Definition of done, compile/preview MCP, on-device DevTools, Path 1/2/3 decision rule |
|
|
23
24
|
|
|
24
25
|
## Quick Reference
|
|
25
26
|
|
|
@@ -30,3 +31,4 @@ This skill covers advanced BRICKS features not in the main project instructions.
|
|
|
30
31
|
- **AI offloading**: See [Buttress](rules/buttress.md) for GPU server delegation
|
|
31
32
|
- **E2E testing**: See [Automations](rules/automations.md) for test automation
|
|
32
33
|
- **Enter animations**: See [Standby Transition](rules/standby-transition.md) for canvas transitions
|
|
34
|
+
- **Verification before done**: See [Verification Toolchain](rules/verification-toolchain.md) for the definition-of-done gate and Path 1/2/3 decision rule
|
|
@@ -4,11 +4,11 @@ Three runtime targets, one decision rule. Verify against the cheapest path that
|
|
|
4
4
|
|
|
5
5
|
## Definition of done — the hard gate
|
|
6
6
|
|
|
7
|
-
Before the agent is allowed to claim
|
|
7
|
+
Before the agent is allowed to claim work is complete, **all** of the following must be true:
|
|
8
8
|
|
|
9
9
|
1. **Compile clean.** Latest source passes `compile` with no errors.
|
|
10
10
|
2. **Every Canvas screenshot captured.** A rendered screenshot of every Canvas in the deliverable, captured via `preview` MCP (`responseImage: true`) at the target hardware resolution and orientation. Canvases gated behind events are reached via Automation runs (`testId` / `testTitleLike` with `brick_press` / `wait_until_canvas_change` cases). Single-Canvas Subspaces still require a captured screenshot.
|
|
11
|
-
3. **Every screenshot reviewed by the agent.** The agent must read each captured screenshot back through the host's image-reading capability — saving the file is not the same as seeing it. The model that
|
|
11
|
+
3. **Every screenshot reviewed by the agent.** The agent must read each captured screenshot back through the host's image-reading capability — saving the file is not the same as seeing it. The model that produced the Canvas must also have seen the rendered result, or the verification gate has not passed.
|
|
12
12
|
4. **Reference comparison report.** If the user supplied any reference material (Figma / website / HTML / screenshot / PDF / brand book / competitor), produce a short delta report per Canvas:
|
|
13
13
|
- What matches the reference.
|
|
14
14
|
- What intentionally diverges, and why (deployment constraint, BRICKS-runtime semantic, system commitment).
|
|
@@ -60,17 +60,7 @@ Useful flags:
|
|
|
60
60
|
- `--no-cdp` — disable CDP server (rare; default is to expose it).
|
|
61
61
|
- `--clear-cache` — reset cached state between runs.
|
|
62
62
|
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
Same CDP commands as the device path; just point them at the local preview.
|
|
66
|
-
|
|
67
|
-
```
|
|
68
|
-
bricks devtools screenshot -a localhost -p 19852 -o local.png
|
|
69
|
-
bricks devtools brick tree -a localhost -p 19852 -d 5
|
|
70
|
-
bricks devtools input tap 480 270 -a localhost -p 19852
|
|
71
|
-
bricks devtools storage data-bank list -a localhost -p 19852
|
|
72
|
-
bricks devtools runtime eval -a localhost -p 19852 "document.title"
|
|
73
|
-
```
|
|
63
|
+
For ad-hoc CDP inspection against this local preview, connect any CDP client to `localhost:19852` — Chrome DevTools front-end works directly. For an agent-friendly CLI over CDP (screenshot, brick tree/query, input emulation, storage reads, runtime eval, network capture), the `bricks-cli` skill documents the `bricks devtools` command surface — read that skill if it is installed in this workspace. If it is not installed, run `bricks --help` and `bricks devtools --help`; the CLI's own help output is authoritative.
|
|
74
64
|
|
|
75
65
|
### Project Automations
|
|
76
66
|
|
|
@@ -100,7 +90,7 @@ Ask the user to:
|
|
|
100
90
|
|
|
101
91
|
1. On the device, open **Settings** → advanced settings.
|
|
102
92
|
2. Toggle **Chrome DevTools** on. The device starts a DevTools server on the local network on port `19851` (auto-increments if taken).
|
|
103
|
-
3. Confirm **Enable LAN Discovery** is on (default) so
|
|
93
|
+
3. Confirm **Enable LAN Discovery** is on (default) so the device is discoverable.
|
|
104
94
|
4. Note the device passcode if displayed.
|
|
105
95
|
|
|
106
96
|
Requires BRICKS Foundation **≥ 2.24** for CDP commands.
|
|
@@ -110,49 +100,16 @@ Requires BRICKS Foundation **≥ 2.24** for CDP commands.
|
|
|
110
100
|
| Endpoint | URL shape | Use |
|
|
111
101
|
|---|---|---|
|
|
112
102
|
| Web UI | `http://<ip>:19851` | DevTools landing in a browser |
|
|
113
|
-
| CDP | `devtools
|
|
114
|
-
| MCP | `http://<ip>:19851/mcp` |
|
|
103
|
+
| CDP | `http://<ip>:19851/devtools-frontend/inspector.html?ws=<ip>:19851/ws/<passcode>` | Chrome DevTools front-end |
|
|
104
|
+
| MCP | `http://<ip>:19851/mcp` | MCP endpoint (Bearer-token auth with passcode) |
|
|
115
105
|
| MCP SSE | `http://<ip>:19851/sse` | Same, SSE transport |
|
|
106
|
+
| Info | `http://<ip>:19851/devtools/info` | Device / server metadata |
|
|
116
107
|
|
|
117
|
-
###
|
|
118
|
-
|
|
119
|
-
```
|
|
120
|
-
bricks devtools scan
|
|
121
|
-
bricks devtools open <ip>
|
|
122
|
-
bricks devtools open <ip> --info # show full URLs incl. CDP/MCP/passcode
|
|
123
|
-
```
|
|
124
|
-
|
|
125
|
-
### CDP commands against the device
|
|
108
|
+
### Driving the device
|
|
126
109
|
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
```
|
|
130
|
-
bricks devtools screenshot -a <ip> --passcode <pc> -o on-device.png
|
|
131
|
-
bricks devtools brick tree -a <ip> --passcode <pc> -d 5
|
|
132
|
-
bricks devtools brick query "[short-id='abc']" -a <ip> --passcode <pc>
|
|
133
|
-
bricks devtools brick attributes <nodeId> -a <ip> --passcode <pc>
|
|
134
|
-
bricks devtools brick box-model <nodeId> -a <ip> --passcode <pc>
|
|
135
|
-
bricks devtools input tap 540 960 -a <ip> --passcode <pc>
|
|
136
|
-
bricks devtools input type "test user" -a <ip> --passcode <pc>
|
|
137
|
-
bricks devtools input key Enter -a <ip> --passcode <pc>
|
|
138
|
-
bricks devtools storage data-bank list -a <ip> --passcode <pc>
|
|
139
|
-
bricks devtools storage data-bank get <name> <store> -a <ip> --passcode <pc>
|
|
140
|
-
bricks devtools storage system persist -a <ip> --passcode <pc>
|
|
141
|
-
bricks devtools storage generator-cache -a <ip> --passcode <pc>
|
|
142
|
-
bricks devtools network list -a <ip> --passcode <pc>
|
|
143
|
-
bricks devtools network get <requestId> -a <ip> --passcode <pc>
|
|
144
|
-
bricks devtools runtime eval "Object.keys(window)" -a <ip> --passcode <pc>
|
|
145
|
-
```
|
|
146
|
-
|
|
147
|
-
### Bridge the device into Claude Code via MCP
|
|
148
|
-
|
|
149
|
-
For interactive agent-driven verification, bridge the device's MCP endpoint as a local STDIO server with mcporter:
|
|
150
|
-
|
|
151
|
-
```
|
|
152
|
-
npx mcporter --url http://<ip>:19851/mcp --header "Authorization: Bearer <passcode>"
|
|
153
|
-
```
|
|
110
|
+
Once DevTools is on, ask the user how they want to drive the verification — Chrome DevTools front-end, an MCP client they already run, or screenshot export from their own tooling — and follow their lead. Capture every Canvas screenshot through whichever path the user picks; the verification gate is about the evidence, not the tool.
|
|
154
111
|
|
|
155
|
-
|
|
112
|
+
For agent-driven CDP/MCP work against the device (`bricks devtools …` with `-a <ip> --passcode <pc>`, plus bridging the device MCP endpoint into an MCP client), the same `bricks-cli` skill referenced in Path 1 covers the on-device case — read it if installed. If not installed, run `bricks --help` and `bricks devtools --help` for the authoritative command listing.
|
|
156
113
|
|
|
157
114
|
### Real-device side-effects warning
|
|
158
115
|
|
|
@@ -160,7 +117,7 @@ Real devices fire real peripherals. Payment terminals charge. MQTT broadcasts on
|
|
|
160
117
|
|
|
161
118
|
## Path 3 — Remote debugging via BRICKS Controller (off-LAN)
|
|
162
119
|
|
|
163
|
-
Out of scope for the
|
|
120
|
+
Out of scope for the standard verification loop. It exists for ops scenarios where the device is not on the same network. If the user asks for it, point them at the BRICKS Controller documentation rather than attempting it as part of verification.
|
|
164
121
|
|
|
165
122
|
## Decision rule
|
|
166
123
|
|
|
@@ -199,7 +156,7 @@ if user is off-LAN
|
|
|
199
156
|
- Re-mount test: cause the host to re-bind the Subspace; confirm internal state resets.
|
|
200
157
|
|
|
201
158
|
### Generator-driven reactive
|
|
202
|
-
- Path 1: drive the source
|
|
159
|
+
- Path 1: drive the source by writing to Data from the runtime (whatever CDP path the user prefers); observe Brick re-render.
|
|
203
160
|
- Throttle / firehose tests: write 100 updates rapidly; confirm the canvas doesn't choke (frame budget intact).
|
|
204
161
|
- Disconnect: simulate source disconnect; confirm UI surfaces stale state, not blank.
|
|
205
162
|
- Threshold transitions: cross every Switch boundary; confirm visual reaction.
|
|
@@ -22,9 +22,9 @@ description: >-
|
|
|
22
22
|
design intent, or non-display deliverables (CLI, server, tooling).
|
|
23
23
|
Encodes architecture truths, performance and complexity guardrails,
|
|
24
24
|
input-translation rules, visual languages library, Direction
|
|
25
|
-
Advisor for vague briefs, Media Flow protocol for branded work
|
|
26
|
-
|
|
27
|
-
|
|
25
|
+
Advisor for vague briefs, Media Flow protocol for branded work.
|
|
26
|
+
Verification toolchain (compile/preview MCP, on-device DevTools,
|
|
27
|
+
Path 1/2/3) lives in the bricks-ctor skill.
|
|
28
28
|
---
|
|
29
29
|
|
|
30
30
|
# BRICKS Design
|
|
@@ -128,33 +128,21 @@ Ship a one-paragraph trade-off note alongside so the user can pick or blend with
|
|
|
128
128
|
|
|
129
129
|
**Definition of done — non-negotiable.** Before declaring a design complete, every one of the following must be true:
|
|
130
130
|
|
|
131
|
-
1. The
|
|
132
|
-
2.
|
|
133
|
-
3.
|
|
134
|
-
4. If the user supplied any reference material (Figma / website / HTML / screenshot / PDF / brand book),
|
|
131
|
+
1. The source compiles cleanly.
|
|
132
|
+
2. Every Canvas in the deliverable has a rendered screenshot at the target hardware resolution and orientation. Cover every reachable state — Canvases gated behind events get reached by running an Automation.
|
|
133
|
+
3. The agent has **viewed** each of those screenshots back through the host's image-reading capability — not just saved them. The model that designed the Canvas must also have seen the rendered result.
|
|
134
|
+
4. If the user supplied any reference material (Figma / website / HTML / screenshot / PDF / brand book), a side-by-side visual comparison has been done between each Canvas screenshot and the corresponding reference, with a short delta report listing:
|
|
135
135
|
- What matches.
|
|
136
136
|
- What intentionally diverges, and why (deployment constraint, system commitment, BRICKS-runtime limitation).
|
|
137
137
|
- What unintentionally diverges, and how you will fix it.
|
|
138
|
-
5. The verification path appropriate to the deployment has executed
|
|
138
|
+
5. The verification path appropriate to the deployment has executed (Path 1 Electron preview by default; Path 2 on-device DevTools when the deployment depends on real hardware, payment, identity capture, peripherals, or LocalSync).
|
|
139
139
|
6. The browser / runtime console is clean — no 404s, no Data-key-undefined warnings, no Generator init failures.
|
|
140
140
|
|
|
141
141
|
A single hero-Canvas screenshot is **not** done. A "looks roughly like the reference" handwave is **not** done. A claim of done without screenshots in evidence is **not** done. If you have not produced and reviewed a screenshot of every Canvas, you are still mid-iteration and must say so explicitly to the user.
|
|
142
142
|
|
|
143
|
-
**
|
|
143
|
+
**Self-critique pass before declaring done** — every Canvas scored on 5 dimensions (system commitment / visual hierarchy / craft / functional fit / originality), anti-slop top-10 swept clean, < 8 scores either fixed or surfaced as accepted trade-offs. See [`references/design-critique.md`](references/design-critique.md). Verification proves it runs; critique proves it's good — both required.
|
|
144
144
|
|
|
145
|
-
|
|
146
|
-
2. `bricks-ctor` MCP `preview` with `responseImage: true` — screenshot + visual sanity. Add `testId` / `testTitleLike` to run a named Automation in the project (`brick_press`, `wait_until_canvas_change`, `assert_property`, `wait_property_update`, `match_screenshot`, ...).
|
|
147
|
-
3. Repeat step 2 for every Canvas. Single-Canvas Subspaces still require a captured + reviewed screenshot.
|
|
148
|
-
4. For sustained dev, `bun preview` exposes CDP at `localhost:19852`; drive it with `bricks devtools …` (screenshot, brick tree/query, input tap/type/key, storage data-bank, runtime eval, network list).
|
|
149
|
-
5. **Self-critique pass before declaring done** — every Canvas scored on 5 dimensions (system commitment / visual hierarchy / craft / functional fit / originality), anti-slop top-10 swept clean, < 8 scores either fixed or surfaced as accepted trade-offs. See [`references/design-critique.md`](references/design-critique.md). Verification proves it runs; critique proves it's good — both required.
|
|
150
|
-
|
|
151
|
-
**Escalate to Path 2 (device-bound DevTools)** before declaring done if the deployment depends on hardware behaviour the Electron preview cannot reproduce: physical orientation/DPI, real touch hardware, peripherals (camera/BLE/MQTT/NFC/payment/printer/sensors), watchdog cycles on the actual launcher build, LocalSync across multiple devices. **Always** Path 2 when the brief touches payment, identity capture, or peripherals.
|
|
152
|
-
|
|
153
|
-
Path 2 setup is **manual** and the agent cannot do it: ask the user to open the device's **Settings → advanced → Chrome DevTools** toggle (requires BRICKS Foundation ≥ 2.24). The device starts CDP on `:19851`. Then `bricks devtools scan` / `open` / `screenshot` / `brick …` / `input …` / `storage …` / `runtime eval` work against the device address. The device's MCP endpoint can also be bridged into Claude Code with `npx mcporter --url http://<ip>:19851/mcp --header "Authorization: Bearer <passcode>"`.
|
|
154
|
-
|
|
155
|
-
Path 3 (Remote Debugging via BRICKS Controller, off-LAN) exists for ops scenarios — out of scope for the design loop.
|
|
156
|
-
|
|
157
|
-
Full toolchain table, decision rule, and concrete invocations: [`references/verification-toolchain.md`](references/verification-toolchain.md).
|
|
145
|
+
For the toolchain itself — `compile` / `preview` MCP usage, `bun preview` flags, Project Automation cases, on-device DevTools setup, the Path 1/2/3 decision rule, and per-deployment-shape verification checklists — see the `bricks-ctor` skill's `rules/verification-toolchain.md`.
|
|
158
146
|
|
|
159
147
|
## Boundaries
|
|
160
148
|
|
|
@@ -181,7 +169,7 @@ Interaction / flow / journey / affordance / feedback / recovery / accessibility
|
|
|
181
169
|
| Design a presentation / pitch deck / intro / explainer / slideshow (visual rhythm + hero continuity) | [`references/presentation-and-slideshow.md`](references/presentation-and-slideshow.md) |
|
|
182
170
|
| Offer variations / pick what becomes a Data knob | [`references/variations-and-tweaks.md`](references/variations-and-tweaks.md) |
|
|
183
171
|
| Self-critique on the visual dimensions | [`references/design-critique.md`](references/design-critique.md) |
|
|
184
|
-
| Verify a design before shipping |
|
|
172
|
+
| Verify a design before shipping | `bricks-ctor/rules/verification-toolchain.md` (companion skill) |
|
|
185
173
|
| Propose visual directions for a vague brief | [`references/when-the-brief-is-vague.md`](references/when-the-brief-is-vague.md) |
|
|
186
174
|
| Acquire and bind brand assets | [`references/when-the-brief-is-branded.md`](references/when-the-brief-is-branded.md) |
|
|
187
175
|
| Compose a button so taps land where intended | `bricks-ux/references/pressable-composition.md` (companion skill) |
|
|
@@ -2,13 +2,13 @@
|
|
|
2
2
|
|
|
3
3
|
The Verification gate proves the design *runs*. Critique proves it's *good*. Both are required before declaring done; neither substitutes for the other.
|
|
4
4
|
|
|
5
|
-
This file gives the agent a structured self-review pass: five scoring dimensions with concrete rubrics, a per-deployment-shape focus chart, and an extended anti-slop top-10 with BRICKS-specific failure modes. Run the pass after the screenshots are captured and viewed (per
|
|
5
|
+
This file gives the agent a structured self-review pass: five scoring dimensions with concrete rubrics, a per-deployment-shape focus chart, and an extended anti-slop top-10 with BRICKS-specific failure modes. Run the pass after the screenshots are captured and viewed (per `bricks-ctor/rules/verification-toolchain.md`), and before declaring done to the user.
|
|
6
6
|
|
|
7
7
|
The point isn't to be self-critical for its own sake. The point is to catch the specific failure modes that consistently ship if not actively rooted out.
|
|
8
8
|
|
|
9
9
|
## How to run the pass
|
|
10
10
|
|
|
11
|
-
1. **Verify** — compile clean + screenshot every Canvas + read screenshots back (see `verification-toolchain.md`).
|
|
11
|
+
1. **Verify** — compile clean + screenshot every Canvas + read screenshots back (see `bricks-ctor/rules/verification-toolchain.md`).
|
|
12
12
|
2. **Score** — for each Canvas, rate the five dimensions below 0–10 against the rubrics.
|
|
13
13
|
3. **Anti-slop sweep** — walk the top-10 list; flag every match.
|
|
14
14
|
4. **Fix anything < 8** and any anti-slop matches; re-verify.
|
|
@@ -149,4 +149,4 @@ Score everything against 5-10-2-8 before binding. If the source's brand binaries
|
|
|
149
149
|
3. **Lift binaries to Media Flow.** Don't translate with embedded data; it pollutes the Subspace.
|
|
150
150
|
4. **Walk per-Canvas.** For each Canvas, translate elements via the table above. Make explicit pressable decisions for every interactive element.
|
|
151
151
|
5. **Wire the state machine.** Event chains for transitions; shared-Brick ids for chrome continuity; Standby for entrances.
|
|
152
|
-
6. **Verify against the actual deployment** (see
|
|
152
|
+
6. **Verify against the actual deployment** (see `bricks-ctor/rules/verification-toolchain.md`). The translation is done when it runs on the target hardware, not when it looks right in the Electron preview.
|
|
@@ -156,7 +156,7 @@ Universal-access also covers cognitive accessibility — users who are tired, di
|
|
|
156
156
|
|
|
157
157
|
1. **Confirm the audience and conditions** as part of Priority #0. Reduced-motor users? Multilingual? Outdoor sun? Night-shift fatigue? Each shifts which disciplines weight strongest.
|
|
158
158
|
2. **Apply the seven disciplines as a baseline.** Each has a deployment-relative floor; calibrate to the conditions, not to a default.
|
|
159
|
-
3. **Verify at the deployment.** Path 2 (on-device DevTools, see `bricks-
|
|
159
|
+
3. **Verify at the deployment.** Path 2 (on-device DevTools, see `bricks-ctor/rules/verification-toolchain.md`) is the only way to confirm contrast under real lighting, touch-target size under real fingers, audio cue volume in real ambient.
|
|
160
160
|
4. **Surface gaps in trade-off notes.** A deployment that opts out of one of the seven (e.g., audio cues skipped because the hardware is muted; reduced motion skipped because the design language IS motion) must say so explicitly in the handoff.
|
|
161
161
|
|
|
162
162
|
A design that passes visual critique but fails accessibility floors is not done. Accessibility critique runs in parallel.
|
package/tools/deploy.ts
CHANGED
|
@@ -3,6 +3,10 @@ import { parseArgs } from 'util'
|
|
|
3
3
|
import { sh } from './_shell'
|
|
4
4
|
import { buildCommitArgs } from './_git-author'
|
|
5
5
|
|
|
6
|
+
if (!process.env.BRICKS_RELEASE_SIGN) {
|
|
7
|
+
process.env.BRICKS_RELEASE_SIGN = 'CTOR'
|
|
8
|
+
}
|
|
9
|
+
|
|
6
10
|
const cwd = process.cwd()
|
|
7
11
|
|
|
8
12
|
const exists = async (p: string) => {
|