From a3f36a0c9881076b79d3dca0bf385992ac603567 Mon Sep 17 00:00:00 2001 From: Chris Wanstrath Date: Wed, 4 Feb 2026 09:51:58 -0800 Subject: [PATCH] tsconfig.json --- CLAUDE.md | 54 ++++++++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 44 insertions(+), 10 deletions(-) diff --git a/CLAUDE.md b/CLAUDE.md index fa05f2b..9124d2b 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -232,13 +232,46 @@ A tool is just an app that is displayed in a tab and an iframe on each app's pag ### Minimal Tool Structure -A tool needs three files at minimum: +A tool needs four files at minimum: **.npmrc** ``` registry=https://npm.nose.space ``` +**tsconfig.json** +```json +{ + "compilerOptions": { + "lib": ["ESNext"], + "target": "ESNext", + "module": "Preserve", + "moduleDetection": "force", + "jsx": "react-jsx", + "jsxImportSource": "hono/jsx", + "allowJs": true, + "moduleResolution": "bundler", + "allowImportingTsExtensions": true, + "verbatimModuleSyntax": true, + "noEmit": true, + "strict": true, + "skipLibCheck": true, + "noFallthroughCasesInSwitch": true, + "noUncheckedIndexedAccess": true, + "noImplicitOverride": true, + "noUnusedLocals": false, + "noUnusedParameters": false, + "noPropertyAccessFromIndexSignature": false, + "baseUrl": ".", + "paths": { + "$*": ["src/server/*"], + "#*": ["src/client/*"], + "@*": ["src/shared/*"] + } + } +} +``` + **package.json** ```json { @@ -516,12 +549,13 @@ watch(APPS_DIR, { recursive: true }, (_event, filename) => { ### Checklist for New Tools 1. [ ] `.npmrc` contains `registry=https://npm.nose.space` -2. [ ] `package.json` has `toes.tool: true` and `toes.icon` -3. [ ] `scripts.toes` uses `bun run --watch index.tsx` -4. [ ] Dependencies include `@because/forge`, `@because/hype`, `@because/toes` -5. [ ] Import `baseStyles`, `ToolScript`, `theme` from `@because/toes/tools` -6. [ ] Layout body includes `` -7. [ ] Styles served at `/styles.css` with `baseStyles + stylesToCSS()` -8. [ ] Main route handles missing `?app` parameter gracefully -9. [ ] Uses `APPS_DIR//current` for file paths -10. [ ] Exports `app.defaults` as default export +2. [ ] `tsconfig.json` matches the exact config shown above (do not improvise) +3. [ ] `package.json` has `toes.tool: true` and `toes.icon` +4. [ ] `scripts.toes` uses `bun run --watch index.tsx` +5. [ ] Dependencies include `@because/forge`, `@because/hype`, `@because/toes` +6. [ ] Import `baseStyles`, `ToolScript`, `theme` from `@because/toes/tools` +7. [ ] Layout body includes `` +8. [ ] Styles served at `/styles.css` with `baseStyles + stylesToCSS()` +9. [ ] Main route handles missing `?app` parameter gracefully +10. [ ] Uses `APPS_DIR//current` for file paths +11. [ ] Exports `app.defaults` as default export