agentsclimarketplace

St setup project

Skill mumez/smalltalk-dev-plugin/skills/st-setup-project

Claude Code plugin for AI-driven Smalltalk (Pharo) development

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

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

  • 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 .project file 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:

  • Core group: ProjectName-Core
  • Tests group: ProjectName-Tests (requires Core)
  • all group: Core + Tests
  • default group: 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

SituationAction
Invalid project nameShow error with PascalCase example, stop
Project already existsStop immediately, suggest this is for new projects
File system errorsLet bash errors propagate naturally (set -e)

Related Skills

  • smalltalk-dev:st-init — Start development session after project is created
  • smalltalk-dev:smalltalk-developer — Development workflow (Edit → Import → Test)

Keep looking

Skills are one crate of 328,083. 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.