@jterrats/open-orchestra 1.0.1 → 1.0.3
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/AGENTS.md +7 -2
- package/CLAUDE.md +2 -2
- package/README.md +3 -0
- package/dist/args.js +12 -2
- package/dist/args.js.map +1 -1
- package/dist/assets/web-console.js +44 -0
- package/dist/autonomous-phase-lifecycle.js +23 -3
- package/dist/autonomous-phase-lifecycle.js.map +1 -1
- package/dist/autonomous-run-state.js +2 -0
- package/dist/autonomous-run-state.js.map +1 -1
- package/dist/benchmark.js +6 -0
- package/dist/benchmark.js.map +1 -1
- package/dist/cli.js +4 -1
- package/dist/cli.js.map +1 -1
- package/dist/command-manifest.js +4 -3
- package/dist/command-manifest.js.map +1 -1
- package/dist/command-utils.js +4 -5
- package/dist/command-utils.js.map +1 -1
- package/dist/commands.d.ts +1 -1
- package/dist/commands.js +1 -1
- package/dist/commands.js.map +1 -1
- package/dist/constants.js +1 -0
- package/dist/constants.js.map +1 -1
- package/dist/memory.js +18 -8
- package/dist/memory.js.map +1 -1
- package/dist/metrics-commands.js +8 -0
- package/dist/metrics-commands.js.map +1 -1
- package/dist/model-commands.js +6 -2
- package/dist/model-commands.js.map +1 -1
- package/dist/phase-executor.js +3 -0
- package/dist/phase-executor.js.map +1 -1
- package/dist/prompt-registry-update.js +20 -0
- package/dist/prompt-registry-update.js.map +1 -1
- package/dist/qa-coverage.js +15 -6
- package/dist/qa-coverage.js.map +1 -1
- package/dist/release-commands.js +42 -5
- package/dist/release-commands.js.map +1 -1
- package/dist/release-readiness.d.ts +3 -1
- package/dist/release-readiness.js +33 -6
- package/dist/release-readiness.js.map +1 -1
- package/dist/roles/core-roles.js +10 -5
- package/dist/roles/core-roles.js.map +1 -1
- package/dist/skills-catalog.js +130 -0
- package/dist/skills-catalog.js.map +1 -1
- package/dist/skills-commands.d.ts +1 -0
- package/dist/skills-commands.js +37 -1
- package/dist/skills-commands.js.map +1 -1
- package/dist/skills-planning.d.ts +2 -1
- package/dist/skills-planning.js +79 -11
- package/dist/skills-planning.js.map +1 -1
- package/dist/skills.d.ts +1 -1
- package/dist/skills.js +1 -1
- package/dist/skills.js.map +1 -1
- package/dist/task-graph-commands.js +36 -8
- package/dist/task-graph-commands.js.map +1 -1
- package/dist/types/metrics.d.ts +2 -0
- package/dist/types/model-config.d.ts +4 -0
- package/dist/types/skills.d.ts +9 -0
- package/dist/types/tasks.d.ts +8 -1
- package/dist/types.d.ts +2 -2
- package/dist/types.js.map +1 -1
- package/dist/web-api.js +80 -7
- package/dist/web-api.js.map +1 -1
- package/dist/web-console/assets/{index-C9lx-V42.css → index-jxCY5eEc.css} +1 -1
- package/dist/web-console/index.html +2 -2
- package/dist/workflow-approval-service.js +13 -0
- package/dist/workflow-approval-service.js.map +1 -1
- package/dist/workflow-evidence-service.js +37 -2
- package/dist/workflow-evidence-service.js.map +1 -1
- package/dist/workflow-gates.d.ts +1 -0
- package/dist/workflow-gates.js +220 -1
- package/dist/workflow-gates.js.map +1 -1
- package/dist/workflow-phase-planner.js +51 -9
- package/dist/workflow-phase-planner.js.map +1 -1
- package/dist/workflow-run-commands.d.ts +1 -0
- package/dist/workflow-run-commands.js +11 -6
- package/dist/workflow-run-commands.js.map +1 -1
- package/dist/workflow-services.js +26 -0
- package/dist/workflow-services.js.map +1 -1
- package/dist/workflow-task-service.js +27 -2
- package/dist/workflow-task-service.js.map +1 -1
- package/docs/adoption-guide.md +22 -1
- package/docs/advisory-supervisor-architecture.md +206 -0
- package/docs/architecture.md +47 -41
- package/docs/autonomous-workflow.md +2 -2
- package/docs/backlog/ac-evidence-bugfix-stories-20260517.md +76 -0
- package/docs/backlog/dev-best-practices-hardening-story.md +69 -0
- package/docs/backlog/docs-public-internal-package-hygiene-story.md +62 -0
- package/docs/backlog/prompt-bank-registry-epic.md +159 -0
- package/docs/backlog/site-docs-manifest-story.md +56 -0
- package/docs/dev-team-specialist-role-profiles.md +1 -1
- package/docs/diagrams/diagram-master-prompt.md +207 -0
- package/docs/diagrams/enterprise-set/README.md +22 -0
- package/docs/diagrams/enterprise-set/lead-to-account-swimlanes.svg +38 -0
- package/docs/diagrams/enterprise-set/product-implementation-timeline.svg +45 -0
- package/docs/diagrams/enterprise-set/salesforce-enterprise-architecture.svg +54 -0
- package/docs/diagrams/experiments/pixel-v2-review.md +124 -0
- package/docs/diagrams/experiments/roadmap/diagram.mmd +14 -0
- package/docs/diagrams/experiments/roadmap/diagram.svg +48 -0
- package/docs/diagrams/experiments/roadmap/experiment.md +44 -0
- package/docs/diagrams/experiments/sfdc-implementation/diagram.mmd +54 -0
- package/docs/diagrams/experiments/sfdc-implementation/diagram.svg +72 -0
- package/docs/diagrams/experiments/sfdc-implementation/experiment.md +41 -0
- package/docs/diagrams/experiments/swimlane/diagram.mmd +40 -0
- package/docs/diagrams/experiments/swimlane/diagram.svg +70 -0
- package/docs/diagrams/experiments/swimlane/experiment.md +50 -0
- package/docs/diagrams/experiments/timeline/diagram.mmd +9 -0
- package/docs/diagrams/experiments/timeline/diagram.svg +29 -0
- package/docs/diagrams/experiments/timeline/experiment.md +34 -0
- package/docs/diagrams/final-artifact-hygiene.md +40 -0
- package/docs/diagrams/mermaid-target-strategy.md +106 -0
- package/docs/diagrams/payment-gateway/architecture.md +57 -0
- package/docs/diagrams/payment-gateway/architecture.mmd +39 -0
- package/docs/diagrams/payment-gateway/architecture.svg +171 -0
- package/docs/diagrams/prompt-bank.md +48 -0
- package/docs/diagrams/salesforce-integration/architecture.md +56 -0
- package/docs/diagrams/salesforce-integration/architecture.mmd +26 -0
- package/docs/diagrams/salesforce-integration/architecture.svg +123 -0
- package/docs/diagrams/source-fidelity-review.md +116 -0
- package/docs/diagrams/state-uml-recreated.drawio +336 -0
- package/docs/diagrams/state-uml-recreated.prompt.md +114 -0
- package/docs/diagrams/state-uml-recreated.prompt.v10.md +52 -0
- package/docs/diagrams/state-uml-recreated.prompt.v11.md +52 -0
- package/docs/diagrams/state-uml-recreated.prompt.v12.md +50 -0
- package/docs/diagrams/state-uml-recreated.prompt.v14.md +91 -0
- package/docs/diagrams/state-uml-recreated.prompt.v2.md +31 -0
- package/docs/diagrams/state-uml-recreated.prompt.v3.md +36 -0
- package/docs/diagrams/state-uml-recreated.prompt.v4.md +35 -0
- package/docs/diagrams/state-uml-recreated.prompt.v5.md +35 -0
- package/docs/diagrams/state-uml-recreated.prompt.v6.md +39 -0
- package/docs/diagrams/state-uml-recreated.prompt.v7.md +37 -0
- package/docs/diagrams/state-uml-recreated.prompt.v8.md +41 -0
- package/docs/diagrams/state-uml-recreated.prompt.v9.md +32 -0
- package/docs/diagrams/state-uml-recreated.svg +159 -0
- package/docs/diagrams/v14-stress-test/README.md +33 -0
- package/docs/diagrams/v14-stress-test/stress-test.svg +114 -0
- package/docs/external-artifact-import-bridge.md +56 -0
- package/docs/{setup-agents-applicability-review.md → external-baseline-applicability-review.md} +37 -40
- package/docs/{setup-agents-dogfooding-findings.md → external-baseline-dogfooding-findings.md} +10 -9
- package/docs/multi-agent-orchestrator-backlog.md +1 -1
- package/docs/orchestra-mvp.md +19 -0
- package/docs/persona-workflows.md +42 -0
- package/docs/release-test-matrix.md +21 -9
- package/docs/reports/ac-evidence-backfill-20260517.md +256 -0
- package/docs/reports/ac-evolution-reconciliation-20260517.md +366 -0
- package/docs/reports/ac-failure-evidence-20260517.md +115 -0
- package/docs/reports/ac-history-dry-run-20260517.md +434 -0
- package/docs/runtime-llm-flow.md +8 -0
- package/docs/site-content-workflow.md +96 -0
- package/docs/site-manifest.json +143 -0
- package/docs/skill-loading-strategy.md +19 -7
- package/docs/story-mapping-adoption-review.md +99 -0
- package/docs/traceability-flow.md +11 -0
- package/docs/workspace-repo-strategy.md +63 -0
- package/package.json +3 -1
- package/rules/agent-collaboration.mdc +2 -0
- package/rules/code-review-engineering.mdc +2 -0
- package/rules/delivery-quality-gates.mdc +12 -0
- package/rules/development-engineering.mdc +5 -0
- package/rules/devops-tooling.mdc +1 -0
- package/rules/diagram-quality.mdc +35 -0
- package/rules/dry-clean-code.mdc +1 -0
- package/rules/module-boundaries.mdc +71 -0
- package/rules/performance-reliability.mdc +1 -0
- package/rules/testing-discipline.mdc +17 -1
- package/skills/collection-standards/SKILL.md +65 -0
- package/skills/collection-standards/manifest.json +69 -0
- package/skills/diagram-export/SKILL.md +30 -0
- package/skills/qa-evidence-pack/SKILL.md +110 -0
- package/skills/qa-evidence-pack/manifest.json +60 -0
- package/docs/setup-agents-bridge.md +0 -61
- /package/dist/web-console/assets/{index-M3S0g1GK.js → index-BNESIVvk.js} +0 -0
|
@@ -0,0 +1,336 @@
|
|
|
1
|
+
<mxfile host="Open Orchestra" modified="2026-05-16T09:35:00.000Z" agent="open-orchestra" version="1">
|
|
2
|
+
<diagram id="state-uml-recreated" name="State UML Recreated">
|
|
3
|
+
<mxGraphModel dx="1180" dy="1680" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1180" pageHeight="1680" math="0" shadow="0">
|
|
4
|
+
<root>
|
|
5
|
+
<mxCell id="0" />
|
|
6
|
+
<mxCell id="1" parent="0" />
|
|
7
|
+
|
|
8
|
+
<mxCell id="title-concurrent" value="Estado concurrente" style="text;html=1;strokeColor=none;fillColor=none;fontColor=#1F2933;fontStyle=1;fontSize=24;align=left;verticalAlign=middle;" vertex="1" parent="1">
|
|
9
|
+
<mxGeometry x="40" y="20" width="300" height="32" as="geometry" />
|
|
10
|
+
</mxCell>
|
|
11
|
+
<mxCell id="concurrent-on" value="On" style="rounded=1;whiteSpace=wrap;html=1;arcSize=6;fillColor=#74C7ED;strokeColor=#222222;fontColor=#1F2933;fontSize=15;verticalAlign=top;spacingTop=4;" vertex="1" parent="1">
|
|
12
|
+
<mxGeometry x="180" y="76" width="500" height="360" as="geometry" />
|
|
13
|
+
</mxCell>
|
|
14
|
+
<mxCell id="concurrent-region-a" value="" style="line;strokeWidth=2;html=1;strokeColor=#222222;" vertex="1" parent="1">
|
|
15
|
+
<mxGeometry x="180" y="196" width="500" height="10" as="geometry" />
|
|
16
|
+
</mxCell>
|
|
17
|
+
<mxCell id="concurrent-region-b" value="" style="line;strokeWidth=2;dashed=1;dashPattern=8 5;html=1;strokeColor=#222222;" vertex="1" parent="1">
|
|
18
|
+
<mxGeometry x="180" y="266" width="500" height="10" as="geometry" />
|
|
19
|
+
</mxCell>
|
|
20
|
+
<mxCell id="display-current" value="Display Current<br>Time" style="rounded=1;whiteSpace=wrap;html=1;arcSize=18;fillColor=#74C7ED;strokeColor=#222222;fontColor=#1F2933;fontSize=15;" vertex="1" parent="1">
|
|
21
|
+
<mxGeometry x="260" y="164" width="150" height="62" as="geometry" />
|
|
22
|
+
</mxCell>
|
|
23
|
+
<mxCell id="display-alarm" value="Display Alarm<br>Time" style="rounded=1;whiteSpace=wrap;html=1;arcSize=18;fillColor=#74C7ED;strokeColor=#222222;fontColor=#1F2933;fontSize=15;" vertex="1" parent="1">
|
|
24
|
+
<mxGeometry x="440" y="164" width="150" height="62" as="geometry" />
|
|
25
|
+
</mxCell>
|
|
26
|
+
<mxCell id="playing-radio" value="Playing Radio" style="rounded=1;whiteSpace=wrap;html=1;arcSize=18;fillColor=#74C7ED;strokeColor=#222222;fontColor=#1F2933;fontSize=15;" vertex="1" parent="1">
|
|
27
|
+
<mxGeometry x="290" y="316" width="120" height="62" as="geometry" />
|
|
28
|
+
</mxCell>
|
|
29
|
+
<mxCell id="playing-cd" value="Playing CD" style="rounded=1;whiteSpace=wrap;html=1;arcSize=18;fillColor=#74C7ED;strokeColor=#222222;fontColor=#1F2933;fontSize=15;" vertex="1" parent="1">
|
|
30
|
+
<mxGeometry x="440" y="316" width="120" height="62" as="geometry" />
|
|
31
|
+
</mxCell>
|
|
32
|
+
<mxCell id="history-concurrent" value="H" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;fillColor=#74C7ED;strokeColor=#222222;fontColor=#1F2933;fontSize=15;" vertex="1" parent="1">
|
|
33
|
+
<mxGeometry x="204" y="333" width="28" height="28" as="geometry" />
|
|
34
|
+
</mxCell>
|
|
35
|
+
<mxCell id="off" value="Off" style="rounded=1;whiteSpace=wrap;html=1;arcSize=18;fillColor=#74C7ED;strokeColor=#222222;fontColor=#1F2933;fontSize=18;" vertex="1" parent="1">
|
|
36
|
+
<mxGeometry x="362" y="514" width="170" height="62" as="geometry" />
|
|
37
|
+
</mxCell>
|
|
38
|
+
<mxCell id="concurrent-time" value="time" style="endArrow=block;html=1;rounded=0;strokeColor=#222222;fontColor=#1F2933;edgeStyle=orthogonalEdgeStyle;" edge="1" parent="1">
|
|
39
|
+
<mxGeometry relative="1" as="geometry">
|
|
40
|
+
<mxPoint x="180" y="196" as="sourcePoint" />
|
|
41
|
+
<mxPoint x="260" y="196" as="targetPoint" />
|
|
42
|
+
</mxGeometry>
|
|
43
|
+
</mxCell>
|
|
44
|
+
<mxCell id="concurrent-alarm" value="alarm" style="endArrow=block;html=1;rounded=0;strokeColor=#222222;fontColor=#1F2933;edgeStyle=orthogonalEdgeStyle;" edge="1" parent="1">
|
|
45
|
+
<mxGeometry relative="1" as="geometry">
|
|
46
|
+
<mxPoint x="680" y="196" as="sourcePoint" />
|
|
47
|
+
<mxPoint x="590" y="196" as="targetPoint" />
|
|
48
|
+
</mxGeometry>
|
|
49
|
+
</mxCell>
|
|
50
|
+
<mxCell id="concurrent-h-radio" value="" style="endArrow=block;html=1;rounded=0;strokeColor=#222222;edgeStyle=orthogonalEdgeStyle;" edge="1" parent="1">
|
|
51
|
+
<mxGeometry relative="1" as="geometry">
|
|
52
|
+
<mxPoint x="232" y="346" as="sourcePoint" />
|
|
53
|
+
<mxPoint x="290" y="346" as="targetPoint" />
|
|
54
|
+
</mxGeometry>
|
|
55
|
+
</mxCell>
|
|
56
|
+
<mxCell id="off-radio" value="" style="endArrow=block;html=1;rounded=0;strokeColor=#222222;edgeStyle=orthogonalEdgeStyle;" edge="1" parent="1">
|
|
57
|
+
<mxGeometry relative="1" as="geometry">
|
|
58
|
+
<mxPoint x="362" y="545" as="sourcePoint" />
|
|
59
|
+
<mxPoint x="350" y="378" as="targetPoint" />
|
|
60
|
+
<Array as="points">
|
|
61
|
+
<mxPoint x="350" y="545" />
|
|
62
|
+
</Array>
|
|
63
|
+
</mxGeometry>
|
|
64
|
+
</mxCell>
|
|
65
|
+
<mxCell id="label-radio" value="Radio" style="text;html=1;strokeColor=none;fillColor=none;fontColor=#1F2933;fontSize=18;align=center;verticalAlign=middle;" vertex="1" parent="1">
|
|
66
|
+
<mxGeometry x="356" y="398" width="70" height="24" as="geometry" />
|
|
67
|
+
</mxCell>
|
|
68
|
+
<mxCell id="off-cd" value="" style="endArrow=block;html=1;rounded=0;strokeColor=#222222;edgeStyle=orthogonalEdgeStyle;" edge="1" parent="1">
|
|
69
|
+
<mxGeometry relative="1" as="geometry">
|
|
70
|
+
<mxPoint x="462" y="514" as="sourcePoint" />
|
|
71
|
+
<mxPoint x="500" y="378" as="targetPoint" />
|
|
72
|
+
<Array as="points">
|
|
73
|
+
<mxPoint x="462" y="480" />
|
|
74
|
+
<mxPoint x="500" y="480" />
|
|
75
|
+
</Array>
|
|
76
|
+
</mxGeometry>
|
|
77
|
+
</mxCell>
|
|
78
|
+
<mxCell id="label-cd" value="CD" style="text;html=1;strokeColor=none;fillColor=none;fontColor=#1F2933;fontSize=18;align=center;verticalAlign=middle;" vertex="1" parent="1">
|
|
79
|
+
<mxGeometry x="518" y="398" width="50" height="24" as="geometry" />
|
|
80
|
+
</mxCell>
|
|
81
|
+
<mxCell id="on-off" value="on" style="endArrow=block;html=1;rounded=0;strokeColor=#222222;fontColor=#1F2933;edgeStyle=orthogonalEdgeStyle;" edge="1" parent="1">
|
|
82
|
+
<mxGeometry relative="1" as="geometry">
|
|
83
|
+
<mxPoint x="426" y="514" as="sourcePoint" />
|
|
84
|
+
<mxPoint x="426" y="436" as="targetPoint" />
|
|
85
|
+
</mxGeometry>
|
|
86
|
+
</mxCell>
|
|
87
|
+
<mxCell id="off-on" value="off" style="endArrow=block;html=1;rounded=0;strokeColor=#222222;fontColor=#1F2933;edgeStyle=orthogonalEdgeStyle;" edge="1" parent="1">
|
|
88
|
+
<mxGeometry relative="1" as="geometry">
|
|
89
|
+
<mxPoint x="532" y="436" as="sourcePoint" />
|
|
90
|
+
<mxPoint x="532" y="514" as="targetPoint" />
|
|
91
|
+
</mxGeometry>
|
|
92
|
+
</mxCell>
|
|
93
|
+
|
|
94
|
+
<mxCell id="title-history" value="Shallow history state" style="text;html=1;strokeColor=none;fillColor=none;fontColor=#1F2933;fontStyle=1;fontSize=24;align=left;" vertex="1" parent="1">
|
|
95
|
+
<mxGeometry x="40" y="650" width="340" height="32" as="geometry" />
|
|
96
|
+
</mxCell>
|
|
97
|
+
<mxCell id="command" value="Command" style="rounded=1;whiteSpace=wrap;html=1;arcSize=18;fillColor=#74C7ED;strokeColor=#222222;fontColor=#1F2933;fontSize=15;" vertex="1" parent="1">
|
|
98
|
+
<mxGeometry x="135" y="780" width="120" height="60" as="geometry" />
|
|
99
|
+
</mxCell>
|
|
100
|
+
<mxCell id="backup" value="BackingUp" style="rounded=1;whiteSpace=wrap;html=1;arcSize=6;fillColor=#74C7ED;strokeColor=#222222;fontColor=#1F2933;fontSize=15;verticalAlign=top;spacingTop=4;" vertex="1" parent="1">
|
|
101
|
+
<mxGeometry x="390" y="733" width="290" height="350" as="geometry" />
|
|
102
|
+
</mxCell>
|
|
103
|
+
<mxCell id="history-h" value="H" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;fillColor=#74C7ED;strokeColor=#222222;fontColor=#1F2933;fontSize=15;" vertex="1" parent="1">
|
|
104
|
+
<mxGeometry x="430" y="807" width="30" height="30" as="geometry" />
|
|
105
|
+
</mxCell>
|
|
106
|
+
<mxCell id="collecting" value="Collecting" style="rounded=1;whiteSpace=wrap;html=1;arcSize=18;fillColor=#74C7ED;strokeColor=#222222;fontColor=#1F2933;fontSize=15;" vertex="1" parent="1">
|
|
107
|
+
<mxGeometry x="515" y="780" width="120" height="60" as="geometry" />
|
|
108
|
+
</mxCell>
|
|
109
|
+
<mxCell id="copying" value="Copying" style="rounded=1;whiteSpace=wrap;html=1;arcSize=18;fillColor=#74C7ED;strokeColor=#222222;fontColor=#1F2933;fontSize=15;" vertex="1" parent="1">
|
|
110
|
+
<mxGeometry x="515" y="890" width="120" height="60" as="geometry" />
|
|
111
|
+
</mxCell>
|
|
112
|
+
<mxCell id="cleaning" value="Cleaning Up" style="rounded=1;whiteSpace=wrap;html=1;arcSize=18;fillColor=#74C7ED;strokeColor=#222222;fontColor=#1F2933;fontSize=15;" vertex="1" parent="1">
|
|
113
|
+
<mxGeometry x="515" y="1010" width="120" height="60" as="geometry" />
|
|
114
|
+
</mxCell>
|
|
115
|
+
<mxCell id="cmd-to-h" value="" style="endArrow=block;html=1;rounded=0;strokeColor=#222222;edgeStyle=orthogonalEdgeStyle;jumpStyle=arc;jumpSize=8;" edge="1" parent="1">
|
|
116
|
+
<mxGeometry relative="1" as="geometry">
|
|
117
|
+
<mxPoint x="255" y="810" as="sourcePoint" />
|
|
118
|
+
<mxPoint x="430" y="822" as="targetPoint" />
|
|
119
|
+
</mxGeometry>
|
|
120
|
+
</mxCell>
|
|
121
|
+
<mxCell id="h-to-collecting" value="" style="endArrow=block;html=1;rounded=0;strokeColor=#222222;edgeStyle=orthogonalEdgeStyle;jumpStyle=arc;jumpSize=8;" edge="1" parent="1">
|
|
122
|
+
<mxGeometry relative="1" as="geometry">
|
|
123
|
+
<mxPoint x="460" y="807" as="sourcePoint" />
|
|
124
|
+
<mxPoint x="515" y="807" as="targetPoint" />
|
|
125
|
+
</mxGeometry>
|
|
126
|
+
</mxCell>
|
|
127
|
+
<mxCell id="collecting-copying" value="" style="endArrow=block;html=1;rounded=0;strokeColor=#222222;edgeStyle=orthogonalEdgeStyle;jumpStyle=arc;jumpSize=8;" edge="1" parent="1">
|
|
128
|
+
<mxGeometry relative="1" as="geometry">
|
|
129
|
+
<mxPoint x="575" y="840" as="sourcePoint" />
|
|
130
|
+
<mxPoint x="575" y="890" as="targetPoint" />
|
|
131
|
+
</mxGeometry>
|
|
132
|
+
</mxCell>
|
|
133
|
+
<mxCell id="copying-cleaning" value="" style="endArrow=block;html=1;rounded=0;strokeColor=#222222;edgeStyle=orthogonalEdgeStyle;jumpStyle=arc;jumpSize=8;" edge="1" parent="1">
|
|
134
|
+
<mxGeometry relative="1" as="geometry">
|
|
135
|
+
<mxPoint x="575" y="950" as="sourcePoint" />
|
|
136
|
+
<mxPoint x="575" y="1010" as="targetPoint" />
|
|
137
|
+
</mxGeometry>
|
|
138
|
+
</mxCell>
|
|
139
|
+
<mxCell id="history-query" value="query" style="endArrow=block;html=1;rounded=0;strokeColor=#222222;fontColor=#1F2933;edgeStyle=orthogonalEdgeStyle;jumpStyle=arc;jumpSize=8;" edge="1" parent="1">
|
|
140
|
+
<mxGeometry relative="1" as="geometry">
|
|
141
|
+
<mxPoint x="390" y="890" as="sourcePoint" />
|
|
142
|
+
<mxPoint x="210" y="840" as="targetPoint" />
|
|
143
|
+
<Array as="points">
|
|
144
|
+
<mxPoint x="210" y="890" />
|
|
145
|
+
</Array>
|
|
146
|
+
</mxGeometry>
|
|
147
|
+
</mxCell>
|
|
148
|
+
<mxCell id="history-clean-command" value="" style="endArrow=block;html=1;rounded=0;strokeColor=#222222;edgeStyle=orthogonalEdgeStyle;jumpStyle=arc;jumpSize=8;" edge="1" parent="1">
|
|
149
|
+
<mxGeometry relative="1" as="geometry">
|
|
150
|
+
<mxPoint x="515" y="1040" as="sourcePoint" />
|
|
151
|
+
<mxPoint x="180" y="840" as="targetPoint" />
|
|
152
|
+
<Array as="points">
|
|
153
|
+
<mxPoint x="180" y="1040" />
|
|
154
|
+
</Array>
|
|
155
|
+
</mxGeometry>
|
|
156
|
+
</mxCell>
|
|
157
|
+
<mxCell id="annot-state" value="State" style="text;html=1;strokeColor=none;fillColor=none;fontColor=#E35C5C;fontStyle=1;fontSize=20;" vertex="1" parent="1">
|
|
158
|
+
<mxGeometry x="158" y="690" width="100" height="28" as="geometry" />
|
|
159
|
+
</mxCell>
|
|
160
|
+
<mxCell id="annot-state-arrow" value="" style="endArrow=block;html=1;rounded=0;strokeColor=#E35C5C;strokeWidth=3;dashed=1;dashPattern=10 8;edgeStyle=orthogonalEdgeStyle;" edge="1" parent="1">
|
|
161
|
+
<mxGeometry relative="1" as="geometry">
|
|
162
|
+
<mxPoint x="190" y="733" as="sourcePoint" />
|
|
163
|
+
<mxPoint x="190" y="777" as="targetPoint" />
|
|
164
|
+
</mxGeometry>
|
|
165
|
+
</mxCell>
|
|
166
|
+
<mxCell id="annot-history" value="Shallow History State" style="text;html=1;strokeColor=none;fillColor=none;fontColor=#E35C5C;fontStyle=1;fontSize=20;" vertex="1" parent="1">
|
|
167
|
+
<mxGeometry x="305" y="673" width="250" height="28" as="geometry" />
|
|
168
|
+
</mxCell>
|
|
169
|
+
<mxCell id="annot-history-arrow" value="" style="endArrow=block;html=1;rounded=0;strokeColor=#E35C5C;strokeWidth=3;dashed=1;dashPattern=10 8;edgeStyle=orthogonalEdgeStyle;" edge="1" parent="1">
|
|
170
|
+
<mxGeometry relative="1" as="geometry">
|
|
171
|
+
<mxPoint x="425" y="707" as="sourcePoint" />
|
|
172
|
+
<mxPoint x="425" y="807" as="targetPoint" />
|
|
173
|
+
</mxGeometry>
|
|
174
|
+
</mxCell>
|
|
175
|
+
<mxCell id="annot-transition-history" value="Transition" style="text;html=1;strokeColor=none;fillColor=none;fontColor=#E35C5C;fontStyle=1;fontSize=20;" vertex="1" parent="1">
|
|
176
|
+
<mxGeometry x="240" y="1080" width="140" height="28" as="geometry" />
|
|
177
|
+
</mxCell>
|
|
178
|
+
<mxCell id="annot-transition-history-arrow" value="" style="endArrow=block;html=1;rounded=0;strokeColor=#E35C5C;strokeWidth=3;dashed=1;dashPattern=10 8;edgeStyle=orthogonalEdgeStyle;jumpStyle=arc;jumpSize=8;" edge="1" parent="1">
|
|
179
|
+
<mxGeometry relative="1" as="geometry">
|
|
180
|
+
<mxPoint x="292" y="1080" as="sourcePoint" />
|
|
181
|
+
<mxPoint x="292" y="1007" as="targetPoint" />
|
|
182
|
+
</mxGeometry>
|
|
183
|
+
</mxCell>
|
|
184
|
+
|
|
185
|
+
<mxCell id="title-actions" value="Acciones de entrada y salida" style="text;html=1;strokeColor=none;fillColor=none;fontColor=#1F2933;fontStyle=1;fontSize=24;align=left;" vertex="1" parent="1">
|
|
186
|
+
<mxGeometry x="40" y="1130" width="430" height="32" as="geometry" />
|
|
187
|
+
</mxCell>
|
|
188
|
+
<mxCell id="initial-dot" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;fillColor=#000000;strokeColor=#000000;" vertex="1" parent="1">
|
|
189
|
+
<mxGeometry x="473" y="1190" width="24" height="24" as="geometry" />
|
|
190
|
+
</mxCell>
|
|
191
|
+
<mxCell id="action-state-1" value="State<br>entry / Action 1_1<br>do / Action 1_2" style="rounded=1;whiteSpace=wrap;html=1;arcSize=18;fillColor=#74C7ED;strokeColor=#222222;fontColor=#1F2933;fontSize=13;" vertex="1" parent="1">
|
|
192
|
+
<mxGeometry x="405" y="1285" width="190" height="92" as="geometry" />
|
|
193
|
+
</mxCell>
|
|
194
|
+
<mxCell id="action-state-2" value="State2<br>entry / Action 2_1<br>Action 2_3 / defer<br>exit / Action 2_2" style="rounded=1;whiteSpace=wrap;html=1;arcSize=18;fillColor=#74C7ED;strokeColor=#222222;fontColor=#1F2933;fontSize=13;" vertex="1" parent="1">
|
|
195
|
+
<mxGeometry x="870" y="1285" width="190" height="98" as="geometry" />
|
|
196
|
+
</mxCell>
|
|
197
|
+
<mxCell id="action-state-3" value="State2<br>entry / Action 3_1" style="rounded=1;whiteSpace=wrap;html=1;arcSize=18;fillColor=#74C7ED;strokeColor=#222222;fontColor=#1F2933;fontSize=13;" vertex="1" parent="1">
|
|
198
|
+
<mxGeometry x="630" y="1455" width="190" height="88" as="geometry" />
|
|
199
|
+
</mxCell>
|
|
200
|
+
<mxCell id="decision" value="" style="rhombus;whiteSpace=wrap;html=1;fillColor=#74C7ED;strokeColor=#222222;" vertex="1" parent="1">
|
|
201
|
+
<mxGeometry x="472" y="1482" width="56" height="32" as="geometry" />
|
|
202
|
+
</mxCell>
|
|
203
|
+
<mxCell id="final-state" value="" style="ellipse;shape=doubleEllipse;whiteSpace=wrap;html=1;aspect=fixed;fillColor=#000000;strokeColor=#000000;" vertex="1" parent="1">
|
|
204
|
+
<mxGeometry x="486" y="1584" width="28" height="28" as="geometry" />
|
|
205
|
+
</mxCell>
|
|
206
|
+
<mxCell id="initial-to-state" value="" style="endArrow=block;html=1;rounded=0;strokeColor=#222222;edgeStyle=orthogonalEdgeStyle;" edge="1" parent="1">
|
|
207
|
+
<mxGeometry relative="1" as="geometry">
|
|
208
|
+
<mxPoint x="485" y="1214" as="sourcePoint" />
|
|
209
|
+
<mxPoint x="485" y="1285" as="targetPoint" />
|
|
210
|
+
</mxGeometry>
|
|
211
|
+
</mxCell>
|
|
212
|
+
<mxCell id="state1-state2" value="event [Guard1] / ActionA" style="endArrow=block;html=1;rounded=0;strokeColor=#222222;fontColor=#1F2933;fontSize=13;edgeStyle=orthogonalEdgeStyle;jumpStyle=arc;jumpSize=8;" edge="1" parent="1">
|
|
213
|
+
<mxGeometry relative="1" as="geometry">
|
|
214
|
+
<mxPoint x="595" y="1326" as="sourcePoint" />
|
|
215
|
+
<mxPoint x="870" y="1326" as="targetPoint" />
|
|
216
|
+
</mxGeometry>
|
|
217
|
+
</mxCell>
|
|
218
|
+
<mxCell id="decision-state1" value="" style="endArrow=block;html=1;rounded=0;strokeColor=#222222;fontColor=#1F2933;fontSize=13;edgeStyle=orthogonalEdgeStyle;jumpStyle=arc;jumpSize=8;" edge="1" parent="1">
|
|
219
|
+
<mxGeometry relative="1" as="geometry">
|
|
220
|
+
<mxPoint x="500" y="1482" as="sourcePoint" />
|
|
221
|
+
<mxPoint x="500" y="1377" as="targetPoint" />
|
|
222
|
+
</mxGeometry>
|
|
223
|
+
</mxCell>
|
|
224
|
+
<mxCell id="action-label-guard4" value="[Guard4]" style="text;html=1;strokeColor=none;fillColor=none;fontColor=#1F2933;fontSize=13;align=left;verticalAlign=middle;" vertex="1" parent="1">
|
|
225
|
+
<mxGeometry x="525" y="1428" width="80" height="24" as="geometry" />
|
|
226
|
+
</mxCell>
|
|
227
|
+
<mxCell id="decision-final" value="" style="endArrow=block;html=1;rounded=0;strokeColor=#222222;fontColor=#1F2933;fontSize=13;edgeStyle=orthogonalEdgeStyle;jumpStyle=arc;jumpSize=8;" edge="1" parent="1">
|
|
228
|
+
<mxGeometry relative="1" as="geometry">
|
|
229
|
+
<mxPoint x="500" y="1514" as="sourcePoint" />
|
|
230
|
+
<mxPoint x="500" y="1584" as="targetPoint" />
|
|
231
|
+
</mxGeometry>
|
|
232
|
+
</mxCell>
|
|
233
|
+
<mxCell id="action-label-else" value="[Else]" style="text;html=1;strokeColor=none;fillColor=none;fontColor=#1F2933;fontSize=13;align=left;verticalAlign=middle;" vertex="1" parent="1">
|
|
234
|
+
<mxGeometry x="513" y="1536" width="60" height="24" as="geometry" />
|
|
235
|
+
</mxCell>
|
|
236
|
+
<mxCell id="state2-state3" value="" style="endArrow=block;html=1;rounded=0;strokeColor=#222222;fontColor=#1F2933;fontSize=13;edgeStyle=orthogonalEdgeStyle;jumpStyle=arc;jumpSize=8;" edge="1" parent="1">
|
|
237
|
+
<mxGeometry relative="1" as="geometry">
|
|
238
|
+
<mxPoint x="870" y="1335" as="sourcePoint" />
|
|
239
|
+
<mxPoint x="725" y="1455" as="targetPoint" />
|
|
240
|
+
<Array as="points">
|
|
241
|
+
<mxPoint x="725" y="1335" />
|
|
242
|
+
</Array>
|
|
243
|
+
</mxGeometry>
|
|
244
|
+
</mxCell>
|
|
245
|
+
<mxCell id="action-label-guard3" value="[Guard3] / ActionB" style="text;html=1;strokeColor=none;fillColor=none;fontColor=#1F2933;fontSize=13;align=left;verticalAlign=middle;" vertex="1" parent="1">
|
|
246
|
+
<mxGeometry x="745" y="1430" width="130" height="24" as="geometry" />
|
|
247
|
+
</mxCell>
|
|
248
|
+
<mxCell id="state2-guard2-state3" value="" style="endArrow=block;html=1;rounded=0;strokeColor=#222222;fontColor=#1F2933;fontSize=13;edgeStyle=orthogonalEdgeStyle;jumpStyle=arc;jumpSize=8;" edge="1" parent="1">
|
|
249
|
+
<mxGeometry relative="1" as="geometry">
|
|
250
|
+
<mxPoint x="1060" y="1366" as="sourcePoint" />
|
|
251
|
+
<mxPoint x="820" y="1499" as="targetPoint" />
|
|
252
|
+
<Array as="points">
|
|
253
|
+
<mxPoint x="1060" y="1499" />
|
|
254
|
+
</Array>
|
|
255
|
+
</mxGeometry>
|
|
256
|
+
</mxCell>
|
|
257
|
+
<mxCell id="action-label-guard2" value="[Guard2]" style="text;html=1;strokeColor=none;fillColor=none;fontColor=#1F2933;fontSize=13;align=left;verticalAlign=middle;" vertex="1" parent="1">
|
|
258
|
+
<mxGeometry x="945" y="1510" width="80" height="24" as="geometry" />
|
|
259
|
+
</mxCell>
|
|
260
|
+
<mxCell id="state3-decision" value="" style="endArrow=block;html=1;rounded=0;strokeColor=#222222;fontColor=#1F2933;fontSize=13;edgeStyle=orthogonalEdgeStyle;jumpStyle=arc;jumpSize=8;" edge="1" parent="1">
|
|
261
|
+
<mxGeometry relative="1" as="geometry">
|
|
262
|
+
<mxPoint x="630" y="1499" as="sourcePoint" />
|
|
263
|
+
<mxPoint x="528" y="1499" as="targetPoint" />
|
|
264
|
+
</mxGeometry>
|
|
265
|
+
</mxCell>
|
|
266
|
+
|
|
267
|
+
<mxCell id="annot-initial" value="Initial Pseudo State" style="text;html=1;strokeColor=none;fillColor=none;fontColor=#E35C5C;fontStyle=1;fontSize=20;" vertex="1" parent="1">
|
|
268
|
+
<mxGeometry x="245" y="1188" width="230" height="28" as="geometry" />
|
|
269
|
+
</mxCell>
|
|
270
|
+
<mxCell id="annot-entry" value="Entry action" style="text;html=1;strokeColor=none;fillColor=none;fontColor=#E35C5C;fontStyle=1;fontSize=20;" vertex="1" parent="1">
|
|
271
|
+
<mxGeometry x="73" y="1306" width="150" height="28" as="geometry" />
|
|
272
|
+
</mxCell>
|
|
273
|
+
<mxCell id="annot-entry-arrow" value="" style="endArrow=block;html=1;rounded=0;strokeColor=#E35C5C;strokeWidth=3;dashed=1;dashPattern=10 8;edgeStyle=orthogonalEdgeStyle;" edge="1" parent="1">
|
|
274
|
+
<mxGeometry relative="1" as="geometry">
|
|
275
|
+
<mxPoint x="243" y="1318" as="sourcePoint" />
|
|
276
|
+
<mxPoint x="405" y="1318" as="targetPoint" />
|
|
277
|
+
</mxGeometry>
|
|
278
|
+
</mxCell>
|
|
279
|
+
<mxCell id="annot-action-state" value="Action in state" style="text;html=1;strokeColor=none;fillColor=none;fontColor=#E35C5C;fontStyle=1;fontSize=20;" vertex="1" parent="1">
|
|
280
|
+
<mxGeometry x="323" y="1408" width="180" height="28" as="geometry" />
|
|
281
|
+
</mxCell>
|
|
282
|
+
<mxCell id="annot-action-state-arrow" value="" style="endArrow=block;html=1;rounded=0;strokeColor=#E35C5C;strokeWidth=3;dashed=1;dashPattern=10 8;edgeStyle=orthogonalEdgeStyle;" edge="1" parent="1">
|
|
283
|
+
<mxGeometry relative="1" as="geometry">
|
|
284
|
+
<mxPoint x="447" y="1396" as="sourcePoint" />
|
|
285
|
+
<mxPoint x="447" y="1358" as="targetPoint" />
|
|
286
|
+
</mxGeometry>
|
|
287
|
+
</mxCell>
|
|
288
|
+
<mxCell id="annot-decision" value="Decision" style="text;html=1;strokeColor=none;fillColor=none;fontColor=#E35C5C;fontStyle=1;fontSize=20;" vertex="1" parent="1">
|
|
289
|
+
<mxGeometry x="295" y="1500" width="120" height="28" as="geometry" />
|
|
290
|
+
</mxCell>
|
|
291
|
+
<mxCell id="annot-decision-arrow" value="" style="endArrow=block;html=1;rounded=0;strokeColor=#E35C5C;strokeWidth=3;dashed=1;dashPattern=10 8;edgeStyle=orthogonalEdgeStyle;" edge="1" parent="1">
|
|
292
|
+
<mxGeometry relative="1" as="geometry">
|
|
293
|
+
<mxPoint x="385" y="1503" as="sourcePoint" />
|
|
294
|
+
<mxPoint x="472" y="1503" as="targetPoint" />
|
|
295
|
+
</mxGeometry>
|
|
296
|
+
</mxCell>
|
|
297
|
+
<mxCell id="annot-transition" value="Transition" style="text;html=1;strokeColor=none;fillColor=none;fontColor=#E35C5C;fontStyle=1;fontSize=20;" vertex="1" parent="1">
|
|
298
|
+
<mxGeometry x="665" y="1208" width="140" height="28" as="geometry" />
|
|
299
|
+
</mxCell>
|
|
300
|
+
<mxCell id="annot-transition-arrow" value="" style="endArrow=block;html=1;rounded=0;strokeColor=#E35C5C;strokeWidth=3;dashed=1;dashPattern=10 8;edgeStyle=orthogonalEdgeStyle;" edge="1" parent="1">
|
|
301
|
+
<mxGeometry relative="1" as="geometry">
|
|
302
|
+
<mxPoint x="715" y="1228" as="sourcePoint" />
|
|
303
|
+
<mxPoint x="715" y="1308" as="targetPoint" />
|
|
304
|
+
</mxGeometry>
|
|
305
|
+
</mxCell>
|
|
306
|
+
<mxCell id="annot-triggered" value="Triggered Action" style="text;html=1;strokeColor=none;fillColor=none;fontColor=#E35C5C;fontStyle=1;fontSize=20;" vertex="1" parent="1">
|
|
307
|
+
<mxGeometry x="835" y="1200" width="220" height="28" as="geometry" />
|
|
308
|
+
</mxCell>
|
|
309
|
+
<mxCell id="annot-triggered-arrow" value="" style="endArrow=block;html=1;rounded=0;strokeColor=#E35C5C;strokeWidth=3;dashed=1;dashPattern=10 8;edgeStyle=orthogonalEdgeStyle;" edge="1" parent="1">
|
|
310
|
+
<mxGeometry relative="1" as="geometry">
|
|
311
|
+
<mxPoint x="960" y="1214" as="sourcePoint" />
|
|
312
|
+
<mxPoint x="960" y="1318" as="targetPoint" />
|
|
313
|
+
</mxGeometry>
|
|
314
|
+
</mxCell>
|
|
315
|
+
<mxCell id="annot-exit" value="Exit action" style="text;html=1;strokeColor=none;fillColor=none;fontColor=#E35C5C;fontStyle=1;fontSize=20;" vertex="1" parent="1">
|
|
316
|
+
<mxGeometry x="1073" y="1384" width="130" height="28" as="geometry" />
|
|
317
|
+
</mxCell>
|
|
318
|
+
<mxCell id="annot-exit-arrow" value="" style="endArrow=block;html=1;rounded=0;strokeColor=#E35C5C;strokeWidth=3;dashed=1;dashPattern=10 8;edgeStyle=orthogonalEdgeStyle;" edge="1" parent="1">
|
|
319
|
+
<mxGeometry relative="1" as="geometry">
|
|
320
|
+
<mxPoint x="1069" y="1384" as="sourcePoint" />
|
|
321
|
+
<mxPoint x="1001" y="1366" as="targetPoint" />
|
|
322
|
+
</mxGeometry>
|
|
323
|
+
</mxCell>
|
|
324
|
+
<mxCell id="annot-final" value="Final State" style="text;html=1;strokeColor=none;fillColor=none;fontColor=#E35C5C;fontStyle=1;fontSize=20;" vertex="1" parent="1">
|
|
325
|
+
<mxGeometry x="285" y="1590" width="130" height="28" as="geometry" />
|
|
326
|
+
</mxCell>
|
|
327
|
+
<mxCell id="annot-final-arrow" value="" style="endArrow=block;html=1;rounded=0;strokeColor=#E35C5C;strokeWidth=3;dashed=1;dashPattern=10 8;edgeStyle=orthogonalEdgeStyle;" edge="1" parent="1">
|
|
328
|
+
<mxGeometry relative="1" as="geometry">
|
|
329
|
+
<mxPoint x="405" y="1598" as="sourcePoint" />
|
|
330
|
+
<mxPoint x="486" y="1598" as="targetPoint" />
|
|
331
|
+
</mxGeometry>
|
|
332
|
+
</mxCell>
|
|
333
|
+
</root>
|
|
334
|
+
</mxGraphModel>
|
|
335
|
+
</diagram>
|
|
336
|
+
</mxfile>
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
# Master Prompt: UML State Diagram Recreation
|
|
2
|
+
|
|
3
|
+
Recreate the diagrams from the latest downloaded Visual Paradigm UML state PDF
|
|
4
|
+
as editable draw.io XML and rendered SVG.
|
|
5
|
+
|
|
6
|
+
Use the most recent PDF in `~/Downloads` as source material. Convert the PDF
|
|
7
|
+
pages to PNG, inspect the pages that contain diagrams, and recreate the visual
|
|
8
|
+
content as closely as possible.
|
|
9
|
+
|
|
10
|
+
When no source PDF, screenshot, or design reference exists, create a diagram
|
|
11
|
+
contract before drawing: purpose, audience, diagram type, node inventory,
|
|
12
|
+
container/group inventory, relationship inventory, labels, annotations, expected
|
|
13
|
+
reading flow, and planned connector source/target/anchor points.
|
|
14
|
+
|
|
15
|
+
Pay attention to:
|
|
16
|
+
|
|
17
|
+
- element spacing and relative position.
|
|
18
|
+
- container width and height after real text is placed.
|
|
19
|
+
- connector routing, bend points, and post-render adjustment against the source
|
|
20
|
+
reference.
|
|
21
|
+
- line avoidance so connectors do not run over important labels or containers.
|
|
22
|
+
- arrows terminating at the intended connection edge, not deep inside shapes.
|
|
23
|
+
- endpoint distance from source to target, so every connector visibly touches
|
|
24
|
+
both the origin and destination edges.
|
|
25
|
+
- source-to-target distance validation: for each connector, confirm the line
|
|
26
|
+
starts at the visual boundary of the source element and ends at the visual
|
|
27
|
+
boundary of the intended target element.
|
|
28
|
+
- connector intent validation: if a label such as `Radio`, `CD`, `on`, or `off`
|
|
29
|
+
implies a specific target state, the arrow must reach that state instead of
|
|
30
|
+
stopping at the parent container.
|
|
31
|
+
- connector label avoidance: route arrows so they do not cover state labels or
|
|
32
|
+
transition labels unless the source diagram explicitly does so.
|
|
33
|
+
- label boundary clearance: after rendering, verify that every label has visual
|
|
34
|
+
clearance from container borders, connector lines, and arrowheads. Labels must
|
|
35
|
+
not sit directly on a shape boundary.
|
|
36
|
+
- annotation target clarity: every annotation arrow must have an explicit visual
|
|
37
|
+
target, and annotation text/arrows must not obscure the element, line, or label
|
|
38
|
+
they describe.
|
|
39
|
+
- concrete visual regression checklist: convert observed diagram issues into
|
|
40
|
+
explicit examples under the existing endpoint, z-order, label-clearance,
|
|
41
|
+
annotation-target, and layout-simplification rules instead of duplicating the
|
|
42
|
+
concepts.
|
|
43
|
+
- element ordering and z-index: draw containers and states before their
|
|
44
|
+
connectors, then draw connectors above the connected elements so arrowheads
|
|
45
|
+
and line endpoints remain visible at the target boundary. A connector must not
|
|
46
|
+
disappear behind the element it is intended to connect.
|
|
47
|
+
- connection point aesthetics: choose source and target anchor points that
|
|
48
|
+
minimize unnecessary bends and line travel. Prefer side midpoints or the
|
|
49
|
+
nearest clean boundary point when that produces fewer orthogonal turns than
|
|
50
|
+
starting from the top or bottom edge.
|
|
51
|
+
- orthogonal connector aesthetics: avoid diagonal connectors unless the source
|
|
52
|
+
diagram explicitly requires them. Prefer horizontal/vertical segments with
|
|
53
|
+
controlled bend points.
|
|
54
|
+
- line crossing treatment: when two lines must cross, use a visible line jump or
|
|
55
|
+
bridge on the line that visually passes over the other line; in draw.io,
|
|
56
|
+
prefer arc-style jumps such as `jumpStyle=arc`.
|
|
57
|
+
- layout simplification before bend acceptance: before accepting a connector
|
|
58
|
+
bend, evaluate whether moving the source or target element slightly can remove
|
|
59
|
+
the bend while preserving the diagram's semantic relationship and visual
|
|
60
|
+
balance.
|
|
61
|
+
- editable/rendered equivalence: keep the draw.io XML source and rendered SVG
|
|
62
|
+
geometrically equivalent. Any moved element, connector, label, or annotation in
|
|
63
|
+
the SVG must have a corresponding editable cell or edge in the draw.io source.
|
|
64
|
+
- source-free quality loop: when no reference exists, validate the first render
|
|
65
|
+
against the pre-declared diagram contract, not intuition.
|
|
66
|
+
- text and shape rotation: preserve vertical, horizontal, or diagonal text
|
|
67
|
+
orientation from the source. In draw.io, use explicit degree-based rotation
|
|
68
|
+
styles such as `rotation=270` or `textRotation=-90` when the source resembles
|
|
69
|
+
Lucid-style positive or negative axis rotation.
|
|
70
|
+
- fill, border, text, and annotation colors.
|
|
71
|
+
- rounded corners, border weight, dashed lines, and region separators.
|
|
72
|
+
- typography, label placement, and text wrapping.
|
|
73
|
+
- final resizing and visual balance pass after the diagram is assembled and
|
|
74
|
+
rendered.
|
|
75
|
+
|
|
76
|
+
Produce:
|
|
77
|
+
|
|
78
|
+
- `docs/diagrams/state-uml-recreated.drawio`
|
|
79
|
+
- `docs/diagrams/state-uml-recreated.svg`
|
|
80
|
+
|
|
81
|
+
Validate:
|
|
82
|
+
|
|
83
|
+
- XML validity for both draw.io and SVG artifacts.
|
|
84
|
+
- SVG render through a browser screenshot.
|
|
85
|
+
- Visual endpoint QA for every connector in the rendered screenshot.
|
|
86
|
+
- Visual z-order QA for every connector; no arrowhead or connector endpoint may
|
|
87
|
+
be hidden behind the element it connects.
|
|
88
|
+
- Visual anchor-point QA for every connector; source and target points should be
|
|
89
|
+
chosen for the shortest readable orthogonal route with the fewest bend points.
|
|
90
|
+
- Visual diagonal/crossing QA; connectors should be orthogonal when practical
|
|
91
|
+
and unavoidable line crossings should have a visible jump/bridge.
|
|
92
|
+
- Visual layout simplification QA; if a connector bends, check whether a modest
|
|
93
|
+
element repositioning can make the route straighter and clearer.
|
|
94
|
+
- Editable-source QA; compare draw.io XML against the SVG so the source artifact
|
|
95
|
+
can reproduce the same geometry after editing.
|
|
96
|
+
- Annotation QA; for every red annotation, verify the target element or line is
|
|
97
|
+
clear and the arrowhead visibly lands on it.
|
|
98
|
+
- Checklist QA; for known difficult annotations such as Shallow History State,
|
|
99
|
+
Transition, Triggered Action, Exit action, Action in state, and guard labels,
|
|
100
|
+
verify the exact target, clearance, and connector route explicitly.
|
|
101
|
+
- Source-free QA; when generated without a reference, verify every rendered node,
|
|
102
|
+
connector, label, annotation, anchor side, and bend count against the diagram
|
|
103
|
+
contract before delivery.
|
|
104
|
+
- No whitespace errors in the repository diff.
|
|
105
|
+
|
|
106
|
+
Current source PDF:
|
|
107
|
+
|
|
108
|
+
- `/Users/polux/Downloads/Dominar los diagramas de estado en UML_ Una guía completa - Visual Paradigm Guides Spanish.pdf`
|
|
109
|
+
|
|
110
|
+
Identified source pages:
|
|
111
|
+
|
|
112
|
+
- Page 6: concurrent state diagram.
|
|
113
|
+
- Page 7 top: shallow history state diagram.
|
|
114
|
+
- Page 7 bottom: entry/exit action diagram.
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
# Prompt Version 10: UML Concrete Visual Regression Checklist Delta
|
|
2
|
+
|
|
3
|
+
Use this as a delta over `state-uml-recreated.prompt.md` after the ninth
|
|
4
|
+
rendered SVG/draw.io pass.
|
|
5
|
+
|
|
6
|
+
This version does not introduce a new conceptual rule. It turns the existing
|
|
7
|
+
endpoint, z-order, label-clearance, annotation-target, and layout-simplification
|
|
8
|
+
rules into concrete visual regression checks.
|
|
9
|
+
|
|
10
|
+
## Append Lines
|
|
11
|
+
|
|
12
|
+
- For every red annotation, explicitly identify the target before accepting the
|
|
13
|
+
diagram: state, pseudo-state, history marker, transition line, internal
|
|
14
|
+
action, guard label, exit action, or final state.
|
|
15
|
+
- A red annotation arrow must not point vaguely toward a container when the
|
|
16
|
+
intended target is a specific child element or line.
|
|
17
|
+
- `Shallow History State` must point to the `H` history marker or the specific
|
|
18
|
+
history notation being explained; the arrowhead must not disappear behind the
|
|
19
|
+
`BackingUp` container.
|
|
20
|
+
- `Transition` in Shallow History must clearly point to the transition line it
|
|
21
|
+
describes and must use a bridge/jump if crossing another line.
|
|
22
|
+
- `Triggered Action` must point to the triggered action text or the transition
|
|
23
|
+
action it explains without covering the `State2` title or state body text.
|
|
24
|
+
- `Exit action` must point to the exit action row or the state exit notation
|
|
25
|
+
without invading unreadably into the `State2` body.
|
|
26
|
+
- `Action in state` should use a direct vertical pointer when possible; move the
|
|
27
|
+
annotation text to create space before accepting a horizontal-then-vertical
|
|
28
|
+
bend.
|
|
29
|
+
- `[Guard3] / ActionB` and similar guard labels must have clear spacing from the
|
|
30
|
+
connector they describe; the text should not sit behind or on top of the line.
|
|
31
|
+
- After each correction, inspect the surrounding connectors and labels because a
|
|
32
|
+
fix for one annotation can create a regression in nearby state or transition
|
|
33
|
+
labels.
|
|
34
|
+
|
|
35
|
+
## Modify Lines
|
|
36
|
+
|
|
37
|
+
- Change `Annotation QA; for every red annotation, verify the target element or
|
|
38
|
+
line is clear and the arrowhead visibly lands on it` to `Annotation QA; for
|
|
39
|
+
every red annotation, name the exact target, verify the arrowhead visibly
|
|
40
|
+
lands on it, and verify the annotation does not obscure that target`.
|
|
41
|
+
- Change `Editable-source QA; compare draw.io XML against the SVG so the source
|
|
42
|
+
artifact can reproduce the same geometry after editing` to `Editable-source
|
|
43
|
+
QA; compare draw.io XML against the SVG so moved annotations, labels,
|
|
44
|
+
connectors, and target points can be reproduced after editing`.
|
|
45
|
+
|
|
46
|
+
## Validation Additions
|
|
47
|
+
|
|
48
|
+
- Review the rendered diagram as a checklist, not only as a general visual scan.
|
|
49
|
+
- For each concrete item above, record whether it is pass, fixed, or accepted as
|
|
50
|
+
approximation.
|
|
51
|
+
- If a rule already exists but a concrete failure still appears, add the failure
|
|
52
|
+
as a checklist example rather than creating a duplicate conceptual rule.
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
# Prompt Version 11: Source-Free Diagram Quality Loop Delta
|
|
2
|
+
|
|
3
|
+
Use this as a delta over `state-uml-recreated.prompt.md` for diagrams created
|
|
4
|
+
without a source PDF, screenshot, or design reference.
|
|
5
|
+
|
|
6
|
+
This version does not depend on comparing against an external source. It makes
|
|
7
|
+
quality explicit before drawing begins.
|
|
8
|
+
|
|
9
|
+
## Append Lines
|
|
10
|
+
|
|
11
|
+
- Before drawing, define a diagram contract: purpose, audience, diagram type,
|
|
12
|
+
node inventory, container/group inventory, relationship inventory, labels,
|
|
13
|
+
annotations, and expected reading flow.
|
|
14
|
+
- Define the exact source and target for every connector before placing shapes.
|
|
15
|
+
- Reserve label lanes before drawing connectors. Do not place labels where
|
|
16
|
+
connectors are expected to pass.
|
|
17
|
+
- Place elements to minimize bends before routing connectors. Prefer moving an
|
|
18
|
+
element or anchor point before adding bends.
|
|
19
|
+
- Choose connector anchors deliberately: source edge, target edge, midpoint
|
|
20
|
+
preference, expected bend count, and whether the route needs a jump/bridge.
|
|
21
|
+
- Draw in layers: containers and groups first, nodes second, connectors third,
|
|
22
|
+
labels fourth, annotations last.
|
|
23
|
+
- Prefer orthogonal connectors from the first draft. Diagonal connectors require
|
|
24
|
+
an explicit reason.
|
|
25
|
+
- If a connector needs more than one bend, pause and re-evaluate the connected
|
|
26
|
+
element positions before accepting the route.
|
|
27
|
+
- If an annotation arrow needs an awkward path, move the annotation label before
|
|
28
|
+
accepting the arrow route.
|
|
29
|
+
- After first render, run a full visual QA pass: endpoint contact, z-order,
|
|
30
|
+
label clearance, annotation target clarity, line crossings, shape sizing,
|
|
31
|
+
whitespace balance, and editable/rendered equivalence when an editable source
|
|
32
|
+
exists.
|
|
33
|
+
- Correct and re-render before delivery. A diagram is not ready after the first
|
|
34
|
+
valid render unless the visual QA checklist passes.
|
|
35
|
+
|
|
36
|
+
## Modify Lines
|
|
37
|
+
|
|
38
|
+
- Change `Use the most recent PDF in ~/Downloads as source material` to `When a
|
|
39
|
+
source reference exists, use it as source material; when no source reference
|
|
40
|
+
exists, create and validate a diagram contract before drawing`.
|
|
41
|
+
- Change `Visual endpoint QA for every connector` to `Visual endpoint QA for
|
|
42
|
+
every connector, backed by the pre-declared source/target inventory`.
|
|
43
|
+
|
|
44
|
+
## Validation Additions
|
|
45
|
+
|
|
46
|
+
- Attach or record the diagram contract when the diagram is generated without a
|
|
47
|
+
source reference.
|
|
48
|
+
- Review the rendered diagram against the contract, not against intuition.
|
|
49
|
+
- For every connector, record whether the final route matches the planned
|
|
50
|
+
source, target, anchor side, and expected bend count.
|
|
51
|
+
- Record residual gaps when readability requires deviating from the initial
|
|
52
|
+
contract.
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
# Prompt Version 12: Global Layout Reflow Delta
|
|
2
|
+
|
|
3
|
+
Use this as a delta over `state-uml-recreated.prompt.md` and the later prompt
|
|
4
|
+
versions. This version addresses the failure mode where elements are drawn once,
|
|
5
|
+
then labels, subcards, chips, or connectors are added without recalculating the
|
|
6
|
+
layout.
|
|
7
|
+
|
|
8
|
+
## Append Lines
|
|
9
|
+
|
|
10
|
+
- After placing real text, subcards, chips, icons, and internal connectors, run a
|
|
11
|
+
global layout reflow pass before accepting the render.
|
|
12
|
+
- For every composite container, validate that all child bounds fit inside the
|
|
13
|
+
parent bounds with minimum padding. Child nodes include text labels, nested
|
|
14
|
+
boxes, badges, icons, internal connectors, annotation anchors, and metadata
|
|
15
|
+
chips.
|
|
16
|
+
- If any child touches a parent edge, overflows, clips, crowds another child, or
|
|
17
|
+
reduces padding below the minimum, grow the parent container before trying to
|
|
18
|
+
shrink text.
|
|
19
|
+
- If a parent container grows, recalculate neighboring element positions,
|
|
20
|
+
connector routes, connector labels, annotation labels, and page/canvas bounds.
|
|
21
|
+
A local container fix is incomplete until the whole canvas is valid again.
|
|
22
|
+
- Reserve connector-label lanes after final element positions are known. Labels
|
|
23
|
+
must sit in intentional whitespace or on readable label backgrounds; they must
|
|
24
|
+
not touch connector strokes, arrowheads, container borders, or other labels.
|
|
25
|
+
- If a connector label collides with a route, first evaluate moving the label,
|
|
26
|
+
then rerouting the connector, then moving one of the connected elements. Do not
|
|
27
|
+
accept a collision because the connector technically reaches its target.
|
|
28
|
+
- If two connector routes become awkward after reflow, re-evaluate source and
|
|
29
|
+
target anchor points before adding more bends.
|
|
30
|
+
- After every correction, re-run the full visual QA checklist across the entire
|
|
31
|
+
canvas: parent containment, child spacing, text fit, connector endpoints,
|
|
32
|
+
connector labels, z-order, arrowhead visibility, crossing count, and whitespace
|
|
33
|
+
balance.
|
|
34
|
+
|
|
35
|
+
## Modify Lines
|
|
36
|
+
|
|
37
|
+
- Change `Re-evaluate container width, height, text fit, spacing, and visual
|
|
38
|
+
balance after real labels are placed` to `Recalculate container width, height,
|
|
39
|
+
child positions, connector routes, label lanes, and neighboring positions after
|
|
40
|
+
real labels and child elements are placed`.
|
|
41
|
+
- Change `Correct and re-render before delivery` to `Correct, reflow the global
|
|
42
|
+
layout, re-render, and re-check the full canvas before delivery`.
|
|
43
|
+
|
|
44
|
+
## Validation Additions
|
|
45
|
+
|
|
46
|
+
- Record whether each composite container passed child-bounds containment.
|
|
47
|
+
- Record which elements moved after a parent container grew.
|
|
48
|
+
- Record whether connector labels are clear of lines, arrowheads, and borders.
|
|
49
|
+
- Record the final render pass number used for acceptance. The first render
|
|
50
|
+
should not be accepted unless the full global reflow checklist passes.
|