Add source linter, negative test fixtures, and fallback guidance
- scripts/lint.py: reject raw rectangles, absolute coordinates, hue-budget and callout/group/formula-order violations at the source level - tests/invalid/ + tests/lint-invalid/: negative fixtures proving the package and linter reject bad input; test.sh now runs both directions - references/fallback.md: degraded path when no LaTeX is available - tests/group-callout.tex: exercise \stgroup and \stcallout - agents/openai.yaml: agent config - Docs and .sty updated to match
This commit is contained in:
@@ -65,3 +65,9 @@ One tensor role keeps one hue for the whole figure — that is what `\stsetrole`
|
||||
gathered, resharded or regrouped view of the same data keeps the *same* role color; a new
|
||||
hue means a new object. Derived tensors may reuse their parent's family rather than
|
||||
spending a hue (`V → O → Y` in the MHA example are all violet).
|
||||
|
||||
A `\stgroup` outline follows the same rule, because a group *is* a regrouped view: give it
|
||||
the role of the objects it wraps — the three-sheet `q` stack and the outline that names it
|
||||
as one composite are the same object, and a new hue there would claim a new tensor exists.
|
||||
Only when the members genuinely differ in role does the group take `role=neutral`; that is
|
||||
also the honest signal that the box is naming an arrangement rather than an object.
|
||||
|
||||
Reference in New Issue
Block a user