@grainulation/wheat 1.0.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 (40) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +136 -0
  3. package/bin/wheat.js +193 -0
  4. package/compiler/detect-sprints.js +319 -0
  5. package/compiler/generate-manifest.js +280 -0
  6. package/compiler/wheat-compiler.js +1229 -0
  7. package/lib/compiler.js +35 -0
  8. package/lib/connect.js +418 -0
  9. package/lib/disconnect.js +188 -0
  10. package/lib/guard.js +151 -0
  11. package/lib/index.js +14 -0
  12. package/lib/init.js +457 -0
  13. package/lib/install-prompt.js +186 -0
  14. package/lib/quickstart.js +276 -0
  15. package/lib/serve-mcp.js +509 -0
  16. package/lib/server.js +391 -0
  17. package/lib/stats.js +184 -0
  18. package/lib/status.js +135 -0
  19. package/lib/update.js +71 -0
  20. package/package.json +53 -0
  21. package/public/index.html +1798 -0
  22. package/templates/claude.md +122 -0
  23. package/templates/commands/blind-spot.md +47 -0
  24. package/templates/commands/brief.md +73 -0
  25. package/templates/commands/calibrate.md +39 -0
  26. package/templates/commands/challenge.md +72 -0
  27. package/templates/commands/connect.md +104 -0
  28. package/templates/commands/evaluate.md +80 -0
  29. package/templates/commands/feedback.md +60 -0
  30. package/templates/commands/handoff.md +53 -0
  31. package/templates/commands/init.md +68 -0
  32. package/templates/commands/merge.md +51 -0
  33. package/templates/commands/present.md +52 -0
  34. package/templates/commands/prototype.md +68 -0
  35. package/templates/commands/replay.md +61 -0
  36. package/templates/commands/research.md +73 -0
  37. package/templates/commands/resolve.md +42 -0
  38. package/templates/commands/status.md +56 -0
  39. package/templates/commands/witness.md +79 -0
  40. package/templates/explainer.html +343 -0
@@ -0,0 +1,343 @@
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.0">
6
+ <title>{{TITLE}}</title>
7
+ <style>
8
+ /* System font stack — no external dependencies (see r022) */
9
+
10
+ :root {
11
+ --bg-dark: #0f172a;
12
+ --bg-card: #1e293b;
13
+ --bg-card-hover: #263548;
14
+ --accent: #3b82f6;
15
+ --accent-light: #60a5fa;
16
+ --green: #22c55e;
17
+ --green-dim: rgba(34,197,94,0.12);
18
+ --orange: #f59e0b;
19
+ --orange-dim: rgba(245,158,11,0.12);
20
+ --red: #e11d48;
21
+ --red-dim: rgba(225,29,72,0.12);
22
+ --purple: #a78bfa;
23
+ --purple-dim: rgba(167,139,250,0.12);
24
+ --pink: #f472b6;
25
+ --pink-dim: rgba(244,114,182,0.12);
26
+ --text: #f1f5f9;
27
+ --text-muted: #94a3b8;
28
+ --text-dim: #64748b;
29
+ }
30
+
31
+ * { margin: 0; padding: 0; box-sizing: border-box; }
32
+
33
+ html, body {
34
+ height: 100%;
35
+ margin: 0;
36
+ scroll-behavior: smooth;
37
+ }
38
+
39
+ html {
40
+ overflow-y: scroll;
41
+ scroll-snap-type: y mandatory;
42
+ }
43
+
44
+ body {
45
+ font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Inter', sans-serif;
46
+ background: var(--bg-dark);
47
+ color: var(--text);
48
+ font-size: 11pt;
49
+ line-height: 1.5;
50
+ -webkit-font-smoothing: antialiased;
51
+ overflow-y: scroll;
52
+ scroll-snap-type: y mandatory;
53
+ }
54
+
55
+ .slide {
56
+ width: 100%;
57
+ height: 100vh;
58
+ padding: 60px 80px;
59
+ display: flex;
60
+ flex-direction: column;
61
+ justify-content: center;
62
+ position: relative;
63
+ overflow: hidden;
64
+ scroll-snap-align: start;
65
+ }
66
+
67
+ .slide::before {
68
+ content: '';
69
+ position: absolute;
70
+ top: 0;
71
+ right: 0;
72
+ width: 40%;
73
+ height: 100%;
74
+ background: radial-gradient(ellipse at top right, rgba(59,130,246,0.08) 0%, transparent 70%);
75
+ pointer-events: none;
76
+ }
77
+
78
+ h1 {
79
+ font-size: 42pt;
80
+ font-weight: 800;
81
+ letter-spacing: -0.03em;
82
+ line-height: 1.1;
83
+ margin-bottom: 16px;
84
+ background: linear-gradient(135deg, #fff 0%, #94a3b8 100%);
85
+ -webkit-background-clip: text;
86
+ -webkit-text-fill-color: transparent;
87
+ }
88
+
89
+ h2 {
90
+ font-size: 32pt;
91
+ font-weight: 700;
92
+ letter-spacing: -0.02em;
93
+ line-height: 1.15;
94
+ margin-bottom: 24px;
95
+ color: #fff;
96
+ }
97
+
98
+ h3 {
99
+ font-size: 14pt;
100
+ font-weight: 600;
101
+ color: var(--accent-light);
102
+ margin-bottom: 12px;
103
+ text-transform: uppercase;
104
+ letter-spacing: 0.08em;
105
+ }
106
+
107
+ h4 {
108
+ font-size: 13pt;
109
+ font-weight: 600;
110
+ color: var(--text);
111
+ margin-bottom: 8px;
112
+ }
113
+
114
+ p {
115
+ font-size: 14pt;
116
+ color: var(--text-muted);
117
+ line-height: 1.6;
118
+ margin-bottom: 12px;
119
+ text-align: left;
120
+ font-weight: 400;
121
+ max-width: 85%;
122
+ }
123
+
124
+ .subtitle {
125
+ font-size: 18pt;
126
+ color: var(--text-muted);
127
+ font-weight: 300;
128
+ max-width: 70%;
129
+ }
130
+
131
+ .label {
132
+ display: inline-block;
133
+ font-size: 9pt;
134
+ font-weight: 600;
135
+ letter-spacing: 0.12em;
136
+ text-transform: uppercase;
137
+ color: var(--accent-light);
138
+ background: rgba(59,130,246,0.12);
139
+ padding: 4px 12px;
140
+ border-radius: 4px;
141
+ margin-bottom: 16px;
142
+ }
143
+
144
+ .label.green { color: var(--green); background: var(--green-dim); }
145
+ .label.orange { color: var(--orange); background: var(--orange-dim); }
146
+ .label.red { color: var(--red); background: var(--red-dim); }
147
+ .label.purple { color: var(--purple); background: var(--purple-dim); }
148
+ .label.pink { color: var(--pink); background: var(--pink-dim); }
149
+
150
+ .divider {
151
+ width: 60px;
152
+ height: 3px;
153
+ background: var(--accent);
154
+ border-radius: 2px;
155
+ margin: 16px 0 24px 0;
156
+ }
157
+
158
+ .two-col {
159
+ display: flex;
160
+ gap: 60px;
161
+ align-items: flex-start;
162
+ }
163
+
164
+ .two-col > div { flex: 1; }
165
+
166
+ .three-col {
167
+ display: flex;
168
+ gap: 24px;
169
+ align-items: stretch;
170
+ }
171
+
172
+ .three-col > div { flex: 1; }
173
+
174
+ .card {
175
+ background: var(--bg-card);
176
+ border-radius: 16px;
177
+ padding: 32px;
178
+ border: 1px solid rgba(255,255,255,0.06);
179
+ position: relative;
180
+ overflow: hidden;
181
+ }
182
+
183
+ .card::after {
184
+ content: '';
185
+ position: absolute;
186
+ top: 0;
187
+ left: 0;
188
+ width: 4px;
189
+ height: 100%;
190
+ background: var(--accent);
191
+ border-radius: 4px 0 0 4px;
192
+ }
193
+
194
+ .card.green::after { background: var(--green); }
195
+ .card.orange::after { background: var(--orange); }
196
+ .card.red::after { background: var(--red); }
197
+ .card.purple::after { background: var(--purple); }
198
+ .card.pink::after { background: var(--pink); }
199
+
200
+ .card-label {
201
+ font-size: 9pt;
202
+ font-weight: 600;
203
+ text-transform: uppercase;
204
+ letter-spacing: 0.1em;
205
+ color: var(--accent-light);
206
+ margin-bottom: 8px;
207
+ }
208
+
209
+ .card.green .card-label { color: var(--green); }
210
+ .card.orange .card-label { color: var(--orange); }
211
+ .card.red .card-label { color: var(--red); }
212
+ .card.purple .card-label { color: var(--purple); }
213
+
214
+ .card-text {
215
+ font-size: 16pt;
216
+ color: var(--text);
217
+ line-height: 1.5;
218
+ font-weight: 500;
219
+ }
220
+
221
+ .card-detail {
222
+ font-size: 12pt;
223
+ color: var(--text-muted);
224
+ line-height: 1.5;
225
+ margin-top: 12px;
226
+ }
227
+
228
+ table {
229
+ width: 100%;
230
+ border-collapse: collapse;
231
+ margin: 16px 0;
232
+ font-size: 11pt;
233
+ }
234
+
235
+ th {
236
+ text-align: left;
237
+ padding: 10px 16px;
238
+ background: var(--bg-card);
239
+ color: var(--accent-light);
240
+ font-weight: 600;
241
+ font-size: 9pt;
242
+ text-transform: uppercase;
243
+ letter-spacing: 0.08em;
244
+ border-bottom: 2px solid rgba(59,130,246,0.3);
245
+ }
246
+
247
+ td {
248
+ padding: 10px 16px;
249
+ border-bottom: 1px solid rgba(255,255,255,0.06);
250
+ color: var(--text-muted);
251
+ }
252
+
253
+ tr:hover td {
254
+ background: rgba(255,255,255,0.02);
255
+ }
256
+
257
+ .claim-ref {
258
+ font-size: 8pt;
259
+ color: var(--text-dim);
260
+ font-family: monospace;
261
+ }
262
+
263
+ .slide-nav {
264
+ position: fixed;
265
+ right: 24px;
266
+ top: 50%;
267
+ transform: translateY(-50%);
268
+ display: flex;
269
+ flex-direction: column;
270
+ gap: 8px;
271
+ z-index: 100;
272
+ }
273
+
274
+ .slide-nav a {
275
+ width: 8px;
276
+ height: 8px;
277
+ border-radius: 50%;
278
+ background: var(--text-dim);
279
+ display: block;
280
+ transition: all 0.2s;
281
+ }
282
+
283
+ .slide-nav a:hover,
284
+ .slide-nav a.active {
285
+ background: var(--accent);
286
+ transform: scale(1.5);
287
+ }
288
+
289
+ @keyframes fadeInUp {
290
+ from { transform: translateY(20px); opacity: 0; }
291
+ to { transform: translateY(0); opacity: 1; }
292
+ }
293
+
294
+ .fade-in {
295
+ animation: fadeInUp 0.6s ease-out forwards;
296
+ }
297
+
298
+ /* Wheat branding */
299
+ .wheat-footer {
300
+ position: absolute;
301
+ bottom: 24px;
302
+ right: 40px;
303
+ font-size: 8pt;
304
+ color: var(--text-dim);
305
+ letter-spacing: 0.05em;
306
+ }
307
+
308
+ /* Mobile responsive */
309
+ @media (max-width: 768px) {
310
+ .slide { padding: 32px 20px; height: auto; min-height: 100vh; }
311
+ h1 { font-size: 24pt; }
312
+ h2 { font-size: 20pt; }
313
+ h3 { font-size: 12pt; }
314
+ p, .subtitle { font-size: 12pt; max-width: 100%; }
315
+ .two-col, .three-col { flex-direction: column; gap: 20px; }
316
+ .card { padding: 20px; }
317
+ .card-text { font-size: 13pt; }
318
+ .card-detail { font-size: 11pt; }
319
+ .slide-nav { display: none; }
320
+ .wheat-footer { right: 20px; bottom: 16px; }
321
+ table { font-size: 9pt; }
322
+ th, td { padding: 6px 10px; }
323
+ }
324
+ </style>
325
+ </head>
326
+ <body>
327
+
328
+ <!-- TEMPLATE: Replace slide content below with your research findings -->
329
+ <!-- Each .slide div becomes a full-screen scroll-snap section -->
330
+
331
+ <div class="slide">
332
+ <span class="label">Wheat Research Sprint</span>
333
+ <h1>{{TITLE}}</h1>
334
+ <p class="subtitle">{{SUBTITLE}}</p>
335
+ <div class="wheat-footer">Compiled by Wheat</div>
336
+ </div>
337
+
338
+ <!-- Add more slides as needed -->
339
+ <!-- Use .card, .two-col, .three-col, table, .label for layout -->
340
+ <!-- Reference claims with <span class="claim-ref">[r001]</span> -->
341
+
342
+ </body>
343
+ </html>