patchdrill 0.1.0 → 0.1.2

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.
@@ -8,22 +8,31 @@
8
8
  <style>
9
9
  :root {
10
10
  color-scheme: light;
11
- --bg: #f6f7f9;
11
+ --bg: #ffffff;
12
12
  --panel: #ffffff;
13
- --text: #15181e;
14
- --muted: #5c6470;
15
- --border: #d9dee7;
16
- --code-bg: #f0f3f7;
17
- --pass: #0b6b43;
18
- --pass-bg: #e5f5ed;
19
- --warn: #9a5b00;
20
- --warn-bg: #fff0d6;
21
- --fail: #a12828;
22
- --fail-bg: #fde7e7;
23
- --info: #285da1;
24
- --info-bg: #e7f0fb;
25
- --shadow: 0 1px 2px rgb(16 24 40 / 8%);
13
+ --surface: #fafafa;
14
+ --text: #18181b;
15
+ --muted: #6b7280;
16
+ --faint: #9ca3af;
17
+ --border: #d4d8e0;
18
+ --border-strong: #bcc2ce;
19
+ --code-bg: #f5f5f6;
20
+ --accent: #4f46e5;
21
+ --pass: #15803d;
22
+ --pass-bg: #f1faf4;
23
+ --pass-border: #cdead8;
24
+ --warn: #b45309;
25
+ --warn-bg: #fdf6ec;
26
+ --warn-border: #f3e0bf;
27
+ --fail: #b42318;
28
+ --fail-bg: #fef4f2;
29
+ --fail-border: #f5d2cc;
30
+ --info: #2563eb;
31
+ --info-bg: #f0f4ff;
32
+ --info-border: #d3e0fd;
33
+ --shadow: 0 1px 2px rgb(16 24 40 / 4%);
26
34
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
35
+ font-feature-settings: "cv05", "ss01";
27
36
  }
28
37
 
29
38
  * {
@@ -34,19 +43,24 @@
34
43
  margin: 0;
35
44
  background: var(--bg);
36
45
  color: var(--text);
37
- line-height: 1.5;
46
+ font-size: 15px;
47
+ line-height: 1.6;
48
+ -webkit-font-smoothing: antialiased;
49
+ text-rendering: optimizeLegibility;
38
50
  }
39
51
 
40
52
  main {
41
- width: min(1180px, calc(100% - 32px));
53
+ width: min(1120px, calc(100% - 48px));
42
54
  margin: 0 auto;
43
- padding: 32px 0 48px;
55
+ padding: 56px 0 80px;
44
56
  }
45
57
 
46
58
  header {
47
59
  display: grid;
48
- gap: 18px;
49
- margin-bottom: 22px;
60
+ gap: 16px;
61
+ border-bottom: 1px solid var(--border);
62
+ margin-bottom: 36px;
63
+ padding-bottom: 28px;
50
64
  }
51
65
 
52
66
  h1,
@@ -57,28 +71,33 @@
57
71
  }
58
72
 
59
73
  h1 {
60
- font-size: 32px;
61
- line-height: 1.15;
62
- letter-spacing: 0;
74
+ font-size: 30px;
75
+ font-weight: 680;
76
+ line-height: 1.2;
77
+ letter-spacing: -.021em;
63
78
  }
64
79
 
65
80
  h2 {
66
- font-size: 19px;
67
- line-height: 1.25;
68
- letter-spacing: 0;
81
+ font-size: 16px;
82
+ font-weight: 650;
83
+ line-height: 1.3;
84
+ letter-spacing: -.011em;
69
85
  }
70
86
 
71
87
  h3 {
72
- font-size: 15px;
88
+ color: var(--muted);
89
+ font-size: 12px;
90
+ font-weight: 600;
91
+ letter-spacing: .04em;
73
92
  line-height: 1.3;
74
- letter-spacing: 0;
93
+ text-transform: uppercase;
75
94
  }
76
95
 
77
96
  .eyebrow {
78
- color: var(--muted);
79
- font-size: 13px;
80
- font-weight: 700;
81
- letter-spacing: .08em;
97
+ color: var(--accent);
98
+ font-size: 12px;
99
+ font-weight: 600;
100
+ letter-spacing: .14em;
82
101
  text-transform: uppercase;
83
102
  }
84
103
 
@@ -102,7 +121,7 @@
102
121
 
103
122
  .grid {
104
123
  display: grid;
105
- gap: 12px;
124
+ gap: 14px;
106
125
  }
107
126
 
108
127
  .metrics {
@@ -119,49 +138,52 @@
119
138
  details {
120
139
  background: var(--panel);
121
140
  border: 1px solid var(--border);
122
- border-radius: 8px;
141
+ border-radius: 10px;
123
142
  box-shadow: var(--shadow);
124
143
  }
125
144
 
126
145
  section {
127
146
  display: grid;
128
- gap: 14px;
129
- margin-top: 24px;
147
+ gap: 16px;
148
+ margin-top: 44px;
130
149
  padding: 0;
131
150
  }
132
151
 
133
152
  .metric {
134
153
  min-width: 0;
135
- padding: 14px;
154
+ padding: 18px;
136
155
  }
137
156
 
138
157
  .metric-label {
139
158
  color: var(--muted);
140
- font-size: 12px;
141
- font-weight: 700;
159
+ font-size: 11px;
160
+ font-weight: 600;
161
+ letter-spacing: .07em;
142
162
  text-transform: uppercase;
143
163
  }
144
164
 
145
165
  .metric-value {
146
- font-size: 24px;
147
- font-weight: 760;
148
- line-height: 1.2;
149
- margin-top: 6px;
166
+ font-size: 27px;
167
+ font-weight: 680;
168
+ font-variant-numeric: tabular-nums;
169
+ letter-spacing: -.02em;
170
+ line-height: 1.15;
171
+ margin-top: 8px;
150
172
  overflow-wrap: anywhere;
151
173
  }
152
174
 
153
175
  .metric-detail {
154
176
  color: var(--muted);
155
- font-size: 12px;
156
- margin-top: 4px;
177
+ font-size: 12.5px;
178
+ margin-top: 5px;
157
179
  overflow-wrap: anywhere;
158
180
  }
159
181
 
160
182
  .bar {
161
- background: #e7ebf1;
183
+ background: #eceef1;
162
184
  border-radius: 999px;
163
- height: 8px;
164
- margin-top: 10px;
185
+ height: 6px;
186
+ margin-top: 14px;
165
187
  overflow: hidden;
166
188
  }
167
189
 
@@ -195,13 +217,16 @@
195
217
  }
196
218
 
197
219
  .pill {
198
- border-radius: 999px;
220
+ align-items: center;
221
+ border: 1px solid var(--border);
222
+ border-radius: 6px;
199
223
  display: inline-flex;
200
- font-size: 12px;
201
- font-weight: 760;
224
+ font-size: 11px;
225
+ font-weight: 600;
202
226
  gap: 6px;
227
+ letter-spacing: .03em;
203
228
  line-height: 1;
204
- padding: 7px 9px;
229
+ padding: 4px 8px;
205
230
  text-transform: uppercase;
206
231
  white-space: nowrap;
207
232
  }
@@ -234,6 +259,26 @@
234
259
  color: var(--info);
235
260
  }
236
261
 
262
+ .pill.pass {
263
+ border-color: var(--pass-border);
264
+ }
265
+
266
+ .pill.warn,
267
+ .pill.medium {
268
+ border-color: var(--warn-border);
269
+ }
270
+
271
+ .pill.fail,
272
+ .pill.critical,
273
+ .pill.high {
274
+ border-color: var(--fail-border);
275
+ }
276
+
277
+ .pill.low,
278
+ .pill.info {
279
+ border-color: var(--info-border);
280
+ }
281
+
237
282
  .muted,
238
283
  .empty {
239
284
  color: var(--muted);
@@ -241,13 +286,13 @@
241
286
 
242
287
  .table-wrap {
243
288
  overflow-x: auto;
244
- border-radius: 8px;
289
+ border-radius: 10px;
245
290
  box-shadow: var(--shadow);
246
291
  }
247
292
 
248
293
  table {
249
294
  border-collapse: collapse;
250
- font-size: 13px;
295
+ font-size: 13.5px;
251
296
  min-width: 720px;
252
297
  width: 100%;
253
298
  }
@@ -255,17 +300,25 @@
255
300
  th,
256
301
  td {
257
302
  border-bottom: 1px solid var(--border);
258
- padding: 10px;
303
+ padding: 12px 14px;
259
304
  text-align: left;
260
305
  vertical-align: top;
261
306
  }
262
307
 
263
- th {
308
+ thead th {
309
+ background: var(--surface);
310
+ border-bottom: 1px solid var(--border-strong);
264
311
  color: var(--muted);
265
- font-size: 12px;
312
+ font-size: 11px;
313
+ font-weight: 600;
314
+ letter-spacing: .05em;
266
315
  text-transform: uppercase;
267
316
  }
268
317
 
318
+ tbody tr:hover {
319
+ background: var(--surface);
320
+ }
321
+
269
322
  tr:last-child td {
270
323
  border-bottom: 0;
271
324
  }
@@ -273,20 +326,21 @@
273
326
  code,
274
327
  pre {
275
328
  background: var(--code-bg);
329
+ border: 1px solid var(--border);
276
330
  border-radius: 6px;
277
- font-family: "SFMono-Regular", Consolas, "Liberation Mono", monospace;
278
- font-size: 12px;
331
+ font-family: ui-monospace, "SF Mono", "SFMono-Regular", "JetBrains Mono", Menlo, Consolas, "Liberation Mono", monospace;
332
+ font-size: 12.5px;
279
333
  }
280
334
 
281
335
  code {
282
- padding: 2px 5px;
336
+ padding: 1.5px 5px;
283
337
  }
284
338
 
285
339
  pre {
286
- margin: 10px 0 0;
340
+ margin: 12px 0 0;
287
341
  max-height: 360px;
288
342
  overflow: auto;
289
- padding: 12px;
343
+ padding: 14px;
290
344
  white-space: pre-wrap;
291
345
  word-break: break-word;
292
346
  }
@@ -299,30 +353,33 @@
299
353
  .finding {
300
354
  display: grid;
301
355
  gap: 8px;
302
- padding: 14px;
356
+ padding: 18px;
303
357
  }
304
358
 
305
359
  .finding-title {
306
- font-weight: 760;
360
+ font-size: 15px;
361
+ font-weight: 650;
362
+ letter-spacing: -.006em;
307
363
  overflow-wrap: anywhere;
308
364
  }
309
365
 
310
366
  .detail-list {
311
367
  display: grid;
312
- gap: 8px;
313
- grid-template-columns: repeat(2, minmax(0, 1fr));
368
+ gap: 10px;
369
+ grid-template-columns: repeat(auto-fill, minmax(228px, 1fr));
314
370
  }
315
371
 
316
372
  .detail-item {
317
373
  border: 1px solid var(--border);
318
- border-radius: 8px;
319
- padding: 12px;
374
+ border-radius: 10px;
375
+ padding: 14px;
320
376
  }
321
377
 
322
378
  .detail-label {
323
379
  color: var(--muted);
324
- font-size: 12px;
325
- font-weight: 700;
380
+ font-size: 11px;
381
+ font-weight: 600;
382
+ letter-spacing: .06em;
326
383
  text-transform: uppercase;
327
384
  }
328
385
 
@@ -337,9 +394,9 @@
337
394
 
338
395
  summary {
339
396
  cursor: pointer;
340
- font-weight: 700;
397
+ font-weight: 600;
341
398
  list-style: none;
342
- padding: 14px;
399
+ padding: 16px;
343
400
  }
344
401
 
345
402
  summary::-webkit-details-marker {
@@ -348,7 +405,7 @@
348
405
 
349
406
  .command-body {
350
407
  border-top: 1px solid var(--border);
351
- padding: 0 14px 14px;
408
+ padding: 4px 16px 16px;
352
409
  }
353
410
 
354
411
  @media (max-width: 900px) {
@@ -367,8 +424,8 @@
367
424
  }
368
425
 
369
426
  main {
370
- width: min(100% - 20px, 1180px);
371
- padding-top: 20px;
427
+ width: min(100% - 24px, 1120px);
428
+ padding-top: 32px;
372
429
  }
373
430
  }
374
431
  </style>
@@ -595,10 +652,9 @@ built in 4.2s</pre>
595
652
  </div>
596
653
  </section>
597
654
 
598
- <div class="grid two-column">
599
- <section>
600
- <h2>Project Signals</h2>
601
- <div class="table-wrap">
655
+ <section>
656
+ <h2>Project Signals</h2>
657
+ <div class="table-wrap">
602
658
  <table>
603
659
  <thead>
604
660
  <tr><th>Ecosystem</th><th>Framework</th><th>Entrypoint</th><th>Manifest</th><th>Package manager</th><th>Task runner</th></tr>
@@ -608,10 +664,11 @@ built in 4.2s</pre>
608
664
  </tbody>
609
665
  </table>
610
666
  </div>
611
- </section>
612
- <section>
613
- <h2>Review Context</h2>
614
- <div class="detail-list">
667
+ </section>
668
+
669
+ <section>
670
+ <h2>Review Context</h2>
671
+ <div class="detail-list">
615
672
  <div class="detail-item">
616
673
  <div class="detail-label">Policy</div>
617
674
  <div class="detail-value">.patchdrill.yml (4 rules)</div>
@@ -641,8 +698,7 @@ built in 4.2s</pre>
641
698
  <div class="detail-value">@acme/web</div>
642
699
  </div>
643
700
  </div>
644
- </section>
645
- </div>
701
+ </section>
646
702
 
647
703
  <section>
648
704
  <h2>Dependency Changes</h2>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "patchdrill",
3
- "version": "0.1.0",
3
+ "version": "0.1.2",
4
4
  "description": "A deterministic proof layer for verifying AI-generated and human patches before merge.",
5
5
  "type": "module",
6
6
  "bin": {