Skip to content

Commit 4572e65

Browse files
hyperpolymathclaude
andcommitted
docs(archive): turn-2 session record — add Phase 5b (.res sweep) + 5c (consumer-ref updates)
Extends the existing session record with the inline .res-sweep work the user directed after Phase 5a (.affine sweep) closed gitbot-fleet#208. The original record had marked the 1,267 stale .res fixtures as deferred to affinescript#57 Phase 2; this commit captures what was actually done instead. Human-readable additions (`docs/archive/SESSION-2026-05-26-cicd-foundational-fixes.md`): * New '.res sweep (Phase 5b — added later in the same session)' subsection — scope correction from the earlier awk $7-vs-$6 bug (134 true top-level dirs / 129 reachable GitHub remotes, not 255), 6-batch fan-out table, 125 PRs filed. * New 'Phase 5c — 4 consumer-reference updates' subsection — atomic follow-up commits to existing deletion PRs in universal-chat-extractor#70, thunderbird-template-reloaded#77, panll#52, zotero-tools#15. * New 'Unsweepable corpus (672 files behind unreachable remotes)' — repos-monorepo 510 (404), hyperpolymath-archive 152 (404), polystack 10 (archived), typed-wasm 1 (already migrated). * New 'Side-anomalies' — the voyage-enterprise-decision-system foreign-WIP loss (`feedback_parallel_session_branch_drift` violation; agent prompt template tightened) + the accessibility-everywhere real-SafeDOM.res-not-touched note. Machine-readable additions (`.machine_readable/SESSION-2026-05-26-cicd.a2ml`): * `[phase.5b.res-sweep]` + 6 `[[phase.5b.res-sweep.batch]]` entries with per-batch PR counts and skips * `[phase.5b.res-sweep.unsweepable]` enumerating the 673-file unreachable corpus * `[phase.5c.consumer-ref-updates]` + 4 `[[update]]` entries with PR# / file / change Refs #148, #208 Refs hyperpolymath/affinescript#56, #57, #229 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1 parent 09e38a1 commit 4572e65

2 files changed

Lines changed: 177 additions & 15 deletions

File tree

.machine_readable/SESSION-2026-05-26-cicd.a2ml

Lines changed: 90 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -122,17 +122,98 @@ note = "24 over-propagation copies; standards/ vendors canonical templates, not
122122
[phase.5.safedom-sweep.skipped]
123123
description = "standards-as-port/ local clone redundant — same Git remote as standards/. PR not created."
124124

125-
[phase.5.safedom-sweep.deferred]
126-
description = "1267 `.res` siblings tracked under affinescript#57 Phase 2 (tree-sitter walker)."
127-
load-bearing-references = [
128-
"universal-chat-extractor/tests/idris2/SmokeTest.idr (fileExists)",
129-
"thunderbird-template-reloaded/tests/idris2/SmokeTest.idr (fileExists)",
130-
"panll/panel-clades/eclexiaiser.toml (source = ...)",
131-
"zotero-tools/rescript-templater/eclexiaiser.toml (source = ...)",
132-
"repos-monorepo/.claude/settings.local.json (negative assertion)",
133-
"proven/.claude/settings.local.json (curl URL allowlist)"
125+
[phase.5b.res-sweep]
126+
description = """Inline sweep of the 1,267 stale SafeDOMExample.res
127+
fixtures. Added later in the same session per user direction; the
128+
initial plan was to defer to affinescript#57 Phase 2."""
129+
strategy = "Mass-delete — purely stale fixtures; ReScript banned in new code (2026-04-30 policy)."
130+
agent-strategy = "5 parallel general-purpose agents over 6 batches (~25 repos each)."
131+
total-local-dirs-with-file = 134
132+
total-reachable-github-remotes = 129
133+
total-files-on-disk = 1267
134+
prs-filed = 125
135+
files-deleted-by-pr = 595 # approximate sum from agent reports
136+
137+
[[phase.5b.res-sweep.batch]]
138+
id = "pilot"
139+
repos = 1
140+
prs-filed = 1
141+
notes = "Pattern proof on hyperpolymath/ffmpeg-ffi#14 before fan-out."
142+
143+
[[phase.5b.res-sweep.batch]]
144+
id = "aa"
145+
repos = 25
146+
prs-filed = 23
147+
skipped = ["ffmpeg-ffi (already done)", "hyperpolymath-archive (404 remote, 152 files unreachable)"]
148+
anomaly = "voyage-enterprise-decision-system: agent discarded uncommitted foreign WIP via git restore. Deletion PR clean, but the foreign WIP needs redoing."
149+
150+
[[phase.5b.res-sweep.batch]]
151+
id = "ab"
152+
repos = 25
153+
prs-filed = 23
154+
skipped = ["repos-monorepo (404 remote, 510 files — 40% of corpus)", "polystack (archived, read-only, 10 files)"]
155+
156+
[[phase.5b.res-sweep.batch]]
157+
id = "ac"
158+
repos = 25
159+
prs-filed = 25
160+
notes = "Clean run, no skips."
161+
162+
[[phase.5b.res-sweep.batch]]
163+
id = "ad"
164+
repos = 25
165+
prs-filed = 25
166+
notes = "ambientops + burble had unrelated untracked files; agent correctly un-staged before commit (good)."
167+
168+
[[phase.5b.res-sweep.batch]]
169+
id = "ae+af"
170+
repos = 29
171+
prs-filed = 28
172+
skipped = ["typed-wasm (already migrated upstream commit f53e693)"]
173+
174+
[phase.5b.res-sweep.unsweepable]
175+
description = "Files behind unreachable / read-only remotes — no PR possible."
176+
total-files = 673
177+
items = [
178+
{ dir = "repos-monorepo", files = 510, reason = "GitHub remote 404 (repo deleted)" },
179+
{ dir = "hyperpolymath-archive", files = 152, reason = "GitHub remote 404" },
180+
{ dir = "polystack", files = 10, reason = "Repo archived on GitHub (read-only)" },
181+
{ dir = "typed-wasm", files = 1, reason = "Already migrated upstream" }
134182
]
135183

184+
[phase.5c.consumer-ref-updates]
185+
description = """Pushed as follow-up commits to existing deletion-PR
186+
branches so each repo's deletion + assertion-update lands atomically."""
187+
status = "complete"
188+
commits-pushed = 4
189+
190+
[[phase.5c.consumer-ref-updates.update]]
191+
repo = "hyperpolymath/universal-chat-extractor"
192+
pr = 70
193+
file = "tests/idris2/SmokeTest.idr"
194+
change = "Removed dead fileExists \"examples/SafeDOMExample.res\" smoke probe"
195+
196+
[[phase.5c.consumer-ref-updates.update]]
197+
repo = "hyperpolymath/thunderbird-template-reloaded"
198+
pr = 77
199+
file = "tests/idris2/SmokeTest.idr"
200+
change = "Removed dead (\"examples\", \"examples/SafeDOMExample.res\") table entry"
201+
202+
[[phase.5c.consumer-ref-updates.update]]
203+
repo = "hyperpolymath/panll"
204+
pr = 52
205+
file = "panel-clades/eclexiaiser.toml"
206+
change = "Removed [[functions]] mountApp block sourcing deleted .res"
207+
208+
[[phase.5c.consumer-ref-updates.update]]
209+
repo = "hyperpolymath/zotero-tools"
210+
pr = 15
211+
file = "rescript-templater/eclexiaiser.toml"
212+
change = "Removed 2 [[functions]] blocks (mountApp + mountWithValidation) sourcing deleted .res"
213+
214+
[phase.5c.consumer-ref-updates.no-change-needed]
215+
description = "5th reference: repos-monorepo/.claude/settings.local.json `! test -f` deliberate-absence assertion. Deletion satisfies it. (repos-monorepo's GitHub remote is 404'd anyway.)"
216+
136217
[phase.6.documentation]
137218
status = "complete"
138219
human-readable = "docs/archive/SESSION-2026-05-26-cicd-foundational-fixes.md"

docs/archive/SESSION-2026-05-26-cicd-foundational-fixes.md

Lines changed: 87 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -180,13 +180,94 @@ migrated copy — that's the expected residual, matching the `#148`
180180
validation oracle. The `SafeDOM` stdlib targeted by the example does
181181
not yet exist (it is `affinescript#56`).
182182

183-
### Deliberately deferred
183+
### .res sweep (Phase 5b — added later in the same session)
184+
185+
Initially the 1,267 `SafeDOMExample.res` siblings were deferred to
186+
`affinescript#57` Phase 2. The user then directed an inline sweep —
187+
"either delete this stuff if stale or if necessary, do the
188+
AffineScript conversion here." After confirming the `.res` corpus is
189+
purely stale fixtures (no real implementation logic; the real SafeDOM
190+
implementation lives at
191+
`accessibility-everywhere/tools/safe-dom/src/SafeDOM.res` under a
192+
*different filename*), the decision was mass-delete.
193+
194+
Scope correction during execution: an earlier agent search reported
195+
"255 distinct top-level repo dirs"; that was a `awk` field-index bug
196+
(extracted `$7` instead of `$6`). The true scope is **134 distinct
197+
top-level local dirs, mapping to 129 distinct GitHub remotes**.
198+
199+
**Fan-out execution** (5 parallel general-purpose agents, batches of
200+
~25 repos each):
201+
202+
| Batch | Repos | PRs filed |
203+
|---|---|---|
204+
| pilot ffmpeg-ffi | 1 | 1 |
205+
| aa | 25 | 23 (2 skipped) |
206+
| ab | 25 | 23 (2 skipped) |
207+
| ac | 25 | 25 |
208+
| ad | 25 | 25 |
209+
| ae+af | 29 | 28 (1 skipped) |
210+
| **total** | **130 reachable** | **125** |
211+
212+
All commits GPG-signed with the canonical key
213+
(`4A03639C1EB1F86C7F0C97A91835A14A2867091E`,
214+
`6759885+hyperpolymath@users.noreply.github.com`). All PRs ran
215+
`gh pr merge --auto --squash --delete-branch` immediately after
216+
creation per the standing automerge policy
217+
(`feedback_always_enable_automerge.md`). About 10 PRs sit open because
218+
their repos lack repo-level `enablePullRequestAutoMerge`; everything
219+
else is in the automerge queue.
220+
221+
### Phase 5c — 4 consumer-reference updates (atomic with deletion)
222+
223+
Five load-bearing references estate-wide pointed at the now-deleted
224+
`.res` paths. Four needed a follow-up commit to keep the deletion PR
225+
green; the fifth needed no change (deletion satisfies it).
226+
227+
| Repo | PR (existing branch) | Follow-up commit |
228+
|---|---|---|
229+
| `universal-chat-extractor` | #70 | `tests/idris2/SmokeTest.idr:155` — removed dead `fileExists "examples/SafeDOMExample.res"` smoke probe |
230+
| `thunderbird-template-reloaded` | #77 | `tests/idris2/SmokeTest.idr:71` — removed dead `("examples", "examples/SafeDOMExample.res")` table entry |
231+
| `panll` | #52 | `panel-clades/eclexiaiser.toml` — removed `[[functions]] mountApp` block whose `source` pointed at deleted .res |
232+
| `zotero-tools` | #15 | `rescript-templater/eclexiaiser.toml` — removed 2 `[[functions]]` blocks (mountApp + mountWithValidation) |
233+
| `repos-monorepo` | n/a (remote 404) | `.claude/settings.local.json:130` `! test -f` is a deliberate-absence assertion — deletion satisfies it; nothing to commit |
234+
235+
Pushing the consumer-update commits to the existing deletion branches
236+
keeps the deletion + assertion-update **atomic per repo** — they
237+
land together or not at all.
184238

185-
The 1,267 `SafeDOMExample.res` files are out of scope here. They are
186-
tracked under [`affinescript#57` Phase 2 — `.res → .affine` migration
187-
assistant (tree-sitter walker)](https://github.com/hyperpolymath/affinescript/issues/57).
188-
The 6 load-bearing `.res` fileExists / source = references will
189-
update in lockstep with the walker as it lands.
239+
### Unsweepable corpus (672 files behind unreachable remotes)
240+
241+
| Local dir | File count | Reason |
242+
|---|---|---|
243+
| `repos-monorepo` | 510 | GitHub remote returns 404 — repo deleted upstream; local clone retains files |
244+
| `hyperpolymath-archive` | 152 | GitHub remote 404 |
245+
| `polystack` | 10 | Repo archived on GitHub — read-only |
246+
| `typed-wasm` | 1 | Already migrated upstream (`f53e693`) |
247+
248+
These 673 files persist as local-only stale fixtures with no upstream
249+
to PR against. They can be cleaned via local `rm` if the user
250+
chooses — irrelevant for any remote-driven build.
251+
252+
### Side-anomalies
253+
254+
- **`voyage-enterprise-decision-system`** — the batch_aa agent
255+
inadvertently discarded an uncommitted foreign-WIP edit to
256+
`.github/workflows/ci.yaml` (a SHA-pin to
257+
`DeLaGuardo/setup-clojure`) while staging the deletion PR. Used
258+
`git restore --staged --worktree` to keep the deletion commit
259+
clean, which also reverted the WIP. The deletion PR itself is
260+
clean; the foreign WIP needs to be redone by whichever parallel
261+
session authored it. This violates the
262+
`feedback_parallel_session_branch_drift` / "leave foreign WIP
263+
alone" memory rule. Tightened the fan-out agent prompt template
264+
for future sweeps.
265+
- **`accessibility-everywhere`** — only the `SafeDOMExample.res`
266+
fixture was deleted; the real `SafeDOM.res` implementation at
267+
`tools/safe-dom/src/SafeDOM.res` was correctly **not** touched
268+
(different filename, didn't match the sweep regex). That real
269+
implementation's migration is its own track under
270+
`affinescript#56`.
190271

191272
## Full session PR roster
192273

0 commit comments

Comments
 (0)