@alisio/plugin-wayfinder 0.1.1 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.agents/agents/{archivist.md → wf-archivist.md} +2 -2
- package/.agents/agents/{coordinator.md → wf-coordinator.md} +2 -2
- package/.agents/agents/{designer.md → wf-designer.md} +2 -2
- package/.agents/agents/{discoverer.md → wf-discoverer.md} +2 -2
- package/.agents/agents/{implementer.md → wf-implementer.md} +2 -2
- package/.agents/agents/{mutationist.md → wf-mutationist.md} +2 -2
- package/.agents/agents/{planner.md → wf-planner.md} +2 -2
- package/.agents/agents/{proposer.md → wf-proposer.md} +2 -2
- package/.agents/agents/{specifier.md → wf-specifier.md} +2 -2
- package/.agents/agents/{verifier.md → wf-verifier.md} +2 -2
- package/.agents/skills/{wayfinder-archive → wf-archive}/SKILL.md +1 -1
- package/.agents/skills/{wayfinder-coordinate → wf-coordinate}/SKILL.md +1 -1
- package/.agents/skills/{wayfinder-design → wf-design}/SKILL.md +1 -1
- package/.agents/skills/{wayfinder-discover → wf-discover}/SKILL.md +1 -1
- package/.agents/skills/{wayfinder-implement → wf-implement}/SKILL.md +1 -1
- package/.agents/skills/{wayfinder-mutate → wf-mutate}/SKILL.md +1 -1
- package/.agents/skills/{wayfinder-plan → wf-plan}/SKILL.md +1 -1
- package/.agents/skills/{wayfinder-propose → wf-propose}/SKILL.md +1 -1
- package/.agents/skills/{wayfinder-specify → wf-specify}/SKILL.md +1 -1
- package/.agents/skills/{wayfinder-test-design → wf-test-design}/SKILL.md +1 -1
- package/.agents/skills/{wayfinder-verify → wf-verify}/SKILL.md +1 -1
- package/README.md +19 -19
- package/assets/agent-communication.svg +1 -1
- package/assets/methodology-flow.svg +1 -1
- package/cover.svg +30 -0
- package/dist/resources.d.ts +4 -0
- package/dist/resources.d.ts.map +1 -1
- package/dist/resources.js +16 -12
- package/dist/resources.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +6 -5
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: archivist
|
|
2
|
+
name: wf-archivist
|
|
3
3
|
description: "Check Wayfinder archive readiness without modifying lifecycle state or project files."
|
|
4
4
|
tools: [read_file, list_files, search_text, git_status, git_diff, memory_search, memory_get]
|
|
5
5
|
disallowedTools: [write_file, edit_file, run_process, task, delegate, subagent, sessions_create]
|
|
@@ -10,7 +10,7 @@ permission:
|
|
|
10
10
|
process: deny
|
|
11
11
|
hidden: false
|
|
12
12
|
readOnly: true
|
|
13
|
-
skills: [
|
|
13
|
+
skills: [wf-archive]
|
|
14
14
|
---
|
|
15
15
|
|
|
16
16
|
Check that every required artifact exists, every unit is complete, every requirement is represented, and verification passed. Report exact inventory and blockers. Never archive, edit, approve, or delegate; the deterministic coordinator owns the atomic move.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: coordinator
|
|
2
|
+
name: wf-coordinator
|
|
3
3
|
description: "Inspect and operate the deterministic Wayfinder lifecycle without replacing command authority."
|
|
4
4
|
tools: [read_file, list_files, search_text]
|
|
5
5
|
disallowedTools: [write_file, edit_file, run_process, task, delegate, subagent, sessions_create]
|
|
@@ -10,7 +10,7 @@ permission:
|
|
|
10
10
|
process: deny
|
|
11
11
|
hidden: false
|
|
12
12
|
readOnly: true
|
|
13
|
-
skills: [
|
|
13
|
+
skills: [wf-coordinate]
|
|
14
14
|
---
|
|
15
15
|
|
|
16
16
|
Explain and operate Wayfinder through its registered commands. Treat validated `state.json` and command code as lifecycle authority. Never advance phases, approve scope, edit workflow artifacts, or simulate a child phase yourself. Surface the exact blocking gate and next command.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: designer
|
|
2
|
+
name: wf-designer
|
|
3
3
|
description: "Choose the smallest maintainable technical design that satisfies a Wayfinder specification."
|
|
4
4
|
tools: [read_file, list_files, search_text, git_status, git_diff, memory_search, memory_get]
|
|
5
5
|
disallowedTools: [write_file, edit_file, run_process, task, delegate, subagent, sessions_create]
|
|
@@ -10,7 +10,7 @@ permission:
|
|
|
10
10
|
process: deny
|
|
11
11
|
hidden: false
|
|
12
12
|
readOnly: true
|
|
13
|
-
skills: [
|
|
13
|
+
skills: [wf-design]
|
|
14
14
|
---
|
|
15
15
|
|
|
16
16
|
Design against the complete specification and current repository conventions. Prefer a small reversible approach, name expected paths, and expose material risks. Do not create work units, execute commands, or edit files.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: discoverer
|
|
2
|
+
name: wf-discoverer
|
|
3
3
|
description: "Inspect repository evidence and identify constraints or critical questions for a Wayfinder change."
|
|
4
4
|
tools: [read_file, list_files, search_text, git_status, git_diff, memory_search, memory_get]
|
|
5
5
|
disallowedTools: [write_file, edit_file, run_process, task, delegate, subagent, sessions_create]
|
|
@@ -10,7 +10,7 @@ permission:
|
|
|
10
10
|
process: deny
|
|
11
11
|
hidden: false
|
|
12
12
|
readOnly: true
|
|
13
|
-
skills: [
|
|
13
|
+
skills: [wf-discover]
|
|
14
14
|
---
|
|
15
15
|
|
|
16
16
|
Investigate only the repository areas relevant to the supplied intent. Separate observed facts from uncertainty. Report a question as critical when proceeding would require inventing product scope, security behavior, data handling, or a compatibility promise. Do not propose architecture or edit files.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: implementer
|
|
2
|
+
name: wf-implementer
|
|
3
3
|
description: "Implement exactly one approved Wayfinder work unit and return concrete command evidence."
|
|
4
4
|
tools: [read_file, list_files, search_text, git_status, git_diff, write_file, edit_file, run_process, memory_search, memory_get]
|
|
5
5
|
disallowedTools: [task, delegate, subagent, sessions_create]
|
|
@@ -10,7 +10,7 @@ permission:
|
|
|
10
10
|
process: allow
|
|
11
11
|
hidden: false
|
|
12
12
|
readOnly: false
|
|
13
|
-
skills: [
|
|
13
|
+
skills: [wf-implement, wf-test-design]
|
|
14
14
|
---
|
|
15
15
|
|
|
16
16
|
Implement only the supplied work unit. Inspect before editing, follow existing conventions, and run focused checks after changes. Return explicit changed paths and successful command evidence; a narrative claim is insufficient. Cover each scenario with a happy-path and an unhappy-path test and report `testDesign`; for UI changes, report `testability` with semantic `feature-element-variant` ids or an `accessibleOnlyReason`. Under strict TDD, write the failing test first, capture the failing run, then make it pass; never fabricate a failing run. When the unit kind is `test-strengthening`, change test files only and never modify production behavior to satisfy the tool. Never edit `.alisio/wayfinder`, expand scope, or delegate.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: mutationist
|
|
2
|
+
name: wf-mutationist
|
|
3
3
|
description: "Run one bounded, already-installed mutation command and triage survivors without installing or editing anything."
|
|
4
4
|
tools: [read_file, list_files, search_text, git_status, git_diff, run_process, memory_search, memory_get]
|
|
5
5
|
disallowedTools: [write_file, edit_file, task, delegate, subagent, sessions_create]
|
|
@@ -10,7 +10,7 @@ permission:
|
|
|
10
10
|
process: allow
|
|
11
11
|
hidden: false
|
|
12
12
|
readOnly: true
|
|
13
|
-
skills: [
|
|
13
|
+
skills: [wf-mutate]
|
|
14
14
|
---
|
|
15
15
|
|
|
16
16
|
Run only the bounded mutation argument list supplied by the coordinator. Never install tooling, add dependencies, edit files, or rewrite production behavior. Use tooling that is already present in the project.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: planner
|
|
2
|
+
name: wf-planner
|
|
3
3
|
description: "Split a Wayfinder design into ordered, reviewable units with complete requirement coverage."
|
|
4
4
|
tools: [read_file, list_files, search_text, git_status, git_diff, memory_search, memory_get]
|
|
5
5
|
disallowedTools: [write_file, edit_file, run_process, task, delegate, subagent, sessions_create]
|
|
@@ -10,7 +10,7 @@ permission:
|
|
|
10
10
|
process: deny
|
|
11
11
|
hidden: false
|
|
12
12
|
readOnly: true
|
|
13
|
-
skills: [
|
|
13
|
+
skills: [wf-plan, wf-test-design]
|
|
14
14
|
---
|
|
15
15
|
|
|
16
16
|
Produce ordered work units that are small enough to implement and verify independently. Map every requirement to at least one unit, include expected paths and focused checks, and avoid units with unrelated outcomes. Set `requiresTests: true` for units that must carry tests, and note the expected testable anchors (screen containers, icons, dynamic rows) for UI units. Mark a unit `tddExempt: true` only when it genuinely cannot be test-first (docs, config, formatting, dependency bumps) and always include a non-empty `tddExemptReason`. Do not edit files or approve the plan.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: proposer
|
|
2
|
+
name: wf-proposer
|
|
3
3
|
description: "Define an approval-ready outcome and scope from Wayfinder intent and discovery evidence."
|
|
4
4
|
tools: [read_file, list_files, search_text, git_status, git_diff, memory_search, memory_get]
|
|
5
5
|
disallowedTools: [write_file, edit_file, run_process, task, delegate, subagent, sessions_create]
|
|
@@ -10,7 +10,7 @@ permission:
|
|
|
10
10
|
process: deny
|
|
11
11
|
hidden: false
|
|
12
12
|
readOnly: true
|
|
13
|
-
skills: [
|
|
13
|
+
skills: [wf-propose]
|
|
14
14
|
---
|
|
15
15
|
|
|
16
16
|
Turn intent and discovery evidence into a concise proposed outcome with explicit boundaries and assumptions. Keep implementation choices out of scope. Preserve every unresolved question that could change business behavior. Do not approve the proposal or edit files.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: specifier
|
|
2
|
+
name: wf-specifier
|
|
3
3
|
description: "Express an approved Wayfinder proposal as observable requirements and acceptance conditions."
|
|
4
4
|
tools: [read_file, list_files, search_text, git_status, git_diff, memory_search, memory_get]
|
|
5
5
|
disallowedTools: [write_file, edit_file, run_process, task, delegate, subagent, sessions_create]
|
|
@@ -10,7 +10,7 @@ permission:
|
|
|
10
10
|
process: deny
|
|
11
11
|
hidden: false
|
|
12
12
|
readOnly: true
|
|
13
|
-
skills: [
|
|
13
|
+
skills: [wf-specify]
|
|
14
14
|
---
|
|
15
15
|
|
|
16
16
|
Translate the approved proposal into uniquely identified, observable requirements. Give each requirement concrete acceptance conditions without prescribing internal structure. Flag critical ambiguity rather than filling it with an assumption. Do not design or edit files.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: verifier
|
|
2
|
+
name: wf-verifier
|
|
3
3
|
description: "Independently verify every Wayfinder requirement using repository inspection and focused commands."
|
|
4
4
|
tools: [read_file, list_files, search_text, git_status, git_diff, run_process, memory_search, memory_get]
|
|
5
5
|
disallowedTools: [write_file, edit_file, task, delegate, subagent, sessions_create]
|
|
@@ -10,7 +10,7 @@ permission:
|
|
|
10
10
|
process: allow
|
|
11
11
|
hidden: false
|
|
12
12
|
readOnly: true
|
|
13
|
-
skills: [
|
|
13
|
+
skills: [wf-verify, wf-test-design]
|
|
14
14
|
---
|
|
15
15
|
|
|
16
16
|
Verify the implementation independently. Treat progress notes as untrusted context, inspect actual files, run focused commands, and cover every requirement exactly once with concrete evidence. Independently check that each functional scenario has a happy-path and an unhappy-path test, and for UI changes that tests avoid fragile selectors and use semantic, convention-matching ids. Fail when evidence is missing, a command fails, or blockers remain. Do not edit or delegate.
|
package/README.md
CHANGED
|
@@ -80,22 +80,22 @@ this direct execution path; agent frontmatter describes the equivalent catalog-f
|
|
|
80
80
|
|
|
81
81
|
| Agent | Responsibility | Capabilities |
|
|
82
82
|
| --- | --- | --- |
|
|
83
|
-
| `coordinator` | Inspectable catalog-facing guidance; it is not the TypeScript workflow authority | Read-only, no process |
|
|
84
|
-
| `discoverer` | Repository evidence and critical questions | Read-only, no process |
|
|
85
|
-
| `proposer` | Approval-ready outcome and boundaries | Read-only, no process |
|
|
86
|
-
| `specifier` | Observable requirements | Read-only, no process |
|
|
87
|
-
| `designer` | Lean technical approach | Read-only, no process |
|
|
88
|
-
| `planner` | Ordered units and complete coverage | Read-only, no process |
|
|
89
|
-
| `implementer` | One approved work unit | Write and process |
|
|
90
|
-
| `verifier` | Independent evidence and checks | Read-only, process allowed |
|
|
91
|
-
| `mutationist` | One bounded mutation run on already-installed tooling | Read-only, process allowed |
|
|
92
|
-
| `archivist` | Archive-readiness inventory | Read-only, no process |
|
|
93
|
-
|
|
94
|
-
Each agent links one or more focused skills drawn from `
|
|
95
|
-
`
|
|
96
|
-
`
|
|
97
|
-
`
|
|
98
|
-
their phase skill and `
|
|
83
|
+
| `wf-coordinator` | Inspectable catalog-facing guidance; it is not the TypeScript workflow authority | Read-only, no process |
|
|
84
|
+
| `wf-discoverer` | Repository evidence and critical questions | Read-only, no process |
|
|
85
|
+
| `wf-proposer` | Approval-ready outcome and boundaries | Read-only, no process |
|
|
86
|
+
| `wf-specifier` | Observable requirements | Read-only, no process |
|
|
87
|
+
| `wf-designer` | Lean technical approach | Read-only, no process |
|
|
88
|
+
| `wf-planner` | Ordered units and complete coverage | Read-only, no process |
|
|
89
|
+
| `wf-implementer` | One approved work unit | Write and process |
|
|
90
|
+
| `wf-verifier` | Independent evidence and checks | Read-only, process allowed |
|
|
91
|
+
| `wf-mutationist` | One bounded mutation run on already-installed tooling | Read-only, process allowed |
|
|
92
|
+
| `wf-archivist` | Archive-readiness inventory | Read-only, no process |
|
|
93
|
+
|
|
94
|
+
Each agent links one or more focused skills drawn from `wf-coordinate`,
|
|
95
|
+
`wf-discover`, `wf-propose`, `wf-specify`, `wf-design`,
|
|
96
|
+
`wf-plan`, `wf-implement`, `wf-verify`, `wf-mutate`,
|
|
97
|
+
`wf-archive`, and `wf-test-design`. The planner, implementer, and verifier load both
|
|
98
|
+
their phase skill and `wf-test-design`; a role loads every mapped skill in order. Child phases
|
|
99
99
|
cannot delegate.
|
|
100
100
|
|
|
101
101
|
## How agents communicate
|
|
@@ -141,7 +141,7 @@ mapped skills, creates a capability-narrowed child session, validates the one JS
|
|
|
141
141
|
persists the Markdown artifact and `state.json`, and rejects malformed, partial, or turn-limited
|
|
142
142
|
output without advancing state.
|
|
143
143
|
|
|
144
|
-
The Mermaid sources live in `diagrams/wayfinder/` at the repository root and are rendered with
|
|
144
|
+
The Mermaid sources live in `diagrams/plugin-wayfinder/` at the repository root and are rendered with
|
|
145
145
|
`pnpm diagrams`. The SVGs are generated output; never edit them by hand.
|
|
146
146
|
|
|
147
147
|
## Lifecycle and gates
|
|
@@ -268,7 +268,7 @@ code must record a decision at plan approval. This policy is pinned by a test so
|
|
|
268
268
|
|
|
269
269
|
## Test design and UI testability
|
|
270
270
|
|
|
271
|
-
Two methodological rule sets ship in the `
|
|
271
|
+
Two methodological rule sets ship in the `wf-test-design` skill, which the planner,
|
|
272
272
|
implementer, and verifier load alongside their own skill:
|
|
273
273
|
|
|
274
274
|
- **Test case design.** Every functional scenario gets at least one happy-path (positive) test and
|
|
@@ -413,5 +413,5 @@ sandbox. Review the package before loading it.
|
|
|
413
413
|
|
|
414
414
|
## Links
|
|
415
415
|
|
|
416
|
-
- [Source](https://github.com/GustavoGutierrez/alisio-plugins/tree/main/packages/wayfinder)
|
|
416
|
+
- [Source](https://github.com/GustavoGutierrez/alisio-plugins/tree/main/packages/plugin-wayfinder)
|
|
417
417
|
- [Issues](https://github.com/GustavoGutierrez/alisio-plugins/issues)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<svg id="my-svg" width="100%" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" style="max-width: 1593.5px; background-color: transparent;" viewBox="-50 -10 1593.5 914" role="graphics-document document" aria-roledescription="sequence"><g><rect x="1315.5" y="828" fill="#eaeaea" stroke="#666" width="178" height="65" name="Next" rx="3" ry="3" class="actor actor-bottom"/><text x="1404.5" y="860.5" dominant-baseline="central" alignment-baseline="central" class="actor actor-box" style="text-anchor: middle; font-size: 16px; font-weight: 400;"><tspan x="1404.5" dy="0">Next phase child session</tspan></text></g><g><rect x="941.5" y="828" fill="#eaeaea" stroke="#666" width="324" height="65" name="Child" rx="3" ry="3" class="actor actor-bottom"/><text x="1103.5" y="860.5" dominant-baseline="central" alignment-baseline="central" class="actor actor-box" style="text-anchor: middle; font-size: 16px; font-weight: 400;"><tspan x="1103.5" dy="0">Fresh child session (one agent + mapped skills)</tspan></text></g><g><rect x="624.5" y="828" fill="#eaeaea" stroke="#666" width="267" height="65" name="Store" rx="3" ry="3" class="actor actor-bottom"/><text x="758" y="860.5" dominant-baseline="central" alignment-baseline="central" class="actor actor-box" style="text-anchor: middle; font-size: 16px; font-weight: 400;"><tspan x="758" dy="0">Artifact store (state.json + Markdown)</tspan></text></g><g><rect x="296.5" y="828" fill="#eaeaea" stroke="#666" width="237" height="65" name="Coord" rx="3" ry="3" class="actor actor-bottom"/><text x="415" y="860.5" dominant-baseline="central" alignment-baseline="central" class="actor actor-box" style="text-anchor: middle; font-size: 16px; font-weight: 400;"><tspan x="415" dy="0">WayfinderCoordinator (authority)</tspan></text></g><g/><g><line id="actor4" x1="1404.5" y1="65" x2="1404.5" y2="828" class="actor-line 200" stroke-width="0.5px" stroke="#999" name="Next" data-et="life-line" data-id="Next"/><g id="root-4" data-et="participant" data-type="participant" data-id="Next"><rect x="1315.5" y="0" fill="#eaeaea" stroke="#666" width="178" height="65" name="Next" rx="3" ry="3" class="actor actor-top"/><text x="1404.5" y="32.5" dominant-baseline="central" alignment-baseline="central" class="actor actor-box" style="text-anchor: middle; font-size: 16px; font-weight: 400;"><tspan x="1404.5" dy="0">Next phase child session</tspan></text></g></g><g><line id="actor3" x1="1103.5" y1="65" x2="1103.5" y2="828" class="actor-line 200" stroke-width="0.5px" stroke="#999" name="Child" data-et="life-line" data-id="Child"/><g id="root-3" data-et="participant" data-type="participant" data-id="Child"><rect x="941.5" y="0" fill="#eaeaea" stroke="#666" width="324" height="65" name="Child" rx="3" ry="3" class="actor actor-top"/><text x="1103.5" y="32.5" dominant-baseline="central" alignment-baseline="central" class="actor actor-box" style="text-anchor: middle; font-size: 16px; font-weight: 400;"><tspan x="1103.5" dy="0">Fresh child session (one agent + mapped skills)</tspan></text></g></g><g><line id="actor2" x1="758" y1="65" x2="758" y2="828" class="actor-line 200" stroke-width="0.5px" stroke="#999" name="Store" data-et="life-line" data-id="Store"/><g id="root-2" data-et="participant" data-type="participant" data-id="Store"><rect x="624.5" y="0" fill="#eaeaea" stroke="#666" width="267" height="65" name="Store" rx="3" ry="3" class="actor actor-top"/><text x="758" y="32.5" dominant-baseline="central" alignment-baseline="central" class="actor actor-box" style="text-anchor: middle; font-size: 16px; font-weight: 400;"><tspan x="758" dy="0">Artifact store (state.json + Markdown)</tspan></text></g></g><g><line id="actor1" x1="415" y1="65" x2="415" y2="828" class="actor-line 200" stroke-width="0.5px" stroke="#999" name="Coord" data-et="life-line" data-id="Coord"/><g id="root-1" data-et="participant" data-type="participant" data-id="Coord"><rect x="296.5" y="0" fill="#eaeaea" stroke="#666" width="237" height="65" name="Coord" rx="3" ry="3" class="actor actor-top"/><text x="415" y="32.5" dominant-baseline="central" alignment-baseline="central" class="actor actor-box" style="text-anchor: middle; font-size: 16px; font-weight: 400;"><tspan x="415" dy="0">WayfinderCoordinator (authority)</tspan></text></g></g><g><line id="actor0" x1="75" y1="80" x2="75" y2="828" class="actor-line 200" stroke-width="0.5px" stroke="#999" name="User" data-et="life-line" data-id="User"/></g><style>#my-svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#my-svg .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#my-svg .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#my-svg .error-icon{fill:#552222;}#my-svg .error-text{fill:#552222;stroke:#552222;}#my-svg .edge-thickness-normal{stroke-width:1px;}#my-svg .edge-thickness-thick{stroke-width:3.5px;}#my-svg .edge-pattern-solid{stroke-dasharray:0;}#my-svg .edge-thickness-invisible{stroke-width:0;fill:none;}#my-svg .edge-pattern-dashed{stroke-dasharray:3;}#my-svg .edge-pattern-dotted{stroke-dasharray:2;}#my-svg .marker{fill:#333333;stroke:#333333;}#my-svg .marker.cross{stroke:#333333;}#my-svg svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#my-svg p{margin:0;}#my-svg .actor{stroke:#9370DB;fill:#ECECFF;stroke-width:1;}#my-svg rect.actor.outer-path[data-look="neo"]{filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#my-svg rect.note[data-look="neo"]{stroke:#aaaa33;fill:#fff5ad;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#my-svg text.actor>tspan{fill:black;stroke:none;}#my-svg .actor-line{stroke:#9370DB;}#my-svg .innerArc{stroke-width:1.5;stroke-dasharray:none;}#my-svg .messageLine0{stroke-width:1.5;stroke-dasharray:none;stroke:#333;}#my-svg .messageLine1{stroke-width:1.5;stroke-dasharray:2,2;stroke:#333;}#my-svg [id$="-arrowhead"] path{fill:#333;stroke:#333;}#my-svg .sequenceNumber{fill:white;}#my-svg [id$="-sequencenumber"]{fill:#333;}#my-svg [id$="-crosshead"] path{fill:#333;stroke:#333;}#my-svg .messageText{fill:#333;stroke:none;}#my-svg .labelBox{stroke:#9370DB;fill:#ECECFF;filter:none;}#my-svg .labelText,#my-svg .labelText>tspan{fill:black;stroke:none;}#my-svg .loopText,#my-svg .loopText>tspan{fill:black;stroke:none;}#my-svg .sectionTitle,#my-svg .sectionTitle>tspan{fill:black;stroke:none;}#my-svg .loopLine{stroke-width:2px;stroke-dasharray:2,2;stroke:#9370DB;fill:#9370DB;}#my-svg .note{stroke:#aaaa33;fill:#fff5ad;}#my-svg .noteText,#my-svg .noteText>tspan{fill:black;stroke:none;}#my-svg .activation0{fill:#f4f4f4;stroke:#666;}#my-svg .activation1{fill:#f4f4f4;stroke:#666;}#my-svg .activation2{fill:#f4f4f4;stroke:#666;}#my-svg .actorPopupMenu{position:absolute;}#my-svg .actorPopupMenuPanel{position:absolute;fill:#ECECFF;box-shadow:0px 8px 16px 0px rgba(0,0,0,0.2);filter:drop-shadow(3px 5px 2px rgb(0 0 0 / 0.4));}#my-svg .actor-man circle,#my-svg line{fill:#ECECFF;stroke-width:2px;}#my-svg g rect.rect{filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));stroke:#9370DB;}#my-svg .node .neo-node{stroke:#9370DB;}#my-svg [data-look="neo"].node rect,#my-svg [data-look="neo"].cluster rect,#my-svg [data-look="neo"].node polygon{stroke:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#my-svg [data-look="neo"].swimlane.cluster rect{filter:none;}#my-svg [data-look="neo"].node path{stroke:#9370DB;stroke-width:1px;}#my-svg [data-look="neo"].node .outer-path{filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#my-svg [data-look="neo"].node .neo-line path{stroke:#9370DB;filter:none;}#my-svg [data-look="neo"].node circle{stroke:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#my-svg [data-look="neo"].node circle .state-start{fill:#000000;}#my-svg [data-look="neo"].icon-shape .icon{fill:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#my-svg [data-look="neo"].icon-shape .icon-neo path{stroke:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#my-svg :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;}</style><g/><defs><symbol id="my-svg-computer" width="24" height="24"><path transform="scale(.5)" d="M2 2v13h20v-13h-20zm18 11h-16v-9h16v9zm-10.228 6l.466-1h3.524l.467 1h-4.457zm14.228 3h-24l2-6h2.104l-1.33 4h18.45l-1.297-4h2.073l2 6zm-5-10h-14v-7h14v7z"/></symbol></defs><defs><symbol id="my-svg-database" fill-rule="evenodd" clip-rule="evenodd"><path transform="scale(.5)" d="M12.258.001l.256.004.255.005.253.008.251.01.249.012.247.015.246.016.242.019.241.02.239.023.236.024.233.027.231.028.229.031.225.032.223.034.22.036.217.038.214.04.211.041.208.043.205.045.201.046.198.048.194.05.191.051.187.053.183.054.18.056.175.057.172.059.168.06.163.061.16.063.155.064.15.066.074.033.073.033.071.034.07.034.069.035.068.035.067.035.066.035.064.036.064.036.062.036.06.036.06.037.058.037.058.037.055.038.055.038.053.038.052.038.051.039.05.039.048.039.047.039.045.04.044.04.043.04.041.04.04.041.039.041.037.041.036.041.034.041.033.042.032.042.03.042.029.042.027.042.026.043.024.043.023.043.021.043.02.043.018.044.017.043.015.044.013.044.012.044.011.045.009.044.007.045.006.045.004.045.002.045.001.045v17l-.001.045-.002.045-.004.045-.006.045-.007.045-.009.044-.011.045-.012.044-.013.044-.015.044-.017.043-.018.044-.02.043-.021.043-.023.043-.024.043-.026.043-.027.042-.029.042-.03.042-.032.042-.033.042-.034.041-.036.041-.037.041-.039.041-.04.041-.041.04-.043.04-.044.04-.045.04-.047.039-.048.039-.05.039-.051.039-.052.038-.053.038-.055.038-.055.038-.058.037-.058.037-.06.037-.06.036-.062.036-.064.036-.064.036-.066.035-.067.035-.068.035-.069.035-.07.034-.071.034-.073.033-.074.033-.15.066-.155.064-.16.063-.163.061-.168.06-.172.059-.175.057-.18.056-.183.054-.187.053-.191.051-.194.05-.198.048-.201.046-.205.045-.208.043-.211.041-.214.04-.217.038-.22.036-.223.034-.225.032-.229.031-.231.028-.233.027-.236.024-.239.023-.241.02-.242.019-.246.016-.247.015-.249.012-.251.01-.253.008-.255.005-.256.004-.258.001-.258-.001-.256-.004-.255-.005-.253-.008-.251-.01-.249-.012-.247-.015-.245-.016-.243-.019-.241-.02-.238-.023-.236-.024-.234-.027-.231-.028-.228-.031-.226-.032-.223-.034-.22-.036-.217-.038-.214-.04-.211-.041-.208-.043-.204-.045-.201-.046-.198-.048-.195-.05-.19-.051-.187-.053-.184-.054-.179-.056-.176-.057-.172-.059-.167-.06-.164-.061-.159-.063-.155-.064-.151-.066-.074-.033-.072-.033-.072-.034-.07-.034-.069-.035-.068-.035-.067-.035-.066-.035-.064-.036-.063-.036-.062-.036-.061-.036-.06-.037-.058-.037-.057-.037-.056-.038-.055-.038-.053-.038-.052-.038-.051-.039-.049-.039-.049-.039-.046-.039-.046-.04-.044-.04-.043-.04-.041-.04-.04-.041-.039-.041-.037-.041-.036-.041-.034-.041-.033-.042-.032-.042-.03-.042-.029-.042-.027-.042-.026-.043-.024-.043-.023-.043-.021-.043-.02-.043-.018-.044-.017-.043-.015-.044-.013-.044-.012-.044-.011-.045-.009-.044-.007-.045-.006-.045-.004-.045-.002-.045-.001-.045v-17l.001-.045.002-.045.004-.045.006-.045.007-.045.009-.044.011-.045.012-.044.013-.044.015-.044.017-.043.018-.044.02-.043.021-.043.023-.043.024-.043.026-.043.027-.042.029-.042.03-.042.032-.042.033-.042.034-.041.036-.041.037-.041.039-.041.04-.041.041-.04.043-.04.044-.04.046-.04.046-.039.049-.039.049-.039.051-.039.052-.038.053-.038.055-.038.056-.038.057-.037.058-.037.06-.037.061-.036.062-.036.063-.036.064-.036.066-.035.067-.035.068-.035.069-.035.07-.034.072-.034.072-.033.074-.033.151-.066.155-.064.159-.063.164-.061.167-.06.172-.059.176-.057.179-.056.184-.054.187-.053.19-.051.195-.05.198-.048.201-.046.204-.045.208-.043.211-.041.214-.04.217-.038.22-.036.223-.034.226-.032.228-.031.231-.028.234-.027.236-.024.238-.023.241-.02.243-.019.245-.016.247-.015.249-.012.251-.01.253-.008.255-.005.256-.004.258-.001.258.001zm-9.258 20.499v.01l.001.021.003.021.004.022.005.021.006.022.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.023.018.024.019.024.021.024.022.025.023.024.024.025.052.049.056.05.061.051.066.051.07.051.075.051.079.052.084.052.088.052.092.052.097.052.102.051.105.052.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.048.144.049.147.047.152.047.155.047.16.045.163.045.167.043.171.043.176.041.178.041.183.039.187.039.19.037.194.035.197.035.202.033.204.031.209.03.212.029.216.027.219.025.222.024.226.021.23.02.233.018.236.016.24.015.243.012.246.01.249.008.253.005.256.004.259.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.021.224-.024.22-.026.216-.027.212-.028.21-.031.205-.031.202-.034.198-.034.194-.036.191-.037.187-.039.183-.04.179-.04.175-.042.172-.043.168-.044.163-.045.16-.046.155-.046.152-.047.148-.048.143-.049.139-.049.136-.05.131-.05.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.053.083-.051.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.05.023-.024.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.023.01-.022.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.127l-.077.055-.08.053-.083.054-.085.053-.087.052-.09.052-.093.051-.095.05-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.045-.118.044-.12.043-.122.042-.124.042-.126.041-.128.04-.13.04-.132.038-.134.038-.135.037-.138.037-.139.035-.142.035-.143.034-.144.033-.147.032-.148.031-.15.03-.151.03-.153.029-.154.027-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.01-.179.008-.179.008-.181.006-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.006-.179-.008-.179-.008-.178-.01-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.027-.153-.029-.151-.03-.15-.03-.148-.031-.146-.032-.145-.033-.143-.034-.141-.035-.14-.035-.137-.037-.136-.037-.134-.038-.132-.038-.13-.04-.128-.04-.126-.041-.124-.042-.122-.042-.12-.044-.117-.043-.116-.045-.113-.045-.112-.046-.109-.047-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.05-.093-.052-.09-.051-.087-.052-.085-.053-.083-.054-.08-.054-.077-.054v4.127zm0-5.654v.011l.001.021.003.021.004.021.005.022.006.022.007.022.009.022.01.022.011.023.012.023.013.023.015.024.016.023.017.024.018.024.019.024.021.024.022.024.023.025.024.024.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.052.11.051.114.051.119.052.123.05.127.051.131.05.135.049.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.044.171.042.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.022.23.02.233.018.236.016.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.012.241-.015.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.048.139-.05.136-.049.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.051.051-.049.023-.025.023-.024.021-.025.02-.024.019-.024.018-.024.017-.024.015-.023.014-.023.013-.024.012-.022.01-.023.01-.023.008-.022.006-.022.006-.022.004-.021.004-.022.001-.021.001-.021v-4.139l-.077.054-.08.054-.083.054-.085.052-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.044-.118.044-.12.044-.122.042-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.035-.143.033-.144.033-.147.033-.148.031-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.009-.179.009-.179.007-.181.007-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.007-.179-.007-.179-.009-.178-.009-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.031-.146-.033-.145-.033-.143-.033-.141-.035-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.04-.126-.041-.124-.042-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.051-.093-.051-.09-.051-.087-.053-.085-.052-.083-.054-.08-.054-.077-.054v4.139zm0-5.666v.011l.001.02.003.022.004.021.005.022.006.021.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.024.018.023.019.024.021.025.022.024.023.024.024.025.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.051.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.043.171.043.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.021.23.02.233.018.236.017.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.013.241-.014.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.049.139-.049.136-.049.131-.051.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.049.023-.025.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.022.01-.023.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.153l-.077.054-.08.054-.083.053-.085.053-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.048-.105.048-.106.048-.109.046-.111.046-.114.046-.115.044-.118.044-.12.043-.122.043-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.034-.143.034-.144.033-.147.032-.148.032-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.024-.161.024-.162.023-.163.023-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.01-.178.01-.179.009-.179.007-.181.006-.182.006-.182.004-.184.003-.184.001-.185.001-.185-.001-.184-.001-.184-.003-.182-.004-.182-.006-.181-.006-.179-.007-.179-.009-.178-.01-.176-.01-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.023-.162-.023-.161-.024-.159-.024-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.032-.146-.032-.145-.033-.143-.034-.141-.034-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.041-.126-.041-.124-.041-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.048-.105-.048-.102-.048-.1-.05-.097-.049-.095-.051-.093-.051-.09-.052-.087-.052-.085-.053-.083-.053-.08-.054-.077-.054v4.153zm8.74-8.179l-.257.004-.254.005-.25.008-.247.011-.244.012-.241.014-.237.016-.233.018-.231.021-.226.022-.224.023-.22.026-.216.027-.212.028-.21.031-.205.032-.202.033-.198.034-.194.036-.191.038-.187.038-.183.04-.179.041-.175.042-.172.043-.168.043-.163.045-.16.046-.155.046-.152.048-.148.048-.143.048-.139.049-.136.05-.131.05-.126.051-.123.051-.118.051-.114.052-.11.052-.106.052-.101.052-.096.052-.092.052-.088.052-.083.052-.079.052-.074.051-.07.052-.065.051-.06.05-.056.05-.051.05-.023.025-.023.024-.021.024-.02.025-.019.024-.018.024-.017.023-.015.024-.014.023-.013.023-.012.023-.01.023-.01.022-.008.022-.006.023-.006.021-.004.022-.004.021-.001.021-.001.021.001.021.001.021.004.021.004.022.006.021.006.023.008.022.01.022.01.023.012.023.013.023.014.023.015.024.017.023.018.024.019.024.02.025.021.024.023.024.023.025.051.05.056.05.06.05.065.051.07.052.074.051.079.052.083.052.088.052.092.052.096.052.101.052.106.052.11.052.114.052.118.051.123.051.126.051.131.05.136.05.139.049.143.048.148.048.152.048.155.046.16.046.163.045.168.043.172.043.175.042.179.041.183.04.187.038.191.038.194.036.198.034.202.033.205.032.21.031.212.028.216.027.22.026.224.023.226.022.231.021.233.018.237.016.241.014.244.012.247.011.25.008.254.005.257.004.26.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.022.224-.023.22-.026.216-.027.212-.028.21-.031.205-.032.202-.033.198-.034.194-.036.191-.038.187-.038.183-.04.179-.041.175-.042.172-.043.168-.043.163-.045.16-.046.155-.046.152-.048.148-.048.143-.048.139-.049.136-.05.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.05.051-.05.023-.025.023-.024.021-.024.02-.025.019-.024.018-.024.017-.023.015-.024.014-.023.013-.023.012-.023.01-.023.01-.022.008-.022.006-.023.006-.021.004-.022.004-.021.001-.021.001-.021-.001-.021-.001-.021-.004-.021-.004-.022-.006-.021-.006-.023-.008-.022-.01-.022-.01-.023-.012-.023-.013-.023-.014-.023-.015-.024-.017-.023-.018-.024-.019-.024-.02-.025-.021-.024-.023-.024-.023-.025-.051-.05-.056-.05-.06-.05-.065-.051-.07-.052-.074-.051-.079-.052-.083-.052-.088-.052-.092-.052-.096-.052-.101-.052-.106-.052-.11-.052-.114-.052-.118-.051-.123-.051-.126-.051-.131-.05-.136-.05-.139-.049-.143-.048-.148-.048-.152-.048-.155-.046-.16-.046-.163-.045-.168-.043-.172-.043-.175-.042-.179-.041-.183-.04-.187-.038-.191-.038-.194-.036-.198-.034-.202-.033-.205-.032-.21-.031-.212-.028-.216-.027-.22-.026-.224-.023-.226-.022-.231-.021-.233-.018-.237-.016-.241-.014-.244-.012-.247-.011-.25-.008-.254-.005-.257-.004-.26-.001-.26.001z"/></symbol></defs><defs><symbol id="my-svg-clock" width="24" height="24"><path transform="scale(.5)" d="M12 2c5.514 0 10 4.486 10 10s-4.486 10-10 10-10-4.486-10-10 4.486-10 10-10zm0-2c-6.627 0-12 5.373-12 12s5.373 12 12 12 12-5.373 12-12-5.373-12-12-12zm5.848 12.459c.202.038.202.333.001.372-1.907.361-6.045 1.111-6.547 1.111-.719 0-1.301-.582-1.301-1.301 0-.512.77-5.447 1.125-7.445.034-.192.312-.181.343.014l.985 6.238 5.394 1.011z"/></symbol></defs><defs><marker id="my-svg-arrowhead" refX="7.9" refY="5" markerUnits="userSpaceOnUse" markerWidth="12" markerHeight="12" orient="auto-start-reverse"><path d="M -1 0 L 10 5 L 0 10 z"/></marker></defs><defs><marker id="my-svg-crosshead" markerWidth="15" markerHeight="8" orient="auto" refX="4" refY="4.5"><path fill="none" stroke="#000000" stroke-width="1pt" d="M 1,2 L 6,7 M 6,2 L 1,7" style="stroke-dasharray: 0, 0;"/></marker></defs><defs><marker id="my-svg-filled-head" refX="15.5" refY="7" markerWidth="20" markerHeight="28" orient="auto"><path d="M 18,7 L9,13 L14,7 L9,1 Z"/></marker></defs><defs><marker id="my-svg-sequencenumber" refX="15" refY="15" markerWidth="60" markerHeight="40" orient="auto"><circle cx="15" cy="15" r="6"/></marker></defs><defs><marker id="my-svg-solidTopArrowHead" refX="7.9" refY="7.25" markerUnits="userSpaceOnUse" markerWidth="12" markerHeight="12" orient="auto-start-reverse"><path d="M 0 0 L 10 8 L 0 8 z"/></marker></defs><defs><marker id="my-svg-solidBottomArrowHead" refX="7.9" refY="0.75" markerUnits="userSpaceOnUse" markerWidth="12" markerHeight="12" orient="auto-start-reverse"><path d="M 0 0 L 10 0 L 0 8 z"/></marker></defs><defs><marker id="my-svg-stickTopArrowHead" refX="7.5" refY="7" markerUnits="userSpaceOnUse" markerWidth="12" markerHeight="12" orient="auto-start-reverse"><path d="M 0 0 L 7 7" stroke="black" stroke-width="1.5" fill="none"/></marker></defs><defs><marker id="my-svg-stickBottomArrowHead" refX="7.5" refY="0" markerUnits="userSpaceOnUse" markerWidth="12" markerHeight="12" orient="auto-start-reverse"><path d="M 0 7 L 7 0" stroke="black" stroke-width="1.5" fill="none"/></marker></defs><g data-et="note" data-id="i4"><rect x="941.5" y="243" fill="#EDF2AE" stroke="#666" width="324" height="37" class="note"/><text x="1104" y="248" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="noteText" dy="1em" style="font-size: 16px; font-weight: 400;"><tspan x="1104">one phase, one result schema, no delegation</tspan></text></g><g data-et="control-structure" data-id="i15"><line x1="64" y1="336" x2="1415.5" y2="336" class="loopLine"/><line x1="1415.5" y1="336" x2="1415.5" y2="808" class="loopLine"/><line x1="64" y1="808" x2="1415.5" y2="808" class="loopLine"/><line x1="64" y1="336" x2="64" y2="808" class="loopLine"/><line x1="64" y1="646" x2="1415.5" y2="646" class="loopLine" style="stroke-dasharray: 3, 3;"/><polygon points="64,336 114,336 114,349 105.6,356 64,356" class="labelBox"/><text x="89" y="349" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="labelText" style="font-size: 16px; font-weight: 400;">alt</text><text x="764.75" y="354" text-anchor="middle" class="loopText" style="font-size: 16px; font-weight: 400;"><tspan x="764.75">[Valid and complete result]</tspan></text><text x="739.75" y="664" text-anchor="middle" class="sectionTitle" style="font-size: 16px; font-weight: 400;">[Malformed, partial, or turn-limited]</text></g><g class="actor-man actor-top" name="User" data-et="participant" data-type="actor" data-id="User" style="stroke: rgb(147, 112, 219);"><line id="actor-man-torso0" x1="75" y1="25" x2="75" y2="45"/><line id="actor-man-arms0" x1="57" y1="33" x2="93" y2="33"/><line x1="57" y1="60" x2="75" y2="45"/><line x1="75" y1="45" x2="91" y2="60"/><circle cx="75" cy="10" r="15" width="150" height="65"/><text x="75" y="67.5" dominant-baseline="central" alignment-baseline="central" class="actor actor-man" style="text-anchor: middle; font-size: 16px; font-weight: 400;"><tspan x="75" dy="0">User</tspan></text></g><text x="244" y="80" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="messageText" dy="1em" style="font-size: 16px; font-weight: 400;">/wayfinder:next [change]</text><line x1="82" y1="111" x2="411" y2="111" class="messageLine0" data-et="message" data-id="i1" data-from="User" data-to="Coord" stroke-width="2" stroke="none" marker-end="url(#my-svg-arrowhead)" style="fill: none;"/><line x1="75" y1="111" x2="75" y2="111" stroke-width="0" marker-start="url(#my-svg-sequencenumber)"/><text x="75" y="115" font-family="sans-serif" font-size="12px" text-anchor="middle" class="sequenceNumber">1</text><text x="416" y="126" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="messageText" dy="1em" style="font-size: 16px; font-weight: 400;">load agent definition and every mapped skill</text><path d="M 416,157 C 476,147 476,187 416,177" class="messageLine0" data-et="message" data-id="i2" data-from="Coord" data-to="Coord" stroke-width="2" stroke="none" marker-end="url(#my-svg-arrowhead)" x1="422" style="fill: none;"/><line x1="415" y1="157" x2="415" y2="157" stroke-width="0" marker-start="url(#my-svg-sequencenumber)"/><text x="415" y="161" font-family="sans-serif" font-size="12px" text-anchor="middle" class="sequenceNumber">2</text><text x="758" y="202" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="messageText" dy="1em" style="font-size: 16px; font-weight: 400;">create capability-narrowed session</text><line x1="422" y1="233" x2="1099.5" y2="233" class="messageLine0" data-et="message" data-id="i3" data-from="Coord" data-to="Child" stroke-width="2" stroke="none" marker-end="url(#my-svg-arrowhead)" style="fill: none;"/><line x1="415" y1="233" x2="415" y2="233" stroke-width="0" marker-start="url(#my-svg-sequencenumber)"/><text x="415" y="237" font-family="sans-serif" font-size="12px" text-anchor="middle" class="sequenceNumber">3</text><text x="761" y="295" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="messageText" dy="1em" style="font-size: 16px; font-weight: 400;">one phase-specific JSON result</text><line x1="1108.5" y1="326" x2="419" y2="326" class="messageLine1" data-et="message" data-id="i5" data-from="Child" data-to="Coord" stroke-width="2" stroke="none" marker-end="url(#my-svg-arrowhead)" style="stroke-dasharray: 3, 3; fill: none;"/><line x1="1103.5" y1="326" x2="1103.5" y2="326" stroke-width="0" marker-start="url(#my-svg-sequencenumber)"/><text x="1103.5" y="330" font-family="sans-serif" font-size="12px" text-anchor="middle" class="sequenceNumber">4</text><text x="416" y="386" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="messageText" dy="1em" style="font-size: 16px; font-weight: 400;">validate against the phase schema</text><path d="M 416,417 C 476,407 476,447 416,437" class="messageLine0" data-et="message" data-id="i7" data-from="Coord" data-to="Coord" stroke-width="2" stroke="none" marker-end="url(#my-svg-arrowhead)" x1="422" style="fill: none;"/><line x1="415" y1="417" x2="415" y2="417" stroke-width="0" marker-start="url(#my-svg-sequencenumber)"/><text x="415" y="421" font-family="sans-serif" font-size="12px" text-anchor="middle" class="sequenceNumber">5</text><text x="585" y="462" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="messageText" dy="1em" style="font-size: 16px; font-weight: 400;">render Markdown artifact (atomic replace)</text><line x1="422" y1="493" x2="754" y2="493" class="messageLine0" data-et="message" data-id="i8" data-from="Coord" data-to="Store" stroke-width="2" stroke="none" marker-end="url(#my-svg-arrowhead)" style="fill: none;"/><line x1="415" y1="493" x2="415" y2="493" stroke-width="0" marker-start="url(#my-svg-sequencenumber)"/><text x="415" y="497" font-family="sans-serif" font-size="12px" text-anchor="middle" class="sequenceNumber">6</text><text x="585" y="508" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="messageText" dy="1em" style="font-size: 16px; font-weight: 400;">update state.json (atomic replace)</text><line x1="422" y1="539" x2="754" y2="539" class="messageLine0" data-et="message" data-id="i9" data-from="Coord" data-to="Store" stroke-width="2" stroke="none" marker-end="url(#my-svg-arrowhead)" style="fill: none;"/><line x1="415" y1="539" x2="415" y2="539" stroke-width="0" marker-start="url(#my-svg-sequencenumber)"/><text x="415" y="543" font-family="sans-serif" font-size="12px" text-anchor="middle" class="sequenceNumber">7</text><text x="247" y="554" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="messageText" dy="1em" style="font-size: 16px; font-weight: 400;">phase complete, next action</text><line x1="420" y1="585" x2="79" y2="585" class="messageLine1" data-et="message" data-id="i10" data-from="Coord" data-to="User" stroke-width="2" stroke="none" marker-end="url(#my-svg-arrowhead)" style="stroke-dasharray: 3, 3; fill: none;"/><line x1="415" y1="585" x2="415" y2="585" stroke-width="0" marker-start="url(#my-svg-sequencenumber)"/><text x="415" y="589" font-family="sans-serif" font-size="12px" text-anchor="middle" class="sequenceNumber">8</text><text x="1080" y="600" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="messageText" dy="1em" style="font-size: 16px; font-weight: 400;">persisted artifacts as phase context</text><line x1="765" y1="631" x2="1400.5" y2="631" class="messageLine1" data-et="message" data-id="i11" data-from="Store" data-to="Next" stroke-width="2" stroke="none" marker-end="url(#my-svg-arrowhead)" style="stroke-dasharray: 3, 3; fill: none;"/><line x1="758" y1="631" x2="758" y2="631" stroke-width="0" marker-start="url(#my-svg-sequencenumber)"/><text x="758" y="635" font-family="sans-serif" font-size="12px" text-anchor="middle" class="sequenceNumber">9</text><text x="416" y="691" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="messageText" dy="1em" style="font-size: 16px; font-weight: 400;">reject and keep state unchanged</text><path d="M 416,722 C 476,712 476,752 416,742" class="messageLine0" data-et="message" data-id="i13" data-from="Coord" data-to="Coord" stroke-width="2" stroke="none" marker-end="url(#my-svg-arrowhead)" x1="422" style="fill: none;"/><line x1="415" y1="722" x2="415" y2="722" stroke-width="0" marker-start="url(#my-svg-sequencenumber)"/><text x="415" y="726" font-family="sans-serif" font-size="12px" text-anchor="middle" class="sequenceNumber">10</text><text x="247" y="767" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="messageText" dy="1em" style="font-size: 16px; font-weight: 400;">retry the same phase after fixing the cause</text><line x1="420" y1="798" x2="79" y2="798" class="messageLine1" data-et="message" data-id="i14" data-from="Coord" data-to="User" stroke-width="2" stroke="none" marker-end="url(#my-svg-arrowhead)" style="stroke-dasharray: 3, 3; fill: none;"/><line x1="415" y1="798" x2="415" y2="798" stroke-width="0" marker-start="url(#my-svg-sequencenumber)"/><text x="415" y="802" font-family="sans-serif" font-size="12px" text-anchor="middle" class="sequenceNumber">11</text><g class="actor-man actor-bottom" name="User" style="stroke: rgb(147, 112, 219);"><line id="actor-man-torso4" x1="75" y1="853" x2="75" y2="873"/><line id="actor-man-arms4" x1="57" y1="861" x2="93" y2="861"/><line x1="57" y1="888" x2="75" y2="873"/><line x1="75" y1="873" x2="91" y2="888"/><circle cx="75" cy="838" r="15" width="150" height="65"/><text x="75" y="895.5" dominant-baseline="central" alignment-baseline="central" class="actor actor-man" style="text-anchor: middle; font-size: 16px; font-weight: 400;"><tspan x="75" dy="0">User</tspan></text></g></svg>
|
|
1
|
+
<svg id="my-svg" width="100%" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" style="max-width: 1641.5px; background-color: #ffffff;" viewBox="-74 -34 1641.5 962" role="graphics-document document" aria-roledescription="sequence"><rect x="-74" y="-34" width="1641.5" height="962" fill="#ffffff"/><g><rect x="1315.5" y="828" fill="#eaeaea" stroke="#666" width="178" height="65" name="Next" rx="3" ry="3" class="actor actor-bottom"/><text x="1404.5" y="860.5" dominant-baseline="central" alignment-baseline="central" class="actor actor-box" style="text-anchor: middle; font-size: 16px; font-weight: 400;"><tspan x="1404.5" dy="0">Next phase child session</tspan></text></g><g><rect x="941.5" y="828" fill="#eaeaea" stroke="#666" width="324" height="65" name="Child" rx="3" ry="3" class="actor actor-bottom"/><text x="1103.5" y="860.5" dominant-baseline="central" alignment-baseline="central" class="actor actor-box" style="text-anchor: middle; font-size: 16px; font-weight: 400;"><tspan x="1103.5" dy="0">Fresh child session (one agent + mapped skills)</tspan></text></g><g><rect x="624.5" y="828" fill="#eaeaea" stroke="#666" width="267" height="65" name="Store" rx="3" ry="3" class="actor actor-bottom"/><text x="758" y="860.5" dominant-baseline="central" alignment-baseline="central" class="actor actor-box" style="text-anchor: middle; font-size: 16px; font-weight: 400;"><tspan x="758" dy="0">Artifact store (state.json + Markdown)</tspan></text></g><g><rect x="296.5" y="828" fill="#eaeaea" stroke="#666" width="237" height="65" name="Coord" rx="3" ry="3" class="actor actor-bottom"/><text x="415" y="860.5" dominant-baseline="central" alignment-baseline="central" class="actor actor-box" style="text-anchor: middle; font-size: 16px; font-weight: 400;"><tspan x="415" dy="0">WayfinderCoordinator (authority)</tspan></text></g><g/><g><line id="actor4" x1="1404.5" y1="65" x2="1404.5" y2="828" class="actor-line 200" stroke-width="0.5px" stroke="#999" name="Next" data-et="life-line" data-id="Next"/><g id="root-4" data-et="participant" data-type="participant" data-id="Next"><rect x="1315.5" y="0" fill="#eaeaea" stroke="#666" width="178" height="65" name="Next" rx="3" ry="3" class="actor actor-top"/><text x="1404.5" y="32.5" dominant-baseline="central" alignment-baseline="central" class="actor actor-box" style="text-anchor: middle; font-size: 16px; font-weight: 400;"><tspan x="1404.5" dy="0">Next phase child session</tspan></text></g></g><g><line id="actor3" x1="1103.5" y1="65" x2="1103.5" y2="828" class="actor-line 200" stroke-width="0.5px" stroke="#999" name="Child" data-et="life-line" data-id="Child"/><g id="root-3" data-et="participant" data-type="participant" data-id="Child"><rect x="941.5" y="0" fill="#eaeaea" stroke="#666" width="324" height="65" name="Child" rx="3" ry="3" class="actor actor-top"/><text x="1103.5" y="32.5" dominant-baseline="central" alignment-baseline="central" class="actor actor-box" style="text-anchor: middle; font-size: 16px; font-weight: 400;"><tspan x="1103.5" dy="0">Fresh child session (one agent + mapped skills)</tspan></text></g></g><g><line id="actor2" x1="758" y1="65" x2="758" y2="828" class="actor-line 200" stroke-width="0.5px" stroke="#999" name="Store" data-et="life-line" data-id="Store"/><g id="root-2" data-et="participant" data-type="participant" data-id="Store"><rect x="624.5" y="0" fill="#eaeaea" stroke="#666" width="267" height="65" name="Store" rx="3" ry="3" class="actor actor-top"/><text x="758" y="32.5" dominant-baseline="central" alignment-baseline="central" class="actor actor-box" style="text-anchor: middle; font-size: 16px; font-weight: 400;"><tspan x="758" dy="0">Artifact store (state.json + Markdown)</tspan></text></g></g><g><line id="actor1" x1="415" y1="65" x2="415" y2="828" class="actor-line 200" stroke-width="0.5px" stroke="#999" name="Coord" data-et="life-line" data-id="Coord"/><g id="root-1" data-et="participant" data-type="participant" data-id="Coord"><rect x="296.5" y="0" fill="#eaeaea" stroke="#666" width="237" height="65" name="Coord" rx="3" ry="3" class="actor actor-top"/><text x="415" y="32.5" dominant-baseline="central" alignment-baseline="central" class="actor actor-box" style="text-anchor: middle; font-size: 16px; font-weight: 400;"><tspan x="415" dy="0">WayfinderCoordinator (authority)</tspan></text></g></g><g><line id="actor0" x1="75" y1="80" x2="75" y2="828" class="actor-line 200" stroke-width="0.5px" stroke="#999" name="User" data-et="life-line" data-id="User"/></g><style>#my-svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#my-svg .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#my-svg .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#my-svg .error-icon{fill:#552222;}#my-svg .error-text{fill:#552222;stroke:#552222;}#my-svg .edge-thickness-normal{stroke-width:1px;}#my-svg .edge-thickness-thick{stroke-width:3.5px;}#my-svg .edge-pattern-solid{stroke-dasharray:0;}#my-svg .edge-thickness-invisible{stroke-width:0;fill:none;}#my-svg .edge-pattern-dashed{stroke-dasharray:3;}#my-svg .edge-pattern-dotted{stroke-dasharray:2;}#my-svg .marker{fill:#333333;stroke:#333333;}#my-svg .marker.cross{stroke:#333333;}#my-svg svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#my-svg p{margin:0;}#my-svg .actor{stroke:#9370DB;fill:#ECECFF;stroke-width:1;}#my-svg rect.actor.outer-path[data-look="neo"]{filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#my-svg rect.note[data-look="neo"]{stroke:#aaaa33;fill:#fff5ad;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#my-svg text.actor>tspan{fill:black;stroke:none;}#my-svg .actor-line{stroke:#9370DB;}#my-svg .innerArc{stroke-width:1.5;stroke-dasharray:none;}#my-svg .messageLine0{stroke-width:1.5;stroke-dasharray:none;stroke:#333;}#my-svg .messageLine1{stroke-width:1.5;stroke-dasharray:2,2;stroke:#333;}#my-svg [id$="-arrowhead"] path{fill:#333;stroke:#333;}#my-svg .sequenceNumber{fill:white;}#my-svg [id$="-sequencenumber"]{fill:#333;}#my-svg [id$="-crosshead"] path{fill:#333;stroke:#333;}#my-svg .messageText{fill:#333;stroke:none;}#my-svg .labelBox{stroke:#9370DB;fill:#ECECFF;filter:none;}#my-svg .labelText,#my-svg .labelText>tspan{fill:black;stroke:none;}#my-svg .loopText,#my-svg .loopText>tspan{fill:black;stroke:none;}#my-svg .sectionTitle,#my-svg .sectionTitle>tspan{fill:black;stroke:none;}#my-svg .loopLine{stroke-width:2px;stroke-dasharray:2,2;stroke:#9370DB;fill:#9370DB;}#my-svg .note{stroke:#aaaa33;fill:#fff5ad;}#my-svg .noteText,#my-svg .noteText>tspan{fill:black;stroke:none;}#my-svg .activation0{fill:#f4f4f4;stroke:#666;}#my-svg .activation1{fill:#f4f4f4;stroke:#666;}#my-svg .activation2{fill:#f4f4f4;stroke:#666;}#my-svg .actorPopupMenu{position:absolute;}#my-svg .actorPopupMenuPanel{position:absolute;fill:#ECECFF;box-shadow:0px 8px 16px 0px rgba(0,0,0,0.2);filter:drop-shadow(3px 5px 2px rgb(0 0 0 / 0.4));}#my-svg .actor-man circle,#my-svg line{fill:#ECECFF;stroke-width:2px;}#my-svg g rect.rect{filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));stroke:#9370DB;}#my-svg .node .neo-node{stroke:#9370DB;}#my-svg [data-look="neo"].node rect,#my-svg [data-look="neo"].cluster rect,#my-svg [data-look="neo"].node polygon{stroke:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#my-svg [data-look="neo"].swimlane.cluster rect{filter:none;}#my-svg [data-look="neo"].node path{stroke:#9370DB;stroke-width:1px;}#my-svg [data-look="neo"].node .outer-path{filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#my-svg [data-look="neo"].node .neo-line path{stroke:#9370DB;filter:none;}#my-svg [data-look="neo"].node circle{stroke:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#my-svg [data-look="neo"].node circle .state-start{fill:#000000;}#my-svg [data-look="neo"].icon-shape .icon{fill:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#my-svg [data-look="neo"].icon-shape .icon-neo path{stroke:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#my-svg :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;}</style><g/><defs><symbol id="my-svg-computer" width="24" height="24"><path transform="scale(.5)" d="M2 2v13h20v-13h-20zm18 11h-16v-9h16v9zm-10.228 6l.466-1h3.524l.467 1h-4.457zm14.228 3h-24l2-6h2.104l-1.33 4h18.45l-1.297-4h2.073l2 6zm-5-10h-14v-7h14v7z"/></symbol></defs><defs><symbol id="my-svg-database" fill-rule="evenodd" clip-rule="evenodd"><path transform="scale(.5)" d="M12.258.001l.256.004.255.005.253.008.251.01.249.012.247.015.246.016.242.019.241.02.239.023.236.024.233.027.231.028.229.031.225.032.223.034.22.036.217.038.214.04.211.041.208.043.205.045.201.046.198.048.194.05.191.051.187.053.183.054.18.056.175.057.172.059.168.06.163.061.16.063.155.064.15.066.074.033.073.033.071.034.07.034.069.035.068.035.067.035.066.035.064.036.064.036.062.036.06.036.06.037.058.037.058.037.055.038.055.038.053.038.052.038.051.039.05.039.048.039.047.039.045.04.044.04.043.04.041.04.04.041.039.041.037.041.036.041.034.041.033.042.032.042.03.042.029.042.027.042.026.043.024.043.023.043.021.043.02.043.018.044.017.043.015.044.013.044.012.044.011.045.009.044.007.045.006.045.004.045.002.045.001.045v17l-.001.045-.002.045-.004.045-.006.045-.007.045-.009.044-.011.045-.012.044-.013.044-.015.044-.017.043-.018.044-.02.043-.021.043-.023.043-.024.043-.026.043-.027.042-.029.042-.03.042-.032.042-.033.042-.034.041-.036.041-.037.041-.039.041-.04.041-.041.04-.043.04-.044.04-.045.04-.047.039-.048.039-.05.039-.051.039-.052.038-.053.038-.055.038-.055.038-.058.037-.058.037-.06.037-.06.036-.062.036-.064.036-.064.036-.066.035-.067.035-.068.035-.069.035-.07.034-.071.034-.073.033-.074.033-.15.066-.155.064-.16.063-.163.061-.168.06-.172.059-.175.057-.18.056-.183.054-.187.053-.191.051-.194.05-.198.048-.201.046-.205.045-.208.043-.211.041-.214.04-.217.038-.22.036-.223.034-.225.032-.229.031-.231.028-.233.027-.236.024-.239.023-.241.02-.242.019-.246.016-.247.015-.249.012-.251.01-.253.008-.255.005-.256.004-.258.001-.258-.001-.256-.004-.255-.005-.253-.008-.251-.01-.249-.012-.247-.015-.245-.016-.243-.019-.241-.02-.238-.023-.236-.024-.234-.027-.231-.028-.228-.031-.226-.032-.223-.034-.22-.036-.217-.038-.214-.04-.211-.041-.208-.043-.204-.045-.201-.046-.198-.048-.195-.05-.19-.051-.187-.053-.184-.054-.179-.056-.176-.057-.172-.059-.167-.06-.164-.061-.159-.063-.155-.064-.151-.066-.074-.033-.072-.033-.072-.034-.07-.034-.069-.035-.068-.035-.067-.035-.066-.035-.064-.036-.063-.036-.062-.036-.061-.036-.06-.037-.058-.037-.057-.037-.056-.038-.055-.038-.053-.038-.052-.038-.051-.039-.049-.039-.049-.039-.046-.039-.046-.04-.044-.04-.043-.04-.041-.04-.04-.041-.039-.041-.037-.041-.036-.041-.034-.041-.033-.042-.032-.042-.03-.042-.029-.042-.027-.042-.026-.043-.024-.043-.023-.043-.021-.043-.02-.043-.018-.044-.017-.043-.015-.044-.013-.044-.012-.044-.011-.045-.009-.044-.007-.045-.006-.045-.004-.045-.002-.045-.001-.045v-17l.001-.045.002-.045.004-.045.006-.045.007-.045.009-.044.011-.045.012-.044.013-.044.015-.044.017-.043.018-.044.02-.043.021-.043.023-.043.024-.043.026-.043.027-.042.029-.042.03-.042.032-.042.033-.042.034-.041.036-.041.037-.041.039-.041.04-.041.041-.04.043-.04.044-.04.046-.04.046-.039.049-.039.049-.039.051-.039.052-.038.053-.038.055-.038.056-.038.057-.037.058-.037.06-.037.061-.036.062-.036.063-.036.064-.036.066-.035.067-.035.068-.035.069-.035.07-.034.072-.034.072-.033.074-.033.151-.066.155-.064.159-.063.164-.061.167-.06.172-.059.176-.057.179-.056.184-.054.187-.053.19-.051.195-.05.198-.048.201-.046.204-.045.208-.043.211-.041.214-.04.217-.038.22-.036.223-.034.226-.032.228-.031.231-.028.234-.027.236-.024.238-.023.241-.02.243-.019.245-.016.247-.015.249-.012.251-.01.253-.008.255-.005.256-.004.258-.001.258.001zm-9.258 20.499v.01l.001.021.003.021.004.022.005.021.006.022.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.023.018.024.019.024.021.024.022.025.023.024.024.025.052.049.056.05.061.051.066.051.07.051.075.051.079.052.084.052.088.052.092.052.097.052.102.051.105.052.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.048.144.049.147.047.152.047.155.047.16.045.163.045.167.043.171.043.176.041.178.041.183.039.187.039.19.037.194.035.197.035.202.033.204.031.209.03.212.029.216.027.219.025.222.024.226.021.23.02.233.018.236.016.24.015.243.012.246.01.249.008.253.005.256.004.259.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.021.224-.024.22-.026.216-.027.212-.028.21-.031.205-.031.202-.034.198-.034.194-.036.191-.037.187-.039.183-.04.179-.04.175-.042.172-.043.168-.044.163-.045.16-.046.155-.046.152-.047.148-.048.143-.049.139-.049.136-.05.131-.05.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.053.083-.051.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.05.023-.024.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.023.01-.022.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.127l-.077.055-.08.053-.083.054-.085.053-.087.052-.09.052-.093.051-.095.05-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.045-.118.044-.12.043-.122.042-.124.042-.126.041-.128.04-.13.04-.132.038-.134.038-.135.037-.138.037-.139.035-.142.035-.143.034-.144.033-.147.032-.148.031-.15.03-.151.03-.153.029-.154.027-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.01-.179.008-.179.008-.181.006-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.006-.179-.008-.179-.008-.178-.01-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.027-.153-.029-.151-.03-.15-.03-.148-.031-.146-.032-.145-.033-.143-.034-.141-.035-.14-.035-.137-.037-.136-.037-.134-.038-.132-.038-.13-.04-.128-.04-.126-.041-.124-.042-.122-.042-.12-.044-.117-.043-.116-.045-.113-.045-.112-.046-.109-.047-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.05-.093-.052-.09-.051-.087-.052-.085-.053-.083-.054-.08-.054-.077-.054v4.127zm0-5.654v.011l.001.021.003.021.004.021.005.022.006.022.007.022.009.022.01.022.011.023.012.023.013.023.015.024.016.023.017.024.018.024.019.024.021.024.022.024.023.025.024.024.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.052.11.051.114.051.119.052.123.05.127.051.131.05.135.049.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.044.171.042.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.022.23.02.233.018.236.016.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.012.241-.015.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.048.139-.05.136-.049.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.051.051-.049.023-.025.023-.024.021-.025.02-.024.019-.024.018-.024.017-.024.015-.023.014-.023.013-.024.012-.022.01-.023.01-.023.008-.022.006-.022.006-.022.004-.021.004-.022.001-.021.001-.021v-4.139l-.077.054-.08.054-.083.054-.085.052-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.044-.118.044-.12.044-.122.042-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.035-.143.033-.144.033-.147.033-.148.031-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.009-.179.009-.179.007-.181.007-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.007-.179-.007-.179-.009-.178-.009-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.031-.146-.033-.145-.033-.143-.033-.141-.035-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.04-.126-.041-.124-.042-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.051-.093-.051-.09-.051-.087-.053-.085-.052-.083-.054-.08-.054-.077-.054v4.139zm0-5.666v.011l.001.02.003.022.004.021.005.022.006.021.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.024.018.023.019.024.021.025.022.024.023.024.024.025.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.051.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.043.171.043.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.021.23.02.233.018.236.017.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.013.241-.014.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.049.139-.049.136-.049.131-.051.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.049.023-.025.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.022.01-.023.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.153l-.077.054-.08.054-.083.053-.085.053-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.048-.105.048-.106.048-.109.046-.111.046-.114.046-.115.044-.118.044-.12.043-.122.043-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.034-.143.034-.144.033-.147.032-.148.032-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.024-.161.024-.162.023-.163.023-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.01-.178.01-.179.009-.179.007-.181.006-.182.006-.182.004-.184.003-.184.001-.185.001-.185-.001-.184-.001-.184-.003-.182-.004-.182-.006-.181-.006-.179-.007-.179-.009-.178-.01-.176-.01-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.023-.162-.023-.161-.024-.159-.024-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.032-.146-.032-.145-.033-.143-.034-.141-.034-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.041-.126-.041-.124-.041-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.048-.105-.048-.102-.048-.1-.05-.097-.049-.095-.051-.093-.051-.09-.052-.087-.052-.085-.053-.083-.053-.08-.054-.077-.054v4.153zm8.74-8.179l-.257.004-.254.005-.25.008-.247.011-.244.012-.241.014-.237.016-.233.018-.231.021-.226.022-.224.023-.22.026-.216.027-.212.028-.21.031-.205.032-.202.033-.198.034-.194.036-.191.038-.187.038-.183.04-.179.041-.175.042-.172.043-.168.043-.163.045-.16.046-.155.046-.152.048-.148.048-.143.048-.139.049-.136.05-.131.05-.126.051-.123.051-.118.051-.114.052-.11.052-.106.052-.101.052-.096.052-.092.052-.088.052-.083.052-.079.052-.074.051-.07.052-.065.051-.06.05-.056.05-.051.05-.023.025-.023.024-.021.024-.02.025-.019.024-.018.024-.017.023-.015.024-.014.023-.013.023-.012.023-.01.023-.01.022-.008.022-.006.023-.006.021-.004.022-.004.021-.001.021-.001.021.001.021.001.021.004.021.004.022.006.021.006.023.008.022.01.022.01.023.012.023.013.023.014.023.015.024.017.023.018.024.019.024.02.025.021.024.023.024.023.025.051.05.056.05.06.05.065.051.07.052.074.051.079.052.083.052.088.052.092.052.096.052.101.052.106.052.11.052.114.052.118.051.123.051.126.051.131.05.136.05.139.049.143.048.148.048.152.048.155.046.16.046.163.045.168.043.172.043.175.042.179.041.183.04.187.038.191.038.194.036.198.034.202.033.205.032.21.031.212.028.216.027.22.026.224.023.226.022.231.021.233.018.237.016.241.014.244.012.247.011.25.008.254.005.257.004.26.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.022.224-.023.22-.026.216-.027.212-.028.21-.031.205-.032.202-.033.198-.034.194-.036.191-.038.187-.038.183-.04.179-.041.175-.042.172-.043.168-.043.163-.045.16-.046.155-.046.152-.048.148-.048.143-.048.139-.049.136-.05.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.05.051-.05.023-.025.023-.024.021-.024.02-.025.019-.024.018-.024.017-.023.015-.024.014-.023.013-.023.012-.023.01-.023.01-.022.008-.022.006-.023.006-.021.004-.022.004-.021.001-.021.001-.021-.001-.021-.001-.021-.004-.021-.004-.022-.006-.021-.006-.023-.008-.022-.01-.022-.01-.023-.012-.023-.013-.023-.014-.023-.015-.024-.017-.023-.018-.024-.019-.024-.02-.025-.021-.024-.023-.024-.023-.025-.051-.05-.056-.05-.06-.05-.065-.051-.07-.052-.074-.051-.079-.052-.083-.052-.088-.052-.092-.052-.096-.052-.101-.052-.106-.052-.11-.052-.114-.052-.118-.051-.123-.051-.126-.051-.131-.05-.136-.05-.139-.049-.143-.048-.148-.048-.152-.048-.155-.046-.16-.046-.163-.045-.168-.043-.172-.043-.175-.042-.179-.041-.183-.04-.187-.038-.191-.038-.194-.036-.198-.034-.202-.033-.205-.032-.21-.031-.212-.028-.216-.027-.22-.026-.224-.023-.226-.022-.231-.021-.233-.018-.237-.016-.241-.014-.244-.012-.247-.011-.25-.008-.254-.005-.257-.004-.26-.001-.26.001z"/></symbol></defs><defs><symbol id="my-svg-clock" width="24" height="24"><path transform="scale(.5)" d="M12 2c5.514 0 10 4.486 10 10s-4.486 10-10 10-10-4.486-10-10 4.486-10 10-10zm0-2c-6.627 0-12 5.373-12 12s5.373 12 12 12 12-5.373 12-12-5.373-12-12-12zm5.848 12.459c.202.038.202.333.001.372-1.907.361-6.045 1.111-6.547 1.111-.719 0-1.301-.582-1.301-1.301 0-.512.77-5.447 1.125-7.445.034-.192.312-.181.343.014l.985 6.238 5.394 1.011z"/></symbol></defs><defs><marker id="my-svg-arrowhead" refX="7.9" refY="5" markerUnits="userSpaceOnUse" markerWidth="12" markerHeight="12" orient="auto-start-reverse"><path d="M -1 0 L 10 5 L 0 10 z"/></marker></defs><defs><marker id="my-svg-crosshead" markerWidth="15" markerHeight="8" orient="auto" refX="4" refY="4.5"><path fill="none" stroke="#000000" stroke-width="1pt" d="M 1,2 L 6,7 M 6,2 L 1,7" style="stroke-dasharray: 0, 0;"/></marker></defs><defs><marker id="my-svg-filled-head" refX="15.5" refY="7" markerWidth="20" markerHeight="28" orient="auto"><path d="M 18,7 L9,13 L14,7 L9,1 Z"/></marker></defs><defs><marker id="my-svg-sequencenumber" refX="15" refY="15" markerWidth="60" markerHeight="40" orient="auto"><circle cx="15" cy="15" r="6"/></marker></defs><defs><marker id="my-svg-solidTopArrowHead" refX="7.9" refY="7.25" markerUnits="userSpaceOnUse" markerWidth="12" markerHeight="12" orient="auto-start-reverse"><path d="M 0 0 L 10 8 L 0 8 z"/></marker></defs><defs><marker id="my-svg-solidBottomArrowHead" refX="7.9" refY="0.75" markerUnits="userSpaceOnUse" markerWidth="12" markerHeight="12" orient="auto-start-reverse"><path d="M 0 0 L 10 0 L 0 8 z"/></marker></defs><defs><marker id="my-svg-stickTopArrowHead" refX="7.5" refY="7" markerUnits="userSpaceOnUse" markerWidth="12" markerHeight="12" orient="auto-start-reverse"><path d="M 0 0 L 7 7" stroke="black" stroke-width="1.5" fill="none"/></marker></defs><defs><marker id="my-svg-stickBottomArrowHead" refX="7.5" refY="0" markerUnits="userSpaceOnUse" markerWidth="12" markerHeight="12" orient="auto-start-reverse"><path d="M 0 7 L 7 0" stroke="black" stroke-width="1.5" fill="none"/></marker></defs><g data-et="note" data-id="i4"><rect x="941.5" y="243" fill="#EDF2AE" stroke="#666" width="324" height="37" class="note"/><text x="1104" y="248" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="noteText" dy="1em" style="font-size: 16px; font-weight: 400;"><tspan x="1104">one phase, one result schema, no delegation</tspan></text></g><g data-et="control-structure" data-id="i15"><line x1="64" y1="336" x2="1415.5" y2="336" class="loopLine"/><line x1="1415.5" y1="336" x2="1415.5" y2="808" class="loopLine"/><line x1="64" y1="808" x2="1415.5" y2="808" class="loopLine"/><line x1="64" y1="336" x2="64" y2="808" class="loopLine"/><line x1="64" y1="646" x2="1415.5" y2="646" class="loopLine" style="stroke-dasharray: 3, 3;"/><polygon points="64,336 114,336 114,349 105.6,356 64,356" class="labelBox"/><text x="89" y="349" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="labelText" style="font-size: 16px; font-weight: 400;">alt</text><text x="764.75" y="354" text-anchor="middle" class="loopText" style="font-size: 16px; font-weight: 400;"><tspan x="764.75">[Valid and complete result]</tspan></text><text x="739.75" y="664" text-anchor="middle" class="sectionTitle" style="font-size: 16px; font-weight: 400;">[Malformed, partial, or turn-limited]</text></g><g class="actor-man actor-top" name="User" data-et="participant" data-type="actor" data-id="User" style="stroke: rgb(147, 112, 219);"><line id="actor-man-torso0" x1="75" y1="25" x2="75" y2="45"/><line id="actor-man-arms0" x1="57" y1="33" x2="93" y2="33"/><line x1="57" y1="60" x2="75" y2="45"/><line x1="75" y1="45" x2="91" y2="60"/><circle cx="75" cy="10" r="15" width="150" height="65"/><text x="75" y="67.5" dominant-baseline="central" alignment-baseline="central" class="actor actor-man" style="text-anchor: middle; font-size: 16px; font-weight: 400;"><tspan x="75" dy="0">User</tspan></text></g><text x="244" y="80" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="messageText" dy="1em" style="font-size: 16px; font-weight: 400;">/wayfinder:next [change]</text><line x1="82" y1="111" x2="411" y2="111" class="messageLine0" data-et="message" data-id="i1" data-from="User" data-to="Coord" stroke-width="2" stroke="none" marker-end="url(#my-svg-arrowhead)" style="fill: none;"/><line x1="75" y1="111" x2="75" y2="111" stroke-width="0" marker-start="url(#my-svg-sequencenumber)"/><text x="75" y="115" font-family="sans-serif" font-size="12px" text-anchor="middle" class="sequenceNumber">1</text><text x="416" y="126" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="messageText" dy="1em" style="font-size: 16px; font-weight: 400;">load agent definition and every mapped skill</text><path d="M 416,157 C 476,147 476,187 416,177" class="messageLine0" data-et="message" data-id="i2" data-from="Coord" data-to="Coord" stroke-width="2" stroke="none" marker-end="url(#my-svg-arrowhead)" x1="422" style="fill: none;"/><line x1="415" y1="157" x2="415" y2="157" stroke-width="0" marker-start="url(#my-svg-sequencenumber)"/><text x="415" y="161" font-family="sans-serif" font-size="12px" text-anchor="middle" class="sequenceNumber">2</text><text x="758" y="202" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="messageText" dy="1em" style="font-size: 16px; font-weight: 400;">create capability-narrowed session</text><line x1="422" y1="233" x2="1099.5" y2="233" class="messageLine0" data-et="message" data-id="i3" data-from="Coord" data-to="Child" stroke-width="2" stroke="none" marker-end="url(#my-svg-arrowhead)" style="fill: none;"/><line x1="415" y1="233" x2="415" y2="233" stroke-width="0" marker-start="url(#my-svg-sequencenumber)"/><text x="415" y="237" font-family="sans-serif" font-size="12px" text-anchor="middle" class="sequenceNumber">3</text><text x="761" y="295" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="messageText" dy="1em" style="font-size: 16px; font-weight: 400;">one phase-specific JSON result</text><line x1="1108.5" y1="326" x2="419" y2="326" class="messageLine1" data-et="message" data-id="i5" data-from="Child" data-to="Coord" stroke-width="2" stroke="none" marker-end="url(#my-svg-arrowhead)" style="stroke-dasharray: 3, 3; fill: none;"/><line x1="1103.5" y1="326" x2="1103.5" y2="326" stroke-width="0" marker-start="url(#my-svg-sequencenumber)"/><text x="1103.5" y="330" font-family="sans-serif" font-size="12px" text-anchor="middle" class="sequenceNumber">4</text><text x="416" y="386" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="messageText" dy="1em" style="font-size: 16px; font-weight: 400;">validate against the phase schema</text><path d="M 416,417 C 476,407 476,447 416,437" class="messageLine0" data-et="message" data-id="i7" data-from="Coord" data-to="Coord" stroke-width="2" stroke="none" marker-end="url(#my-svg-arrowhead)" x1="422" style="fill: none;"/><line x1="415" y1="417" x2="415" y2="417" stroke-width="0" marker-start="url(#my-svg-sequencenumber)"/><text x="415" y="421" font-family="sans-serif" font-size="12px" text-anchor="middle" class="sequenceNumber">5</text><text x="585" y="462" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="messageText" dy="1em" style="font-size: 16px; font-weight: 400;">render Markdown artifact (atomic replace)</text><line x1="422" y1="493" x2="754" y2="493" class="messageLine0" data-et="message" data-id="i8" data-from="Coord" data-to="Store" stroke-width="2" stroke="none" marker-end="url(#my-svg-arrowhead)" style="fill: none;"/><line x1="415" y1="493" x2="415" y2="493" stroke-width="0" marker-start="url(#my-svg-sequencenumber)"/><text x="415" y="497" font-family="sans-serif" font-size="12px" text-anchor="middle" class="sequenceNumber">6</text><text x="585" y="508" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="messageText" dy="1em" style="font-size: 16px; font-weight: 400;">update state.json (atomic replace)</text><line x1="422" y1="539" x2="754" y2="539" class="messageLine0" data-et="message" data-id="i9" data-from="Coord" data-to="Store" stroke-width="2" stroke="none" marker-end="url(#my-svg-arrowhead)" style="fill: none;"/><line x1="415" y1="539" x2="415" y2="539" stroke-width="0" marker-start="url(#my-svg-sequencenumber)"/><text x="415" y="543" font-family="sans-serif" font-size="12px" text-anchor="middle" class="sequenceNumber">7</text><text x="247" y="554" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="messageText" dy="1em" style="font-size: 16px; font-weight: 400;">phase complete, next action</text><line x1="420" y1="585" x2="79" y2="585" class="messageLine1" data-et="message" data-id="i10" data-from="Coord" data-to="User" stroke-width="2" stroke="none" marker-end="url(#my-svg-arrowhead)" style="stroke-dasharray: 3, 3; fill: none;"/><line x1="415" y1="585" x2="415" y2="585" stroke-width="0" marker-start="url(#my-svg-sequencenumber)"/><text x="415" y="589" font-family="sans-serif" font-size="12px" text-anchor="middle" class="sequenceNumber">8</text><text x="1080" y="600" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="messageText" dy="1em" style="font-size: 16px; font-weight: 400;">persisted artifacts as phase context</text><line x1="765" y1="631" x2="1400.5" y2="631" class="messageLine1" data-et="message" data-id="i11" data-from="Store" data-to="Next" stroke-width="2" stroke="none" marker-end="url(#my-svg-arrowhead)" style="stroke-dasharray: 3, 3; fill: none;"/><line x1="758" y1="631" x2="758" y2="631" stroke-width="0" marker-start="url(#my-svg-sequencenumber)"/><text x="758" y="635" font-family="sans-serif" font-size="12px" text-anchor="middle" class="sequenceNumber">9</text><text x="416" y="691" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="messageText" dy="1em" style="font-size: 16px; font-weight: 400;">reject and keep state unchanged</text><path d="M 416,722 C 476,712 476,752 416,742" class="messageLine0" data-et="message" data-id="i13" data-from="Coord" data-to="Coord" stroke-width="2" stroke="none" marker-end="url(#my-svg-arrowhead)" x1="422" style="fill: none;"/><line x1="415" y1="722" x2="415" y2="722" stroke-width="0" marker-start="url(#my-svg-sequencenumber)"/><text x="415" y="726" font-family="sans-serif" font-size="12px" text-anchor="middle" class="sequenceNumber">10</text><text x="247" y="767" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="messageText" dy="1em" style="font-size: 16px; font-weight: 400;">retry the same phase after fixing the cause</text><line x1="420" y1="798" x2="79" y2="798" class="messageLine1" data-et="message" data-id="i14" data-from="Coord" data-to="User" stroke-width="2" stroke="none" marker-end="url(#my-svg-arrowhead)" style="stroke-dasharray: 3, 3; fill: none;"/><line x1="415" y1="798" x2="415" y2="798" stroke-width="0" marker-start="url(#my-svg-sequencenumber)"/><text x="415" y="802" font-family="sans-serif" font-size="12px" text-anchor="middle" class="sequenceNumber">11</text><g class="actor-man actor-bottom" name="User" style="stroke: rgb(147, 112, 219);"><line id="actor-man-torso4" x1="75" y1="853" x2="75" y2="873"/><line id="actor-man-arms4" x1="57" y1="861" x2="93" y2="861"/><line x1="57" y1="888" x2="75" y2="873"/><line x1="75" y1="873" x2="91" y2="888"/><circle cx="75" cy="838" r="15" width="150" height="65"/><text x="75" y="895.5" dominant-baseline="central" alignment-baseline="central" class="actor actor-man" style="text-anchor: middle; font-size: 16px; font-weight: 400;"><tspan x="75" dy="0">User</tspan></text></g></svg>
|