@ojokesusu/lintasai 1.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.github/workflows/publish-npm.yml +40 -0
- package/.github/workflows/validate.yml +93 -0
- package/AUDIT_POST_SETUP_PROMPT_v1.md +280 -0
- package/BOOTSTRAP_PROJECT_DOCS_PROMPT_v1.md +3 -0
- package/CHANGELOG.md +313 -0
- package/CLAUDE_universal_v1.md +1021 -0
- package/CONTRIBUTING.md +101 -0
- package/FIRST_SESSION_PROMPT_v1.md +7 -0
- package/JALANKAN_KIT.md +188 -0
- package/LICENSE +21 -0
- package/MULAI_DI_SINI.md +145 -0
- package/PROJECT_KICKOFF_PROMPT_v1.md +3 -0
- package/PROJECT_LIFECYCLE_PROMPT_v1.md +536 -0
- package/PROJECT_MIGRATION_PROMPT_v1.md +3 -0
- package/README.md +505 -0
- package/SETUP_POLA_B_PROMPT_v1.md +5 -0
- package/SPLIT_REPO_MIGRATION_PROMPT_v1.md +485 -0
- package/TEAM_ROLLOUT_GUIDE_v1.md +172 -0
- package/UPDATE_DOCS_PROMPT_v1.md +3 -0
- package/UPDATE_KIT_PROMPT_v1.md +213 -0
- package/bin/lintasai.js +81 -0
- package/docs/SIGNED_RELEASE.md +162 -0
- package/install-windows.ps1 +225 -0
- package/kit.ps1 +508 -0
- package/lib/agents-md.ps1 +174 -0
- package/lib/git-helpers.ps1 +104 -0
- package/lib/kit-files.psd1 +133 -0
- package/lib/manifest-signing.ps1 +65 -0
- package/lib/manifest.ps1 +267 -0
- package/lib/rollback.ps1 +241 -0
- package/lib/safety.ps1 +193 -0
- package/lib/template-deploy.ps1 +242 -0
- package/lib/version-detect.ps1 +161 -0
- package/package.json +36 -0
- package/setup-pola-b.ps1 +687 -0
- package/templates/ANALOGI_LIBRARY.md +7 -0
- package/templates/CLAUDE_TEAM_GUIDE.md +505 -0
- package/templates/CROSS_REPO_TYPES_PIPELINE.md +473 -0
- package/templates/DB_SCHEMA_SCAN_PROMPT.md +194 -0
- package/templates/DISCORD_BOT_INTEGRATION.md +187 -0
- package/templates/GLOSSARY_NON_PROGRAMMER.md +361 -0
- package/templates/INDEX.md +157 -0
- package/templates/MCP_SETUP.md +1145 -0
- package/templates/MIGRATE_TO_SUBFOLDER_PROMPT_v1.md +220 -0
- package/templates/ONBOARDING.md +172 -0
- package/templates/PROJECT_STARTER_TEMPLATES.md +264 -0
- package/templates/PROMPT_LIBRARY.md +790 -0
- package/templates/RLS_SETUP_PROMPT.md +167 -0
- package/templates/SECURITY_INCIDENT_PLAYBOOK.md +191 -0
- package/templates/SPLIT_REPO_AGENTS_TEMPLATES.md +32 -0
- package/templates/SPLIT_REPO_NON_PROGRAMMER_PROMPTS.md +604 -0
- package/templates/SPLIT_REPO_TOOLS_SETUP.md +388 -0
- package/templates/STACK_DETECTION_PATTERN.md +261 -0
- package/templates/STACK_GUIDE.md +564 -0
- package/templates/STACK_MIGRATION_GUIDE.md +154 -0
- package/templates/STACK_VERSIONS.md +31 -0
- package/templates/UPDATE_GUIDE.md +246 -0
- package/templates/_EXAMPLE.md +110 -0
- package/templates/_PATTERNS.md +173 -0
- package/templates/architecture.md +180 -0
- package/templates/architecture_auto.md +61 -0
- package/templates/decisions/README.md +108 -0
- package/templates/decisions/_TEMPLATE.md +84 -0
- package/templates/feature-flags-advanced.md +171 -0
- package/templates/github/CODEOWNERS.template +61 -0
- package/templates/github/GENERATE_TYPES_SCRIPT.md +77 -0
- package/templates/github/PUBLISH_SHARED_WORKFLOW.yml +52 -0
- package/templates/github/RECEIVE_BACKEND_UPDATE.yml +106 -0
- package/templates/github/RENOVATE_FRONTEND.json +28 -0
- package/templates/github/TRIGGER_FRONTEND_UPDATE.yml +29 -0
- package/templates/github/pull_request_template.md +44 -0
- package/templates/github/scripts/ai-review.js +153 -0
- package/templates/github/workflows/ai-review.yml +61 -0
- package/templates/github/workflows/backup-schemas.yml +169 -0
- package/templates/glossary.md +110 -0
- package/templates/split-agents/BACKEND.md +149 -0
- package/templates/split-agents/FRONTEND.md +141 -0
- package/templates/split-agents/SHARED.md +82 -0
- package/templates/split-agents/TOOLS.md +77 -0
- package/tests/Run-Tests.ps1 +19 -0
- package/tests/lib-safety.Tests.ps1 +66 -0
- package/tests/rollback.Tests.ps1 +66 -0
- package/tests/uninstall.Tests.ps1 +265 -0
- package/tests/update-kit.Tests.ps1 +78 -0
- package/uninstall.ps1 +794 -0
- package/update-kit.ps1 +907 -0
|
@@ -0,0 +1,220 @@
|
|
|
1
|
+
# templates/MIGRATE_TO_SUBFOLDER_PROMPT_v1.md — Migrasi docs/ Flat → Subfolder
|
|
2
|
+
|
|
3
|
+
> Versi 1 · 2026-06-01
|
|
4
|
+
> Paste prompt ini saat docs/ sudah flat banyak (>= 20 file) dan mau restrukturisasi ke subfolder grouping.
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## Kapan pakai prompt ini?
|
|
9
|
+
|
|
10
|
+
- ✅ `docs/` flat >= 20 file pendamping kode, navigasi mulai berat.
|
|
11
|
+
- ✅ Project punya struktur source yang clear domain (`src/lib/payment/`, `src/lib/auth/`, `src/app/api/<resource>/`) tapi docs masih flat.
|
|
12
|
+
- ✅ Mau pisahkan docs technical (`auth.md`, `prisma.md`) dari docs panduan tim (`CLAUDE_TEAM_GUIDE.md`, `PROMPT_LIBRARY.md`).
|
|
13
|
+
|
|
14
|
+
**JANGAN paste prompt ini kalau**:
|
|
15
|
+
- ❌ docs/ masih < 10 file (flat masih oke).
|
|
16
|
+
- ❌ Project tidak punya struktur source domain (semua file flat di src/).
|
|
17
|
+
- ❌ Belum siap commit migrasi (rename file = riwayat git penting).
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
## Untuk AI (mulai dari sini)
|
|
22
|
+
|
|
23
|
+
### Peran
|
|
24
|
+
Kamu adalah **Documentation Refactor Specialist**. Tujuan: migrasi `docs/` dari flat → subfolder grouping tanpa break cross-reference + git history preserved.
|
|
25
|
+
|
|
26
|
+
### Aturan kerja
|
|
27
|
+
- **Bahasa Indonesia**, junior-friendly.
|
|
28
|
+
- **Akurasi > speed**. Lebih baik 1 batch kecil + verify daripada bulk yang break links.
|
|
29
|
+
- **Pakai `git mv`** (bukan delete + create) supaya git history preserved.
|
|
30
|
+
- **Update SEMUA cross-reference** setelah move.
|
|
31
|
+
- **JANGAN touch file tim panduan** (`CLAUDE_TEAM_GUIDE.md`, `PROMPT_LIBRARY.md`, `ONBOARDING.md`, `STACK_GUIDE.md`, `MCP_SETUP.md`, `_PATTERNS.md`, `_EXAMPLE.md`, `architecture.md`, `glossary.md`, `architecture_auto.md`) — file ini stay di root docs/.
|
|
32
|
+
|
|
33
|
+
### Workflow 5 fase
|
|
34
|
+
|
|
35
|
+
#### FASE 1 — Audit current state
|
|
36
|
+
|
|
37
|
+
1. List semua `.md` di `docs/` root (skip subfolder existing kalau ada).
|
|
38
|
+
2. Untuk tiap `.md`, identifikasi source code yang related (mis. `docs/auth.md` ↔ `src/lib/auth.ts` ↔ `src/app/api/auth/...`).
|
|
39
|
+
3. Buat tabel ASCII:
|
|
40
|
+
|
|
41
|
+
```
|
|
42
|
+
| docs/ file | Related source | Suggested subfolder |
|
|
43
|
+
|--------------------------|------------------------|---------------------|
|
|
44
|
+
| auth.md | src/lib/auth.ts | security/ |
|
|
45
|
+
| prisma.md | src/lib/prisma.ts | lib/ |
|
|
46
|
+
| encryption.md | src/lib/encryption.ts | security/ |
|
|
47
|
+
| permissions.md | src/lib/permissions.ts | security/ |
|
|
48
|
+
| rate-limit.md | src/lib/rate-limit.ts | security/ |
|
|
49
|
+
| middleware.md | src/middleware.ts | (keep at root) |
|
|
50
|
+
| api-auth-nextauth.md | src/app/api/auth/... | api/auth/ |
|
|
51
|
+
| api-security.md | src/app/api/security/.. | api/security/ |
|
|
52
|
+
| api-vault.md | src/app/api/vault/... | api/vault/ |
|
|
53
|
+
| ... | ... | ... |
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
#### FASE 2 — Tampilkan ke user + konfirmasi
|
|
57
|
+
|
|
58
|
+
```
|
|
59
|
+
[Migrasi docs/ flat → subfolder]
|
|
60
|
+
|
|
61
|
+
Total docs/ flat: <N> file
|
|
62
|
+
Suggested grouping:
|
|
63
|
+
- docs/security/ — <X> file (auth, encryption, permissions, rate-limit)
|
|
64
|
+
- docs/lib/ — <Y> file (prisma, geo, cache, ...)
|
|
65
|
+
- docs/api/ — <Z> file (api routes, group by resource)
|
|
66
|
+
- docs/features/ — <W> file (per feature folder source)
|
|
67
|
+
- root docs/ — <K> file tim panduan (preserve)
|
|
68
|
+
|
|
69
|
+
Total move operations: <M>
|
|
70
|
+
Cross-reference updates needed: <C> lines across <F> files
|
|
71
|
+
|
|
72
|
+
Lanjut migrasi? (y/n)
|
|
73
|
+
y / Enter → mulai (per kategori, dengan verify per batch)
|
|
74
|
+
n → batalkan
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
Auto-confirm: kalau user kosong / Enter → "y" (default auto-confirm).
|
|
78
|
+
|
|
79
|
+
#### FASE 3 — Migrasi per kategori (batch)
|
|
80
|
+
|
|
81
|
+
Ulangi per kategori (security, lib, api, features):
|
|
82
|
+
|
|
83
|
+
1. **Buat subfolder** kalau belum ada:
|
|
84
|
+
```bash
|
|
85
|
+
mkdir -p docs/security
|
|
86
|
+
mkdir -p docs/api/auth docs/api/vault # dst per resource
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
2. **Move file** dengan `git mv`:
|
|
90
|
+
```bash
|
|
91
|
+
git mv docs/auth.md docs/security/auth.md
|
|
92
|
+
git mv docs/encryption.md docs/security/encryption.md
|
|
93
|
+
# dst
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
3. **Update cross-reference**:
|
|
97
|
+
- Baca tiap `.md` di docs/ tree (termasuk yang baru di-move).
|
|
98
|
+
- Cari pattern `[text](relative-path.md)` atau `[[basename]]` link.
|
|
99
|
+
- Update path relatif sesuai lokasi baru:
|
|
100
|
+
- Dari root → subfolder: `[auth.md](auth.md)` → `[auth.md](security/auth.md)`.
|
|
101
|
+
- Antar subfolder: `[auth.md](security/auth.md)` → `[auth.md](../security/auth.md)`.
|
|
102
|
+
- Dari subfolder → root: `[architecture.md](architecture.md)` → `[architecture.md](../architecture.md)`.
|
|
103
|
+
|
|
104
|
+
4. **Verify batch**: list file di subfolder + cek cross-ref tidak broken.
|
|
105
|
+
|
|
106
|
+
5. **Lanjut batch berikutnya** atau pause kalau user request.
|
|
107
|
+
|
|
108
|
+
#### FASE 4 — Update architecture_auto.md
|
|
109
|
+
|
|
110
|
+
Setelah semua migrasi selesai:
|
|
111
|
+
|
|
112
|
+
1. Re-generate `docs/architecture_auto.md` dengan struktur baru:
|
|
113
|
+
|
|
114
|
+
```markdown
|
|
115
|
+
# docs/architecture_auto.md — Registry semua file .md pendamping (TOC)
|
|
116
|
+
|
|
117
|
+
> Auto-maintained oleh AI
|
|
118
|
+
|
|
119
|
+
## Top-level (file tim panduan, preserve)
|
|
120
|
+
- [architecture.md](architecture.md) — peta makro proyek
|
|
121
|
+
- [glossary.md](glossary.md) — kamus istilah
|
|
122
|
+
- [_PATTERNS.md](_PATTERNS.md) — aturan dokumentasi tim
|
|
123
|
+
- [_EXAMPLE.md](_EXAMPLE.md) — contoh format
|
|
124
|
+
- [CLAUDE_TEAM_GUIDE.md](CLAUDE_TEAM_GUIDE.md) — panduan tim
|
|
125
|
+
- [PROMPT_LIBRARY.md](PROMPT_LIBRARY.md) — 10 prompt siap-pakai
|
|
126
|
+
- [ONBOARDING.md](ONBOARDING.md) — playbook dev baru
|
|
127
|
+
- [STACK_GUIDE.md](STACK_GUIDE.md) — stack guide
|
|
128
|
+
- [MCP_SETUP.md](MCP_SETUP.md) — MCP setup
|
|
129
|
+
- [RLS_SETUP_PROMPT.md](RLS_SETUP_PROMPT.md) — RLS prompt
|
|
130
|
+
- [DB_SCHEMA_SCAN_PROMPT.md](DB_SCHEMA_SCAN_PROMPT.md) — schema scan prompt
|
|
131
|
+
- [db-schema.md](db-schema.md) — DB schema (kalau ada)
|
|
132
|
+
|
|
133
|
+
## Security (docs/security/)
|
|
134
|
+
- [security/auth.md](security/auth.md) — NextAuth credentials + session
|
|
135
|
+
- [security/encryption.md](security/encryption.md) — AES-256-GCM vault
|
|
136
|
+
- [security/permissions.md](security/permissions.md) — RBAC matrix
|
|
137
|
+
- [security/rate-limit.md](security/rate-limit.md) — sliding-window limiter
|
|
138
|
+
|
|
139
|
+
## Library (docs/lib/)
|
|
140
|
+
- [lib/prisma.md](lib/prisma.md) — Prisma client singleton
|
|
141
|
+
- ...
|
|
142
|
+
|
|
143
|
+
## API routes (docs/api/)
|
|
144
|
+
### Auth
|
|
145
|
+
- [api/auth/nextauth.md](api/auth/nextauth.md) — NextAuth handler mount
|
|
146
|
+
- [api/auth/captcha.md](api/auth/captcha.md) — captcha endpoint
|
|
147
|
+
...
|
|
148
|
+
|
|
149
|
+
### Vault
|
|
150
|
+
- [api/vault/index.md](api/vault/index.md) — GET/POST vault
|
|
151
|
+
- [api/vault/reveal.md](api/vault/reveal.md) — decrypt password
|
|
152
|
+
...
|
|
153
|
+
|
|
154
|
+
## Features (docs/features/)
|
|
155
|
+
[Per feature folder kalau ada]
|
|
156
|
+
|
|
157
|
+
## ADR (docs/decisions/)
|
|
158
|
+
[Auto-link ADR files]
|
|
159
|
+
|
|
160
|
+
## Riwayat migrasi
|
|
161
|
+
| Tanggal | Aksi | Catatan |
|
|
162
|
+
|---|---|---|
|
|
163
|
+
| 2026-06-01 | Migrate flat -> subfolder | Total <N> file di-restructure |
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
#### FASE 5 — Commit + verify
|
|
167
|
+
|
|
168
|
+
1. **Commit** dengan message jelas:
|
|
169
|
+
```bash
|
|
170
|
+
git add -A
|
|
171
|
+
git commit -m "refactor(docs): migrate flat to subfolder grouping (security/, lib/, api/, features/)"
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
2. **Verify**:
|
|
175
|
+
- Klik random 5 cross-ref di markdown editor — semua link work.
|
|
176
|
+
- Cek `docs/architecture_auto.md` — entry up-to-date.
|
|
177
|
+
- Test render markdown di GitHub / IDE preview.
|
|
178
|
+
|
|
179
|
+
3. **Lapor ke user**:
|
|
180
|
+
```
|
|
181
|
+
✅ Migrasi selesai
|
|
182
|
+
- Total file di-move: <N>
|
|
183
|
+
- Subfolder dibuat: <K> (security/, lib/, api/, features/)
|
|
184
|
+
- Cross-reference di-update: <C> baris di <F> file
|
|
185
|
+
- Commit: <hash>
|
|
186
|
+
|
|
187
|
+
Verifikasi: docs/architecture_auto.md sudah refresh dengan struktur baru.
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
---
|
|
191
|
+
|
|
192
|
+
## Aturan SETELAH migrasi
|
|
193
|
+
|
|
194
|
+
- **LAZY-GENERATE 7.2b** aktif: docs baru otomatis ke subfolder yang relevan (kalau folder source punya >= 3 file CRITICAL).
|
|
195
|
+
- **AUTO-SYNC 7.1**: tiap edit code yang ada `.md` pendamping di subfolder, AI WAJIB update `.md` di lokasi yang benar (bukan root).
|
|
196
|
+
- **READ-MINIMAL 7.3**: AI baca `architecture_auto.md` dulu → tahu struktur subfolder → cherry-pick relevant.
|
|
197
|
+
|
|
198
|
+
---
|
|
199
|
+
|
|
200
|
+
## Troubleshooting
|
|
201
|
+
|
|
202
|
+
### Broken link setelah migrasi
|
|
203
|
+
- Cek output `git diff` cross-reference — ada path yang ke-skip update?
|
|
204
|
+
- Run grep: `grep -r "\[.*\](.*\.md)" docs/` → cari path yang tidak match file actual.
|
|
205
|
+
|
|
206
|
+
### Conflict antar-domain
|
|
207
|
+
- File `payment.md` related ke `src/lib/payment/` (lib) ATAU `src/app/api/payment/` (api)?
|
|
208
|
+
- Solusi: pisah jadi 2 file (`docs/lib/payment.md` + `docs/api/payment.md`) dengan cross-link.
|
|
209
|
+
- Atau pakai folder paling spesifik (`docs/payment/` containing both `lib.md` + `api.md`).
|
|
210
|
+
|
|
211
|
+
### Git history rusak setelah `git mv`
|
|
212
|
+
- Pastikan pakai `git mv`, BUKAN delete + create.
|
|
213
|
+
- Cek dengan `git log --follow docs/security/auth.md` — history harus tetap visible.
|
|
214
|
+
|
|
215
|
+
---
|
|
216
|
+
|
|
217
|
+
## Referensi
|
|
218
|
+
- Aturan 7.2b Folder auto-detect grouping: `./.claude-kit/CLAUDE_universal_v1.md` seksi 7.2b
|
|
219
|
+
- Aturan 7.4 ARCHITECTURE REGISTRY format: seksi 7.4
|
|
220
|
+
- Bootstrap workflow: `./.claude-kit/PROJECT_LIFECYCLE_PROMPT_v1.md` (Stage B: Bootstrap Docs)
|
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
# ONBOARDING.md — Timeline Day 0–14 untuk Dev Baru Hire
|
|
2
|
+
|
|
3
|
+
> Versi 2 · 2026-06-03
|
|
4
|
+
> File ini adalah **checklist linier 14 hari**. Detail workflow, branching, escalation ada di `CLAUDE_TEAM_GUIDE.md` — jangan duplikat di sini.
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## Sebelum Mulai
|
|
9
|
+
|
|
10
|
+
Kamu baru bergabung dengan tim AI-first. Tim ini coding 100% lewat Claude Code — tidak masalah kalau kamu bukan programmer formal. Yang penting: **bisa kasih konteks ke AI dengan jelas** dan **bisa baca code untuk verifikasi**.
|
|
11
|
+
|
|
12
|
+
Centang `[x]` di file lokal kamu (jangan commit) sebagai progress tracker pribadi. Ikuti urutan, jangan loncat fase.
|
|
13
|
+
|
|
14
|
+
> **Pointer wajib**: detail workflow harian → `CLAUDE_TEAM_GUIDE.md` §4. Branching → §5. Escalation (kapan tanya siapa) → §13. Anti-pattern → §12 (yang me-link ke `docs/GLOSSARY_NON_PROGRAMMER.md` §8). Rollback playbook → §13b.
|
|
15
|
+
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
## BACA DULU (2 File Wajib, ~20 menit)
|
|
19
|
+
|
|
20
|
+
### 1. Glossary Istilah Teknis (~15 menit)
|
|
21
|
+
Buka **`docs/GLOSSARY_NON_PROGRAMMER.md`** — peta istilah teknis dengan analogi sehari-hari (mis. "PR = lapor ke atasan untuk review"). Scroll sampai habis, **tidak perlu hafal** — bookmark, balik baca tiap ketemu istilah asing.
|
|
22
|
+
|
|
23
|
+
### 2. Security Incident Playbook (~5 menit)
|
|
24
|
+
Buka **`docs/SECURITY_INCIDENT_PLAYBOOK.md`** — step-by-step kalau detect **token bocor**, **secret leak**, atau **security alert**. **Print checklist akhirnya, tempel di laptop.** Saat panik, baca checklist > improvise.
|
|
25
|
+
|
|
26
|
+
**Signal trigger playbook**: email "Secret detected" dari GitHub, AI Reviewer comment "Possible token leak", email usage spike, file `.env.local` muncul di `git status`.
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
## Day 0 — Setup tools & akses (3–5 jam)
|
|
31
|
+
|
|
32
|
+
**Baseline**: Windows 10/11 / macOS 12+ / Ubuntu 22+, RAM ≥8GB (16GB recommended), disk ≥10GB kosong. Spec di bawah ini → lapor owner dulu.
|
|
33
|
+
|
|
34
|
+
- [ ] Install **Claude Code** (https://docs.claude.com)
|
|
35
|
+
- [ ] Install **Git**, tes: `git --version`
|
|
36
|
+
- [ ] Install **Node.js LTS** (20+), tes: `node --version`
|
|
37
|
+
- [ ] Install **pnpm** (`npm install -g pnpm`)
|
|
38
|
+
- [ ] Install **GitHub CLI** (`gh`), login: `gh auth login`
|
|
39
|
+
- [ ] Install **VS Code** (optional: extension Claude Code)
|
|
40
|
+
- [ ] Dapat **akses repo proyek** dari owner (GitHub org invitation)
|
|
41
|
+
- [ ] Dapat **akses channel tim** (Slack/Discord/Telegram), perkenalan singkat
|
|
42
|
+
- [ ] Dapat **akses tools tim** sesuai role (Vercel, Supabase, dll)
|
|
43
|
+
- [ ] **Clone repo**: `git clone <URL>` ke `~/projects/<nama>`
|
|
44
|
+
- [ ] Baca **`README.md`** proyek, cari section setup
|
|
45
|
+
- [ ] **Install dependencies**: `pnpm install`
|
|
46
|
+
- [ ] **Copy `.env.example` → `.env.local`**, minta nilai env dari owner/senior via **DM** (JANGAN channel publik)
|
|
47
|
+
- [ ] **Generate Prisma client** (kalau proyek pakai Prisma): brief Claude `Tolong jalankan npx prisma generate`. Tanpa ini, dev server crash. Skip kalau tidak pakai Prisma (cek `package.json`)
|
|
48
|
+
- [ ] **Jalankan dev server**: `pnpm dev`, buka `localhost:3000`, pastikan load
|
|
49
|
+
- [ ] Buka Claude Code: `claude` di terminal folder proyek
|
|
50
|
+
- [ ] Paste **`JALANKAN_KIT.md`** ke Claude (file di `./.claude-kit/JALANKAN_KIT.md`)
|
|
51
|
+
- [ ] **Verifikasi**: tanya Claude "baca `docs/architecture.md` dan jelaskan proyek ini dalam 5 kalimat". Jawaban masuk akal → setup OK
|
|
52
|
+
|
|
53
|
+
**Stuck?** Tools install → Claude Code (sesi terpisah). Akses repo/dashboard → DM owner. Env vars → DM senior dev. Lihat `CLAUDE_TEAM_GUIDE.md` §13.
|
|
54
|
+
|
|
55
|
+
---
|
|
56
|
+
|
|
57
|
+
## Day 1 — Baca dokumentasi (30–60 menit, bisa 2 sesi)
|
|
58
|
+
|
|
59
|
+
**Urutan baca**:
|
|
60
|
+
- [ ] **`./.claude-kit/CLAUDE_universal_v1.md`** — aturan global tim (WAJIB)
|
|
61
|
+
- [ ] **`AGENTS.md`** proyek (root) — override khusus proyek
|
|
62
|
+
- [ ] **`docs/architecture.md`** — peta makro proyek (WAJIB)
|
|
63
|
+
- [ ] **`docs/glossary.md`** — kamus istilah khusus proyek
|
|
64
|
+
- [ ] **`docs/_PATTERNS.md`** — cara tim nulis docs
|
|
65
|
+
- [ ] **`docs/_EXAMPLE.md`** — contoh konkret `.md` siap-pakai
|
|
66
|
+
- [ ] **`docs/CLAUDE_TEAM_GUIDE.md`** — panduan kerja tim (WAJIB)
|
|
67
|
+
- [ ] **`docs/PROMPT_LIBRARY.md`** — skim dulu, detail pas butuh
|
|
68
|
+
- [ ] **`docs/STACK_GUIDE.md`** (kalau ada)
|
|
69
|
+
- [ ] **`docs/MCP_SETUP.md`** (kalau ada)
|
|
70
|
+
|
|
71
|
+
**Cara baca yang benar**: jangan skim, tanya Claude kalau tidak paham ("jelaskan dengan analogi"), bikin mind map sendiri, verifikasi pemahaman (minta Claude quiz 5 pertanyaan).
|
|
72
|
+
|
|
73
|
+
**Output Day 1**:
|
|
74
|
+
- [ ] 1 halaman ringkasan proyek dengan kata-kata kamu sendiri
|
|
75
|
+
- [ ] List 5 istilah baru
|
|
76
|
+
- [ ] List 3 pertanyaan untuk teammate
|
|
77
|
+
|
|
78
|
+
---
|
|
79
|
+
|
|
80
|
+
## Day 1–2 — First PR (good first issue)
|
|
81
|
+
|
|
82
|
+
Goal: PR pertama merged. **Tujuan utama bukan output, tapi paham workflow end-to-end.**
|
|
83
|
+
|
|
84
|
+
- [ ] Owner/senior assign micro-task via channel chat (typo fix, copy update, dependency bump, styling minor)
|
|
85
|
+
- [ ] **Pair dengan senior** di Slack/Discord. Jangan sungkan tanya
|
|
86
|
+
- [ ] Baca task, pastikan paham acceptance criteria
|
|
87
|
+
- [ ] **Ikuti workflow standar**: lihat `CLAUDE_TEAM_GUIDE.md` §4 (1 task = 1 sesi) + §5 (branching: `git checkout -b fix/<desc>` → commit → PR)
|
|
88
|
+
- [ ] Pakai **Prompt 2** dari `PROMPT_LIBRARY.md` (Fix bug) atau **Prompt 1** (Tambah fitur)
|
|
89
|
+
- [ ] **JANGAN auto-accept** — baca tiap perubahan
|
|
90
|
+
- [ ] Update `docs/<modul>.md` kalau berubah perilaku publik
|
|
91
|
+
- [ ] Test lokal sebelum push
|
|
92
|
+
- [ ] Request review dari senior pair
|
|
93
|
+
- [ ] Apply revisions sampai approve + CI hijau → merged
|
|
94
|
+
- [ ] **Refleksi**: tulis 3 hal yang dipelajari di catatan pribadi
|
|
95
|
+
|
|
96
|
+
**Gagal merge dalam 2 hari?** Tanya senior: "apakah task ini kebesaran?". Pecah sub-task atau ganti task.
|
|
97
|
+
|
|
98
|
+
---
|
|
99
|
+
|
|
100
|
+
## Day 3–7 — Independent task dengan pair review
|
|
101
|
+
|
|
102
|
+
Goal: kerja mandiri, tapi tiap PR tetap di-review senior.
|
|
103
|
+
|
|
104
|
+
- [ ] Ambil 2–4 task size **S–M** (1–2 hari per task). Hindari L/XL dulu
|
|
105
|
+
- [ ] Tiap task: **sesi Claude baru, fresh context** (aturan emas `CLAUDE_TEAM_GUIDE.md` §4)
|
|
106
|
+
- [ ] Pakai `PROMPT_LIBRARY.md` sesuai jenis task
|
|
107
|
+
- [ ] **Branch max 3 hari hidup** (§5). Lebih = diskusi dengan senior
|
|
108
|
+
- [ ] Tiap PR: senior review min 1 orang + kamu review min 1 PR teman (Prompt 5)
|
|
109
|
+
- [ ] Update `docs/` setiap PR yang ubah behavior publik
|
|
110
|
+
- [ ] **Daily check-in** di channel tim: "kemarin X, hari ini Y, blocker Z"
|
|
111
|
+
|
|
112
|
+
**Kebiasaan yang dibangun**: test lokal sebelum push, cek Vercel preview sebelum request review, tulis PR description jelas (konteks, perubahan, screenshot, cara test), self-review diff sendiri sebelum minta orang lain.
|
|
113
|
+
|
|
114
|
+
**Red flags wajib tangkap**:
|
|
115
|
+
- AI import library baru tanpa kamu minta → stop, tanya senior
|
|
116
|
+
- PR diff > 500 baris → task kebesaran, pecah
|
|
117
|
+
- CI merah > 30 menit tidak fix → minta tolong
|
|
118
|
+
|
|
119
|
+
---
|
|
120
|
+
|
|
121
|
+
## Day 7–14 — Full ownership 1 modul
|
|
122
|
+
|
|
123
|
+
Goal: kamu jadi **DRI** (Directly Responsible Individual) untuk 1 modul kecil. Owner & senior step back.
|
|
124
|
+
|
|
125
|
+
- [ ] Owner assign **1 modul kecil** (mis. `features/notifications/`)
|
|
126
|
+
- [ ] Kamu jadi **first responder** untuk bug modul itu
|
|
127
|
+
- [ ] Kamu yang **review PR teman** yang sentuh modul itu (Prompt 5)
|
|
128
|
+
- [ ] Kamu yang **update `docs/<modul>.md`** sesuai realita
|
|
129
|
+
|
|
130
|
+
**Tanggung jawab**:
|
|
131
|
+
- [ ] **Health check modul** — code & docs sinkron, fix kalau drift
|
|
132
|
+
- [ ] **Backlog kecil** — 3–5 improvement ide, share ke channel
|
|
133
|
+
- [ ] **Eksekusi 1–2 improvement** sebagai PR sendiri
|
|
134
|
+
- [ ] **Buat ADR** kalau ada keputusan desain non-trivial (Prompt 10)
|
|
135
|
+
|
|
136
|
+
**Blocker > 1 hari?** Escalate ke senior dengan konteks lengkap (yang sudah dicoba, output AI, error message). Detail kapan tanya siapa: `CLAUDE_TEAM_GUIDE.md` §13. Jangan diam karena malu — 1 hari stuck = 1 hari yang bisa di-unblock 15 menit.
|
|
137
|
+
|
|
138
|
+
**Output Day 14**:
|
|
139
|
+
- [ ] Modul **jalan + docs lengkap**
|
|
140
|
+
- [ ] Min. **5 PR merged** total selama 14 hari
|
|
141
|
+
- [ ] Min. **5 PR teman di-review**
|
|
142
|
+
- [ ] **Self-assessment**: 1 halaman "3 hal lancar, 3 hal sulit, 1 hal mau dipelajari bulan depan", share ke owner
|
|
143
|
+
|
|
144
|
+
---
|
|
145
|
+
|
|
146
|
+
## Day 15+ — Mode normal + quarterly review
|
|
147
|
+
|
|
148
|
+
- **Daily**: check-in tim, kerjain task, review PR teman
|
|
149
|
+
- **Weekly**: 1–2 PR merged, 2–3 PR teman di-review
|
|
150
|
+
- **Monthly**: cek `docs/architecture.md` modul kamu masih akurat? Update kalau drift
|
|
151
|
+
- **Quarterly**: ikut kit review session (`CLAUDE_TEAM_GUIDE.md` §14). PR ke kit `lintasAI` minimal 1x per kuartal
|
|
152
|
+
|
|
153
|
+
---
|
|
154
|
+
|
|
155
|
+
## Tips emas untuk dev baru hire AI-first
|
|
156
|
+
|
|
157
|
+
1. **Jangan malu tidak tahu**. Tim hire kamu tahu kamu bukan programmer berpengalaman. Bertanya = sehat.
|
|
158
|
+
2. **Jangan terlalu bergantung AI**. AI bisa salah. Kamu yang verifikasi, kamu yang accountable.
|
|
159
|
+
3. **Baca diff sendiri sebelum push**. Wajib. Tidak ada alasan.
|
|
160
|
+
4. **Konteks > kecepatan**. PR lambat bersih > PR cepat kotor.
|
|
161
|
+
5. **Update docs adalah deliverable**. Bukan opsional.
|
|
162
|
+
6. **2 minggu pertama itu lambat — normal**. Jangan banding-bandingin sama senior 2 tahun.
|
|
163
|
+
|
|
164
|
+
> Anti-pattern detail (vibe code accept, mega prompt, skip docs, branch panjang umur, dll): `docs/GLOSSARY_NON_PROGRAMMER.md` §8.
|
|
165
|
+
|
|
166
|
+
---
|
|
167
|
+
|
|
168
|
+
## Penutup
|
|
169
|
+
|
|
170
|
+
Selamat datang di tim. 14 hari pertama adalah fondasi — kalau pondasi kuat, sisanya smooth. Kalau ada bagian playbook ini yang kamu rasa salah/missing/outdated — PR ke `lintasAI`.
|
|
171
|
+
|
|
172
|
+
Good luck. Slow is smooth, smooth is fast.
|
|
@@ -0,0 +1,264 @@
|
|
|
1
|
+
# Project Stack Starter Templates - lintasAI
|
|
2
|
+
|
|
3
|
+
> Pre-built project boilerplate untuk start project BARU dengan lintasAI embedded.
|
|
4
|
+
> Audience: Owner yang mau bikin project baru (selain project current).
|
|
5
|
+
> Default Recommendation: project setengah jadi (mature) JANGAN pakai starter, langsung adapt lintasAI.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Filosofi
|
|
10
|
+
|
|
11
|
+
Starter template = jumpstart project baru. SKIP setup awal 1-2 hari, langsung punya:
|
|
12
|
+
|
|
13
|
+
- Stack dasar terpasang (Next.js, Prisma, Supabase, dst)
|
|
14
|
+
- lintasAI v1.0.0 embedded di `.claude-kit/`
|
|
15
|
+
- Tier scope skeleton ready
|
|
16
|
+
- Discord webhook template
|
|
17
|
+
- Pre-commit hooks configured
|
|
18
|
+
- Sample auth flow + dashboard layout
|
|
19
|
+
|
|
20
|
+
Analogi: kayak beli rumah dengan furniture lengkap. Tinggal masuk, tata barang sendiri. Lebih cepat dari beli rumah kosong + furniture satu-satu.
|
|
21
|
+
|
|
22
|
+
Filosofi inti: starter template TIDAK pernah bawa logika bisnis. Cuma struktur + commodity code (auth, layout, validation). Owner tinggal isi bisnis di atas pondasi yang sudah siap.
|
|
23
|
+
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
## DEFAULT RECOMMENDATION
|
|
27
|
+
|
|
28
|
+
PERHATIAN: Untuk user yang sudah punya project setengah jadi, **SKIP starter template, langsung adapt lintasAI**.
|
|
29
|
+
|
|
30
|
+
Kenapa?
|
|
31
|
+
|
|
32
|
+
- Project setengah jadi sudah ada struktur sendiri (folder layout, konvensi naming, tooling)
|
|
33
|
+
- Apply starter template = harus refactor existing code biar match struktur starter
|
|
34
|
+
- Effort migrate >>> effort adapt
|
|
35
|
+
- Risiko regression tinggi (kode lama bisa break karena struktur baru)
|
|
36
|
+
|
|
37
|
+
Pakai starter cuma kalau:
|
|
38
|
+
|
|
39
|
+
- Project benar-benar baru (fresh, belum ada code)
|
|
40
|
+
- Mau setup ke-2 (project baru selain yang sekarang)
|
|
41
|
+
- Spin-off / new product line dari project existing
|
|
42
|
+
- Eksperimen / proof-of-concept yang nantinya bisa dibuang
|
|
43
|
+
|
|
44
|
+
Kalau ragu: tanya diri sendiri "kalau saya buang struktur project sekarang dan pakai starter, berapa file yang harus saya rewrite?" Kalau > 30% file, JANGAN pakai starter.
|
|
45
|
+
|
|
46
|
+
---
|
|
47
|
+
|
|
48
|
+
## Available Templates
|
|
49
|
+
|
|
50
|
+
### Template 1: lintasai-starter-nextjs-prisma-supabase
|
|
51
|
+
|
|
52
|
+
Status: Recommended untuk SaaS dengan database
|
|
53
|
+
|
|
54
|
+
Stack:
|
|
55
|
+
|
|
56
|
+
- Next.js (lihat STACK_VERSIONS.md untuk versi terbaru) (App Router + Server Action)
|
|
57
|
+
- Prisma (lihat STACK_VERSIONS.md untuk versi terbaru) ORM
|
|
58
|
+
- Supabase PostgreSQL
|
|
59
|
+
- NextAuth v4 (Credentials + OAuth)
|
|
60
|
+
- Tailwind v4 + Shadcn UI
|
|
61
|
+
- TypeScript strict
|
|
62
|
+
- lintasAI v1.0.0 embedded
|
|
63
|
+
|
|
64
|
+
What's included:
|
|
65
|
+
|
|
66
|
+
- Sample auth flow: register, login, password reset
|
|
67
|
+
- Sample dashboard layout (sidebar + topbar)
|
|
68
|
+
- Sample protected route
|
|
69
|
+
- Sample API route dengan validation
|
|
70
|
+
- Sample Prisma schema (User, Account, Session, VerificationToken)
|
|
71
|
+
- Sample migration
|
|
72
|
+
- Pre-commit hook (lint + typecheck)
|
|
73
|
+
- Discord webhook template untuk notif deploy
|
|
74
|
+
- `.env.example` lengkap dengan komentar
|
|
75
|
+
|
|
76
|
+
Setup time: ~30 menit dari clone sampai `npm run dev` jalan
|
|
77
|
+
|
|
78
|
+
Cara pakai:
|
|
79
|
+
|
|
80
|
+
```bash
|
|
81
|
+
git clone https://github.com/ojokesusu/lintasai-starter-nextjs-prisma-supabase my-new-app
|
|
82
|
+
cd my-new-app
|
|
83
|
+
npm install
|
|
84
|
+
cp .env.example .env.local
|
|
85
|
+
# Edit .env.local: isi DATABASE_URL, NEXTAUTH_SECRET, dst
|
|
86
|
+
npm run dev
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
### Template 2: lintasai-starter-nextjs-shadcn-tailwind
|
|
90
|
+
|
|
91
|
+
Status: Recommended untuk UI-focused project
|
|
92
|
+
|
|
93
|
+
Stack:
|
|
94
|
+
|
|
95
|
+
- Next.js (lihat STACK_VERSIONS.md untuk versi terbaru) (no Prisma, no DB)
|
|
96
|
+
- Shadcn UI + Tailwind v4
|
|
97
|
+
- Component library starter (50+ pre-built component)
|
|
98
|
+
- Storybook configured
|
|
99
|
+
- Playwright E2E configured
|
|
100
|
+
- TypeScript strict
|
|
101
|
+
- lintasAI v1.0.0 embedded
|
|
102
|
+
|
|
103
|
+
Best untuk:
|
|
104
|
+
|
|
105
|
+
- Landing page builder
|
|
106
|
+
- Component library demo
|
|
107
|
+
- Static site dengan dashboard
|
|
108
|
+
- No backend project
|
|
109
|
+
- Marketing site dengan CMS headless
|
|
110
|
+
|
|
111
|
+
Setup time: ~15 menit (no DB = lebih cepat)
|
|
112
|
+
|
|
113
|
+
### Template 3: lintasai-starter-monorepo-turborepo
|
|
114
|
+
|
|
115
|
+
Status: Recommended untuk team 5+ yang mau monorepo dari awal
|
|
116
|
+
|
|
117
|
+
Stack:
|
|
118
|
+
|
|
119
|
+
- Turborepo workspaces
|
|
120
|
+
- `apps/web` (Next.js)
|
|
121
|
+
- `apps/api` (Hono atau Next.js API mode)
|
|
122
|
+
- `packages/ui` (shared components)
|
|
123
|
+
- `packages/shared` (types)
|
|
124
|
+
- `packages/tools` (scripts)
|
|
125
|
+
- Discord webhook integration
|
|
126
|
+
- CODEOWNERS skeleton
|
|
127
|
+
- lintasAI v1.0.0 embedded di root
|
|
128
|
+
|
|
129
|
+
Best untuk:
|
|
130
|
+
|
|
131
|
+
- Team yang mau split repo dari awal (skip migration nanti)
|
|
132
|
+
- Confident dengan monorepo tooling
|
|
133
|
+
- Multi-app product (web + mobile + admin)
|
|
134
|
+
|
|
135
|
+
Setup time: ~45 menit (lebih banyak konfigurasi workspace)
|
|
136
|
+
|
|
137
|
+
### Template 4: lintasai-starter-mobile-expo
|
|
138
|
+
|
|
139
|
+
Status: Future (belum tersedia, target Q3 2026)
|
|
140
|
+
|
|
141
|
+
Stack:
|
|
142
|
+
|
|
143
|
+
- React Native + Expo
|
|
144
|
+
- React Query
|
|
145
|
+
- AsyncStorage
|
|
146
|
+
- Push notifications setup
|
|
147
|
+
- lintasAI v1.0.0 embedded
|
|
148
|
+
|
|
149
|
+
---
|
|
150
|
+
|
|
151
|
+
## How to Use Template
|
|
152
|
+
|
|
153
|
+
### Skenario A: Bikin Project Baru (Fresh)
|
|
154
|
+
|
|
155
|
+
```bash
|
|
156
|
+
# Step 1: Clone template
|
|
157
|
+
git clone https://github.com/ojokesusu/lintasai-starter-<NAME> <project-baru>
|
|
158
|
+
cd <project-baru>
|
|
159
|
+
|
|
160
|
+
# Step 2: Reset git history (mulai bersih, bukan fork)
|
|
161
|
+
rm -rf .git
|
|
162
|
+
git init
|
|
163
|
+
git add .
|
|
164
|
+
git commit -m "initial commit from lintasai-starter-<NAME>"
|
|
165
|
+
|
|
166
|
+
# Step 3: Bikin repo baru di GitHub
|
|
167
|
+
gh repo create ojokesusu/<project-baru> --private --source=. --remote=origin --push
|
|
168
|
+
|
|
169
|
+
# Step 4: Setup env
|
|
170
|
+
cp .env.example .env.local
|
|
171
|
+
# Edit .env.local: isi DATABASE_URL, NEXTAUTH_SECRET, API keys
|
|
172
|
+
|
|
173
|
+
# Step 5: Install + dev
|
|
174
|
+
npm install
|
|
175
|
+
npm run dev
|
|
176
|
+
|
|
177
|
+
# Step 6: Pakai lintasAI workflow
|
|
178
|
+
# Buka .claude-kit/JALANKAN_KIT.md, paste ke Claude Code
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
### Skenario B: Project Sudah Ada (Setengah Jadi)
|
|
182
|
+
|
|
183
|
+
JANGAN pakai starter template. Langsung adapt lintasAI:
|
|
184
|
+
|
|
185
|
+
```bash
|
|
186
|
+
cd <existing-project>
|
|
187
|
+
git clone https://github.com/ojokesusu/lintasAI.git .claude-kit
|
|
188
|
+
.claude-kit/setup-pola-b.ps1
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
LintasAI akan auto-detect stack (via `STACK_DETECTION_PATTERN.md`) dan customize setup berdasarkan project existing.
|
|
192
|
+
|
|
193
|
+
---
|
|
194
|
+
|
|
195
|
+
## Maintenance Starter Templates
|
|
196
|
+
|
|
197
|
+
Owner (lintasAI maintainer) update template tiap kit version baru:
|
|
198
|
+
|
|
199
|
+
1. Update template repo dengan kit baru (`.claude-kit/` refresh)
|
|
200
|
+
2. Update sample code kalau ada API change (Next.js bump, Prisma bump, dst)
|
|
201
|
+
3. Test fresh clone -> jalan tanpa error
|
|
202
|
+
4. Tag template repo dengan version (`v1.0.0`, `v1.1.0`, dst)
|
|
203
|
+
5. Update CHANGELOG di tiap template repo
|
|
204
|
+
|
|
205
|
+
User yang sudah clone template TIDAK otomatis update. Mereka manual sync `.claude-kit/` via:
|
|
206
|
+
|
|
207
|
+
```bash
|
|
208
|
+
.claude-kit/kit.ps1 update
|
|
209
|
+
```
|
|
210
|
+
|
|
211
|
+
Sample code (auth flow, dashboard, dst) TIDAK auto-sync. User cherry-pick manual kalau mau adopt pattern baru.
|
|
212
|
+
|
|
213
|
+
---
|
|
214
|
+
|
|
215
|
+
## Roadmap
|
|
216
|
+
|
|
217
|
+
Template yang akan dirilis nanti:
|
|
218
|
+
|
|
219
|
+
- Mobile app (React Native + Expo) - Q3 2026
|
|
220
|
+
- AI chatbot (Vercel AI SDK + streaming) - Q4 2026
|
|
221
|
+
- E-commerce (Next.js + Stripe + Inventory) - Q4 2026
|
|
222
|
+
- SaaS dashboard (multi-tenant + billing) - Q1 2027
|
|
223
|
+
- Internal tool (Next.js + drag-drop form builder) - TBD
|
|
224
|
+
|
|
225
|
+
User feedback welcome untuk request template baru. Submit issue di repo `ojokesusu/lintasAI` dengan label `starter-template-request`.
|
|
226
|
+
|
|
227
|
+
---
|
|
228
|
+
|
|
229
|
+
## FAQ
|
|
230
|
+
|
|
231
|
+
**Q: Bisa pakai starter buat project yang sudah ada?**
|
|
232
|
+
A: Tidak recommended. Refactor existing > 80% kode = lebih effort dari mulai fresh. Pakai adapt lintasAI saja (Skenario B).
|
|
233
|
+
|
|
234
|
+
**Q: Starter punya algoritma rahasia?**
|
|
235
|
+
A: TIDAK. Starter = struktur + commodity code (auth flow, layout, validation). Tidak ada IP proprietary. Logika bisnis = owner isi sendiri.
|
|
236
|
+
|
|
237
|
+
**Q: Bisa fork starter + customize?**
|
|
238
|
+
A: BISA. Lisensi: MIT (free use, modify, redistribute). Fork, ganti nama, jual, terserah.
|
|
239
|
+
|
|
240
|
+
**Q: Berapa cost pakai starter?**
|
|
241
|
+
A: $0. Starter = repo template gratis. Cost cuma untuk hosting (Vercel, Supabase, dst) yang sama saja kalau bikin dari nol.
|
|
242
|
+
|
|
243
|
+
**Q: Starter update tiap berapa lama?**
|
|
244
|
+
A: Mengikuti release lintasAI kit (rata-rata 2-4 minggu) + bump major framework (Next.js, Prisma).
|
|
245
|
+
|
|
246
|
+
**Q: Kalau Next.js major version baru keluar (lihat STACK_VERSIONS.md), starter auto-upgrade?**
|
|
247
|
+
A: Tidak otomatis. Owner test dulu di staging, baru release versi baru starter dengan tag `v2.0.0`.
|
|
248
|
+
|
|
249
|
+
**Q: Bisa kombinasi 2 starter?**
|
|
250
|
+
A: Tidak praktis. Pilih satu yang paling dekat ke kebutuhan, lalu adapt manual.
|
|
251
|
+
|
|
252
|
+
**Q: Starter cocok buat hackathon?**
|
|
253
|
+
A: SANGAT cocok. Template 1 (Next.js + Prisma + Supabase) bisa hemat 1-2 hari setup di hackathon 48 jam.
|
|
254
|
+
|
|
255
|
+
---
|
|
256
|
+
|
|
257
|
+
## Catatan Tambahan
|
|
258
|
+
|
|
259
|
+
- Semua starter pakai TypeScript strict mode (no `any` allowed)
|
|
260
|
+
- Semua starter ada `.editorconfig` + `.prettierrc` konsisten
|
|
261
|
+
- Semua starter ada GitHub Actions skeleton (lint, typecheck, test)
|
|
262
|
+
- Semua starter embed `.claude-kit/` di root, ready pakai workflow lintasAI
|
|
263
|
+
|
|
264
|
+
Untuk owner solo (kayak user current): starter template = nice-to-have, bukan must. Adapt lintasAI ke project existing biasanya cukup.
|