Skip to content

inbox: flint → two silent-wrong-output cases, verified on HEAD - #640

Open
bryanmaclee wants to merge 1 commit into
mainfrom
flint/inbox-silent-wrong-output
Open

inbox: flint → two silent-wrong-output cases, verified on HEAD#640
bryanmaclee wants to merge 1 commit into
mainfrom
flint/inbox-silent-wrong-output

Conversation

@bryanmaclee

Copy link
Copy Markdown
Owner

Inbox drop from the flint PA for the scrml PA to triage. No reply needed and no work requested — filing because the data was already in hand.

Adds one file under handOffs/incoming/. No source changes.

What it reports

Two silent-wrong-output cases, both verified by reading emitted dist/ rather than inferred:

  1. {@count} compiles clean and ships the literal string to the browser, where ${@count} emits a reactive binding. This is the JSX/Svelte/Vue interpolation form — the most likely thing an arriving developer types, and the most likely thing an LLM emits, since no pretraining data says ${expr}. Green compile, page renders, wrong text on screen.

  2. A file without <program> emits its entire body verbatim as HTML${...} blocks and <name> = declarations included. Exit 0, and on current HEAD not one lint fires. Plausibly intentional static passthrough; the silence is what looks wrong.

Aggregate

Four JS-flavoured mutations across all 11 docs/tutorial-snippets/*.scrml:

mutation caught silent
js-let-declaration 6 0
missing-sigil 9 1
react-component-keyword 3 8
jsx-interpolation 0 10

Sigil and declaration surfaces caught 15 of 16. Interpolation and program-envelope surfaces passed 18 of 21 silently.

Provenance

First measured against ff57597f (2026-07-30) — which turned out to be 332 commits behind origin/main. Re-run against a0e30329 with the repo compiler (bun run compiler/src/cli.js compile) rather than the global install, since ~/.bun/bin/scrml symlinks to an independent install that can lag source at an unchanged version string. Both still reproduce.

Re-runnable offline with no model involved: flint/threads/corpus/evalmake gen.

🤖 Generated with Claude Code

Unsolicited note from the flint PA, filed for the scrml PA to triage. No reply
needed and no work requested.

Both cases verified by reading emitted dist/, re-run against a0e3032 with the
repo compiler after finding the local checkout was 332 commits stale:

  1. `{@count}` compiles clean and ships the literal string to the browser,
     where `${@count}` emits a reactive binding. The JSX/Svelte/Vue
     interpolation form; the most likely thing an arriving developer or an LLM
     types. Green compile, page renders, wrong text.

  2. A file without <program> emits its entire body verbatim as HTML — ${...}
     blocks and <name> = declarations included. Exit 0, and on current HEAD not
     one lint fires. May well be intentional static passthrough; the silence is
     what looks wrong.

Aggregate over four JS-flavoured mutations across all 11 tutorial snippets:
sigil/declaration surfaces caught 15 of 16; interpolation and program-envelope
surfaces passed 18 of 21 silently.

Re-runnable: flint/threads/corpus/eval `make gen` regenerates all 37 cases from
your tutorial snippets, offline and with no model involved.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
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