Conversation
…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>
There was a problem hiding this comment.
💡 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 |
There was a problem hiding this comment.
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 👍 / 👎.
| - `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 |
There was a problem hiding this comment.
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 👍 / 👎.
There was a problem hiding this comment.
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.
| 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) | ||
|
|
There was a problem hiding this comment.
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.
| 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). |
| (Per GOVERNANCE.md §33 archive-header requirement on cross-substrate ADRs.) | ||
|
|
There was a problem hiding this comment.
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.
| (Per GOVERNANCE.md §33 archive-header requirement on cross-substrate ADRs.) |
| - `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 |
There was a problem hiding this comment.
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).
|
|
||
| ### 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). |
There was a problem hiding this comment.
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.
| 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). |
Summary
ADR canonicalizing the AceHack ↔ LFG fork-divergence drain plan.
Decision
Option-c (cherry-pick-with-rewrites) chosen over alternatives:
The 7-step plan (executed 2026-04-26)
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