Agent Skills: Import Tonel Package

Import Tonel package into the running Smalltalk image (Pharo or Squeak). Use when loading edited .st files into the Smalltalk image after code changes.

UncategorizedID: mumez/smalltalk-dev-plugin/st-import

Install this agent skill to your local

pnpm dlx add-skill https://github.com/mumez/smalltalk-dev-plugin/tree/HEAD/skills/st-import

Skill Files

Browse the full folder contents for st-import.

Download Skill

Loading file tree…

skills/st-import/SKILL.md

Skill Metadata

Name
st-import
Description
Import Tonel package into the running Smalltalk image (Pharo or Squeak). Use when loading edited .st files into the Smalltalk image after code changes.

Import Tonel Package

Import edited Tonel files into the running Smalltalk image.

Usage

/st-import PackageName /absolute/path/to/src

Steps

With arguments: import a single package

  1. Call import_package with the package name and absolute path to the src/ directory
  2. Report success or error from the result

Without arguments: import all local packages in dependency order

When no arguments are given, discover and import the full project automatically:

  1. Locate the source directory — read .project from the repository root. It contains JSON-like STON syntax with a srcDirectory key (e.g., 'srcDirectory' : 'src'). Resolve the value relative to the repository root to get the absolute path to the source directory.

  2. Determine import order — find the BaselineOf package inside the source directory (a directory whose name starts with BaselineOf). Read the BaselineOfXXX.class.st file inside it and parse the baseline: spec method. Extract:

    • All package: 'PkgName' declarations → the full list of packages to import
    • All requires: #('Dep1' 'Dep2' ...) clauses → the dependency edges between packages

    Topologically sort the packages so that each package is imported only after all its dependencies have been imported. Import the BaselineOf package first (before all others), then the sorted application packages.

  3. Import each package — call import_package for each package in the computed order, passing the absolute path to the source directory. Report the result of each import as you go.

Notes

  • Always use absolute paths
  • Use the package parent directory as the path — do not include the package name in the path
  • Import main package before test package
  • Re-import after every change

Examples

/st-import RediStick-Json /home/user/git/RediStick/src
/st-import RediStick-Json-Tests /home/user/git/RediStick/src