Skillquality 0.46

st-setup-project

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,

Price
free
Protocol
skill
Verified
no

What it does

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)

Capabilities

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

Install

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,912 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