lesson 4 of 6 · long-horizon execution — loops, planning, splits, hookslong-horizon execution — loops, planning, splits, hookslesson 4 of 6 · long-horizon execution — loops, planning, splits, hookslong-horizon execution — loops, planning, splits, hookslesson 4 of 6 · long-horizon execution — loops, planning, splits, hookslong-horizon execution — loops, planning, splits, hookslesson 4 of 6 · long-horizon execution — loops, planning, splits, hookslong-horizon execution — loops, planning, splits, hookslesson 4 of 6 · long-horizon execution — loops, planning, splits, hookslong-horizon execution — loops, planning, splits, hookslesson 4 of 6 · long-horizon execution — loops, planning, splits, hookslong-horizon execution — loops, planning, splits, hookslesson 4 of 6 · long-horizon execution — loops, planning, splits, hookslong-horizon execution — loops, planning, splits, hookslesson 4 of 6 · long-horizon execution — loops, planning, splits, hookslong-horizon execution — loops, planning, splits, hookslesson 4 of 6 · long-horizon execution — loops, planning, splits, hookslong-horizon execution — loops, planning, splits, hookslesson 4 of 6 · long-horizon execution — loops, planning, splits, hookslong-horizon execution — loops, planning, splits, hookslesson 4 of 6 · long-horizon execution — loops, planning, splits, hookslong-horizon execution — loops, planning, splits, hooks
Checkpoint
One last thing before we move on. pass this to mark the lesson done, or skip and keep moving. hop to the next when you're ready.
Final long-horizon drill. Write audit_long_horizon(harness) that
scores a harness across the six long-horizon capabilities:
["loop_intercept", "planning_step", "eval_split",
"pre_tool_hooks", "post_edit_hooks", "completion_guard"]
Returns a dict:
score: int 0-100. Each capability present = 16 points. All six present = 100 (rounding bonus).missing: list of capability names not present, in the canonical order above.
Five harnesses run for you. Expected output:
claude-code-plus: {'score': 100, 'missing': []}
cursor-default: {'score': 32, 'missing': ['loop_intercept', 'eval_split', 'pre_tool_hooks', 'completion_guard']}
codex-basic: {'score': 32, 'missing': ['loop_intercept', 'eval_split', 'post_edit_hooks', 'completion_guard']}
aider-minimal: {'score': 16, 'missing': ['loop_intercept', 'planning_step', 'eval_split', 'pre_tool_hooks', 'completion_guard']}
rolled-our-own: {'score': 80, 'missing': ['post_edit_hooks']}