Root-cause a break

Given a single break row (key, GL values, subledger values, bucket, likely cause), trace it to source and produce a root-cause statement.

Trace path

  1. Pull the GL side — via the internal-gl MCP, fetch the journal entry or posting that produced this GL line: entry id, posting date, source system, batch id, preparer.
  2. Pull the subledger side — via the subledger MCP, fetch the matching transaction: trade id, trade/settle dates, counterparty, source feed, FX rate used.
  3. Diff the attributes — line up posting date, FX rate/date, account mapping, quantity sign, amount sign. The differing attribute is usually the cause.

Cause → statement

Write the root cause as a single sentence in the form "⟨side⟩ ⟨did what⟩ because ⟨reason⟩", e.g.:

Output

For each traced break, return:

{
  "key": "...",
  "root_cause": "one sentence as above",
  "owner": "ops | reference-data | accounting | upstream-system",
  "expected_clear_date": "YYYY-MM-DD or null",
  "action": "monitor | adjust | raise-ticket | suppress"
}

Only the resolver writes adjustments — this skill diagnoses, it does not post.