jettypod 3.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude/PROTECT_SKILLS.md +28 -0
- package/.claude/settings.json +24 -0
- package/.claude/settings.local.json +16 -0
- package/.claude/skills/epic-discover/SKILL.md +262 -0
- package/.claude/skills/feature-discover/SKILL.md +393 -0
- package/.claude/skills/speed-mode/SKILL.md +364 -0
- package/.claude/skills/stable-mode/SKILL.md +591 -0
- package/.github/workflows/test-safety.yml +85 -0
- package/README.md +25 -0
- package/SPEED-STABLE-AUDIT.md +853 -0
- package/SYSTEM-BEHAVIOR.md +1241 -0
- package/TEST_SAFETY_AUDIT.md +314 -0
- package/TEST_SAFETY_IMPLEMENTATION.md +97 -0
- package/cucumber.js +8 -0
- package/docs/COMMAND_REFERENCE.md +903 -0
- package/docs/DECISIONS.md +68 -0
- package/docs/README.md +48 -0
- package/docs/STANDARDS-SYSTEM-DOCUMENTATION.md +374 -0
- package/docs/TEST-REWRITE-PLAN.md +261 -0
- package/docs/ai-test-writing-requirements.md +219 -0
- package/docs/claude-code-skills.md +607 -0
- package/docs/core-jettypod-methodology/comprehensive-jettypod-methodology.md +582 -0
- package/docs/core-jettypod-methodology/deprecated/jettypod-comprehensive-standards.md +1222 -0
- package/docs/core-jettypod-methodology/deprecated/jettypod-operating-guide.md +3399 -0
- package/docs/core-jettypod-methodology/deprecated/jettypod-technical-checklist.md +1325 -0
- package/docs/core-jettypod-methodology/deprecated/jettypod-vibe-coding-framework.md +1544 -0
- package/docs/core-jettypod-methodology/deprecated/prompt-engineering-guide.md +320 -0
- package/docs/core-jettypod-methodology/deprecated/vibe-coding-cheatsheet (1).md +516 -0
- package/docs/core-jettypod-methodology/deprecated/vibe-coding-framework.md +1544 -0
- package/docs/features/jettypod-standards-explained.md +543 -0
- package/docs/features/standards-inventory.md +257 -0
- package/docs/gap-analysis-current-vs-comprehensive-methodology.md +939 -0
- package/docs/jettypod-system-overview.md +409 -0
- package/features/auto-generate-production-chores.feature +14 -0
- package/features/claude-md-protection/steps.js +487 -0
- package/features/decisions/index.js +490 -0
- package/features/decisions/index.test.js +208 -0
- package/features/git-hooks/git-hooks.feature +30 -0
- package/features/git-hooks/index.js +93 -0
- package/features/git-hooks/index.test.js +137 -0
- package/features/git-hooks/post-commit +56 -0
- package/features/git-hooks/post-merge +47 -0
- package/features/git-hooks/pre-commit +28 -0
- package/features/git-hooks/simple-steps.js +53 -0
- package/features/git-hooks/simple-test.feature +10 -0
- package/features/git-hooks/steps.js +196 -0
- package/features/jettypod-update-command.feature +46 -0
- package/features/mode-prompts/index.js +95 -0
- package/features/mode-prompts/simple-steps.js +44 -0
- package/features/mode-prompts/simple-test.feature +9 -0
- package/features/mode-prompts/validation.test.js +120 -0
- package/features/refactor-mode/steps.js +217 -0
- package/features/refactor-mode.feature +49 -0
- package/features/skills-update/index.test.js +216 -0
- package/features/step_definitions/auto-generate-production-chores.steps.js +162 -0
- package/features/step_definitions/terminal-logo.steps.js +145 -0
- package/features/step_definitions/update-command.steps.js +183 -0
- package/features/terminal-logo/index.js +39 -0
- package/features/terminal-logo/terminal-logo.feature +30 -0
- package/features/update-command/index.js +181 -0
- package/features/update-command/index.test.js +225 -0
- package/features/work-commands/bug-workflow-display.feature +22 -0
- package/features/work-commands/index.js +311 -0
- package/features/work-commands/simple-steps.js +69 -0
- package/features/work-commands/stable-tests.feature +57 -0
- package/features/work-commands/steps.js +1120 -0
- package/features/work-commands/validation.test.js +88 -0
- package/features/work-commands/work-commands.feature +13 -0
- package/features/work-tracking/discovery-validation.test.js +228 -0
- package/features/work-tracking/index.js +1511 -0
- package/features/work-tracking/mode-required.feature +112 -0
- package/features/work-tracking/phase-tracking.test.js +482 -0
- package/features/work-tracking/prototype-tracking.test.js +485 -0
- package/features/work-tracking/tree-view.test.js +310 -0
- package/features/work-tracking/work-set-mode.feature +71 -0
- package/features/work-tracking/work-start-mode.feature +88 -0
- package/full-test.txt +0 -0
- package/install.sh +89 -0
- package/jettypod.js +1640 -0
- package/lib/bug-workflow.js +94 -0
- package/lib/bug-workflow.test.js +177 -0
- package/lib/claudemd.js +130 -0
- package/lib/claudemd.test.js +195 -0
- package/lib/comprehensive-standards-full.json +1778 -0
- package/lib/config.js +181 -0
- package/lib/config.test.js +511 -0
- package/lib/constants.js +107 -0
- package/lib/constants.test.js +164 -0
- package/lib/current-work.js +130 -0
- package/lib/current-work.test.js +146 -0
- package/lib/database-project-config.test.js +107 -0
- package/lib/database.js +256 -0
- package/lib/database.test.js +106 -0
- package/lib/decisions-generator.js +102 -0
- package/lib/decisions-generator.test.js +457 -0
- package/lib/decisions-helpers.js +119 -0
- package/lib/decisions-helpers.test.js +310 -0
- package/lib/discovery-checkpoint.js +83 -0
- package/lib/docs-generator.js +280 -0
- package/lib/external-checklist.js +177 -0
- package/lib/git.js +142 -0
- package/lib/git.test.js +145 -0
- package/lib/logo.js +3 -0
- package/lib/migrations/001-epic-to-parent.js +24 -0
- package/lib/migrations/002-default-work-item-modes.js +37 -0
- package/lib/migrations/002-default-work-item-modes.test.js +351 -0
- package/lib/migrations/003-epic-discovery-fields.js +52 -0
- package/lib/migrations/004-discovery-decisions-table.js +32 -0
- package/lib/migrations/005-migrate-decision-data.js +62 -0
- package/lib/migrations/006-feature-phase-field.js +61 -0
- package/lib/migrations/007-prototype-tracking.js +38 -0
- package/lib/migrations/008-scenario-file-field.js +24 -0
- package/lib/migrations/index.js +74 -0
- package/lib/production-helpers.js +69 -0
- package/lib/project-state.test.js +92 -0
- package/lib/test-helpers.js +184 -0
- package/lib/test-helpers.test.js +255 -0
- package/package.json +36 -0
- package/prototypes/test/index.html +1 -0
- package/setup-dist-repo.sh +68 -0
- package/test-safety-check.sh +80 -0
- package/work-item-tracking-plan.md +199 -0
|
@@ -0,0 +1,257 @@
|
|
|
1
|
+
# JettyPod Standards Inventory
|
|
2
|
+
|
|
3
|
+
Complete listing of all standards with their priority levels, project stage requirements, and default values.
|
|
4
|
+
|
|
5
|
+
## Understanding the Attributes
|
|
6
|
+
|
|
7
|
+
### Priority Levels
|
|
8
|
+
- **critical**: Must-have standards that appear even in speed mode
|
|
9
|
+
- **high**: Important standards that appear in speed and discovery modes
|
|
10
|
+
- **medium**: Standard practices that appear in discovery and production modes
|
|
11
|
+
- **low**: Nice-to-have standards that only appear in production mode
|
|
12
|
+
|
|
13
|
+
### Project Stages
|
|
14
|
+
- **empty**: Brand new project, just starting
|
|
15
|
+
- **starting**: Early development, basic structure in place
|
|
16
|
+
- **growing**: Active development, team expanding
|
|
17
|
+
- **mature**: Established project, stable development
|
|
18
|
+
- **production**: Live product with real users
|
|
19
|
+
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
## Core Standards (12 total)
|
|
23
|
+
|
|
24
|
+
| Standard ID | Title | Priority | Stage | Default Value | Description |
|
|
25
|
+
|------------|-------|----------|-------|---------------|-------------|
|
|
26
|
+
| project_structure | Project Structure | critical | empty | feature-based | Organize by features with /features, /shared, /core folders |
|
|
27
|
+
| naming_files | File Naming | critical | empty | PascalCase for components (.tsx), camelCase for utils (.ts) | Component: UserProfile.tsx, Util: formatDate.ts, Hook: useAuth.ts |
|
|
28
|
+
| naming_variables | Variable Naming | critical | empty | camelCase, is/has/should prefixes for booleans | isLoading, hasError, shouldUpdate, userData |
|
|
29
|
+
| naming_functions | Function Naming | high | empty | Verb prefixes (get/set/handle/validate) | getUserData, handleClick, validateForm |
|
|
30
|
+
| git_commits | Git Commit Messages | high | empty | Conventional commits (feat/fix/docs) | feat: add user authentication, fix: resolve login bug |
|
|
31
|
+
| git_branches | Git Branch Naming | medium | starting | type/description format | feature/user-auth, bugfix/login-error, hotfix/security-patch |
|
|
32
|
+
| data_types | Data Types | high | empty | TypeScript strict mode, interfaces over types | Use interfaces for objects, types for unions/primitives |
|
|
33
|
+
| styling_method | Styling Method | high | empty | Tailwind CSS or CSS Modules | Tailwind for utilities, CSS Modules for complex components |
|
|
34
|
+
| component_structure | Component Structure | high | empty | Function components with hooks | Props at top, hooks next, handlers, then JSX return |
|
|
35
|
+
| code_formatting | Code Formatting | medium | empty | Prettier with 2 spaces, single quotes | 80 char line limit, trailing commas, no semicolons |
|
|
36
|
+
| imports_exports | Import/Export Style | medium | starting | Named exports, absolute imports | Named exports except pages, @ alias for src |
|
|
37
|
+
| typescript_config | TypeScript Config | low | growing | Strict mode enabled | strict: true, noImplicitAny, strictNullChecks |
|
|
38
|
+
|
|
39
|
+
---
|
|
40
|
+
|
|
41
|
+
## Data & API Standards (10 total)
|
|
42
|
+
|
|
43
|
+
| Standard ID | Title | Priority | Stage | Default Value | Description |
|
|
44
|
+
|------------|-------|----------|-------|---------------|-------------|
|
|
45
|
+
| database_naming | Database Naming | high | starting | snake_case | Tables: plural (users), columns: snake_case (created_at) |
|
|
46
|
+
| api_naming | API Naming | critical | starting | RESTful URLs | /api/v1/users, /api/v1/users/:id, plural nouns |
|
|
47
|
+
| api_responses | API Response Format | critical | starting | Envelope pattern | {success: true, data: {}, error: null, meta: {}} |
|
|
48
|
+
| api_errors | API Error Handling | high | starting | Consistent error format | {success: false, error: {code, message, details}} |
|
|
49
|
+
| rest_conventions | REST Conventions | high | growing | Standard HTTP methods | GET (read), POST (create), PUT (update), DELETE |
|
|
50
|
+
| graphql_schema | GraphQL Schema | medium | growing | Type-first design | Define schema before resolvers, use clear type names |
|
|
51
|
+
| pagination | Pagination | medium | growing | Cursor-based | {data: [], pageInfo: {hasNext, cursor}} |
|
|
52
|
+
| filtering | Filtering & Sorting | medium | growing | Query parameters | ?filter[status]=active&sort=-created_at |
|
|
53
|
+
| caching | Caching Strategy | low | mature | Cache-Control headers | CDN for static, Redis for dynamic, 5min default |
|
|
54
|
+
| rate_limiting | Rate Limiting | low | production | Token bucket | 100 req/min authenticated, 20 req/min anonymous |
|
|
55
|
+
|
|
56
|
+
---
|
|
57
|
+
|
|
58
|
+
## UI/UX Standards (10 total)
|
|
59
|
+
|
|
60
|
+
| Standard ID | Title | Priority | Stage | Default Value | Description |
|
|
61
|
+
|------------|-------|----------|-------|---------------|-------------|
|
|
62
|
+
| component_library | Component Library | high | starting | shadcn/ui | Use shadcn/ui components from @/components/ui/ |
|
|
63
|
+
| ui_consistency | UI Consistency | critical | empty | Design system approach | Consistent components, patterns, and behaviors |
|
|
64
|
+
| color_system | Color System | high | empty | Semantic colors | primary, secondary, success, warning, error, neutral |
|
|
65
|
+
| spacing | Spacing System | high | empty | 8px base unit | 0.5rem (4px), 1rem (8px), 2rem (16px), 4rem (32px) |
|
|
66
|
+
| typography | Typography | high | starting | System font stack | -apple-system, BlinkMacSystemFont, Segoe UI, Roboto |
|
|
67
|
+
| forms | Form Design | high | starting | Label above input | Required fields marked with *, inline validation |
|
|
68
|
+
| buttons | Button Styles | medium | starting | 3 variants | Primary (filled), secondary (outline), ghost (text) |
|
|
69
|
+
| loading_states | Loading States | high | starting | Skeleton screens | Show layout structure while loading content |
|
|
70
|
+
| error_states | Error States | high | starting | Inline + toast | Field errors inline, system errors as toast |
|
|
71
|
+
| accessibility | Accessibility | medium | growing | WCAG 2.1 AA | Semantic HTML, ARIA labels, keyboard navigation |
|
|
72
|
+
| animations | Animations | low | mature | 200-300ms duration | Ease-in-out, respect prefers-reduced-motion |
|
|
73
|
+
|
|
74
|
+
---
|
|
75
|
+
|
|
76
|
+
## Security Standards (10 total)
|
|
77
|
+
|
|
78
|
+
| Standard ID | Title | Priority | Stage | Default Value | Description |
|
|
79
|
+
|------------|-------|----------|-------|---------------|-------------|
|
|
80
|
+
| authentication | Authentication | critical | starting | JWT + refresh tokens | Access token 15min, refresh token 7 days |
|
|
81
|
+
| authorization | Authorization | critical | starting | RBAC | Role-based access control with permissions |
|
|
82
|
+
| password_handling | Password Handling | critical | starting | bcrypt, 10 rounds | Min 8 chars, 1 upper, 1 lower, 1 number, 1 special |
|
|
83
|
+
| data_encryption | Data Encryption | high | growing | AES-256 | Encrypt PII at rest, TLS 1.3 in transit |
|
|
84
|
+
| input_validation | Input Validation | critical | starting | Whitelist approach | Validate type, length, format, sanitize HTML |
|
|
85
|
+
| xss_prevention | XSS Prevention | critical | starting | Escape output | DOMPurify for user content, CSP headers |
|
|
86
|
+
| sql_injection | SQL Injection Prevention | critical | starting | Parameterized queries | Never concatenate SQL, use ORM or prepared statements |
|
|
87
|
+
| cors | CORS Configuration | high | growing | Whitelist origins | Specific origins only, credentials: true if needed |
|
|
88
|
+
| security_headers | Security Headers | medium | mature | OWASP recommendations | X-Frame-Options, X-Content-Type-Options, CSP |
|
|
89
|
+
| audit_logging | Audit Logging | low | production | Who, what, when, where | User ID, action, timestamp, IP, user agent |
|
|
90
|
+
|
|
91
|
+
---
|
|
92
|
+
|
|
93
|
+
## Quality & Testing Standards (9 total)
|
|
94
|
+
|
|
95
|
+
| Standard ID | Title | Priority | Stage | Default Value | Description |
|
|
96
|
+
|------------|-------|----------|-------|---------------|-------------|
|
|
97
|
+
| unit_testing | Unit Testing | high | growing | Jest + Testing Library | Test behavior not implementation, aim for 80% coverage |
|
|
98
|
+
| integration_testing | Integration Testing | medium | growing | API + DB tests | Test endpoints with real database, use transactions |
|
|
99
|
+
| e2e_testing | E2E Testing | low | mature | Playwright or Cypress | Critical user flows only, run in CI |
|
|
100
|
+
| test_coverage | Test Coverage | medium | mature | 80% target | Measure but don't enforce, focus on critical paths |
|
|
101
|
+
| error_handling | Error Handling | critical | starting | Try-catch + boundaries | Async try-catch, React error boundaries, fallback UI |
|
|
102
|
+
| logging | Logging | high | growing | Structured JSON | Log levels: error, warn, info, debug, trace |
|
|
103
|
+
| monitoring | Monitoring | medium | production | APM + error tracking | Sentry for errors, DataDog/NewRelic for APM |
|
|
104
|
+
| performance | Performance Standards | medium | mature | Core Web Vitals | LCP < 2.5s, FID < 100ms, CLS < 0.1 |
|
|
105
|
+
| documentation | Documentation | high | growing | JSDoc + README | Function comments, API docs, setup instructions |
|
|
106
|
+
|
|
107
|
+
---
|
|
108
|
+
|
|
109
|
+
## Advanced/Enterprise Standards (8 total)
|
|
110
|
+
|
|
111
|
+
| Standard ID | Title | Priority | Stage | Default Value | Description |
|
|
112
|
+
|------------|-------|----------|-------|---------------|-------------|
|
|
113
|
+
| deployment | Deployment Process | medium | mature | Blue-green deployment | Zero-downtime deploys with rollback capability |
|
|
114
|
+
| ci_cd | CI/CD Pipeline | medium | mature | GitHub Actions + Vercel | Test → Build → Deploy on merge to main |
|
|
115
|
+
| environment_config | Environment Config | high | growing | .env files + validation | Never commit .env, use .env.example, validate on start |
|
|
116
|
+
| feature_flags | Feature Flags | low | mature | LaunchDarkly or custom | Boolean flags, gradual rollout, user targeting |
|
|
117
|
+
| i18n | Internationalization | low | mature | next-i18next | JSON translation files, locale detection, RTL support |
|
|
118
|
+
| microservices | Microservices | low | production | API Gateway pattern | Single entry point, service discovery, circuit breakers |
|
|
119
|
+
| scaling | Scaling Patterns | low | production | Horizontal first | Auto-scaling groups, load balancers, CDN |
|
|
120
|
+
| disaster_recovery | Disaster Recovery | low | production | 3-2-1 backup rule | 3 copies, 2 different media, 1 offsite, RTO < 4hrs |
|
|
121
|
+
|
|
122
|
+
---
|
|
123
|
+
|
|
124
|
+
## Standards Distribution Summary
|
|
125
|
+
|
|
126
|
+
### By Priority
|
|
127
|
+
- **Critical**: 11 standards (18%)
|
|
128
|
+
- **High**: 20 standards (33%)
|
|
129
|
+
- **Medium**: 17 standards (28%)
|
|
130
|
+
- **Low**: 12 standards (20%)
|
|
131
|
+
|
|
132
|
+
### By Stage (when first introduced)
|
|
133
|
+
- **Empty**: 12 standards
|
|
134
|
+
- **Starting**: 19 standards
|
|
135
|
+
- **Growing**: 14 standards
|
|
136
|
+
- **Mature**: 9 standards
|
|
137
|
+
- **Production**: 6 standards
|
|
138
|
+
|
|
139
|
+
### Stage Accumulation (total available)
|
|
140
|
+
- **Empty stage**: 12 standards available
|
|
141
|
+
- **Starting stage**: 31 standards available (empty + starting)
|
|
142
|
+
- **Growing stage**: 45 standards available (+ growing)
|
|
143
|
+
- **Mature stage**: 54 standards available (+ mature)
|
|
144
|
+
- **Production stage**: 60 standards available (all)
|
|
145
|
+
|
|
146
|
+
---
|
|
147
|
+
|
|
148
|
+
## Mode Visibility Matrix
|
|
149
|
+
|
|
150
|
+
### Speed Mode (Critical + High only)
|
|
151
|
+
- **Empty stage**: ~8 standards visible
|
|
152
|
+
- **Starting stage**: ~20 standards visible
|
|
153
|
+
- **Growing stage**: ~25 standards visible
|
|
154
|
+
- **Mature stage**: ~28 standards visible
|
|
155
|
+
- **Production stage**: ~31 standards visible
|
|
156
|
+
|
|
157
|
+
### Discovery Mode (All priorities, balanced detail)
|
|
158
|
+
- **Empty stage**: 12 standards visible
|
|
159
|
+
- **Starting stage**: 31 standards visible
|
|
160
|
+
- **Growing stage**: 45 standards visible
|
|
161
|
+
- **Mature stage**: 54 standards visible
|
|
162
|
+
- **Production stage**: 60 standards visible
|
|
163
|
+
|
|
164
|
+
### Production Mode (All priorities, full documentation)
|
|
165
|
+
- Same counts as Discovery mode but with:
|
|
166
|
+
- Detailed examples for each standard
|
|
167
|
+
- Edge case documentation
|
|
168
|
+
- Implementation notes
|
|
169
|
+
- Security considerations
|
|
170
|
+
- Performance implications
|
|
171
|
+
|
|
172
|
+
---
|
|
173
|
+
|
|
174
|
+
## Bundle Composition
|
|
175
|
+
|
|
176
|
+
### Core Bundle
|
|
177
|
+
Contains: All 12 core standards
|
|
178
|
+
|
|
179
|
+
### Auth Bundle
|
|
180
|
+
Contains: authentication, authorization, password_handling, input_validation, xss_prevention
|
|
181
|
+
|
|
182
|
+
### API Bundle
|
|
183
|
+
Contains: api_naming, api_responses, api_errors, rest_conventions, pagination, filtering, rate_limiting
|
|
184
|
+
|
|
185
|
+
### Database Bundle
|
|
186
|
+
Contains: database_naming, sql_injection, data_encryption, caching
|
|
187
|
+
|
|
188
|
+
### UI Bundle
|
|
189
|
+
Contains: ui_consistency, color_system, spacing, typography, forms, buttons, loading_states, error_states
|
|
190
|
+
|
|
191
|
+
### Forms Bundle
|
|
192
|
+
Contains: forms, input_validation, error_states, accessibility
|
|
193
|
+
|
|
194
|
+
### Testing Bundle
|
|
195
|
+
Contains: unit_testing, integration_testing, e2e_testing, test_coverage
|
|
196
|
+
|
|
197
|
+
### Security Bundle
|
|
198
|
+
Contains: All 10 security standards
|
|
199
|
+
|
|
200
|
+
### Quality Bundle
|
|
201
|
+
Contains: All 9 quality standards
|
|
202
|
+
|
|
203
|
+
### Advanced Bundle
|
|
204
|
+
Contains: All 8 advanced standards
|
|
205
|
+
|
|
206
|
+
### shadcn Bundle (NEW)
|
|
207
|
+
Contains: component_library (configured for shadcn/ui), styling_method (Tailwind + CSS variables), styling_spacing, forms_structure, forms_validation, accessibility, button_patterns, modal_patterns, notifications
|
|
208
|
+
|
|
209
|
+
### Stack-Specific Bundles
|
|
210
|
+
- **nextjs**: core + ui + api + specific Next.js patterns
|
|
211
|
+
- **vite_react**: core + ui + forms + Vite-specific patterns
|
|
212
|
+
- **node_api**: core + api + database + Node.js patterns
|
|
213
|
+
|
|
214
|
+
---
|
|
215
|
+
|
|
216
|
+
## Default Values Quick Reference
|
|
217
|
+
|
|
218
|
+
### Naming Conventions
|
|
219
|
+
- **Files**: PascalCase.tsx for components, camelCase.ts for utils
|
|
220
|
+
- **Variables**: camelCase with is/has/should prefixes for booleans
|
|
221
|
+
- **Functions**: Verb prefixes (get, set, handle, validate)
|
|
222
|
+
- **Database**: snake_case for tables and columns
|
|
223
|
+
- **API**: /api/v1/resource format with plural nouns
|
|
224
|
+
|
|
225
|
+
### Development Practices
|
|
226
|
+
- **Git**: Conventional commits (feat/fix/docs)
|
|
227
|
+
- **Branches**: type/description (feature/user-auth)
|
|
228
|
+
- **Testing**: 80% coverage target, behavior over implementation
|
|
229
|
+
- **Documentation**: JSDoc comments + README files
|
|
230
|
+
- **Errors**: Try-catch blocks + React error boundaries
|
|
231
|
+
|
|
232
|
+
### Technical Choices
|
|
233
|
+
- **Component Library**: shadcn/ui (copy-paste into @/components/ui/)
|
|
234
|
+
- **TypeScript**: Strict mode with interfaces for objects
|
|
235
|
+
- **Styling**: Tailwind CSS or CSS Modules (shadcn uses Tailwind + CSS variables)
|
|
236
|
+
- **Components**: Functional with hooks
|
|
237
|
+
- **API Responses**: {success, data, error, meta} envelope
|
|
238
|
+
- **Authentication**: JWT with 15min access, 7 day refresh
|
|
239
|
+
|
|
240
|
+
### Security Defaults
|
|
241
|
+
- **Passwords**: bcrypt with 10 rounds, complex requirements
|
|
242
|
+
- **Validation**: Whitelist approach, sanitize HTML
|
|
243
|
+
- **CORS**: Whitelist specific origins only
|
|
244
|
+
- **Headers**: OWASP recommended security headers
|
|
245
|
+
- **Encryption**: AES-256 at rest, TLS 1.3 in transit
|
|
246
|
+
|
|
247
|
+
### shadcn/ui Specific
|
|
248
|
+
- **Installation**: `npx shadcn-ui@latest init`
|
|
249
|
+
- **Add Components**: `npx shadcn-ui@latest add [component]`
|
|
250
|
+
- **Location**: Components go in @/components/ui/
|
|
251
|
+
- **Styling**: Use cn() utility for conditional classes
|
|
252
|
+
- **Customization**: Via CSS variables in globals.css
|
|
253
|
+
- **Approach**: Always check if shadcn has the component before building custom
|
|
254
|
+
|
|
255
|
+
---
|
|
256
|
+
|
|
257
|
+
*Last Updated: 2025-09-02*
|