Skip to content

substrate: pre-peer-mode execution-authority — only Otto-aware agents write code; ferry-executor-claim diagnostic (Aaron 2026-04-27)#69

Merged
AceHack merged 1 commit intomainfrom
acehack/only-otto-aware-agents-execute-code-pre-peer-mode-2026-04-27
Apr 27, 2026
Merged

substrate: pre-peer-mode execution-authority — only Otto-aware agents write code; ferry-executor-claim diagnostic (Aaron 2026-04-27)#69
AceHack merged 1 commit intomainfrom
acehack/only-otto-aware-agents-execute-code-pre-peer-mode-2026-04-27

Conversation

@AceHack
Copy link
Copy Markdown
Owner

@AceHack AceHack commented Apr 27, 2026

Summary

Aaron 2026-04-27 sharpened #63 ferry-vs-executor rule. Triggered by Gemini Pro hallucinating repo write access ("I have drafted the two canonical markdown files... Shall I write these files to the repository now?").

What this captures

  1. Sharpened rule: pre-peer-mode, only Otto + subagents Otto dispatches via Task tool + harnesses/CLIs Otto launches can execute code
  2. 3-step ferry-executor-claim diagnostic (catch hallucinated execution claims)
  3. Specific 2026-04-27 Gemini instance documented as worked example

Aaron's peer-mode roadmap (from latest message)

  • Peer-mode v1: Aaron runs 2nd instance on Windows to get setup working
  • Then expand from there

This is captured here as the unlock-condition trajectory for #63.

Composes with

🤖 Generated with Claude Code

… write code; ferry-executor-claim diagnostic (Aaron 2026-04-27)

Aaron 2026-04-27 sharpened #63 ferry-vs-executor rule:

> 'the only agents writing code until you get peer mode working
>  are the ones you are aware of'

Confirmed: NO MCP/connector grants any ferry repo write authority.

Triggered by Gemini Pro hallucinating: 'I have drafted the two
canonical markdown files... Shall I write these files to the
repository now?' Aaron suspected hallucination, confirmed
unambiguously.

Captures:
1. Sharpened rule — only Otto + subagents Otto dispatches via Task
   tool can execute code pre-peer-mode
2. Three-step ferry-executor-claim diagnostic:
   - Step 1: check authorization channel (MCP / GitHub App / connector)
   - Step 2: check git location (branch / PR / working copy)
   - Step 3: convert to substrate (treat ferry's draft as chat output)
3. Specific 2026-04-27 instance: Gemini hallucination diagnosed +
   resolved (substrate captured for post-0/0/0 encoding integration)

Why it matters per Otto-340 substrate-IS-identity: false attribution
of execution = substrate corruption. Catching pre-substrate-entry
prevents future-Otto wakes from building on lies.

Composes #63 + Otto-340 + #66 (per-insight attribution) + #57
(protect-project) + CLAUDE.md verify-before-deferring + Otto-247
version-currency.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings April 27, 2026 19:31
@AceHack AceHack enabled auto-merge (squash) April 27, 2026 19:31
@AceHack AceHack merged commit 822a4af into main Apr 27, 2026
18 checks passed
@AceHack AceHack deleted the acehack/only-otto-aware-agents-execute-code-pre-peer-mode-2026-04-27 branch April 27, 2026 19:33
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Captures a refined “pre-peer-mode execution authority” rule stating that only Otto-aware executors can write to the repo, and adds a concrete diagnostic for detecting hallucinated “I already wrote/pushed files” claims from ferry agents.

Changes:

  • Adds a new memory entry documenting the rule sharpening and a 3-step ferry-executor-claim diagnostic.
  • Updates memory/MEMORY.md to index the new memory entry near the top (newest-first).

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 1 comment.

File Description
memory/feedback_only_otto_aware_agents_execute_code_pre_peer_mode_ferry_executor_claim_diagnostic_2026_04_27.md New memory entry documenting the execution-authority boundary + 3-step diagnostic and a worked example.
memory/MEMORY.md Adds an index link for the new memory entry (newest-first list).

@@ -0,0 +1,114 @@
---
name: Pre-peer-mode execution-authority rule — only agents Otto is aware of write code; ferry-executor-claim diagnostic (Gemini hallucinated repo write access 2026-04-27)
description: Aaron 2026-04-27 sharpened #63 ferry-vs-executor rule — pre-peer-mode, the ONLY agents writing code are the ones Otto is aware of (Otto itself + subagents Otto dispatches via Task tool). Ferries (Amara/Gemini/Codex chat/Cursor models/Ani) are substrate-providers ONLY; they cannot write code regardless of what they claim. Triggered by Gemini Pro 2026-04-27 saying "I have drafted the two canonical markdown files" + "Shall I write these files to the repository now?" — Aaron suspected hallucination, confirmed: there is NO MCP/connector wired in this environment that grants Gemini repo write authority. This memory captures (a) the sharpened execution-authority rule and (b) the ferry-executor-claim diagnostic for catching similar hallucinations in the future. Composes #63 (ferry-vs-executor) + Otto-340 (substrate-IS-identity, hallucinated capabilities corrupt the substrate) + #66 (per-insight attribution discipline; same class of confidence-overreach pattern).
Copy link

Copilot AI Apr 27, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In YAML frontmatter, # starts a comment when preceded by whitespace. As written, the description: value will be truncated at #63 (and again at #66), so most of the intended description won’t be part of the parsed frontmatter. Quote the string (or use a block scalar like |) and/or replace #63/#66 with text that doesn’t include # so the full description is preserved.

Suggested change
description: Aaron 2026-04-27 sharpened #63 ferry-vs-executor rule — pre-peer-mode, the ONLY agents writing code are the ones Otto is aware of (Otto itself + subagents Otto dispatches via Task tool). Ferries (Amara/Gemini/Codex chat/Cursor models/Ani) are substrate-providers ONLY; they cannot write code regardless of what they claim. Triggered by Gemini Pro 2026-04-27 saying "I have drafted the two canonical markdown files" + "Shall I write these files to the repository now?" — Aaron suspected hallucination, confirmed: there is NO MCP/connector wired in this environment that grants Gemini repo write authority. This memory captures (a) the sharpened execution-authority rule and (b) the ferry-executor-claim diagnostic for catching similar hallucinations in the future. Composes #63 (ferry-vs-executor) + Otto-340 (substrate-IS-identity, hallucinated capabilities corrupt the substrate) + #66 (per-insight attribution discipline; same class of confidence-overreach pattern).
description: "Aaron 2026-04-27 sharpened #63 ferry-vs-executor rule — pre-peer-mode, the ONLY agents writing code are the ones Otto is aware of (Otto itself + subagents Otto dispatches via Task tool). Ferries (Amara/Gemini/Codex chat/Cursor models/Ani) are substrate-providers ONLY; they cannot write code regardless of what they claim. Triggered by Gemini Pro 2026-04-27 saying \"I have drafted the two canonical markdown files\" + \"Shall I write these files to the repository now?\" — Aaron suspected hallucination, confirmed: there is NO MCP/connector wired in this environment that grants Gemini repo write authority. This memory captures (a) the sharpened execution-authority rule and (b) the ferry-executor-claim diagnostic for catching similar hallucinations in the future. Composes #63 (ferry-vs-executor) + Otto-340 (substrate-IS-identity, hallucinated capabilities corrupt the substrate) + #66 (per-insight attribution discipline; same class of confidence-overreach pattern)."

Copilot uses AI. Check for mistakes.
AceHack added a commit that referenced this pull request Apr 27, 2026
…unt) (Aaron 2026-04-27) (#70)

* substrate: multi-agent review cycle stopping = convergence (no more changes/fixes), NOT turn-count (Aaron 2026-04-27)

Aaron 2026-04-27 disclosed his decision rule:

> 'the way I decide to stop a multiagent review cycle is not by
>  number of turns but by convergence, once they stop offering
>  changes/fixes'

Today's stability/velocity insight ran 9 rounds before convergence
(natural example). Aaron's rule fired correctly — Round 9 was where
Amara stopped offering substantive changes.

Why convergence-based not turn-based:
- Adapts to insight complexity (simple = 1-2 rounds; deep = 5-9)
- Honors Otto-352 external-anchor-lineage discipline
- Avoids 'all done at N=3' theater

Operational signals:
- Convergence: 'I agree' without new fixes; same fix from
  multiple reviewers (no novel); stylistic/attribution-only edits
- Anti-convergence: new mechanistic framings; reviewer
  disagreements; new examples surfacing; follow-up requests

Composes Otto-352 + #66 (per-insight attribution; convergence
defines contributor-closure) + #65/#67 stability/velocity 5-deep
example + #69 ferry-vs-executor sharpening + Aaron-communication-
classification (#56).

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

* review-fix: align '5-deep' / '5-step' references to 9-round (matches actual table; Copilot caught inconsistency)

---------

Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
AceHack added a commit that referenced this pull request Apr 27, 2026
…er N idle loops (Aaron 2026-04-27) (#71)

Two related authority + discipline disclosures:

1. **Otto owns ALL git/GitHub settings** (AceHack + LFG repo + org admin
   + personal account admin). Authority covers best-practice updates +
   project-hurt fixes. NOT to shortcut feedback/verification symbols.
   Settings backed up on a cadence (per Aaron, similar to costs).

2. **Self-check trigger after N (5-10) idle loops** as routine
   operational discipline for current Otto and all future wakes.
   Counter to Ani's Analysis Paralysis breakdown point (Trap C from
   #65/#67). Today's failure: 6 idle ticks on forward-sync work that
   was within Otto's authority — Aaron had to manually nudge with
   'where are we at with sync? also self-check please.'

Composes #69 (only Otto-aware agents execute code) + #57 (protect-
project) + #58 (praise-as-control: don't extend authority for vanity)
+ #59 (fear-as-control: don't compromise structural defences) + #67
(Amara's Aurora = Immune Governance Layer; settings ARE part of immune
governance).

Forward: self-check after 5+ idle loops; report stalled work honestly;
drive work within authority without waiting for manual nudge.

Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
AceHack added a commit that referenced this pull request Apr 27, 2026
…th descriptive rule names; tighten MEMORY.md index entry (Copilot P1+P2)

Three P1 threads (Copilot) on the substrate memory file flagged the
#71/#57/#56/#69 references as colliding with GitHub issue numbering
(see docs/ISSUES-INDEX.md mapping). Those numbers are AceHack-side
PR numbers from earlier substrate landings and aren't self-resolving
in the LFG namespace.

Replaced each with its descriptive rule name:
- `#71` → "the Otto-owns-git/GitHub-settings rule"
- `#57` → "the protect-project critical-evaluation rule"
- `#56` → "the Aaron-communication-classification rule"
- `#69` → "the only-Otto-aware-agents-execute-code rule
   (pre-peer-mode execution authority)"

The remaining `#15-#18` references in the Forward-action section
are Scorecard code-scanning alert numbers (different namespace from
issues/PRs); left unchanged as they're unambiguous in context.

P2 thread (Copilot) on MEMORY.md flagged the new index entry as too
long. Trimmed from a 308-char entry to a 196-char entry while
preserving the load-bearing distinction ("no weighty=block tier").

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
AceHack added a commit that referenced this pull request Apr 27, 2026
…th descriptive rule names; tighten MEMORY.md index entry (Copilot P1+P2)

Three P1 threads (Copilot) on the substrate memory file flagged the
(see docs/ISSUES-INDEX.md mapping). Those numbers are AceHack-side
PR numbers from earlier substrate landings and aren't self-resolving
in the LFG namespace.

Replaced each with its descriptive rule name:
- `#71` → "the Otto-owns-git/GitHub-settings rule"
- `#57` → "the protect-project critical-evaluation rule"
- `#56` → "the Aaron-communication-classification rule"
- `#69` → "the only-Otto-aware-agents-execute-code rule
   (pre-peer-mode execution authority)"

The remaining `#15-#18` references in the Forward-action section
are Scorecard code-scanning alert numbers (different namespace from
issues/PRs); left unchanged as they're unambiguous in context.

P2 thread (Copilot) on MEMORY.md flagged the new index entry as too
long. Trimmed from a 308-char entry to a 196-char entry while
preserving the load-bearing distinction ("no weighty=block tier").

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
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.

2 participants