@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,485 @@
|
|
|
1
|
+
# Split Repo Migration Prompt - lintasAI v1.0.0
|
|
2
|
+
|
|
3
|
+
> **Paste ke Claude Code di project monolithic kamu** untuk migrate jadi 3 repo split (frontend + backend + shared).
|
|
4
|
+
> Goal: TRUE READ isolation untuk business logic, foundation untuk scale 3-30+ staff.
|
|
5
|
+
> Effort: 4-6 minggu owner (otomatis dengan AI).
|
|
6
|
+
>
|
|
7
|
+
> **Note:** akses-tools sebagai repo terpisah cuma kalau team grow >20 staff atau compliance audit. Default: scripts di backend/scripts/.
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## Yang akan saya (AI) lakukan setelah kamu paste prompt ini
|
|
12
|
+
|
|
13
|
+
1. **Analyze project structure** kamu sekarang:
|
|
14
|
+
- Detect: Next.js (full-stack monolith)? Other stack?
|
|
15
|
+
- Inventory: berapa lib file, API route, component, prisma model
|
|
16
|
+
- Identify: which file = UI (frontend), which = business logic (backend), which = types (shared); ops scripts default ke backend/scripts/
|
|
17
|
+
- Estimate: total LOC per kategori, complexity score, dependency graph
|
|
18
|
+
|
|
19
|
+
2. **Propose detailed migration plan**:
|
|
20
|
+
- 3 repo target name + content map per repo
|
|
21
|
+
- Migration timeline (minggu 1-6)
|
|
22
|
+
- Risk + rollback strategy
|
|
23
|
+
- Tools yang perlu di-setup (Swagger, Storybook, dst)
|
|
24
|
+
- Cost impact (Vercel, GitHub Package, dst)
|
|
25
|
+
|
|
26
|
+
3. **Wait konfirmasi owner** sebelum eksekusi (3-option Y/N/customize)
|
|
27
|
+
- YES: lanjut full execution
|
|
28
|
+
- NO: stop, save plan ke docs/migration-plan-draft.md
|
|
29
|
+
- CUSTOMIZE: owner adjust mapping atau timeline dulu
|
|
30
|
+
|
|
31
|
+
4. **Execute migration step-by-step**:
|
|
32
|
+
- Create 3 GitHub repo (panduan manual + verify)
|
|
33
|
+
- Extract code ke repo masing-masing
|
|
34
|
+
- Setup @akses/shared package
|
|
35
|
+
- Setup Swagger di backend
|
|
36
|
+
- Setup AGENTS.md per repo (template dari lintasAI)
|
|
37
|
+
- Setup deployment pipeline (Vercel x2 + GitHub Package npm)
|
|
38
|
+
- Verify dengan smoke test
|
|
39
|
+
- Update CODEOWNERS + tier mapping
|
|
40
|
+
|
|
41
|
+
5. **Generate transition doc untuk staff**:
|
|
42
|
+
- Cheatsheet prompt non-programmer
|
|
43
|
+
- Owner playbook ongoing
|
|
44
|
+
- Cross-team coordination guide
|
|
45
|
+
|
|
46
|
+
---
|
|
47
|
+
|
|
48
|
+
## Pre-requisite (Yang Owner Siapkan Sebelum Paste)
|
|
49
|
+
|
|
50
|
+
- [ ] Project mature (sudah ada code real, bukan boilerplate fresh Next.js)
|
|
51
|
+
- [ ] Sudah pakai lintasAI v1.0.0+ (cek .claude-kit/CHANGELOG.md)
|
|
52
|
+
- [ ] Sudah hire 3+ staff (atau planning untuk hire)
|
|
53
|
+
- [ ] Mau invest 4-6 minggu time
|
|
54
|
+
- [ ] Backup repo current (git tag pre-split-backup)
|
|
55
|
+
- [ ] Punya akses owner ke GitHub org (untuk bikin 3 repo private)
|
|
56
|
+
- [ ] Punya akses Vercel (atau platform deploy lain) dengan slot project minimal 2
|
|
57
|
+
- [ ] CI/CD current di-pause atau di-freeze selama migration
|
|
58
|
+
|
|
59
|
+
---
|
|
60
|
+
|
|
61
|
+
## Yang Saya Butuhkan Sebelum Mulai
|
|
62
|
+
|
|
63
|
+
Sebelum jalankan migration, saya akan tanya:
|
|
64
|
+
|
|
65
|
+
1. Nama project kamu apa? (untuk naming convention: <project>-frontend, dst)
|
|
66
|
+
2. GitHub username owner: ojokesusu atau lain?
|
|
67
|
+
3. Berapa staff total saat ini? Berapa Backend Staff (yang punya akses backend)?
|
|
68
|
+
4. Stack saat ini: Next.js? Atau lain?
|
|
69
|
+
5. Frontend baru pakai apa? (Next.js SPA mode / React Vite / lain)
|
|
70
|
+
6. Backend baru pakai apa? (Next.js API mode / Hono / Express / lain)
|
|
71
|
+
7. Database: Supabase, atau lain?
|
|
72
|
+
8. Tools yang mau di-setup: pilih dari list (Swagger, Storybook, Playwright, webhooks, Sentry, dst)
|
|
73
|
+
|
|
74
|
+
Tambahan opsional yang membantu (boleh skip kalau belum tahu):
|
|
75
|
+
- Apakah ada secrets/env yang TIDAK boleh leak ke frontend repo? (list keyword)
|
|
76
|
+
- Apakah ada module legacy yang TIDAK akan di-migrate (deprecated)?
|
|
77
|
+
- Target deploy date (untuk reverse-plan timeline)?
|
|
78
|
+
|
|
79
|
+
---
|
|
80
|
+
|
|
81
|
+
## Workflow Migration (Yang Saya Eksekusi)
|
|
82
|
+
|
|
83
|
+
### Week 1 — Setup Repo + Tools
|
|
84
|
+
|
|
85
|
+
**Day 1: Backup + Plan**
|
|
86
|
+
- `git tag pre-split-backup-<date>` di repo current
|
|
87
|
+
- Push tag ke origin
|
|
88
|
+
- Bikin doc PLAN.md di repo current (timeline + responsible)
|
|
89
|
+
- Snapshot DB Supabase (kalau pakai) sebagai safety net
|
|
90
|
+
|
|
91
|
+
**Day 2-3: Create 3 GitHub repo**
|
|
92
|
+
- Owner: bikin `<project>-frontend` (Private, invite Frontend Staff)
|
|
93
|
+
- Owner: bikin `<project>-backend` (Private, invite Backend Staff ONLY)
|
|
94
|
+
- Owner: bikin `<project>-shared` (Private, semua staff read)
|
|
95
|
+
- Setup branch protection: main = require PR + review
|
|
96
|
+
- Setup CODEOWNERS per repo (backend/scripts/ → owner-only via CODEOWNERS rule)
|
|
97
|
+
|
|
98
|
+
**Day 4-5: Setup tools per repo**
|
|
99
|
+
- `<project>-backend`: install Hono/Express ATAU setup Next.js API mode
|
|
100
|
+
- `<project>-backend`: install `next-swagger-doc` untuk auto-Swagger UI
|
|
101
|
+
- `<project>-shared`: setup TypeScript + tsup build
|
|
102
|
+
- `<project>-frontend`: clean up old API routes (move ke backend)
|
|
103
|
+
- Install `.claude-kit` lintasAI di tiap repo
|
|
104
|
+
- Bikin `AGENTS.md` per repo (template berbeda untuk frontend vs backend)
|
|
105
|
+
|
|
106
|
+
### Week 2-3 — Extract Code
|
|
107
|
+
|
|
108
|
+
**Identify per file:**
|
|
109
|
+
|
|
110
|
+
| Source path (monolith) | Target repo |
|
|
111
|
+
|---|---|
|
|
112
|
+
| `src/lib/auth`, `billing`, `security`, `encryption`, `*-crypto` | `<project>-backend` |
|
|
113
|
+
| `src/lib/format`, `useDebounce`, `hooks` (UI) | STAY at frontend |
|
|
114
|
+
| `prisma/` | `<project>-backend` |
|
|
115
|
+
| `src/app/api/` | `<project>-backend` (refactor as Hono route atau Next.js API) |
|
|
116
|
+
| `src/app/(public)/`, `dashboard/` UI | `<project>-frontend` |
|
|
117
|
+
| `src/components/` | `<project>-frontend` |
|
|
118
|
+
| TypeScript types shared | `<project>-shared` |
|
|
119
|
+
| Scripts ops (`scripts/*.ts` audit, migration, cron) | `<project>-backend/scripts/` (owner-only via CODEOWNERS) |
|
|
120
|
+
| `.github/workflows/*` | Split per repo |
|
|
121
|
+
|
|
122
|
+
**Refactor imports:**
|
|
123
|
+
|
|
124
|
+
```ts
|
|
125
|
+
// SEBELUM (monolith)
|
|
126
|
+
import { OrderType } from '@/lib/types'
|
|
127
|
+
import { db } from '@/lib/db'
|
|
128
|
+
|
|
129
|
+
// SESUDAH frontend
|
|
130
|
+
import { OrderType } from '@<project>/shared'
|
|
131
|
+
const data = await fetch(`${process.env.NEXT_PUBLIC_API_URL}/api/orders`)
|
|
132
|
+
|
|
133
|
+
// SESUDAH backend
|
|
134
|
+
import { OrderType } from '@<project>/shared'
|
|
135
|
+
import { db } from './db'
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
**API Route Pattern (Decision Point):**
|
|
139
|
+
|
|
140
|
+
```
|
|
141
|
+
DEFAULT (RECOMMENDED): Option B - Frontend Shell Wrapper
|
|
142
|
+
|
|
143
|
+
Frontend keep app/api/ sebagai shell 3-baris yang forward ke backend:
|
|
144
|
+
// frontend/src/app/api/orders/route.ts
|
|
145
|
+
import { handleOrdersList, handleOrdersCreate } from '@<project>/backend-client'
|
|
146
|
+
export const GET = handleOrdersList
|
|
147
|
+
export const POST = handleOrdersCreate
|
|
148
|
+
|
|
149
|
+
Pros:
|
|
150
|
+
- Keep Next.js Server Action benefit (velocity 2x faster)
|
|
151
|
+
- Privacy preserved: logic di @<project>/backend-client (compiled JS), bukan TS source
|
|
152
|
+
- TypeScript types auto-inferred
|
|
153
|
+
- Standard pattern SaaS (Linear, Notion)
|
|
154
|
+
|
|
155
|
+
Cons:
|
|
156
|
+
- Slight duplication (route defined di 2 tempat)
|
|
157
|
+
|
|
158
|
+
---
|
|
159
|
+
|
|
160
|
+
ALTERNATIVE: Option A - Pure SPA
|
|
161
|
+
|
|
162
|
+
Frontend tidak punya app/api/ at all. Semua API call ke backend external URL via fetch.
|
|
163
|
+
|
|
164
|
+
Pros:
|
|
165
|
+
- TRUE total separation
|
|
166
|
+
- No duplicate route definition
|
|
167
|
+
|
|
168
|
+
Cons:
|
|
169
|
+
- Lose Next.js Server Action benefit
|
|
170
|
+
- Need CORS setup
|
|
171
|
+
- Slower develop cycle
|
|
172
|
+
|
|
173
|
+
---
|
|
174
|
+
|
|
175
|
+
DEFAULT pilih: B (RECOMMENDED). Pilih A cuma kalau spesifik mau full SPA architecture.
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
**Update package.json:**
|
|
179
|
+
- Frontend: tambah `@<project>/shared` as dep
|
|
180
|
+
- Backend: tambah `@<project>/shared` as dep
|
|
181
|
+
- Backend: tambah `next-swagger-doc` atau equivalent
|
|
182
|
+
- Backend scripts (di `backend/scripts/`): minimal deps (tsx, zod, supabase client) — share package.json backend
|
|
183
|
+
|
|
184
|
+
### Week 4 — Deploy Pipeline
|
|
185
|
+
|
|
186
|
+
- Vercel project baru untuk frontend (`<project>-frontend`)
|
|
187
|
+
- Vercel project baru untuk backend (`<project>-backend`) — atau Railway/Render kalau Hono
|
|
188
|
+
- GitHub Package untuk `@<project>/shared` (atau private npm)
|
|
189
|
+
- Environment vars:
|
|
190
|
+
- Frontend: `NEXT_PUBLIC_API_URL`, `NEXT_PUBLIC_*` only
|
|
191
|
+
- Backend: `DATABASE_URL`, `SUPABASE_SERVICE_ROLE_KEY`, secrets, dst
|
|
192
|
+
- Shared: TIDAK ada env
|
|
193
|
+
- Setup CI/CD per repo (GitHub Actions: lint, typecheck, test, deploy)
|
|
194
|
+
- Setup preview deployment per PR
|
|
195
|
+
|
|
196
|
+
### Week 5 — Onboard Staff
|
|
197
|
+
|
|
198
|
+
- Brief staff dengan cheatsheet (deploy `SPLIT_REPO_NON_PROGRAMMER_PROMPTS.md`)
|
|
199
|
+
- Migrate `.staff-profile.md` per laptop:
|
|
200
|
+
- Frontend Staff: clone `<project>-frontend` + `<project>-shared`
|
|
201
|
+
- Backend Staff: clone `<project>-backend` + `<project>-shared`
|
|
202
|
+
- Test workflow: backend tim build API endpoint baru, frontend tim consume via Swagger doc
|
|
203
|
+
- Setup Slack/chat channel cross-repo coordination
|
|
204
|
+
- Train staff hit endpoint backend dengan `curl` atau Postman
|
|
205
|
+
|
|
206
|
+
### Week 6 — Smoke Test + Cutover
|
|
207
|
+
|
|
208
|
+
- E2E test full flow (login → action → DB write → read)
|
|
209
|
+
- Switch DNS/Vercel ke split deployment
|
|
210
|
+
- Monitor 1 minggu: error rate, latency, build success rate
|
|
211
|
+
- Decommission monolithic repo (archive di GitHub, BUKAN delete)
|
|
212
|
+
- Update dokumentasi external (README publik, status page, dst)
|
|
213
|
+
|
|
214
|
+
---
|
|
215
|
+
|
|
216
|
+
## Workflow Auto-Push 3 Repo dari Monolith
|
|
217
|
+
|
|
218
|
+
### Pre-Migration (Owner Manual)
|
|
219
|
+
|
|
220
|
+
Owner pre-buat 3 repo di GitHub (5 menit):
|
|
221
|
+
|
|
222
|
+
1. github.com/new → Create:
|
|
223
|
+
- Name: <project>-frontend
|
|
224
|
+
- Visibility: Private
|
|
225
|
+
- DO NOT add README, .gitignore, atau license (truly empty)
|
|
226
|
+
2. Repeat untuk <project>-backend dan <project>-shared
|
|
227
|
+
|
|
228
|
+
Invite collaborator sesuai role:
|
|
229
|
+
- frontend: 4 Frontend Staff + 2 Backend Staff + owner
|
|
230
|
+
- backend: 2 Backend Staff + owner
|
|
231
|
+
- shared: 4 staff (read) + owner (write)
|
|
232
|
+
|
|
233
|
+
### Migration Execution (AI Auto-Push)
|
|
234
|
+
|
|
235
|
+
User paste prompt ke Claude Code:
|
|
236
|
+
|
|
237
|
+
```
|
|
238
|
+
Migrate <project> ke split repo. Repo URL:
|
|
239
|
+
- Frontend: https://github.com/<owner>/<project>-frontend
|
|
240
|
+
- Backend: https://github.com/<owner>/<project>-backend
|
|
241
|
+
- Shared: https://github.com/<owner>/<project>-shared
|
|
242
|
+
```
|
|
243
|
+
|
|
244
|
+
AI execute (otomatis, tanpa konfirmasi step-by-step):
|
|
245
|
+
|
|
246
|
+
1. Analyze project current (auto-detect via STACK_DETECTION_PATTERN.md)
|
|
247
|
+
|
|
248
|
+
2. Generate file mapping (berdasarkan role system):
|
|
249
|
+
- File Backend grade → backend
|
|
250
|
+
- File Frontend UI → frontend
|
|
251
|
+
- Types → shared
|
|
252
|
+
|
|
253
|
+
3. Create 3 temp folder lokal:
|
|
254
|
+
- C:\temp\<project>-split\<project>-frontend\
|
|
255
|
+
- C:\temp\<project>-split\<project>-backend\
|
|
256
|
+
- C:\temp\<project>-split\<project>-shared\
|
|
257
|
+
|
|
258
|
+
4. Per temp folder:
|
|
259
|
+
- Copy files berdasarkan mapping
|
|
260
|
+
- Generate package.json, tsconfig.json, AGENTS.md per repo (dari template split-agents/)
|
|
261
|
+
- Generate .gitignore standard
|
|
262
|
+
- git init
|
|
263
|
+
- git branch -M main
|
|
264
|
+
- git add .
|
|
265
|
+
- git commit -m "initial commit from <project> monolith split"
|
|
266
|
+
- git remote add origin <URL>
|
|
267
|
+
- git push -u origin main
|
|
268
|
+
|
|
269
|
+
5. Output report:
|
|
270
|
+
```
|
|
271
|
+
Migration complete. 3 repo pushed:
|
|
272
|
+
- https://github.com/<owner>/<project>-frontend (95 files)
|
|
273
|
+
- https://github.com/<owner>/<project>-backend (28 files)
|
|
274
|
+
- https://github.com/<owner>/<project>-shared (13 files)
|
|
275
|
+
|
|
276
|
+
Next steps:
|
|
277
|
+
1. Setup Vercel deploy untuk frontend + backend (panduan di SPLIT_REPO_TOOLS_SETUP.md)
|
|
278
|
+
2. Verify staff invite di masing-masing repo
|
|
279
|
+
3. Brief staff dengan SPLIT_REPO_NON_PROGRAMMER_PROMPTS.md
|
|
280
|
+
```
|
|
281
|
+
|
|
282
|
+
6. Ask: "Mau pertahankan temp folder C:\temp\<project>-split\ untuk backup? (Y/N)"
|
|
283
|
+
- Y: keep folder, archive original akses repo
|
|
284
|
+
- N: delete temp folder
|
|
285
|
+
|
|
286
|
+
### Pre-Requisite Checks
|
|
287
|
+
|
|
288
|
+
AI verify sebelum mulai:
|
|
289
|
+
- [ ] 3 repo URLs accessible (HTTP 200 ke API GitHub)
|
|
290
|
+
- [ ] Owner punya write permission di 3 repo
|
|
291
|
+
- [ ] 3 repo TRULY empty (no commits)
|
|
292
|
+
- [ ] Local Git installed
|
|
293
|
+
- [ ] GitHub credentials setup (gh auth status)
|
|
294
|
+
- [ ] Working tree clean (no uncommitted changes)
|
|
295
|
+
|
|
296
|
+
Kalau ada gagal, AI lapor + minta owner fix dulu.
|
|
297
|
+
|
|
298
|
+
### Rollback Plan
|
|
299
|
+
|
|
300
|
+
Kalau migration error di tengah:
|
|
301
|
+
1. Temp folders preserve (tidak auto-delete saat error)
|
|
302
|
+
2. Original monolith repo TIDAK ke-modify
|
|
303
|
+
3. 3 repo baru bisa di-reset:
|
|
304
|
+
- github.com/<owner>/<repo>/settings → Delete repository
|
|
305
|
+
- Atau: bikin ulang dari scratch
|
|
306
|
+
4. Owner cuma kehilangan 4-6 jam effort, no data loss
|
|
307
|
+
|
|
308
|
+
### Estimasi Effort
|
|
309
|
+
|
|
310
|
+
| Step | Effort |
|
|
311
|
+
|---|---|
|
|
312
|
+
| Owner pre-buat 3 repo | 5 menit |
|
|
313
|
+
| Owner paste prompt | 30 detik |
|
|
314
|
+
| AI execute (file copy + push) | 30-60 menit |
|
|
315
|
+
| Owner review + verify | 15 menit |
|
|
316
|
+
| **Total** | **~1.5 jam** |
|
|
317
|
+
|
|
318
|
+
---
|
|
319
|
+
|
|
320
|
+
## Penting: Reversibility
|
|
321
|
+
|
|
322
|
+
Kalau setelah migration berasa tidak suit:
|
|
323
|
+
- 3 repo masih ada di GitHub (private, bisa di-restore)
|
|
324
|
+
- Repo lama (monolith) di-archive, BUKAN dihapus (cuma archive)
|
|
325
|
+
- Bisa re-merge balik ke monolith dalam 1-2 minggu kalau perlu
|
|
326
|
+
- DB tetap sama (Supabase shared), tidak ada data loss risk
|
|
327
|
+
- Vercel project lama bisa di-pause (tidak hapus), revert dengan rebuild
|
|
328
|
+
|
|
329
|
+
**Rollback procedure (kalau Week 5-6 fail):**
|
|
330
|
+
1. Pause Vercel project frontend + backend baru
|
|
331
|
+
2. Re-deploy Vercel project monolith dari tag `pre-split-backup-<date>`
|
|
332
|
+
3. Update DNS balik ke monolith
|
|
333
|
+
4. Brief staff: "kembali ke workflow lama, debrief root cause minggu depan"
|
|
334
|
+
5. 3 repo split tetap di GitHub (jangan hapus) untuk forensic + retry
|
|
335
|
+
|
|
336
|
+
---
|
|
337
|
+
|
|
338
|
+
## Cara Pakai Prompt Ini
|
|
339
|
+
|
|
340
|
+
1. Pastikan kamu di project root (yang sudah pakai lintasAI v1.0.0+)
|
|
341
|
+
2. Verify `git status` clean (commit semua WIP dulu)
|
|
342
|
+
3. Copy SEMUA isi file ini dari header sampai akhir
|
|
343
|
+
4. Paste ke chat Claude Code
|
|
344
|
+
5. AI akan analyze project + tanya 8 pertanyaan kamu
|
|
345
|
+
6. Jawab pertanyaan, AI generate plan + minta konfirmasi
|
|
346
|
+
7. Confirm (YES/NO/CUSTOMIZE), AI execute step-by-step
|
|
347
|
+
8. Owner review + verify per minggu (cek doc weekly-checkpoint.md yang saya generate)
|
|
348
|
+
|
|
349
|
+
---
|
|
350
|
+
|
|
351
|
+
## FAQ
|
|
352
|
+
|
|
353
|
+
**Q: Skala project saya kecil (cuma 2 staff), perlu split?**
|
|
354
|
+
A: Tidak. Pakai monorepo + CODEOWNERS sudah cukup. Split repo make sense untuk 3+ staff + mau privacy code business logic.
|
|
355
|
+
|
|
356
|
+
**Q: Bisakah skip beberapa step?**
|
|
357
|
+
A: Migration tools (Swagger, Storybook) bisa skip awal, tambah belakangan. Tapi 3 repo setup wajib (frontend + backend + shared). Tools/scripts ops default ke `backend/scripts/` — naik ke repo terpisah cuma kalau team >20 staff atau compliance audit.
|
|
358
|
+
|
|
359
|
+
**Q: Apa kalau gagal di tengah?**
|
|
360
|
+
A: Tag `pre-split-backup` masih ada. Rollback dengan `git reset` + delete 3 repo baru (atau archive). Tidak ada damage permanent ke production karena DB shared.
|
|
361
|
+
|
|
362
|
+
**Q: Vercel cost naik?**
|
|
363
|
+
A: Free tier support multiple project. Pro $20/bln cukup untuk 2-3 project. Cost increment kecil (< $20/bln tambahan).
|
|
364
|
+
|
|
365
|
+
**Q: Staff tim langsung paham?**
|
|
366
|
+
A: Tidak. Butuh brief 1 hari pakai `SPLIT_REPO_NON_PROGRAMMER_PROMPTS.md` cheatsheet. Setelah 1 minggu adoption, mereka familiar.
|
|
367
|
+
|
|
368
|
+
**Q: Bagaimana kalau Frontend Staff iseng curi-curi clone backend repo?**
|
|
369
|
+
A: GitHub repo private = Frontend Staff TIDAK ada akses (403 saat clone). Ini real READ isolation, bukan sekedar `.gitignore`.
|
|
370
|
+
|
|
371
|
+
**Q: API contract berubah, frontend break?**
|
|
372
|
+
A: Itu manfaat Swagger. Backend update OpenAPI spec → frontend regenerate types dari spec → TypeScript compile error muncul di frontend = early signal. Tidak perlu wait runtime error.
|
|
373
|
+
|
|
374
|
+
**Q: Shared package update, harus rebuild semua repo?**
|
|
375
|
+
A: Iya, tapi auto. Setup GitHub Action: shared push → trigger frontend + backend rebuild + redeploy. Atau pakai workflow_dispatch manual kalau mau lebih hati-hati.
|
|
376
|
+
|
|
377
|
+
**Q: Database migration jadi gimana?**
|
|
378
|
+
A: Pindah ke `<project>-backend` (yang punya akses Prisma). Frontend tidak punya Prisma sama sekali. Migration dijalankan dari backend CI/CD.
|
|
379
|
+
|
|
380
|
+
**Q: Apa kalau owner solo (tidak ada Backend Staff)?**
|
|
381
|
+
A: Owner pegang semua 3 repo. Split tetap berguna untuk: (1) discipline arsitektur, (2) onboarding staff masa depan, (3) ready-state untuk hire Backend Staff.
|
|
382
|
+
|
|
383
|
+
**Q: Berapa lama break-even effort 4-6 minggu ini?**
|
|
384
|
+
A: Tipikal: 3 bulan setelah migration, owner save 5-10 jam/minggu karena (1) staff onboarding faster, (2) review PR scope smaller, (3) build time per repo lebih cepat. Total ROI ~6 bulan.
|
|
385
|
+
|
|
386
|
+
**Q: Kalau project saya non-Next.js (misal SvelteKit, Nuxt, Remix)?**
|
|
387
|
+
A: AI saya akan adapt plan ke stack kamu. Konsep 3 repo + shared package + Swagger contract sama, cuma implementasi berbeda. Tanya saat pre-flight pertanyaan ke-4.
|
|
388
|
+
|
|
389
|
+
**Q: Bagaimana dengan auth (NextAuth, Clerk, Auth0)?**
|
|
390
|
+
A: Auth provider biasanya stay di backend (token issued by backend, frontend hanya consume session). NextAuth → migrate ke backend, frontend pakai `next-auth/react` client-side only. Clerk/Auth0 → both side perlu key (publishable di frontend, secret di backend).
|
|
391
|
+
|
|
392
|
+
---
|
|
393
|
+
|
|
394
|
+
## Risk Catalog (Yang Saya Mitigasi)
|
|
395
|
+
|
|
396
|
+
| Risk | Likelihood | Impact | Mitigation |
|
|
397
|
+
|---|---|---|---|
|
|
398
|
+
| Build break karena import path salah | High | Medium | TypeScript strict + CI typecheck per PR |
|
|
399
|
+
| Staff bingung workflow baru | High | Medium | Cheatsheet + brief 1 hari + Slack channel |
|
|
400
|
+
| Swagger doc out-of-sync dengan implementasi | Medium | High | Auto-generate dari decorator/annotation, CI validate |
|
|
401
|
+
| Shared package version drift | Medium | Medium | Lockfile + auto-bump via Renovate/Dependabot |
|
|
402
|
+
| Vercel build longer karena 2 project | Low | Low | Build paralel, total time tetap sama |
|
|
403
|
+
| Secrets leak ke frontend repo accidentally | Low | Critical | Pre-commit hook scan `.env*` + GitHub secret scanning |
|
|
404
|
+
| Owner kelelahan 4-6 minggu | Medium | High | Weekly checkpoint, skip-able tools, rollback option |
|
|
405
|
+
|
|
406
|
+
---
|
|
407
|
+
|
|
408
|
+
## Output Artifacts (Yang Saya Generate)
|
|
409
|
+
|
|
410
|
+
Setelah migration selesai, kamu akan punya:
|
|
411
|
+
|
|
412
|
+
1. **3 GitHub repo** dengan AGENTS.md per repo
|
|
413
|
+
2. **PLAN.md** di tiap repo (timeline + decisions)
|
|
414
|
+
3. **CODEOWNERS** per repo
|
|
415
|
+
4. **`.claude-kit/`** terinstall di tiap repo (lintasAI v1.0.0+)
|
|
416
|
+
5. **Swagger UI** di `<project>-backend/api/docs`
|
|
417
|
+
6. **Storybook** di `<project>-frontend/storybook` (opsional)
|
|
418
|
+
7. **`SPLIT_REPO_NON_PROGRAMMER_PROMPTS.md`** untuk brief staff
|
|
419
|
+
8. **`OWNER_PLAYBOOK.md`** untuk ongoing maintenance
|
|
420
|
+
9. **`CROSS_TEAM_COORDINATION.md`** untuk komunikasi frontend-backend
|
|
421
|
+
10. **Weekly checkpoint doc** (`docs/migration-week-N.md`) untuk audit trail
|
|
422
|
+
|
|
423
|
+
---
|
|
424
|
+
|
|
425
|
+
## Checkpoint Verifikasi (Per Minggu)
|
|
426
|
+
|
|
427
|
+
**End of Week 1:** 3 repo created, tools installed, AGENTS.md committed. Verify: `gh repo view <project>-frontend`, dst.
|
|
428
|
+
|
|
429
|
+
**End of Week 2-3:** Code extracted, imports refactored, build pass per repo. Verify: `pnpm build` di tiap repo.
|
|
430
|
+
|
|
431
|
+
**End of Week 4:** Deploy preview live di Vercel, Swagger UI accessible, smoke test endpoint OK. Verify: hit `<backend-url>/api/health`.
|
|
432
|
+
|
|
433
|
+
**End of Week 5:** Staff onboarded, first PR dari staff di split repo merge. Verify: cek GitHub activity per staff.
|
|
434
|
+
|
|
435
|
+
**End of Week 6:** Production switch, monitoring 7 hari clean. Verify: error rate < baseline, latency stabil.
|
|
436
|
+
|
|
437
|
+
---
|
|
438
|
+
|
|
439
|
+
## Penting: Komunikasi Staff
|
|
440
|
+
|
|
441
|
+
Setelah Day 1 (`pre-split-backup` tag), AI saya akan generate **announcement template** untuk kamu kirim ke staff:
|
|
442
|
+
|
|
443
|
+
```
|
|
444
|
+
Hi tim,
|
|
445
|
+
|
|
446
|
+
Mulai minggu depan, kita migrasi project ke arsitektur 3 repo:
|
|
447
|
+
- <project>-frontend (UI)
|
|
448
|
+
- <project>-backend (API + DB + ops scripts)
|
|
449
|
+
- <project>-shared (types)
|
|
450
|
+
|
|
451
|
+
Selama 6 minggu transisi:
|
|
452
|
+
- Repo lama TETAP active untuk hotfix
|
|
453
|
+
- Repo baru di-setup paralel
|
|
454
|
+
- Brief detail tanggal X
|
|
455
|
+
|
|
456
|
+
Tidak ada perubahan akses kalian sekarang. Akses baru setelah Week 5 brief.
|
|
457
|
+
|
|
458
|
+
Tanya kalau ada concern.
|
|
459
|
+
|
|
460
|
+
-- Owner
|
|
461
|
+
```
|
|
462
|
+
|
|
463
|
+
Awareness-first, bukan mendadak. Sesuai feedback policy proyek.
|
|
464
|
+
|
|
465
|
+
---
|
|
466
|
+
|
|
467
|
+
[MULAI EKSEKUSI: PASTE PROMPT INI KE CLAUDE CODE]
|
|
468
|
+
|
|
469
|
+
---
|
|
470
|
+
|
|
471
|
+
Setelah saya analyze project kamu, saya akan present plan dengan format:
|
|
472
|
+
- Inventory project current (berapa file, where business logic, where UI)
|
|
473
|
+
- Mapping target (file mana ke repo mana)
|
|
474
|
+
- Tools recommended berdasarkan stack
|
|
475
|
+
- Timeline + effort estimate
|
|
476
|
+
- Risks + mitigations
|
|
477
|
+
|
|
478
|
+
Tanya saja kalau ada konteks tambahan owner mau saya tahu (misal: ada module legacy, ada constraint compliance, ada deadline rilis fitur, dst).
|
|
479
|
+
|
|
480
|
+
---
|
|
481
|
+
|
|
482
|
+
**Versi prompt:** v1 (sync dengan lintasAI v1.0.0)
|
|
483
|
+
**Audience:** Owner project, NOT staff
|
|
484
|
+
**Estimated AI execution time:** 4-6 minggu (paralel dengan owner kerja normal)
|
|
485
|
+
**Reversibility:** Full rollback support sampai Week 5
|
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
# TEAM_ROLLOUT_GUIDE_v1.md — Cara Bikin Kit Ini Jadi Standar Tim
|
|
2
|
+
> v1 · 2026-05-30 · untuk pemimpin tim IT (3-10 orang)
|
|
3
|
+
|
|
4
|
+
## Tujuan & Filosofi
|
|
5
|
+
Kit aturan AI ini jadi **sumber kebenaran tunggal** untuk gaya kerja AI-assisted di tim. Tujuan: konsisten lintas-anggota & lintas-proyek, perbaikan bertahap (bukan paksa rewrite), fokus pada workflow yang AI bisa enforce sendiri (DoD, docs, naming, commit). Standar ini **bukan alat control**, tapi **alat hemat energi** — biar tim gak debat ulang aturan yang sama tiap proyek.
|
|
6
|
+
|
|
7
|
+
## Prasyarat tim
|
|
8
|
+
- Semua anggota punya **Claude Code** ter-install dan login Anthropic.
|
|
9
|
+
- Semua anggota pakai **Windows** (kit ini Windows-only).
|
|
10
|
+
- Satu **bahasa kerja** disepakati: **Bahasa Indonesia** (default kit ini).
|
|
11
|
+
- Ada **channel komunikasi** aktif (Slack/Discord/WhatsApp group `#it-standard` atau sejenisnya).
|
|
12
|
+
- Ada **1 owner standar** (mis. kamu) yang approve perubahan aturan.
|
|
13
|
+
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
## Step 1: Setup sumber kebenaran tunggal
|
|
17
|
+
**Rekomendasi:** Git repo private di GitHub/GitLab dengan tag versi. Contoh nama: `<orgmu>/claude-team-standard`.
|
|
18
|
+
|
|
19
|
+
Struktur folder repo:
|
|
20
|
+
```
|
|
21
|
+
claude-team-standard/
|
|
22
|
+
├── README.md ← onboarding teman/staff
|
|
23
|
+
├── CLAUDE_universal_v1.md ← aturan utama
|
|
24
|
+
├── PROJECT_LIFECYCLE_PROMPT_v1.md ← unified: Stage A Kickoff / B Bootstrap / C Update / D Migration
|
|
25
|
+
├── TEAM_ROLLOUT_GUIDE_v1.md ← file ini, baca owner standar
|
|
26
|
+
├── install-windows.ps1
|
|
27
|
+
├── templates/
|
|
28
|
+
│ ├── architecture.md
|
|
29
|
+
│ └── glossary.md
|
|
30
|
+
├── exceptions.md ← lihat "Exception management" di bawah
|
|
31
|
+
└── CHANGELOG.md ← log perubahan per versi
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
Tag rilis: `v1`, `v1.1`, `v2`. Anggota tim clone/download per tag.
|
|
35
|
+
|
|
36
|
+
**JANGAN simpan di Google Drive folder bebas** — versi gampang nyasar, anggota gak tahu mana yang terbaru.
|
|
37
|
+
|
|
38
|
+
## Step 2: Rilis v1 ke tim
|
|
39
|
+
Checklist owner standar:
|
|
40
|
+
1. **Upload kit ke repo internal** + tag `v1.1` (atau versi saat ini).
|
|
41
|
+
2. **Jadwalkan "install party" 30 menit** (live di Meet/Zoom): semua anggota install bareng, biar bisa tanya langsung kalau stuck.
|
|
42
|
+
3. **Tiap anggota verifikasi** dengan brief Claude: *"Halo, aku staff baru. Tolong cek install kit + briefing aturan dasar."* AI auto-apply Guided Step-by-Step Workflow (CLAUDE_universal_v1.md section 4.3). Screenshot hasil verifikasi, share ke channel.
|
|
43
|
+
4. **Owner cek-list** di channel: semua anggota ✅ → rollout sukses.
|
|
44
|
+
5. **Update `CHANGELOG.md`** di repo: tanggal rilis, ringkasan apa yang baru.
|
|
45
|
+
|
|
46
|
+
## Step 3: Adopsi per-proyek
|
|
47
|
+
Tiap proyek pilih 1 dari 3 jalur:
|
|
48
|
+
|
|
49
|
+
| Kondisi proyek | Pakai prompt |
|
|
50
|
+
|---|---|
|
|
51
|
+
| Proyek **BARU** dari nol | `PROJECT_LIFECYCLE_PROMPT_v1.md` (Stage A: Kickoff) — AI bikin struktur sesuai standar dari awal |
|
|
52
|
+
| Proyek **LAMA** tanpa `docs/` sama sekali | `PROJECT_LIFECYCLE_PROMPT_v1.md` (Stage B: Bootstrap Docs) — AI auto-fill docs/ dari codebase |
|
|
53
|
+
| Proyek **SETENGAH JADI** (ada code + mungkin docs + konvensi sendiri) | `PROJECT_LIFECYCLE_PROMPT_v1.md` (Stage D: Migration) — AI audit gap, bikin plan bertahap |
|
|
54
|
+
|
|
55
|
+
Filosofi adopsi di proyek setengah jadi: **bentrok OK, perbaikan bertahap**. Lihat detail di `PROJECT_LIFECYCLE_PROMPT_v1.md` (Stage D: Migration).
|
|
56
|
+
|
|
57
|
+
## Step 4: Governance ringan
|
|
58
|
+
5 keputusan owner standar:
|
|
59
|
+
|
|
60
|
+
1. **Owner = kamu** (atau orang yang ditunjuk). Owner satu-satunya yang merge ke `main` di repo standar.
|
|
61
|
+
2. **Versioning:**
|
|
62
|
+
- **Patch** (mis. `v1.1`): perubahan kecil non-breaking (typo fix, klarifikasi, tambah aturan opsional).
|
|
63
|
+
- **Minor** (mis. `v1.2`): tambah file/prompt baru, tambah seksi.
|
|
64
|
+
- **Major** (mis. `v2`): breaking — aturan lama ganti, struktur folder ubah. Wajib announce 1 minggu sebelum rilis.
|
|
65
|
+
3. **Channel diskusi:** `#it-standard` (atau sejenisnya). Semua usulan + announce update lewat sini.
|
|
66
|
+
4. **Format usulan perubahan aturan** (template di bawah). Anggota tim buka issue di repo, owner review + approve.
|
|
67
|
+
5. **Cadence review:** akhir bulan — owner review usulan & exception, rilis update kalau ada.
|
|
68
|
+
|
|
69
|
+
### Template usulan perubahan aturan
|
|
70
|
+
File baru di repo: `proposals/<tanggal>-<judul-singkat>.md`
|
|
71
|
+
```markdown
|
|
72
|
+
# Usulan: <judul>
|
|
73
|
+
> Pengusul: <nama> · Tanggal: <YYYY-MM-DD>
|
|
74
|
+
|
|
75
|
+
## Aturan yang diusulkan
|
|
76
|
+
<1-2 kalimat aturan baru atau perubahan>
|
|
77
|
+
|
|
78
|
+
## Alasan
|
|
79
|
+
<kenapa perlu, masalah apa yang diselesaikan>
|
|
80
|
+
|
|
81
|
+
## Dampak
|
|
82
|
+
- Proyek yang terdampak: <semua/sebagian/spesifik>
|
|
83
|
+
- Effort migrasi: <ringan/sedang/besar>
|
|
84
|
+
- Breaking? <ya/tidak — kalau ya, tier P0/P1/P2>
|
|
85
|
+
|
|
86
|
+
## Alternatif yang dipertimbangkan
|
|
87
|
+
<alternatif yang ditolak + alasan>
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
## Step 5: Distribusi update
|
|
91
|
+
Saat owner rilis `v1.2`:
|
|
92
|
+
1. **Tag rilis** di repo dengan changelog detail.
|
|
93
|
+
2. **Announce di channel** — 1 paragraf: apa yang baru, dampak ke proyek existing, kapan deadline anggota update.
|
|
94
|
+
3. **Anggota update** — `git pull` atau download zip, jalanin `install-windows.ps1` lagi (backup otomatis).
|
|
95
|
+
4. **Ceklis di channel** — anggota react ✅ di pesan announce kalau sudah update.
|
|
96
|
+
5. **Owner follow-up** anggota yang belum update setelah deadline.
|
|
97
|
+
|
|
98
|
+
## Step 6: Tracking progres tim (metric ringan, BUKAN dashboard)
|
|
99
|
+
Update manual di Google Sheet `it-standard-progress`:
|
|
100
|
+
|
|
101
|
+
| Proyek | Owner | docs/architecture | docs/glossary | Conv Commits % | Quick Wins selesai |
|
|
102
|
+
|---|---|---|---|---|---|
|
|
103
|
+
| project-alpha | dev-1 | ✅ | ✅ | 90% | 4/4 |
|
|
104
|
+
| inventory-app | dev-2 | ✅ | ⚠️ | 60% | 2/4 |
|
|
105
|
+
| landing-page | dev-3 | ❌ | ❌ | 30% | 0/4 |
|
|
106
|
+
|
|
107
|
+
Target tim:
|
|
108
|
+
- **3 bulan:** 100% proyek punya `docs/architecture.md`.
|
|
109
|
+
- **2 bulan:** 80% PR ikut Conventional Commits.
|
|
110
|
+
- **Per quarter:** review proyek yang masih banyak gap, alokasi sprint khusus migrasi.
|
|
111
|
+
|
|
112
|
+
Review metric tiap akhir bulan (10 menit di standup).
|
|
113
|
+
|
|
114
|
+
---
|
|
115
|
+
|
|
116
|
+
## Exception management
|
|
117
|
+
Beberapa proyek pasti punya alasan kuat opt-out dari aturan tertentu. **Catat di `exceptions.md`** supaya gak jadi "norma diam-diam".
|
|
118
|
+
|
|
119
|
+
### Template exception
|
|
120
|
+
File: `exceptions.md` di repo standar.
|
|
121
|
+
```markdown
|
|
122
|
+
# Exception Log — Standar Tim IT
|
|
123
|
+
|
|
124
|
+
| Proyek | Aturan di-skip | Alasan | Sunset date | Pemberi izin | Reviewer |
|
|
125
|
+
|---|---|---|---|---|---|
|
|
126
|
+
| client-x-portal | Bahasa docs ID → EN | Klien minta EN | 2026-12-31 | owner | jane |
|
|
127
|
+
| legacy-erp | Conv Commits | Repo sudah 5 tahun pakai format bebas, migrasi P2 | TBD | owner | bob |
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
Review tiap bulan: sunset date sudah lewat? Reviewer ganti? Alasan masih valid?
|
|
131
|
+
|
|
132
|
+
---
|
|
133
|
+
|
|
134
|
+
## Anti-pattern tim yang dihindari
|
|
135
|
+
- **Owner standar pegang semua, jadi bottleneck.** Tunjuk 1 deputy yang bisa approve usulan kecil.
|
|
136
|
+
- **Rilis update tanpa announce → ada yang tertinggal.** Selalu lewat channel + cek-list eksplisit.
|
|
137
|
+
- **Exception jadi norma karena gak pernah di-review.** Kalender bulanan untuk review `exceptions.md`.
|
|
138
|
+
- **Junior takut bertanya jadi pura-pura paham.** Owner: tanyain langsung di standup, biasakan budaya "gak paham itu wajar".
|
|
139
|
+
- **Standar dipakai jadi alat blame senior ke junior.** Owner tegur: kit ini untuk hemat energi, bukan untuk nyalahin. Code review fokus pada code, bukan ke orangnya.
|
|
140
|
+
- **"Senior gak ikut standar, jadi junior gak perlu juga."** Owner enforce di code review — pelanggaran standar di PR baru = revisi.
|
|
141
|
+
|
|
142
|
+
---
|
|
143
|
+
|
|
144
|
+
## FAQ tim
|
|
145
|
+
|
|
146
|
+
**Q: Aku gak setuju aturan X, gimana?**
|
|
147
|
+
A: Buka usulan di repo (template di Step 4). Owner review di akhir bulan. Sementara itu, tetap ikut aturan existing — debat di channel `#it-standard`, jangan diam-diam langgar.
|
|
148
|
+
|
|
149
|
+
**Q: Klien minta pakai standar mereka, harus gimana?**
|
|
150
|
+
A: Catat di `exceptions.md` dengan sunset date. Standar tim cuma berlaku untuk proyek internal/tim sendiri. Klien external = aturan klien menang.
|
|
151
|
+
|
|
152
|
+
**Q: Senior di proyek X gak ikut standar, aku junior bingung mau ikut yang mana.**
|
|
153
|
+
A: Lapor ke owner standar (kamu/atau channel). Owner yang tegur ke senior. Junior: tetap ikut standar, jangan ikut kebiasaan jelek.
|
|
154
|
+
|
|
155
|
+
**Q: Standar update v1.2 tapi proyek aku sudah running 6 bulan dengan v1, pusing harus migrasi semua?**
|
|
156
|
+
A: TIDAK perlu migrasi semua. Cuma item P0 (Quick Wins) yang wajib dalam 1 minggu. P1/P2 = bertahap. Detail di `PROJECT_LIFECYCLE_PROMPT_v1.md` (Stage D: Migration).
|
|
157
|
+
|
|
158
|
+
**Q: Aku onboard freelance/kontrak cuma 2 minggu, perlu install kit?**
|
|
159
|
+
A: Tergantung. Kalau cuma utak-atik 1-2 file, gak perlu — cukup brief verbal. Kalau full bagian tim 2+ minggu, install supaya output konsisten.
|
|
160
|
+
|
|
161
|
+
**Q: Aturan global vs aturan proyek (`./AGENTS.md`) — yang mana baca duluan?**
|
|
162
|
+
A: Dua-duanya. Aturan proyek **menimpa sebagian** aturan global untuk proyek itu. Mis. global bilang "format commit Conventional Commits", proyek bilang "kami pakai format bebas karena legacy" → di proyek itu, format bebas menang.
|
|
163
|
+
|
|
164
|
+
**Q: Aturan tim ini akan diapain kalau aku resign / pindah role?**
|
|
165
|
+
A: Owner harus tunjuk pengganti minimal 1 bulan sebelum keluar. Knowledge transfer: walk-through `TEAM_ROLLOUT_GUIDE_v1.md` + serah-terima approval di repo standar.
|
|
166
|
+
|
|
167
|
+
---
|
|
168
|
+
|
|
169
|
+
## Penutup
|
|
170
|
+
Standar bukan untuk control, tapi untuk **hemat energi tim** & **cegah salah-paham**. Anggota tim yang patuh standar → AI mereka konsisten → output proyek konsisten → onboarding anggota baru lebih cepat. Itu untungnya.
|
|
171
|
+
|
|
172
|
+
Kalau ada pertanyaan, ke channel `#it-standard`. Selamat ngeshipping bareng tim yang patuh standar!
|