TL-M0-05 · Shared settings: .gitignore, README, TypeScript base, Turborepo tasks
Why: One TypeScript base that every package extends, and one typecheck task Turborepo runs across the workspace. The .gitignore additions keep Astro's cache, Playwright output, environment files and database dumps out of git.
ID TL-M0-05 · Level L0 · Run order row 5
The repository ignores what it must, explains itself in its README, shares a TypeScript base and runs typecheck through Turborepo.
Before
Section titled “Before”TL-M0-04 is Done.
1 · Add to .gitignore
Section titled “1 · Add to .gitignore”cat >> .gitignore <<'EOF'
# Opleet additions.astro/test-results/playwright-report/.env.e2e.env.staging*.dumpEOF2 · Replace the starter's README
Section titled “2 · Replace the starter's README”cat > README.md <<'EOF'# Opleet
Opleet FMS v2: the fleet management app for OptimaPerkasa, rebuilt on schema V13.
Start with the Opleet Wiki: [Register] v2 decisions and working rules, then [Runbook] v2 timeline.https://docs.google.com/document/d/1rXKFmIFa1nY3ZViF_Ojo2kCSSOfc0gutjiSHlQ6iGBs/edit
- apps/web: the Next.js app- apps/docs: engineering docs (Astro Starlight), filled after cutover- packages/db-types: generated database types- supabase/: migrations, tests and seed, owned by the Supabase CLI- tools/: database and migration scripts, outside the pnpm workspaceEOF3 · The TypeScript settings every package extends
Section titled “3 · The TypeScript settings every package extends”cat > tsconfig.base.json <<'EOF'{ "$schema": "https://json.schemastore.org/tsconfig", "compilerOptions": { "target": "ES2022", "lib": ["ES2022"], "module": "ESNext", "moduleResolution": "Bundler", "moduleDetection": "force", "strict": true, "noUncheckedIndexedAccess": true, "isolatedModules": true, "esModuleInterop": true, "resolveJsonModule": true, "skipLibCheck": true, "noEmit": true }}EOF4 · Turborepo tasks: build, typecheck and dev
Section titled “4 · Turborepo tasks: build, typecheck and dev”cat > turbo.json <<'EOF'{ "$schema": "https://turborepo.dev/schema.json", "ui": "tui", "tasks": { "build": { "dependsOn": ["^build"], "inputs": ["$TURBO_DEFAULT$", ".env*"], "outputs": [".next/**", "!.next/cache/**", "!.next/dev/**", "dist/**"] }, "typecheck": { "dependsOn": ["^typecheck"] }, "dev": { "cache": false, "persistent": true } }}EOFpnpm pkg set scripts.typecheck="turbo run typecheck"5 · Commit
Section titled “5 · Commit”git add -Agit commit -m "build: shared TypeScript settings and Turborepo tasks"Expect
Section titled “Expect”Blocks 1 to 4 print nothing. Block 5 prints the commit line.
git show --stat HEAD.gitignore, README.md, package.json, tsconfig.base.json and turbo.json changed.
If it fails
Section titled “If it fails”zsh shows “heredoc>” and waits: the closing EOF wasn't pasted on a line of its own. Type EOF, press Enter, then check the file with cat.
git reset --hard HEAD~1Done 2026-10-05 (zuki)