agentsclimarketplace

St eval

Skill mumez/smalltalk-dev-plugin/skills/st-eval

Smalltalk code evaluator for Pharo or Squeak via MCP. Use when executing Smalltalk expressions, verifying object state or intermediate values, debugging code incrementally, checking the Smalltalk image connection, or running quick experiments.From its SKILL.md

Install
npx -y skills add mumez/smalltalk-dev-plugin --skill st-eval

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 15 stars15 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

SKILL.md

2.7 KB, as published. Nobody here has run it

Execute Smalltalk Code

Evaluate arbitrary Smalltalk expressions in the running Smalltalk image via mcp__smalltalk-interop__eval.

Essential Rules

Always use printString — MCP returns serialized output. Raw objects cause errors or unreadable results:

✅ MyClass new doSomething printString
✅ collection printString
❌ MyClass new doSomething

Wrap risky code in on:do: — Uncaught errors in eval crash the MCP call with no useful message:

| result |
result := Array new: 2.
[ result at: 1 put: (riskyOperation) printString ]
  on: Error do: [:ex | result at: 2 put: ex description].
^ result

Use fork for blocking operations — Code that opens a dialog or blocks the image will cause the MCP call to hang indefinitely. Detach it:

[ <blocking expression> ] fork.
^ 'started'

Common Patterns

Connection check

Smalltalk version

Inspect intermediate values

| step1 step2 |
step1 := objA computeStep1.
step2 := step1 processStep2.
^ { 'step1' -> step1 printString. 'step2' -> step2 printString } asDictionary printString

Inspect object state

{
  'class' -> obj class name.
  'value' -> obj printString.
  'size'  -> obj size printString
} asDictionary printString

Safe collection access

collection ifEmpty: ['empty'] ifNotEmpty: [:col | col first printString]

Error-capturing eval

| result |
result := Array new: 2.
[
  | obj |
  obj := MyClass new name: 'Test'.
  result at: 1 put: obj process printString.
] on: Error do: [:ex |
  result at: 2 put: ex description
].
^ result

Troubleshooting

SymptomCauseFix
MCP call hangs / no responseBlocking operation (dialog, modal, infinite loop)Wrap in fork
Error: cannot serializeReturning raw objectAdd printString
Debugger window opened in the Smalltalk imageUncaught error triggered the debuggerClose debugger in the Smalltalk image, then re-eval with on:do:
MessageNotUnderstoodMethod doesn't exist or typoCheck with mcp__smalltalk-interop__search_implementors

Related Skills

  • smalltalk-dev:smalltalk-debugger — Systematic debugging workflow using eval
  • smalltalk-dev:st-init — Verify the Smalltalk image connection if eval fails unexpectedly

What ships with it

Read from the repository

Just SKILL.md. No reference files, no scripts.

Gives 0 of the 12 instructions most evals benchmarks skills give

Counted across 499 of the 513 authors here whose files we hold, read 2026-09-06

  • Spawn with-skill and baseline runs in the same turnin 31 of 499, across 24 files
  • Keep SKILL.md under 500 linesin 31 of 499, across 24 files
  • Draft assertions while test runs are in progressin 31 of 499, across 24 files
  • Compare against the baseline after changesin 31 of 499, across 13 files
  • Define evals before codingin 26 of 499, across 17 files
  • Run evals frequently during developmentin 25 of 499, across 16 files
  • Keep evals fastin 24 of 499, across 15 files
  • Version evals with codein 24 of 499, across 15 files
  • Generate the eval viewer before evaluating outputs yourselfin 24 of 499, across 17 files
  • Generate an eval report after runsin 24 of 499, across 15 files
  • Track pass@k metrics over timein 22 of 499, across 14 files
  • Save a baseline before making changesin 21 of 499, across 9 files

Said here and by no other author read

  • Append printString to evaluated expressions
  • Wrap risky code in on:do:
  • Fork blocking operations
  • Check image connection with Smalltalk version
  • Inspect intermediate values with printString dictionaries
  • Re-eval with on:do: after closing image debuggers

Grouped from the skills themselves: near-identical wordings counted once, and counted by distinct author, so one author publishing three of these counts once.

Keep looking

Skills are one crate of 626,194. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.