@jmruthers/pace-core 0.6.6 → 0.6.7

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.
Files changed (246) hide show
  1. package/{scripts/audit/audit-dependencies.cjs → audit-tool/00-dependencies.cjs} +12 -13
  2. package/audit-tool/audits/01-pace-core-compliance.cjs +556 -0
  3. package/audit-tool/audits/02-project-structure.cjs +255 -0
  4. package/audit-tool/audits/03-architecture.cjs +196 -0
  5. package/audit-tool/audits/04-code-quality.cjs +149 -0
  6. package/audit-tool/audits/05-styling.cjs +224 -0
  7. package/audit-tool/audits/06-security-rbac.cjs +544 -0
  8. package/audit-tool/audits/07-api-tech-stack.cjs +301 -0
  9. package/audit-tool/audits/08-testing-documentation.cjs +202 -0
  10. package/audit-tool/audits/09-operations.cjs +208 -0
  11. package/audit-tool/index.cjs +291 -0
  12. package/audit-tool/utils/code-utils.cjs +218 -0
  13. package/audit-tool/utils/file-utils.cjs +230 -0
  14. package/audit-tool/utils/report-utils.cjs +241 -0
  15. package/cursor-rules/00-standards-overview.mdc +156 -0
  16. package/cursor-rules/{00-pace-core-compliance.mdc → 01-pace-core-compliance.mdc} +187 -34
  17. package/cursor-rules/02-project-structure.mdc +37 -5
  18. package/cursor-rules/{03-solid-principles.mdc → 03-architecture.mdc} +125 -11
  19. package/cursor-rules/04-code-quality.mdc +419 -0
  20. package/cursor-rules/{08-markup-quality.mdc → 05-styling.mdc} +55 -10
  21. package/cursor-rules/{09-rbac-compliance.mdc → 06-security-rbac.mdc} +62 -6
  22. package/cursor-rules/07-api-tech-stack.mdc +377 -0
  23. package/cursor-rules/08-testing-documentation.mdc +324 -0
  24. package/cursor-rules/09-operations.mdc +365 -0
  25. package/dist/DataTable-7PMH7XN7.js +15 -0
  26. package/dist/{DataTable-2N_tqbfq.d.ts → DataTable-DRUIgtUH.d.ts} +1 -1
  27. package/dist/{PublicPageProvider-BBH6Vqg7.d.ts → PublicPageProvider-DlsCaR5v.d.ts} +26 -16
  28. package/dist/{chunk-FENMYN2U.js → chunk-5X4QLXRG.js} +1 -3
  29. package/dist/{chunk-4T7OBVTU.js → chunk-6F3IILHI.js} +1 -1
  30. package/dist/{chunk-SD6WQY43.js → chunk-7ILTDCL2.js} +9 -1
  31. package/dist/{chunk-3QC3KRHK.js → chunk-A3W6LW53.js} +16 -1
  32. package/dist/{chunk-7TYHROIV.js → chunk-BM4CQ5P3.js} +50 -8
  33. package/dist/{chunk-2HGJFNAH.js → chunk-FEJLJNWA.js} +1 -15
  34. package/dist/{chunk-OHIK3MIO.js → chunk-GHYHJTYV.js} +2 -2
  35. package/dist/{chunk-UIYSCEV7.js → chunk-IUBRCBSY.js} +1 -1
  36. package/dist/{chunk-LAZMKTTF.js → chunk-JGWDVX64.js} +281 -347
  37. package/dist/{chunk-MAGBIDNS.js → chunk-L4XMVJKY.js} +2 -2
  38. package/dist/{chunk-A55DK444.js → chunk-OJ4SKRSV.js} +1 -7
  39. package/dist/{chunk-ZS5VO5JB.js → chunk-Q7Q7V5NV.js} +406 -451
  40. package/dist/{chunk-3O3WHILE.js → chunk-VBCS3DUA.js} +236 -60
  41. package/dist/{chunk-BVP2BCJF.js → chunk-ZKAWKYT4.js} +8 -8
  42. package/dist/components.d.ts +5 -4
  43. package/dist/components.js +27 -32
  44. package/dist/eslint-rules/index.cjs +22 -9
  45. package/{src/eslint-rules/rules/compliance.cjs → dist/eslint-rules/rules/01-pace-core-compliance.cjs} +184 -23
  46. package/dist/eslint-rules/rules/04-code-quality.cjs +290 -0
  47. package/dist/eslint-rules/rules/05-styling.cjs +61 -0
  48. package/dist/eslint-rules/rules/{rbac.cjs → 06-security-rbac.cjs} +26 -10
  49. package/dist/eslint-rules/rules/07-api-tech-stack.cjs +263 -0
  50. package/dist/eslint-rules/rules/08-testing.cjs +94 -0
  51. package/dist/hooks.d.ts +5 -5
  52. package/dist/hooks.js +6 -6
  53. package/dist/index.d.ts +6 -6
  54. package/dist/index.js +18 -17
  55. package/dist/rbac/index.js +6 -6
  56. package/dist/theming/runtime.d.ts +14 -1
  57. package/dist/theming/runtime.js +1 -1
  58. package/dist/{types-B-K_5VnO.d.ts → types-DXstZpNI.d.ts} +0 -17
  59. package/dist/{usePublicRouteParams-COZ28Mvq.d.ts → usePublicRouteParams-MamNgwqe.d.ts} +19 -19
  60. package/dist/utils.d.ts +2 -2
  61. package/dist/utils.js +8 -8
  62. package/docs/README.md +1 -1
  63. package/docs/api/modules.md +47 -31
  64. package/docs/api-reference/components.md +18 -20
  65. package/docs/api-reference/hooks.md +80 -80
  66. package/docs/api-reference/types.md +1 -1
  67. package/docs/api-reference/utilities.md +1 -1
  68. package/docs/architecture/README.md +1 -1
  69. package/docs/core-concepts/events.md +3 -3
  70. package/docs/core-concepts/organisations.md +6 -6
  71. package/docs/core-concepts/permissions.md +6 -6
  72. package/docs/documentation-index.md +12 -18
  73. package/docs/getting-started/documentation-index.md +1 -1
  74. package/docs/getting-started/examples/README.md +4 -4
  75. package/docs/getting-started/examples/full-featured-app.md +1 -1
  76. package/docs/getting-started/faq.md +2 -2
  77. package/docs/getting-started/quick-reference.md +4 -4
  78. package/docs/implementation-guides/authentication.md +15 -15
  79. package/docs/implementation-guides/component-styling.md +1 -1
  80. package/docs/implementation-guides/data-tables.md +126 -33
  81. package/docs/implementation-guides/datatable-rbac-usage.md +1 -1
  82. package/docs/implementation-guides/dynamic-colors.md +3 -3
  83. package/docs/implementation-guides/file-upload-storage.md +2 -2
  84. package/docs/implementation-guides/hierarchical-datatable.md +40 -60
  85. package/docs/implementation-guides/inactivity-tracking.md +3 -3
  86. package/docs/implementation-guides/large-datasets.md +3 -2
  87. package/docs/implementation-guides/organisation-security.md +2 -2
  88. package/docs/implementation-guides/performance.md +2 -2
  89. package/docs/implementation-guides/permission-enforcement.md +1 -1
  90. package/docs/migration/V0.3.44_organisation-context-timing-fix.md +1 -1
  91. package/docs/migration/V0.4.0_rbac-migration.md +6 -6
  92. package/docs/rbac/README.md +5 -5
  93. package/docs/rbac/advanced-patterns.md +6 -6
  94. package/docs/rbac/api-reference.md +20 -20
  95. package/docs/rbac/event-based-apps.md +3 -3
  96. package/docs/rbac/examples.md +41 -41
  97. package/docs/rbac/getting-started.md +37 -37
  98. package/docs/rbac/performance.md +1 -1
  99. package/docs/rbac/quick-start.md +52 -52
  100. package/docs/rbac/secure-client-protection.md +1 -1
  101. package/docs/rbac/troubleshooting.md +1 -1
  102. package/docs/security/README.md +5 -5
  103. package/docs/standards/0-standards-overview.md +220 -0
  104. package/docs/standards/{00-pace-core-compliance.md → 1-pace-core-compliance-standards.md} +204 -185
  105. package/docs/standards/{02-project-structure.md → 2-project-structure-standards.md} +11 -47
  106. package/docs/standards/3-architecture-standards.md +606 -0
  107. package/docs/standards/4-code-quality-standards.md +728 -0
  108. package/docs/standards/{08-markup-quality.md → 5-styling-standards.md} +12 -9
  109. package/docs/standards/{09-rbac-compliance.md → 6-security-rbac-standards.md} +126 -18
  110. package/docs/standards/7-api-tech-stack-standards.md +662 -0
  111. package/docs/standards/8-testing-documentation-standards.md +401 -0
  112. package/docs/standards/9-operations-standards.md +1102 -0
  113. package/docs/standards/README.md +203 -104
  114. package/docs/troubleshooting/README.md +4 -4
  115. package/docs/troubleshooting/common-issues.md +2 -2
  116. package/docs/troubleshooting/debugging.md +9 -9
  117. package/docs/troubleshooting/migration.md +4 -4
  118. package/eslint-config-pace-core.cjs +21 -10
  119. package/package.json +6 -5
  120. package/scripts/install-cursor-rules.cjs +11 -243
  121. package/scripts/install-eslint-config.cjs +284 -0
  122. package/src/__tests__/helpers/__tests__/component-test-utils.test.tsx +2 -2
  123. package/src/__tests__/helpers/__tests__/test-providers.test.tsx +2 -2
  124. package/src/__tests__/helpers/__tests__/test-utils.test.tsx +10 -10
  125. package/src/__tests__/integration/UserProfile.test.tsx +14 -14
  126. package/src/__tests__/rbac/PagePermissionGuard.test.tsx +6 -6
  127. package/src/__tests__/templates/accessibility.test.template.tsx +9 -9
  128. package/src/__tests__/templates/component.test.template.tsx +18 -15
  129. package/src/components/Calendar/Calendar.tsx +201 -47
  130. package/src/components/ContextSelector/ContextSelector.tsx +137 -153
  131. package/src/components/DataTable/AUDIT_REPORT.md +293 -0
  132. package/src/components/DataTable/__tests__/DataTableCore.test.tsx +10 -2
  133. package/src/components/DataTable/__tests__/a11y.basic.test.tsx +10 -4
  134. package/src/components/DataTable/__tests__/test-utils/sharedTestUtils.tsx +9 -9
  135. package/src/components/DataTable/components/ColumnFilter.tsx +63 -74
  136. package/src/components/DataTable/components/ColumnVisibilityDropdown.tsx +43 -41
  137. package/src/components/DataTable/components/DataTableErrorBoundary.tsx +9 -11
  138. package/src/components/DataTable/components/DataTableLayout.tsx +5 -16
  139. package/src/components/DataTable/components/EditableRow.tsx +5 -7
  140. package/src/components/DataTable/components/EmptyState.tsx +10 -9
  141. package/src/components/DataTable/components/FilterRow.tsx +2 -4
  142. package/src/components/DataTable/components/ImportModal.tsx +124 -126
  143. package/src/components/DataTable/components/LoadingState.tsx +5 -6
  144. package/src/components/DataTable/components/SortIndicator.tsx +50 -0
  145. package/src/components/DataTable/components/__tests__/COVERAGE_NOTE.md +4 -4
  146. package/src/components/DataTable/components/__tests__/ColumnFilter.test.tsx +23 -82
  147. package/src/components/DataTable/components/__tests__/DataTableErrorBoundary.test.tsx +37 -9
  148. package/src/components/DataTable/components/__tests__/EmptyState.test.tsx +7 -4
  149. package/src/components/DataTable/components/__tests__/FilterRow.test.tsx +12 -4
  150. package/src/components/DataTable/components/__tests__/LoadingState.test.tsx +41 -27
  151. package/src/components/DataTable/components/index.ts +2 -1
  152. package/src/components/DataTable/types.ts +0 -18
  153. package/src/components/DataTable/utils/a11yUtils.ts +17 -0
  154. package/src/components/DatePickerWithTimezone/DatePickerWithTimezone.test.tsx +2 -1
  155. package/src/components/DatePickerWithTimezone/DatePickerWithTimezone.tsx +11 -15
  156. package/src/components/DateTimeField/DateTimeField.tsx +7 -8
  157. package/src/components/Dialog/Dialog.test.tsx +1 -0
  158. package/src/components/Dialog/Dialog.tsx +25 -8
  159. package/src/components/ErrorBoundary/ErrorBoundary.tsx +77 -79
  160. package/src/components/FileUpload/FileUpload.test.tsx +52 -14
  161. package/src/components/FileUpload/FileUpload.tsx +112 -130
  162. package/src/components/Progress/Progress.tsx +2 -4
  163. package/src/components/ProtectedRoute/ProtectedRoute.tsx +8 -8
  164. package/src/components/Select/Select.tsx +86 -77
  165. package/src/components/Select/types.ts +3 -0
  166. package/src/hooks/__tests__/ServiceHooks.test.tsx +16 -16
  167. package/src/hooks/__tests__/hooks.integration.test.tsx +49 -49
  168. package/src/hooks/__tests__/useFocusTrap.unit.test.tsx +97 -97
  169. package/src/hooks/public/usePublicEvent.ts +5 -5
  170. package/src/hooks/public/usePublicEventLogo.ts +5 -5
  171. package/src/hooks/public/usePublicFileDisplay.ts +2 -2
  172. package/src/hooks/public/usePublicRouteParams.ts +5 -5
  173. package/src/hooks/useAppConfig.ts +2 -2
  174. package/src/hooks/useEventTheme.test.ts +7 -7
  175. package/src/hooks/useEventTheme.ts +1 -4
  176. package/src/hooks/useFileDisplay.ts +2 -2
  177. package/src/providers/UnifiedAuthProvider.smoke.test.tsx +21 -21
  178. package/src/providers/__tests__/AuthProvider.test.tsx +21 -21
  179. package/src/providers/__tests__/EventProvider.test.tsx +61 -61
  180. package/src/providers/__tests__/InactivityProvider.test.tsx +56 -56
  181. package/src/providers/__tests__/OrganisationProvider.test.tsx +75 -75
  182. package/src/providers/__tests__/ProviderLifecycle.test.tsx +37 -37
  183. package/src/providers/__tests__/UnifiedAuthProvider.test.tsx +103 -103
  184. package/src/providers/services/__tests__/AuthServiceProvider.integration.test.tsx +7 -7
  185. package/src/providers/services/__tests__/UnifiedAuthProvider.integration.test.tsx +10 -10
  186. package/src/styles/core.css +7 -0
  187. package/src/theming/__tests__/parseEventColours.test.ts +9 -3
  188. package/src/theming/parseEventColours.ts +22 -10
  189. package/src/utils/__tests__/lazyLoad.unit.test.tsx +42 -39
  190. package/src/utils/storage/README.md +1 -1
  191. package/cursor-rules/01-standards-compliance.mdc +0 -285
  192. package/cursor-rules/04-testing-standards.mdc +0 -270
  193. package/cursor-rules/05-bug-reports-and-features.mdc +0 -248
  194. package/cursor-rules/06-code-quality.mdc +0 -311
  195. package/cursor-rules/07-tech-stack-compliance.mdc +0 -216
  196. package/cursor-rules/10-error-handling-patterns.mdc +0 -179
  197. package/cursor-rules/11-performance-optimization.mdc +0 -169
  198. package/cursor-rules/12-ci-cd-integration.mdc +0 -150
  199. package/dist/DataTable-LRJL4IRV.js +0 -15
  200. package/dist/eslint-rules/rules/compliance.cjs +0 -348
  201. package/dist/eslint-rules/rules/components.cjs +0 -113
  202. package/dist/eslint-rules/rules/imports.cjs +0 -102
  203. package/docs/best-practices/README.md +0 -472
  204. package/docs/best-practices/accessibility.md +0 -604
  205. package/docs/best-practices/common-patterns.md +0 -516
  206. package/docs/best-practices/deployment.md +0 -1103
  207. package/docs/best-practices/performance.md +0 -1328
  208. package/docs/best-practices/security.md +0 -940
  209. package/docs/best-practices/testing.md +0 -1034
  210. package/docs/rbac/compliance/compliance-guide.md +0 -544
  211. package/docs/standards/01-standards-compliance.md +0 -188
  212. package/docs/standards/03-solid-principles.md +0 -39
  213. package/docs/standards/04-testing-standards.md +0 -36
  214. package/docs/standards/05-bug-reports-and-features.md +0 -27
  215. package/docs/standards/06-code-quality.md +0 -34
  216. package/docs/standards/07-tech-stack-compliance.md +0 -30
  217. package/docs/standards/10-error-handling-patterns.md +0 -401
  218. package/docs/standards/11-performance-optimization.md +0 -348
  219. package/docs/standards/12-ci-cd-integration.md +0 -370
  220. package/docs/standards/ALIGNMENT_REVIEW_SUMMARY.md +0 -192
  221. package/scripts/audit/audit-compliance.cjs +0 -1295
  222. package/scripts/audit/audit-components.cjs +0 -260
  223. package/scripts/audit/audit-rbac.cjs +0 -954
  224. package/scripts/audit/audit-standards.cjs +0 -1268
  225. package/scripts/audit/index.cjs +0 -1927
  226. package/src/components/DataTable/components/DataTableBody.tsx +0 -478
  227. package/src/components/DataTable/components/DraggableColumnHeader.tsx +0 -156
  228. package/src/components/DataTable/components/ExpandButton.tsx +0 -113
  229. package/src/components/DataTable/components/GroupHeader.tsx +0 -54
  230. package/src/components/DataTable/components/ViewRowModal.tsx +0 -68
  231. package/src/components/DataTable/components/VirtualizedDataTable.tsx +0 -525
  232. package/src/components/DataTable/components/__tests__/ExpandButton.test.tsx +0 -462
  233. package/src/components/DataTable/components/__tests__/GroupHeader.test.tsx +0 -393
  234. package/src/components/DataTable/components/__tests__/ViewRowModal.test.tsx +0 -476
  235. package/src/components/DataTable/components/__tests__/VirtualizedDataTable.test.tsx +0 -128
  236. package/src/components/DataTable/core/DataTableContext.tsx +0 -216
  237. package/src/components/DataTable/core/__tests__/DataTableContext.test.tsx +0 -136
  238. package/src/components/DataTable/hooks/__tests__/useColumnReordering.test.ts +0 -570
  239. package/src/components/DataTable/hooks/useColumnReordering.ts +0 -123
  240. package/src/components/DataTable/utils/debugTools.ts +0 -514
  241. package/src/eslint-rules/index.cjs +0 -22
  242. package/src/eslint-rules/rules/components.cjs +0 -113
  243. package/src/eslint-rules/rules/imports.cjs +0 -102
  244. package/src/eslint-rules/rules/rbac.cjs +0 -790
  245. package/src/eslint-rules/utils/helpers.cjs +0 -42
  246. package/src/eslint-rules/utils/manifest-loader.cjs +0 -75
@@ -1,188 +0,0 @@
1
- # Standards Compliance
2
-
3
- **🤖 Cursor Rule**: See [01-standards-compliance.mdc](../../cursor-rules/01-standards-compliance.mdc) for AI-optimized directives that automatically enforce these standards.
4
-
5
- ## Purpose
6
- Provide a single reference for precedence and traceability between standards and Cursor rules.
7
-
8
- ## Precedence
9
- 1. Security
10
- 2. API/RPC
11
- 3. Components & Markup
12
- 4. Code Quality/Style
13
- 5. Testing & Documentation
14
- 6. Consuming App Structure
15
-
16
- ## File Mapping (Standards ↔ Cursor Rules)
17
-
18
- | Standard | Rule | Purpose |
19
- |----------|------|---------|
20
- | `00-pace-core-compliance` | `00-pace-core-compliance.mdc` | Enforce pace-core usage patterns |
21
- | `01-standards-compliance` | `01-standards-compliance.mdc` | This file - meta-standard |
22
- | `02-project-structure` | `02-project-structure.mdc` | Define standard folder structure |
23
- | `03-solid-principles` | `03-solid-principles.mdc` | Enforce SOLID architecture |
24
- | `04-testing-standards` | `04-testing-standards.mdc` | Enforce testing consistency |
25
- | `05-bug-reports-and-features` | `05-bug-reports-and-features.mdc` | Templates for issue reporting |
26
- | `06-code-quality` | `06-code-quality.mdc` | Enforce code quality standards |
27
- | `07-tech-stack-compliance` | `07-tech-stack-compliance.mdc` | Enforce tech stack versions |
28
- | `08-markup-quality` | `08-markup-quality.mdc` | Enforce clean markup standards |
29
- | `09-rbac-compliance` | `09-rbac-compliance.mdc` | Enforce RBAC contract |
30
- | `10-error-handling-patterns` | `10-error-handling-patterns.mdc` | Enforce error handling patterns |
31
- | `11-performance-optimization` | `11-performance-optimization.mdc` | Enforce performance best practices |
32
- | `12-ci-cd-integration` | `12-ci-cd-integration.mdc` | Enforce CI/CD best practices |
33
-
34
- ## Documentation Standards
35
-
36
- ### Purpose
37
-
38
- Documentation ensures code is maintainable, understandable, and usable. All documentation MUST follow these standards.
39
-
40
- ### When to Document
41
-
42
- **MUST document:**
43
- - New components, hooks, utilities, or APIs
44
- - Breaking changes to existing APIs
45
- - Complex business logic or algorithms
46
- - Non-obvious implementation decisions
47
- - Configuration requirements
48
- - Migration paths for breaking changes
49
-
50
- **SHOULD document:**
51
- - Public APIs and their usage
52
- - Component props and behavior
53
- - Hook return values and dependencies
54
- - Utility function parameters and return types
55
- - Error conditions and handling
56
-
57
- **MAY document:**
58
- - Internal implementation details (if helpful)
59
- - Performance considerations
60
- - Future plans or limitations
61
-
62
- ### Documentation Structure
63
-
64
- **Every component/API documentation MUST include:**
65
-
66
- 1. **Overview** - What it does and when to use it
67
- 2. **API/Props** - Complete prop/parameter definitions with types
68
- 3. **Examples** - Real-world usage examples
69
- 4. **Accessibility (A11y)** - Accessibility considerations and requirements
70
- 5. **Edge Cases** - Known limitations, error conditions, and special cases
71
-
72
- **Example Structure:**
73
-
74
- ```markdown
75
- # ComponentName
76
-
77
- ## Overview
78
- Brief description of what the component does and when to use it.
79
-
80
- ## API
81
-
82
- ### Props
83
- - `propName` (type): Description
84
- - `optionalProp?` (type): Description (default: value)
85
-
86
- ## Examples
87
-
88
- ### Basic Usage
89
- \`\`\`tsx
90
- <ComponentName prop="value" />
91
- \`\`\`
92
-
93
- ### Advanced Usage
94
- \`\`\`tsx
95
- <ComponentName prop="value" optionalProp="optional" />
96
- \`\`\`
97
-
98
- ## Accessibility
99
- - Keyboard navigation: Supported
100
- - Screen readers: Announced as...
101
- - Focus management: ...
102
-
103
- ## Edge Cases
104
- - Handles null/undefined: Yes/No
105
- - Error conditions: ...
106
- - Performance considerations: ...
107
- ```
108
-
109
- ### Documentation Formats
110
-
111
- **Component Documentation:**
112
- - Location: `packages/core/docs/api-reference/components.md` or component-specific README
113
- - Format: Markdown with code examples
114
- - Must include: Overview, Props, Examples, A11y, Edge Cases
115
-
116
- **API Documentation:**
117
- - Location: `packages/core/docs/api-reference/`
118
- - Format: TypeScript types + Markdown descriptions
119
- - Must include: Function signatures, Parameters, Return types, Examples
120
-
121
- **Implementation Guides:**
122
- - Location: `packages/core/docs/implementation-guides/`
123
- - Format: Step-by-step guides with examples
124
- - Must include: Overview, Step-by-step instructions, Code examples, Troubleshooting
125
-
126
- **Standards Documentation:**
127
- - Location: `packages/core/docs/standards/`
128
- - Format: Markdown with examples and checklists
129
- - Must include: Purpose, Requirements, Examples, Checklists
130
-
131
- ### Documentation Maintenance
132
-
133
- **MUST update documentation when:**
134
- - Adding new props/parameters
135
- - Changing behavior (breaking or non-breaking)
136
- - Fixing bugs that change user-facing behavior
137
- - Deprecating features
138
-
139
- **SHOULD update documentation when:**
140
- - Improving examples
141
- - Adding new use cases
142
- - Clarifying edge cases
143
-
144
- **Update Process:**
145
- 1. Update code and tests first
146
- 2. Update documentation to match
147
- 3. Verify examples still work
148
- 4. Update related documentation if needed
149
-
150
- ### Documentation Quality Checklist
151
-
152
- Before committing documentation, verify:
153
-
154
- - [ ] Overview clearly explains purpose and usage
155
- - [ ] All props/parameters documented with types
156
- - [ ] Examples are complete and working
157
- - [ ] Accessibility considerations documented
158
- - [ ] Edge cases and limitations documented
159
- - [ ] Code examples are syntax-highlighted
160
- - [ ] Links to related documentation included
161
- - [ ] Breaking changes have migration guides
162
- - [ ] Documentation matches actual implementation
163
-
164
- ## Authoring Checklist
165
-
166
- - Apply the precedence above when resolving conflicts.
167
- - Keep rule and standard filenames aligned (00–12).
168
- - Update relevant standards whenever rules change and vice versa.
169
- - Document any exceptions in-line within the affected standard.
170
- - Follow documentation standards when updating docs.
171
-
172
- ## Reference
173
-
174
- **🤖 Cursor Rule**: See [01-standards-compliance.mdc](../../cursor-rules/01-standards-compliance.mdc) for AI-optimized directives.
175
-
176
- **Related Standards**:
177
- - **00-pace-core-compliance.md** - pace-core usage patterns
178
- - **02-project-structure.md** - Project structure and organization
179
- - **03-solid-principles.md** - SOLID architecture principles
180
- - **04-testing-standards.md** - Testing framework standards
181
- - **05-bug-reports-and-features.md** - Issue reporting templates
182
- - **06-code-quality.md** - Code quality and TypeScript standards
183
- - **07-tech-stack-compliance.md** - Tech stack and API/RPC standards
184
- - **08-markup-quality.md** - Markup and styling standards
185
- - **09-rbac-compliance.md** - RBAC and RLS standards
186
- - **10-error-handling-patterns.md** - Error handling patterns
187
- - **11-performance-optimization.md** - Performance optimization
188
- - **12-ci-cd-integration.md** - CI/CD integration patterns
@@ -1,39 +0,0 @@
1
- # Architecture & SOLID Standard
2
-
3
- **🤖 Cursor Rule**: See [03-solid-principles.mdc](../../cursor-rules/03-solid-principles.mdc) for AI-optimized directives that automatically enforce SOLID principles.
4
-
5
- ## Purpose
6
- Define the core architectural principles and SOLID expectations for pace-core and consuming apps so components, APIs, and utilities evolve consistently and sustainably.
7
-
8
- ## Architectural Principles
9
- - Composition over complexity
10
- - Separation of concerns
11
- - Domain-agnostic core
12
- - Extensible, stable APIs
13
- - Secure by default
14
- - Performance-conscious
15
-
16
- ## SOLID Principles (Cursor enforcement)
17
- - **Single Responsibility**: Each module has one reason to change; extract complex logic to hooks/services.
18
- - **Open/Closed**: Extend via composition/configuration, avoid modifying shared primitives.
19
- - **Liskov Substitution**: Derived types/components must satisfy the base contract.
20
- - **Interface Segregation**: Prefer focused interfaces/props over catch-all configs.
21
- - **Dependency Inversion**: Depend on abstractions (types/interfaces); inject implementations.
22
-
23
- ## Performance & RLS Boundaries
24
- - **RLS helper use**: Policies must rely on helper functions (no subqueries) to avoid N+1/per-row overhead.
25
- - **Test migrations**: Verify DB migrations for performance regressions and timeouts.
26
- - **Monitor queries**: Use EXPLAIN/Advisors to ensure policies don’t introduce InitPlan nodes.
27
-
28
- ## In/Out of Scope
29
- **In scope**: UI primitives, generic hooks, shared API patterns, error-handling conventions, RPC shape conventions.
30
- **Out of scope**: App/domain-specific logic, app-specific styling, business workflows.
31
-
32
- ## Precedence
33
- 1) Security 2) API/RPC 3) Components 4) Code Style 5) Testing 6) Documentation.
34
-
35
- ## Cursor Checklist
36
- - Changes fit boundaries (no domain logic in core primitives).
37
- - Follow SOLID guidance above.
38
- - Prefer additive changes; avoid breaking contracts.
39
- - Keep helpers small, pure, and typed.
@@ -1,36 +0,0 @@
1
- # Testing & Documentation Standard
2
-
3
- **🤖 Cursor Rule**: See [04-testing-standards.mdc](../../cursor-rules/04-testing-standards.mdc) for AI-optimized directives that automatically enforce testing standards.
4
-
5
- ## Testing Strategy
6
- - Unit tests for utils & hooks
7
- - Integration tests for components
8
- - Few meaningful E2E tests (in consuming apps)
9
- - Coverage: ≥90% utils, ≥70% components
10
-
11
- ## Test Structure
12
- - Colocated tests (*.test.ts/tsx)
13
- - Use RTL + userEvent
14
- - Avoid unnecessary mocks
15
-
16
- ## Documentation Requirements
17
- - Component READMEs
18
- - API docs
19
- - Standards directory
20
-
21
- ## Required Sections (for every component/API doc)
22
- - Overview
23
- - API/Props
24
- - Examples
25
- - A11y notes
26
- - Edge cases
27
-
28
- ## When to update docs
29
- - New component or API surface: add README + API entry with all required sections.
30
- - Behavior/prop change: update README/API entry and add migration notes if breaking.
31
- - Bug fix: document the fixed behavior when it changes user-facing expectations.
32
-
33
- ## Cursor Checklist
34
- - Update docs after API or behavior changes (follow \"When to update docs\").
35
- - Ensure tests cover critical paths
36
- - Use RTL patterns only
@@ -1,27 +0,0 @@
1
- # Bug Reports and Feature Requests
2
-
3
- **🤖 Cursor Rule**: See [05-bug-reports-and-features.mdc](../../cursor-rules/05-bug-reports-and-features.mdc) for AI-optimized templates and guidance.
4
-
5
- ## Purpose
6
- Standardize how issues and feature requests are captured for pace-core and consuming apps.
7
-
8
- ## Bug Report Template
9
- - Description of bug and expected vs actual behavior.
10
- - Steps to reproduce (minimal, ordered).
11
- - Minimal reproduction (link/snippet).
12
- - Environment (pace-core version, React, Node, browser, OS).
13
- - Error messages/logs.
14
- - Additional context (screenshots/video).
15
-
16
- ## Feature Request Template
17
- - Feature description and problem statement.
18
- - Proposed solution/API.
19
- - Use case with real scenario.
20
- - Alternatives considered.
21
- - Example code snippet.
22
- - Additional context/mockups.
23
-
24
- ## Cursor Checklist
25
- - Confirm issue belongs to pace-core vs consuming app.
26
- - Include minimal reproduction and environment.
27
- - Use templates above when drafting issues.
@@ -1,34 +0,0 @@
1
- # TypeScript & Code Style Standard
2
-
3
- **🤖 Cursor Rule**: See [06-code-quality.mdc](../../cursor-rules/06-code-quality.mdc) for AI-optimized directives that automatically enforce code quality standards.
4
-
5
- ## TypeScript Rules
6
- - No any
7
- - Prefer discriminated unions
8
- - Avoid assertions unless in escape hatches
9
- - Use ReadonlyArray where possible
10
- - Avoid boolean mode flags
11
-
12
- ## Naming Conventions
13
- - Hooks: useSomething
14
- - Providers: SomethingProvider
15
- - Utilities: camelCase
16
- - Components: PascalCase
17
-
18
- ## Preferred Patterns
19
- - Pure functions
20
- - Composition over inheritance
21
- - Early returns
22
- - Small private helpers
23
-
24
- ## Forbidden
25
- - Implicit any
26
- - Bloated components
27
- - Domain-specific types in pace-core
28
-
29
- ## Cursor Checklist
30
- - No any / unknown / unnecessary assertions
31
- - Convert flags into unions
32
- - Enforce naming rules
33
- - Extract large functions into helpers
34
- - Prevent domain types from leaking in
@@ -1,30 +0,0 @@
1
- # Tech Stack & API/RPC Standard
2
-
3
- **🤖 Cursor Rule**: See [07-tech-stack-compliance.mdc](../../cursor-rules/07-tech-stack-compliance.mdc) for AI-optimized directives that automatically enforce tech stack compliance.
4
-
5
- ## Required Stack
6
- - **React 19+**, functional components only.
7
- - **TypeScript 5+** with `strict` enabled.
8
- - **Vite** for tooling; use `import.meta.env`.
9
- - **Tailwind v4** CSS-first with `app.css` scaffold (see 08-markup-quality).
10
- - **Supabase** via secure clients/hooks (`useSecureSupabase`); never bypass RLS.
11
- - **TanStack Query** for server state.
12
- - **React Hook Form + Zod** (prefer `useZodForm` from pace-core) for forms.
13
-
14
- ## API & RPC Rules
15
- - Naming: `<family>_<domain>_<verb>` (e.g., `data_cake_dishes_list`, `app_cake_dish_create`, `_bulk` for bulk).
16
- - Shape:
17
- ```ts
18
- type ApiResult<T> =
19
- | { ok: true; data: T }
20
- | { ok: false; error: ApiError };
21
- ```
22
- - Read RPCs never mutate; writes idempotent when possible.
23
- - Never accept dynamic SQL; enforce RLS + tenant boundaries; errors must be user-safe.
24
- - Deprecation: mark with `@deprecated`; retirement window = 2 stable releases.
25
-
26
- ## Cursor Checklist
27
- - Use the required stack (React 19+, TS strict, Vite, Tailwind v4 scaffold, Supabase secure client, TanStack Query, RHF + Zod).
28
- - Enforce ApiResult shape and naming rules.
29
- - Do not bypass RLS; avoid overlapping/redundant RPCs.
30
- - Ensure idempotency for writes; avoid dynamic SQL.