Planning Commitment Horizon — Specification
Implementation candidate for #67. This specification is Generic NovelForge work only. It does not change any downstream Project lock, Canon, manuscript, user taste, or Settlement state.
Status
Section titled “Status”Implementation candidate for #67. This specification is Generic NovelForge work only. It does not change any downstream Project lock, Canon, manuscript, user taste, or Settlement state.
Evidence basis
Section titled “Evidence basis”This candidate adapts implementation-backed mechanisms from two independent systems:
VioletEvergar-den/AI-Novel-Writing-Assistant@43a78b8d295ba060c1037df49bca942014154074: machine-validated hard/soft volume planning plus adjacent rebalance after a regenerated volume. The useful idea is planning commitment strength; the source system is also a counterexample because soft volumes can still be over-expanded by later calls.joonspk-research/generative_agents@fe05a71d3e4ed7d10bf68aa4eda6dd995ec070f4: broad daily plan -> hourly plan -> only roughly two hours of near-future minute-level decomposition at a time, with event reactions rewriting a bounded schedule slice. The useful idea is runtime-enforced progressive realization and local replanning; the hard-coded time window is domain-specific and must not be copied.
Problem
Section titled “Problem”NovelForge already knows how to reconcile an active plan after causal evidence changes (plan.reconcile), explore alternative futures (scenario_fork), and record downstream invalidation work (#63 propagation debt). It does not yet express how much future detail a planner is allowed to commit before that evidence exists.
Without a commitment horizon, a serialized-fiction planner can over-specify distant chapters simply because the artifact schema allows it. Later emergence then creates unnecessary staleness, brittle causal forcing, and false “plan failure” instead of normal adaptation.
- Represent a bounded planning region with explicit commitment strength and maximum allowed planning depth.
- Deterministically reject known planning operations whose registered artifact kind exceeds that region’s depth ceiling.
- Require an explicit, fingerprint-bound transition before a region may gain stronger/deeper planning permission.
- Select the first local rebalance frontier only from explicit dependency evidence, including non-adjacent dependencies and excluding merely adjacent unrelated regions.
- Preserve existing NovelForge authority boundaries: planning strength never implies Canon, acceptance, Settlement, or automatic active-plan mutation.
- Remain profile-sensitive. A tightly plotted short novel may allow deep hard planning across most of the work; a discovery-writing profile may keep even near-future regions soft.
Non-goals
Section titled “Non-goals”- Do not create a second active-plan store.
- Do not replace
plan.reconcilewith deterministic story judgment. - Do not create a second propagation/dirty graph beside #63.
- Do not infer literary over-concretization from arbitrary prose using Python.
- Do not automatically promote, regenerate, reconcile, settle, or create Canon.
- Do not impose a universal number of chapters, volumes, days, or story-order units as the horizon.
Planning region
Section titled “Planning region”A portable planning-region artifact records at minimum:
project_idregion_idplan_ref- optional story-order bounds / semantic scope
commitment_strength:open | soft | hardmax_planning_depth: one of the registered depth levelsassumption_refsdependency_refs- opaque
unresolved_decision_refswhen a separate decision system supplies them version- exact artifact fingerprint
hard means a stronger active-plan commitment, never immutable truth or Accepted Canon.
Planning depth
Section titled “Planning depth”The initial generic depth order is deliberately small:
arc_boundary— role, boundary, reward/escalation obligation, broad outcome classbeat— causal beat or milestone intentscene_intent— scene-level dramatic/action intentchapter_detail— sufficiently detailed chapter plan intended to guide drafting
Known planning artifact kinds map deterministically to a required depth:
arc_role->arc_boundarybeat_sheet->beatscene_card->scene_intentchapter_plan->chapter_detail
Unknown kinds fail closed until registered. This mapping is an admission-control contract, not a claim that arbitrary text can be perfectly classified without semantic review.
Profile policy
Section titled “Profile policy”A policy defines the maximum depth allowed for each commitment strength. Example profiles may choose:
- serialized/adaptive:
open <= arc_boundary,soft <= beat,hard <= chapter_detail - discovery-heavy:
open <= arc_boundary,soft <= scene_intent,hard <= chapter_detailbut may leave nearby regions soft - tightly plotted short work: most regions may begin
hardwithchapter_detail
The Framework must not ship a universal “first N volumes hard” rule.
Realization admission
Section titled “Realization admission”A realization request names an existing region fingerprint/version and a registered artifact kind. The deterministic runtime:
- validates the region and policy;
- resolves the artifact kind to a required depth;
- compares required depth with both the region ceiling and profile ceiling;
- returns
allowedorblocked_depth_ceiling; - performs no model execution and writes no plan.
A caller cannot gain permission by putting an arbitrary requested_depth label on a more concrete registered operation.
Horizon transition
Section titled “Horizon transition”Changing commitment strength or maximum depth is an explicit transition with:
- actor class allowed by policy;
- exact before
versionand artifact fingerprint; - target strength/depth within profile ceilings;
- concise public reason and evidence refs;
- new fingerprint/version.
A writer is not an implicit horizon promoter. The transition artifact remains non-authoritative and does not itself mutate a separate active-plan store.
Dependency-bounded rebalance frontier
Section titled “Dependency-bounded rebalance frontier”The runtime accepts a source change plus explicit dependency evidence. Each dependency record binds:
dependency_ref+ fingerprintsource_refdependent_ref+ current fingerprint- either
scope=all_source_changesor specificassumption_refs - required action (
replanfor this contract) - optional #63
propagation_debt_ref
A dependent enters the frontier only when its source matches the changed source and its declared scope is affected. Physical adjacency has no authority. A non-adjacent dependent with matching evidence is included; an adjacent item with no evidence is excluded.
The frontier is intentionally one evidence-bounded wave. If reconciliation actually changes a dependent, #63 can record the resulting downstream debt and expose a later frontier. This avoids recursively invalidating the entire future merely because an upstream item might change.
Context and authority guardrails
Section titled “Context and authority guardrails”open/softspeculative future detail must not be treated as character knowledge, current state, reader-visible fact, or Accepted Canon.- Context projection remains owned by existing context/worker contracts; this mechanism only exposes strength/depth metadata and never grants visibility authority.
scenario_forkremains the exploration mechanism.plan.reconcileremains the semantic reconciliation operation.- #63 remains the durable propagation-debt lifecycle.
- #65 creative-decision artifacts, if available, are referenced opaquely; #67 must not depend on #65 being installed.
Acceptance / regressions
Section titled “Acceptance / regressions”- A
softregion whose ceiling isbeatrejects achapter_planrealization. - A valid
hardregion may admitchapter_planwhen policy permits it. - An authorized exact-before transition can deepen/promote a region and advances version/fingerprint exactly once.
- Writer/self-declared authority cannot promote a region.
- Stale version/fingerprint transition fails closed.
- A non-adjacent evidence-linked dependency appears in the rebalance frontier.
- A physically adjacent but evidence-unlinked region is excluded.
- The frontier never auto-runs
plan.reconcileand never auto-opens debt. - A short tightly plotted profile can permit broad deep hard planning.
- A discovery profile can keep near-future regions soft without error.
- All outputs report no Canon/Project/Framework/Settlement authority.
- Semantic counterexample eval must verify that meaningful far-future over-concretization is blocked while trivial/local planning does not become bureaucratic horizon management.
Rollback
Section titled “Rollback”Disabling horizon enforcement must leave existing active-plan artifacts untouched and return planning behavior to the pre-existing plan.reconcile / scenario / context contracts. No migration may rewrite Canon as part of rollback.