St setup project
Claude Code plugin for AI-driven Smalltalk (Pharo) development
npx -y skills add mumez/smalltalk-dev-plugin --skill st-setup-projectAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 14 stars14 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.
What its author says it does
Copied from the file, not written here
Pharo project boilerplate creator. Use when the user asks to create a new Pharo/Smalltalk project from scratch, when project structure is missing (no src/ directory or .project file), when the user wants to start a new Smalltalk development project, or when setting up BaselineOf, Core, and Tests package structure.
SKILL.md
3.3 KB, as published. Nobody here has run it
Set Up Pharo Project Boilerplate
Create a complete Pharo project structure with BaselineOf, Core package, and Tests package.
When to Use This Skill
- User asks to "create a new project", "start a Smalltalk project", or "set up project structure"
- No
src/directory or.projectfile exists in the current directory - User provides a project name and wants to begin development
Project Name Rules
- PascalCase required: Must start with uppercase, alphanumeric only
- Valid:
MyProject,RedisClient,JSONParser - Invalid:
my-project,my_project,myProject
If no name provided: Ask with AskUserQuestion: "What is your project name? (Use PascalCase like MyProject)"
Pre-flight Checks
1. Validate PascalCase:
if [[ ! "$PROJECT_NAME" =~ ^[A-Z][a-zA-Z0-9]*$ ]]; then
echo "Error: Project name must be in PascalCase (e.g., MyProject, RedisClient)"
exit 1
fi
2. Check for existing project:
if [ -d "src" ] && [ "$(find src -mindepth 1 -maxdepth 1 -type d 2>/dev/null | wc -l)" -gt 0 ]; then
echo "Error: Project already exists (src/ directory contains packages)"
exit 1
fi
Created Structure
MyProject/
├── .project # srcDirectory: 'src'
└── src/
├── .properties # format: tonel
├── BaselineOfMyProject/
│ ├── package.st
│ └── BaselineOfMyProject.class.st
├── MyProject-Core/
│ └── package.st
└── MyProject-Tests/
└── package.st
Implementation
Run the setup script with the validated project name. See Complete Setup Script for the full bash implementation.
Key files created:
.project (Pharo STON format with single quotes):
{
'srcDirectory' : 'src'
}
src/.properties (Tonel format declaration):
{
#format : #tonel
}
BaselineOf class defines package dependencies and groups:
Coregroup:ProjectName-CoreTestsgroup:ProjectName-Tests(requires Core)allgroup: Core + Testsdefaultgroup: Core only
After Setup
Show the user what was created and next steps:
✓ Pharo project 'ProjectName' created successfully!
Next steps:
1. Use /st-init to verify Pharo connection and start development
2. Start adding classes to ProjectName-Core
3. Write tests in ProjectName-Tests
Then suggest using the smalltalk-dev:st-init skill to start the development session.
Error Handling
| Situation | Action |
|---|---|
| Invalid project name | Show error with PascalCase example, stop |
| Project already exists | Stop immediately, suggest this is for new projects |
| File system errors | Let bash errors propagate naturally (set -e) |
Related Skills
smalltalk-dev:st-init— Start development session after project is createdsmalltalk-dev:smalltalk-developer— Development workflow (Edit → Import → Test)