Loading...
Loading...
Guide feature development with architecture patterns for any tech stack. Covers frontend, backend, full-stack, and automation projects. Use when adding new features, modifying systems, or planning changes.
npx skill4agent add travisjneuman/.claude generic-feature-developergeneric-design-systemgeneric-ux-designergeneric-code-reviewerproject/
├── index.html
├── css/ # variables.css, style.css
├── js/ # main.js, utils.js
└── assets/src/
├── components/ # ui/, features/, layout/
├── hooks/
├── stores/
├── services/
└── types/src/
├── modules/[feature]/
│ ├── feature.module.ts
│ ├── feature.controller.ts
│ ├── feature.service.ts
│ └── dto/
└── common/ # guards, decorators| Scope | Action |
|---|---|
| Single component | Implement directly |
| Cross-cutting concern | Design interface first |
| New subsystem | Create architecture doc, get approval |
| Factor | Build Custom | Use Library |
|---|---|---|
| Core to product | Yes | |
| Commodity feature | Yes | |
| Tight integration needed | Yes | |
| Time-critical | Yes | |
| Long-term ownership | Yes |
| Scope | Solution |
|---|---|
| Component-local | useState/useReducer |
| Feature-wide | Context or Zustand slice |
| App-wide | Zustand/Redux store |
| Server state | React Query/SWR |
| Form state | React Hook Form |
User Action → Event Handler → State Update → Re-render → UI FeedbackRequest → Auth Check → Validation → Business Logic → Database → Response| Event Type | Approach |
|---|---|
| User events | Immediate feedback |
| Server events | WebSocket/SSE for real-time |
| Background tasks | Queue for long operations |
| Error Type | Frontend | Backend |
|---|---|---|
| Validation | Inline field errors | 400 + field errors |
| Auth | Redirect to login | 401/403 |
| Not Found | Empty state or redirect | 404 |
| Server Error | Generic message + retry | 500 + log |
| Network | Offline indicator + queue | N/A |
try {
await apiCall();
} catch (error) {
if (error instanceof ValidationError) showFieldErrors(error.fields);
else showGenericError();
}if (err instanceof ValidationError)
return res.status(400).json({ errors: err.errors });
if (err instanceof AuthError)
return res.status(401).json({ message: "Unauthorized" });| Layer | Type | Tools |
|---|---|---|
| UI | Component | Testing Library |
| Logic | Unit | Jest, Vitest |
| API | Integration | Supertest |
| E2E | End-to-end | Playwright |
generic-design-systemgeneric-ux-designerCLAUDE.md