Install the Real Transformation Skill
Prerequisite: Lesson 1 — Felt Versus Measured Transformation, which set up why this course logs numbers instead of trusting how a week felt. After this lesson, you can: get the transformation-tracker skill into a project and confirm Claude Code has actually read it, with nothing logged yet.
This lesson has one job. Get the skill into a project, and confirm Claude Code loaded it. That's it. Lesson 3 logs your first real week; lesson 4 explains the five metrics and how they're calculated. Neither happens here.
There is nothing to install, in the usual sense
The transformation-tracker skill lives in a real repository: github.com/profrodai/transformation-tracker-course. I cloned it fresh and ran it end to end before writing this lesson, so every command below is one I actually typed, not one I assumed would work.
Here's the part that surprises people who've installed a Python tool before: there's no pip install step anywhere in this repo's README, because there's nothing to install. log_week.py and report.py, the two scripts that do the actual work, import only from Python's own standard library.
| Script | What it does | Imports |
|---|---|---|
log_week.py | Appends one week's numbers to the log | argparse, json, pathlib, datetime |
report.py | Reads the log and prints the current metrics | argparse, json, pathlib, datetime |
That's a deliberate design choice, not an oversight. Your own project's linters and CI already know how to check argparse and json calls, because they're stdlib, not a dependency your toolchain has never seen before. It's also why this course doesn't teach the Polars/DuckDB stack the original tracker this course is based on used. A fast dataframe library is the right call for a real analytics pipeline. It's the wrong call for a course whose entire job is getting you logging in five minutes with zero new packages to explain.
Two ways in, same result
You have a choice here, and both are correct. If you want the whole thing, clone the repo:
git clone https://github.com/profrodai/transformation-tracker-course.git
cd transformation-tracker-courseYou now have the skill, both scripts, the example log, and the README in one place.
If you already have a project you want this running inside, you don't need the whole repository. Copy one directory, .claude/skills/transformation-tracker/, into your existing repo's .claude/skills/ folder. Nothing else in the tracker repo is required for the skill itself to work.
claudeRun it from the repo root, or your project's root if you took the copy path. Claude Code reads any .claude/skills/*/SKILL.md in the project automatically on startup.
Both paths land in the same place: a project where Claude Code can see .claude/skills/transformation-tracker/SKILL.md. There's no registry to publish to and no manual step that connects the skill to Claude Code. The file being there is the whole registration.
The rest of the repo, CLAUDE.md, README.md, LICENSE, .gitignore, and example-transformation-log.jsonl, is context and documentation. example-transformation-log.jsonl is worth a glance now: it's what a real logged week looks like, one JSON object per line, before you write your own in lesson 3.
Three rules CLAUDE.md states before you log anything
The repo's CLAUDE.md sets three conventions for this project, and they're worth reading before you touch the log file:
The log is transformation-log.jsonl at the repo root, one JSON object per line, append-only. Never hand-edit a past week's numbers to make a trend look better than it was; a genuine mistake still gets corrected (lesson 8 covers the real, sanctioned way), but the reason for touching a past week is a real error, never a nicer-looking chart. The two scripts stay stdlib-only; no new dependency gets added to make them work. And if this repo is cloned into a project that already has its own linter or CI, that tooling applies to any changes made here, because this repo doesn't ship its own lint config on purpose.
That append-only rule matters enough that lesson 8 is built entirely around it: what you do when a logged week turns out to be wrong, without rewriting history to make the trend line look better than it was.
Confirming the skill actually loaded
Don't take the file's presence on faith. Ask Claude Code directly, in the same session you just opened:
"What does the transformation-tracker skill do?"
A Claude Code session that has read SKILL.md will describe the numbers it asks for before it logs a week. It shouldn't enumerate exactly what those numbers are here, since that's lesson 3's job and not this one's, but a description that names a weekly check-in with specific figures, rather than a vague "it tracks progress," is your confirmation. If you get a generic answer, or Claude Code says it doesn't see a skill by that name, the directory is in the wrong place. It needs to be .claude/skills/transformation-tracker/SKILL.md, exactly, relative to wherever you launched claude from.
Skill's in place, Claude Code has read it, nothing logged yet. Lesson 3 is where that changes.
Six numbers, one command, and the Week 1 baseline every later week gets measured against.
Reply here and it goes straight to Rod. Same as replying to one of his emails.