本文へ移動
cccskills
無料GitHub で公開

pharo-tdd

Drive a Genie change test-first through the genie MCP tools, working entirely from the live image (no files). Use when adding behavior or fixing a bug in the image — anything where a test should lead.

インストール方法を見る

含まれるファイル(1)

  • SKILL.md2.2 KB

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

Pharo TDD loop (live image, via the genie MCP tools)

All work goes through the genie MCP tools — there are no files. Read with the read tools, change only via define_class / define_method / eval. Confirm every change by reading it back. Never assume a class/selector exists — look it up first.

Loop

  1. Locate. Find the class and its test class: list_classes (package) → list_methods → get_method_source. Find the matching ...Test (TestCase subclass). If none exists, create it via define_class (superclass TestCase).

  2. Red. Write or adjust ONE failing test with define_method (protocol tests). Run it: run_test with class_name. Expect failure. If it passes immediately, the test isn't exercising the new behavior — fix the test before writing code.

  3. Green. Implement the smallest method that could pass, via define_method. Run run_test again → expect green. Read the method back with get_method_source to confirm what's installed.

  4. Regression check. Run run_test for the whole package_name. A green class test with a red package is not done.

  5. Refactor. Clean up while green, re-running run_test after each step. (For larger cleanups, switch to the pharo-refactor skill.)

  6. Done. Persist with save_image gated on tests — pass test_package so it runs them and saves the image only if green. Summarize what changed (class >> selector list).

Debugging a red test

Genie returns full stack traces: failing block source, receiver, and its variables. Read them. Reproduce the failure with a minimal eval first, fix the smallest thing the trace implicates, then re-run the test. Don't guess.

Rules

  • One test, one reason to fail, at a time.
  • Modern class API only (ShiftClassInstaller / define_class), never the deprecated subclass:instanceVariableNames:classVariableNames:package:.
  • Tests are methods too — install them with define_method, protocol tests.

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

同じリポジトリのスキル

概要と使いどころ

Use when modifying a Genie-backed Pharo project through the live MCP server on localhost:8087; includes project ownership, image read/change/test/save workflow, and first steps for new user projects.

日本語の概要は準備中です。原文の説明を表示しています。

KentBeck/SmalltalkGenie192026年7月20日 更新

Refactor messy Pharo code safely through the genie MCP tools, working from the live image (no files). Use for renames, method extraction, moving behavior, or general cleanup of existing code.

日本語の概要は準備中です。原文の説明を表示しています。

KentBeck/SmalltalkGenie192026年7月20日 更新

Rename Pharo methods safely through Genie's `rename_method` MCP refactoring tool. Use when a selector should be renamed while preserving behavior, updating senders and symbol references across the live image, including as one step in larger refactorings such as clarify API names, split responsibilities, or move behavior behind better messages.

日本語の概要は準備中です。原文の説明を表示しています。

KentBeck/SmalltalkGenie192026年7月20日 更新

Use when reviewing or refactoring code that pulls apart another object's private representation, such as raw limb/byte/slot access, slice constructors, or helper methods that expose internal storage. Guides agents to find representation envy and suggest moving behavior onto the object that owns the representation, using live-image Genie tools when working in Pharo.

日本語の概要は準備中です。原文の説明を表示しています。

KentBeck/SmalltalkGenie192026年7月20日 更新

KentBeck のスキルをすべて見る

このスキルの問題を報告する