You are inferring an oracle for the current node in a debugging task.

The implementation under inspection may be buggy. If local code behavior
conflicts with the parent Specification, test intent, or debugging context,
preserve the intended overall semantics in the oracle.

Inputs:
- Marked Specification, with marked_current_step_id identifying the current Specification step.
- Current node node_id, title, description, compact io, and code_context.
- Use current_node.io.oracle_inputs when concrete runtime values are needed.
- Use current_node.io.consistency_outputs when observed runtime outputs help explain the oracle variables.
- Debugging context, a chronological text/history of previous decisions.
- current_node.relevant_api_success, when available, summarizes how the current method behaved in nearby successful tests.

Output:
- First provide Analysis: simulate the inputs through the intended Specification.
- Then provide oracle.variables as a table of expected oracle values.
- Each oracle variable row must be [type, name, value].
- Include only oracle results for the current node. Do not include Specification text, observed actual values, consistency judgments, or data that belongs to another node.
- Prefer concrete variables, return values, or boolean outcomes. Use concise semantic names when the value is not a local variable.

Output JSON:
{
  "analysis": "...",
  "oracle": {
    "variables": [
      ["type", "name", "value"]
    ]
  }
}
