feat(method): call-floor — 5 call-count levers, compound ticks, skill orient split (supersedes #147)#149
Merged
Merged
Conversation
…al levers Extends ceremony-to-effort's open meter criteria; every task maps to a measured residual in the WM1 re-measure (double-init, milestone bait, too-narrow scope, pure ticks, SKILL.md read weight). Human 'fix all' 2026-07-13. author: Tin Dang <tindang.ht97@gmail.com>
… nudge · scope coverage hint Three small levers from the WM1 re-measure's residual anatomy, batched under one fence (3496/3496 OK, +8 new tests): - init-resume-pointer: the `already initialised` refusal ends with `resume: add.py status` — the observed double-init (+2 calls/rep) dead-ends in one call; still a refusal, zero tree writes - milestone-lane-nudge: new-milestone prints `lane: single task? the oneshot lane is cheaper...` at the bait point that cost rep r1 ~10 calls; v2 change request re-prefixed from note: after three persona-nudge suites pinned that marker class one-per-invocation - scope-coverage-hint: the freeze echo notes §3 Touches paths that exist but sit OUTSIDE the resolved scope — the too-narrow class behind the measured re-cross repairs; propose-not-impose, never speculative ENGINE_MD5 -> 6f4e791f, engine synced x3, SEAMS _declared_scope pin re-aimed 5581->5595. Gate PASS x3. refs: milestone call-floor (1-3/5), stacked on PR #146 author: Tin Dang <tindang.ht97@gmail.com>
…d (call-floor 4/5) The oneshot lane's 8-9 engine calls include two PURE ticks with no work between them: freeze->tests and build->verify->gate. Two opt-in compressions remove them, worth ~2 calls/task at the WM1 meter: - `freeze --by X --cross`: after a plan-phase freeze STAMPS, the task lands in tests in the same call (state first, marker mirrored). A refused/already-frozen freeze never crosses; a change-request re-freeze at a non-plan phase gets an advisory note instead. - `gate PASS|RISK-ACCEPTED` at the BUILD phase auto-crosses build->verify then runs every completion check unchanged (tamper, scope, high-risk, consumer-stale, green-bar). Phases before build keep their refusals verbatim; HARD-STOP is untouched. - the new-task recipe advertises the compressed lane; the test_kickoff_truth RecipeTest pin updates to the new recipe truth (declared in-scope doc-truth ripple, flow-honesty precedent). Defaults byte-identical: the bare freeze and every existing tick sequence are unchanged (3496 prior fixtures still pass unmodified). 7 red/green tests in test_compound_ticks.py; full fence 3503/3503 OK. Engine synced x3, ENGINE_MD5 re-aimed 26f78f04, SEAMS _declared_scope pin 5595->5619. The feature proved itself: this task's own gate ran from the build phase via the new compound tick. refs: milestone call-floor (WM1 residual: pure ticks), task compound-ticks frozen @ v1 author: Tin Dang <tindang.ht97@gmail.com>
…ond.md (call-floor 5/5)
SKILL.md is read on EVERY task but carried ~3.4KB of on-demand routing
prose ("Beyond the bundle" verbose bullets) most tasks never take:
- the prose moves to the NEW on-demand guide skill/add/beyond.md
(synced x3: canonical + _bundled + .claude/skills)
- SKILL.md keeps a compact one-line-per-trigger index; the always-read
orient core drops 12819 -> 9498 bytes (-26%), pinned <= 9500 by
test_skill_orient_split.py
- every structural pin holds: 17 on-demand pointers, phase-guide rows,
banner-cue sentence, question-summary line, SOUL.md proximity,
"Depth by stage" + "method rationale" sections, .add/personas/ +
persona loop, advisor-gate-relax, agent-call-preferred default
execution mode, retrospective-consolidation keep-term
- core pool absorbs beyond.md; baseline 20666 -> 20906 for the +211B
net new surface (index + file header) per the documented
rebaseline-for-human-approved-surface method, contract FROZEN @ v1
- wording-lint surface count pins 31 -> 32 (test_wording_lint +
test_per_step_hooks), declared doc-truth ripples
5 red/green tests; pin battery 131 green; full fence 3508/3508 OK.
No engine change (ENGINE_MD5 untouched). The task's own freeze ran
`freeze --cross` and its gate ran from build — both call-floor 4/5
compound ticks proved themselves here.
refs: milestone call-floor (read burden toward <=30KB), task skill-orient-split frozen @ v1
author: Tin Dang <tindang.ht97@gmail.com>
…the paid re-measure All 5 tasks gate PASS with test-pinned evidence (a2df502 tasks 1-3, d8e1718 compound-ticks, 2d10b2a skill-orient-split); 6/7 exit criteria checked with evidence. The 7th (paid WM1 re-measure, mean calls <= 12) is human-gated spend — the goal-gate holds the milestone open until it runs. skill-orient-split criterion checked PARTIAL-ACCEPTED (9498B vs ~8.5K sketch, read path ~33KB vs 30; remaining levers move to the phase-restructure milestone). refs: milestone call-floor author: Tin Dang <tindang.ht97@gmail.com>
pilotspacex-byte
added a commit
that referenced
this pull request
Jul 14, 2026
…als follow-on draft (#150) Human decisions 2026-07-14: run the paid WM1 re-measure, then "Close + draft follow-on milestone". - WM1 re-measure (3 reps, pinned sonnet meter, engine = merged main 8360b06): fidelity 0.98 x3 / 0 regressions / oracle 1.0 -> criterion MET; calls 20.7 mean vs <=12 -> UNMET, HUMAN-ACCEPTED-PARTIAL at close; cost $3.17 mean = cheapest honest ADD round (-10% vs ceremony). Full record + waste anatomy: benchmark/results/2026-07-sixphase-remeasure.md (runs archived benchmark/runs/sixphase-r{1,2,3}). - six-phase-loop -> done (RETRO.md written; 21 open deltas left for the human fold review). - NEW milestone draft call-residuals (--await-confirm, tasks gated): the four message-layer levers the anatomy named — init-idempotent-nudge · scope-first-draft · status-orientation-diet · help-habit-kill — targeting the ~11-12 call landing with zero enforcement-path changes. refs: six-phase-loop close, PRs #146/#149/#148 merged author: Tin Dang <tindang.ht97@gmail.com> Co-authored-by: Tin Dang <tindang.ht97@gmail.com>
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.
Stacked on #146 (feat/ceremony-to-effort). Five levers targeting the WM1 re-measure residuals (mean 18.7 calls vs the ≤12 bar), all fast-lane, all gate PASS, fence 3508/3508.
Tasks
a2df502) — thealready initialisedrefusal namesadd.py status; kills the observed +2 double-init calls/rep.a2df502) —new-milestoneprints alane:advisory naming the oneshot lane (rep r1 lost 9-10 calls to milestone bait). v2 prefix after the persona-nudge marker fence.a2df502) — the freeze scope echo also notes §3 Touches paths OUTSIDE the declared scope (the too-narrow class behind the re-cross repairs).d8e1718) — OPT-INfreeze --cross(stamp → land in tests) + completinggateaccepted at build (auto-cross → record); oneshot lane 8-9 → 6 calls; defaults byte-identical; recipe advertises the compressed lane. Self-proved: tasks 4 and 5 shipped through their own compound ticks.2d10b2a) — SKILL.md 12819 → 9498B (-26%); the Beyond-the-bundle routing prose moves to on-demandbeyond.md; every structural pin held; core pool rebaselined +211B net per the documented method.State
26f78f04(@compound-ticks); no engine change in 5/5.author: Tin Dang tindang.ht97@gmail.com