A collection of Claude Code skills: harness upkeep, plus object-oriented design work (pattern
selection and principle-based diagnosis). Each skill is self-contained under skills/ and can be
dropped into .claude/skills/ as a unit.
| Skill | Use it to |
|---|---|
| curate-learnings | Stop docs/lessons/ and the memory store from eating your context — measure what was actually read, then archive the dead, merge the duplicates, and promote the proven into CLAUDE.md / AGENTS.md. |
| design-patterns | Go from "this code smells like X" to a named GoF (or architectural) pattern, with a symptom index and 34 detail docs. |
| SOLID-principles | Go from "something about this class is wrong" to a named SOLID principle, a falsifiable test, and whether it's worth fixing. |
Every skill is entered through its SKILL.md (the agent-facing index). design-patterns and
SOLID-principles also carry a README.md oriented at a human landing in that directory: what it
is, how it's organized, how to extend it. Start here only for the repo-level view; for anything
about a specific skill, its own docs are authoritative.
Lessons : a small custom layer I built on top of Memory to turn the Agent into something that actively learns from its own mistakes. Claude Native Memory remembers what your project is; Lessons remembers what went wrong and how not to repeat it.
Make Your Harness Learn From Its Mistakes
walks through the native building blocks (CLAUDE.md / AGENTS.md, Skills, Hooks) as context,
then Memory and Lessons, where the interesting part lives.
Heavily using Memories and Lessons are slowly will cost your context. Curate-Learnings are as a manual executable skill will handle this short and long term as well.
The reasoning behind the design (what counts as a read, how the count, defensive eviction is working, why promotion stays user-gated) you can find below:
The four verdicts, in short:
- merge — 3+ learnings stating the same rule collapse into one themed file
- compact — mature entry with an overlong index line: shorten the line, leave the body alone
- promote — mature entry with recurring use: the rule moves into
CLAUDE.md/AGENTS.md - archive — mature entry with no observed use: out of the index, into
archive/
Nothing is ever deleted, and nothing moves before you approve it. The skill never runs git; it lists the touched paths and leaves the commit to you.
For more details: Teach Your Harness What to Forget
Design Patterns and SOLID Principles are built as a pair and follow the same conventions:
- Symptom-first retrieval, not category-first browsing. Both are meant to be searched from an observed code smell, not read cover-to-cover. Category (GoF creational/structural/behavioral, or the S-O-L-I-D letters) is kept only as secondary grouping.
- A gate before a recommendation. Both
SKILL.mdfiles open with a STOP section — patterns and principles are heuristics with a cost, and the default answer to "does this apply" is often "no." - Read the doc, don't recall the answer. Every entry in a symptom index links to one detail doc that must actually be read before anything is proposed. The judgment calls (when not to use something, the language-idiom collapse) live in prose that's too easy to skip from memory.
- Java (17+) paired with Python, every time. Java shows the canonical OOP shape; Python shows what it collapses to. The delta between the two languages is usually the more useful thing to learn than the pattern or principle itself.
- Opinionated, with dissent flagged. Both recommend a default instead of presenting every
option neutrally, and both mark the genuinely contested calls with
⚠ Contestedrather than pretending consensus.