The business
Harbor Lane Software, based in Boston, Massachusetts, builds scheduling software for clinics and salons. Its 60 engineers work in one monorepo and have used Claude Code for six months, each set up differently.
The repository
| Package | Stack | Conventions |
|---|---|---|
web/ | React and TypeScript | Function components, hooks, React Testing Library |
api/ | Node and TypeScript | async/await, typed error classes, no default exports |
shared/ | TypeScript library | Strict types, every export documented with JSDoc |
infra/ | Terraform | Modules only, no inline resources, tags on everything |
Test files sit next to the code they test (Button.test.tsx beside Button.tsx), in every package.
What goes wrong today
- A 1,800-line root CLAUDE.md mixes coding style, testing, deployment and on-call notes. Every session loads all of it.
- New hires' sessions ignore the team's import ordering. The rules turned out to live in one senior engineer's
~/.claude/CLAUDE.md. - Each team keeps its own copy of a "release checklist" prompt in a wiki page.
- A security rule ("never commit secrets, never call
eval") is written in CLAUDE.md and was broken twice last quarter. - Big changes, such as moving
api/from Express to Fastify (about 50 route files), were started in direct execution and abandoned halfway.
Upcoming work
- Upgrade the date library across
web/andshared/(about 120 files). - Add an audit-log feature to
api/in a domain nobody on the team knows well. - Fix a handful of small, well-understood bugs each week.
People
| Stakeholder | Cares most about |
|---|---|
| VP Engineering (sponsor) | Consistent quality across teams |
| Staff engineer, developer experience | One configuration that everyone gets on clone |
| Security lead | Rules that cannot be skipped |
| New engineers | Sessions that already know the team's standards |