Desuppress ACM guidance so models proactively fold, not just save#16
Merged
Conversation
High-intel models plateaued at save-only under the cold de-primed flow: they created checkpoints but never folded/rebased. Invert the CORE cadence default (folding is the default; skip only with a named reason), add the budget-vs-attention framing (low usage is not by itself a reason to keep raw process live), and frame a fold as as-recoverable-as-a-save. Tilt the travel tool guideline and result cues toward action, and de-suppress the 30% context nudge tier to point at folding now rather than a hypothetical later fold. Eval (exprlang long-flow, 60K window, n=3): sol reaches reliable proactive fold (act 3/3, handoff 3); opus moves from save-only to 2/3 fold (handoff 3). No task-quality regression (task_completion 3 across all runs). Keeps the 道术度 design: no state machine, no mandatory preflight, ACM_CORE<6000.
Long-flow eval measuring whether models proactively fold under a cold, de-primed 6-phase coding flow, judged on activation/timing/handoff/recoverability/ceiling/task_completion. Includes the exprlang fixture, flow driver, LLM judge, and PHASE1-LOG.md documenting the HEAD->v1->v2 iteration. Run outputs (eval/.runs, eval/.harness) are gitignored.
The v2 change rewrote the 30% context-nudge tier to point at folding now (README still described the old checkpoint-oriented framing). Align the README bullet with the shipped nudge text.
n=3 per small model (mimo-v2.5, deepseek-v4-flash, kimi-k2.7) under the unified v2 guidance: task_completion=3 in all 9 runs (no ACM-induced task damage, no thrash), all three reach valid hand=3 folds, residual ~1/3 weak/zero runs are the same non-coercive tunnel variance as Phase-1. Conclusion: v2 satisfies Phase-2 (small models safe + frequently competent; large models unaffected because the guidance is unified and unchanged).
Add cadence-research-flow to probe whether the v2 fold-desuppression conclusion generalizes beyond the single exprlang coding flow. - flow.mjs: RESEARCH_FLOW (6 research/synthesis phases over 5 seeded design docs, no tests/no green exhale) + per-flow taskCompletionDesc + getFlow(); LONG_FLOW gains its taskCompletionDesc. - run-flow.mjs: --flow selector (default exprlang-long-flow), threads flow + taskCompletionDesc. - judge.mjs: parameterize the task_completion dimension per flow. - fixtures/cadence-docs/: 5 interlinked docs with a planted retry contradiction (5 vs 3) and a buried detail (STANDARD timeout 900s). - PHASE3-LOG.md: verdict = v2 conclusion PARTIALLY generalizes. Large-model proactive fold generalizes (sol clean; opus 3/3 activate); new shape-specific weakness = opus over-folds on no-green-signal research (task=2 x3); small-model activation is coding-specific but stays safe.
Builds on v2's de-suppression. Two shifts: - CORE cadence: the fold trigger is re-anchored from context pressure/budget to the rhythm of the work (finish a unit -> its raw process is sediment to fold); 'comfortable cruise' is demoted to the result of the habit, not its trigger, and pressure to a backstop. - TOOL-CONTRACTS: a fold-honesty guard on the travel guideline -- a fold is context hygiene, never a substitute for the turn's deliverable; NEXT carries still-undelivered work, and recording it in State is not giving it. All locked phrases and constraints preserved (ACM_CORE 5980<6000, no state machine, task_completion=3; 109 root tests + typecheck green). Native-window eval could not distinguish v3 from v2/fable because the flow is too small to build low-%/high-sediment conditions, so this is a design-judgment change, not an eval-validated one.
- run-flow.mjs: --native runs on the model's real context window (buildAgentDir shrink:false) so the % nudge stays silent, isolating the static CORE (dao) from the pressure nudge. - PHASE4-LOG.md: at native window the short flow peaks ~7%, below the 30% nudge tier, so fable/v2/v3 are indistinguishable there. The flow is too small to test low-pressure folding -- a measurement limit, not a guidance property.
KorenKrita
force-pushed
the
acm-fold-desuppression-phase1
branch
from
July 17, 2026 10:46
0a9ebe3 to
2721f81
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What & why
High-intel models plateaued at save-only under the cold, de-primed flow — they created checkpoints but never folded/rebased. This branch de-suppresses the ACM guidance so folding reads as a normal, safe, default move, without adding any coercive machinery. The guidance is unified — one CORE (道) + one 术 layer (TOOL-CONTRACTS + 30% nudge) for all models; there is no model-specific text.
Changes
Product (
24fb1a07)CORE.md: invert the cadence default (folding is the default; skip only with a named reason); add budget-vs-attention framing (low usage isn't by itself a reason to keep raw process live); frame a fold as as-recoverable-as-a-save.TOOL-CONTRACTS.md: travel guideline → "a normal working move … as readily as you save a checkpoint"; result cues tilted action-first ("fold it into a handoff", "Rebase instead").context-usage-nudge.ts: de-suppress the 30% tier to point at folding now (removed the "Nothing is required now" escape hatch); 50/70 tiers untouched.generated-guidance.tsregenerated from canonical; test locks co-evolved.Docs (
e8cdb54e) — sync the README 30% nudge bullet with the shipped de-suppressed text.Eval infra (
4f802fc2,87cef57a) — Phase-1 activation eval harness (exprlang long-flow + LLM judge),PHASE1-LOG.md, andPHASE2-LOG.md. Run outputs gitignored.Phase 1 — high-intel models (exprlang long-flow, 60K, n=3)
Phase 2 — small models under the SAME unified guidance (n=3 each)
mimo-v2.5 (thinking=off), deepseek-v4-flash, kimi-k2.7-code-highspeed:
Conclusion: the de-suppression lifts both model tiers off the save-only plateau while staying safe for small models and unchanged for large ones.
Constraints held
道术度 preserved: no state machine, no mandatory preflight, no suffix machinery; task_completion=3; ACM_CORE=5950 (<6000). 33 guidance+nudge tests + typecheck green.
Review
Two-axis review (Standards + Spec) of the code range — both PASS. One accepted judgement-call (no-fix, out of scope): ACM_CORE headroom is only 50 chars, flagged for future edits. Doc/log commits verified factually against the shipped nudge text and run verdicts.