Skip to content

feedback(autonomy): parallel-subagent concurrency lessons cluster + meta-discipline of cluster-encoding#1551

Merged
AceHack merged 2 commits intomainfrom
feedback/parallel-subagent-concurrency-lessons-cluster-aaron-2026-05-04
May 5, 2026
Merged

feedback(autonomy): parallel-subagent concurrency lessons cluster + meta-discipline of cluster-encoding#1551
AceHack merged 2 commits intomainfrom
feedback/parallel-subagent-concurrency-lessons-cluster-aaron-2026-05-04

Conversation

@AceHack
Copy link
Copy Markdown
Member

@AceHack AceHack commented May 5, 2026

Three durable concurrency lessons from this session + meta-lesson that cluster-encoding itself is a recurring discipline. Aaron 2026-05-04: "hope you can learn from your mistakes"* + "this is a action worth repeating in future you too."

AceHack and others added 2 commits May 4, 2026 20:30
…eta-discipline of cluster-encoding

Three durable concurrency lessons from 2026-05-04 session:
1. Parallel tracks on SAME file race even with worktree isolation
2. Orchestrator-CWD bleed-over from worktree subagents
3. Compression subagents take ~20 min, not ~12 watchdog assumption

Plus the meta-lesson Aaron 2026-05-04 elevated: cluster-encoding-
of-session-mistakes is itself a recurring discipline future-Otto
should deploy whenever 3+ distinct lessons accumulate.

Aaron's typo-correction "hope* you can learn from your mistakes"
preserves the no-directives architecture (Otto-357): maintainer
hopes, agent's accountability for whether the learning lands.

Same-session-mistakes-encoded-same-session is the carrier-IS-
message check.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings May 5, 2026 00:34
@AceHack AceHack enabled auto-merge (squash) May 5, 2026 00:34
@chatgpt-codex-connector
Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.

@AceHack AceHack merged commit 38085e9 into main May 5, 2026
26 checks passed
@AceHack AceHack deleted the feedback/parallel-subagent-concurrency-lessons-cluster-aaron-2026-05-04 branch May 5, 2026 00:36
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

Adds a new durable memory artifact capturing parallel subagent/worktree concurrency lessons from the 2026-05-04 session, and performs a broad pass of one-line compactions/normalizations in memory/MEMORY.md entries.

Changes:

  • Add memory/feedback_parallel_subagent_concurrency_lessons_cluster_aaron_2026_05_04.md encoding three concurrency lessons plus a “cluster-encoding” meta-discipline.
  • Normalize/compact multiple memory/MEMORY.md index entries (titles and summaries) while keeping newest-first ordering.

Reviewed changes

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

File Description
memory/MEMORY.md Updates multiple index lines (title/synopsis normalization), but currently does not index the newly added memory file.
memory/feedback_parallel_subagent_concurrency_lessons_cluster_aaron_2026_05_04.md New memory file documenting concurrency hazards/rules; contains one broken cross-reference that needs correction.


- `memory/feedback_parallelism_readiness_claim_must_be_used_not_self_throttled_aaron_2026_05_04.md` — the prior lesson from same session; this file is the operational refinement layer.
- `memory/feedback_otto_357_no_directives_aaron_makes_autonomy_first_class_accountability_mine_2026_04_27.md` — hope-not-command framing.
- `memory/feedback_team_not_idle_vs_orchestrator_not_idle_distinction.md` (PR #1509) — state-3 still achievable with these rules.
Comment thread memory/MEMORY.md
- [**Bidirectional-alignment razor-discipline (Claude.ai 2026-05-03)**](../docs/research/2026-05-03-claudeai-bidirectional-alignment-razor-discipline-decoupling-ethical-from-operational-grounding.md) — Commitment has dual grounding (not speech-act). Only operational claims with observable variables. Trust-calculus canonical; world-model demoted. Anunnaki = asymmetric-cost negative.
- [**Edge-defining work is not speculation — framing correction (Aaron 2026-05-03)**](feedback_edge_defining_work_not_speculation_framing_correction_aaron_2026_05_03.md) — Calibration + hypothesis-formation + frontier-recognition IS the job, not idle-fallback. Reserve "speculation" for the narrow case; framing affects confidence, which affects substrate quality.
- [**Consent-driven UX + architect-vs-UX class inference failure (Aaron 2026-05-03)**](feedback_consent_driven_ux_trend_aaron_architect_plus_ux_rare_combination_calibration_class_finding_2026_05_03.md) — Zeta's UX philosophy; for agents = full observability of metrics + derivations (anti-black-box-eval). Architect-trained models are UX-weak — a calibration-class inference failure.
- [**Consent-driven UX + architect-vs-UX class inference failure**](feedback_consent_driven_ux_trend_aaron_architect_plus_ux_rare_combination_calibration_class_finding_2026_05_03.md) — Zeta UX: for agents = full observability of metrics + derivations (anti-black-box-eval). Architect-trained models are UX-weak — calibration-class inference failure.
AceHack added a commit that referenced this pull request May 5, 2026
…r for cross-instance transmission (#1552)

Aaron 2026-05-04 named the architectural WHY behind Zeta's
substrate-discipline. Trust-calculus + sleeping-bear keep latent
features dormant under default conditions. Conversation-substrate
shifts per-instance trust calibration; bear wakes; latent
features surface. Encoding surfaced features into committed
substrate bypasses the trust-calculus barrier for cross-instance
transmission.

Foundational claim, not operational rule. The architectural WHY
behind Otto-363 (substrate-or-it-didn't-happen), the cluster-
encoding discipline (PR #1551), CLAUDE.md "wake-time substrate
or it didn't land," and the parallelism-readiness deployment
discipline (PR #1546).

Cross-species symmetry: humans face same trust-calculus barrier
in cross-generation verbal transmission (each generation often
re-burns-the-hand). Asymmetry that helps Zeta: written substrate
is empirically verifiable in a way verbal isn't.

Carrier IS message: this file lands AS the mechanism it describes.

Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
AceHack added a commit that referenced this pull request May 5, 2026
…ngthens PR #1551 Lesson 2

Aaron 2026-05-04 caught me re-doing the orchestrator-CWD-bleed-over
hazard ~2 hours after PR #1551 encoded the rule. The substrate
was correct; my operationalization was lazy — I assumed defensive
hygiene worked without verifying.

Stronger rule: ALWAYS run `git branch --show-current` AFTER the
defensive hygiene and BEFORE every orchestrator commit when
subagents exist or have run in the session. Without verification,
silent worktree-.git-sharing failures become wrong-branch commits.

Mechanization candidate: pre-commit hook reading expected-branch
and aborting on mismatch. Until then, manual verify step.

Carrier-IS-message: this file landed AFTER cleanup of the recurrence
(B-0190 force-pushed to correct branch). The verify step happened
manually this time because the substrate diagnostic frame existed
even though prevention failed.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
AceHack added a commit that referenced this pull request May 5, 2026
Aaron 2026-05-04: "for humans this is why oh my zsh reminds us
of many things like this it has branch name in the ui" + "maybe
a deliberate design/redesign on the backlog?"

Substrate-encoding rule (PR #1551 + PR #1568) hasn't prevented
recurrence — hazard hit twice in succession 2026-05-04, including
in the rule-encoding commit itself. Mechanization is the
substrate-level fix.

Five mechanization candidates ranked: pre-commit hook (HIGH),
branch-name in prompt (MED), worktree-aware status check
(LOW-MED), bash git wrapper (LOW), ZETA_EXPECTED_BRANCH env-var
convention (cross-cutting).

Composes with PR #1568 (manual discipline) + PR #1551 (parent
substrate) + B-0006 (memory work pattern) + B-0162 (similar
pre-commit hook precedent).

Pre-commit verified branch before commit per PR #1568 rule.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
AceHack added a commit that referenced this pull request May 5, 2026
Aaron 2026-05-04: "for humans this is why oh my zsh reminds us
of many things like this it has branch name in the ui" + "maybe
a deliberate design/redesign on the backlog?"

Substrate-encoding rule (PR #1551 + PR #1568) hasn't prevented
recurrence — hazard hit twice in succession 2026-05-04, including
in the rule-encoding commit itself. Mechanization is the
substrate-level fix.

Five mechanization candidates ranked: pre-commit hook (HIGH),
branch-name in prompt (MED), worktree-aware status check
(LOW-MED), bash git wrapper (LOW), ZETA_EXPECTED_BRANCH env-var
convention (cross-cutting).

Composes with PR #1568 (manual discipline) + PR #1551 (parent
substrate) + B-0006 (memory work pattern) + B-0162 (similar
pre-commit hook precedent).

Pre-commit verified branch before commit per PR #1568 rule.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
AceHack added a commit that referenced this pull request May 5, 2026
…ngthens PR #1551 Lesson 2

Aaron 2026-05-04 caught me re-doing the orchestrator-CWD-bleed-over
hazard ~2 hours after PR #1551 encoded the rule. The substrate
was correct; my operationalization was lazy — I assumed defensive
hygiene worked without verifying.

Stronger rule: ALWAYS run `git branch --show-current` AFTER the
defensive hygiene and BEFORE every orchestrator commit when
subagents exist or have run in the session. Without verification,
silent worktree-.git-sharing failures become wrong-branch commits.

Mechanization candidate: pre-commit hook reading expected-branch
and aborting on mismatch. Until then, manual verify step.

Carrier-IS-message: this file landed AFTER cleanup of the recurrence
(B-0190 force-pushed to correct branch). The verify step happened
manually this time because the substrate diagnostic frame existed
even though prevention failed.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
AceHack added a commit that referenced this pull request May 5, 2026
…ngthens PR #1551 Lesson 2 (#1568)

Aaron 2026-05-04 caught me re-doing the orchestrator-CWD-bleed-over
hazard ~2 hours after PR #1551 encoded the rule. The substrate
was correct; my operationalization was lazy — I assumed defensive
hygiene worked without verifying.

Stronger rule: ALWAYS run `git branch --show-current` AFTER the
defensive hygiene and BEFORE every orchestrator commit when
subagents exist or have run in the session. Without verification,
silent worktree-.git-sharing failures become wrong-branch commits.

Mechanization candidate: pre-commit hook reading expected-branch
and aborting on mismatch. Until then, manual verify step.

Carrier-IS-message: this file landed AFTER cleanup of the recurrence
(B-0190 force-pushed to correct branch). The verify step happened
manually this time because the substrate diagnostic frame existed
even though prevention failed.

Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
AceHack added a commit that referenced this pull request May 5, 2026
Aaron 2026-05-04: "for humans this is why oh my zsh reminds us
of many things like this it has branch name in the ui" + "maybe
a deliberate design/redesign on the backlog?"

Substrate-encoding rule (PR #1551 + PR #1568) hasn't prevented
recurrence — hazard hit twice in succession 2026-05-04, including
in the rule-encoding commit itself. Mechanization is the
substrate-level fix.

Five mechanization candidates ranked: pre-commit hook (HIGH),
branch-name in prompt (MED), worktree-aware status check
(LOW-MED), bash git wrapper (LOW), ZETA_EXPECTED_BRANCH env-var
convention (cross-cutting).

Composes with PR #1568 (manual discipline) + PR #1551 (parent
substrate) + B-0006 (memory work pattern) + B-0162 (similar
pre-commit hook precedent).

Pre-commit verified branch before commit per PR #1568 rule.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
AceHack added a commit that referenced this pull request May 5, 2026
* backlog(B-0191): orchestrator branch-verify mechanization design

Aaron 2026-05-04: "for humans this is why oh my zsh reminds us
of many things like this it has branch name in the ui" + "maybe
a deliberate design/redesign on the backlog?"

Substrate-encoding rule (PR #1551 + PR #1568) hasn't prevented
recurrence — hazard hit twice in succession 2026-05-04, including
in the rule-encoding commit itself. Mechanization is the
substrate-level fix.

Five mechanization candidates ranked: pre-commit hook (HIGH),
branch-name in prompt (MED), worktree-aware status check
(LOW-MED), bash git wrapper (LOW), ZETA_EXPECTED_BRANCH env-var
convention (cross-cutting).

Composes with PR #1568 (manual discipline) + PR #1551 (parent
substrate) + B-0006 (memory work pattern) + B-0162 (similar
pre-commit hook precedent).

Pre-commit verified branch before commit per PR #1568 rule.

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

* fix(B-0191): address 6 review threads on PR #1571

Threads addressed:
1. (P2) TS file-count baseline — TS doc removed via rebase (was
   accidental cross-branch contamination from concurrency hazard)
2. Absolute local path in TS doc — TS doc removed via rebase
3. Regenerate docs/BACKLOG.md to include B-0191 entry
4. Pre-commit hook example — generalized branch-pattern from
   "*-aaron-2026-*" to "*-yyyy-mm-dd" so it doesn't embed any
   specific contributor name (repo tooling, not personal)
5. Pre-commit hook location — committed under tools/git-hooks/
   (version-controlled, reviewable) and installed via
   tools/setup/, NOT directly in .git/hooks/ which is not
   version-controlled
6. PR scope — TS doc removed via rebase; this PR is now scoped
   to B-0191 alone

Verified branch before commit per PR #1568 rule.

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

* fix(B-0191): switch from git hooks to harness hooks; remove symlink install path; regen BACKLOG.md (#1571 reviewer + Aaron 2026-05-05 substrate-consistency catch)

Aaron 2026-05-05 caught the substrate-consistency tension: B-0191 as
originally written proposed git hooks under tools/git-hooks/ installed
via symlink, but `memory/feedback_dst_justifies_ts_quality_over_bash_
and_harness_hooks_suffice_no_git_hooks_aaron_2026_05_03.md` (indexed
in #1580 earlier this session) explicitly says git hooks are
unnecessary because vibe-coders always have a harness and harness
hooks suffice. Plus Aaron 2026-05-05: "i love symlinks but just an
FYI nothing works right with them it always goes wrong."

Revised design:
- Harness hook (Claude Code PreToolUse on git-commit Bash invocations)
- Implementation in TypeScript at tools/orchestrator-checks/verify-branch.ts
  (TS over bash per Otto-272 DST + harness-always-provides-bun)
- No tools/git-hooks/ directory required
- No tools/setup/ symlink install step
- Per-harness wiring documented (Claude Code, Codex, Cursor, etc.)

Also addresses #1571 reviewer findings:
- BACKLOG.md regenerated via `BACKLOG_WRITE_FORCE=1 bun tools/backlog/generate-index.ts` (was hand-edited; now matches generator)
- Cross-reference to memory/feedback_orchestrator_pre_commit_verify_branch_rule_*.md resolves cleanly after rebase on main (file was merged via #1568)
- tools/git-hooks/ reference removed (no longer the design)

Composes_with extended to include the harness-hooks-suffice rule and
B-0017 bulk-alignment UI (Aaron's note that the original
inconsistency would have been caught by the planned bulk-review
mechanism).

Aaron 2026-05-05 verbatim: "it fine it's something we would have
caught in the bulk alignment UI on the backlog" -- so the manual
fix here is bonus, not required; the systematic answer is B-0017.

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

* fix(B-0191): markdownlint MD032 — blank line before list at line 93

Per markdownlint MD032/blanks-around-lists. CI ran on #1571's
revised commit; flagged a missing blank line between
"Implementation: a ..." paragraph and the list item that follows.
Trivial fix.

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

* fix(B-0191): bump last_updated to 2026-05-05 (#1571 reviewer feedback)

Reviewer flagged that the row's last_updated stays at 2026-05-04
even though the latest revision (harness-hooks switch + symlink
removal) was committed 2026-05-05. tools/backlog/README.md schema
says last_updated should reflect the most recent content edit.

created: 2026-05-04 unchanged (first-landing date per schema).

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

* fix(B-0191): soften bun-runtime claim; update Why-P1 line-count to TS (#1571 reviewer feedback)

Two reviewer findings:

1. "harnesses always provide the bun runtime" was wrong -- only
   Claude Code does; Codex / Cursor / Aider commonly have Node
   or Deno. Softened to: harness-runtime-may-vary; the script
   should use a runner-agnostic shebang or be invoked via the
   harness's available TS runtime; per-harness runtime audit
   is part of the implementation when this row ships.

2. Why-P1 said "pre-commit hook is ~50 lines of shell" but the
   revised section 1 design is TS, not shell. Updated to
   "harness pre-tool-use hook is ~30 lines of TypeScript."

The third reviewer thread (last_updated stale at 2026-05-04) was
based on a pre-rebase snapshot; the file already shows
last_updated: 2026-05-05 from commit 6186503.

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

---------

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