phase10: config.lua example for cfg.norris.{preplanner,executor}

Documents the new Phase 10 / #89 surface for users: when, why, and
how to set cfg.norris.preplanner + .executor + .tasks_max. Notes the
graceful single-model fall-back when preplanner is unset OR fails,
and the design choice that preplan does NOT route via call_broker
(retry would silently swap planning models).

C5: config-only commit; no behavior change.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-05-17 08:22:22 +00:00
parent 76a8f97009
commit cb37fa861a
+31
View File
@@ -307,6 +307,37 @@ return {
-- tail is usually the relevant bit); known limitation for
-- structured tool results. Disable per-model if it bites.
-- ── Issue #89 / Phase 10: cloud preplanner → local executor split.
-- When cfg.norris.preplanner names a model preset, :norris launch
-- fires ONE broker.chat against that preset asking for a sequence
-- of TASK: <imperative> lines. Parsed list (capped at tasks_max)
-- becomes ctx.norris_tasks; the executor model (cfg.norris.executor,
-- defaulting to the active :model selection) runs each task with
-- the current task shown in the per-step header.
--
-- Goal: small fast local models are cheap per step but easily
-- distracted on multi-step plans; cloud is capable at planning
-- but expensive per step. Use cloud ONCE for the plan, local for
-- every step. Falls back to single-model Norris (existing
-- behavior) when preplanner unset / fails / produces no TASKs.
--
-- norris = {
-- preplanner = "anthropic", -- model name in cfg.models;
-- -- this preset is called ONCE per
-- -- :norris launch. Omit to run
-- -- single-model (Phase 6 behavior).
-- executor = "fast", -- model that runs each step.
-- -- Omit to use the active :model.
-- tasks_max = 16, -- cap on preplan list size.
-- -- preplan_system = "...", -- override the built-in prompt
-- },
--
-- :cost detail separates norris-preplan and norris rows so you
-- can see cloud planning cost vs local execution cost. The
-- preplan call does NOT retry via fallback_model (a different
-- model = a different decomposition; clean hard-fail to single-
-- model is safer).
-- ── Phase 5 context summarization on sliding-window eviction.
-- Set INSIDE the context = { ... } block above to enable:
-- context = {