Skip to content

adr(sync-drain): canonicalize AceHack <-> LFG option-c 7-step round-trip plan (task #302)#31

Open
AceHack wants to merge 1 commit intomainfrom
adr/sync-drain-plan-acehack-lfg-roundtrip-option-c
Open

adr(sync-drain): canonicalize AceHack <-> LFG option-c 7-step round-trip plan (task #302)#31
AceHack wants to merge 1 commit intomainfrom
adr/sync-drain-plan-acehack-lfg-roundtrip-option-c

Conversation

@AceHack
Copy link
Copy Markdown
Owner

@AceHack AceHack commented Apr 27, 2026

Summary

ADR canonicalizing the AceHack ↔ LFG fork-divergence drain plan.

  • Aaron 2026-04-26 asked "do you have the 7 step plan?" and Otto had to reconstruct from git history because the plan lived as commits + tick-history rows, not a single doc.
  • This ADR fixes that documentation gap: future drain cycles can adopt the template directly without re-reconstruction.

Decision

Option-c (cherry-pick-with-rewrites) chosen over alternatives:

Option Approach Rejection
a — Copy whole thing `git push -f` Loses other side's work
b — Just merge Single big merge Re-introduces divergence; "merge" ≠ "drain"
c — Cherry-pick-with-rewrites Per-commit/batch + rewrite for context CHOSEN
d — Reset to canonical `git reset --hard` Same as (a)

The 7-step plan (executed 2026-04-26)

  1. batch-1: foundation files — 17 missing files + audit doc + Otto-347 (PR sync(acehack→lfg) batch-1: 17 missing files + audit doc + Otto-347 Lucent-Financial-Group/Zeta#592, commit `1c1bd95`)
  2. batch-2: BACKLOG row migration — 23 commits → per-row files (PR sync(acehack→lfg) batch-2: 23 BACKLOG-row-only commits rewritten into per-row-files (option-c) Lucent-Financial-Group/Zeta#633, commits `a3b7e24`/`fecd8d0`)
  3. batch-3: terminology canonicalization — UPSTREAM-RHYTHM 3-surfaces section (PR sync(acehack→lfg) batch-3: UPSTREAM-RHYTHM three-surfaces terminology (option-c) Lucent-Financial-Group/Zeta#634, commits `ff4ee39`/`a1d781c`)
  4. batch-4: bug fixes + tooling hygiene — AppContext.BaseDirectory + curl|bash fix (PR sync(acehack→lfg) batch-4: AppContext.BaseDirectory + curl|bash self-contradiction fix (option-c) Lucent-Financial-Group/Zeta#635, commit `05d274f`)
  5. closure: tick-history + substrate transition — option-c COMPLETE row (commit `e4b1fa2`)
  6. reverse leg: LFG → AceHack full reconciliation — 7-parallel-subagent merge (PR sync: AceHack ∪ LFG full reconciliation via per-file content-preserving merge (task #302) #26 on AceHack, currently BLOCKED on review)
  7. steady state: UPSTREAM-RHYTHM batched cadence — every ~10 PRs going forward

Composes with

Convergence test

If next sync drain cycle modifies ≤ 1 step, template stable. If 3+ modifications, overfit and needs revision.

🤖 Generated with Claude Code

…rip plan (task Lucent-Financial-Group#302)

Why:
- Aaron 2026-04-26 asked "do you have the 7 step plan?" and Otto had
  to reconstruct from git history because the plan lived as commits
  + tick-history rows, not a single doc.
- The plan ITSELF is reusable — every sync drain cycle going forward
  follows the same shape — but without a canonical doc each future
  agent has to re-reconstruct.
- Aaron offered "if you want it as a permanent ADR / canonical-plan
  doc, that's a small follow-up I can ship". Picking it up.
- Per Aaron's "we got tons to do" framing: this is real shippable
  work that doesn't queue noise.

What:
- New file docs/DECISIONS/2026-04-26-sync-drain-plan-acehack-lfg-roundtrip-option-c.md
  (~150 lines)
- Archive-header §33 compliance (Scope / Attribution / Operational
  status / Non-fusion disclaimer)
- Decision: option-c (cherry-pick-with-rewrites) chosen over options
  a/b/d with rejection rationale per option
- 7-step round-trip plan documented with commit refs, PRs, and
  tick-history anchors:
  1. batch-1: foundation files (PR Lucent-Financial-Group#592, commit 1c1bd95)
  2. batch-2: BACKLOG row migration (PR Lucent-Financial-Group#633, commits a3b7e24/fecd8d0)
  3. batch-3: terminology canonicalization (PR Lucent-Financial-Group#634, commits ff4ee39/a1d781c)
  4. batch-4: bug fixes + tooling hygiene (PR Lucent-Financial-Group#635, commit 05d274f)
  5. closure: tick-history + substrate transition (commit e4b1fa2)
  6. reverse leg: LFG -> AceHack via 7-parallel-subagent merge (PR #26)
  7. steady state: UPSTREAM-RHYTHM batched cadence (every ~10 PRs)
- Consequences (positive + negative + mitigations) documented
- Convergence test: if next sync drain cycle modifies <= 1 step, the
  template is stable; if 3+ modifications, overfit and needs revision
- Composes with 8 sibling memories + 2 prior ADRs + tasks Lucent-Financial-Group#284 and Lucent-Financial-Group#302

Closes the documentation gap surfaced when Aaron asked the 7-step-plan
question. Future sync drain cycles can adopt this template directly.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings April 27, 2026 00:43
Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 12e3d245e3

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".


Forward-sync 17 missing files + audit doc + Otto-347 discipline. Establishes the cherry-pick-with-rewrites pattern; lands the audit infrastructure that subsequent batches use to verify content preservation.

- **Commit:** `1c1bd95` — sync(acehack→lfg) batch-1: 17 missing files + audit doc + Otto-347
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Qualify cited commits with repository URLs

The ADR records the sync plan as canonical, but the commit evidence is given as bare short SHAs (for example 1c1bd95) without repository context, and these SHAs do not resolve in this repo history, so a reader cannot audit or replay the stated steps. Because this document is meant to be the reconstruction source for future drain cycles, unresolved provenance materially hurts reproducibility; please use fully-qualified links (owner/repo + commit) or explicitly annotate which fork each SHA belongs to.

Useful? React with 👍 / 👎.

Comment on lines +121 to +124
- `feedback_fork_pr_cost_model_prs_land_on_acehack_sync_to_lfg_in_bulk.md` — the cost-model rationale for AceHack-first
- `feedback_parallel_subagent_dispatch_for_content_preserving_merge_pattern_2026_04_26.md` — the technique used in step 6
- `feedback_git_merge_file_union_is_not_set_union_can_lose_content_2026_04_26.md` — the failure mode the parallel-subagent pattern replaced
- `feedback_subagent_merge_verification_neq_publication_fitness_orthogonal_gates_2026_04_26.md` — the missing gate this drain surfaced
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Point memory citations to existing repository paths

This section cites several feedback_*.md artifacts as composition dependencies, but those filenames are not present in the repository tree, so the rationale chain in the ADR is not actually traceable by future reviewers. Since the doc’s purpose is to prevent re-reconstruction, missing/incorrect evidence paths undermine maintainability; reference the actual memory/... files (or add the missing artifacts) so each cited dependency is resolvable.

Useful? React with 👍 / 👎.

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 ADR to canonicalize/document the AceHack ↔ LFG fork-divergence “option-c” sync-drain approach (including the 7-step round-trip plan executed on 2026-04-26) so future drain cycles don’t require reconstructing the process from git history.

Changes:

  • Introduces a new decision record describing why “option-c (cherry-pick-with-rewrites)” was chosen over other sync strategies.
  • Documents the executed 7-step forward/reverse/steady-state round-trip plan, including batch breakdown and links to related artifacts.

Comment on lines +3 to +8
Scope: ADR canonicalizing the AceHack ↔ LFG fork-divergence drain plan executed 2026-04-26, codifying the option-c choice (cherry-pick-with-rewrites over alternatives) and the 7-step round-trip structure for future drain cycles.

Attribution: Aaron (human maintainer) chose option-c via *"both all, figure out how to combine"* + *"don't lose ideas and backlog"* directional picks 2026-04-26. Otto (Claude opus-4-7) executed the drain across 7 steps using parallel-subagent dispatch for the LFG → AceHack reverse leg. The discipline composes with Otto-329 (Phase 1 LFG drain) + Otto-225 (cherry-pick rebase technique).

Operational status: research-grade ADR (decision recorded; future drain cycles can adopt or amend the plan)

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.

This ADR header doesn’t follow the established docs/DECISIONS/ convention of including structured metadata like **Date:**, **Status:**, and an owner/deciders line (e.g. docs/DECISIONS/2026-04-20-tools-scripting-language.md:3-16, docs/DECISIONS/2026-04-22-backlog-per-row-file-restructure.md:3-7). Consider converting the opening “Scope/Attribution/Operational status” block into those standard fields so tooling/readers can scan ADRs consistently.

Suggested change
Scope: ADR canonicalizing the AceHack ↔ LFG fork-divergence drain plan executed 2026-04-26, codifying the option-c choice (cherry-pick-with-rewrites over alternatives) and the 7-step round-trip structure for future drain cycles.
Attribution: Aaron (human maintainer) chose option-c via *"both all, figure out how to combine"* + *"don't lose ideas and backlog"* directional picks 2026-04-26. Otto (Claude opus-4-7) executed the drain across 7 steps using parallel-subagent dispatch for the LFG → AceHack reverse leg. The discipline composes with Otto-329 (Phase 1 LFG drain) + Otto-225 (cherry-pick rebase technique).
Operational status: research-grade ADR (decision recorded; future drain cycles can adopt or amend the plan)
**Date:** 2026-04-26
**Status:** Accepted; research-grade ADR (decision recorded; future drain cycles can adopt or amend the plan)
**Deciders:** Aaron (human maintainer)
**Implemented by:** Otto (Claude opus-4-7)
**Scope:** ADR canonicalizing the AceHack ↔ LFG fork-divergence drain plan executed 2026-04-26, codifying the option-c choice (cherry-pick-with-rewrites over alternatives) and the 7-step round-trip structure for future drain cycles.
**Notes:** Aaron chose option-c via *"both all, figure out how to combine"* and *"don't lose ideas and backlog"* directional picks on 2026-04-26. Otto executed the drain across 7 steps using parallel-subagent dispatch for the LFG → AceHack reverse leg. The discipline composes with Otto-329 (Phase 1 LFG drain) and Otto-225 (cherry-pick rebase technique).

Copilot uses AI. Check for mistakes.
Comment on lines +11 to +12
(Per GOVERNANCE.md §33 archive-header requirement on cross-substrate ADRs.)

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.

GOVERNANCE.md §33 and the described “archive-header requirement” don’t appear to exist in GOVERNANCE.md (no §33, and no archive-header references). This looks like a stale/incorrect citation; please either point to the correct location (file + section/lines) or drop the parenthetical to avoid sending readers on a dead-end.

Suggested change
(Per GOVERNANCE.md §33 archive-header requirement on cross-substrate ADRs.)

Copilot uses AI. Check for mistakes.
Comment on lines +121 to +125
- `feedback_fork_pr_cost_model_prs_land_on_acehack_sync_to_lfg_in_bulk.md` — the cost-model rationale for AceHack-first
- `feedback_parallel_subagent_dispatch_for_content_preserving_merge_pattern_2026_04_26.md` — the technique used in step 6
- `feedback_git_merge_file_union_is_not_set_union_can_lose_content_2026_04_26.md` — the failure mode the parallel-subagent pattern replaced
- `feedback_subagent_merge_verification_neq_publication_fitness_orthogonal_gates_2026_04_26.md` — the missing gate this drain surfaced
- `feedback_lfg_is_central_training_signal_aggregator_for_all_forks_divergent_signals_push_to_lfg_otto_252_2026_04_24.md` — the why-LFG-anchored-corpus rationale
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.

The Composes with section references several feedback_*.md documents, but those files don’t exist in this repository (e.g. feedback_fork_pr_cost_model_prs_land_on_acehack_sync_to_lfg_in_bulk.md, feedback_parallel_subagent_dispatch_for_content_preserving_merge_pattern_2026_04_26.md, feedback_git_merge_file_union_is_not_set_union_can_lose_content_2026_04_26.md, feedback_subagent_merge_verification_neq_publication_fitness_orthogonal_gates_2026_04_26.md, feedback_lfg_is_central_training_signal_aggregator_for_all_forks_divergent_signals_push_to_lfg_otto_252_2026_04_24.md). Either add the referenced docs (if they’re intended to land with this ADR) or update the references to the correct existing paths (many similar references elsewhere use memory/<name>.md).

Copilot uses AI. Check for mistakes.

### Step 3 — batch-3: terminology canonicalization

Forward-sync UPSTREAM-RHYTHM "three surfaces, two vocabularies" terminology section per `feedback_dont_invent_when_existing_vocabulary_exists.md`. The rewrite captures Aaron's 5-step ladder (scope framing → terminology question → git-native correction → general principle → 3-surface count correction).
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.

This references feedback_dont_invent_when_existing_vocabulary_exists.md, but that file isn’t present in the repo. Please update to the correct existing document/path (or add the missing feedback doc) so the rationale remains traceable.

Suggested change
Forward-sync UPSTREAM-RHYTHM "three surfaces, two vocabularies" terminology section per `feedback_dont_invent_when_existing_vocabulary_exists.md`. The rewrite captures Aaron's 5-step ladder (scope framing → terminology question → git-native correction → general principle → 3-surface count correction).
Forward-sync UPSTREAM-RHYTHM "three surfaces, two vocabularies" terminology section as recorded in batch-3 commits `ff4ee39` and `a1d781c` (PR #634). The rewrite captures Aaron's 5-step ladder (scope framing → terminology question → git-native correction → general principle → 3-surface count correction).

Copilot uses AI. Check for mistakes.
@AceHack AceHack enabled auto-merge (squash) April 27, 2026 07:29
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