Skip to content

chore(memory): consolidate remaining stranded worktree content from cleanup pass - #679

Merged
drmoisan merged 10 commits into
mainfrom
documentationandmemories
Aug 28, 2026
Merged

chore(memory): consolidate remaining stranded worktree content from cleanup pass#679
drmoisan merged 10 commits into
mainfrom
documentationandmemories

Conversation

@drmoisan

Copy link
Copy Markdown
Owner

Suggested title

chore(memory): consolidate remaining stranded worktree content from cleanup pass

Summary

  • Second consolidation pass under /cleanup-merged-worktrees, covering the 29 BLOCKED-DIRTY worktrees left after PR chore(memory): consolidate stranded agent-memory commit from merged worktrees #676 and the subsequent apply-mode deletion.
  • Preserves genuinely new agent-memory lessons, two active corrections to already-committed (stale/wrong) memory entries, one durable planning record, and one promoted GitHub issue — all sourced from 9 stranded worktree branches (all already merged into main via other branches).
  • No production code, tests, or build configuration are touched; this is a documentation/agent-memory/planning-record-only change.
  • Each item was individually verified against main's current state before inclusion; content confirmed superseded, duplicate, or stale-and-wrong was excluded (see "Excluded" below).

Why

Several drm-copilot-wt-*/agent worktree branches accumulated uncommitted documentation, agent-memory lessons, or planning records after their feature work had already merged into main. An automated cleanup pass correctly refused to delete these worktrees (never force-removing dirty state), but the content itself needed editorial triage before the worktrees could be discarded.

What Changed

Corrections to already-committed memory (stale/wrong content on main):

  • atomic-planner/project_csharp_phase0_toolchain_bootstrap.mddotnet tool run csharpier was recorded as "broken and must not be planned"; it actually works once the .NET SDK is bootstrapped (the manifest finder does find the repo-root dotnet-tools.json; the real blocker was global.json's missing .dotnet-sdk). Verified against main's currently-executed plan for issue Bug: uithread-dispatcher-static-swap-no-restore #493, which still carries the unfixed bug this correction addresses.
  • orchestrator/portable-completion-gate-allows-blocked-child.md — recorded the portable completion gate as "lenient" (a blocked/partial child could terminate cleanly); issue Bug: breadcrumb-capturecurrentortests-silently-degrades-in-production #475 made it full --require-complete parity. The stale version could have misled a future orchestrator into assuming a blocked child needs no cleanup.

New agent-memory lessons (atomic-planner, task-researcher, atomic-executor, prd-feature — one file per persona/topic; see diff for the full list), covering: a nuget.exe-not-on-PATH fix, a cross-task shell-variable/splat plan-authoring gate, and per-issue planning/research seams for #442, #468, #484, #493/#584, and the breadcrumb subsystem (#439/#440/#498/#499).

Planning record: docs/features/parallel/bug-families-01/selection.md — the contention-analysis and prioritization rationale for a parallel run that selected 8 of 78 open bug-labelled issues, with exclusion rationale for the rest. Several selected/excluded issues remain open (#504, #584, #516, #531, #469, #448, #287); nothing on main records this rationale.

Promoted issue: docs/features/potential/promoted/2026-08-28-quickfiler-carry-folder-predictor-to-item-controller.md — promoted to issue #678. Issue #427 (duplicate scoring in high-confidence mode) is only half-fixed: the producer side landed, but the consumer side that would remove the second scoring pass was never delivered. Corroborated by main's own feature-review/project_446-review-residuals.md, which independently notes "#427 must stay open, only 427-A delivered."

Excluded (verified superseded, duplicate, or stale-and-wrong — not carried forward)

Architecture / How It Fits Together

Branch created off main in a dedicated worktree, receiving 10 commits — one per source worktree/topic, each independently reviewed and cherry-picked or hand-applied (working-tree diffs, not committed history, so git cherry-pick did not apply; content was read from each stranded worktree and merged by hand, resolving MEMORY.md index-line conflicts across the 6+ worktrees that touched the same shared index files).

Verification

Completed:

  • Each new/corrected file was checked against main's current content (via git show main:<path> and repo-wide grep) before inclusion, to rule out duplication.
  • The two "correction" entries were verified against main's currently-executed artifacts (issue Bug: uithread-dispatcher-static-swap-no-restore #493's plan still carries the toolchain-bootstrap bug; the completion-gate hook source confirms full --require-complete parity per issue Bug: breadcrumb-capturecurrentortests-silently-degrades-in-production #475).
  • Diff reviewed: 28 files changed, 987 insertions(+), 10 deletions(-), entirely under .claude/agent-memory/, docs/features/parallel/, and docs/features/potential/.

Recommended:

  • No code toolchain applies (docs/memory-only change); no build, lint, or test run is required.

Backward Compatibility / Migration Notes

None. No production code, schema, or public API is touched.

Risks and Mitigations

  • Risk: none identified — the change is additive documentation/memory content with no runtime effect.
  • Mitigation: N/A.

Review Guide

  • The two "correction" commits (6dc4b53d, and the toolchain-bootstrap fix in 24e4c719) are the most consequential — they change guidance already in active use, rather than adding new guidance. Review those first.
  • The remaining commits are additive MEMORY.md index lines plus new lesson files; each commit's message states its source worktree and topic.

Follow-ups

GitHub Auto-close

- Fix atomic-planner Phase-0 bootstrap lesson: dotnet tool run csharpier
  works once the SDK is bootstrapped; the missing-SDK global.json error was
  misattributed to a missing manifest.
- Add invoke-vsbuild-rewrites-csproj-hintpaths.md and
  declaration-only-seam-task-for-fail-before.md (atomic-planner).
- Add webview2-host-initializer-defects-476 research findings
  (task-researcher).

Source: uncommitted content stranded in worktree agent-abd8f2fffbf2e7833
(branch worktree-agent-abd8f2fffbf2e7833, already merged via
bug/webview2-host-initializer-defects-476).
…facts instance

- portable-completion-gate-allows-blocked-child.md was stale since issue #475
  made the portable gate FULL --require-complete parity, not lenient; a
  blocked/partial child orchestrator can no longer terminate cleanly without
  satisfying required_agents/required_skills/required_mcp_tools arrays.
- Add a second, independently-verified instance to
  epic-kickoff-facts-need-independent-measurement.md (a false claim about
  QuickFiler.Test.csproj alphabetical ordering).

Source: uncommitted content stranded in worktree agent-a3f0a09e871104b8e
(branch worktree-agent-a3f0a09e871104b8e, already merged).
- atomic-planner: signature-change fail-before needs staged Compile-Include
  lines; coverage script IS the parallelized run; scope dispatcher greps.
- prd-feature: the IUiDispatcher seam conversion belongs to #584, not a new
  issue.
- task-researcher: semaphore split rationale, editorconfig analyzer
  catch-all, CI-vs-local test parallelization asymmetry.

Source: uncommitted content stranded in worktree agent-a1731e67774734a64
(branch worktree-agent-a1731e67774734a64, already merged).
…xe fix

- Fix agent-worktrees-need-sdk-and-nuget-bootstrap.md: nuget.exe is not
  guaranteed on PATH in an agent worktree; prefer Invoke-Restore.ps1.
- Add QfcItemController test-capacity squeeze (atomic-planner): a
  file-size-constrained multi-test feature needs Phase-0 capacity budgeting.
- Add qfc-item-controller-defects-484 (task-researcher): all 5
  promoted-potential Suspected-Fix sections were wrong; verify against
  callers/interfaces/coverage-exemptions first.

Source: uncommitted content stranded in worktree agent-a6aa711c9454af0d0
(branch worktree-agent-a6aa711c9454af0d0, already merged).
#439/#440/#498/#499)

Records that fixing the #439 lineage defect regresses the percentage-join and
filing-target logic (archive-relative vs score-index path forms), that #440
contradicts a landed, checked-off #400 acceptance criterion, and that Efc/Qfc
use different breadcrumb HTML documents.

Source: uncommitted content stranded in worktree agent-a59a23ef71f13e33a
(branch worktree-agent-a59a23ef71f13e33a, already merged).
- atomic-planner: commented-out code defeats zero-hit grep gates; declare
  the seam before red tests; Invoke-MSTestWithCoverage throws below 80%.
- task-researcher: QFC MoveAndIterate stopwatch race is unfixable in owned
  files; legacy csproj blocks new .cs; metrics CSV has zero in-repo readers.

Source: uncommitted content stranded in worktree agent-a7d910034b3323e51
(branch worktree-agent-a7d910034b3323e51, already merged).
- atomic-planner: ToggleUnGroupConv is not COM-free drivable;
  MakeSpaceForItems never touches Size; sign-defect seam must land carrying
  the defect; LoadItemGroup( needs the paren.
- task-researcher (two files): MovedMails already pushed by EmailFiler; no
  log4net ref in QuickFiler.Test; ConcurrentDictionary order blocks a
  deterministic pre-fix test; a promoted-potential doc's 'unrelated
  interfaces' claim is false (IQfcFormController derives from
  IFilerFormController); the #469-4 undo is not broken.

Source: uncommitted content stranded in worktree agent-aae5cc929932e2647
(branch worktree-agent-aae5cc929932e2647, already merged).
…491)

A shell variable assigned in one plan task does not survive into a later
pwsh -Command invocation, so a splatted @ASSEMBLIES can silently run vstest
against zero assemblies while still reporting a passing gate. Adds the
atomic-executor and atomic-planner lessons plus a fourth diff-gate rule:
branch history unrelated to a child's own scope (e.g. a restored merge of
main) can make a base..HEAD gate unsatisfiable regardless of whitelisting;
gate the child's own commit instead.

Source: uncommitted content stranded in worktree agent-abdabaa6f7e633c09
(branch bug/quickfiler-test-form1-live-form-491, already merged and
archived).
Contention-analysis and prioritization rationale selecting 8 of 78 open
bug-labelled issues for a parallel run, with exclusion rationale for the
drm-copilot-owned and CI/coverage-threshold-chain issues, and a 58-item
deferred serial queue. Several selected/excluded issues remain open
(#504, #584, #516, #531, #469, #448, #287); this record has no equivalent
anywhere else on main. Also fixes mojibake: the source file had the em dash
written as a raw Windows-1252 byte (0x97) instead of UTF-8.

Source: uncommitted content stranded in worktree
parallel-bug-families-01-plan (branch parallel/bug-families-01-plan,
already merged).
…678

Issue #427 (duplicate scoring in high-confidence mode) is only half-fixed:
the producer side landed via quickfiler-queue-datamodel-defects-446 (Scope
427-A), but the consumer side that would carry the initialised
FolderPredictor into QfcItemController and remove the second scoring pass
was never delivered. This was independently rediscovered in two stranded
worktree copies, corroborated by the merged feature's own review memory
(.claude/agent-memory/feature-review/project_446-review-residuals.md: '#427
must stay open, only 427-A delivered'), and had no tracking anywhere else.
Promoted via the MCP lifecycle rather than left as prose in a feature
folder.

See #678
@drmoisan
drmoisan merged commit 11b7398 into main Aug 28, 2026
5 checks passed
@drmoisan
drmoisan deleted the documentationandmemories branch August 28, 2026 13:30
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