@aura3d/cli 4.1.2 → 4.1.3
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/data/root-export-dispositions.json +39 -0
- package/dist/commands/evidence/index.d.ts +3 -0
- package/dist/commands/evidence/index.d.ts.map +1 -0
- package/dist/commands/evidence/index.js +12 -0
- package/dist/commands/evidence/index.js.map +1 -0
- package/dist/commands/evidence/judge.d.ts +18 -0
- package/dist/commands/evidence/judge.d.ts.map +1 -0
- package/dist/commands/evidence/judge.js +194 -0
- package/dist/commands/evidence/judge.js.map +1 -0
- package/dist/commands/evidence/judgeLib.d.ts +84 -0
- package/dist/commands/evidence/judgeLib.d.ts.map +1 -0
- package/dist/commands/evidence/judgeLib.js +178 -0
- package/dist/commands/evidence/judgeLib.js.map +1 -0
- package/dist/commands/registry.d.ts +1 -0
- package/dist/commands/registry.d.ts.map +1 -1
- package/dist/commands/registry.js +1 -0
- package/dist/commands/registry.js.map +1 -1
- package/dist/look/capture.d.ts +15 -7
- package/dist/look/capture.d.ts.map +1 -1
- package/dist/look/capture.js +85 -13
- package/dist/look/capture.js.map +1 -1
- package/package.json +5 -5
- package/skills/aura3d-art-direction/SKILL.md +5 -1
- package/skills/aura3d-assets/SKILL.md +9 -15
- package/skills/aura3d-assets/references/preview-under-look.md +16 -0
- package/skills/aura3d-browser-game/SKILL.md +18 -22
- package/skills/aura3d-browser-game/references/genre-gates.md +11 -0
- package/skills/aura3d-browser-game/references/genre-looks.md +48 -0
- package/skills/aura3d-character-animation/SKILL.md +8 -2
- package/skills/aura3d-core/SKILL.md +17 -15
- package/skills/aura3d-evidence-review/SKILL.md +11 -2
- package/skills/aura3d-materials-environments/SKILL.md +25 -19
- package/skills/aura3d-performance/SKILL.md +19 -11
- package/skills/aura3d-retexture/SKILL.md +4 -3
- package/skills/aura3d-scene-authoring/SKILL.md +15 -15
- package/skills/aura3d-threejs-migration/SKILL.md +10 -2
- package/skills/llms.txt +104 -216
- package/skills/meshy-cli/SKILL.md +33 -32
- package/skills/meshy-cli/references/asset-tooling.md +23 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../../../packages/aura3d-cli/src/commands/registry.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,kBAAkB,CAAC;AAC1B,OAAO,kBAAkB,CAAC;AAC1B,OAAO,kBAAkB,CAAC;AAC1B,OAAO,kBAAkB,CAAC;AAC1B,OAAO,kBAAkB,CAAC;AAC1B,OAAO,kBAAkB,CAAC;AAC1B,OAAO,kBAAkB,CAAC;AAC1B,OAAO,kBAAkB,CAAC;AAC1B,OAAO,kBAAkB,CAAC;AAC1B,OAAO,kBAAkB,CAAC;AAC1B,OAAO,kBAAkB,CAAC;AAC1B,OAAO,kBAAkB,CAAC;AAC1B,OAAO,kBAAkB,CAAC;AAC1B,OAAO,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../../../packages/aura3d-cli/src/commands/registry.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,kBAAkB,CAAC;AAC1B,OAAO,kBAAkB,CAAC;AAC1B,OAAO,kBAAkB,CAAC;AAC1B,OAAO,kBAAkB,CAAC;AAC1B,OAAO,kBAAkB,CAAC;AAC1B,OAAO,kBAAkB,CAAC;AAC1B,OAAO,kBAAkB,CAAC;AAC1B,OAAO,kBAAkB,CAAC;AAC1B,OAAO,kBAAkB,CAAC;AAC1B,OAAO,kBAAkB,CAAC;AAC1B,OAAO,kBAAkB,CAAC;AAC1B,OAAO,kBAAkB,CAAC;AAC1B,OAAO,kBAAkB,CAAC;AAC1B,OAAO,mBAAmB,CAAC;AAC3B,OAAO,qBAAqB,CAAC;AAE7B,OAAO,EAAE,CAAC"}
|
package/dist/look/capture.d.ts
CHANGED
|
@@ -2,16 +2,22 @@
|
|
|
2
2
|
* PRD-13 T2.16 — `look capture` command body.
|
|
3
3
|
* Registered as C-39 command `look capture` from commands/prd13/index.ts.
|
|
4
4
|
*
|
|
5
|
-
* `--runner
|
|
5
|
+
* `--runner remote` (default): browsers never run on the developer machine.
|
|
6
|
+
* With `--remote-cmd "<cmd>"` (or env AURA3D_REMOTE_RUNNER) the command is
|
|
7
|
+
* executed as `<cmd> <capture-request.json> <outDir>` and must leave the
|
|
8
|
+
* screenshots in outDir. With `--from <dir>` the PNGs and reports a remote run
|
|
9
|
+
* already produced are collected. With neither, a `capture-request.json` is
|
|
10
|
+
* written next to the output and the exact remote-run steps are printed (exit 2:
|
|
11
|
+
* the capture is pending, not done).
|
|
12
|
+
*
|
|
13
|
+
* `--runner local` (explicit opt-in, prints a warning): runs the project's
|
|
14
|
+
* Playwright screenshot spec directly on this machine.
|
|
15
|
+
*
|
|
16
|
+
* `--runner gh-actions` (legacy, prints a warning): dispatches the project's own
|
|
6
17
|
* `.github/workflows/aura3d-lookdev.yml` through the user's `gh` CLI auth —
|
|
7
18
|
* the command never sets or reads tokens itself — polls the run, then
|
|
8
19
|
* downloads the `lookdev` artifact into `--out` (default dist/lookdev/<round>).
|
|
9
20
|
*
|
|
10
|
-
* `--runner local`: runs the project's Playwright screenshot spec directly.
|
|
11
|
-
* Available only where the local environment permits it (Playwright package
|
|
12
|
-
* installed); the lane-wide remote-execution rule makes gh-actions the
|
|
13
|
-
* supported path on Devin/CI machines.
|
|
14
|
-
*
|
|
15
21
|
* Always exits 0 on a completed capture even when lint findings exist —
|
|
16
22
|
* lint.json is evidence, not a gate (the judge consumes it).
|
|
17
23
|
*/
|
|
@@ -32,7 +38,9 @@ export interface LookCaptureDeps {
|
|
|
32
38
|
}
|
|
33
39
|
export interface LookCaptureResult {
|
|
34
40
|
readonly ok: boolean;
|
|
35
|
-
readonly runner: "gh-actions" | "local";
|
|
41
|
+
readonly runner: "remote" | "gh-actions" | "local";
|
|
42
|
+
readonly pending?: boolean;
|
|
43
|
+
readonly requestPath?: string;
|
|
36
44
|
readonly outDir: string;
|
|
37
45
|
readonly pngs: readonly string[];
|
|
38
46
|
readonly appliedLookPath?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"capture.d.ts","sourceRoot":"","sources":["../../../../../packages/aura3d-cli/src/look/capture.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"capture.d.ts","sourceRoot":"","sources":["../../../../../packages/aura3d-cli/src/look/capture.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAKH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAE/D,MAAM,WAAW,eAAe;IAC9B,6EAA6E;IAC7E,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,KAAK;QAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IACzJ,kEAAkE;IAClE,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,sDAAsD;IACtD,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,mDAAmD;IACnD,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;CACvC;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,MAAM,EAAE,QAAQ,GAAG,YAAY,GAAG,OAAO,CAAC;IACnD,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;IACjC,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AA8BD,wDAAwD;AACxD,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAOpD;AAqDD,wBAAsB,cAAc,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,EAAE,EAAE,EAAE;IAAE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,MAAM,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,EAAE,IAAI,GAAE,eAAoB,GAAG,OAAO,CAAC,MAAM,CAAC,CAgKzL;AAED,eAAO,MAAM,kBAAkB,EAAE,cAMhC,CAAC"}
|
package/dist/look/capture.js
CHANGED
|
@@ -2,16 +2,22 @@
|
|
|
2
2
|
* PRD-13 T2.16 — `look capture` command body.
|
|
3
3
|
* Registered as C-39 command `look capture` from commands/prd13/index.ts.
|
|
4
4
|
*
|
|
5
|
-
* `--runner
|
|
5
|
+
* `--runner remote` (default): browsers never run on the developer machine.
|
|
6
|
+
* With `--remote-cmd "<cmd>"` (or env AURA3D_REMOTE_RUNNER) the command is
|
|
7
|
+
* executed as `<cmd> <capture-request.json> <outDir>` and must leave the
|
|
8
|
+
* screenshots in outDir. With `--from <dir>` the PNGs and reports a remote run
|
|
9
|
+
* already produced are collected. With neither, a `capture-request.json` is
|
|
10
|
+
* written next to the output and the exact remote-run steps are printed (exit 2:
|
|
11
|
+
* the capture is pending, not done).
|
|
12
|
+
*
|
|
13
|
+
* `--runner local` (explicit opt-in, prints a warning): runs the project's
|
|
14
|
+
* Playwright screenshot spec directly on this machine.
|
|
15
|
+
*
|
|
16
|
+
* `--runner gh-actions` (legacy, prints a warning): dispatches the project's own
|
|
6
17
|
* `.github/workflows/aura3d-lookdev.yml` through the user's `gh` CLI auth —
|
|
7
18
|
* the command never sets or reads tokens itself — polls the run, then
|
|
8
19
|
* downloads the `lookdev` artifact into `--out` (default dist/lookdev/<round>).
|
|
9
20
|
*
|
|
10
|
-
* `--runner local`: runs the project's Playwright screenshot spec directly.
|
|
11
|
-
* Available only where the local environment permits it (Playwright package
|
|
12
|
-
* installed); the lane-wide remote-execution rule makes gh-actions the
|
|
13
|
-
* supported path on Devin/CI machines.
|
|
14
|
-
*
|
|
15
21
|
* Always exits 0 on a completed capture even when lint findings exist —
|
|
16
22
|
* lint.json is evidence, not a gate (the judge consumes it).
|
|
17
23
|
*/
|
|
@@ -112,11 +118,15 @@ function emitLookReports(outDir) {
|
|
|
112
118
|
export async function runLookCapture(argv, io, deps = {}) {
|
|
113
119
|
const { flags, switches } = parseArgs(argv);
|
|
114
120
|
const asJson = switches.has("json");
|
|
115
|
-
const runner = flags.get("runner") ?? "
|
|
116
|
-
if (runner !== "gh-actions" && runner !== "local") {
|
|
117
|
-
io.stderr(`unknown --runner "${runner}"; use gh-actions
|
|
121
|
+
const runner = flags.get("runner") ?? "remote";
|
|
122
|
+
if (runner !== "remote" && runner !== "gh-actions" && runner !== "local") {
|
|
123
|
+
io.stderr(`unknown --runner "${runner}"; use remote (default), local or gh-actions`);
|
|
118
124
|
return 2;
|
|
119
125
|
}
|
|
126
|
+
if (runner === "local")
|
|
127
|
+
io.stderr("warning: --runner local runs a real browser on this machine; prefer --runner remote (see docs/agents/verification.md).");
|
|
128
|
+
if (runner === "gh-actions")
|
|
129
|
+
io.stderr("warning: --runner gh-actions is a legacy option; prefer --runner remote (see docs/agents/verification.md).");
|
|
120
130
|
const exec = deps.exec ?? defaultExec;
|
|
121
131
|
const sleepBuffer = new Int32Array(new SharedArrayBuffer(4));
|
|
122
132
|
const sleep = deps.sleep ?? ((ms) => Atomics.wait(sleepBuffer, 0, 0, ms));
|
|
@@ -143,10 +153,72 @@ export async function runLookCapture(argv, io, deps = {}) {
|
|
|
143
153
|
// Spec: exit 0 on completed capture even when lint has errors.
|
|
144
154
|
return result.ok ? 0 : 2;
|
|
145
155
|
};
|
|
156
|
+
if (runner === "remote") {
|
|
157
|
+
const requestPath = join(outDir, "capture-request.json");
|
|
158
|
+
const request = {
|
|
159
|
+
schema: "aura3d.look-capture-request/1",
|
|
160
|
+
route: flags.get("route") ?? "/",
|
|
161
|
+
shots: shots ?? "opening,mid,action",
|
|
162
|
+
viewports: viewports ?? "desktop,mobile",
|
|
163
|
+
spec: "tests/screenshot.spec.ts",
|
|
164
|
+
env: { A3D_LOOKDEV_SHOTS: shots ?? "opening,mid,action", A3D_LOOKDEV_VIEWPORTS: viewports ?? "desktop,mobile" },
|
|
165
|
+
reportsDir: "tests/reports",
|
|
166
|
+
expectedFiles: ["*.png", "screenshot.json", "appliedLook.json", "lint.json"]
|
|
167
|
+
};
|
|
168
|
+
writeFileSync(requestPath, `${JSON.stringify(request, null, 2)}\n`);
|
|
169
|
+
const fromDir = flags.get("from");
|
|
170
|
+
if (fromDir !== undefined) {
|
|
171
|
+
const src = resolve(io.cwd, fromDir);
|
|
172
|
+
if (!existsSync(src))
|
|
173
|
+
return finish({ ok: false, runner, outDir, pngs: [], lintErrors: 0, requestPath, error: `--from directory not found: ${src}` });
|
|
174
|
+
for (const file of collectPngs(src)) {
|
|
175
|
+
const dest = join(outDir, file.slice(src.length + 1));
|
|
176
|
+
mkdirSync(join(dest, ".."), { recursive: true });
|
|
177
|
+
writeFileSync(dest, readFileSync(file));
|
|
178
|
+
}
|
|
179
|
+
for (const json of ["screenshot.json", "appliedLook.json", "lint.json"]) {
|
|
180
|
+
const file = join(src, json);
|
|
181
|
+
if (existsSync(file))
|
|
182
|
+
writeFileSync(join(outDir, json), readFileSync(file));
|
|
183
|
+
}
|
|
184
|
+
const pngs = collectPngs(outDir);
|
|
185
|
+
if (pngs.length === 0)
|
|
186
|
+
return finish({ ok: false, runner, outDir, pngs, lintErrors: 0, requestPath, error: `no .png captures found under ${src}` });
|
|
187
|
+
return finish({ ok: true, runner, outDir, pngs, requestPath, ...emitLookReports(outDir) });
|
|
188
|
+
}
|
|
189
|
+
const remoteCmd = (flags.get("remote-cmd") ?? process.env.AURA3D_REMOTE_RUNNER ?? "").trim();
|
|
190
|
+
if (remoteCmd !== "") {
|
|
191
|
+
const [command, ...rest] = remoteCmd.split(/\s+/);
|
|
192
|
+
const result = exec(command, [...rest, requestPath, outDir], io.cwd);
|
|
193
|
+
if (result.status !== 0)
|
|
194
|
+
return finish({ ok: false, runner, outDir, pngs: [], lintErrors: 0, requestPath, error: `remote runner failed: ${result.stderr || result.stdout}` });
|
|
195
|
+
const pngs = collectPngs(outDir);
|
|
196
|
+
if (pngs.length === 0)
|
|
197
|
+
return finish({ ok: false, runner, outDir, pngs, lintErrors: 0, requestPath, error: "remote runner finished but left no .png captures in the output directory" });
|
|
198
|
+
return finish({ ok: true, runner, outDir, pngs, requestPath, ...emitLookReports(outDir) });
|
|
199
|
+
}
|
|
200
|
+
const steps = [
|
|
201
|
+
`No remote runner is configured, so no browser was started here. Capture request written: ${requestPath}`,
|
|
202
|
+
"Run the capture on a remote machine (never a local browser on your dev machine):",
|
|
203
|
+
" 1. On the remote runner, in this project, run: A3D_LOOKDEV_SHOTS=<shots> A3D_LOOKDEV_VIEWPORTS=<viewports> pnpm exec playwright test tests/screenshot.spec.ts --workers=1",
|
|
204
|
+
" (AuraOne repos: tools/remote-acr/run.sh with a SPECS entry for tests/screenshot.spec.ts.)",
|
|
205
|
+
" 2. Copy tests/reports back to this machine.",
|
|
206
|
+
` 3. Finish with: aura3d look capture --runner remote --from <copied reports dir> --out ${outDir}`,
|
|
207
|
+
"Or configure a runner once: --remote-cmd \"<command>\" or AURA3D_REMOTE_RUNNER (called as <command> <capture-request.json> <outDir>)."
|
|
208
|
+
];
|
|
209
|
+
if (asJson) {
|
|
210
|
+
io.stdout(JSON.stringify({ ok: false, pending: true, runner, outDir, pngs: [], lintErrors: 0, requestPath, error: "no remote runner configured; capture request written", steps }, null, 2));
|
|
211
|
+
}
|
|
212
|
+
else {
|
|
213
|
+
for (const line of steps)
|
|
214
|
+
io.stderr(line);
|
|
215
|
+
}
|
|
216
|
+
return 2;
|
|
217
|
+
}
|
|
146
218
|
if (runner === "local") {
|
|
147
219
|
const playwrightBin = join(io.cwd, "node_modules", ".bin", process.platform === "win32" ? "playwright.cmd" : "playwright");
|
|
148
220
|
if (!existsSync(playwrightBin) && exec("pnpm", ["exec", "playwright", "--version"], io.cwd).status !== 0) {
|
|
149
|
-
return finish({ ok: false, runner, outDir, pngs: [], lintErrors: 0, error: "local runner unavailable: playwright is not installed in this project (use --runner
|
|
221
|
+
return finish({ ok: false, runner, outDir, pngs: [], lintErrors: 0, error: "local runner unavailable: playwright is not installed in this project (use --runner remote)" });
|
|
150
222
|
}
|
|
151
223
|
// shots/viewports reach the spec through the same env vars the
|
|
152
224
|
// aura3d-lookdev.yml workflow sets (A3D_LOOKDEV_SHOTS/VIEWPORTS); exec()
|
|
@@ -173,7 +245,7 @@ export async function runLookCapture(argv, io, deps = {}) {
|
|
|
173
245
|
}
|
|
174
246
|
// --runner gh-actions: use the user's gh auth; never set/read tokens.
|
|
175
247
|
if (exec("gh", ["--version"], io.cwd).status !== 0) {
|
|
176
|
-
return finish({ ok: false, runner, outDir, pngs: [], lintErrors: 0, error: "gh CLI not found; install https://cli.github.com or use --runner
|
|
248
|
+
return finish({ ok: false, runner, outDir, pngs: [], lintErrors: 0, error: "gh CLI not found; install https://cli.github.com or use --runner remote" });
|
|
177
249
|
}
|
|
178
250
|
const workflowFile = resolve(io.cwd, ".github/workflows/aura3d-lookdev.yml");
|
|
179
251
|
if (!existsSync(workflowFile)) {
|
|
@@ -222,8 +294,8 @@ export async function runLookCapture(argv, io, deps = {}) {
|
|
|
222
294
|
export const lookCaptureCommand = {
|
|
223
295
|
name: "look capture",
|
|
224
296
|
owner: "prd13",
|
|
225
|
-
summary: "Capture look-dev screenshots
|
|
226
|
-
usage: "aura3d look capture [--route /] [--shots opening,mid,action] [--viewports desktop,mobile] [--runner gh-actions
|
|
297
|
+
summary: "Capture look-dev screenshots on a remote runner (default), or explicitly via local Playwright or the legacy gh-actions workflow",
|
|
298
|
+
usage: "aura3d look capture [--route /] [--shots opening,mid,action] [--viewports desktop,mobile] [--runner remote|local|gh-actions] [--remote-cmd <cmd>] [--from <reports-dir>] [--out dist/lookdev/<n>] [--json]",
|
|
227
299
|
run: (argv, io) => runLookCapture(argv, io)
|
|
228
300
|
};
|
|
229
301
|
//# sourceMappingURL=capture.js.map
|
package/dist/look/capture.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"capture.js","sourceRoot":"","sources":["../../../../../packages/aura3d-cli/src/look/capture.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"capture.js","sourceRoot":"","sources":["../../../../../packages/aura3d-cli/src/look/capture.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aura3d/cli",
|
|
3
|
-
"version": "4.1.
|
|
3
|
+
"version": "4.1.3",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"bin": {
|
|
6
6
|
"aura3d": "dist/cli.js",
|
|
@@ -28,10 +28,10 @@
|
|
|
28
28
|
"types": "./dist/index.d.ts",
|
|
29
29
|
"dependencies": {
|
|
30
30
|
"typescript": "^5.8.3",
|
|
31
|
-
"@aura3d/asset-index": "4.1.
|
|
32
|
-
"@aura3d/
|
|
33
|
-
"
|
|
34
|
-
"
|
|
31
|
+
"@aura3d/asset-index": "4.1.3",
|
|
32
|
+
"@aura3d/audio": "4.1.3",
|
|
33
|
+
"create-aura3d": "4.1.3",
|
|
34
|
+
"@aura3d/rendering": "4.1.3"
|
|
35
35
|
},
|
|
36
36
|
"description": "Bring real GLB/glTF assets into Aura3D browser apps with typed references, provenance, catalog search, validation, screenshots, and deploy checks.",
|
|
37
37
|
"keywords": [
|
|
@@ -48,7 +48,7 @@ description: Sets the visual target and runs the look-dev loop for any Aura3D sc
|
|
|
48
48
|
|
|
49
49
|
Run until every rubric category scores >= 7, or 6 rounds, or 2 rounds with no gain:
|
|
50
50
|
|
|
51
|
-
1. Capture: `aura3d look capture --route / --shots opening,mid,action --viewports desktop,mobile
|
|
51
|
+
1. Capture opening, mid and action frames at desktop and mobile. In the Aura3D repository and on AuraOne machines (no GitHub Actions, no local Playwright) run the route's screenshot spec on the remote runner: `RUN_ID=look-1 SPECS="tests/browser/<route-look>.spec.ts" tools/remote-acr/run.sh`, then read the PNGs from `tests/reports/remote-acr/look-1/artifacts/`. In your own project: `aura3d look capture --route / --shots opening,mid,action --viewports desktop,mobile --runner gh-actions|local` (`gh-actions` is the CLI default and needs the template's `aura3d-lookdev` workflow plus `gh`; `local` needs Playwright installed). Use only the path your environment allows.
|
|
52
52
|
2. Judge: open each PNG and fill `look-judgement.json` against `references/quality-bar.md`; validate with `aura3d look judge --validate look-judgement.json`. Read `aura3d look lint` plus `app.diagnostics().look`.
|
|
53
53
|
3. Change the single highest-leverage thing: lint codes first, then the lowest category. One change per round.
|
|
54
54
|
4. Repeat. Record remaining gaps with their lint code or engine limitation — never paint over a gap with fake geometry.
|
|
@@ -74,6 +74,10 @@ Hard checklist (all must hold before claiming done):
|
|
|
74
74
|
- Label `prototype` when the loop could not run (no capture runner available): say which step failed.
|
|
75
75
|
- A self-judgement is not a pass of the quality bar; only a panel round passes it. Report medians and the weakest category.
|
|
76
76
|
|
|
77
|
+
## Default-look facts
|
|
78
|
+
|
|
79
|
+
No environment authored means the built-in neutral floor (4.1.2 published builds also log `ENV_FETCH_FAILED` for `/aura-environments/neutral.manifest.json`); the legacy post chain makes frames with bloom or vignette 25% to 40% darker (`POSTPROCESS_V2_UNMIGRATED`, known issue); exposure runs brighter than three.js for the same intensities. Judge the captured frame with the same post settings, and read the full list in `docs/agents/art-direction.md` section 3.
|
|
80
|
+
|
|
77
81
|
## References
|
|
78
82
|
|
|
79
83
|
- `references/look-recipes.md` — the 13 genre rows (look, camera, key, palette, atmosphere, post, VFX, assets, reference frames)
|
|
@@ -7,7 +7,11 @@ description: Finds, admits, inspects, validates, and types GLB/glTF, texture, en
|
|
|
7
7
|
|
|
8
8
|
The CLI is the only path from a file or catalog hit to a typed `assets.<key>`.
|
|
9
9
|
Shared rules (catalog-first, typed assets, paid generation) are in
|
|
10
|
-
[boundaries](../aura3d-core/references/boundaries.md).
|
|
10
|
+
[boundaries](../aura3d-core/references/boundaries.md). The canonical end-to-end
|
|
11
|
+
page (catalog, Meshy, optimise, isolated admission, rig and clips, production
|
|
12
|
+
rules, budgets) is
|
|
13
|
+
[asset workflow](https://github.com/auraoneai/aura3d/blob/main/docs/agents/asset-workflow.md);
|
|
14
|
+
this skill is the short procedure.
|
|
11
15
|
|
|
12
16
|
## Look target
|
|
13
17
|
|
|
@@ -92,18 +96,7 @@ lighting you evaluate materials and silhouettes against.
|
|
|
92
96
|
rigged characters (`skins > 0`) with `handle.setAnimation({ clip, loop: true,
|
|
93
97
|
speed })`, and never build stick-figure humans or box cars from primitives.
|
|
94
98
|
|
|
95
|
-
|
|
96
|
-
import { createAuraApp, groundedRenderedAssetPlacement, looks, model, scene } from "@aura3d/engine";
|
|
97
|
-
import { assets } from "./aura-assets";
|
|
98
|
-
|
|
99
|
-
const place = groundedRenderedAssetPlacement(assets.helmet, { targetMaxDimension: 1.2, floorY: 0 });
|
|
100
|
-
createAuraApp("#app", {
|
|
101
|
-
scene: scene()
|
|
102
|
-
.add(looks.preset("product-studio"))
|
|
103
|
-
.add(model(assets.helmet).position(...place.position).scale(place.scale)),
|
|
104
|
-
...looks.appOptions("product-studio")
|
|
105
|
-
});
|
|
106
|
-
```
|
|
99
|
+
Worked example: [preview under look](references/preview-under-look.md#grounded-placement-example).
|
|
107
100
|
|
|
108
101
|
8. Games and examples without a project manifest declare models with
|
|
109
102
|
`defineModelAssets` (same-origin URL, `sha256`, license; `?models=0` falls
|
|
@@ -135,8 +128,9 @@ lighting you evaluate materials and silhouettes against.
|
|
|
135
128
|
|
|
136
129
|
- Search returns no auto-pullable candidate, or every candidate fails the
|
|
137
130
|
reject list: stop, list the query, profile, and rejection reasons, and offer
|
|
138
|
-
two options: a user-supplied licensed file, or Meshy generation
|
|
139
|
-
`meshy-cli`, dry run
|
|
131
|
+
two options: a user-supplied licensed file, or Meshy generation from a text
|
|
132
|
+
prompt (load `meshy-cli`, dry run and an approved credit maximum first; never
|
|
133
|
+
from screenshots or frames of another game or product). Do not model the subject from primitives.
|
|
140
134
|
- Search prints a catalog fetch warning (for example an HTTP 404): report it
|
|
141
135
|
verbatim, label asset-dependent work `blocked`, and never treat fallback
|
|
142
136
|
deep-links as auto-pullable.
|
|
@@ -24,3 +24,19 @@ Evaluate candidates under the route's look preset.
|
|
|
24
24
|
4. Palette: the asset's dominant hue must sit inside the genre palette or be
|
|
25
25
|
the declared accent — clashing saturation reads as wrong-asset even when
|
|
26
26
|
the mesh is fine.
|
|
27
|
+
|
|
28
|
+
## Grounded placement example
|
|
29
|
+
|
|
30
|
+
```ts
|
|
31
|
+
import { createAuraApp, groundedRenderedAssetPlacement, looks, model, scene } from "@aura3d/engine";
|
|
32
|
+
import { assets } from "./aura-assets";
|
|
33
|
+
|
|
34
|
+
const place = groundedRenderedAssetPlacement(assets.helmet, { targetMaxDimension: 1.2, floorY: 0 });
|
|
35
|
+
createAuraApp("#app", {
|
|
36
|
+
scene: scene()
|
|
37
|
+
.add(looks.preset("product-studio"))
|
|
38
|
+
.add(model(assets.helmet).position(...place.position).scale(place.scale)),
|
|
39
|
+
...looks.appOptions("product-studio")
|
|
40
|
+
});
|
|
41
|
+
```
|
|
42
|
+
|
|
@@ -11,17 +11,19 @@ an objective and a progression loop in the browser AND looks like its genre.
|
|
|
11
11
|
Shared rules (claim labels, forbidden patterns, typed assets, benchmark mode)
|
|
12
12
|
are in [boundaries](../aura3d-core/references/boundaries.md).
|
|
13
13
|
|
|
14
|
-
##
|
|
14
|
+
## Start here
|
|
15
|
+
|
|
16
|
+
Read `docs/agents/build-a-game.md` (one page, type-checked sample) and
|
|
17
|
+
`docs/api/game-cheatsheet.md`. Build the route from the library shell
|
|
18
|
+
(`createGame` from `@aura3d/engine/game`, `createFixedStepLoop`,
|
|
19
|
+
`installQaHooks`, `defineModelAssets`, `installSafetyNet`); do not hand-roll a
|
|
20
|
+
HUD, touch layer, loop, QA hooks, synth or black-frame guard. Verify remotely
|
|
21
|
+
only (`tools/remote-acr/run.sh`): software WebGL2 is correctness and draw-call
|
|
22
|
+
evidence, never GPU performance evidence.
|
|
15
23
|
|
|
16
|
-
|
|
24
|
+
## Look target
|
|
17
25
|
|
|
18
|
-
|
|
19
|
-
| --- | --- | --- | --- |
|
|
20
|
-
| `mini-game` | `outdoor-day` | `follow` (side-on) fov 50 | saturated greens, sky blue, warm wood + coin gold; fog 0.0025; `daylight-outdoor` post; coin sparkle + land dust |
|
|
21
|
-
| `racing-starter` | `golden-hour` | `chase` fov 60 | warm asphalt, burnt orange, charcoal + headlight amber; low sun haze; `cinematic-film` post; brake glow |
|
|
22
|
-
| `falling-blocks-starter` | `neon-arcade` | `orthographic` (top-down) fov 45 | neon palette per piece colour, dark glossy board + accent rim; `neon-night` post; line-clear flash |
|
|
23
|
-
| `fighting-game` | `arena-fight` | `follow` (side-on) fov 45 | arena dark, rope colour, crowd shadow + spotlight rim; haze cone; `arena-fight` post; hit sparks |
|
|
24
|
-
| `character-controller` | `outdoor-day` | `shoulder` fov 55 | open world greens + cloth accent; fog to horizon; `daylight-outdoor` post |
|
|
26
|
+
Pick the genre's recipe row before adding props: [genre looks](references/genre-looks.md) (template, look id, camera, mood) and the full table in `../aura3d-art-direction/references/look-recipes.md`.
|
|
25
27
|
|
|
26
28
|
## Establish the contract
|
|
27
29
|
|
|
@@ -71,7 +73,8 @@ Genre → recipe row (full table: `../aura3d-art-direction/references/look-recip
|
|
|
71
73
|
`lights.studio()` / `lights.directional()` on top, pass `{ fogDensityScale: 0,
|
|
72
74
|
exposureEv: -0.1 }` to `looks.preset(...)` if fog whitewashes a fast route,
|
|
73
75
|
and never pin post-processing or the compiler off with a `qualityRebuild` flag
|
|
74
|
-
list (the engine defaults are right;
|
|
76
|
+
list (the engine defaults are right; `@aura3d/engine/game` already turns the
|
|
77
|
+
`game` lane on; install the safety net instead), and never
|
|
75
78
|
set `emissive: "#ffffff"` on instanced pool materials (`instanceColors`
|
|
76
79
|
multiply `u_baseColor`, not `u_emissiveColor`).
|
|
77
80
|
3. Mount typed 3D GLBs for every character, athlete, enemy, vehicle, weapon,
|
|
@@ -84,7 +87,7 @@ Genre → recipe row (full table: `../aura3d-art-direction/references/look-recip
|
|
|
84
87
|
(`idle`, `walk`, `run`, `attack`) for real pixel motion under the key shadow
|
|
85
88
|
instead of sliding rigid statues. Never build stick-figure humans or box cars
|
|
86
89
|
from primitives; ground `model()` actors (`minY = 0`) at `y + sy / 2` of
|
|
87
|
-
centered platforms; wind custom `
|
|
90
|
+
centered platforms; wind custom `geometry.custom` triangles CCW from `+Y`; and
|
|
88
91
|
run Meshy GLBs through `assets optimize --role` before admission and mount
|
|
89
92
|
them with a valid 64-char `sha256-...` `hash` (`defineModelAssets`).
|
|
90
93
|
4. Camera state drives `app.camera` every frame — size `html, body, #app, canvas`
|
|
@@ -102,16 +105,7 @@ Genre → recipe row (full table: `../aura3d-art-direction/references/look-recip
|
|
|
102
105
|
6. Reset without tearing down the scene: mutate runtime node handles
|
|
103
106
|
(`app.nodes.require(...)`) instead of calling `app.setScene()` on same-stage
|
|
104
107
|
(`stageId` / `worldId`) restarts so shadow and postprocess grade never drop.
|
|
105
|
-
7. Genre gates (plan for 60 seconds of meaningful play):
|
|
106
|
-
|
|
107
|
-
| Genre | Must have |
|
|
108
|
-
| --- | --- |
|
|
109
|
-
| racing | throttle, brake, steer, ordered checkpoints, lap or finish, penalty or timeout |
|
|
110
|
-
| platformer | move, jump, fall, collision matching visible ledges, collectibles, hazards, camera keeps player visible |
|
|
111
|
-
| falling blocks | move, rotate, soft + hard drop, lock, line clear, scoring, levels, game over |
|
|
112
|
-
| fighting | strikes/blocks, hit reactions, round + KO state, both fighters readable |
|
|
113
|
-
| character controller | walk/run/jump clips playing, camera shoulder follow, locomotion direction matches travel |
|
|
114
|
-
|
|
108
|
+
7. Genre gates (plan for 60 seconds of meaningful play): [genre gates](references/genre-gates.md).
|
|
115
109
|
8. `npx @aura3d/cli@latest assets validate --no-placeholders --require-license`
|
|
116
110
|
and `assets validate-game`; racing/platformer also
|
|
117
111
|
`assets certify-game-geometry --asset track --category racing`.
|
|
@@ -145,7 +139,9 @@ per round until every category reads 7+, 6 rounds, or 2 flat rounds.
|
|
|
145
139
|
- [Shared boundaries](../aura3d-core/references/boundaries.md)
|
|
146
140
|
- [Look recipes](../aura3d-art-direction/references/look-recipes.md)
|
|
147
141
|
- [Quality bar](../aura3d-art-direction/references/quality-bar.md)
|
|
148
|
-
-
|
|
142
|
+
- Build a game (one page, type-checked sample): `docs/agents/build-a-game.md`
|
|
143
|
+
- Game kit cheat sheet: `docs/api/game-cheatsheet.md`
|
|
144
|
+
- [Build a browser game guide](https://github.com/auraoneai/aura3d/blob/main/docs/guides/build-a-browser-game.md)
|
|
149
145
|
- [Game example standards](https://github.com/auraoneai/aura3d/blob/main/docs/agents/game-example-standards.md)
|
|
150
146
|
- [Game runtime API](https://github.com/auraoneai/aura3d/blob/main/docs/api/game-runtime.md)
|
|
151
147
|
- [Genre looks in the frame](references/genre-looks.md)
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
# Genre gates
|
|
2
|
+
|
|
3
|
+
Plan for 60 seconds of meaningful play.
|
|
4
|
+
|
|
5
|
+
| Genre | Must have |
|
|
6
|
+
| --- | --- |
|
|
7
|
+
| racing | throttle, brake, steer, ordered checkpoints, lap or finish, penalty or timeout |
|
|
8
|
+
| platformer | move, jump, fall, collision matching visible ledges, collectibles, hazards, camera keeps player visible |
|
|
9
|
+
| falling blocks | move, rotate, soft + hard drop, lock, line clear, scoring, levels, game over |
|
|
10
|
+
| fighting | strikes/blocks, hit reactions, round + KO state, both fighters readable |
|
|
11
|
+
| character controller | walk/run/jump clips playing, camera shoulder follow, locomotion direction matches travel |
|
|
@@ -50,3 +50,51 @@ overlay reads as a bug).
|
|
|
50
50
|
- fighting: drama lives in the dark crowd and the spot's hard edge.
|
|
51
51
|
- blocks: rhythm is the palette — every piece hue distinct at a glance.
|
|
52
52
|
- character: the silhouette is the gameplay; rim keeps it readable.
|
|
53
|
+
|
|
54
|
+
## Recipe rows by template
|
|
55
|
+
|
|
56
|
+
### mini-game
|
|
57
|
+
|
|
58
|
+
- Look preset: `outdoor-day`
|
|
59
|
+
- Camera: `follow` (side-on) fov 50
|
|
60
|
+
- Palette and mood: saturated greens, sky blue, warm wood + coin gold
|
|
61
|
+
- Atmosphere and finish: fog 0.0025; `daylight-outdoor` post; coin sparkle + land dust
|
|
62
|
+
|
|
63
|
+
### racing-starter
|
|
64
|
+
|
|
65
|
+
- Look preset: `golden-hour`
|
|
66
|
+
- Camera: `chase` fov 60
|
|
67
|
+
- Palette and mood: warm asphalt, burnt orange, charcoal + headlight amber
|
|
68
|
+
- Atmosphere and finish: low sun haze; `cinematic-film` post; brake glow
|
|
69
|
+
|
|
70
|
+
### falling-blocks-starter
|
|
71
|
+
|
|
72
|
+
- Look preset: `neon-arcade`
|
|
73
|
+
- Camera: `orthographic` (top-down) fov 45
|
|
74
|
+
- Palette and mood: neon palette per piece colour, dark glossy board + accent rim
|
|
75
|
+
- Atmosphere and finish: `neon-night` post; line-clear flash
|
|
76
|
+
|
|
77
|
+
### fighting-game
|
|
78
|
+
|
|
79
|
+
- Look preset: `arena-fight`
|
|
80
|
+
- Camera: `follow` (side-on) fov 45
|
|
81
|
+
- Palette and mood: arena dark, rope colour, crowd shadow + spotlight rim
|
|
82
|
+
- Atmosphere and finish: haze cone; `arena-fight` post; hit sparks
|
|
83
|
+
|
|
84
|
+
### character-controller
|
|
85
|
+
|
|
86
|
+
- Look preset: `outdoor-day`
|
|
87
|
+
- Camera: `shoulder` fov 55
|
|
88
|
+
- Palette and mood: open world greens + cloth accent
|
|
89
|
+
- Atmosphere and finish: fog to horizon; `daylight-outdoor` post
|
|
90
|
+
|
|
91
|
+
|
|
92
|
+
## Frame composition rules
|
|
93
|
+
|
|
94
|
+
- Read the key light direction from the long shadows on the ground, not from the sky.
|
|
95
|
+
- Keep the horizon in the upper third so fog has room to fade the distance.
|
|
96
|
+
- Hold the palette to the recipe row; accent colours go on pickups and hazards only.
|
|
97
|
+
- Separate the hero silhouette from the backdrop in luminance, not only in hue.
|
|
98
|
+
- In dark scenes add a rim on the hero edge so the shape survives the grade.
|
|
99
|
+
- Warm key against cool shadow keeps the mood readable at small sizes.
|
|
100
|
+
- Let bloom touch emissive accents only; a bloomed backdrop flattens the contrast.
|
|
@@ -23,6 +23,11 @@ in flat light can vanish inside night-city shadow pools or golden-hour haze.
|
|
|
23
23
|
`assets validate-animation`, and `assets assemble-character` flags it prints.
|
|
24
24
|
2. Read `src/aura-assets.ts` and `aura.assets.json`. The character must be a
|
|
25
25
|
typed key with role `character`. No key: load `aura3d-assets` first.
|
|
26
|
+
Need a new humanoid? Generate it from a text prompt (a-pose or t-pose
|
|
27
|
+
preview, remesh to about 10,000 triangles, rig, animate, `assets
|
|
28
|
+
merge-clips`) as laid out in section 5 of the
|
|
29
|
+
[asset workflow](https://github.com/auraoneai/aura3d/blob/main/docs/agents/asset-workflow.md);
|
|
30
|
+
rigging adds walk and run, each extra `animate` task is one action.
|
|
26
31
|
3. Inspect the rig and record the real names:
|
|
27
32
|
|
|
28
33
|
```bash
|
|
@@ -103,8 +108,9 @@ in flat light can vanish inside night-city shadow pools or golden-hour haze.
|
|
|
103
108
|
map; do not claim arbitrary-rig retargeting or full-body IK.
|
|
104
109
|
8. Normal mode: `npm run build` locally. Browser proof (deterministic capture
|
|
105
110
|
times inside the clip's keyframe range, stable camera, character-region
|
|
106
|
-
pixel delta, backend and fallback named) runs
|
|
107
|
-
`
|
|
111
|
+
pixel delta, backend and fallback named) runs on a remote runner
|
|
112
|
+
(`tools/remote-acr/run.sh` in the monorepo, or the template's `npm run test`
|
|
113
|
+
on a remote worker), never local Playwright. Hand results to `aura3d-evidence-review`.
|
|
108
114
|
|
|
109
115
|
## Stop and report
|
|
110
116
|
|
|
@@ -48,22 +48,26 @@ without a look ships flat shading, void background and floating props.
|
|
|
48
48
|
});
|
|
49
49
|
```
|
|
50
50
|
|
|
51
|
-
3. Translate any three.js instinct with this table
|
|
51
|
+
3. Translate any three.js instinct with this table (every row compiles against
|
|
52
|
+
the engine types; the full table and the mistakes agents make are in
|
|
53
|
+
[agent-quickstart.md](https://github.com/auraoneai/aura3d/blob/main/docs/agents/agent-quickstart.md)):
|
|
52
54
|
|
|
53
55
|
| three.js habit | Aura3D |
|
|
54
56
|
| --- | --- |
|
|
55
|
-
| `
|
|
56
|
-
| `
|
|
57
|
-
| `PerspectiveCamera` | `camera.perspective(
|
|
58
|
-
| `AmbientLight` | `lights.hemisphere(...)` or the look
|
|
59
|
-
| `DirectionalLight
|
|
60
|
-
| `
|
|
61
|
-
| `
|
|
62
|
-
| `
|
|
63
|
-
| `
|
|
64
|
-
| `
|
|
65
|
-
| `AnimationMixer` | `
|
|
66
|
-
|
|
57
|
+
| `new Scene()` | `scene()`, then `.add(node)` |
|
|
58
|
+
| `GLTFLoader` + `Mesh` | `model(assets.x, { targetHeight })` |
|
|
59
|
+
| `PerspectiveCamera` | `scene({ camera: camera.perspective({ fov, position, target }) })` |
|
|
60
|
+
| `AmbientLight`/`HemisphereLight` | `lights.ambient(...)`/`lights.hemisphere(...)` or the look |
|
|
61
|
+
| `DirectionalLight` + `castShadow` | `lights.directional({ shadow: true })`; models cast by default |
|
|
62
|
+
| `FogExp2` | `effects.fog({ density })` |
|
|
63
|
+
| `EffectComposer` + bloom | `effects.bloom()` |
|
|
64
|
+
| `ShaderMaterial` | `material.custom({ glsl: { fragment }, uniforms: { uTime: { type: "f32", value: 0 } } })` |
|
|
65
|
+
| `InstancedMesh` | `instances.cone/box/sphere({ transforms, colors })` |
|
|
66
|
+
| `OrbitControls` | `interactions.orbit({ target: "<node name>" })` |
|
|
67
|
+
| `AnimationMixer` | `app.nodes.require(name).play(clip, { crossFade })` |
|
|
68
|
+
|
|
69
|
+
There is no root `output` or `world` namespace: tone mapping and grade come
|
|
70
|
+
from the look (`looks.appOptions`), environment from `environments.*`.
|
|
67
71
|
|
|
68
72
|
4. If the prompt names a real object, resolve it through the catalog before
|
|
69
73
|
writing model code (load `aura3d-assets`).
|
|
@@ -139,6 +143,4 @@ spec lives in `aura3d-art-direction`.
|
|
|
139
143
|
- [Known pitfalls](references/pitfalls.md)
|
|
140
144
|
- [Agent guide llms.txt](https://github.com/auraoneai/aura3d/blob/main/llms.txt)
|
|
141
145
|
- [Claims and boundaries](https://github.com/auraoneai/aura3d/blob/main/docs/agents/claims-and-boundaries.md)
|
|
142
|
-
- [No hackjob rules](https://github.com/auraoneai/aura3d/blob/main/docs/agents/no-hackjob-rules.md)
|
|
143
|
-
- [Anti-hallucination rules](https://github.com/auraoneai/aura3d/blob/main/docs/agents/anti-hallucination-rules.md)
|
|
144
146
|
- [Agent quickstart](https://aura3d.auraone.ai/docs/agent-quickstart.html)
|
|
@@ -38,8 +38,17 @@ benchmark exception are in [boundaries](../aura3d-core/references/boundaries.md)
|
|
|
38
38
|
```
|
|
39
39
|
|
|
40
40
|
Read `failures` in the JSON, not only the exit code. Keep the reports.
|
|
41
|
-
|
|
42
|
-
|
|
41
|
+
`check-deploy` covers assets only: hashed files present in `dist`, no
|
|
42
|
+
unreferenced files under the asset base path, derived files present, and
|
|
43
|
+
the asset validation (`--release` adds provenance and license gates). It
|
|
44
|
+
never proves a frame draws; `assertAuraScreenshotNotBlank` and
|
|
45
|
+
`assertAuraRouteReady` from `@aura3d/engine/devtools` do the pixel side
|
|
46
|
+
inside the browser gate.
|
|
47
|
+
3. Run the browser gate (`npm run test`, a Playwright suite) on a remote runner,
|
|
48
|
+
never in the local agent process, never as local Playwright, never through
|
|
49
|
+
GitHub Actions. In the Aura3D repository:
|
|
50
|
+
`RUN_ID=ev-1 SPECS="tests/browser/<route>.spec.ts" tools/remote-acr/run.sh`
|
|
51
|
+
(artifacts in `tests/reports/remote-acr/ev-1/artifacts/`). It writes route-health output and
|
|
43
52
|
`tests/reports/screenshot.png` plus pixel metrics. Capture desktop and
|
|
44
53
|
mobile viewports and retain the PNGs with hashes.
|
|
45
54
|
Games and simulations: drive the page through `installQaHooks`
|