Skip to content
Back to projects

KataSmith

KataSmith is a portable, language-agnostic Agent Skill: a reusable instruction package for coding-kata practice. It uses Socratic teaching, deliberate practice, and mock interviews while keeping the curriculum, coaching, and learner work deliberately separate.

View KataSmith source on GitHub

Three repositories, one deliberate boundary

The curriculum is read-only, the skill is portable, and learner work lives in its own repository. That separation is a working rule, not just a diagram.

  1. Read-only curriculumOwns teaching material, public tests, starters, references, and toolchain declarations.
  2. Portable skillDiscovers, initializes, and coaches without becoming the curriculum.
  3. Independent learner repoHolds attempts and progress outside the curriculum.
View the repository boundary on GitHub

The kata-smith.json workspace contract

{
  "artifacts": [...],
  "required_commands": [...],
  "setup_commands": [...],
  "compile_command": [...],
  "test_command": [...]
}
View the kata-smith.json contract on GitHub

Invariants worth inspecting

  • Artifact source and destination paths are relative and cannot contain ..
  • Setup never reads or copies solution files.
  • Learner and curriculum paths must not overlap.
  • A conflicting attempt stops unless you explicitly replace it; replacement creates a backup.
  • Reference material unlocks only after completion or an explicit decision to abandon the kata.

Execution evidence

26 tests passed against the pinned revision, covering isolation, overwrite refusal and backups, solution exclusion, guarded references, completion, and reflection.

Command used to run the tests

python3 -m unittest discover -s tests -v

View the test source on GitHub

Current limits and installation

Work in progress. The repository currently claims end-to-end FizzBuzz compatibility only for Java and TypeScript at algorithms@b35586d; the current Go public-test layout is excluded.

Install in OpenCode

OpenCode installation command

npx skills add RubenOAlvarado/kata-smith@kata-smith -g -a opencode

Requires Python 3.11+, Git, and the toolchain declared by the selected curriculum language.

View requirements, WIP status, and source on GitHub