Rocky architecture profiles: detect before you impose
Rocky detects the repo before imposing structure: Next.js App Router, hexagonal when src/domain exists, layered React SPA, or node-api-only. Do not force foreign layouts.
Detect the user's repo before imposing structure. Prefer hexagonal playbooks when src/domain/ exists.
Source: architecture-profiles.md.
Detection order
app/+ Next.js deps → nextjs-app-router (nextjs-developer)src/domain/+src/application/→ hexagonal
- NestJS (@nestjs/core) → nestjs-hexagonal - FastAPI / Python → fastapi-hexagonal - React UI → react-hexagonal
src/components/atoms+connected/→ layered-react-spa (legacy handbook layout)- No
components/butsrc/routesor Express → node-api-only - Else: graphify + read neighbors. Do not force foreign layouts.
hexagonal (preferred when present)
src/
├── domain/ # entities, ports, pure logic
├── application/ # use-cases / hooks / controllers / routes
└── infrastructure/ # adapters (api, db, email, ...)See agents: react-hexagonal, nestjs-hexagonal, fastapi-hexagonal.
layered-react-spa (legacy)
src/
├── components/atoms/
├── components/connected/
├── context/, actions/, reducers/, selectors/
├── services/, pages/, utils/, config/Styling: styles.module.less per component. See tailwind-ui-developer when using Tailwind instead.
nextjs-app-router
Hexagonal or layered logic. Routes in app/. See nextjs-developer for server/client boundaries.
node-api-only
Router → use case → repository. See node-api-developer.
Styling variants
| Profile | When |
|---|---|
| Tailwind | tailwindcss in package.json → tailwind-ui-developer |
| LESS modules | No Tailwind → match react-hexagonal + repo conventions |
