@stacksjs/defaults 0.75.360 → 0.75.362
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/ai/skills/stacks-ai/SKILL.md +22 -0
- package/ai/skills/stacks-native/CATALOG.md +4 -4
- package/ai/skills/stacks-payments/SKILL.md +28 -0
- package/ai/skills/stacks-technical-diagrams/LICENSE +202 -22
- package/ai/skills/stacks-technical-diagrams/LICENSE-MIT +22 -0
- package/ai/skills/stacks-technical-diagrams/NOTICE +26 -0
- package/ai/skills/stacks-technical-diagrams/SKILL.md +106 -266
- package/ai/skills/stacks-technical-diagrams/THIRD_PARTY_NOTICES.md +11 -2
- package/ai/skills/stacks-technical-diagrams/UPSTREAM.json +12 -0
- package/ai/skills/stacks-technical-diagrams/agents/openai.yaml +2 -2
- package/ai/skills/stacks-technical-diagrams/assets/template.html +3655 -3798
- package/ai/skills/stacks-technical-diagrams/bin/archify.mjs +7290 -0
- package/ai/skills/stacks-technical-diagrams/bin/delivery-update.mjs +7 -0
- package/ai/skills/stacks-technical-diagrams/bin/diagrams +1 -0
- package/ai/skills/stacks-technical-diagrams/bin/finalize.mjs +1056 -0
- package/ai/skills/stacks-technical-diagrams/bin/open-artifact.mjs +72 -12
- package/ai/skills/stacks-technical-diagrams/bin/preview.mjs +348 -31
- package/ai/skills/stacks-technical-diagrams/bin/recover-output.mjs +41 -0
- package/ai/skills/stacks-technical-diagrams/bin/technical-diagrams.mjs +3 -2097
- package/ai/skills/stacks-technical-diagrams/bin/visual-check.mjs +2142 -157
- package/ai/skills/stacks-technical-diagrams/brand-marks/README.md +3 -3
- package/ai/skills/stacks-technical-diagrams/delta/architecture-delta.mjs +130 -33
- package/ai/skills/stacks-technical-diagrams/examples/agent-run.lifecycle.json +25 -30
- package/ai/skills/stacks-technical-diagrams/examples/agent-tool-call.workflow.json +0 -20
- package/ai/skills/stacks-technical-diagrams/examples/archify-dev-activity.timeline.json +176 -0
- package/ai/skills/stacks-technical-diagrams/examples/archify-repository.tree.json +197 -0
- package/ai/skills/stacks-technical-diagrams/examples/async-job-roundtrip.sequence.json +1 -6
- package/ai/skills/stacks-technical-diagrams/examples/brand-aware-delivery.architecture.json +3 -16
- package/ai/skills/stacks-technical-diagrams/examples/cache-miss-request.sequence.json +2 -7
- package/ai/skills/stacks-technical-diagrams/examples/checkout-platform.base.architecture.json +2 -1
- package/ai/skills/stacks-technical-diagrams/examples/checkout-platform.head.architecture.json +2 -1
- package/ai/skills/stacks-technical-diagrams/examples/checkout-request.waterfall.json +20 -0
- package/ai/skills/stacks-technical-diagrams/examples/class-payment-processors-rendered.html +14987 -0
- package/ai/skills/stacks-technical-diagrams/examples/class-payments-rendered.html +14787 -0
- package/ai/skills/stacks-technical-diagrams/examples/dataflow-product-analytics.html +14880 -0
- package/ai/skills/stacks-technical-diagrams/examples/delivery.explainer.json +155 -0
- package/ai/skills/stacks-technical-diagrams/examples/deployment-release.lifecycle.json +57 -34
- package/ai/skills/stacks-technical-diagrams/examples/erd-orders-rendered.html +15112 -0
- package/ai/skills/stacks-technical-diagrams/examples/event-stream.dataflow.json +1 -6
- package/ai/skills/stacks-technical-diagrams/examples/example-rebuild.waterfall.json +212 -0
- package/ai/skills/stacks-technical-diagrams/examples/holiday-planning.workflow.json +143 -0
- package/ai/skills/stacks-technical-diagrams/examples/incident-response.workflow.json +1 -6
- package/ai/skills/stacks-technical-diagrams/examples/lifecycle-agent-run.html +14892 -0
- package/ai/skills/stacks-technical-diagrams/examples/locales/de.json +463 -0
- package/ai/skills/stacks-technical-diagrams/examples/locales/fr.json +463 -0
- package/ai/skills/stacks-technical-diagrams/examples/locales/fr.partial.json +22 -0
- package/ai/skills/stacks-technical-diagrams/examples/locales/it.json +463 -0
- package/ai/skills/stacks-technical-diagrams/examples/locales/ja.json +463 -0
- package/ai/skills/stacks-technical-diagrams/examples/locales/pt.json +463 -0
- package/ai/skills/stacks-technical-diagrams/examples/locales/ru.json +463 -0
- package/ai/skills/stacks-technical-diagrams/examples/orders.erd.json +337 -0
- package/ai/skills/stacks-technical-diagrams/examples/payment-incident.timeline.json +24 -0
- package/ai/skills/stacks-technical-diagrams/examples/payment-platform.tree.json +22 -0
- package/ai/skills/stacks-technical-diagrams/examples/payment-processors.class.json +177 -0
- package/ai/skills/stacks-technical-diagrams/examples/payments.class.json +85 -0
- package/ai/skills/stacks-technical-diagrams/examples/product-analytics.dataflow.json +1 -6
- package/ai/skills/stacks-technical-diagrams/examples/production-deployment.architecture.json +3 -23
- package/ai/skills/stacks-technical-diagrams/examples/release-delivery.workflow.json +1 -6
- package/ai/skills/stacks-technical-diagrams/examples/sequence-cache-miss-request.html +14895 -0
- package/ai/skills/stacks-technical-diagrams/examples/subscription-billing-rendered.html +15369 -0
- package/ai/skills/stacks-technical-diagrams/examples/subscription-billing.erd.json +548 -0
- package/ai/skills/stacks-technical-diagrams/examples/timeline-archify-dev-activity-rendered.html +15002 -0
- package/ai/skills/stacks-technical-diagrams/examples/timeline-payment-incident-rendered.html +14772 -0
- package/ai/skills/stacks-technical-diagrams/examples/tree-archify-repository-rendered.html +15071 -0
- package/ai/skills/stacks-technical-diagrams/examples/tree-payment-platform-rendered.html +14810 -0
- package/ai/skills/stacks-technical-diagrams/examples/waterfall-checkout-request-rendered.html +14754 -0
- package/ai/skills/stacks-technical-diagrams/examples/waterfall-example-rebuild-rendered.html +14940 -0
- package/ai/skills/stacks-technical-diagrams/examples/web-app-rendered.html +14889 -0
- package/ai/skills/stacks-technical-diagrams/examples/web-app.architecture.json +1 -6
- package/ai/skills/stacks-technical-diagrams/examples/workflow-agent-tool-call-rendered.html +14907 -0
- package/ai/skills/stacks-technical-diagrams/explainer/browser-check.mjs +208 -0
- package/ai/skills/stacks-technical-diagrams/explainer/charts.mjs +70 -0
- package/ai/skills/stacks-technical-diagrams/explainer/check.mjs +168 -0
- package/ai/skills/stacks-technical-diagrams/explainer/diagrams.mjs +518 -0
- package/ai/skills/stacks-technical-diagrams/explainer/diff.mjs +124 -0
- package/ai/skills/stacks-technical-diagrams/explainer/inline.mjs +155 -0
- package/ai/skills/stacks-technical-diagrams/explainer/layout.mjs +35 -0
- package/ai/skills/stacks-technical-diagrams/explainer/page-bundle.mjs +16 -0
- package/ai/skills/stacks-technical-diagrams/explainer/parse.mjs +300 -0
- package/ai/skills/stacks-technical-diagrams/explainer/patch.mjs +117 -0
- package/ai/skills/stacks-technical-diagrams/explainer/prepare.mjs +131 -0
- package/ai/skills/stacks-technical-diagrams/explainer/reader.css +472 -0
- package/ai/skills/stacks-technical-diagrams/explainer/reader.js +667 -0
- package/ai/skills/stacks-technical-diagrams/explainer/render.mjs +224 -0
- package/ai/skills/stacks-technical-diagrams/explainer/revision.mjs +20 -0
- package/ai/skills/stacks-technical-diagrams/explainer/sources.mjs +318 -0
- package/ai/skills/stacks-technical-diagrams/explainer/validate.mjs +138 -0
- package/ai/skills/stacks-technical-diagrams/explainer/vendor/pele/LICENSE +40 -0
- package/ai/skills/stacks-technical-diagrams/explainer/vendor/pele/README.md +5 -0
- package/ai/skills/stacks-technical-diagrams/explainer/vendor/pele/chunks/3DKXF73K.js +4 -0
- package/ai/skills/stacks-technical-diagrams/explainer/vendor/pele/chunks/42UTT654.js +3 -0
- package/ai/skills/stacks-technical-diagrams/explainer/vendor/pele/chunks/DKTLEL5E.js +1 -0
- package/ai/skills/stacks-technical-diagrams/explainer/vendor/pele/chunks/EEIX5ZYH.js +2 -0
- package/ai/skills/stacks-technical-diagrams/explainer/vendor/pele/chunks/EJ5KOXYD.js +25 -0
- package/ai/skills/stacks-technical-diagrams/explainer/vendor/pele/chunks/GUJTEFZK.js +1 -0
- package/ai/skills/stacks-technical-diagrams/explainer/vendor/pele/chunks/IZOKQ2GT.js +4 -0
- package/ai/skills/stacks-technical-diagrams/explainer/vendor/pele/chunks/L4LY553T.js +3 -0
- package/ai/skills/stacks-technical-diagrams/explainer/vendor/pele/chunks/MSKIJHB2.js +2 -0
- package/ai/skills/stacks-technical-diagrams/explainer/vendor/pele/chunks/RVARI57O.js +1 -0
- package/ai/skills/stacks-technical-diagrams/explainer/vendor/pele/chunks/UKSIWDDN.js +2 -0
- package/ai/skills/stacks-technical-diagrams/explainer/vendor/pele/chunks/UPTXNAXN.js +2 -0
- package/ai/skills/stacks-technical-diagrams/explainer/vendor/pele/chunks/XTDUIGUI.js +9 -0
- package/ai/skills/stacks-technical-diagrams/explainer/vendor/pele/chunks/YAYTP6L5.js +9 -0
- package/ai/skills/stacks-technical-diagrams/explainer/vendor/pele/core.js +1 -0
- package/ai/skills/stacks-technical-diagrams/explainer/vendor/pele/diagrams/pie.js +1 -0
- package/ai/skills/stacks-technical-diagrams/explainer/vendor/pele/diagrams/quadrantChart.js +1 -0
- package/ai/skills/stacks-technical-diagrams/explainer/vendor/pele/diagrams/radar.js +1 -0
- package/ai/skills/stacks-technical-diagrams/explainer/vendor/pele/diagrams/sankey.js +1 -0
- package/ai/skills/stacks-technical-diagrams/explainer/vendor/pele/diagrams/venn.js +1 -0
- package/ai/skills/stacks-technical-diagrams/explainer/vendor/pele/diagrams/xychart.js +1 -0
- package/ai/skills/stacks-technical-diagrams/explainer/writing.mjs +139 -0
- package/ai/skills/stacks-technical-diagrams/locales/README.md +40 -0
- package/ai/skills/stacks-technical-diagrams/locales/ar.json +488 -0
- package/ai/skills/stacks-technical-diagrams/locales/en.json +488 -0
- package/ai/skills/stacks-technical-diagrams/locales/es.json +488 -0
- package/ai/skills/stacks-technical-diagrams/locales/ko.json +488 -0
- package/ai/skills/stacks-technical-diagrams/locales/manifest.json +10 -0
- package/ai/skills/stacks-technical-diagrams/locales/zh-CN.json +488 -0
- package/ai/skills/stacks-technical-diagrams/locales/zh-TW.json +488 -0
- package/ai/skills/stacks-technical-diagrams/migrations/workflow-v2.mjs +1 -0
- package/ai/skills/stacks-technical-diagrams/recipes/scenarios.mjs +115 -51
- package/ai/skills/stacks-technical-diagrams/references/architecture-layout-repair.md +18 -0
- package/ai/skills/stacks-technical-diagrams/references/authoring-contract.md +453 -51
- package/ai/skills/stacks-technical-diagrams/references/authoring-defaults.md +57 -0
- package/ai/skills/stacks-technical-diagrams/references/brand-marks.md +57 -3
- package/ai/skills/stacks-technical-diagrams/references/delivery-contract.md +603 -58
- package/ai/skills/stacks-technical-diagrams/references/explainer-authoring.md +274 -0
- package/ai/skills/stacks-technical-diagrams/references/repository-authoring.md +126 -0
- package/ai/skills/stacks-technical-diagrams/references/update-awareness.md +13 -0
- package/ai/skills/stacks-technical-diagrams/references/viewer-runtime.md +18 -11
- package/ai/skills/stacks-technical-diagrams/renderers/architecture/grid.mjs +1 -1
- package/ai/skills/stacks-technical-diagrams/renderers/architecture/labels.mjs +2 -0
- package/ai/skills/stacks-technical-diagrams/renderers/architecture/render-architecture.mjs +550 -424
- package/ai/skills/stacks-technical-diagrams/renderers/architecture/routing.mjs +1469 -0
- package/ai/skills/stacks-technical-diagrams/renderers/class/README.md +129 -0
- package/ai/skills/stacks-technical-diagrams/renderers/class/render-class.mjs +1095 -0
- package/ai/skills/stacks-technical-diagrams/renderers/dataflow/README.md +89 -17
- package/ai/skills/stacks-technical-diagrams/renderers/dataflow/dataflow-compiler.mjs +1605 -0
- package/ai/skills/stacks-technical-diagrams/renderers/dataflow/joint-label-routing.mjs +165 -0
- package/ai/skills/stacks-technical-diagrams/renderers/dataflow/label-capacity.mjs +81 -0
- package/ai/skills/stacks-technical-diagrams/renderers/dataflow/render-dataflow.mjs +14 -474
- package/ai/skills/stacks-technical-diagrams/renderers/erd/README.md +246 -0
- package/ai/skills/stacks-technical-diagrams/renderers/erd/grid.mjs +150 -0
- package/ai/skills/stacks-technical-diagrams/renderers/erd/render-erd.mjs +1588 -0
- package/ai/skills/stacks-technical-diagrams/renderers/explainer/render-explainer.mjs +42 -0
- package/ai/skills/stacks-technical-diagrams/renderers/lifecycle/README.md +83 -94
- package/ai/skills/stacks-technical-diagrams/renderers/lifecycle/render-lifecycle.mjs +990 -417
- package/ai/skills/stacks-technical-diagrams/renderers/sequence/README.md +49 -17
- package/ai/skills/stacks-technical-diagrams/renderers/sequence/render-sequence.mjs +735 -94
- package/ai/skills/stacks-technical-diagrams/renderers/shared/atomic-output.mjs +1982 -0
- package/ai/skills/stacks-technical-diagrams/renderers/shared/automatic-labels.mjs +290 -0
- package/ai/skills/stacks-technical-diagrams/renderers/shared/brand-marks.mjs +169 -26
- package/ai/skills/stacks-technical-diagrams/renderers/shared/cli.mjs +266 -54
- package/ai/skills/stacks-technical-diagrams/renderers/shared/desktop-readability.mjs +106 -0
- package/ai/skills/stacks-technical-diagrams/renderers/shared/diagnostics.mjs +0 -0
- package/ai/skills/stacks-technical-diagrams/renderers/shared/generated-validators.mjs +268 -2
- package/ai/skills/stacks-technical-diagrams/renderers/shared/geometry.mjs +774 -124
- package/ai/skills/stacks-technical-diagrams/renderers/shared/i18n.mjs +289 -556
- package/ai/skills/stacks-technical-diagrams/renderers/shared/layout-report.mjs +18 -1
- package/ai/skills/stacks-technical-diagrams/renderers/shared/legend.mjs +16 -6
- package/ai/skills/stacks-technical-diagrams/renderers/shared/node-card-style.mjs +32 -0
- package/ai/skills/stacks-technical-diagrams/renderers/shared/output-path.mjs +329 -229
- package/ai/skills/stacks-technical-diagrams/renderers/shared/owned-temp-directory.mjs +82 -0
- package/ai/skills/stacks-technical-diagrams/renderers/shared/path-semantics.mjs +1017 -0
- package/ai/skills/stacks-technical-diagrams/renderers/shared/portable-path.mjs +408 -0
- package/ai/skills/stacks-technical-diagrams/renderers/shared/repository-evidence.mjs +235 -79
- package/ai/skills/stacks-technical-diagrams/renderers/shared/repository-location.mjs +17 -4
- package/ai/skills/stacks-technical-diagrams/renderers/shared/route-quality.mjs +670 -0
- package/ai/skills/stacks-technical-diagrams/renderers/shared/sidecar-path.mjs +38 -0
- package/ai/skills/stacks-technical-diagrams/renderers/shared/software-notices.mjs +6 -0
- package/ai/skills/stacks-technical-diagrams/renderers/shared/spatial-grid.mjs +66 -0
- package/ai/skills/stacks-technical-diagrams/renderers/shared/svg-path-analysis.mjs +135 -0
- package/ai/skills/stacks-technical-diagrams/renderers/shared/text-fit.mjs +59 -3
- package/ai/skills/stacks-technical-diagrams/renderers/shared/utils.mjs +63 -35
- package/ai/skills/stacks-technical-diagrams/renderers/shared/validator.mjs +2 -5
- package/ai/skills/stacks-technical-diagrams/renderers/timeline/README.md +76 -0
- package/ai/skills/stacks-technical-diagrams/renderers/timeline/render-timeline.mjs +576 -0
- package/ai/skills/stacks-technical-diagrams/renderers/tree/README.md +96 -0
- package/ai/skills/stacks-technical-diagrams/renderers/tree/render-tree.mjs +573 -0
- package/ai/skills/stacks-technical-diagrams/renderers/waterfall/README.md +73 -0
- package/ai/skills/stacks-technical-diagrams/renderers/waterfall/render-waterfall.mjs +413 -0
- package/ai/skills/stacks-technical-diagrams/renderers/workflow/README.md +137 -23
- package/ai/skills/stacks-technical-diagrams/renderers/workflow/render-workflow.mjs +18 -6
- package/ai/skills/stacks-technical-diagrams/renderers/workflow/workflow-compiler.mjs +2230 -710
- package/ai/skills/stacks-technical-diagrams/renderers/workflow/workflow-migration-geometry.mjs +17 -0
- package/ai/skills/stacks-technical-diagrams/renderers/workflow/workflow-placement-repair.mjs +94 -0
- package/ai/skills/stacks-technical-diagrams/schemas/README.md +87 -40
- package/ai/skills/stacks-technical-diagrams/schemas/architecture.schema.json +7 -33
- package/ai/skills/stacks-technical-diagrams/schemas/class.schema.json +345 -0
- package/ai/skills/stacks-technical-diagrams/schemas/common.schema.json +68 -2
- package/ai/skills/stacks-technical-diagrams/schemas/dataflow.schema.json +14 -3
- package/ai/skills/stacks-technical-diagrams/schemas/erd.schema.json +381 -0
- package/ai/skills/stacks-technical-diagrams/schemas/explainer.schema.json +927 -0
- package/ai/skills/stacks-technical-diagrams/schemas/lifecycle.schema.json +23 -110
- package/ai/skills/stacks-technical-diagrams/schemas/sequence.schema.json +15 -4
- package/ai/skills/stacks-technical-diagrams/schemas/timeline.schema.json +160 -0
- package/ai/skills/stacks-technical-diagrams/schemas/tree.schema.json +141 -0
- package/ai/skills/stacks-technical-diagrams/schemas/waterfall.schema.json +147 -0
- package/ai/skills/stacks-technical-diagrams/schemas/workflow.schema.json +14 -3
- package/ai/skills/stacks-technical-diagrams/scripts/check-render-output.mjs +876 -243
- package/ai/skills/stacks-technical-diagrams/scripts/check-update.mjs +1717 -0
- package/ai/skills/stacks-technical-diagrams/scripts/delivery-update-child.mjs +26 -0
- package/ai/skills/stacks-technical-diagrams/scripts/generate-brand-marks.mjs +141 -0
- package/ai/skills/stacks-technical-diagrams/scripts/generate-validators.mjs +105 -0
- package/ai/skills/stacks-technical-diagrams/scripts/render-examples.mjs +11 -1
- package/ai/skills/stacks-technical-diagrams/scripts/update-contract.mjs +187 -0
- package/ai/skills/stacks-technical-diagrams/skill-release.json +10 -0
- package/ide/vscode/package.json +1 -1
- package/package.json +2 -2
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
# Data Flow Renderer
|
|
2
2
|
|
|
3
|
-
Render `diagram_type: "dataflow"` JSON files into the
|
|
3
|
+
Render `diagram_type: "dataflow"` JSON files into the standard Archify HTML
|
|
4
4
|
template.
|
|
5
5
|
|
|
6
6
|
```bash
|
|
7
|
-
node
|
|
7
|
+
node archify/renderers/dataflow/render-dataflow.mjs input.dataflow.json output.html
|
|
8
8
|
```
|
|
9
9
|
|
|
10
|
-
The renderer validates input against
|
|
10
|
+
The renderer validates input against `archify/schemas/dataflow.schema.json`
|
|
11
11
|
with the bundled standalone validator. No dependency installation is required.
|
|
12
12
|
|
|
13
|
-
If `output.html` is omitted, the renderer uses `meta.output`
|
|
14
|
-
|
|
13
|
+
If `output.html` is omitted, the renderer uses the required `meta.output` value
|
|
14
|
+
from the JSON file.
|
|
15
15
|
|
|
16
16
|
## Input
|
|
17
17
|
|
|
@@ -23,6 +23,7 @@ Data-flow JSON files must set:
|
|
|
23
23
|
"diagram_type": "dataflow",
|
|
24
24
|
"meta": {
|
|
25
25
|
"title": "Product Analytics Data Flow",
|
|
26
|
+
"output": "product-analytics-dataflow.html",
|
|
26
27
|
"viewBox": [940, 720]
|
|
27
28
|
},
|
|
28
29
|
"stages": [],
|
|
@@ -33,12 +34,12 @@ Data-flow JSON files must set:
|
|
|
33
34
|
```
|
|
34
35
|
|
|
35
36
|
A complete worked example lives at
|
|
36
|
-
|
|
37
|
+
`archify/examples/product-analytics.dataflow.json`.
|
|
37
38
|
|
|
38
39
|
The schema lives at:
|
|
39
40
|
|
|
40
41
|
```text
|
|
41
|
-
|
|
42
|
+
archify/schemas/dataflow.schema.json
|
|
42
43
|
```
|
|
43
44
|
|
|
44
45
|
## Legend
|
|
@@ -47,7 +48,7 @@ The default visual legend derives kinds from `flows[].variant` (omitting
|
|
|
47
48
|
`variant` means `default`) and adds `database` only when a database node exists.
|
|
48
49
|
Supported `meta.legend.entries` keys, in stable order, are `emphasis`,
|
|
49
50
|
`security`, `dashed`, `database`, and `default`. Flow variants remain
|
|
50
|
-
visual-only because
|
|
51
|
+
visual-only because Archify has no compiled edge-kind facts in this slice. A
|
|
51
52
|
present `database` entry is different: it comes from exact
|
|
52
53
|
`nodes[].type: "database"` facts, so it publishes the normal Semantic Legend
|
|
53
54
|
count, accessible name, and keyboard interaction. Forcing `database` visible
|
|
@@ -57,11 +58,11 @@ without a database node keeps it visual-only.
|
|
|
57
58
|
|
|
58
59
|
| Constant | Value |
|
|
59
60
|
|----------|-------|
|
|
60
|
-
| viewBox |
|
|
61
|
-
| Stages (2
|
|
62
|
-
| Row tops (`row` 0
|
|
61
|
+
| viewBox | omitted width fits all stage frames and nodes, including authored widths, with 24px right padding and a 480px minimum (five default-width stages need 1068); height defaults to 720 and fits content in fully automatic showcase; schema minimum `[360, 360]` |
|
|
62
|
+
| Stages (2–5) | centers at x = 100 + stage×215; stage band 168 wide, header at y 46 |
|
|
63
|
+
| Row tops (`row` 0–4) | y = 128, 242, 356, 470, 584 (plus `yOffset`) |
|
|
63
64
|
| Default node | 112×58 |
|
|
64
|
-
| Node area | x within `[24, width − 24]`; y within `[104, height − 74]` |
|
|
65
|
+
| Node area | x within `[24, width − 24]`; y within `[104, height − 74 − node height]` |
|
|
65
66
|
| Node spacing | ≥10px between any two nodes (checked across stages and rows) |
|
|
66
67
|
| Flow length | ≥34px between endpoints |
|
|
67
68
|
| Legend row | y = height − 36 |
|
|
@@ -69,6 +70,61 @@ without a database node keeps it visual-only.
|
|
|
69
70
|
Route presets for flows: `straight`, `vertical-channel`, `bottom-channel`,
|
|
70
71
|
`top-channel`, explicit `via` points, or the default `auto` (midpoint elbow).
|
|
71
72
|
|
|
73
|
+
An authored `meta.viewBox` remains authoritative. When it is omitted, canvas
|
|
74
|
+
width fits stage frames and nodes in both `standard` and `showcase`, including
|
|
75
|
+
explicit node widths. Enlarging width cannot repair left-edge overflow.
|
|
76
|
+
|
|
77
|
+
Showcase node sizing, typography, automatic height, port bridges and label
|
|
78
|
+
placement apply only when `meta.viewBox` and every node's `width` are omitted.
|
|
79
|
+
An authored canvas or node width preserves those established layout behaviors,
|
|
80
|
+
as does `standard`. The effective quality profile is
|
|
81
|
+
`process.env.ARCHIFY_QUALITY_PROFILE || meta.quality_profile`; the public CLI's
|
|
82
|
+
`--quality standard|showcase` sets the environment override.
|
|
83
|
+
|
|
84
|
+
For a fully automatic showcase, node widths can grow within their stage and
|
|
85
|
+
canvas budget to keep supporting text readable at desktop projection. Height
|
|
86
|
+
follows actual node bounds, routed points and rendered label plates, leaving
|
|
87
|
+
24px below content plus the 74px stage/legend reserve. Rows and authored routes
|
|
88
|
+
remain authoritative; inactive channel controls do not enlarge the canvas.
|
|
89
|
+
|
|
90
|
+
Crowded incoming arrows can expand a default node vertically within its row's
|
|
91
|
+
spare space, up to 104px high. Its row centre and text group stay in place, so
|
|
92
|
+
clear same-row outputs remain straight. The 16px corner gutters and 10px node
|
|
93
|
+
gaps remain reserved. An explicit node height or `yOffset`, or an incident
|
|
94
|
+
route, side or label pin, preserves the original box. Space limits may
|
|
95
|
+
still leave very dense inputs crowded; no relationship or label is removed.
|
|
96
|
+
|
|
97
|
+
For facing automatic ports less than 16px apart across the route axis, an
|
|
98
|
+
unshared endpoint can align with the spread endpoint when the straight path
|
|
99
|
+
is clear. This preserves the shared slots, the 16px corner gutter, occupied
|
|
100
|
+
ports and authored route/label controls. When both ends are spread or the
|
|
101
|
+
direct path is blocked, the existing perpendicular bridge remains.
|
|
102
|
+
When obstacle routing reverses a branch's initial travel direction, a shared
|
|
103
|
+
side can reorder its existing slots by the settled routes' first turns. This
|
|
104
|
+
tries at most 16 fully automatic groups of two to eight ports before placing
|
|
105
|
+
labels. A group is accepted only if a route becomes straight and no member
|
|
106
|
+
gains length or bends, adds crossings, folds back, or loses node, border or
|
|
107
|
+
corridor clearance. Explicit side, route and label controls keep their slots.
|
|
108
|
+
|
|
109
|
+
After routes and labels settle, a bounded pass can retry this alignment while
|
|
110
|
+
keeping every other route and label fixed. It checks at most 16 label placements;
|
|
111
|
+
the straight path must retain port spacing and a clear, nearby label position.
|
|
112
|
+
Grid repairs also retain the route rhythm floor before replacing a valid bridge.
|
|
113
|
+
Unpinned labels stay within 36px mask clearance of their own route. If a
|
|
114
|
+
label remains inside a node because a foreign route occupies its nearby slot,
|
|
115
|
+
a bounded joint repair can shift that route and place the label again. It
|
|
116
|
+
checks at most 16 label slots and 16 route candidates without adding bends
|
|
117
|
+
or crossings. Unresolved placements keep their collision diagnostic.
|
|
118
|
+
Explicit `labelAt`, `labelDx`, `labelDy` and `labelSegment` remain authoritative,
|
|
119
|
+
including zero offsets. Existing valid labels are retained.
|
|
120
|
+
|
|
121
|
+
If a complete automatic label still collides after routing, its text can wrap
|
|
122
|
+
to two rows beside a horizontal segment. The font size, wording, classification
|
|
123
|
+
and all routes stay unchanged. The plate stays within that segment's span and
|
|
124
|
+
at least 4px from every route, rather than moving above a nearby node. This
|
|
125
|
+
last capacity repair tries at most eight word-boundary splits and 64 positions
|
|
126
|
+
per blocked label. If neither row fits, the original diagnostic remains.
|
|
127
|
+
|
|
72
128
|
## Design Rules
|
|
73
129
|
|
|
74
130
|
- Use stages for data lifecycle boundaries: source, ingest, process, store,
|
|
@@ -87,18 +143,34 @@ Route presets for flows: `straight`, `vertical-channel`, `bottom-channel`,
|
|
|
87
143
|
Schema violations exit non-zero with path-prefixed messages annotated with the
|
|
88
144
|
element's id or label. The renderer additionally fails when it can detect
|
|
89
145
|
layout problems, including missing stages, duplicate node IDs, nodes outside
|
|
90
|
-
the readable diagram area
|
|
146
|
+
the readable diagram area (`dataflow/node-above-area` / `dataflow/node-below-area`;
|
|
147
|
+
the below-area diagnostic offers `meta.viewBox[1]` raises only while the raised
|
|
148
|
+
page still fits the target viewport, and names the height range that does —
|
|
149
|
+
page containment is the modeled axis, while projected text readability is
|
|
150
|
+
reported separately by the delivery checks (`viewer/projected-text-readability`)),
|
|
151
|
+
node overlap, labels colliding with nodes or other
|
|
91
152
|
labels, labels wider than their node, unknown flow endpoints, missing flow
|
|
92
153
|
labels, unreadably short flows, flows crossing unrelated nodes (2px Clean Flow
|
|
93
154
|
clearance), or stages that exceed the viewBox. Stage frames remain intentional
|
|
94
155
|
pass-through containers. Text width
|
|
95
156
|
is estimated CJK-aware: fullwidth glyphs count as two units.
|
|
96
157
|
|
|
97
|
-
Set `meta.quality_profile` to `showcase` for polished delivery.
|
|
98
|
-
X crossings
|
|
99
|
-
keeps them as artifact-receipt warnings.
|
|
158
|
+
Set `meta.quality_profile` to `showcase` for polished delivery. Unresolved proper
|
|
159
|
+
X crossings fail with `composition/proper-crossing`; default `standard`
|
|
160
|
+
keeps them as artifact-receipt warnings. In automatic showcase layouts without
|
|
161
|
+
an authored canvas or node widths, the renderer compares clear detours with
|
|
162
|
+
visibly separated crossovers. It prefers a short clear route, but may retain
|
|
163
|
+
a shorter automatic crossing with an opaque halo instead of a long perimeter
|
|
164
|
+
detour. Before comparing crossings, bounded route searches try to repair
|
|
165
|
+
automatic paths that enter unrelated nodes or share ambiguous corridors.
|
|
166
|
+
They preserve node clearance and corridor separation; failed searches still
|
|
167
|
+
leave the obstruction diagnostic in place. Both crossing paths need matching
|
|
168
|
+
halos; the artifact check verifies
|
|
169
|
+
their geometry and reports `resolvedCrossovers` for visual review. Supplied
|
|
170
|
+
`via`, non-auto `route`, and channel coordinates retain their geometry and
|
|
171
|
+
crossing diagnostics. Collinear stage corridors are outside
|
|
100
172
|
the proper-X rule, but a separate gate warns in `standard` and fails in
|
|
101
173
|
`showcase` when unrelated flows overlap for at least 8px. Shared semantic
|
|
102
174
|
endpoints, point touches, and shorter overlaps remain valid. Showcase also
|
|
103
175
|
rejects any route segment below 8px and any interior turn segment below 16px;
|
|
104
|
-
ordinary 8
|
|
176
|
+
ordinary 8–15px endpoint stubs remain valid.
|