Long-horizon execution — loops, planning, splits, hooks — step 10 of 10
Checkpoint
One last thing before we move on. Same surface as a write step — but the lesson doesn't complete until this passes.
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']}
⌘↵ runs the editor.read, then continue.
Checkpoint
One last thing before we move on. Same surface as a write step — but the lesson doesn't complete until this passes.
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']}
this step needs the editor
on desktop today; in the app (coming soon). save your spot and we'll bring you back here when you're ready.