axstack 0.36.1 → 0.38.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 (137) hide show
  1. package/README.md +5 -4
  2. package/bin/axstack.js +4 -18
  3. package/docs/getting-started.md +6 -6
  4. package/docs/host-operations.md +9 -5
  5. package/docs/installation.md +20 -41
  6. package/docs/workflows.md +12 -9
  7. package/package.json +1 -1
  8. package/profiles/presets/claude-only.json +3 -3
  9. package/profiles/presets/codex-only.json +3 -3
  10. package/profiles/presets/mixed.json +5 -4
  11. package/skills/axstack/references/automations.md +7 -2
  12. package/skills/axstack/references/lifecycle.md +2 -1
  13. package/skills/axstack/references/review-manager-prompt.md +44 -3
  14. package/skills/axstack/references/role-roster.md +13 -6
  15. package/skills/axstack/references/routing.md +2 -1
  16. package/skills/axstack/references/run-record.md +2 -0
  17. package/skills/axstack/references/ui-verification.md +6 -10
  18. package/skills/axstack-anatomy/ANATOMY.md +172 -0
  19. package/skills/axstack-anatomy/CHANGELOG.md +70 -0
  20. package/skills/axstack-anatomy/LICENSE +21 -0
  21. package/skills/axstack-anatomy/PROVENANCE.md +21 -0
  22. package/skills/axstack-anatomy/README.md +316 -0
  23. package/skills/axstack-anatomy/SKILL.md +74 -0
  24. package/skills/axstack-anatomy/SOURCE-PROOF.json +107 -0
  25. package/skills/axstack-anatomy/examples/arcade-cabinet/arcade-cabinet.css +44 -0
  26. package/skills/axstack-anatomy/examples/arcade-cabinet/build.mjs +714 -0
  27. package/skills/axstack-anatomy/examples/arcade-cabinet/live.js +597 -0
  28. package/skills/axstack-anatomy/examples/arcade-cabinet/parts.mjs +89 -0
  29. package/skills/axstack-anatomy/examples/arcade-cabinet/screen.mjs +114 -0
  30. package/skills/axstack-anatomy/examples/desk-computer/build.mjs +435 -0
  31. package/skills/axstack-anatomy/examples/dial-indicator/build.mjs +275 -0
  32. package/skills/axstack-anatomy/examples/raptor-engine/build.mjs +938 -0
  33. package/skills/axstack-anatomy/examples/raptor-engine/live.js +907 -0
  34. package/skills/axstack-anatomy/examples/raptor-engine/raptor.css +359 -0
  35. package/skills/axstack-anatomy/examples/ripple-tank/build.mjs +558 -0
  36. package/skills/axstack-anatomy/examples/ripple-tank/live.js +579 -0
  37. package/skills/axstack-anatomy/examples/ripple-tank/model.mjs +131 -0
  38. package/skills/axstack-anatomy/examples/ripple-tank/ripple.css +103 -0
  39. package/skills/axstack-anatomy/examples/spot-plate/art.tsx +110 -0
  40. package/skills/axstack-anatomy/examples/spot-plate/drops.ts +541 -0
  41. package/skills/axstack-anatomy/examples/spot-plate/fan.ts +84 -0
  42. package/skills/axstack-anatomy/examples/spot-plate/figure.tsx +25 -0
  43. package/skills/axstack-anatomy/examples/spot-plate/geometry.ts +280 -0
  44. package/skills/axstack-anatomy/examples/spot-plate/live.tsx +339 -0
  45. package/skills/axstack-anatomy/examples/spot-plate/rig.ts +230 -0
  46. package/skills/axstack-anatomy/examples/spot-plate/spot-plate.css +92 -0
  47. package/skills/axstack-anatomy/examples/test-rig/art.tsx +196 -0
  48. package/skills/axstack-anatomy/examples/test-rig/figure.tsx +23 -0
  49. package/skills/axstack-anatomy/examples/test-rig/geometry.ts +305 -0
  50. package/skills/axstack-anatomy/examples/test-rig/live.tsx +511 -0
  51. package/skills/axstack-anatomy/examples/test-rig/pose.ts +107 -0
  52. package/skills/axstack-anatomy/examples/test-rig/rig.ts +170 -0
  53. package/skills/axstack-anatomy/examples/test-rig/stretch.css +80 -0
  54. package/skills/axstack-anatomy/examples/test-rig/view.ts +99 -0
  55. package/skills/axstack-anatomy/examples/turning-dial/build.mjs +479 -0
  56. package/skills/axstack-anatomy/examples/turning-dial/dial.css +10 -0
  57. package/skills/axstack-anatomy/examples/turning-dial/live.js +342 -0
  58. package/skills/axstack-anatomy/examples/turning-dial/stress.mjs +269 -0
  59. package/skills/axstack-anatomy/kit/audit.mjs +1913 -0
  60. package/skills/axstack-anatomy/kit/canvas-painter.mjs +722 -0
  61. package/skills/axstack-anatomy/kit/gl-shared.mjs +184 -0
  62. package/skills/axstack-anatomy/kit/gl.mjs +184 -0
  63. package/skills/axstack-anatomy/kit/iso-kit.mjs +674 -0
  64. package/skills/axstack-anatomy/kit/iso-kit.ts +842 -0
  65. package/skills/axstack-anatomy/kit/iso.css +106 -0
  66. package/skills/axstack-anatomy/kit/lathe.mjs +1184 -0
  67. package/skills/axstack-anatomy/kit/react/draw.tsx +205 -0
  68. package/skills/axstack-anatomy/kit/react/live.tsx +140 -0
  69. package/skills/axstack-anatomy/kit/tube.mjs +306 -0
  70. package/skills/axstack-anatomy/kit/turn-audit.mjs +1096 -0
  71. package/skills/axstack-anatomy/kit/turn-build.mjs +1355 -0
  72. package/skills/axstack-anatomy/kit/turn-fixed.mjs +3800 -0
  73. package/skills/axstack-anatomy/kit/turn.mjs +3610 -0
  74. package/skills/axstack-anatomy/references/3d.md +352 -0
  75. package/skills/axstack-anatomy/references/craft.md +325 -0
  76. package/skills/axstack-anatomy/references/kit.md +419 -0
  77. package/skills/axstack-anatomy/references/motion.md +165 -0
  78. package/skills/axstack-anatomy/references/react.md +42 -0
  79. package/skills/axstack-anatomy/references/verify.md +351 -0
  80. package/skills/axstack-anatomy/references/walkthrough.md +75 -0
  81. package/skills/axstack-anatomy/references/webgl.md +473 -0
  82. package/skills/axstack-anatomy/scripts/audit-affine-bounds.test.mjs +54 -0
  83. package/skills/axstack-anatomy/scripts/audit-cache.test.mjs +37 -0
  84. package/skills/axstack-anatomy/scripts/audit-clearance-envelope.test.mjs +39 -0
  85. package/skills/axstack-anatomy/scripts/audit-empty-clipping.test.mjs +38 -0
  86. package/skills/axstack-anatomy/scripts/audit-order-convergence.test.mjs +55 -0
  87. package/skills/axstack-anatomy/scripts/audit-path-origin.test.mjs +26 -0
  88. package/skills/axstack-anatomy/scripts/audit-profile.test.mjs +41 -0
  89. package/skills/axstack-anatomy/scripts/audit-projection.test.mjs +36 -0
  90. package/skills/axstack-anatomy/scripts/audit-slide-clearance.test.mjs +58 -0
  91. package/skills/axstack-anatomy/scripts/audit-svg-attributes.test.mjs +46 -0
  92. package/skills/axstack-anatomy/scripts/audit-taper.test.mjs +29 -0
  93. package/skills/axstack-anatomy/scripts/capture-selector.test.mjs +131 -0
  94. package/skills/axstack-anatomy/scripts/capture.mjs +228 -0
  95. package/skills/axstack-anatomy/scripts/capture.test.mjs +42 -0
  96. package/skills/axstack-anatomy/scripts/chrome-port.mjs +36 -0
  97. package/skills/axstack-anatomy/scripts/chrome-startup.test.mjs +38 -0
  98. package/skills/axstack-anatomy/scripts/drive-actions.test.mjs +46 -0
  99. package/skills/axstack-anatomy/scripts/drive.mjs +302 -0
  100. package/skills/axstack-anatomy/scripts/drive.test.mjs +72 -0
  101. package/skills/axstack-anatomy/scripts/enter-key.test.mjs +38 -0
  102. package/skills/axstack-anatomy/scripts/fidelity-cut.test.mjs +54 -0
  103. package/skills/axstack-anatomy/scripts/fidelity-tube-coverage.test.mjs +40 -0
  104. package/skills/axstack-anatomy/scripts/inline-kit.mjs +26 -0
  105. package/skills/axstack-anatomy/scripts/line-ends.mjs +306 -0
  106. package/skills/axstack-anatomy/scripts/lines-arcs.test.mjs +50 -0
  107. package/skills/axstack-anatomy/scripts/lines-bezier.test.mjs +28 -0
  108. package/skills/axstack-anatomy/scripts/lines-round.test.mjs +56 -0
  109. package/skills/axstack-anatomy/scripts/lines-rounded-rect.test.mjs +32 -0
  110. package/skills/axstack-anatomy/scripts/lines.mjs +31 -0
  111. package/skills/axstack-anatomy/scripts/lines.test.mjs +38 -0
  112. package/skills/axstack-anatomy/scripts/navigation.test.mjs +55 -0
  113. package/skills/axstack-anatomy/scripts/orbit-sampling.test.mjs +50 -0
  114. package/skills/axstack-anatomy/scripts/react-dots-opacity.test.mjs +51 -0
  115. package/skills/axstack-anatomy/scripts/react-readout-first-write.test.mjs +37 -0
  116. package/skills/axstack-anatomy/scripts/react-solid-seamless.test.mjs +47 -0
  117. package/skills/axstack-anatomy/scripts/react-visibility-target.test.mjs +38 -0
  118. package/skills/axstack-anatomy/scripts/turn-bench.mjs +74 -0
  119. package/skills/axstack-anatomy/scripts/turn-check.mjs +641 -0
  120. package/skills/axstack-anatomy/scripts/turn-fidelity.mjs +413 -0
  121. package/skills/axstack-anatomy/scripts/turn-group-reference.test.mjs +40 -0
  122. package/skills/axstack-anatomy/scripts/turn-split-owner.test.mjs +62 -0
  123. package/skills/axstack-anatomy/theme.js +56 -0
  124. package/skills/axstack-explain/SKILL.md +28 -15
  125. package/skills/axstack-explain/references/delivery.md +22 -0
  126. package/skills/{axstack-diagram → axstack-explain}/references/fidelity.md +1 -7
  127. package/skills/axstack-explain/references/inline-pages.md +8 -8
  128. package/skills/axstack-explain/references/visual-qa.md +3 -5
  129. package/skills/axstack-explain/references/whiteboard-defense.md +59 -0
  130. package/skills/axstack-research/SKILL.md +18 -6
  131. package/src/archify-legacy.js +70 -0
  132. package/src/capabilities.js +1 -29
  133. package/src/installer.js +11 -31
  134. package/skills/axstack-diagram/SKILL.md +0 -28
  135. package/skills/axstack-diagram/references/archify.md +0 -76
  136. package/src/archify-pin.js +0 -5
  137. package/src/archify.js +0 -151
@@ -0,0 +1,359 @@
1
+ .rp {
2
+ --rp-blend: screen;
3
+ --rp-button-hover: #232323;
4
+ --rp-button-ring: #ffffff14;
5
+ --rp-part-ring: #ffffff10;
6
+ --rp-part-hover: #ffffff0a;
7
+ --rp-lamp-off: #4a4a4a;
8
+ --rp-lamp-on: #ff8a3c;
9
+ --rp-lamp-glow: #ff7a2a88;
10
+ --rp-lamp-armed: #ffcf6a;
11
+ --rp-rim: #ffb46e;
12
+ --rp-rim-soft: #ff8a3c;
13
+ --rp-rim-soft-share: 0.45;
14
+ --rp-flash-0: #fff4e6;
15
+ --rp-flash-1: #ffd2a066;
16
+ --rp-flash-2: #ff9a5a22;
17
+ --rp-flash-3: #ff9a5a00;
18
+ --rp-deck-0: #ffcf98;
19
+ --rp-deck-1: #ff8a3abf;
20
+ --rp-deck-2: #b34a1247;
21
+ --rp-deck-3: #5a220800;
22
+ --rp-deck-share: 1;
23
+ }
24
+
25
+ [data-theme="light"] .rp {
26
+ --rp-blend: normal;
27
+ --rp-button-hover: #f0f0ed;
28
+ --rp-button-ring: #0000001a;
29
+ --rp-part-ring: #00000014;
30
+ --rp-part-hover: #0000000a;
31
+ --rp-lamp-off: #c4c4c4;
32
+ --rp-lamp-on: #d9480f;
33
+ --rp-lamp-glow: #d9480f55;
34
+ --rp-lamp-armed: #c99400;
35
+ --rp-rim: #c2410c;
36
+ --rp-rim-soft: #ea580c;
37
+ --rp-rim-soft-share: 0.25;
38
+ --rp-flash-0: #ffd9b0;
39
+ --rp-flash-1: #ffb07a44;
40
+ --rp-flash-2: #ff8a4a14;
41
+ --rp-flash-3: #ff8a4a00;
42
+ --rp-deck-0: #c2410c;
43
+ --rp-deck-1: #ea580c8c;
44
+ --rp-deck-2: #f9731633;
45
+ --rp-deck-3: #f9731600;
46
+ --rp-deck-share: 0.45;
47
+ }
48
+
49
+ .rp .iso-plate {
50
+ padding: 52px 24px 64px;
51
+ overflow: hidden;
52
+ }
53
+
54
+ .rp-stage {
55
+ position: relative;
56
+ border-radius: 10px;
57
+ touch-action: pan-y;
58
+ -webkit-tap-highlight-color: transparent;
59
+ user-select: none;
60
+ -webkit-user-select: none;
61
+ will-change: transform;
62
+ }
63
+
64
+ .rp-stage:focus-visible {
65
+ outline: 1px solid var(--anatomy-muted);
66
+ outline-offset: 6px;
67
+ }
68
+
69
+ .rp-stage > svg,
70
+ .rp-stage > canvas,
71
+ .rp-stage > div {
72
+ display: block;
73
+ width: 100%;
74
+ height: auto;
75
+ }
76
+
77
+ .rp-front,
78
+ .rp-plume,
79
+ .rp-glow,
80
+ .rp-veil,
81
+ .rp-flash {
82
+ position: absolute;
83
+ inset: 0;
84
+ height: 100% !important;
85
+ }
86
+
87
+ .rp-plume,
88
+ .rp-glow,
89
+ .rp-veil,
90
+ .rp-flash {
91
+ pointer-events: none;
92
+ }
93
+
94
+ .rp-plume,
95
+ .rp-glow,
96
+ .rp-veil {
97
+ mix-blend-mode: var(--rp-blend);
98
+ }
99
+
100
+ .rp-glow {
101
+ overflow: visible;
102
+ }
103
+
104
+ .rp-front {
105
+ pointer-events: none;
106
+ overflow: visible;
107
+ }
108
+
109
+ .rp-front .it {
110
+ pointer-events: visiblePainted;
111
+ }
112
+
113
+ .rp-flash {
114
+ opacity: 0;
115
+ mix-blend-mode: var(--rp-blend);
116
+ background: radial-gradient(circle closest-side at var(--gx) var(--gy), var(--rp-flash-0) 0%, var(--rp-flash-1) 24%, var(--rp-flash-2) 56%, var(--rp-flash-3) 100%);
117
+ }
118
+
119
+ .rp-shadow {
120
+ opacity: 0.45;
121
+ }
122
+
123
+ .tb-body {
124
+ fill: var(--anatomy-shade-2);
125
+ stroke: none;
126
+ }
127
+
128
+ .tb-shine {
129
+ fill: var(--anatomy-top);
130
+ stroke: none;
131
+ }
132
+
133
+ .tb-shade {
134
+ fill: var(--anatomy-shade-0);
135
+ stroke: none;
136
+ }
137
+
138
+ .rp-stage[data-focus] .it:not([data-on]):not([data-piece="stand"]) {
139
+ --anatomy-hi: var(--anatomy-mid);
140
+ --anatomy-mid: var(--anatomy-lo);
141
+ }
142
+
143
+ .rp-stage[data-focus] .it[data-piece="stand"] {
144
+ --anatomy-mid: var(--anatomy-lo);
145
+ }
146
+
147
+ .it[data-on] {
148
+ --anatomy-hi: var(--anatomy-lit);
149
+ --anatomy-mid: var(--anatomy-hi);
150
+ }
151
+
152
+ .it[data-on] .iso-top,
153
+ .it[data-on] .tb-shine {
154
+ fill: var(--anatomy-lit-top);
155
+ }
156
+
157
+ .it[data-on] .iso-shade,
158
+ .it[data-on] .tb-body {
159
+ fill: var(--anatomy-lit-shade);
160
+ }
161
+
162
+ .it[data-on] [data-seamless] > .iso-shade {
163
+ stroke: var(--anatomy-lit-shade);
164
+ }
165
+
166
+ .it[data-on] [data-seamless] > .iso-top {
167
+ stroke: var(--anatomy-lit-top);
168
+ }
169
+
170
+ .rp-controls {
171
+ position: absolute;
172
+ left: 20px;
173
+ bottom: 16px;
174
+ display: flex;
175
+ align-items: center;
176
+ gap: 14px;
177
+ font-family: var(--anatomy-mono);
178
+ font-size: 10.5px;
179
+ letter-spacing: 0.1em;
180
+ text-transform: uppercase;
181
+ color: var(--anatomy-muted);
182
+ }
183
+
184
+ .rp-fire {
185
+ display: inline-flex;
186
+ align-items: center;
187
+ gap: 8px;
188
+ height: 28px;
189
+ padding: 0 13px 0 11px;
190
+ border: 0;
191
+ border-radius: 999px;
192
+ background: var(--anatomy-face);
193
+ color: var(--anatomy-strong);
194
+ font: inherit;
195
+ letter-spacing: 0.12em;
196
+ text-transform: uppercase;
197
+ cursor: pointer;
198
+ box-shadow: inset 0 0 0 1px var(--rp-button-ring);
199
+ transition: background 200ms var(--anatomy-ease), color 200ms var(--anatomy-ease), transform 160ms var(--anatomy-ease);
200
+ }
201
+
202
+ .rp-fire:hover {
203
+ background: var(--rp-button-hover);
204
+ }
205
+
206
+ .rp-fire:active {
207
+ transform: scale(0.97);
208
+ }
209
+
210
+ .rp-fire:focus-visible {
211
+ outline: 1px solid var(--anatomy-muted);
212
+ outline-offset: 3px;
213
+ }
214
+
215
+ .rp-lamp {
216
+ width: 7px;
217
+ height: 7px;
218
+ border-radius: 50%;
219
+ background: var(--rp-lamp-off);
220
+ box-shadow: 0 0 0 0 transparent;
221
+ transition: background 240ms var(--anatomy-ease), box-shadow 240ms var(--anatomy-ease);
222
+ }
223
+
224
+ .rp-fire[data-state="on"] .rp-lamp {
225
+ background: var(--rp-lamp-on);
226
+ box-shadow: 0 0 10px 2px var(--rp-lamp-glow);
227
+ }
228
+
229
+ .rp-fire[data-state="armed"] .rp-lamp {
230
+ background: var(--rp-lamp-armed);
231
+ box-shadow: 0 0 8px 1px var(--rp-lamp-glow);
232
+ }
233
+
234
+ .rp-parts {
235
+ display: flex;
236
+ flex-wrap: wrap;
237
+ gap: 6px;
238
+ margin-bottom: 6px;
239
+ }
240
+
241
+ .rp-part {
242
+ display: inline-flex;
243
+ align-items: baseline;
244
+ gap: 7px;
245
+ padding: 5px 10px;
246
+ border: 0;
247
+ border-radius: 999px;
248
+ background: transparent;
249
+ color: var(--anatomy-muted);
250
+ font: 12.5px/1.3 ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
251
+ cursor: pointer;
252
+ box-shadow: inset 0 0 0 1px var(--rp-part-ring);
253
+ transition: color 160ms var(--anatomy-ease), background 160ms var(--anatomy-ease);
254
+ }
255
+
256
+ .rp-part:hover,
257
+ .rp-part:focus-visible,
258
+ .rp-part[data-on] {
259
+ color: var(--anatomy-strong);
260
+ background: var(--rp-part-hover);
261
+ outline: none;
262
+ }
263
+
264
+ .rp-num {
265
+ font-family: var(--anatomy-mono);
266
+ font-size: 10px;
267
+ color: var(--anatomy-muted);
268
+ }
269
+
270
+ @media (max-width: 640px) {
271
+ .rp .iso-plate {
272
+ padding: 48px 8px 88px;
273
+ }
274
+
275
+ .rp .iso-plate-corner[data-corner="readout"] {
276
+ bottom: 46px;
277
+ right: 0;
278
+ max-width: 100%;
279
+ overflow: hidden;
280
+ text-overflow: ellipsis;
281
+ }
282
+
283
+ .rp-stage[data-focus] ~ .rp-controls .rp-hint {
284
+ visibility: hidden;
285
+ }
286
+
287
+ .rp-controls {
288
+ left: 14px;
289
+ bottom: 14px;
290
+ gap: 10px;
291
+ max-width: calc(100% - 28px);
292
+ flex-wrap: wrap;
293
+ }
294
+
295
+ .rp-hint {
296
+ font-size: 9.5px;
297
+ letter-spacing: 0.06em;
298
+ line-height: 1.3;
299
+ }
300
+ }
301
+
302
+ @media (prefers-reduced-motion: reduce) {
303
+ .rp * {
304
+ transition: none !important;
305
+ }
306
+ }
307
+
308
+ .rp-live {
309
+ position: absolute;
310
+ width: 1px;
311
+ height: 1px;
312
+ overflow: hidden;
313
+ clip-path: inset(50%);
314
+ white-space: nowrap;
315
+ }
316
+
317
+ .rp-rim {
318
+ fill: none;
319
+ stroke: var(--rp-rim);
320
+ stroke-width: 1.3;
321
+ stroke-linecap: round;
322
+ opacity: var(--rim, 0);
323
+ pointer-events: none;
324
+ }
325
+
326
+ .iso-svg .rp-rim-soft {
327
+ stroke: var(--rp-rim-soft);
328
+ stroke-width: 7;
329
+ vector-effect: none;
330
+ filter: blur(4px);
331
+ opacity: calc(var(--rim, 0) * var(--rp-rim-soft-share));
332
+ }
333
+
334
+ .rp-deckglow {
335
+ opacity: calc(var(--deck-glow, 0) * var(--rp-deck-share));
336
+ mix-blend-mode: var(--rp-blend);
337
+ pointer-events: none;
338
+ }
339
+
340
+ .rp-stop-0 {
341
+ stop-color: var(--rp-deck-0);
342
+ }
343
+
344
+ .rp-stop-1 {
345
+ stop-color: var(--rp-deck-1);
346
+ }
347
+
348
+ .rp-stop-2 {
349
+ stop-color: var(--rp-deck-2);
350
+ }
351
+
352
+ .rp-stop-3 {
353
+ stop-color: var(--rp-deck-3);
354
+ }
355
+
356
+ .rp-void {
357
+ fill: var(--anatomy-shade-0);
358
+ stroke: none;
359
+ }