Skip to content

fo-contract: promote «fn»s, add lifecycle arrows, consolidate deferred-module registry#454

Merged
clkao merged 2 commits into
mainfrom
spacedock-ensign/fn-binding-refinements
Jul 1, 2026
Merged

fo-contract: promote «fn»s, add lifecycle arrows, consolidate deferred-module registry#454
clkao merged 2 commits into
mainfrom
spacedock-ensign/fn-binding-refinements

Conversation

@clkao

@clkao clkao commented Jul 1, 2026

Copy link
Copy Markdown
Collaborator

Six «fn»-binding legibility refinements from the 0230 audit: promote the heaviest prose comparators to structured «fn»s, add the missing lifecycle arrows, and consolidate the deferred-module pointers into one registry.

What changed

  • Promote reuse-condition-4 → «reuse.model-match», the AC cross-check → «gate.ac-cross-check», and the rebase-conflict halt → «halt.rebase-conflict»(paths) — each with guard/effect/block/done-when and its verbatim catastrophe pin moved onto the body.
  • Add kind-only → runtime-binding arrows to «worker.spawn»/«worker.shutdown»; loosen the arrow guard to permit that arrow while rejecting a host named in any form (token OR prose).
  • Disambiguate «dispatch.next-action»'s → prose (deterministic-binary-pending, not judgment) and sync runtime-support.md.
  • Consolidate the Dispatch + Merge pointers into one four-entry ## Deferred Modules (registry).

Evidence

  • AC-6 live re-run: the restructured «gate.ac-cross-check» reproduces the REJECT on the regressed-end-value fixture.
  • Both moved pins RED-then-GREEN; the registry proves four load-points + four greet-guards survive; boot core −4402 B vs v0.22.0.
  • Detached adversarial audit: CLEAN — a prose-form host-binding guard hole was found and closed before merge.

Review guidance

AC-4's fo-dispatch-core.md +429 B is captain-accepted: a faithful «fn» is larger than the flat prose it replaces, and the file is a deferred reference off the greet path (the boot core is net-negative).


z4

clkao and others added 2 commits June 30, 2026 15:43
…/halt.rebase-conflict «fn»s; spawn/shutdown arrows; four-entry deferred registry

- #1 reuse-condition-4 -> «reuse.model-match» «fn» (fo-dispatch-core), diagnostic pin moved onto its body
- #2 «dispatch.next-action» → prose disambiguated deterministic-mechanism-binary-pending
- #3 kind-only → runtime-binding arrow on «worker.spawn»/«worker.shutdown»; contractlint guard loosened + over-loosening control
- #4 AC cross-check -> «gate.ac-cross-check» «fn» folding bm end-value re-anchor (shared-core)
- #5 rebase halt -> «halt.rebase-conflict»(paths) «fn» defined once, FO sites + claude-fo-dispatch reference by name
- #6 Dispatch/Merge/Status-Viewer/Write-Scope pointers -> one Deferred Modules registry (4 load-points + 4 greet-guards)
- AC-5 runtime-support.md → prose trichotomy + dispatch.build 2-into-1 sync
- AC-7/AC-8 structural guards added (contractlint); AC-1/AC-7 moved-pin mutation RED-then-GREEN

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…me-binding arrow

Audit-driven (feedback cycle 1): the loosened workerLifecycleArrowViolations only
rejected the **Host:** bold-token smuggle, admitting a prose host binding like
'- → **runtime-binding**: on Claude, call Agent() directly' green through the suite.
Now a host word (Claude/Codex/Pi, whole-word case-insensitive) named on the
runtime-binding arrow line in ANY form reds. Added prose-host RED cases (Claude/Codex/Pi)
to the discriminator; legit kind-only arrow still passes. Guard-only — shipped contract
prose unchanged. In-situ RED-then-GREEN proven against the real «worker.spawn» block.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@clkao
clkao merged commit 4de0899 into main Jul 1, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant