Files
SuperTensor/references/checklist.md
T
dela 7b59c81d02 Add flow layout: cursor placement, left rail, declared band heights
Figures were positioned by hand-written offsets. Every gap was a magic
number tuned against the content that happened to be there, so a label
that grew two characters landed on the next tensor, and two stages
started from two different x shared no rail. Both failures compile
cleanly.

Replace it with a cursor. Objects placed with an empty coordinate
argument reserve their own width -- including a stack's offset sheets
and a bracket's overhang -- and gaps are declared once (\stgutter,
\strowgap, \stblockgap). The gap belongs to the object that follows it
and the first object in a band gets none, so every band starts flush on
a shared rail and gap=0pt states that two shards tile exactly.

\stlink makes a connector's label a flow object, which is what removes
the label-wider-than-its-arrow failure entirely. \stcol is a vertical
sub-flow for a split along the contracted axis. \strow declares its
height, so an object that does not fit -- or a column that does not add
up to what it declared, and is therefore drawn off-center -- becomes a
package warning, which build.sh fails on.

Absolute placement is unchanged: passing a coordinate takes the original
code path, and \sttrack folds a hand-placed node back into the cursor.

All three golden examples and the new tests/flow.tex are converted and
build clean.
2026-08-05 15:55:21 +08:00

65 lines
3.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Pre-delivery checklist
A clean `build.sh` proves only that TeX was happy. Nothing below is checked by the compiler.
Work through it against the rendered PNG. Any mandatory violation means redraw, not patch.
## 1. Math (before looking at the picture)
- [ ] Every shape recomputed independently from the source formula or code.
- [ ] Block multiplication, broadcasting, reductions and sharding algebra verified.
- [ ] Axis identities that the figure asserts actually hold in the numbers drawn
(`d = h·d_h`, `Σ_e n_e = T·k`, shards summing to the parent).
## 2. Semantics ledger
- [ ] Every discrete or overloaded symbol has one type, domain and range.
- [ ] Score, index and mask are three distinct objects in three distinct grammars.
- [ ] Producer-to-consumer chain closed: scores → indices → gather/mask → values.
- [ ] Shared selectors drawn once, with the reuse axis marked.
## 3. Geometry ledger
- [ ] Equal shapes have identical faces everywhere.
- [ ] `a×a` is square; every transpose physically swaps the face.
- [ ] Both occurrences of each contracted axis have the same edge length.
- [ ] Shards tile their parent exactly; concat reverses split; elisions use an ellipsis.
## 4. Full-size visual audit
Open the PNG at 100 %. Most of the first three items are automatic under the flow layout;
they still need looking at, because the cursor only guarantees that objects do not *push*
into each other, not that the figure reads correctly.
- [ ] No absolute coordinate that a `\strow`/`\stcol` could have expressed. Every remaining
hand-placed node is wrapped in `\sttrack`.
- [ ] `\sttopformula` called after the bands, so the formula is centered on the real figure.
- [ ] No forbidden intersection, tangency, clipping or occlusion — including stack offset
sheets, brackets, arrow labels and the meaning box.
- [ ] Every connector's white label underlay covers only its own connector.
- [ ] No connector crosses a box that is not its endpoint.
- [ ] Symbols and shapes sit on two flat lanes per row; stage headings share a left rail.
- [ ] Top zone compact (≤2 formula lines, no shape underbraces).
- [ ] Bottom box: one column, ≤3 rows, no overflow, no shrunken type.
- [ ] Signature outside the box, one line, names what the figure actually shows, not clipped
and not visually dominant.
- [ ] Structural support exact: known zeros unfilled, masks and diagonals exactly right.
## 5. Thumbnail audit
Open `*-thumb.png` (360 px).
- [ ] ≤4 active hue families per row plus gray; each role keeps one hue across stages.
- [ ] Base colors still muted, not saturated.
- [ ] Three visibly separated lightness levels where values vary; nothing is uniform pastel.
- [ ] Borders neutral, not tensor-colored.
- [ ] Dense texture reads as noise, not as stripes, checkerboard or a symmetric motif.
- [ ] The main structural claim of the figure is still legible at this size.
## 6. Delivery
- [ ] PNG preview shown.
- [ ] Short mechanism explanation in prose.
- [ ] `.tex` source and vector artifact (PDF/SVG) linked.
- [ ] Any degraded path stated explicitly — no CJK font, no `pdftocairo`, fallback renderer,
inferred shapes or conventions.