claude-dev-env 1.83.0 → 1.84.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 (165) hide show
  1. package/_shared/pr-loop/audit-contract.md +24 -12
  2. package/_shared/pr-loop/scripts/_claude_permissions_common.py +16 -5
  3. package/_shared/pr-loop/scripts/code_rules_gate.py +2 -3
  4. package/_shared/pr-loop/scripts/reviews_disabled.py +2 -0
  5. package/_shared/pr-loop/scripts/tests/test__claude_permissions_common.py +212 -0
  6. package/_shared/pr-loop/scripts/tests/test_agent_config_carveout.py +18 -0
  7. package/_shared/pr-loop/scripts/tests/test_claude_permissions_common.py +18 -0
  8. package/_shared/pr-loop/scripts/tests/test_code_rules_gate.py +37 -0
  9. package/_shared/pr-loop/scripts/tests/test_reviews_disabled.py +14 -0
  10. package/agents/clean-coder.md +3 -0
  11. package/audit-rubrics/category_rubrics/category-o-docstring-vs-impl-drift.md +1 -1
  12. package/bin/install.mjs +16 -8
  13. package/bin/install.test.mjs +17 -6
  14. package/commands/CLAUDE.md +0 -1
  15. package/docs/CODE_RULES.md +1 -1
  16. package/hooks/blocking/CLAUDE.md +0 -4
  17. package/hooks/blocking/code_rules_constants_config.py +5 -0
  18. package/hooks/blocking/code_rules_docstrings.py +116 -6
  19. package/hooks/blocking/code_rules_enforcer.py +4 -0
  20. package/hooks/blocking/code_rules_magic_values.py +5 -0
  21. package/hooks/blocking/code_rules_naming_collection.py +11 -6
  22. package/hooks/blocking/code_rules_shared.py +34 -0
  23. package/hooks/blocking/duplicate_rmtree_helper_blocker.py +4 -4
  24. package/hooks/blocking/test_code_rules_enforcer_docstring_prose_wall_illustration.py +197 -0
  25. package/hooks/blocking/test_code_rules_enforcer_docstring_runon_sentence.py +27 -0
  26. package/hooks/blocking/test_code_rules_enforcer_split_constants_config.py +33 -0
  27. package/hooks/blocking/test_code_rules_enforcer_split_shared.py +23 -0
  28. package/hooks/blocking/test_code_rules_magic_values.py +54 -0
  29. package/hooks/blocking/test_duplicate_rmtree_helper_blocker.py +0 -6
  30. package/hooks/blocking/test_pr_converge_bugteam_enforcer_state_tolerance.py +184 -0
  31. package/hooks/blocking/test_shared_stdin_adoption.py +5 -30
  32. package/hooks/hooks_constants/CLAUDE.md +0 -3
  33. package/hooks/hooks_constants/blocking_check_limits.py +3 -0
  34. package/hooks/hooks_constants/code_rules_path_utils_constants.py +1 -1
  35. package/hooks/hooks_constants/duplicate_rmtree_helper_blocker_constants.py +0 -1
  36. package/hooks/hooks_constants/post_tool_use_dispatcher_constants.py +0 -5
  37. package/hooks/validation/post_tool_use_dispatcher.py +1 -1
  38. package/hooks/validation/test_post_tool_use_dispatcher.py +51 -35
  39. package/hooks/workflow/CLAUDE.md +2 -8
  40. package/package.json +1 -1
  41. package/rules/CLAUDE.md +1 -1
  42. package/rules/plain-illustrative-docstrings.md +35 -1
  43. package/skills/CLAUDE.md +6 -1
  44. package/skills/autoconverge/SKILL.md +38 -57
  45. package/skills/autoconverge/reference/closing-report.md +6 -6
  46. package/skills/autoconverge/reference/convergence.md +17 -15
  47. package/skills/autoconverge/reference/gotchas.md +6 -3
  48. package/skills/autoconverge/workflow/autoconverge_report_constants/render_report_constants.py +2 -9
  49. package/skills/autoconverge/workflow/converge.contract.test.mjs +87 -13
  50. package/skills/autoconverge/workflow/converge.copilot-gate.test.mjs +1 -1
  51. package/skills/autoconverge/workflow/converge.merge-conflict.test.mjs +16 -9
  52. package/skills/autoconverge/workflow/converge.mjs +70 -73
  53. package/skills/autoconverge/workflow/render_report.py +7 -11
  54. package/skills/bugteam/CLAUDE.md +1 -1
  55. package/skills/bugteam/PROMPTS.md +7 -6
  56. package/skills/bugteam/SKILL.md +25 -72
  57. package/skills/bugteam/reference/CLAUDE.md +1 -3
  58. package/skills/bugteam/reference/README.md +1 -1
  59. package/skills/bugteam/reference/audit-and-teammates.md +1 -1
  60. package/skills/bugteam/reference/obstacles/fix-publish-summary.md +1 -1
  61. package/skills/bugteam/reference/team-setup.md +8 -7
  62. package/skills/bugteam/scripts/CLAUDE.md +0 -6
  63. package/skills/bugteam/scripts/README.md +0 -4
  64. package/skills/bugteam/scripts/bugteam_scripts_constants/CLAUDE.md +0 -1
  65. package/skills/code/SKILL.md +2 -0
  66. package/skills/copilot-review/CLAUDE.md +1 -1
  67. package/skills/copilot-review/SKILL.md +25 -23
  68. package/skills/findbugs/CLAUDE.md +2 -2
  69. package/skills/findbugs/SKILL.md +22 -83
  70. package/skills/fixbugs/SKILL.md +2 -4
  71. package/skills/log-audit/CLAUDE.md +20 -0
  72. package/skills/log-audit/SKILL.md +68 -0
  73. package/skills/log-audit/reference/CLAUDE.md +9 -0
  74. package/skills/log-audit/reference/charter.md +52 -0
  75. package/skills/log-audit/scripts/CLAUDE.md +27 -0
  76. package/skills/log-audit/scripts/cluster_recurrences.py +261 -0
  77. package/skills/log-audit/scripts/collect_log_window.py +199 -0
  78. package/skills/log-audit/scripts/log_audit_constants/CLAUDE.md +12 -0
  79. package/skills/log-audit/scripts/log_audit_constants/cluster_recurrences_constants.py +23 -0
  80. package/skills/log-audit/scripts/log_audit_constants/collect_log_window_constants.py +24 -0
  81. package/skills/log-audit/scripts/log_audit_constants/mine_copilot_findings_constants.py +49 -0
  82. package/skills/log-audit/scripts/mine_copilot_findings.py +302 -0
  83. package/skills/log-audit/scripts/test_cluster_recurrences.py +160 -0
  84. package/skills/log-audit/scripts/test_collect_log_window.py +111 -0
  85. package/skills/log-audit/scripts/test_mine_copilot_findings.py +126 -0
  86. package/skills/monitor-open-prs/SKILL.md +2 -2
  87. package/skills/post-audit-findings/SKILL.md +84 -0
  88. package/skills/pr-converge/CLAUDE.md +2 -0
  89. package/skills/pr-converge/SKILL.md +72 -59
  90. package/skills/pr-converge/reference/CLAUDE.md +1 -1
  91. package/skills/pr-converge/reference/convergence-gates.md +16 -19
  92. package/skills/pr-converge/reference/examples.md +5 -5
  93. package/skills/pr-converge/reference/fix-protocol.md +16 -43
  94. package/skills/pr-converge/reference/obstacles/fix-publish-summary.md +1 -1
  95. package/skills/pr-converge/reference/per-tick.md +24 -45
  96. package/skills/pr-converge/reference/state-schema.md +15 -0
  97. package/skills/pr-converge/scripts/README.md +3 -5
  98. package/skills/pr-fix-protocol/SKILL.md +70 -0
  99. package/skills/pr-loop-lifecycle/SKILL.md +73 -0
  100. package/skills/{bugteam → pr-loop-lifecycle}/reference/teardown-publish-permissions.md +22 -24
  101. package/skills/pr-scope-resolve/SKILL.md +48 -0
  102. package/skills/qbug/CLAUDE.md +4 -4
  103. package/skills/qbug/SKILL.md +46 -144
  104. package/skills/qbug/test_qbug_skill_audit_schema.py +2 -2
  105. package/skills/qbug/test_qbug_skill_post_fix_audit.py +1 -1
  106. package/skills/reviewer-gates/SKILL.md +96 -0
  107. package/skills/session-log/CLAUDE.md +7 -7
  108. package/skills/session-log/SKILL.md +27 -44
  109. package/skills/test_markdown_link_integrity.py +103 -0
  110. package/commands/doc-gist.md +0 -16
  111. package/hooks/blocking/_md_to_html_blocker_test_support.py +0 -65
  112. package/hooks/blocking/conftest.py +0 -30
  113. package/hooks/blocking/md_path_exemptions.py +0 -224
  114. package/hooks/blocking/md_to_html_blocker.py +0 -155
  115. package/hooks/blocking/test_md_to_html_blocker_exemptions.py +0 -434
  116. package/hooks/blocking/test_md_to_html_blocker_extensions.py +0 -157
  117. package/hooks/blocking/test_md_to_html_blocker_path_resolution.py +0 -336
  118. package/hooks/hooks_constants/doc_gist_auto_publish_constants.py +0 -18
  119. package/hooks/hooks_constants/html_companion_constants.py +0 -20
  120. package/hooks/hooks_constants/md_to_html_blocker_constants.py +0 -76
  121. package/hooks/hooks_constants/test_md_to_html_blocker_constants.py +0 -125
  122. package/hooks/workflow/doc_gist_auto_publish.py +0 -144
  123. package/hooks/workflow/md_to_html_companion.py +0 -358
  124. package/hooks/workflow/test_doc_gist_auto_publish.py +0 -117
  125. package/hooks/workflow/test_md_to_html_companion.py +0 -613
  126. package/skills/bugteam/reference/audit-contract.md +0 -163
  127. package/skills/bugteam/scripts/_bugteam_permissions_common.py +0 -455
  128. package/skills/bugteam/scripts/bugteam_scripts_constants/claude_permissions_common_constants.py +0 -69
  129. package/skills/bugteam/scripts/grant_project_claude_permissions.py +0 -280
  130. package/skills/bugteam/scripts/revoke_project_claude_permissions.py +0 -266
  131. package/skills/bugteam/scripts/test__bugteam_permissions_common.py +0 -160
  132. package/skills/bugteam/scripts/test_agent_config_carveout.py +0 -356
  133. package/skills/bugteam/scripts/test_bugteam_permissions_common.py +0 -140
  134. package/skills/doc-gist/CLAUDE.md +0 -25
  135. package/skills/doc-gist/SKILL.md +0 -97
  136. package/skills/doc-gist/references/CLAUDE.md +0 -9
  137. package/skills/doc-gist/references/examples/01-exploration-code-approaches.html +0 -453
  138. package/skills/doc-gist/references/examples/02-exploration-visual-designs.html +0 -515
  139. package/skills/doc-gist/references/examples/03-code-review-pr.html +0 -638
  140. package/skills/doc-gist/references/examples/04-code-understanding.html +0 -491
  141. package/skills/doc-gist/references/examples/05-design-system.html +0 -629
  142. package/skills/doc-gist/references/examples/06-component-variants.html +0 -605
  143. package/skills/doc-gist/references/examples/07-prototype-animation.html +0 -455
  144. package/skills/doc-gist/references/examples/08-prototype-interaction.html +0 -396
  145. package/skills/doc-gist/references/examples/09-slide-deck.html +0 -592
  146. package/skills/doc-gist/references/examples/10-svg-illustrations.html +0 -492
  147. package/skills/doc-gist/references/examples/11-status-report.html +0 -528
  148. package/skills/doc-gist/references/examples/12-incident-report.html +0 -596
  149. package/skills/doc-gist/references/examples/13-flowchart-diagram.html +0 -395
  150. package/skills/doc-gist/references/examples/14-research-feature-explainer.html +0 -381
  151. package/skills/doc-gist/references/examples/15-research-concept-explainer.html +0 -368
  152. package/skills/doc-gist/references/examples/16-implementation-plan.html +0 -702
  153. package/skills/doc-gist/references/examples/17-pr-writeup.html +0 -595
  154. package/skills/doc-gist/references/examples/18-editor-triage-board.html +0 -573
  155. package/skills/doc-gist/references/examples/19-editor-feature-flags.html +0 -663
  156. package/skills/doc-gist/references/examples/20-editor-prompt-tuner.html +0 -722
  157. package/skills/doc-gist/references/examples/21-decision-signoff.html +0 -546
  158. package/skills/doc-gist/references/examples/CLAUDE.md +0 -25
  159. package/skills/doc-gist/references/examples/README.md +0 -5
  160. package/skills/doc-gist/scripts/CLAUDE.md +0 -27
  161. package/skills/doc-gist/scripts/doc_gist_scripts_constants/CLAUDE.md +0 -10
  162. package/skills/doc-gist/scripts/doc_gist_scripts_constants/gist_upload_constants.py +0 -16
  163. package/skills/doc-gist/scripts/gist_upload.py +0 -177
  164. package/skills/doc-gist/scripts/test_gist_upload.py +0 -51
  165. /package/skills/{doc-gist/scripts/doc_gist_scripts_constants → log-audit/scripts/log_audit_constants}/__init__.py +0 -0
@@ -1,629 +0,0 @@
1
- <!doctype html>
2
- <html lang="en">
3
- <head>
4
- <meta charset="utf-8">
5
- <meta name="viewport" content="width=device-width, initial-scale=1">
6
- <title>Birchline — Design System Reference</title>
7
- <style>
8
- :root {
9
- --ivory: #FAF9F5;
10
- --slate: #141413;
11
- --clay: #D97757;
12
- --oat: #E3DACC;
13
- --olive: #788C5D;
14
- --gray-100: #F0EEE6;
15
- --gray-300: #D1CFC5;
16
- --gray-500: #87867F;
17
- --gray-700: #3D3D3A;
18
- --white: #FFFFFF;
19
-
20
- --serif: ui-serif, Georgia, serif;
21
- --sans: system-ui, -apple-system, sans-serif;
22
- --mono: ui-monospace, 'SF Mono', Menlo, monospace;
23
-
24
- --radius-panel: 12px;
25
- --radius-row: 8px;
26
- --border: 1.5px solid var(--gray-300);
27
- }
28
-
29
- * { box-sizing: border-box; }
30
-
31
- body {
32
- margin: 0;
33
- padding: 56px 24px 96px;
34
- background: var(--ivory);
35
- color: var(--slate);
36
- font-family: var(--sans);
37
- font-size: 15px;
38
- line-height: 1.55;
39
- -webkit-font-smoothing: antialiased;
40
- }
41
-
42
- .page {
43
- max-width: 980px;
44
- margin: 0 auto;
45
- }
46
-
47
- header h1 {
48
- font-family: var(--serif);
49
- font-weight: 500;
50
- font-size: 40px;
51
- letter-spacing: -0.01em;
52
- margin: 0 0 6px;
53
- }
54
-
55
- header .sub {
56
- color: var(--gray-500);
57
- font-size: 14px;
58
- margin: 0 0 48px;
59
- }
60
- header .sub code {
61
- font-family: var(--mono);
62
- font-size: 13px;
63
- background: var(--gray-100);
64
- padding: 1px 5px;
65
- border-radius: 4px;
66
- }
67
-
68
- section { margin-bottom: 64px; }
69
-
70
- h2 {
71
- font-family: var(--serif);
72
- font-weight: 500;
73
- font-size: 26px;
74
- margin: 0 0 8px;
75
- letter-spacing: -0.01em;
76
- }
77
- hr.rule {
78
- border: none;
79
- border-top: 1px solid var(--gray-300);
80
- margin: 0 0 28px;
81
- }
82
-
83
- /* ---------- Color ---------- */
84
- .swatch-group {
85
- margin-bottom: 28px;
86
- }
87
- .swatch-group-label {
88
- font-family: var(--mono);
89
- font-size: 11px;
90
- text-transform: uppercase;
91
- letter-spacing: 0.08em;
92
- color: var(--gray-500);
93
- margin-bottom: 12px;
94
- }
95
- .swatch-grid {
96
- display: grid;
97
- grid-template-columns: repeat(auto-fill, minmax(96px, 1fr));
98
- gap: 20px 16px;
99
- }
100
- .swatch {}
101
- .swatch .chip {
102
- width: 64px;
103
- height: 64px;
104
- border-radius: var(--radius-row);
105
- border: var(--border);
106
- margin-bottom: 8px;
107
- }
108
- .swatch .chip.no-border { border-color: transparent; }
109
- .swatch .hex {
110
- font-family: var(--mono);
111
- font-size: 12px;
112
- color: var(--gray-700);
113
- display: block;
114
- }
115
- .swatch .token {
116
- font-family: var(--mono);
117
- font-size: 11px;
118
- color: var(--gray-500);
119
- display: block;
120
- }
121
-
122
- /* ---------- Typography ---------- */
123
- .type-scale {
124
- border: var(--border);
125
- border-radius: var(--radius-panel);
126
- background: var(--white);
127
- overflow: hidden;
128
- }
129
- .type-row {
130
- display: flex;
131
- align-items: baseline;
132
- justify-content: space-between;
133
- gap: 24px;
134
- padding: 20px 24px;
135
- border-bottom: 1px solid var(--gray-100);
136
- }
137
- .type-row:last-child { border-bottom: none; }
138
- .type-specimen {
139
- flex: 1;
140
- min-width: 0;
141
- white-space: nowrap;
142
- overflow: hidden;
143
- text-overflow: ellipsis;
144
- color: var(--slate);
145
- }
146
- .type-meta {
147
- font-family: var(--mono);
148
- font-size: 12px;
149
- color: var(--gray-500);
150
- text-align: right;
151
- flex-shrink: 0;
152
- }
153
- .type-meta .name {
154
- color: var(--gray-700);
155
- display: block;
156
- margin-bottom: 2px;
157
- }
158
-
159
- .t-display { font-family: var(--serif); font-size: 48px; line-height: 1.1; font-weight: 500; letter-spacing: -0.02em; }
160
- .t-h1 { font-family: var(--serif); font-size: 32px; line-height: 1.2; font-weight: 500; letter-spacing: -0.01em; }
161
- .t-h2 { font-family: var(--serif); font-size: 24px; line-height: 1.3; font-weight: 500; }
162
- .t-body { font-family: var(--sans); font-size: 16px; line-height: 1.55; font-weight: 430; }
163
- .t-small { font-family: var(--sans); font-size: 14px; line-height: 1.5; font-weight: 430; }
164
- .t-caption { font-family: var(--sans); font-size: 12px; line-height: 1.4; font-weight: 500; color: var(--gray-500); }
165
-
166
- /* ---------- Spacing ---------- */
167
- .spacing-ruler {
168
- display: flex;
169
- align-items: flex-end;
170
- gap: 28px;
171
- padding: 28px 24px;
172
- background: var(--white);
173
- border: var(--border);
174
- border-radius: var(--radius-panel);
175
- overflow-x: auto;
176
- }
177
- .space-token {
178
- display: flex;
179
- flex-direction: column;
180
- align-items: center;
181
- gap: 10px;
182
- flex-shrink: 0;
183
- }
184
- .space-bar {
185
- background: var(--clay);
186
- border-radius: 3px;
187
- height: 14px;
188
- }
189
- .space-label {
190
- font-family: var(--mono);
191
- font-size: 11px;
192
- color: var(--gray-700);
193
- text-align: center;
194
- }
195
- .space-label span {
196
- display: block;
197
- color: var(--gray-500);
198
- }
199
-
200
- /* ---------- Radius & Elevation ---------- */
201
- .token-row {
202
- display: flex;
203
- flex-wrap: wrap;
204
- gap: 20px;
205
- margin-bottom: 28px;
206
- }
207
- .radius-card {
208
- width: 120px;
209
- height: 88px;
210
- background: var(--oat);
211
- border: var(--border);
212
- display: flex;
213
- align-items: flex-end;
214
- padding: 10px 12px;
215
- }
216
- .radius-card .lbl {
217
- font-family: var(--mono);
218
- font-size: 11px;
219
- color: var(--gray-700);
220
- }
221
- .radius-card .lbl span { color: var(--gray-500); display: block; }
222
-
223
- .shadow-card {
224
- width: 160px;
225
- height: 96px;
226
- background: var(--white);
227
- border-radius: var(--radius-panel);
228
- display: flex;
229
- align-items: flex-end;
230
- padding: 12px 14px;
231
- }
232
- .shadow-card .lbl {
233
- font-family: var(--mono);
234
- font-size: 11px;
235
- color: var(--gray-700);
236
- }
237
- .shadow-card .lbl span { color: var(--gray-500); display: block; }
238
-
239
- /* ---------- Core components ---------- */
240
- .component {
241
- margin-bottom: 32px;
242
- }
243
- .component-name {
244
- font-family: var(--mono);
245
- font-size: 12px;
246
- color: var(--gray-500);
247
- margin-bottom: 12px;
248
- }
249
- .component-stage {
250
- display: flex;
251
- flex-wrap: wrap;
252
- align-items: center;
253
- gap: 16px;
254
- padding: 24px;
255
- background: var(--white);
256
- border: var(--border);
257
- border-radius: var(--radius-panel);
258
- }
259
-
260
- /* Button */
261
- .btn {
262
- display: inline-flex;
263
- align-items: center;
264
- justify-content: center;
265
- height: 36px;
266
- padding: 0 16px;
267
- font-family: var(--sans);
268
- font-size: 14px;
269
- font-weight: 500;
270
- border-radius: var(--radius-row);
271
- border: 1.5px solid transparent;
272
- cursor: pointer;
273
- transition: background 0.12s ease, border-color 0.12s ease;
274
- }
275
- .btn-primary { background: var(--clay); color: var(--white); }
276
- .btn-primary:hover { background: #C7684C; }
277
- .btn-secondary { background: var(--white); color: var(--slate); border-color: var(--gray-300); }
278
- .btn-secondary:hover { background: var(--gray-100); }
279
- .btn-ghost { background: transparent; color: var(--gray-700); }
280
- .btn-ghost:hover { background: var(--gray-100); }
281
- .btn-danger { background: #B04A4A; color: var(--white); }
282
- .btn-danger:hover { background: #9A3F3F; }
283
-
284
- /* Input */
285
- .input {
286
- height: 38px;
287
- padding: 0 12px;
288
- font-family: var(--sans);
289
- font-size: 14px;
290
- color: var(--slate);
291
- background: var(--white);
292
- border: var(--border);
293
- border-radius: var(--radius-row);
294
- width: 260px;
295
- outline: none;
296
- transition: border-color 0.12s ease, box-shadow 0.12s ease;
297
- }
298
- .input::placeholder { color: var(--gray-500); }
299
- .input:focus {
300
- border-color: var(--clay);
301
- box-shadow: 0 0 0 3px rgba(217, 119, 87, 0.15);
302
- }
303
-
304
- /* Checkbox */
305
- .checkbox {
306
- display: inline-flex;
307
- align-items: center;
308
- gap: 10px;
309
- font-size: 14px;
310
- cursor: pointer;
311
- user-select: none;
312
- }
313
- .checkbox input {
314
- appearance: none;
315
- width: 18px;
316
- height: 18px;
317
- border: var(--border);
318
- border-radius: 5px;
319
- background: var(--white);
320
- margin: 0;
321
- cursor: pointer;
322
- position: relative;
323
- transition: background 0.12s ease, border-color 0.12s ease;
324
- }
325
- .checkbox input:checked {
326
- background: var(--clay);
327
- border-color: var(--clay);
328
- }
329
- .checkbox input:checked::after {
330
- content: "";
331
- position: absolute;
332
- left: 5px; top: 1px;
333
- width: 5px; height: 10px;
334
- border: solid var(--white);
335
- border-width: 0 2px 2px 0;
336
- transform: rotate(45deg);
337
- }
338
-
339
- /* Badge */
340
- .badge {
341
- display: inline-flex;
342
- align-items: center;
343
- height: 22px;
344
- padding: 0 9px;
345
- font-size: 12px;
346
- font-weight: 500;
347
- border-radius: 999px;
348
- }
349
- .badge-neutral { background: var(--gray-100); color: var(--gray-700); }
350
- .badge-accent { background: rgba(217, 119, 87, 0.14); color: var(--clay); }
351
- .badge-success { background: rgba(120, 140, 93, 0.16); color: var(--olive); }
352
- .badge-warning { background: rgba(199, 142, 63, 0.16); color: #A06A2A; }
353
- </style>
354
- </head>
355
- <body>
356
- <div class="page">
357
-
358
- <header>
359
- <h1>Birchline design system</h1>
360
- <p class="sub">
361
- Generated from <code>src/styles/tokens.ts</code> and <code>src/components/</code> &mdash; use as a portable reference when prompting.
362
- </p>
363
- </header>
364
-
365
- <!-- ===================== COLOR ===================== -->
366
- <section id="color">
367
- <h2>Color</h2>
368
- <hr class="rule">
369
-
370
- <div class="swatch-group">
371
- <div class="swatch-group-label">Primary</div>
372
- <div class="swatch-grid">
373
- <div class="swatch">
374
- <div class="chip no-border" style="background:#D97757"></div>
375
- <span class="hex">#D97757</span>
376
- <span class="token">--clay</span>
377
- </div>
378
- <div class="swatch">
379
- <div class="chip no-border" style="background:#141413"></div>
380
- <span class="hex">#141413</span>
381
- <span class="token">--slate</span>
382
- </div>
383
- <div class="swatch">
384
- <div class="chip" style="background:#FAF9F5"></div>
385
- <span class="hex">#FAF9F5</span>
386
- <span class="token">--ivory</span>
387
- </div>
388
- <div class="swatch">
389
- <div class="chip no-border" style="background:#E3DACC"></div>
390
- <span class="hex">#E3DACC</span>
391
- <span class="token">--oat</span>
392
- </div>
393
- </div>
394
- </div>
395
-
396
- <div class="swatch-group">
397
- <div class="swatch-group-label">Neutral</div>
398
- <div class="swatch-grid">
399
- <div class="swatch">
400
- <div class="chip" style="background:#FFFFFF"></div>
401
- <span class="hex">#FFFFFF</span>
402
- <span class="token">--white</span>
403
- </div>
404
- <div class="swatch">
405
- <div class="chip" style="background:#F0EEE6"></div>
406
- <span class="hex">#F0EEE6</span>
407
- <span class="token">--gray-100</span>
408
- </div>
409
- <div class="swatch">
410
- <div class="chip no-border" style="background:#D1CFC5"></div>
411
- <span class="hex">#D1CFC5</span>
412
- <span class="token">--gray-300</span>
413
- </div>
414
- <div class="swatch">
415
- <div class="chip no-border" style="background:#87867F"></div>
416
- <span class="hex">#87867F</span>
417
- <span class="token">--gray-500</span>
418
- </div>
419
- <div class="swatch">
420
- <div class="chip no-border" style="background:#3D3D3A"></div>
421
- <span class="hex">#3D3D3A</span>
422
- <span class="token">--gray-700</span>
423
- </div>
424
- </div>
425
- </div>
426
-
427
- <div class="swatch-group">
428
- <div class="swatch-group-label">Semantic</div>
429
- <div class="swatch-grid">
430
- <div class="swatch">
431
- <div class="chip no-border" style="background:#788C5D"></div>
432
- <span class="hex">#788C5D</span>
433
- <span class="token">--success</span>
434
- </div>
435
- <div class="swatch">
436
- <div class="chip no-border" style="background:#C78E3F"></div>
437
- <span class="hex">#C78E3F</span>
438
- <span class="token">--warning</span>
439
- </div>
440
- <div class="swatch">
441
- <div class="chip no-border" style="background:#B04A4A"></div>
442
- <span class="hex">#B04A4A</span>
443
- <span class="token">--danger</span>
444
- </div>
445
- <div class="swatch">
446
- <div class="chip no-border" style="background:#5C7CA3"></div>
447
- <span class="hex">#5C7CA3</span>
448
- <span class="token">--info</span>
449
- </div>
450
- </div>
451
- </div>
452
- </section>
453
-
454
- <!-- ===================== TYPOGRAPHY ===================== -->
455
- <section id="typography">
456
- <h2>Typography</h2>
457
- <hr class="rule">
458
-
459
- <div class="type-scale">
460
- <div class="type-row">
461
- <div class="type-specimen t-display">Plan the week ahead</div>
462
- <div class="type-meta">
463
- <span class="name">Display</span>
464
- 48 / 1.1 / 500
465
- </div>
466
- </div>
467
- <div class="type-row">
468
- <div class="type-specimen t-h1">Plan the week ahead</div>
469
- <div class="type-meta">
470
- <span class="name">Heading 1</span>
471
- 32 / 1.2 / 500
472
- </div>
473
- </div>
474
- <div class="type-row">
475
- <div class="type-specimen t-h2">Plan the week ahead</div>
476
- <div class="type-meta">
477
- <span class="name">Heading 2</span>
478
- 24 / 1.3 / 500
479
- </div>
480
- </div>
481
- <div class="type-row">
482
- <div class="type-specimen t-body">Review milestones, assign owners, and surface blockers before they cascade.</div>
483
- <div class="type-meta">
484
- <span class="name">Body</span>
485
- 16 / 1.55 / 430
486
- </div>
487
- </div>
488
- <div class="type-row">
489
- <div class="type-specimen t-small">Review milestones, assign owners, and surface blockers before they cascade.</div>
490
- <div class="type-meta">
491
- <span class="name">Small</span>
492
- 14 / 1.5 / 430
493
- </div>
494
- </div>
495
- <div class="type-row">
496
- <div class="type-specimen t-caption">UPDATED 2 HOURS AGO</div>
497
- <div class="type-meta">
498
- <span class="name">Caption</span>
499
- 12 / 1.4 / 500
500
- </div>
501
- </div>
502
- </div>
503
- </section>
504
-
505
- <!-- ===================== SPACING ===================== -->
506
- <section id="spacing">
507
- <h2>Spacing</h2>
508
- <hr class="rule">
509
-
510
- <div class="spacing-ruler">
511
- <div class="space-token">
512
- <div class="space-bar" style="width:4px"></div>
513
- <div class="space-label">4<span>--sp-1</span></div>
514
- </div>
515
- <div class="space-token">
516
- <div class="space-bar" style="width:8px"></div>
517
- <div class="space-label">8<span>--sp-2</span></div>
518
- </div>
519
- <div class="space-token">
520
- <div class="space-bar" style="width:12px"></div>
521
- <div class="space-label">12<span>--sp-3</span></div>
522
- </div>
523
- <div class="space-token">
524
- <div class="space-bar" style="width:16px"></div>
525
- <div class="space-label">16<span>--sp-4</span></div>
526
- </div>
527
- <div class="space-token">
528
- <div class="space-bar" style="width:24px"></div>
529
- <div class="space-label">24<span>--sp-5</span></div>
530
- </div>
531
- <div class="space-token">
532
- <div class="space-bar" style="width:32px"></div>
533
- <div class="space-label">32<span>--sp-6</span></div>
534
- </div>
535
- <div class="space-token">
536
- <div class="space-bar" style="width:48px"></div>
537
- <div class="space-label">48<span>--sp-7</span></div>
538
- </div>
539
- <div class="space-token">
540
- <div class="space-bar" style="width:64px"></div>
541
- <div class="space-label">64<span>--sp-8</span></div>
542
- </div>
543
- </div>
544
- </section>
545
-
546
- <!-- ===================== RADIUS & ELEVATION ===================== -->
547
- <section id="shape">
548
- <h2>Radius &amp; Elevation</h2>
549
- <hr class="rule">
550
-
551
- <div class="token-row">
552
- <div class="radius-card" style="border-radius:4px">
553
- <div class="lbl">4px<span>--r-xs</span></div>
554
- </div>
555
- <div class="radius-card" style="border-radius:8px">
556
- <div class="lbl">8px<span>--r-sm</span></div>
557
- </div>
558
- <div class="radius-card" style="border-radius:12px">
559
- <div class="lbl">12px<span>--r-md</span></div>
560
- </div>
561
- <div class="radius-card" style="border-radius:20px">
562
- <div class="lbl">20px<span>--r-lg</span></div>
563
- </div>
564
- </div>
565
-
566
- <div class="token-row">
567
- <div class="shadow-card" style="box-shadow:0 1px 2px rgba(20,20,19,0.06)">
568
- <div class="lbl">--shadow-sm<span>0 1px 2px / 6%</span></div>
569
- </div>
570
- <div class="shadow-card" style="box-shadow:0 4px 10px rgba(20,20,19,0.08)">
571
- <div class="lbl">--shadow-md<span>0 4px 10px / 8%</span></div>
572
- </div>
573
- <div class="shadow-card" style="box-shadow:0 12px 28px rgba(20,20,19,0.12)">
574
- <div class="lbl">--shadow-lg<span>0 12px 28px / 12%</span></div>
575
- </div>
576
- </div>
577
- </section>
578
-
579
- <!-- ===================== CORE COMPONENTS ===================== -->
580
- <section id="components">
581
- <h2>Core components</h2>
582
- <hr class="rule">
583
-
584
- <div class="component">
585
- <div class="component-name">&lt;Button /&gt;</div>
586
- <div class="component-stage">
587
- <button class="btn btn-primary">Create task</button>
588
- <button class="btn btn-secondary">Cancel</button>
589
- <button class="btn btn-ghost">Skip</button>
590
- <button class="btn btn-danger">Delete</button>
591
- </div>
592
- </div>
593
-
594
- <div class="component">
595
- <div class="component-name">&lt;Input /&gt;</div>
596
- <div class="component-stage">
597
- <input class="input" type="text" placeholder="Search tasks&hellip;">
598
- <input class="input" type="text" value="Weekly planning">
599
- </div>
600
- </div>
601
-
602
- <div class="component">
603
- <div class="component-name">&lt;Checkbox /&gt;</div>
604
- <div class="component-stage">
605
- <label class="checkbox">
606
- <input type="checkbox">
607
- Notify assignees
608
- </label>
609
- <label class="checkbox">
610
- <input type="checkbox" checked>
611
- Archive on complete
612
- </label>
613
- </div>
614
- </div>
615
-
616
- <div class="component">
617
- <div class="component-name">&lt;Badge /&gt;</div>
618
- <div class="component-stage">
619
- <span class="badge badge-neutral">Draft</span>
620
- <span class="badge badge-accent">In review</span>
621
- <span class="badge badge-success">Done</span>
622
- <span class="badge badge-warning">Overdue</span>
623
- </div>
624
- </div>
625
- </section>
626
-
627
- </div>
628
- </body>
629
- </html>