{"id":"be82f810-977d-4607-9ee8-36a7fa46cb23","shortId":"vq6Cep","kind":"skill","title":"st-init","tagline":"Pharo Smalltalk development session initializer. Use when starting a new Smalltalk development session, when Pharo connection needs to be established or verified, when the user asks about the development workflow or available commands, when development environment setup is needed","description":"# Initialize Smalltalk Development Session\n\nStart a Pharo Smalltalk development session: verify project structure, confirm Pharo connection, and orient to the development workflow.\n\n## Initialization Sequence\n\n### 1. Check Project Structure\n\n```bash\nif [ ! -f \".project\" ] && [ ! -d \"src\" ]; then\n  echo \"No Pharo project structure detected\"\nfi\n```\n\n- ✅ `.project` OR `src/` found → continue\n- ⚠️ Neither found → recommend `smalltalk-dev:st-setup-project` skill\n\n**If no project exists**, offer to create one:\n```\n⚠️  No Pharo project structure detected in current directory.\n\nUse /st-setup-project MyProjectName to set up:\n  • .project configuration file\n  • src/ directory with package structure\n  • BaselineOf class and Core/Tests packages\n\nWould you like to run /st-setup-project now?\n```\n\n- **User says yes**: Invoke `smalltalk-dev:st-setup-project` skill, then continue with steps 2–4.\n- **User says no / continue anyway**: Proceed directly to step 2 (load smalltalk-developer) without project setup. Note in the status report that project structure is missing.\n\n### 2. Load smalltalk-developer Skill\n\nUse the `Skill` tool to load `smalltalk-dev:smalltalk-developer`. This activates the full development workflow guidance.\n\n### 3. Verify Pharo Connection\n\nRun `Smalltalk version` via eval:\n\n```\nmcp__smalltalk-interop__eval: 'Smalltalk version'\n```\n\n- ✅ Returns version string → connected, proceed\n- ❌ Fails or times out → follow [Connection Setup](#connection-setup) below\n\n### 4. Confirm Ready\n\nReport status to user:\n```\n✅ Pharo connected: Pharo X.Y (...)\n✅ smalltalk-developer skill loaded\n📋 Development workflow: Edit → Lint → Import → Test\n```\n\n## Connection Setup\n\nIf Pharo is not connected, check Docker availability first:\n\n```bash\ndocker --version\n```\n\n### Docker Setup (Recommended)\n\nGenerate `compose.yml` in the project root:\n\n```yaml\nservices:\n  sis-pharo:\n    image: mumez/smalltalk-interop-docker\n    ports:\n      - \"5900:5900\"\n      - \"6901:6901\"\n      - \"8086:8086\"\n    environment:\n      PHARO_SIS_PORT: 8086\n    volumes:\n      - /tmp:/root/screenshots\n      - .:/root/repos\n```\n\nThen instruct the user:\n```bash\ndocker compose up -d\n```\n\nRe-verify connection after startup.\n\n### Local Pharo Installation\n\nIf Docker is not available or not preferred:\n\n**1. Install Pharo:**\n```bash\nmkdir pharo-stable\ncd pharo-stable\ncurl https://get.pharo.org | bash\n```\n\n**2. Load PharoSmalltalkInteropServer:**\n```bash\n./pharo Pharo.image metacello install github://mumez/PharoSmalltalkInteropServer:main/src BaselineOfPharoSmalltalkInteropServer\n```\n\n**3. Start Pharo (SisServer starts automatically):**\n```bash\n./pharo-ui\n```\n\nRe-verify connection after Pharo is running.\n\n### Manual Start (Pharo already installed)\n\nIf Pharo is installed but server not running, ask user to execute in Pharo:\n```smalltalk\nSisServer current start\n```\n\n## Development Workflow Overview\n\nThe core cycle (full details in `smalltalk-dev:smalltalk-developer`):\n\n```\nEdit .st file\n    ↓\nLint (/st-lint)\n    ↓\nImport package (absolute path)\n    ↓\nRun tests\n    ↓\nPass? → Done  |  Fail? → Debug → Fix → Repeat\n```\n\n## Available Skills and Commands\n\n| Command | Purpose |\n|---------|---------|\n| `/st-import PackageName /abs/path` | Import Tonel package to Pharo |\n| `/st-test TestClass` | Run SUnit tests |\n| `/st-eval code` | Execute Smalltalk snippet |\n| `/st-export PackageName` | Export package from Pharo |\n| `/st-lint src/PackageName` | Validate Smalltalk best practices |\n\n## Troubleshooting\n\n| Problem | Solution |\n|---------|---------|\n| Connection timeout | Check if Pharo image is running |\n| Server not started | Run `SisServer current start` in Pharo |\n| Port mismatch | Check `PHARO_SIS_PORT` env var (default: 8086) |\n| MCP issues | Verify `pharo-smalltalk-interop-mcp-server` is installed |\n| Docker path issues | Check volume mounts in `compose.yml` |\n\n## Related Skills\n\n- `smalltalk-dev:st-setup-project` — Create project structure if missing\n- `smalltalk-dev:smalltalk-developer` — Full development workflow\n- `smalltalk-dev:smalltalk-debugger` — Debug test failures and errors","tags":["init","smalltalk","dev","plugin","mumez","agent-skills","agents","claude-code","marketplace","mcp","pharo-smalltalk","skills"],"capabilities":["skill","source-mumez","skill-st-init","topic-agent-skills","topic-agents","topic-claude-code","topic-marketplace","topic-mcp","topic-pharo-smalltalk","topic-plugin","topic-skills","topic-smalltalk"],"categories":["smalltalk-dev-plugin"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/mumez/smalltalk-dev-plugin/st-init","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add mumez/smalltalk-dev-plugin","source_repo":"https://github.com/mumez/smalltalk-dev-plugin","install_from":"skills.sh"}},"qualityScore":"0.456","qualityRationale":"deterministic score 0.46 from registry signals: · indexed on github topic:agent-skills · 13 github stars · SKILL.md body (4,085 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-05-18T19:07:00.524Z","embedding":null,"createdAt":"2026-05-09T01:04:41.998Z","updatedAt":"2026-05-18T19:07:00.524Z","lastSeenAt":"2026-05-18T19:07:00.524Z","tsv":"'/abs/path':444 '/pharo':358 '/pharo-ui':372 '/root/repos':312 '/root/screenshots':311 '/st-eval':455 '/st-export':460 '/st-import':442 '/st-lint':423,466 '/st-setup-project':118,141 '/st-test':450 '/tmp':310 '1':67,339 '2':159,170,188,354 '3':213,365 '4':160,245 '5900':298,299 '6901':300,301 '8086':302,303,308,501 'absolut':426 'activ':207 'alreadi':384 'anyway':165 'ask':29,394 'automat':370 'avail':35,276,335,436 'baselineof':131 'baselineofpharosmalltalkinteropserv':364 'bash':71,278,317,342,353,357,371 'best':470 'cd':347 'check':68,274,477,494,516 'class':132 'code':456 'command':36,439,440 'compos':319 'compose.yml':285,520 'configur':124 'confirm':56,246 'connect':19,58,216,232,239,242,253,267,273,325,376,475 'connection-setup':241 'continu':89,156,164 'core':408 'core/tests':134 'creat':107,530 'curl':351 'current':115,402,488 'cycl':409 'd':75,321 'debug':433,550 'debugg':549 'default':500 'detail':411 'detect':83,113 'dev':95,149,202,415,525,537,546 'develop':6,15,32,38,45,51,63,174,192,205,210,258,261,404,418,540,542 'direct':167 'directori':116,127 'docker':275,279,281,318,332,513 'done':431 'echo':78 'edit':263,419 'env':498 'environ':39,304 'error':554 'establish':23 'eval':221,226 'execut':397,457 'exist':104 'export':462 'f':73 'fail':234,432 'failur':552 'fi':84 'file':125,421 'first':277 'fix':434 'follow':238 'found':88,91 'full':209,410,541 'generat':284 'get.pharo.org':352 'guidanc':212 'imag':295,480 'import':265,424,445 'init':3 'initi':8,43,65 'instal':330,340,361,385,389,512 'instruct':314 'interop':225,508 'invok':146 'issu':503,515 'like':138 'lint':264,422 'load':171,189,199,260,355 'local':328 'main/src':363 'manual':381 'mcp':222,502,509 'metacello':360 'mismatch':493 'miss':187,534 'mkdir':343 'mount':518 'mumez/pharosmalltalkinteropserver':362 'mumez/smalltalk-interop-docker':296 'myprojectnam':119 'need':20,42 'neither':90 'new':13 'note':178 'offer':105 'one':108 'orient':60 'overview':406 'packag':129,135,425,447,463 'packagenam':443,461 'pass':430 'path':427,514 'pharo':4,18,49,57,80,110,215,252,254,270,294,305,329,341,345,349,367,378,383,387,399,449,465,479,491,495,506 'pharo-smalltalk-interop-mcp-serv':505 'pharo-st':344,348 'pharo.image':359 'pharosmalltalkinteropserv':356 'port':297,307,492,497 'practic':471 'prefer':338 'problem':473 'proceed':166,233 'project':54,69,74,81,85,99,103,111,123,153,176,184,288,529,531 'purpos':441 're':323,374 're-verifi':322,373 'readi':247 'recommend':92,283 'relat':521 'repeat':435 'report':182,248 'return':229 'root':289 'run':140,217,380,393,428,452,482,486 'say':144,162 'sequenc':66 'server':391,483,510 'servic':291 'session':7,16,46,52 'set':121 'setup':40,98,152,177,240,243,268,282,528 'sis':293,306,496 'sis-pharo':292 'sisserv':368,401,487 'skill':100,154,193,196,259,437,522 'skill-st-init' 'smalltalk':5,14,44,50,94,148,173,191,201,204,218,224,227,257,400,414,417,458,469,507,524,536,539,545,548 'smalltalk-debugg':547 'smalltalk-dev':93,147,200,413,523,535,544 'smalltalk-develop':172,190,203,256,416,538 'smalltalk-interop':223 'snippet':459 'solut':474 'source-mumez' 'src':76,87,126 'src/packagename':467 'st':2,97,151,420,527 'st-init':1 'st-setup-project':96,150,526 'stabl':346,350 'start':11,47,366,369,382,403,485,489 'startup':327 'status':181,249 'step':158,169 'string':231 'structur':55,70,82,112,130,185,532 'sunit':453 'test':266,429,454,551 'testclass':451 'time':236 'timeout':476 'tonel':446 'tool':197 'topic-agent-skills' 'topic-agents' 'topic-claude-code' 'topic-marketplace' 'topic-mcp' 'topic-pharo-smalltalk' 'topic-plugin' 'topic-skills' 'topic-smalltalk' 'troubleshoot':472 'use':9,117,194 'user':28,143,161,251,316,395 'valid':468 'var':499 'verifi':25,53,214,324,375,504 'version':219,228,230,280 'via':220 'volum':309,517 'without':175 'workflow':33,64,211,262,405,543 'would':136 'x.y':255 'yaml':290 'yes':145","prices":[{"id":"dc150825-24bb-45a2-92a5-06561b5619aa","listingId":"be82f810-977d-4607-9ee8-36a7fa46cb23","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"mumez","category":"smalltalk-dev-plugin","install_from":"skills.sh"},"createdAt":"2026-05-09T01:04:41.998Z"}],"sources":[{"listingId":"be82f810-977d-4607-9ee8-36a7fa46cb23","source":"github","sourceId":"mumez/smalltalk-dev-plugin/st-init","sourceUrl":"https://github.com/mumez/smalltalk-dev-plugin/tree/develop/skills/st-init","isPrimary":false,"firstSeenAt":"2026-05-09T01:04:41.998Z","lastSeenAt":"2026-05-18T19:07:00.524Z"}],"details":{"listingId":"be82f810-977d-4607-9ee8-36a7fa46cb23","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"mumez","slug":"st-init","github":{"repo":"mumez/smalltalk-dev-plugin","stars":13,"topics":["agent-skills","agents","claude-code","marketplace","mcp","pharo-smalltalk","plugin","skills","smalltalk"],"license":"mit","html_url":"https://github.com/mumez/smalltalk-dev-plugin","pushed_at":"2026-05-12T05:53:28Z","description":"Claude Code plugin for AI-driven Smalltalk (Pharo) development","skill_md_sha":"8a77a43c8427604df5c3ddba8c0f0d9a479197ac","skill_md_path":"skills/st-init/SKILL.md","default_branch":"develop","skill_tree_url":"https://github.com/mumez/smalltalk-dev-plugin/tree/develop/skills/st-init"},"layout":"multi","source":"github","category":"smalltalk-dev-plugin","frontmatter":{"name":"st-init","description":"Pharo Smalltalk development session initializer. Use when starting a new Smalltalk development session, when Pharo connection needs to be established or verified, when the user asks about the development workflow or available commands, when development environment setup is needed, or when Docker or local Pharo installation is required."},"skills_sh_url":"https://skills.sh/mumez/smalltalk-dev-plugin/st-init"},"updatedAt":"2026-05-18T19:07:00.524Z"}}