devflow-kit 1.1.0 → 1.3.0

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 (152) hide show
  1. package/CHANGELOG.md +69 -1
  2. package/README.md +23 -6
  3. package/dist/cli.js +2 -0
  4. package/dist/commands/ambient.js +5 -4
  5. package/dist/commands/init.js +4 -2
  6. package/dist/commands/memory.js +4 -4
  7. package/dist/commands/skills.d.ts +11 -0
  8. package/dist/commands/skills.js +116 -0
  9. package/dist/commands/uninstall.js +11 -1
  10. package/dist/plugins.js +67 -3
  11. package/dist/utils/installer.js +20 -2
  12. package/package.json +4 -2
  13. package/plugins/devflow-accessibility/.claude-plugin/plugin.json +22 -0
  14. package/plugins/devflow-ambient/.claude-plugin/plugin.json +4 -2
  15. package/plugins/devflow-ambient/README.md +8 -8
  16. package/plugins/devflow-ambient/commands/ambient.md +14 -14
  17. package/plugins/devflow-ambient/skills/ambient-router/SKILL.md +16 -9
  18. package/plugins/devflow-ambient/skills/ambient-router/references/skill-catalog.md +6 -2
  19. package/plugins/devflow-audit-claude/.claude-plugin/plugin.json +1 -1
  20. package/plugins/devflow-code-review/.claude-plugin/plugin.json +13 -6
  21. package/plugins/devflow-code-review/agents/reviewer.md +8 -0
  22. package/plugins/devflow-code-review/commands/code-review-teams.md +11 -1
  23. package/plugins/devflow-code-review/commands/code-review.md +12 -2
  24. package/plugins/devflow-code-review/skills/architecture-patterns/SKILL.md +1 -1
  25. package/plugins/devflow-code-review/skills/complexity-patterns/SKILL.md +1 -1
  26. package/plugins/devflow-code-review/skills/consistency-patterns/SKILL.md +1 -1
  27. package/plugins/devflow-code-review/skills/database-patterns/SKILL.md +1 -1
  28. package/plugins/devflow-code-review/skills/dependencies-patterns/SKILL.md +1 -1
  29. package/plugins/devflow-code-review/skills/documentation-patterns/SKILL.md +1 -1
  30. package/plugins/devflow-code-review/skills/performance-patterns/SKILL.md +1 -1
  31. package/plugins/devflow-code-review/skills/regression-patterns/SKILL.md +1 -1
  32. package/plugins/devflow-code-review/skills/review-methodology/SKILL.md +1 -1
  33. package/plugins/devflow-code-review/skills/security-patterns/SKILL.md +1 -1
  34. package/plugins/devflow-core-skills/.claude-plugin/plugin.json +10 -7
  35. package/plugins/devflow-core-skills/skills/test-driven-development/SKILL.md +5 -8
  36. package/plugins/devflow-debug/.claude-plugin/plugin.json +10 -3
  37. package/plugins/devflow-frontend-design/.claude-plugin/plugin.json +22 -0
  38. package/plugins/devflow-go/.claude-plugin/plugin.json +22 -0
  39. package/plugins/devflow-go/skills/go/SKILL.md +187 -0
  40. package/plugins/devflow-go/skills/go/references/concurrency.md +312 -0
  41. package/plugins/devflow-go/skills/go/references/detection.md +129 -0
  42. package/plugins/devflow-go/skills/go/references/patterns.md +232 -0
  43. package/plugins/devflow-go/skills/go/references/violations.md +205 -0
  44. package/plugins/devflow-implement/.claude-plugin/plugin.json +19 -5
  45. package/plugins/devflow-implement/agents/coder.md +11 -6
  46. package/plugins/devflow-implement/skills/self-review/SKILL.md +1 -1
  47. package/plugins/devflow-java/.claude-plugin/plugin.json +22 -0
  48. package/plugins/devflow-java/skills/java/SKILL.md +183 -0
  49. package/plugins/devflow-java/skills/java/references/detection.md +120 -0
  50. package/plugins/devflow-java/skills/java/references/modern-java.md +270 -0
  51. package/plugins/devflow-java/skills/java/references/patterns.md +235 -0
  52. package/plugins/devflow-java/skills/java/references/violations.md +213 -0
  53. package/plugins/devflow-python/.claude-plugin/plugin.json +22 -0
  54. package/plugins/devflow-python/skills/python/SKILL.md +188 -0
  55. package/plugins/devflow-python/skills/python/references/async.md +220 -0
  56. package/plugins/devflow-python/skills/python/references/detection.md +128 -0
  57. package/plugins/devflow-python/skills/python/references/patterns.md +226 -0
  58. package/plugins/devflow-python/skills/python/references/violations.md +204 -0
  59. package/plugins/devflow-react/.claude-plugin/plugin.json +22 -0
  60. package/plugins/{devflow-core-skills → devflow-react}/skills/react/SKILL.md +1 -1
  61. package/plugins/{devflow-core-skills → devflow-react}/skills/react/references/patterns.md +3 -3
  62. package/plugins/devflow-resolve/.claude-plugin/plugin.json +13 -3
  63. package/plugins/devflow-resolve/skills/security-patterns/SKILL.md +1 -1
  64. package/plugins/devflow-rust/.claude-plugin/plugin.json +22 -0
  65. package/plugins/devflow-rust/skills/rust/SKILL.md +193 -0
  66. package/plugins/devflow-rust/skills/rust/references/detection.md +131 -0
  67. package/plugins/devflow-rust/skills/rust/references/ownership.md +242 -0
  68. package/plugins/devflow-rust/skills/rust/references/patterns.md +210 -0
  69. package/plugins/devflow-rust/skills/rust/references/violations.md +191 -0
  70. package/plugins/devflow-self-review/.claude-plugin/plugin.json +10 -3
  71. package/plugins/devflow-self-review/skills/self-review/SKILL.md +1 -1
  72. package/plugins/devflow-specify/.claude-plugin/plugin.json +15 -4
  73. package/plugins/devflow-typescript/.claude-plugin/plugin.json +22 -0
  74. package/plugins/{devflow-core-skills → devflow-typescript}/skills/typescript/references/patterns.md +3 -3
  75. package/scripts/hooks/{ambient-prompt.sh → ambient-prompt} +4 -4
  76. package/scripts/hooks/{background-memory-update.sh → background-memory-update} +3 -3
  77. package/scripts/hooks/{ensure-memory-gitignore.sh → ensure-memory-gitignore} +1 -1
  78. package/scripts/hooks/{pre-compact-memory.sh → pre-compact-memory} +2 -2
  79. package/scripts/hooks/run-hook +23 -0
  80. package/scripts/hooks/session-start-memory +151 -0
  81. package/scripts/hooks/{stop-update-memory.sh → stop-update-memory} +4 -4
  82. package/shared/agents/coder.md +11 -6
  83. package/shared/agents/reviewer.md +8 -0
  84. package/shared/skills/ambient-router/SKILL.md +16 -9
  85. package/shared/skills/ambient-router/references/skill-catalog.md +6 -2
  86. package/shared/skills/architecture-patterns/SKILL.md +1 -1
  87. package/shared/skills/complexity-patterns/SKILL.md +1 -1
  88. package/shared/skills/consistency-patterns/SKILL.md +1 -1
  89. package/shared/skills/database-patterns/SKILL.md +1 -1
  90. package/shared/skills/dependencies-patterns/SKILL.md +1 -1
  91. package/shared/skills/documentation-patterns/SKILL.md +1 -1
  92. package/shared/skills/go/SKILL.md +187 -0
  93. package/shared/skills/go/references/concurrency.md +312 -0
  94. package/shared/skills/go/references/detection.md +129 -0
  95. package/shared/skills/go/references/patterns.md +232 -0
  96. package/shared/skills/go/references/violations.md +205 -0
  97. package/shared/skills/java/SKILL.md +183 -0
  98. package/shared/skills/java/references/detection.md +120 -0
  99. package/shared/skills/java/references/modern-java.md +270 -0
  100. package/shared/skills/java/references/patterns.md +235 -0
  101. package/shared/skills/java/references/violations.md +213 -0
  102. package/shared/skills/performance-patterns/SKILL.md +1 -1
  103. package/shared/skills/python/SKILL.md +188 -0
  104. package/shared/skills/python/references/async.md +220 -0
  105. package/shared/skills/python/references/detection.md +128 -0
  106. package/shared/skills/python/references/patterns.md +226 -0
  107. package/shared/skills/python/references/violations.md +204 -0
  108. package/shared/skills/react/SKILL.md +1 -1
  109. package/shared/skills/react/references/patterns.md +3 -3
  110. package/shared/skills/regression-patterns/SKILL.md +1 -1
  111. package/shared/skills/review-methodology/SKILL.md +1 -1
  112. package/shared/skills/rust/SKILL.md +193 -0
  113. package/shared/skills/rust/references/detection.md +131 -0
  114. package/shared/skills/rust/references/ownership.md +242 -0
  115. package/shared/skills/rust/references/patterns.md +210 -0
  116. package/shared/skills/rust/references/violations.md +191 -0
  117. package/shared/skills/security-patterns/SKILL.md +1 -1
  118. package/shared/skills/self-review/SKILL.md +1 -1
  119. package/shared/skills/test-driven-development/SKILL.md +5 -8
  120. package/shared/skills/typescript/references/patterns.md +3 -3
  121. package/src/templates/settings.json +3 -3
  122. package/plugins/devflow-code-review/skills/react/SKILL.md +0 -276
  123. package/plugins/devflow-code-review/skills/react/references/patterns.md +0 -1331
  124. package/plugins/devflow-core-skills/skills/accessibility/SKILL.md +0 -229
  125. package/plugins/devflow-core-skills/skills/accessibility/references/detection.md +0 -171
  126. package/plugins/devflow-core-skills/skills/accessibility/references/patterns.md +0 -670
  127. package/plugins/devflow-core-skills/skills/accessibility/references/violations.md +0 -419
  128. package/plugins/devflow-core-skills/skills/frontend-design/SKILL.md +0 -254
  129. package/plugins/devflow-core-skills/skills/frontend-design/references/detection.md +0 -184
  130. package/plugins/devflow-core-skills/skills/frontend-design/references/patterns.md +0 -511
  131. package/plugins/devflow-core-skills/skills/frontend-design/references/violations.md +0 -453
  132. package/plugins/devflow-core-skills/skills/react/references/violations.md +0 -565
  133. package/plugins/devflow-implement/skills/accessibility/SKILL.md +0 -229
  134. package/plugins/devflow-implement/skills/accessibility/references/detection.md +0 -171
  135. package/plugins/devflow-implement/skills/accessibility/references/patterns.md +0 -670
  136. package/plugins/devflow-implement/skills/accessibility/references/violations.md +0 -419
  137. package/plugins/devflow-implement/skills/frontend-design/SKILL.md +0 -254
  138. package/plugins/devflow-implement/skills/frontend-design/references/detection.md +0 -184
  139. package/plugins/devflow-implement/skills/frontend-design/references/patterns.md +0 -511
  140. package/plugins/devflow-implement/skills/frontend-design/references/violations.md +0 -453
  141. package/scripts/hooks/session-start-memory.sh +0 -126
  142. /package/plugins/{devflow-code-review → devflow-accessibility}/skills/accessibility/SKILL.md +0 -0
  143. /package/plugins/{devflow-code-review → devflow-accessibility}/skills/accessibility/references/detection.md +0 -0
  144. /package/plugins/{devflow-code-review → devflow-accessibility}/skills/accessibility/references/patterns.md +0 -0
  145. /package/plugins/{devflow-code-review → devflow-accessibility}/skills/accessibility/references/violations.md +0 -0
  146. /package/plugins/{devflow-code-review → devflow-frontend-design}/skills/frontend-design/SKILL.md +0 -0
  147. /package/plugins/{devflow-code-review → devflow-frontend-design}/skills/frontend-design/references/detection.md +0 -0
  148. /package/plugins/{devflow-code-review → devflow-frontend-design}/skills/frontend-design/references/patterns.md +0 -0
  149. /package/plugins/{devflow-code-review → devflow-frontend-design}/skills/frontend-design/references/violations.md +0 -0
  150. /package/plugins/{devflow-code-review → devflow-react}/skills/react/references/violations.md +0 -0
  151. /package/plugins/{devflow-core-skills → devflow-typescript}/skills/typescript/SKILL.md +0 -0
  152. /package/plugins/{devflow-core-skills → devflow-typescript}/skills/typescript/references/violations.md +0 -0
@@ -1,453 +0,0 @@
1
- # Frontend Design Violations
2
-
3
- Extended violation patterns for frontend design reviews. Reference from main SKILL.md.
4
-
5
- ## Typography Violations
6
-
7
- ### No Rationale for Font Choice
8
-
9
- ```css
10
- /* VIOLATION: Default sans-serif without justification */
11
- body {
12
- font-family: 'Inter', 'Helvetica Neue', Arial, sans-serif;
13
- }
14
- /* Why Inter? What personality does it convey? How does it serve the product? */
15
-
16
- /* VIOLATION: Trend-following font choice */
17
- body {
18
- font-family: 'Poppins', sans-serif;
19
- }
20
- /* Poppins is everywhere. Is it right for YOUR product? */
21
- ```
22
-
23
- ### Flat Hierarchy
24
-
25
- ```css
26
- /* VIOLATION: No visual distinction between heading levels */
27
- h1 { font-size: 24px; font-weight: 600; }
28
- h2 { font-size: 22px; font-weight: 600; }
29
- h3 { font-size: 20px; font-weight: 600; }
30
- h4 { font-size: 18px; font-weight: 600; }
31
- /* All look the same - users can't scan content */
32
-
33
- /* VIOLATION: Only size differentiates, nothing else */
34
- .title { font-size: 2rem; }
35
- .subtitle { font-size: 1.5rem; }
36
- .body { font-size: 1rem; }
37
- /* No weight, spacing, or color variation */
38
- ```
39
-
40
- ### Poor Readability
41
-
42
- ```css
43
- /* VIOLATION: Line height too tight for body text */
44
- p {
45
- font-size: 16px;
46
- line-height: 1.2;
47
- }
48
-
49
- /* VIOLATION: Lines too long */
50
- .content {
51
- max-width: 1200px; /* 150+ characters per line */
52
- font-size: 16px;
53
- }
54
-
55
- /* VIOLATION: Inconsistent line heights */
56
- .card-title { line-height: 1.1; }
57
- .card-body { line-height: 1.8; }
58
- .card-footer { line-height: 1.4; }
59
- /* Random values, no system */
60
- ```
61
-
62
- ---
63
-
64
- ## Color Violations
65
-
66
- ### Random Hex Values
67
-
68
- ```css
69
- /* VIOLATION: Colors without system */
70
- .button-primary { background: #4f46e5; }
71
- .button-secondary { background: #6366f1; }
72
- .link { color: #3b82f6; }
73
- .error { color: #ef4444; }
74
- .success { color: #22c55e; }
75
- /* Different blues, no relationship, no semantic meaning */
76
-
77
- /* VIOLATION: Inline color overrides */
78
- <span style={{ color: '#8b5cf6' }}>Special text</span>
79
- <div style={{ background: '#fef3c7' }}>Warning area</div>
80
- /* One-off colors that don't fit the system */
81
- ```
82
-
83
- ### AI Slop Gradients
84
-
85
- ```css
86
- /* VIOLATION: Template gradient with no brand relevance */
87
- .hero {
88
- background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
89
- }
90
-
91
- /* VIOLATION: Gradient just because "it's modern" */
92
- .button {
93
- background: linear-gradient(to right, #ec4899, #8b5cf6);
94
- }
95
- /* Purple-pink gradient copied from every template */
96
-
97
- /* VIOLATION: Gradient on text without purpose */
98
- .heading {
99
- background: linear-gradient(90deg, #f97316, #ec4899);
100
- -webkit-background-clip: text;
101
- -webkit-text-fill-color: transparent;
102
- }
103
- /* Eye-catching but what does it communicate? */
104
- ```
105
-
106
- ### Dark Mode Afterthoughts
107
-
108
- ```css
109
- /* VIOLATION: Invert filter hack */
110
- @media (prefers-color-scheme: dark) {
111
- body { filter: invert(1) hue-rotate(180deg); }
112
- img { filter: invert(1) hue-rotate(180deg); }
113
- }
114
-
115
- /* VIOLATION: Only swapping background */
116
- .dark {
117
- background: #1a1a1a;
118
- /* Text colors, borders, shadows all broken */
119
- }
120
-
121
- /* VIOLATION: Different design language in dark mode */
122
- .card {
123
- background: white;
124
- box-shadow: 0 1px 3px rgba(0,0,0,0.1);
125
- }
126
- .dark .card {
127
- background: #2d2d2d;
128
- border: 1px solid #444;
129
- /* Shadows become borders - inconsistent */
130
- }
131
- ```
132
-
133
- ---
134
-
135
- ## Motion Violations
136
-
137
- ### Decorative Animation
138
-
139
- ```css
140
- /* VIOLATION: Animation without purpose */
141
- .logo {
142
- animation: float 3s ease-in-out infinite;
143
- }
144
- @keyframes float {
145
- 0%, 100% { transform: translateY(0); }
146
- 50% { transform: translateY(-10px); }
147
- }
148
- /* Why is the logo floating? */
149
-
150
- /* VIOLATION: Pulsing buttons */
151
- .cta-button {
152
- animation: pulse 2s infinite;
153
- }
154
- /* Desperate attention-seeking, not communication */
155
-
156
- /* VIOLATION: Spinning loaders everywhere */
157
- .loading { animation: spin 1s linear infinite; }
158
- /* Even for instant operations */
159
- ```
160
-
161
- ### Inconsistent Timing
162
-
163
- ```css
164
- /* VIOLATION: Random durations */
165
- .modal {
166
- transition: opacity 0.35s ease, transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
167
- }
168
- .dropdown {
169
- transition: all 0.2s linear;
170
- }
171
- .tooltip {
172
- transition: opacity 150ms;
173
- }
174
- .button {
175
- transition: background 0.1s, transform 0.15s, box-shadow 0.2s;
176
- }
177
- /* No timing system, feels inconsistent */
178
-
179
- /* VIOLATION: "all" transition */
180
- .card {
181
- transition: all 0.3s ease;
182
- }
183
- /* Animates everything including width/height layout shifts */
184
- ```
185
-
186
- ### Jarring Easing
187
-
188
- ```css
189
- /* VIOLATION: Linear easing for UI (feels robotic) */
190
- .menu {
191
- transition: transform 0.3s linear;
192
- }
193
-
194
- /* VIOLATION: Aggressive bounce on everything */
195
- .button {
196
- transition: transform 0.3s cubic-bezier(0.68, -0.55, 0.265, 1.55);
197
- }
198
- /* Bounce has its place, but not everywhere */
199
- ```
200
-
201
- ---
202
-
203
- ## Spacing Violations
204
-
205
- ### Magic Numbers
206
-
207
- ```css
208
- /* VIOLATION: Random spacing values */
209
- .card {
210
- padding: 18px 22px;
211
- margin-bottom: 13px;
212
- }
213
- .header {
214
- padding: 14px 20px;
215
- margin-bottom: 27px;
216
- }
217
- /* No relationship between values */
218
-
219
- /* VIOLATION: Pixel values everywhere */
220
- .section { margin: 47px 0; }
221
- .title { margin-bottom: 11px; }
222
- .button { padding: 9px 17px; }
223
- ```
224
-
225
- ### No Spacing System
226
-
227
- ```tsx
228
- // VIOLATION: Hardcoded spacing in components
229
- <div style={{ padding: '12px 16px', marginBottom: '24px' }}>
230
- <h2 style={{ marginBottom: '8px' }}>Title</h2>
231
- <p style={{ marginBottom: '16px' }}>Content</p>
232
- </div>
233
-
234
- // VIOLATION: Inconsistent Tailwind spacing
235
- <div className="p-4 mb-6">
236
- <div className="p-3 mb-5">
237
- <div className="p-2 mb-4">
238
- {/* Different patterns at each level */}
239
- </div>
240
- </div>
241
- </div>
242
- ```
243
-
244
- ### Uniform Spacing (No Hierarchy)
245
-
246
- ```css
247
- /* VIOLATION: Lobotomized owl selector misuse */
248
- * + * {
249
- margin-top: 1rem;
250
- }
251
- /* Everything has same spacing - no visual grouping */
252
-
253
- /* VIOLATION: Same gap everywhere */
254
- .grid { gap: 16px; }
255
- .stack { gap: 16px; }
256
- .inline { gap: 16px; }
257
- /* No context-appropriate spacing */
258
- ```
259
-
260
- ---
261
-
262
- ## Layout Violations
263
-
264
- ### Everything Centered
265
-
266
- ```css
267
- /* VIOLATION: Centered text everywhere */
268
- .page {
269
- text-align: center;
270
- }
271
- .card {
272
- text-align: center;
273
- }
274
- .section {
275
- text-align: center;
276
- }
277
- /* No reading flow, no hierarchy */
278
-
279
- /* VIOLATION: Centered layout regardless of content */
280
- .container {
281
- display: flex;
282
- flex-direction: column;
283
- align-items: center;
284
- text-align: center;
285
- }
286
- ```
287
-
288
- ### Border Radius Overuse
289
-
290
- ```css
291
- /* VIOLATION: Same radius on everything */
292
- .button { border-radius: 12px; }
293
- .card { border-radius: 12px; }
294
- .input { border-radius: 12px; }
295
- .avatar { border-radius: 12px; }
296
- .badge { border-radius: 12px; }
297
- .modal { border-radius: 12px; }
298
- /* Avatar should be round, badge should be small radius */
299
-
300
- /* VIOLATION: Excessive rounding */
301
- .container {
302
- border-radius: 24px;
303
- }
304
- /* Large containers look like floating blobs */
305
- ```
306
-
307
- ### Shadow Abuse
308
-
309
- ```css
310
- /* VIOLATION: Shadow on everything */
311
- .card { box-shadow: 0 4px 6px rgba(0,0,0,0.1); }
312
- .button { box-shadow: 0 4px 6px rgba(0,0,0,0.1); }
313
- .input { box-shadow: 0 4px 6px rgba(0,0,0,0.1); }
314
- .header { box-shadow: 0 4px 6px rgba(0,0,0,0.1); }
315
- /* If everything is elevated, nothing is */
316
-
317
- /* VIOLATION: Deep shadows for no reason */
318
- .badge {
319
- box-shadow: 0 10px 25px rgba(0,0,0,0.2);
320
- }
321
- /* Tiny element with massive shadow */
322
- ```
323
-
324
- ---
325
-
326
- ## Component Violations
327
-
328
- ### Generic Hero Sections
329
-
330
- ```tsx
331
- // VIOLATION: Template hero with no customization
332
- <section className="hero bg-gradient-to-r from-purple-600 to-pink-500">
333
- <div className="container mx-auto text-center text-white">
334
- <h1 className="text-5xl font-bold mb-4">Welcome to Our Platform</h1>
335
- <p className="text-xl mb-8">The best solution for your needs</p>
336
- <button className="bg-white text-purple-600 rounded-full px-8 py-3">
337
- Get Started
338
- </button>
339
- </div>
340
- </section>
341
- /* Seen this exact layout on 10,000 websites */
342
- ```
343
-
344
- ### Glassmorphism Everywhere
345
-
346
- ```css
347
- /* VIOLATION: Blur background without purpose */
348
- .card {
349
- background: rgba(255, 255, 255, 0.2);
350
- backdrop-filter: blur(10px);
351
- border: 1px solid rgba(255, 255, 255, 0.3);
352
- }
353
- .modal {
354
- background: rgba(255, 255, 255, 0.15);
355
- backdrop-filter: blur(20px);
356
- }
357
- .nav {
358
- background: rgba(255, 255, 255, 0.1);
359
- backdrop-filter: blur(8px);
360
- }
361
- /* Glass effect is a choice, not a default */
362
- ```
363
-
364
- ### Trend-Following Patterns
365
-
366
- ```css
367
- /* VIOLATION: Bento grid because it's trendy */
368
- .features {
369
- display: grid;
370
- grid-template-columns: repeat(4, 1fr);
371
- grid-template-rows: repeat(2, 1fr);
372
- }
373
- .feature-1 { grid-column: span 2; grid-row: span 2; }
374
- .feature-2 { grid-column: span 2; }
375
- /* Does this layout serve the content or is it just "cool"? */
376
-
377
- /* VIOLATION: Scroll-triggered animations on everything */
378
- .section {
379
- opacity: 0;
380
- transform: translateY(50px);
381
- }
382
- .section.visible {
383
- opacity: 1;
384
- transform: translateY(0);
385
- transition: all 0.6s ease;
386
- }
387
- /* Slows down content consumption */
388
- ```
389
-
390
- ---
391
-
392
- ## Responsive Violations
393
-
394
- ### Afterthought Mobile
395
-
396
- ```css
397
- /* VIOLATION: Desktop-first with broken mobile */
398
- .sidebar { width: 300px; }
399
- .content { margin-left: 300px; }
400
-
401
- @media (max-width: 768px) {
402
- .sidebar { display: none; } /* Just hide everything */
403
- .content { margin-left: 0; }
404
- }
405
- ```
406
-
407
- ### Breakpoint Chaos
408
-
409
- ```css
410
- /* VIOLATION: Inconsistent breakpoints */
411
- @media (max-width: 1200px) { ... }
412
- @media (max-width: 992px) { ... }
413
- @media (max-width: 768px) { ... }
414
- @media (max-width: 576px) { ... }
415
- @media (max-width: 480px) { ... }
416
- @media (max-width: 375px) { ... }
417
- /* Too many breakpoints, impossible to reason about */
418
- ```
419
-
420
- ---
421
-
422
- ## Dark Mode Violations (Extended)
423
-
424
- ### Contrast Inversions
425
-
426
- ```css
427
- /* VIOLATION: Colors that work in light don't work in dark */
428
- :root {
429
- --primary: #0066cc;
430
- }
431
- .dark {
432
- /* Same blue on dark background - poor contrast */
433
- }
434
-
435
- /* VIOLATION: Shadows become invisible */
436
- .card {
437
- box-shadow: 0 2px 8px rgba(0,0,0,0.1);
438
- }
439
- .dark .card {
440
- /* Same shadow on dark background - invisible */
441
- }
442
- ```
443
-
444
- ### Inconsistent Dark Surfaces
445
-
446
- ```css
447
- /* VIOLATION: Random dark grays */
448
- .dark .bg-1 { background: #1a1a1a; }
449
- .dark .bg-2 { background: #2d2d2d; }
450
- .dark .bg-3 { background: #333333; }
451
- .dark .bg-4 { background: #3d3d3d; }
452
- /* No intentional hierarchy */
453
- ```
@@ -1,126 +0,0 @@
1
- #!/bin/bash
2
-
3
- # Working Memory: SessionStart Hook
4
- # Reads .memory/WORKING-MEMORY.md and injects it as additionalContext for the new session.
5
- # Also captures fresh git state so Claude knows what's changed since the memory was written.
6
- # Adds staleness warning if memory is >1 hour old.
7
-
8
- set -euo pipefail
9
-
10
- # jq is required to parse hook input JSON — silently no-op if missing
11
- if ! command -v jq &>/dev/null; then exit 0; fi
12
-
13
- INPUT=$(cat)
14
-
15
- CWD=$(echo "$INPUT" | jq -r '.cwd // ""' 2>/dev/null)
16
- if [ -z "$CWD" ]; then
17
- exit 0
18
- fi
19
-
20
- MEMORY_FILE="$CWD/.memory/WORKING-MEMORY.md"
21
-
22
- # No memory file = nothing to restore (fresh project or first session)
23
- if [ ! -f "$MEMORY_FILE" ]; then
24
- exit 0
25
- fi
26
-
27
- MEMORY_CONTENT=$(cat "$MEMORY_FILE")
28
-
29
- # Read accumulated patterns if they exist
30
- PATTERNS_FILE="$CWD/.memory/PROJECT-PATTERNS.md"
31
- PATTERNS_CONTENT=""
32
- if [ -f "$PATTERNS_FILE" ]; then
33
- PATTERNS_CONTENT=$(cat "$PATTERNS_FILE")
34
- fi
35
-
36
- # Compute staleness warning
37
- if stat --version &>/dev/null 2>&1; then
38
- FILE_MTIME=$(stat -c %Y "$MEMORY_FILE")
39
- else
40
- FILE_MTIME=$(stat -f %m "$MEMORY_FILE")
41
- fi
42
- NOW=$(date +%s)
43
- AGE=$(( NOW - FILE_MTIME ))
44
-
45
- # Check for pre-compact memory snapshot (compaction recovery)
46
- BACKUP_FILE="$CWD/.memory/backup.json"
47
- COMPACT_NOTE=""
48
- if [ -f "$BACKUP_FILE" ]; then
49
- BACKUP_MEMORY=$(jq -r '.memory_snapshot // ""' "$BACKUP_FILE" 2>/dev/null)
50
- if [ -n "$BACKUP_MEMORY" ]; then
51
- BACKUP_TS=$(jq -r '.timestamp // ""' "$BACKUP_FILE" 2>/dev/null)
52
- BACKUP_EPOCH=0
53
- if [ -n "$BACKUP_TS" ]; then
54
- BACKUP_EPOCH=$(date -j -f "%Y-%m-%dT%H:%M:%SZ" "$BACKUP_TS" +%s 2>/dev/null \
55
- || date -d "$BACKUP_TS" +%s 2>/dev/null \
56
- || echo "0")
57
- fi
58
- if [ "$BACKUP_EPOCH" -gt "$FILE_MTIME" ]; then
59
- COMPACT_NOTE="
60
- --- PRE-COMPACT SNAPSHOT ($BACKUP_TS) ---
61
- Context was compacted. This snapshot may contain decisions or progress not yet in working memory.
62
-
63
- $BACKUP_MEMORY
64
- "
65
- fi
66
- fi
67
- fi
68
-
69
- STALE_WARNING=""
70
- if [ "$AGE" -gt 3600 ]; then
71
- HOURS=$(( AGE / 3600 ))
72
- STALE_WARNING="⚠ This working memory is ${HOURS}h old. Verify before relying on it.
73
-
74
- "
75
- fi
76
-
77
- # Capture fresh git state
78
- GIT_BRANCH=""
79
- GIT_STATUS=""
80
- GIT_LOG=""
81
-
82
- if cd "$CWD" 2>/dev/null && git rev-parse --git-dir >/dev/null 2>&1; then
83
- GIT_BRANCH=$(git branch --show-current 2>/dev/null || echo "unknown")
84
- GIT_STATUS=$(git status --porcelain 2>/dev/null | head -20)
85
- GIT_LOG=$(git log --oneline -5 2>/dev/null || echo "")
86
- fi
87
-
88
- # Build context string
89
- CONTEXT="${STALE_WARNING}--- WORKING MEMORY (from previous session) ---
90
-
91
- ${MEMORY_CONTENT}"
92
-
93
- # Insert accumulated patterns between working memory and git state
94
- if [ -n "$PATTERNS_CONTENT" ]; then
95
- CONTEXT="${CONTEXT}
96
-
97
- --- PROJECT PATTERNS (accumulated) ---
98
-
99
- ${PATTERNS_CONTENT}"
100
- fi
101
-
102
- CONTEXT="${CONTEXT}
103
-
104
- --- CURRENT GIT STATE ---
105
- Branch: ${GIT_BRANCH}
106
- Recent commits:
107
- ${GIT_LOG}"
108
-
109
- if [ -n "$GIT_STATUS" ]; then
110
- CONTEXT="${CONTEXT}
111
- Uncommitted changes:
112
- ${GIT_STATUS}"
113
- fi
114
-
115
- if [ -n "$COMPACT_NOTE" ]; then
116
- CONTEXT="${CONTEXT}
117
- ${COMPACT_NOTE}"
118
- fi
119
-
120
- # Output as additionalContext JSON envelope (Claude sees it as system context, not user-visible)
121
- jq -n --arg ctx "$CONTEXT" '{
122
- "hookSpecificOutput": {
123
- "hookEventName": "SessionStart",
124
- "additionalContext": $ctx
125
- }
126
- }'