dr-init
Initialize new Darkroom project from a satus or novus starter (NOT the same as native /init which writes CLAUDE.md). Triggers "new darkroom project", "satus", "novus", "scaffold from starter".
适合你,如果要快速生成 Darkroom 项目骨架
npx oh-my-skill add darkroomengineering/cc-settings/dr-initcurl -fsSL https://oh-my-skill.com/install.sh | bash -s -- darkroomengineering/cc-settings/dr-initnpx oh-my-skill verify darkroomengineering/cc-settings/dr-init怎么用
商店整理自技能原文 · 版本 fa04efc · 表述以原文为准该技能会引导你创建一个新的 Darkroom 项目,可选择 satus(Next.js)或 novus(React Router)starter,然后自动克隆仓库、安装依赖、配置环境变量,并启动开发服务器。
当你提到“新 Darkroom 项目”、“satus”、“novus”等关键词,或要求从 starter 脚手架创建项目时触发。
技能原文 SKILL.md
Initialize Darkroom Project
Create a new project using a Darkroom starter. Darkroom maintains two:
| Starter | Stack | When to use | |---|---|---| | satus | Next.js 16 + App Router + RSC + React 19 | Content-driven sites, SEO-critical, Vercel-friendly, projects that benefit from Server Components / Server Actions | | novus | React Router 7 + Vite + React 19 | SPA-leaning apps, projects that prefer the loader/action data model, projects without need for RSC, projects deploying to non-Vercel infra |
Step 1 — Pick the starter
If the user already specified ("/dr-init satus", "/dr-init novus", "create new react-router project"), use that. Otherwise ask:
Which starter? - satus (Next.js) — App Router, Server Components, Vercel-optimized - novus (React Router) — RR7, Vite, classic loader/action model
When the user is unsure, prefer satus for marketing/content sites and novus for app-heavy SPAs.
Step 2 — Clone
satus (Next.js)
bunx degit darkroomengineering/satus $ARGUMENTS cd $ARGUMENTS bun install
novus (React Router)
bunx degit darkroomengineering/novus $ARGUMENTS cd $ARGUMENTS bun install
Step 3 — Post-setup
Both starters:
- Update package.json — change
name,description. - Configure environment — copy
.env.exampleto.env(or.env.localfor satus). - Start dev —
bun dev. - Open debug —
Cmd/Ctrl + O(satus) orCmd + ./Ctrl + O(novus).
What each starter includes
satus
- Next.js 16 + App Router
- React 19 + React Compiler
- TypeScript strict mode
- Tailwind CSS v4
- Biome
- Lenis smooth scroll
- Hamo performance hooks
- Image / Link component wrappers
- CSS Modules with
salias @/path alias
novus
- React Router 7 + SSR via Vite
- React 19 + React Compiler
- TypeScript strict mode
- Tailwind CSS v4
- Biome
- Optional: WebGL (R3F), Anime.js, Theatre.js
- Sanity CMS integration (optional)
- t3-env + Valibot for typed env
- CSS Modules with
salias ~/path alias
Project structure
satus
app/ # Next.js routes components/ # React components lib/ ├── hooks/ # Custom hooks ├── integrations/ # Third-party clients ├── styles/ # Global CSS, Tailwind └── utils/ # Pure utilities
novus
app/ ├── root.tsx # Root layout ├── routes/ # Route modules (file-based) └── routes.ts # Optional explicit route config components/ # React components hooks/ # Custom hooks integrations/ # Third-party clients styles/ # Global CSS, Tailwind utils/ # Pure utilities
Don't use
create-next-app/create-react-app— missing Darkroom standards- Manual setup — too many things to configure
Output
After initialization:
- Confirm project created and which starter was used
- List the next steps (env, dev server)
- Offer to start the dev server
Lenis smooth scroll
Both satus and novus starters ship Lenis wired up. For non-Darkroom projects needing Lenis setup, see commit history of the retired lenis skill (git log --all -- skills/lenis/).