Donor (nirs4all-methods) worktree-agent inventory¶
Repo: https://github.com/GBeurier/nirs4all-methods
Inspected at: 2026-05-21
Inspected at commit (main tip): 95906aa Rename project to nirs4all-methods
Local path: /home/delete/nirs4all/nirs4all-methods/
Summary¶
Layer |
State |
|---|---|
Total |
18 |
Active worktree working dirs on disk |
0 (all parent dir |
|
18, all marked |
Branches whose phase content is integrated into main |
18 / 18 (each phase was integrated by aggregate commits — see §”Integration evidence” below) |
Branches pushed to |
1 ( |
Author on every tip |
|
Tip date range |
2026-05-18 → 2026-05-19 |
Per-branch table¶
# |
Branch |
Tip |
Date |
Ahead |
Behind |
Files |
Remote |
Phase |
Subject (tip commit) |
Content-in-main? |
Recommendation |
|---|---|---|---|---|---|---|---|---|---|---|---|
1 |
|
|
2026-05-19 |
1 |
37 |
21 |
✓ |
phase-10 |
phase-10: add resampling preprocessors |
✓ |
close + delete remote |
2 |
|
|
2026-05-18 |
1 |
37 |
37 |
phase-11 |
phase-11: 9 sample-partitioning splitters (c4a_split_* category) |
✓ |
close |
|
3 |
|
|
2026-05-18 |
1 |
37 |
17 |
phase-12 |
phase-12: YOutlierFilter (4 methods) |
✓ |
close |
|
4 |
|
|
2026-05-18 |
1 |
34 |
26 |
phase-13 |
phase-13: XOutlierFilter (6 methods incl. Mahalanobis + IsolationForest + LOF) |
✓ |
close |
|
5 |
|
|
2026-05-18 |
1 |
37 |
25 |
phase-14 |
phase-14: HighLeverage + SpectralQuality + Composite filters |
✓ |
close |
|
6 |
|
|
2026-05-18 |
1 |
34 |
49 |
phase-15 |
phase-15: 7 noise + drift augmenters (c4a_aug_* category) |
✓ |
close |
|
7 |
|
|
2026-05-18 |
1 |
34 |
51 |
phase-16 |
phase-16: 10 wavelength + spectral augmenters |
✓ |
close |
|
8 |
|
|
2026-05-18 |
1 |
34 |
45 |
phase-17 |
phase-17: 10 mixup + physical + environmental augmenters |
✓ |
close |
|
9 |
|
|
2026-05-18 |
1 |
34 |
47 |
phase-18 |
phase-18: 12 edge artifacts + splines + random augmenters |
✓ |
close |
|
10 |
|
|
2026-05-18 |
1 |
37 |
29 |
phase-19 |
phase-19: signal type detection + NIRS metrics + Hotelling T²/Q-residuals |
✓ |
close |
|
11 |
|
|
2026-05-18 |
1 |
37 |
14 |
phase-20 |
phase-20: transfer metrics (9-metric vector for dataset alignment) |
✓ |
close |
|
12 |
|
|
2026-05-18 |
1 |
37 |
14 |
phase-21 |
phase-21: FCK static transformer (fractional convolutional kernels) |
✓ |
close |
|
13 |
|
|
2026-05-18 |
1 |
29 |
26 |
phase-22 |
phase-22: Python binding (ctypes + sklearn tier-2, 20 ops covered by Gate 1) |
✓ |
close |
|
14 |
|
|
2026-05-18 |
1 |
29 |
18 |
phase-23 |
phase-23: R binding (.Call + idiomatic R API, 15 ops covered by Gate 1) |
✓ |
close |
|
15 |
|
|
2026-05-18 |
1 |
34 |
44 |
phase-6 |
phase-6: wavelets & denoising (6 operators + filter banks) |
✓ |
close |
|
16 |
|
|
2026-05-18 |
1 |
37 |
24 |
phase-7 |
phase-7: signal type conversion preprocessings (5 operators) |
✓ |
close |
|
17 |
|
|
2026-05-18 |
1 |
37 |
18 |
phase-8 |
phase-8: OSC + EPO orthogonalization preprocessings |
✓ |
close |
|
18 |
|
|
2026-05-18 |
1 |
37 |
21 |
phase-9 |
phase-9: FlexiblePCA + FlexibleSVD (CARS/MCUVE deferred) |
✓ |
close |
Integration evidence — how the phase content reaches main¶
The phase content is on main today, but the relationship between each worktree-agent-* branch and main is not “file-identical sub-tree” or a clean cherry-pick. Two checks tell the real story:
git cherry main <branch>returns+for every branch. That means git does not recognise the branch’s unique commit as a direct cherry-pick of any commit onmain. Each branch is a divergent line of history.File-level diff
main..<branch>shows large delta (e.g.mainis 1683 files / 33344 lines forward ofworktree-agent-a23aefc9f7105e3c3and 204216 lines backward — the deletion count means whole subtrees were restructured onmainafter the phase was integrated).
So each branch was integrated by later aggregate commits on main (restructuring, renames, follow-on phases), not by a clean squash that left tree-equivalent content. The integration story is: the phase landed, then subsequent main commits revised the same files heavily.
Conclusion: the branches are semantically obsolete (their work is on main, but the exact tree they hold is not). Keeping them is purely archival of “what the work looked like before later refactors” — useful for archeology, not for active development. The “close all” recommendation stands; the archive tag (step 2 in cleanup) preserves the obsolete tree if archeology is ever needed.
Recommendation¶
Close all 18 branches — the content is preserved on main, the worktree working directories are already gone, and no PR references them.
For worktree-agent-a62b667d41c6c951a (the only one pushed to GitHub), also delete the remote ref.
Cleanup commands (one-shot — needs maintainer approval before running)¶
Order is load-bearing. Each worktree-agent-* branch is checked out by a (locked) linked worktree — the + prefix in git branch output. While that worktree pointer exists, git branch -D <name> fails with error: Cannot delete branch '<name>' checked out at '<path>'. The unlock and prune steps must happen before branch deletion.
cd /home/delete/nirs4all/nirs4all-methods
# 1) Archive-tag every branch tip FIRST so nothing is lost.
for br in $(git branch | grep -E '^[ +*] worktree-agent' | sed 's/^[+ *] //'); do
git tag "archive/$br" "$br"
done
# 2) Push the archive tags to origin EXPLICITLY (refspec per tag, not --tags
# which could push unrelated tags). This makes the obsolete tree state
# discoverable for archeology after the donor repo is archived in M16.
for br in $(git branch | grep -E '^[ +*] worktree-agent' | sed 's/^[+ *] //'); do
git push origin "refs/tags/archive/$br"
done
# 3) Unlock every locked worktree.
# `git worktree prune` and `git worktree remove` both refuse locked entries.
for path in $(git worktree list --porcelain | awk '/^worktree / {print $2}' | grep chemometrics4all); do
git worktree unlock "$path" 2>/dev/null || true
done
# 4) Prune the orphan worktree pointers. The working dirs are already gone
# from disk; this clears git's metadata and frees each branch to be deleted.
git worktree prune --verbose
# 5) Now safe to delete local branches (they are no longer "checked out").
for br in $(git branch | grep -E '^[ +*] worktree-agent' | sed 's/^[+ *] //'); do
git branch -D "$br"
done
# 6) Delete the only remote ref (`worktree-agent-a62b667d41c6c951a`).
# Its tip is preserved by `archive/worktree-agent-a62b667d41c6c951a`
# which was pushed in step 2.
git push origin :worktree-agent-a62b667d41c6c951a
Decision policy applied (per resolved §11.3 of MERGE_ROADMAP.md)¶
The user’s resolution was “inventaire + revue”. This file is the inventory; the recommendation column is the proposal.
No branches deleted yet. Maintainer signoff is the gate before the cleanup commands above run.
If any single branch is contested by another contributor, escalate before deletion (the inventory column “Remote” surfaces such risk).