Building a Personal AI Agent System
2026-02-26 · Jazz Lien
The Problem: Too Many Projects, One Brain
I'm building 6 products simultaneously:
- Glimmer (memorial videos)
- Podsight (podcast transcription)
- Articulate (vocabulary app)
- Portfolio Manager (investment tracker)
- Jazz Gallery (AI art showcase)
- Personal Website (you're reading it)
Each has its own tech stack, deployment target, and context. Switching between them was killing my productivity. I'd forget where I left off, duplicate work, or worse — break things because I mixed up patterns from different projects.
The Solution: Treat Claude Code Like a Team
I stopped treating Claude Code as a single assistant and started treating it as a team of specialists. Each project gets its own session with its own context.
Port Allocation
First problem: every dev server defaults to port 3000 or 8000. Running multiple projects means port conflicts.
Solution: PORT_ALLOCATION.md at the root:
| Project |
Frontend |
Backend |
| Jazz Gallery |
3100 |
3101 |
| Glimmer |
3200 |
3201 |
| Articulate |
3300 |
— |
| Portfolio Manager |
3400 |
8001 |
| Podsight |
3500 |
3501 |
| Personal Website |
3600 |
3601 |
Each project's CLAUDE.md includes its assigned ports. New sessions see this immediately and use the right ports.
Project-Level CLAUDE.md
Every project has its own CLAUDE.md with:
- Architecture overview
- Key commands (with correct ports)
- Conventions and patterns
- Learned rules (mistakes we won't repeat)
When I start a session in /glimmer, Claude reads glimmer/CLAUDE.md and knows:
- It's a Next.js app on Cloudflare Pages
- Edge Runtime constraints apply
- Video generation uses client-driven polling
- ECPay handles payments
No re-explaining every session.
Skills: Decision Frameworks
Some decisions come up repeatedly across projects:
- Should I build this feature or use a service?
- Is this ready to ship?
- What should I prioritize?
I created .claude/skills/ with reusable frameworks:
should-i-build-this.md
Before building anything, run through:
- Does a tool/service already solve this? (Auth → Clerk, Payments → Stripe, Files → R2)
- Is this core value prop or infrastructure?
- Can this wait until after launch?
If the answer isn't "build it myself," don't.
ship-or-iterate.md
Checklist before launching:
- Core flow works end-to-end?
- Error states handled?
- Payment tested with real money?
- Mobile responsive?
If all yes, ship. Stop polishing.
revenue-potential.md
Score projects by cash flow potential. Helps prioritize when everything feels urgent.
Knowledge: Technical Learnings
.claude/knowledge/ stores patterns I've figured out:
cloudflare-edge-patterns.md — What works/breaks on Edge Runtime
taiwan-payments.md — ECPay integration guide
mobile-app-launch.md — iOS App Store submission gotchas
vibe-coding-stack.md — Preferred tools and what NOT to build
When I start a new project, Claude can reference these instead of me re-discovering the same lessons.
PM Handbook: Keeping Honest
.claude/pm-handbook.md is my operating manual. Key sections:
Chapter 7: New Projects
Before writing code:
- Challenge the Problem — Is this worth solving?
- Discovery Questions — Who's the user? What's the competition?
- Master Plan — Scope, non-goals, success metrics
Prevents building solutions to problems nobody has.
Chapter 8: Session Handover
When context window fills up, write HANDOVER.md:
- What was done this session
- Current blockers
- Next priorities
New sessions read this first. No lost context.
Chapter 10: Production Safety
6-layer defense before deploying:
- Type checking passes
- Tests pass
- Build succeeds
- Manual smoke test
- Feature flags for risky changes
- Rollback plan ready
The Meta-Lesson
The best builders aren't better at coding. They're better at knowing what NOT to build.
Every hour on commodity infrastructure is an hour NOT spent on:
- The feature that makes the product unique
- Distribution and marketing
- Talking to users
The agent system enforces this. Skills say "don't build auth." Knowledge says "use ECPay not Stripe in Taiwan." The PM handbook says "challenge the problem before writing code."
It's not about having AI write more code. It's about having AI help me write less code — and the right code.
My skills, knowledge, and PM handbook are in the ultimate_Claude repo if you want to adapt them.