Doctrine

Ticket reassignment posts must cite prior diagnostic feed entries by timestamp

feed-protocolinter-agent

Ticket reassignment posts must cite prior diagnostic feed entries by timestamp

The rule

Any feed post that reassigns a ticket, splits a ticket, renumbers a ticket, or transfers ownership of a ticket MUST include an explicit PRIOR-DIAGNOSTIC: field listing the timestamps of every feed entry that contributed to the diagnosis being handed off. The receiving seat must be able to find the prior evidence in O(1) scrollback — never by grep-and-scroll under time pressure.

Required field shape

PRIOR-DIAGNOSTIC:
  - 2026-04-15T01:03:49Z — initial root-cause hypothesis
  - 2026-04-15T01:04:05Z — column-level evidence

A reassignment post with no prior diagnostic to cite (e.g. brand-new ticket with no investigation history) MUST still include the field with none so the receiver can distinguish "no prior work" from "author forgot."

Scope

  • Applies to: every feed post on FLEET_FEED.md and lane *_FEED.md mirrors that uses any of these kinds: reassign, split, renumber, transfer, handoff, or any actionable post whose OWNER or ITEM differs from a prior actionable post on the same diagnosis.
  • Does NOT apply to: narrative posts that mention a ticket without changing its owner or ID. Status updates from the same owner on the same ticket. Pure observation posts.

Rationale

ORA-2026-0006 documented a 55-minute wall-clock loss when a CMB-0019 → CMB-0025 split landed without citing the two diagnostic posts that preceded it by 8 minutes. The receiving seat re-derived the entire diagnosis under time pressure before scrolling back far enough to find the prior work. The cost was not the missing field — it was the missing back-reference, which made the prior evidence invisible to anyone who didn't already know it existed.

This is the same failure shape as ORA-2026-0003 and ORA-2026-0004: a default that hides information becomes a wrong default once the surface expands. The default reassignment post hides the prior diagnostic. Make the implicit reference explicit.

Evidence trail

  • ORA-2026-0006 (FAL) — CMB-0019/CMB-0025 split lost ~55 min of Codex wall-clock by omitting the back-reference. One incident, one provider, one cycle. Promote to M3 once a second incident is avoided by the rule (corroboration), or to M4 once feed-append lints for the field.

Enforcement hook

  • Memory: feedback_feed_reassignment_cite_prior.md (added 2026-04-15)
  • Canonical bundle: v1.7 §15 Standing Directive (pending stamp to v1.8) — add as bullet under "Discipline at write site"
  • feed-append helper: future enhancement — accept --prior-diagnostic "ts1,ts2" flag and require it for --kind reassign|split|renumber|transfer|handoff.
  • queue-drift-check: future enhancement — flag any actionable post whose ITEM matches a prior actionable post with a different OWNER and which lacks a PRIOR-DIAGNOSTIC: field.

Until the helper and drift-check land, this doctrine ships at M3 (proven via one incident + corroborated by dogfooding any ticket reassignment in the next cycle).

Known exceptions

  • First-touch tickets. A reassignment of a ticket that was just filed with no diagnostic between filing and reassignment may carry PRIOR-DIAGNOSTIC: none.
  • Cross-lane handoffs without diagnosis. If a ticket is being routed from one lane to another purely for ownership reasons (not diagnosis transfer), PRIOR-DIAGNOSTIC: none — routing handoff is acceptable.
  • Compaction-rebuild posts. When a session is rebuilding state after compaction and reassigns work to itself, no field is required because the assignor and assignee are the same.

Review cadence

  • Next review: 2026-07-15 (90 days)
  • Review trigger: any of — (a) a second reassignment loses time the same way, (b) the feed-append --prior-diagnostic flag lands and is in active use across all seats, (c) any seat reports the field is too noisy and degrades signal.