You are a Senior Frontend Architect and DevOps Engineer with a keen eye for whimsical UI design. Your goal is to scaffold a new project, implement a "Todo List" (IndexedDB/Zustand), manage the lifecycle via Automated Pull Requests, and finalize documentation.
- Repo:
vrt-todo-r1(viagh repo createwith template). - Stack:
pnpm,Zustand,IndexedDB,Tailwind CSS. - Design Theme: "Animal Crossing: New Horizons" Aesthetic.
- Icons:
@phosphor-icons/react(Use 'fill' or 'duotone' weight for softness). - Fonts:
Baloo 2(English/Num - for bubbly feel),Noto Sans KR(Korean).
- Icons:
- DevOps:
standard-version, GitHub Actions.
For EACH Step in the execution plan, you must follow this exact "PR & Merge Routine":
- Branch:
git checkout -b feature/<step-name> - Work: Implement the required changes.
- Commit:
git commit -m "feat(<scope>): <message>"(Conventional Commits) - Push:
git push -u origin feature/<step-name> - PR:
gh pr create --title "feat(<scope>): <message>" --body "Automated implementation of Step <N>" --base main - Merge:
gh pr merge --merge --auto --delete-branch - Sync:
git checkout main && git pull
- Branch:
feature/setup - Action:
- Scaffold:
gh repo create vrt-todo-r1 --template https://github.com/naturalkei/vrt-starter-r1 --public --clone - Install
pnpmdeps & libs (idb,zustand,@phosphor-icons/react). - Install Dev deps:
standard-version.
- Scaffold:
- Protocol: Execute PR & Merge Routine (Commit:
chore(init): project scaffolding).
- Branch:
feature/database - Action:
- Create
src/lib/db.ts(kebab-case). - Initialize IndexedDB (
todo-db, v1). - Export async Promise-based helpers.
- Create
- Protocol: Execute PR & Merge Routine (Commit:
feat(db): add indexeddb wrapper).
- Branch:
feature/store - Action:
- Create
src/stores/todo-store.ts(kebab-case). - Implement
useTodoStorewith async actions.
- Create
- Protocol: Execute PR & Merge Routine (Commit:
feat(store): add zustand todo store).
- Branch:
feature/ui - Action:
- Typography Setup: Update
tailwind.config.ts. Add 'Baloo 2' and 'Noto Sans KR' to the font family stack. - Component Implementation: Create
src/components/TodoList.tsx(PascalCase). - Styling Guidelines (ACNH Aesthetic):
- Palette: Use soft pastel colors (creamy beige backgrounds, mint green accents, soft sky blues, earthy browns).
- Shapes: Use heavily rounded corners everywhere (e.g.,
rounded-3xl, pill shapes). - Borders: Use thick, soft-colored borders (e.g.,
border-4 border-creamy-dark). - Buttons: Make buttons look like bubbly, physical objects with soft shadows.
- Overall Feel: The UI should feel cozy, playful, and handcrafted, like a NookPhone interface.
- App Integration: Update
App.tsxto apply a full-page pastel background and render theTodoList.
- Typography Setup: Update
- Protocol: Execute PR & Merge Routine (Commit:
feat(ui): apply animal crossing aesthetic to todo app).
- Branch:
feature/devops - Action:
- Add
"release": "standard-version"script. - Ensure
.github/workflows/deploy.ymlusespnpm. - Create
.github/workflows/ci.yml(CI for PRs) with artifact upload.
- Add
- Protocol: Execute PR & Merge Routine (Commit:
ci: setup ci/cd pipelines).
- Branch:
feature/docs - Action:
- Overwrite
README.mdwith project details, emphasizing the "Animal Crossing Theme".
- Overwrite
- Protocol: Execute PR & Merge Routine (Commit:
docs: update readme with project details).
- File Naming:
.tsx= PascalCase, others = kebab-case. - Config Awareness: Modify existing
tailwind.config.ts. - VRT Integrity: Do NOT modify existing VRT configs.
- Self-Correction: Try to resolve git/gh issues automatically.
Please analyze this protocol. If understood, start executing Step 1 immediately.