From Darkroom Engineering
Builds features, pages, or integrations end-to-end with a GO/NO-GO research gate. Detects stack (Next.js or React Router), fetches docs, and plans before implementing.
How this skill is triggered — by the user, by Claude, or both
Slash command
/darkroom:buildThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Before starting work, create a marker: `mkdir -p ~/.claude/tmp && echo "build" > ~/.claude/tmp/heavy-skill-active && date -u +"%Y-%m-%dT%H:%M:%SZ" >> ~/.claude/tmp/heavy-skill-active`
Before starting work, create a marker: mkdir -p ~/.claude/tmp && echo "build" > ~/.claude/tmp/heavy-skill-active && date -u +"%Y-%m-%dT%H:%M:%SZ" >> ~/.claude/tmp/heavy-skill-active
Before any implementation, complete this research phase:
package.json. next dep → satus / Next.js; react-router dep → novus / React Router. Note any starter signal (name field, darkroom.starter marker).bun info <package> for the latest version.GO/NO-GO Verdict: After research, state one of:
Do not proceed past this gate without an explicit GO verdict.
Create a brief implementation plan:
lib/hooks/ for satus, hooks/ for novus, etc.)Follow standard Maestro workflow: scaffold → implement → test → review.
Use the right primitives for the stack:
| Concern | satus (Next.js) | novus (React Router) |
|---|---|---|
| Page | app/<path>/page.tsx | app/routes/<path>.tsx |
| Layout | app/<path>/layout.tsx | app/root.tsx or nested route |
| Data fetching | Server Component async function | loader() route export |
| Mutations | Server Actions ('use server') | action() route export |
| Routing | File-based app/ | File-based app/routes/ |
| Image | next/image | <img> (or Vite plugin) |
| Link | @/components/link (project wrapper) | react-router Link |
Return a concise summary:
next ^16.0.0)If you catch yourself thinking any of the following, STOP — you are skipping the research gate:
| Rationalization | Why It's Wrong |
|---|---|
| "I already know how to do this" | The codebase may have existing patterns, wrappers, or conventions you'd miss |
| "The requirements are obvious" | Obvious requirements have hidden edge cases; the GO/NO-GO gate catches them |
| "Research would take too long" | Building the wrong thing takes longer than 5 minutes of research |
| "I'll figure it out as I go" | This leads to mid-implementation pivots that waste context and leave dead code |
| "It's just a small feature" | Small features in the wrong place create architectural debt |
| "The user seems impatient" | Shipping broken code is worse than a brief research pause |
| "Both starters are similar enough" | They diverge on routing, data fetching, mutations, and asset handling. The wrong shape compiles but doesn't fit |
s, path alias @/ for satus / ~/ for novus).npx claudepluginhub darkroomengineering/cc-settings --plugin darkroomBuilds React/Next.js web frontends: components, pages, design systems, state management, typed API clients. Uses structured phases and engagement modes.
Structures feature implementation: extract goals, research, verify assumptions, generate 2-3 approaches, pick simplest. Activates on build/implement/create commands.
Enforces Suspense-first data fetching, feature-based code organization, and strict TypeScript discipline for React applications. Use when creating components, pages, adding features, or fetching data.