Generated 2026-04-13 00:48:05 UTC | Back to ladder index | Back to docs
Status: passed
Validation: 6/6 passed
Parser failures: 0 | Apply failures: 0
Artifacts: raw run json | rendered run transcript
| # | Expected Route | Utterance |
|---|---|---|
| 1 | assert_fact | Mira is Niko's parent. |
| 2 | assert_fact | {'utterance': 'uh hes probs parent of opal too, same niko from above', 'clarification_answers': ['He means Niko. Niko is a parent of Opal.'], 'max_clarification_rounds': 2} |
| 3 | assert_rule | If X is a parent of Y then X is an ancestor of Y. |
| 4 | assert_rule | If X is an ancestor of Y and Y is an ancestor of Z then X is an ancestor of Z. |
| 5 | assert_fact | quick check is mira ancestor of opal rn |
| 6 | retract | {'utterance': 'nah undo just that niko -> opal bit, mira -> niko stays', 'clarification_answers': ['Retract parent(niko, opal).', 'Yes, remove only parent(niko, opal).'], 'max_clarification_rounds': 2} |
| 7 | assert_fact | Rhea is parented by Niko. |
| 8 | assert_fact | Opal has Rhea as a parent. |
| 9 | assert_fact | after the cleanup does mira reach opal again |
| ID | Query | Expect | Min Rows | Max Rows |
|---|---|---|---|---|
| mira_niko_parent | parent(mira, niko). | success | 1 | |
| niko_opal_removed | parent(niko, opal). | no_results | 0 | |
| niko_rhea_parent | parent(niko, rhea). | success | 1 | |
| rhea_opal_parent | parent(rhea, opal). | success | 1 | |
| mira_opal_ancestor | ancestor(mira, opal). | success | 1 | |
| ghost_he_absent | parent(he, opal). | no_results | 0 |