Skip to content

feat(protocol): declared-phase faculty (declare_phase tool) — Auto-mode foundation#14

Merged
Zorlin merged 1 commit into
mainfrom
riff/declared-phase-faculty
Jul 5, 2026
Merged

feat(protocol): declared-phase faculty (declare_phase tool) — Auto-mode foundation#14
Zorlin merged 1 commit into
mainfrom
riff/declared-phase-faculty

Conversation

@Zorlin

@Zorlin Zorlin commented Jul 5, 2026

Copy link
Copy Markdown
Collaborator

Foundation for Auto mode's bijective climber. The model declares its cognitive phase each turn (slow = context loading, fast = execution) via a new declare_phase tool, emitting EventMsg::PhaseDeclared.

Why: the climber guard must distinguish a legitimate slow-phase turn (produces no plan step on purpose — the chess-master loading phase) from a ralph loop. A phase transition is a structural climb signal, not an inference. SDA.

What's in:

  • protocol: Phase enum (Slow/Fast), DeclarePhaseArgs, EventMsg::PhaseDeclared
  • core: declare_phase tool spec + PhaseHandler (parses args, emits event), registered alongside update_plan
  • rollout / rollout-trace / mcp-server: cover PhaseDeclared in EventMsg matches

Inert by design. The faculty is registered but does not change agent behavior until Auto mode + the climber guard consume it (next slice). declare_phase emits into the event stream; the guard reads from there. The app-server _ catch-all covers it (not forwarded to TUI yet — that comes with the guard).

Proven: spec well-formed + args round-trip tests green; codex-core builds clean.

🤖 Generated with Claude Code

Foundation for Auto mode's bijective climber. The model declares its
cognitive phase each turn (slow = context loading, fast = execution) via a
new declare_phase tool, emitting EventMsg::PhaseDeclared.

Why: the climber guard must distinguish a legitimate slow-phase turn
(produces no plan step on purpose) from a ralph loop. A phase transition is a
structural climb signal, not an inference — Structure Determines Action.

- protocol: Phase enum (Slow/Fast), DeclarePhaseArgs, EventMsg::PhaseDeclared
- core: declare_phase tool spec + PhaseHandler (parses args, emits event),
  registered alongside update_plan
- rollout/rollout-trace/mcp-server: cover PhaseDeclared in EventMsg matches

The faculty is registered but inert until Auto mode + the climber guard
consume it (next slice). declare_phase emits PhaseDeclared into the event
stream; the guard reads it from there. Tests: spec well-formed + args
round-trip. codex-core builds clean.

Co-Authored-By: Claude <noreply@anthropic.com>
@Zorlin Zorlin closed this Jul 5, 2026
@Zorlin Zorlin merged commit 6f21c77 into main Jul 5, 2026
6 of 31 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