แต่เมื่อเริ่มมี database, deploy, user จริง หรือคนอื่นมาช่วย ควรแยกเป็นไฟล์ใน docs/
Starter 1 — CLAUDE.md
ใช้ไฟล์นี้เป็น context หลักให้ Claude Code อ่านก่อนทำงาน
# CLAUDE.md## Project OverviewThis project is:- Name: [project name]- Purpose: [what this app does]- Target user: [who uses it]- Current stage: [prototype / beta / production]In plain language:[อธิบาย app นี้ 3–5 บรรทัด]## Product GoalThe main goal is:[เป้าหมายหลักของ project]Success means:- [acceptance criteria 1]- [acceptance criteria 2]- [acceptance criteria 3]## Non-GoalsDo not build these unless explicitly requested:- [สิ่งที่ยังไม่ทำ]- [สิ่งที่อยู่นอก scope]- [feature ที่ไว้ later]## Tech Stack- Framework: [Next.js / Vite / other]- Styling: [Tailwind / CSS / other]- Database: [Supabase / none / other]- Auth: [Supabase Auth / none / other]- Deploy: [Vercel / other]- Package manager: [npm / pnpm / yarn]If unsure, ask before changing stack or adding major dependencies.## Working RulesWhen working on this project:1. Explore first, then plan, then edit.2. Do not make large changes without a plan.3. Keep changes scoped to the requested task.4. Do not add new packages unless necessary.5. If a package is needed, explain why before installing.6. Do not put secrets or real API keys in code.7. Do not commit `.env` files.8. Do not disable security controls such as RLS as a permanent fix.9. After changes, summarize the diff in non-technical language.10. Provide manual test steps after every meaningful change.## Security RulesNever expose these in frontend/browser code:- secret keys- service role keys- database passwords- admin tokens- webhook secretsFor Supabase:- publishable key may be used in public client code- secret/service_role keys must stay server-side only- RLS should be enabled for tables accessed from the client- public users should only have the minimum permissions needed## CommandsCommon commands:```bash# install dependencies[TODO: npm install]# run dev server[TODO: npm run dev]# build[TODO: npm run build]# lint/test if available[TODO]
Before assuming a command, inspect package.json.
Manual QA Checklist
Before saying a task is done, check:
Main user flow works
Mobile layout works
Empty state works
Error state works
Form validation works
No secret is printed or exposed
Build passes if build command exists
Communication Style
Explain results for a non-coder:
what changed
why it changed
what to test
what risk remains
what decision is needed from the user
---
## Starter 2 — `.env.example`
ไฟล์นี้บอกว่าต้องตั้งค่า env var อะไรบ้าง แต่ห้ามใส่ค่าจริง
```bash
# .env.example
# Copy this file to .env.local for local development.
# Do not put real secrets in this example file.
# App
NEXT_PUBLIC_APP_URL=http://localhost:3000
# Supabase public values
NEXT_PUBLIC_SUPABASE_URL=your-supabase-project-url
NEXT_PUBLIC_SUPABASE_PUBLISHABLE_KEY=your-supabase-publishable-key
# Server-only secrets
# Do NOT expose these in frontend/browser code.
SUPABASE_SECRET_KEY=your-server-only-secret-key
SUPABASE_SERVICE_ROLE_KEY=do-not-use-in-browser
# Optional email provider
[email protected]
EMAIL_API_KEY=your-email-api-key
# Optional Stripe
STRIPE_SECRET_KEY=your-stripe-secret-key
STRIPE_WEBHOOK_SECRET=your-stripe-webhook-secret
NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY=your-stripe-publishable-key
# [Project Name]## What this app does[อธิบาย app นี้แบบภาษาคน 3–5 บรรทัด]## Current status- Stage: [prototype / beta / production]- Owner: [ชื่อคนรับผิดชอบ]- Last reviewed: [date]## Main user flows1. [user ทำอะไร step 1]2. [step 2]3. [step 3]## Tech stack- Frontend: [TODO]- Database: [TODO]- Auth: [TODO]- Deploy: [TODO]## Getting started```bash# install[TODO: npm install]# run locally[TODO: npm run dev]
Open:
http://localhost:3000
Environment variables
Copy .env.example to .env.local and fill in values.
Never commit .env.local.
Required variables:
NEXT_PUBLIC_APP_URL
NEXT_PUBLIC_SUPABASE_URL
NEXT_PUBLIC_SUPABASE_PUBLISHABLE_KEY
[TODO]
Deployment
Platform: [Vercel / other]
Production branch: [main]
Preview deployments: [yes/no]
Production URL: [TODO]
Manual QA
Before deploy, run through:
docs/QA_CHECKLIST.md
docs/SECURITY_CHECKLIST.md
Known issues
[TODO]
Backlog
[TODO]
---
## Starter 5 — `docs/QA_CHECKLIST.md`
ใช้ตรวจงานแบบคนใช้งานจริง ไม่ต้องอ่าน code
```markdown
# QA Checklist
## Project
- Project name: [name]
- Date tested: [date]
- Tester: [name]
- Environment: [local / preview / production]
- URL: [URL]
## Smoke test
- [ ] App opens without blank screen
- [ ] Main page loads within a reasonable time
- [ ] Navigation links work
- [ ] No obvious broken layout
- [ ] No console/error screen shown to user
## Main user flow
Flow tested:
[อธิบาย flow เช่น user กรอก waitlist form]
Steps:
1. [step]
2. [step]
3. [step]
Result:
- [ ] Works as expected
- [ ] Fails
- [ ] Needs review
Notes:
[notes]
## Form validation
- [ ] Required fields cannot be empty
- [ ] Invalid email is rejected
- [ ] Very long text does not break layout
- [ ] Duplicate submission behaves correctly
- [ ] Success message is clear
- [ ] Error message is clear and safe
## Mobile check
Test device/browser:
- [ ] iPhone size
- [ ] Android size
- [ ] Desktop narrow window
Check:
- [ ] Text readable
- [ ] Buttons tappable
- [ ] No horizontal scroll
- [ ] Forms usable
- [ ] CTA visible
## Empty/loading/error states
- [ ] Empty state is understandable
- [ ] Loading state appears when needed
- [ ] Error state tells user what to do next
- [ ] Error does not expose technical secret/config
## Data check
- [ ] Submitted data appears in the right place
- [ ] Data fields match expected format
- [ ] User cannot see data they should not see
- [ ] Test data is clearly marked or removed
## Final decision
- [ ] Pass
- [ ] Pass with minor issues
- [ ] Blocked
Blocking issues:
- [TODO]
Starter 6 — docs/SECURITY_CHECKLIST.md
ใช้เป็น checklist ก่อน deploy หรือก่อนเปิดให้ user จริง
# Handoff Document## App purpose[app นี้ทำอะไร เพื่อใคร]## Current status- Stage: [prototype / beta / production]- Owner: [name]- Last updated: [date]- Production URL: [URL]- Repository: [URL]## Main user flows1. [flow 1]2. [flow 2]3. [flow 3]## Tech stack- Frontend: [TODO]- Backend/API: [TODO]- Database: [TODO]- Auth: [TODO]- Deploy: [TODO]- Third-party services: [TODO]## How to run locally```bash# install[TODO]# run[TODO]# build[TODO]
Environment variables
Do not put real values in this document.
Name
Public/Secret
Used for
Where set
Notes
NEXT_PUBLIC_APP_URL
Public
App URL
Vercel/local
TODO
NEXT_PUBLIC_SUPABASE_URL
Public
Supabase
Vercel/local
TODO
NEXT_PUBLIC_SUPABASE_PUBLISHABLE_KEY
Public
Supabase client
Vercel/local
TODO
SUPABASE_SECRET_KEY
Secret
Server-side only
Vercel/local
TODO
Database
Tables:
Important fields:
Permissions / RLS
Explain in plain language:
Public users can: [TODO]
Logged-in users can: [TODO]
Admins can: [TODO]
Known permission risks:
[TODO]
Deployment
Platform: [Vercel]
Production branch: [main]
Preview deployments: [yes/no]
Rollback process: [summary]
Known issues
Issue
Impact
Priority
Notes
TODO
TODO
TODO
TODO
Backlog
P0
[TODO]
P1
[TODO]
P2 / Later
[TODO]
Security notes
[TODO]
Product decisions
Link to docs/DECISIONS.md if available.
---
## Starter 8 — `docs/DECISIONS.md`
ใช้เก็บเหตุผลสำคัญว่าทำไมเลือกแบบนี้
```markdown
# Decision Log
ใช้ไฟล์นี้บันทึก decision สำคัญของ project
## Template
### [YYYY-MM-DD] — [Decision title]
Decision:
[ตัดสินใจอะไร]
Context:
[ทำไมต้องตัดสินใจ]
Options considered:
1. [option 1]
2. [option 2]
3. [option 3]
Why this option:
[เหตุผล]
Risks:
[ความเสี่ยง]
Review later:
[ต้องกลับมาดูเมื่อไหร่]
---
## Decisions
### [YYYY-MM-DD] — Example: Use Supabase for waitlist database
Decision:
Use Supabase as the database for waitlist submissions.
Context:
The app needs to store emails and use cases from early users.
Options considered:
1. Google Sheet
2. Supabase
3. Custom backend
Why this option:
Supabase gives a real database and can support RLS when the app grows.
Risks:
Need to configure RLS correctly and avoid exposing secret keys.
Review later:
Review before opening the app to public users.
Starter 9 — docs/FEEDBACK.md
ใช้เก็บ feedback จาก user ชุดแรก ถ้ายังไม่ใช้ GitHub Issues หรือ Notion
# Feedback Log## How to write feedbackEach feedback item should include:- Who reported it- What they were trying to do- What happened- What they expected- Evidence if available- Impact---## Template### [YYYY-MM-DD] — [Short title]Reported by:[name / role]Page/URL:[URL]What were they trying to do?[description]What happened?[description]Expected result:[description]Evidence:[screenshot / error / steps]Impact:[low / medium / high]Category:[Bug / Improvement / New Feature / Question]Priority:[P0 / P1 / P2 / Later]Status:[New / Planned / In progress / Done / Won't do]
Starter 10 — docs/LAUNCH_CHECKLIST.md
ใช้ก่อนเปิด beta หรือ public
# Launch Checklist## Launch scope- Launch type: [private beta / public beta / production]- Audience: [who will use it]- Expected users: [number]- Launch date: [date]- Owner: [name]## Product readiness- [ ] Main flow works- [ ] Copy is understandable- [ ] Mobile is usable- [ ] Feedback channel is ready- [ ] Known limitations are written down## Technical readiness- [ ] Build passes- [ ] Preview tested- [ ] Production env vars set- [ ] Database ready- [ ] Rollback plan ready## Security readiness- [ ] Security checklist reviewed- [ ] No secrets exposed- [ ] RLS/permissions reviewed- [ ] Error messages safe- [ ] Logs safe## Support readiness- [ ] Someone will monitor after launch- [ ] User contact/support channel ready- [ ] FAQ or basic instructions ready- [ ] Incident plan known## Decision- [ ] Launch- [ ] Launch to smaller group only- [ ] Do not launch yetNotes:[TODO]
ให้ Claude ช่วยสร้างไฟล์พวกนี้ใน project
เมื่อคุณเปิด project จริงใน Claude Code ให้ใช้ prompt นี้
ความคิดเห็น
ยังไม่มีความคิดเห็น
เป็นคนแรกได้เลย