Skip to content

docs(skills): surface already-implemented features and document quirks#1

Merged
jona62 merged 1 commit intojona62:mainfrom
mac-studio-meme:skill-fix-surface-existing-features
Apr 19, 2026
Merged

docs(skills): surface already-implemented features and document quirks#1
jona62 merged 1 commit intojona62:mainfrom
mac-studio-meme:skill-fix-surface-existing-features

Conversation

@jona62
Copy link
Copy Markdown
Owner

@jona62 jona62 commented Apr 19, 2026

The mac-language skill taught agents the syntax but hid a large chunk of the language's creative surface area. This rewrite surfaces features that are already implemented in the runtime but were previously absent from the skill, and flags the handful of quirks and broken features that agents need to know about to write working programs.

Added (all features verified to work against the runtime):

  • Positioned text via 'text: ... x: ... y: ... fontSize: ...'
  • fontWeight, textTransform, background, fontSize style properties
  • Hex colors with alpha (#RRGGBBAA)
  • save() function as an alternative to the => operator
  • Full save-path resolution rules (including MAC_OUTPUT_DIR override)
  • animate(frames, Duration(ms)) one-liner for programmatic GIFs
  • Loop-back transition (trailing --- for seamless loops)
  • Mixed-mode transitions (optional between any pair of frames)
  • grid spread syntax: 'grid 2x2 { ...arr }' and 'grid arr'
  • Nested grids
  • beside(a, b), stack(a, b), toGrid(arr, cols, rows)
  • Standalone posterize() and threshold() with parameter ranges
  • Effect parameter ranges for all parameterized effects
  • Effect ordering intuition (tonal -> color -> atmosphere -> artifacts)
  • 500-frame GIF cap, 15 fps transition rate, 4096x4096 dimension cap
  • Duration arithmetic (+, *)
  • A guiding 'Reach For More Than Basics' section up top

Documented quirks and broken features:

  • Style + block form requires explicit dimensions
  • animate() crashes on a raw number; requires Duration(ms)
  • tint() is broken (rejects strings, ignores alpha arg)
  • bounce easing is accepted by the parser but silently falls back to linear
  • noise() is non-deterministic across frames and causes GIF flicker
  • blur() is box blur, not gaussian (so docs claim is inaccurate)

Flagship 'Complete Example' at the end of the skill runs end-to-end against the runtime. Every other code sample in the skill was also verified to execute without error.

All 91 existing runtime tests pass.

The mac-language skill taught agents the syntax but hid a large chunk of
the language's creative surface area. This rewrite surfaces features
that are already implemented in the runtime but were previously absent
from the skill, and flags the handful of quirks and broken features
that agents need to know about to write working programs.

Added (all features verified to work against the runtime):
- Positioned text via 'text: ... x: ... y: ... fontSize: ...'
- fontWeight, textTransform, background, fontSize style properties
- Hex colors with alpha (#RRGGBBAA)
- save() function as an alternative to the => operator
- Full save-path resolution rules (including MAC_OUTPUT_DIR override)
- animate(frames, Duration(ms)) one-liner for programmatic GIFs
- Loop-back transition (trailing --- for seamless loops)
- Mixed-mode transitions (optional between any pair of frames)
- grid spread syntax: 'grid 2x2 { ...arr }' and 'grid arr'
- Nested grids
- beside(a, b), stack(a, b), toGrid(arr, cols, rows)
- Standalone posterize() and threshold() with parameter ranges
- Effect parameter ranges for all parameterized effects
- Effect ordering intuition (tonal -> color -> atmosphere -> artifacts)
- 500-frame GIF cap, 15 fps transition rate, 4096x4096 dimension cap
- Duration arithmetic (+, *)
- A guiding 'Reach For More Than Basics' section up top

Documented quirks and broken features:
- Style + block form requires explicit dimensions
- animate() crashes on a raw number; requires Duration(ms)
- tint() is broken (rejects strings, ignores alpha arg)
- bounce easing is accepted by the parser but silently falls back to
  linear
- noise() is non-deterministic across frames and causes GIF flicker
- blur() is box blur, not gaussian (so docs claim is inaccurate)

Flagship 'Complete Example' at the end of the skill runs end-to-end
against the runtime. Every other code sample in the skill was also
verified to execute without error.

All 91 existing runtime tests pass.
@jona62 jona62 merged commit 9d494c6 into jona62:main Apr 19, 2026
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant