Skillquality 0.46

st-eval

Smalltalk code evaluator for Pharo via MCP. Use when executing Smalltalk expressions, verifying object state or intermediate values, debugging code incrementally, checking Pharo connection, or running quick experiments.

Price
free
Protocol
skill
Verified
no

What it does

Execute Smalltalk Code

Evaluate arbitrary Smalltalk expressions in the running Pharo 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 PharoUncaught error triggered Pharo debuggerClose debugger in Pharo, 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 Pharo connection if eval fails unexpectedly

Capabilities

skillsource-mumezskill-st-evaltopic-agent-skillstopic-agentstopic-claude-codetopic-marketplacetopic-mcptopic-pharo-smalltalktopic-plugintopic-skillstopic-smalltalk

Install

Installnpx skills add mumez/smalltalk-dev-plugin
Transportskills-sh
Protocolskill

Quality

0.46/ 1.00

deterministic score 0.46 from registry signals: · indexed on github topic:agent-skills · 13 github stars · SKILL.md body (2,335 chars)

Provenance

Indexed fromgithub
Enriched2026-05-18 19:07:00Z · deterministic:skill-github:v1 · v1
First seen2026-05-09
Last seen2026-05-18

Agent access