@orkestrel/scaffold 0.0.81 → 0.0.82
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.
- package/dist/bin/main.js +167 -13
- package/dist/bin/main.js.map +1 -1
- package/dist/host/AGENTS.md +5 -3
- package/dist/host/agents/skills/orkestrel-harden/references/centralization.md +2 -2
- package/dist/host/agents/skills/orkestrel-journey/SKILL.md +41 -38
- package/dist/host/agents/skills/orkestrel-journey/references/captures.md +3 -3
- package/dist/host/agents/skills/orkestrel-journey/references/decide.md +3 -3
- package/dist/host/agents/skills/orkestrel-journey/references/layer.md +5 -5
- package/dist/host/agents/skills/orkestrel-journey/references/statechart.md +3 -3
- package/dist/host/agents/skills/orkestrel-journey/references/styles.md +9 -9
- package/dist/host/claude/rules/application.md +20 -6
- package/dist/host/claude/rules/architecture.md +2 -2
- package/dist/host/claude/rules/browser.md +9 -0
- package/dist/host/claude/rules/documentation.md +2 -1
- package/dist/host/claude/rules/styles.md +35 -12
- package/dist/host/claude/rules/tests.md +15 -10
- package/dist/host/claude/rules/workspace.md +128 -98
- package/dist/host/claude/skills/orkestrel-journey/SKILL.md +1 -1
- package/dist/host/configs/helpers.ts +157 -9
- package/dist/host/configs/policy.ts +64 -61
- package/dist/host/dotfiles/oxlintrc.json +132 -16
- package/dist/host/dotfiles/prettierignore +1 -1
- package/dist/host/guides/README.md +9 -5
- package/dist/host/guides/scaffold.md +475 -115
- package/dist/host/manifest.json +26 -26
- package/dist/host/tests/config.test.ts +996 -39
- package/dist/host/tests/policy.test.ts +11 -0
- package/dist/host/tests/setupPolicy.ts +396 -22
- package/dist/src/core/index.cjs +1261 -159
- package/dist/src/core/index.cjs.map +1 -1
- package/dist/src/core/index.d.cts +297 -35
- package/dist/src/core/index.d.ts +297 -35
- package/dist/src/core/index.js +1241 -160
- package/dist/src/core/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -132,16 +132,20 @@
|
|
|
132
132
|
"error",
|
|
133
133
|
{
|
|
134
134
|
"patterns": [
|
|
135
|
+
{
|
|
136
|
+
"regex": "^(?:@(?:src|app)/vue(?:[/?#]|$)|@orkestrel/[^/]+/vue(?:[/?#]|$)|(?:\\.\\./)+(?:vue|src/vue|app/vue)(?:[/?#]|$))",
|
|
137
|
+
"message": "src/core must not depend on Vue extension modules"
|
|
138
|
+
},
|
|
135
139
|
{
|
|
136
140
|
"regex": "^(?:/|[A-Za-z]:[\\\\/])",
|
|
137
141
|
"message": "imports must not use machine-specific absolute paths"
|
|
138
142
|
},
|
|
139
143
|
{
|
|
140
|
-
"regex": "^(
|
|
144
|
+
"regex": "^(?:[A-Za-mo-z][A-Za-z0-9+.-]*|n(?:[A-Za-np-z0-9+.-][A-Za-z0-9+.-]*)?|no(?:[A-Za-ce-z0-9+.-][A-Za-z0-9+.-]*)?|nod(?:[A-Za-df-z0-9+.-][A-Za-z0-9+.-]*)?|node[A-Za-z0-9+.-]+):",
|
|
141
145
|
"message": "imports must not use non-Node URL schemes"
|
|
142
146
|
},
|
|
143
147
|
{
|
|
144
|
-
"regex": "(?:^|/)(
|
|
148
|
+
"regex": "(?:^|/)(?:[^/.][^/]*|\\.[^/.][^/]*|\\.\\.[^/]+)/\\.{1,2}(?:/|$)",
|
|
145
149
|
"message": "internal import paths must not contain noncanonical dot segments"
|
|
146
150
|
},
|
|
147
151
|
{
|
|
@@ -180,16 +184,20 @@
|
|
|
180
184
|
"error",
|
|
181
185
|
{
|
|
182
186
|
"patterns": [
|
|
187
|
+
{
|
|
188
|
+
"regex": "^(?:(?:vue|vite)(?:[/?#]|$)|@(?:vue|vitejs)/|@(?:src|app)/vue(?:[/?#]|$)|@orkestrel/[^/]+/vue(?:[/?#]|$)|(?:\\.\\./)+(?:vue|src/vue|app/vue)(?:[/?#]|$))",
|
|
189
|
+
"message": "src/browser must not depend on Vue extension modules"
|
|
190
|
+
},
|
|
183
191
|
{
|
|
184
192
|
"regex": "^(?:/|[A-Za-z]:[\\\\/])",
|
|
185
193
|
"message": "imports must not use machine-specific absolute paths"
|
|
186
194
|
},
|
|
187
195
|
{
|
|
188
|
-
"regex": "^(
|
|
196
|
+
"regex": "^(?:[A-Za-mo-z][A-Za-z0-9+.-]*|n(?:[A-Za-np-z0-9+.-][A-Za-z0-9+.-]*)?|no(?:[A-Za-ce-z0-9+.-][A-Za-z0-9+.-]*)?|nod(?:[A-Za-df-z0-9+.-][A-Za-z0-9+.-]*)?|node[A-Za-z0-9+.-]+):",
|
|
189
197
|
"message": "imports must not use non-Node URL schemes"
|
|
190
198
|
},
|
|
191
199
|
{
|
|
192
|
-
"regex": "(?:^|/)(
|
|
200
|
+
"regex": "(?:^|/)(?:[^/.][^/]*|\\.[^/.][^/]*|\\.\\.[^/]+)/\\.{1,2}(?:/|$)",
|
|
193
201
|
"message": "internal import paths must not contain noncanonical dot segments"
|
|
194
202
|
},
|
|
195
203
|
{
|
|
@@ -217,6 +225,54 @@
|
|
|
217
225
|
]
|
|
218
226
|
}
|
|
219
227
|
},
|
|
228
|
+
{
|
|
229
|
+
"files": ["src/vue/**/*.{cjs,cts,js,jsx,mjs,mts,ts,tsx,vue}"],
|
|
230
|
+
"rules": {
|
|
231
|
+
"no-restricted-imports": [
|
|
232
|
+
"error",
|
|
233
|
+
{
|
|
234
|
+
"patterns": [
|
|
235
|
+
{
|
|
236
|
+
"regex": "^(?:@src/(?:|[^/?#cbv][^/?#]*|c|c[^/?#o][^/?#]*|co|co[^/?#r][^/?#]*|cor|cor[^/?#e][^/?#]*|core[^/?#][^/?#]*|b|b[^/?#r][^/?#]*|br|br[^/?#o][^/?#]*|bro|bro[^/?#w][^/?#]*|brow|brow[^/?#s][^/?#]*|brows|brows[^/?#e][^/?#]*|browse|browse[^/?#r][^/?#]*|browser[^/?#][^/?#]*|v|v[^/?#u][^/?#]*|vu|vu[^/?#e][^/?#]*|vue[^/?#][^/?#]*)(?:[/?#]|$)|(?:\\.\\./)+(?:src/)?(?:[^/.scbv][^/.]*|s|s[^/.r][^/.]*|sr|sr[^/.c][^/.]*|src[^/.][^/.]*|c|c[^/.o][^/.]*|co|co[^/.r][^/.]*|cor|cor[^/.e][^/.]*|core[^/.][^/.]*|b|b[^/.r][^/.]*|br|br[^/.o][^/.]*|bro|bro[^/.w][^/.]*|brow|brow[^/.s][^/.]*|brows|brows[^/.e][^/.]*|browse|browse[^/.r][^/.]*|browser[^/.][^/.]*|v|v[^/.u][^/.]*|vu|vu[^/.e][^/.]*|vue[^/.][^/.]*)(?:/|$))",
|
|
237
|
+
"message": "Vue faces must not depend on sibling sheet faces"
|
|
238
|
+
},
|
|
239
|
+
{
|
|
240
|
+
"regex": "^(?:/|[A-Za-z]:[\\\\/])",
|
|
241
|
+
"message": "imports must not use machine-specific absolute paths"
|
|
242
|
+
},
|
|
243
|
+
{
|
|
244
|
+
"regex": "^(?:[A-Za-mo-z][A-Za-z0-9+.-]*|n(?:[A-Za-np-z0-9+.-][A-Za-z0-9+.-]*)?|no(?:[A-Za-ce-z0-9+.-][A-Za-z0-9+.-]*)?|nod(?:[A-Za-df-z0-9+.-][A-Za-z0-9+.-]*)?|node[A-Za-z0-9+.-]+):",
|
|
245
|
+
"message": "imports must not use non-Node URL schemes"
|
|
246
|
+
},
|
|
247
|
+
{
|
|
248
|
+
"regex": "(?:^|/)(?:[^/.][^/]*|\\.[^/.][^/]*|\\.\\.[^/]+)/\\.{1,2}(?:/|$)",
|
|
249
|
+
"message": "internal import paths must not contain noncanonical dot segments"
|
|
250
|
+
},
|
|
251
|
+
{
|
|
252
|
+
"regex": "^(?:(?:\\./)+\\.\\.(?:/|$)|(?:\\.\\./)+(?:\\./)+)|//",
|
|
253
|
+
"message": "relative import paths must not contain normalized traversal segments"
|
|
254
|
+
},
|
|
255
|
+
{
|
|
256
|
+
"regex": "\\\\",
|
|
257
|
+
"message": "import paths must use portable forward slashes"
|
|
258
|
+
},
|
|
259
|
+
{
|
|
260
|
+
"regex": "^typescript(?:[/?#]|$)",
|
|
261
|
+
"message": "the in-process compiler API is not a surface the fleet uses"
|
|
262
|
+
},
|
|
263
|
+
{
|
|
264
|
+
"regex": "^(?:@app(?:[/?#]|$)|(?:\\.\\./)+app(?:[/?#]|$))",
|
|
265
|
+
"message": "src environments must not depend on private app modules"
|
|
266
|
+
},
|
|
267
|
+
{
|
|
268
|
+
"regex": "^(?:node:|(?:_(?:http_(?:agent|client|common|incoming|outgoing|server)|stream_(?:duplex|passthrough|readable|transform|wrap|writable)|tls_(?:common|wrap))|assert(?:/strict)?|async_hooks|buffer|child_process|cluster|console|constants|crypto|dgram|diagnostics_channel|dns(?:/promises)?|domain|events|fs(?:/promises)?|http|http2|https|inspector(?:/promises)?|module|net|os|path(?:/(?:posix|win32))?|perf_hooks|process|punycode|querystring|readline(?:/promises)?|repl|sqlite|stream(?:/(?:consumers|promises|web))?|string_decoder|sys|timers(?:/promises)?|tls|trace_events|tty|url|util(?:/types)?|v8|vm|wasi|worker_threads|zlib)(?:[/?#]|$)|@src/server(?:[/?#]|$)|@orkestrel/[^/]+/server(?:[/?#]|$)|(?:\\.\\./)+(?:server|src/server|app/server)(?:[/?#]|$))",
|
|
269
|
+
"message": "src/vue must not depend on Node or server-only modules"
|
|
270
|
+
}
|
|
271
|
+
]
|
|
272
|
+
}
|
|
273
|
+
]
|
|
274
|
+
}
|
|
275
|
+
},
|
|
220
276
|
{
|
|
221
277
|
"files": ["src/server/**/*.{cjs,cts,js,jsx,mjs,mts,ts,tsx,vue}"],
|
|
222
278
|
"rules": {
|
|
@@ -224,16 +280,20 @@
|
|
|
224
280
|
"error",
|
|
225
281
|
{
|
|
226
282
|
"patterns": [
|
|
283
|
+
{
|
|
284
|
+
"regex": "^(?:@(?:src|app)/vue(?:[/?#]|$)|@orkestrel/[^/]+/vue(?:[/?#]|$)|(?:\\.\\./)+(?:vue|src/vue|app/vue)(?:[/?#]|$))",
|
|
285
|
+
"message": "src/server must not depend on Vue extension modules"
|
|
286
|
+
},
|
|
227
287
|
{
|
|
228
288
|
"regex": "^(?:/|[A-Za-z]:[\\\\/])",
|
|
229
289
|
"message": "imports must not use machine-specific absolute paths"
|
|
230
290
|
},
|
|
231
291
|
{
|
|
232
|
-
"regex": "^(
|
|
292
|
+
"regex": "^(?:[A-Za-mo-z][A-Za-z0-9+.-]*|n(?:[A-Za-np-z0-9+.-][A-Za-z0-9+.-]*)?|no(?:[A-Za-ce-z0-9+.-][A-Za-z0-9+.-]*)?|nod(?:[A-Za-df-z0-9+.-][A-Za-z0-9+.-]*)?|node[A-Za-z0-9+.-]+):",
|
|
233
293
|
"message": "imports must not use non-Node URL schemes"
|
|
234
294
|
},
|
|
235
295
|
{
|
|
236
|
-
"regex": "(?:^|/)(
|
|
296
|
+
"regex": "(?:^|/)(?:[^/.][^/]*|\\.[^/.][^/]*|\\.\\.[^/]+)/\\.{1,2}(?:/|$)",
|
|
237
297
|
"message": "internal import paths must not contain noncanonical dot segments"
|
|
238
298
|
},
|
|
239
299
|
{
|
|
@@ -272,16 +332,20 @@
|
|
|
272
332
|
"error",
|
|
273
333
|
{
|
|
274
334
|
"patterns": [
|
|
335
|
+
{
|
|
336
|
+
"regex": "^(?:@(?:src|app)/vue(?:[/?#]|$)|@orkestrel/[^/]+/vue(?:[/?#]|$)|(?:\\.\\./)+(?:vue|src/vue|app/vue)(?:[/?#]|$))",
|
|
337
|
+
"message": "app/core must not depend on Vue extension modules"
|
|
338
|
+
},
|
|
275
339
|
{
|
|
276
340
|
"regex": "^(?:/|[A-Za-z]:[\\\\/])",
|
|
277
341
|
"message": "imports must not use machine-specific absolute paths"
|
|
278
342
|
},
|
|
279
343
|
{
|
|
280
|
-
"regex": "^(
|
|
344
|
+
"regex": "^(?:[A-Za-mo-z][A-Za-z0-9+.-]*|n(?:[A-Za-np-z0-9+.-][A-Za-z0-9+.-]*)?|no(?:[A-Za-ce-z0-9+.-][A-Za-z0-9+.-]*)?|nod(?:[A-Za-df-z0-9+.-][A-Za-z0-9+.-]*)?|node[A-Za-z0-9+.-]+):",
|
|
281
345
|
"message": "imports must not use non-Node URL schemes"
|
|
282
346
|
},
|
|
283
347
|
{
|
|
284
|
-
"regex": "(?:^|/)(
|
|
348
|
+
"regex": "(?:^|/)(?:[^/.][^/]*|\\.[^/.][^/]*|\\.\\.[^/]+)/\\.{1,2}(?:/|$)",
|
|
285
349
|
"message": "internal import paths must not contain noncanonical dot segments"
|
|
286
350
|
},
|
|
287
351
|
{
|
|
@@ -316,16 +380,20 @@
|
|
|
316
380
|
"error",
|
|
317
381
|
{
|
|
318
382
|
"patterns": [
|
|
383
|
+
{
|
|
384
|
+
"regex": "^(?:(?:vue|vite)(?:[/?#]|$)|@(?:vue|vitejs)/|@(?:src|app)/vue(?:[/?#]|$)|@orkestrel/[^/]+/vue(?:[/?#]|$)|(?:\\.\\./)+(?:vue|src/vue|app/vue)(?:[/?#]|$))",
|
|
385
|
+
"message": "app/browser must not depend on Vue extension modules"
|
|
386
|
+
},
|
|
319
387
|
{
|
|
320
388
|
"regex": "^(?:/|[A-Za-z]:[\\\\/])",
|
|
321
389
|
"message": "imports must not use machine-specific absolute paths"
|
|
322
390
|
},
|
|
323
391
|
{
|
|
324
|
-
"regex": "^(
|
|
392
|
+
"regex": "^(?:[A-Za-mo-z][A-Za-z0-9+.-]*|n(?:[A-Za-np-z0-9+.-][A-Za-z0-9+.-]*)?|no(?:[A-Za-ce-z0-9+.-][A-Za-z0-9+.-]*)?|nod(?:[A-Za-df-z0-9+.-][A-Za-z0-9+.-]*)?|node[A-Za-z0-9+.-]+):",
|
|
325
393
|
"message": "imports must not use non-Node URL schemes"
|
|
326
394
|
},
|
|
327
395
|
{
|
|
328
|
-
"regex": "(?:^|/)(
|
|
396
|
+
"regex": "(?:^|/)(?:[^/.][^/]*|\\.[^/.][^/]*|\\.\\.[^/]+)/\\.{1,2}(?:/|$)",
|
|
329
397
|
"message": "internal import paths must not contain noncanonical dot segments"
|
|
330
398
|
},
|
|
331
399
|
{
|
|
@@ -349,6 +417,50 @@
|
|
|
349
417
|
]
|
|
350
418
|
}
|
|
351
419
|
},
|
|
420
|
+
{
|
|
421
|
+
"files": ["app/vue/**/*.{cjs,cts,js,jsx,mjs,mts,ts,tsx,vue}"],
|
|
422
|
+
"rules": {
|
|
423
|
+
"no-restricted-imports": [
|
|
424
|
+
"error",
|
|
425
|
+
{
|
|
426
|
+
"patterns": [
|
|
427
|
+
{
|
|
428
|
+
"regex": "^(?:@(?:src|app)/(?:|[^/?#cbv][^/?#]*|c|c[^/?#o][^/?#]*|co|co[^/?#r][^/?#]*|cor|cor[^/?#e][^/?#]*|core[^/?#][^/?#]*|b|b[^/?#r][^/?#]*|br|br[^/?#o][^/?#]*|bro|bro[^/?#w][^/?#]*|brow|brow[^/?#s][^/?#]*|brows|brows[^/?#e][^/?#]*|browse|browse[^/?#r][^/?#]*|browser[^/?#][^/?#]*|v|v[^/?#u][^/?#]*|vu|vu[^/?#e][^/?#]*|vue[^/?#][^/?#]*)(?:[/?#]|$)|(?:\\.\\./)+(?:src/|app/)?(?:[^/.sacbv][^/.]*|s|s[^/.r][^/.]*|sr|sr[^/.c][^/.]*|src[^/.][^/.]*|a|a[^/.p][^/.]*|ap|ap[^/.p][^/.]*|app[^/.][^/.]*|c|c[^/.o][^/.]*|co|co[^/.r][^/.]*|cor|cor[^/.e][^/.]*|core[^/.][^/.]*|b|b[^/.r][^/.]*|br|br[^/.o][^/.]*|bro|bro[^/.w][^/.]*|brow|brow[^/.s][^/.]*|brows|brows[^/.e][^/.]*|browse|browse[^/.r][^/.]*|browser[^/.][^/.]*|v|v[^/.u][^/.]*|vu|vu[^/.e][^/.]*|vue[^/.][^/.]*)(?:/|$))",
|
|
429
|
+
"message": "Vue faces must not depend on sibling sheet faces"
|
|
430
|
+
},
|
|
431
|
+
{
|
|
432
|
+
"regex": "^(?:/|[A-Za-z]:[\\\\/])",
|
|
433
|
+
"message": "imports must not use machine-specific absolute paths"
|
|
434
|
+
},
|
|
435
|
+
{
|
|
436
|
+
"regex": "^(?:[A-Za-mo-z][A-Za-z0-9+.-]*|n(?:[A-Za-np-z0-9+.-][A-Za-z0-9+.-]*)?|no(?:[A-Za-ce-z0-9+.-][A-Za-z0-9+.-]*)?|nod(?:[A-Za-df-z0-9+.-][A-Za-z0-9+.-]*)?|node[A-Za-z0-9+.-]+):",
|
|
437
|
+
"message": "imports must not use non-Node URL schemes"
|
|
438
|
+
},
|
|
439
|
+
{
|
|
440
|
+
"regex": "(?:^|/)(?:[^/.][^/]*|\\.[^/.][^/]*|\\.\\.[^/]+)/\\.{1,2}(?:/|$)",
|
|
441
|
+
"message": "internal import paths must not contain noncanonical dot segments"
|
|
442
|
+
},
|
|
443
|
+
{
|
|
444
|
+
"regex": "^(?:(?:\\./)+\\.\\.(?:/|$)|(?:\\.\\./)+(?:\\./)+)|//",
|
|
445
|
+
"message": "relative import paths must not contain normalized traversal segments"
|
|
446
|
+
},
|
|
447
|
+
{
|
|
448
|
+
"regex": "\\\\",
|
|
449
|
+
"message": "import paths must use portable forward slashes"
|
|
450
|
+
},
|
|
451
|
+
{
|
|
452
|
+
"regex": "^typescript(?:[/?#]|$)",
|
|
453
|
+
"message": "the in-process compiler API is not a surface the fleet uses"
|
|
454
|
+
},
|
|
455
|
+
{
|
|
456
|
+
"regex": "^(?:node:|(?:_(?:http_(?:agent|client|common|incoming|outgoing|server)|stream_(?:duplex|passthrough|readable|transform|wrap|writable)|tls_(?:common|wrap))|assert(?:/strict)?|async_hooks|buffer|child_process|cluster|console|constants|crypto|dgram|diagnostics_channel|dns(?:/promises)?|domain|events|fs(?:/promises)?|http|http2|https|inspector(?:/promises)?|module|net|os|path(?:/(?:posix|win32))?|perf_hooks|process|punycode|querystring|readline(?:/promises)?|repl|sqlite|stream(?:/(?:consumers|promises|web))?|string_decoder|sys|timers(?:/promises)?|tls|trace_events|tty|url|util(?:/types)?|v8|vm|wasi|worker_threads|zlib)(?:[/?#]|$)|@app/server(?:[/?#]|$)|@src/server(?:[/?#]|$)|@orkestrel/[^/]+/server(?:[/?#]|$)|(?:\\.\\./)+(?:server|src/server|app/server)(?:[/?#]|$))",
|
|
457
|
+
"message": "app/vue must not depend on Node or server-only modules"
|
|
458
|
+
}
|
|
459
|
+
]
|
|
460
|
+
}
|
|
461
|
+
]
|
|
462
|
+
}
|
|
463
|
+
},
|
|
352
464
|
{
|
|
353
465
|
"files": ["app/server/**/*.{cjs,cts,js,jsx,mjs,mts,ts,tsx,vue}"],
|
|
354
466
|
"rules": {
|
|
@@ -356,16 +468,20 @@
|
|
|
356
468
|
"error",
|
|
357
469
|
{
|
|
358
470
|
"patterns": [
|
|
471
|
+
{
|
|
472
|
+
"regex": "^(?:@(?:src|app)/vue(?:[/?#]|$)|@orkestrel/[^/]+/vue(?:[/?#]|$)|(?:\\.\\./)+(?:vue|src/vue|app/vue)(?:[/?#]|$))",
|
|
473
|
+
"message": "app/server must not depend on Vue extension modules"
|
|
474
|
+
},
|
|
359
475
|
{
|
|
360
476
|
"regex": "^(?:/|[A-Za-z]:[\\\\/])",
|
|
361
477
|
"message": "imports must not use machine-specific absolute paths"
|
|
362
478
|
},
|
|
363
479
|
{
|
|
364
|
-
"regex": "^(
|
|
480
|
+
"regex": "^(?:[A-Za-mo-z][A-Za-z0-9+.-]*|n(?:[A-Za-np-z0-9+.-][A-Za-z0-9+.-]*)?|no(?:[A-Za-ce-z0-9+.-][A-Za-z0-9+.-]*)?|nod(?:[A-Za-df-z0-9+.-][A-Za-z0-9+.-]*)?|node[A-Za-z0-9+.-]+):",
|
|
365
481
|
"message": "imports must not use non-Node URL schemes"
|
|
366
482
|
},
|
|
367
483
|
{
|
|
368
|
-
"regex": "(?:^|/)(
|
|
484
|
+
"regex": "(?:^|/)(?:[^/.][^/]*|\\.[^/.][^/]*|\\.\\.[^/]+)/\\.{1,2}(?:/|$)",
|
|
369
485
|
"message": "internal import paths must not contain noncanonical dot segments"
|
|
370
486
|
},
|
|
371
487
|
{
|
|
@@ -405,11 +521,11 @@
|
|
|
405
521
|
"message": "imports must not use machine-specific absolute paths"
|
|
406
522
|
},
|
|
407
523
|
{
|
|
408
|
-
"regex": "^(
|
|
524
|
+
"regex": "^(?:[A-Za-mo-z][A-Za-z0-9+.-]*|n(?:[A-Za-np-z0-9+.-][A-Za-z0-9+.-]*)?|no(?:[A-Za-ce-z0-9+.-][A-Za-z0-9+.-]*)?|nod(?:[A-Za-df-z0-9+.-][A-Za-z0-9+.-]*)?|node[A-Za-z0-9+.-]+):",
|
|
409
525
|
"message": "imports must not use non-Node URL schemes"
|
|
410
526
|
},
|
|
411
527
|
{
|
|
412
|
-
"regex": "(?:^|/)(
|
|
528
|
+
"regex": "(?:^|/)(?:[^/.][^/]*|\\.[^/.][^/]*|\\.\\.[^/]+)/\\.{1,2}(?:/|$)",
|
|
413
529
|
"message": "internal import paths must not contain noncanonical dot segments"
|
|
414
530
|
},
|
|
415
531
|
{
|
|
@@ -433,7 +549,7 @@
|
|
|
433
549
|
"message": "src/bin must not depend on private app modules"
|
|
434
550
|
},
|
|
435
551
|
{
|
|
436
|
-
"regex": "^(?:(?:vue|vite)(?:[/?#]|$)|@(?:vue|vitejs)/|@src/browser(?:[/?#]|$)|@orkestrel/[^/]+/browser(?:[/?#]|$)|(?:\\.\\./)+(?:browser|src/browser|app/browser)(?:[/?#]|$))",
|
|
552
|
+
"regex": "^(?:(?:vue|vite)(?:[/?#]|$)|@(?:vue|vitejs)/|@src/(?:browser|vue)(?:[/?#]|$)|@orkestrel/[^/]+/(?:browser|vue)(?:[/?#]|$)|(?:\\.\\./)+(?:browser|vue|src/(?:browser|vue)|app/browser)(?:[/?#]|$))",
|
|
437
553
|
"message": "src/bin must not depend on browser-only modules"
|
|
438
554
|
}
|
|
439
555
|
]
|
|
@@ -446,7 +562,7 @@
|
|
|
446
562
|
"tests/**/*.{cjs,cts,js,jsx,mjs,mts,ts,tsx,vue}",
|
|
447
563
|
"configs/**/*.{cjs,cts,js,jsx,mjs,mts,ts,tsx,vue}",
|
|
448
564
|
"scripts/**/*.{cjs,cts,js,jsx,mjs,mts,ts,tsx,vue}",
|
|
449
|
-
"
|
|
565
|
+
"./*.{cjs,cts,js,mjs,mts,ts}"
|
|
450
566
|
],
|
|
451
567
|
"rules": {
|
|
452
568
|
"no-restricted-imports": [
|
|
@@ -16,15 +16,19 @@ guide mirrors, and the `WriteTransaction` those writes stage through. The `scaff
|
|
|
16
16
|
([`src/bin`](../src/bin)) publishes no barrel, so it is documented in prose and sits outside the
|
|
17
17
|
surface bijection.
|
|
18
18
|
|
|
19
|
-
The [Blueprint reference](scaffold.md#blueprint) describes the journey axis and its adopter-edited
|
|
20
|
-
`configs/app/vite.journey.config.ts` wrapper, the `SetupRuntime` list, and the `setup:browser`
|
|
21
|
-
project. The generated workspace runs journey variants and browser setup proofs through its
|
|
22
|
-
`test` chain.
|
|
23
|
-
|
|
24
19
|
That bijection is the row's contract, and [`tests/guides.test.ts`](../tests/guides.test.ts)
|
|
25
20
|
enforces it: every symbol the guide documents exists in the core barrel or the server barrel, and
|
|
26
21
|
every symbol either barrel exports is documented.
|
|
27
22
|
|
|
23
|
+
The [Blueprint reference](scaffold.md#blueprint) describes the structural facts, the
|
|
24
|
+
`SetupRuntime` list, and the `setup:browser` project. The
|
|
25
|
+
[surfaces and extensions reference](scaffold.md#surfaces-and-extensions) describes the browser
|
|
26
|
+
surface with its journey and showcase modes, the styles surface with its themes target, the `vue`
|
|
27
|
+
faces and named-sheet extensions, the creation options, their refusals, and the advisories on a
|
|
28
|
+
declared selection, the marker each fact is read from, the ownership of every path a sheet face
|
|
29
|
+
emits, the page stamp, the external resolution of each published face, the vendored proofs, the
|
|
30
|
+
root setup mirror, and the migration guard. Both sections belong to the `scaffold.md` row.
|
|
31
|
+
|
|
28
32
|
## By directory
|
|
29
33
|
|
|
30
34
|
| Directory | Guide |
|