Skip to content

sys.indicator, sys.video, and state_initials - #5

Merged
ymote merged 2 commits into
mainfrom
l0-visualisations
Aug 10, 2026
Merged

sys.indicator, sys.video, and state_initials#5
ymote merged 2 commits into
mainfrom
l0-visualisations

Conversation

@ymote

@ymote ymote commented Aug 10, 2026

Copy link
Copy Markdown
Collaborator

Summary

Two capabilities, both following the rule the profile is built on — a card names WHAT it needs and the runtime fetches it, so no fact is ever written into a card.

sys.indicator + IndicatorPlot — compare countries on one World Bank series. The plot takes countries, an indicator code and a span; the source answers each country's numbers from the same request, indexed in the order the card listed them (so row 0's figures and the first line on the chart are the same country).

sys.video + Thumb — a YouTube search as a row source: id, title, channel, length, views, age, thumbnail, and embed — a player url the helper builds, because L0 has no string concatenation and a card must not assemble a URL. Thumb is Photo's row-sized sibling (Photo fills its width because it is a backdrop; a list row needs a fixed 16:9 tile).

state_initials() is new and load-bearing: a host resolving a source argument BEFORE realize — which countries to ask about, before there is a tree — cannot read the store (nothing written yet) or the seed data (an initial is a declaration, not data). Without it the request went out with an empty country list and the rows came back empty while the chart drew fine: an accepted card with half a screen wrong.

Also here, each found on a phone rather than in a test:

  • text arguments needed Debug quoting — a bare interpolation emitted sys.indicator(CHN,IND, …), two arguments where one was meant, answering nothing;
  • a bare read.title now reads row 0, since the indicator's own name is the same for every row and the card titles itself with it;
  • the never-read diagnostic counts an event WRITE as a use, so a write-only actuator source (sys.link) is not reported dead.

252 profile tests green.

🤖 Generated with Claude Code

ymote and others added 2 commits August 9, 2026 15:22
IndicatorPlot draws several countries on one axis; sys.indicator answers
each one's numbers beside it. Both name WHAT to plot and the runtime
fetches it — a series written into a card is a fact (§4) and it is wrong
the moment the World Bank revises it, which they do backwards, yearly.

state_initials() is new and load-bearing: a host resolving a source
argument BEFORE realize (which countries to ask about, before there is a
tree) cannot read the store — nothing is written yet — or the seed data,
because an initial is a declaration. Without it the request went out with
an empty country list and the rows came back empty while the chart drew
fine, which is exactly the accepted-card-wrong-screen class.

Two more measured the same way. The text arguments needed Debug quoting:
a bare interpolation emitted sys.indicator(CHN,IND, ...) — two arguments
where one was meant, answering nothing. And a bare read.title now reads
row 0 rather than nothing: the indicator's own name is the same for every
row, and the card titles itself with it.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
A YouTube search as a row source: id, title, channel, length, views, age,
a thumbnail url and `embed` — a player url the HELPER builds, because L0
has no string concatenation and a card must not assemble a URL.

Thumb is Photo's row-sized sibling: Photo fills its width because it is a
backdrop, and a list row needs a fixed 16:9 tile beside its text.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@r9s-codereview

Copy link
Copy Markdown

🤖 AI Code Review

Claude CLI exited with code 1:

✅ No significant issues found.


Tokens used: 0 | Powered by r9s.ai

@ymote
ymote merged commit 4875541 into main Aug 10, 2026
8 of 10 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