Skip to content

0067 — Tractor / tow / Quantum Jump composition (Group E)

Status

Accepted.

Context

Three audit findings on cross-system movement composition. G-V3 (Roving Fleet Camp reachability) was already closed under ADR-0060. Real workload: two findings (X-D4, S-F3).

The existing tow-through-QJ rules in ../FEATURES/galaxy/sectors.md and ../FEATURES/gameplay/ships.md cover most destroyed-mid-Phase-N cases for the tow side. The gaps the audit identified:

  • X-D4: combat damage to the WJ during QJ Phase 1 / Phase 2 isn't documented. The QJ commit validation list (ERR_QJ_* codes) carries no in-combat rejection. What happens if an attacker engages a WJ that's mid-scan or mid-commit?
  • S-F3: framed as a "deadlock" — towed WJ locked in combat it can't escape. The current docs already say detach is unrestricted ("Tow lock-on requires both ships to be in IN_SPACE state (not IN_COMBAT); detach is unrestricted"), so the deadlock narrative is overstated, but the priority between tow lock and combat lock would benefit from explicit ratification.

Decision

X-D4 — QJ is uninterruptible by combat

Per the user pick, all three QJ phases proceed regardless of incoming combat. Combat damage during QJ phases applies to the WJ hull / shields normally; if hull reaches zero at any point, the standard destruction handler fires. No ERR_QJ_IN_COMBAT_LOCK validation is added to scan or commit endpoints.

Per-phase combat behaviour, documented in ../FEATURES/galaxy/sectors.md:

Phase WJ state Combat damage handling
Phase 1 (scan) Attackable; standard IN_SPACE Combat damage applies to hull / shields normally per ../SYSTEMS/combat-resolver.md. If hull → 0, scan aborts and standard destruction handler fires.
Phase 2 (commit window) Attackable; IN_SPACE until Phase 3 transition Combat damage applies normally. If hull → 0, standard destruction handler fires; tow auto-detaches per existing rules; towed ship enters Drifting at destruction sector.
Phase 3 (HARMONIZING) Invulnerable per ../DATA_MODELS/ships.md Ship status enum No combat possible. Phase 3 destruction commit fires at timer completion (1-hour harmonization window), not at attacker call time.

The "Quantum Jump as combat escape" pattern this enables is intentional: a WJ pilot who manages to commit Phase 2 before destruction succeeds in escaping; one who doesn't, dies. The trade-off — WJ pilots get a meaningful escape vehicle; attackers must commit to a real engagement to deny the jump — fits the WJ's role as a high-cost, high-mobility ship per ADR-0029.

The existing destruction-during-Phase-2 rules in ships.md (tow auto-detaches, towed ship Drifting at destruction sector) already cover the "hauler destroyed mid-tow-QJ" case the audit called out. No new mechanic; just explicit documentation of damage handling per phase.

S-F3 — Tow + combat priority

The current ships.md rules already prevent the deadlock the audit named:

  • Tow lock-on requires both ships in IN_SPACE (not IN_COMBAT).
  • Detach is unrestricted — including from IN_COMBAT state.

Adding an explicit priority statement to remove ambiguity: detach takes priority over combat lock. The towed pilot can break the tow at any moment, including while in combat; the attacker's combat lock does not pin the towed ship to the tow. The hauler can also break the tow at any moment; their combat lock does not pin them to the tow either.

What combat does affect on a tow in progress:

  • Hauler destruction: tow auto-detaches; towed ship enters Drifting at destruction sector (existing rule, preserved).
  • Towed-ship destruction: tow auto-detaches; hauler continues at base turn cost (existing rule, preserved).
  • Combat damage that doesn't destroy: no effect on tow state. Hauler continues towing while taking fire; the towed pilot can choose to detach.

What combat does not do on a tow in progress:

  • Combat lock on hauler does not auto-break tow (only destruction does).
  • Combat lock on towed ship does not auto-break tow (only destruction does).
  • Attacker actions cannot directly break a tow they aren't part of — only the hauler pilot or the towed pilot can detach voluntarily.

Doc clarification only; no schema change.

Consequences

  • The QJ commit validation list stays as it is — no new error code. The damage-during-phase rules land in sectors.md as an explicit table.
  • The "Quantum Jump as combat escape" pattern is now ratified rather than implicit. WJ-vs-attacker engagement design proceeds with this understood.
  • Tow + combat priority is explicit: detach always wins over combat lock. No deadlock scenario exists; the audit's framing was overstated, but the explicit priority rule prevents future ambiguity.
  • Phase 3 invulnerability (the HARMONIZING ship status) is now cited in the QJ-vs-combat table, making the schema → behaviour link visible from the gameplay docs.

Alternatives considered

  • Reject Phase 2 commit when WJ has active combat lock (X-D4). Rejected per user pick — would close the WJ-as-escape-vehicle loophole that's actually a feature; the WJ's value as an escape ship is part of its risk-capital justification per ADR-0029.
  • Reject both Phase 1 scan and Phase 2 commit during combat. Rejected per user pick — strips the scan-as-recon-during-engagement use case.
  • Combat lock breaks tow (S-F3). Considered; rejected — would allow attackers to indirectly break tows by engaging the hauler, which is a tactical edge that has no upside (the towed pilot can detach voluntarily already).