@@ -342,6 +342,46 @@ render without client JavaScript and provide:
342342 and
343343- previous/next navigation plus a return to ` /learn ` .
344344
345+ Every tutorial route MUST also contain at least one purposeful instructional
346+ visual. A visual may be a privacy-reviewed app capture, an exact-board
347+ photograph, or an authored diagram when that form best explains the lesson; a
348+ decorative repetition of the same workspace does not satisfy this requirement.
349+ The initial app-workflow lessons (` setup ` , ` first-program ` , ` files ` ,
350+ ` github-import ` , ` blocks ` , and ` examples ` ) MUST use physical-tablet captures of
351+ the reviewed app surface. Hardware lessons MUST prefer actual board imagery for
352+ physical identity and wiring, and MAY pair it with a physical-tablet capture
353+ only when the app state adds distinct instructional evidence.
354+
355+ Each published app capture MUST:
356+
357+ - be a static, same-origin, content-versioned asset with explicit pixel
358+ dimensions and a recorded SHA-256 digest;
359+ - retain a local provenance record naming the physical device model, operating
360+ system, app version and build, capture date, depicted state, and source raw
361+ capture without publishing the raw workspace;
362+ - use a semantic figure, a useful alternative description, and a visible
363+ caption that accurately identifies the physical device and depicted state;
364+ - be privacy-reviewed for board identifiers, custom labels, notifications,
365+ accounts, private repositories, tokens, unpublished code, and unrelated
366+ system chrome;
367+ - remove only unrelated system bars or empty framing through deterministic
368+ crop, resize, orientation, and metadata-stripping operations; and
369+ - leave every app pixel truthful: no retouching, generative fill, fabricated
370+ state, or removal of an in-app warning, error, or identity.
371+
372+ Debug, integration-test, simulator, emulator, and golden-renderer frames MUST
373+ NOT be presented as physical-device captures. A debug or integration-test
374+ label disqualifies the frame from public tutorial use even when the underlying
375+ UI otherwise matches production. Simulator, emulator, or golden images MAY be
376+ used only when their caption names that provenance and the lesson does not
377+ claim physical-device evidence. Tutorial instructions and stop conditions MUST
378+ remain complete when images are unavailable or cannot be seen.
379+
380+ Raw capture workspaces remain ignored and outside the website package. Only a
381+ separately reviewed derivative and its non-sensitive provenance record MAY be
382+ committed below ` tools/web/public/ ` ; publication MUST NOT add a runtime
383+ third-party image request.
384+
345385Firmware claims MUST derive from the same build-selected release descriptor as
346386the home and ` /flash ` routes. Stable profile explanations MUST keep the exact
347387release order ` esp32-4mb ` , ` esp32-s3-n16r8 ` ,
0 commit comments