Skip to content

Commit 32de782

Browse files
committed
[docs] define reviewed tutorial capture contract
Signed-off-by: Viwat Vchirawongkwin <viwat.v@chula.ac.th>
1 parent 4df378f commit 32de782

2 files changed

Lines changed: 45 additions & 2 deletions

File tree

‎AGENTS.md‎

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -68,8 +68,11 @@ CHANGELOG.md CITATION.cff AGENTS.md CLAUDE.md .gitignore .gitmodules
6868
```
6969

7070
Put specifications and decisions under `docs/`, scripts under `tools/` or
71-
`firmware/scripts/`, and examples under `examples/`. Keep screenshots, signing
72-
material, builds, assistant state, and local notes out of Git.
71+
`firmware/scripts/`, and examples under `examples/`. Keep raw or unreviewed
72+
screenshots, signing material, builds, assistant state, and local notes out of
73+
Git. A deliberately reviewed, provenance-recorded image used by the public
74+
website may live below `tools/web/public/`; its raw capture must remain in an
75+
ignored workspace.
7376

7477
## Naming
7578

‎docs/specifications/website.md‎

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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+
345385
Firmware claims MUST derive from the same build-selected release descriptor as
346386
the home and `/flash` routes. Stable profile explanations MUST keep the exact
347387
release order `esp32-4mb`, `esp32-s3-n16r8`,

0 commit comments

Comments
 (0)