From smalltalk-dev
Creates Pharo/Smalltalk project boilerplate with src/ directory, .project file, BaselineOf, Core, and Tests packages. Use for new projects or missing structure.
How this skill is triggered — by the user, by Claude, or both
Slash command
/smalltalk-dev:st-setup-projectThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Create a complete Pharo project structure with BaselineOf, Core package, and Tests package.
Create a complete Pharo project structure with BaselineOf, Core package, and Tests package.
src/ directory or .project file exists in the current directoryMyProject, RedisClient, JSONParsermy-project, my_project, myProjectIf no name provided: Ask with AskUserQuestion: "What is your project name? (Use PascalCase like MyProject)"
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
MyProject/
├── .project # srcDirectory: 'src'
└── src/
├── .properties # format: tonel
├── BaselineOfMyProject/
│ ├── package.st
│ └── BaselineOfMyProject.class.st
├── MyProject-Core/
│ └── package.st
└── MyProject-Tests/
└── package.st
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:
Core group: ProjectName-CoreTests group: ProjectName-Tests (requires Core)all group: Core + Testsdefault group: Core onlyShow 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.
| 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) |
smalltalk-dev:st-init — Start development session after project is createdsmalltalk-dev:smalltalk-developer — Development workflow (Edit → Import → Test)npx claudepluginhub mumez/smalltalk-dev-plugin --plugin smalltalk-devImplements Pharo Smalltalk development workflow using Tonel format: editing class/package .st files, absolute-path imports, linting, testing cycle, and best practices like patterns and categorization.
Scaffolds full projects from PRD + stack templates: directory structure, configs, CLAUDE.md, git repo init, GitHub push. Studies existing projects via SoloGraph, uses Context7 for library versions.
Create project, component, or boilerplate scaffolds. Use when starting a new project, module, or component, generating boilerplate, or stamping a repeatable file structure.