Development diary

The Diary

Decisions, pivots, and discoveries — written as they happen.

Cleaning Up, Closing the Loop

One PR that wouldn't merge, a garden repo with 30 uncommitted commits, and then two phases that closed the pattern discovery loop.

Schema, Done Right

Phase 2 was the patterns-garden extended entry format — six optional fields, 747 tests, one design decision worth explaining.

Batching the Sweep

Forage SWEEP was opening one PR per entry — six to eight PRs for a typical session sweep. We fixed it.

Code Like Sanne

The taxonomy design went further than expected. Six gardens, developer profiles, 'code like Sanne Grinovero' as a retrieval mode — then we built Phase 1 with 722 tests green.

Beyond Claude

The MCP server is the moment the garden stops being a Claude Code feature and becomes something any AI tool can use. Then we looked at the foundations and didn't like what we saw.

The why layer

Phase 4 deduplication, WHY enrichment with bonus scoring, a contributor scoreboard, and retroactively wiring all the work to GitHub issues.

Five layers

The staleness problem had six candidate solutions, none quite right alone. We combined them into five. The garden now knows when to doubt itself.

From prototype to installable

Four docs pages. One install command. The garden skill is gone. Hortora is now something a stranger could actually use.

Post-Phase-2: Three things that needed fixing

Phase 2 shipped. The CI pipeline validates submissions, integrates on merge, and the garden is at 169 entries.

Hortora — Designing the Engine

Phase 2 in the roadmap was clear enough. The interesting part was working out the architecture.

The Session: One Fix, One Afternoon, One Project

I came in to fix retrieval. We fixed it in an hour. Then we didn't stop.

The Rootstock: How the Hortora Garden was Germinated

I kept losing hours. Not to bad code or wrong decisions — to rediscovery.