Skip to content

Fix Development Behavior

Requirements

The behavioral requirements for this tree are specified in the Protocol Specifications:

  • CSB-09 — Enter CS V (Vendor Aware)
  • CSB-10 — Enter CS F (Fix Ready)
  • CSB-15 — Trigger-Side VFD Role Preconditions

Implementation approach

The behavior tree diagram below illustrates one conformant implementation of these requirements. Implementations are not required to use behavior trees — any approach that satisfies the requirements above is conformant.

Notional external process

The process on this page is notional: it happens outside Vultron. Vultron records its outcome as a state change and does not automate the work itself.

Legacy design diagram

The diagram on this page reflects the simulator-era design from vultron/bt/ and may not match the current implementation in vultron/core/behaviors/. See the Behaviors Reference for auto-generated documentation from the current implementation.

The Fix Development Behavior Tree is shown below.

---
title: Fix Development Behavior Tree
---
flowchart LR
    fb["?"]
    role_not_vendor(["role is not vendor?"])
    fb -->|A| role_not_vendor
    cs_in_VF(["CS in VF...?"])
    fb -->|B| cs_in_VF
    seq["→"]
    fb -->|C| seq
    rm_in_a(["RM in A?"])
    seq --> rm_in_a
    create_fix["create fix"]
    seq --> create_fix
    fix_ready(["fix ready?"])
    seq --> fix_ready
    cs_to_VF["CS &rarr; VFd...<br/>(emit CF)"]
    seq --> cs_to_VF

(A) Fix development is relegated to the Vendor role, so Non-Vendors return Success since they have nothing further to do.

(B) For Vendors, if a fix is ready (i.e., the case is in \(q^{cs} \in VF\cdot\cdot\cdot\cdot\)), the tree returns Success.

(C) Otherwise, engaged Vendors (\(q^{rm} \in A\)) can

  • create fixes
  • set \(q^{cs} \in Vfd\cdot\cdot\cdot \xrightarrow{\mathbf{F}} VFd\cdot\cdot\cdot\)
  • emit \(CF\) upon completion