Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
103 commits
Select commit Hold shift + click to select a range
a2d766c
docs(epic): restore the 2026-09-08 promoted potential records for the…
drmoisan Sep 9, 2026
c713d2a
docs(epic): author the review-residuals-2026-09-08 epic manifest
drmoisan Sep 9, 2026
df6d8ab
docs(815): open the active bug feature folder for the coverage aggreg…
drmoisan Sep 9, 2026
4c612f6
docs(823): open the active bug feature folder for the quickfiler tear…
drmoisan Sep 9, 2026
62565ca
docs(826): open the active bug folder for the console-out and banned-…
drmoisan Sep 9, 2026
982970a
docs(815): record the template scaffolds and correct the batch-budget…
drmoisan Sep 9, 2026
a5e75da
docs(815): record the research findings for the coverage aggregation …
drmoisan Sep 9, 2026
87640c9
docs(memory): record that the Cobertura double count moves counts, no…
drmoisan Sep 9, 2026
e7024fe
docs(826): record the console-out and banned-symbol residual research
drmoisan Sep 9, 2026
712ec4b
docs(823): add the research findings and the full-bug specification
drmoisan Sep 9, 2026
07a63e9
docs(815): author the full-bug specification with fourteen acceptance…
drmoisan Sep 9, 2026
0d83967
docs(826): author the spec for the console-out and banned-symbol resi…
drmoisan Sep 9, 2026
d5fe09e
docs(memory): record the suggestion-severity observability finding fr…
drmoisan Sep 9, 2026
8dbcfc2
docs(memory): record the suggestion-severity observation channel and …
drmoisan Sep 9, 2026
d9eade5
docs(epic): fan in the committed preparation work for issues 815, 823…
drmoisan Sep 9, 2026
10dc502
docs(823): restore the partial atomic plan the interrupted planner le…
drmoisan Sep 9, 2026
c177331
docs(821): restore the interrupted preparation artifacts for the tear…
drmoisan Sep 9, 2026
3df6f35
docs(817): restore the interrupted preparation artifacts for the test…
drmoisan Sep 9, 2026
0c9bbd1
docs(825): restore the interrupted preparation artifacts for the ETL …
drmoisan Sep 9, 2026
e34aa9e
docs(813): restore the interrupted preparation artifacts for the arch…
drmoisan Sep 9, 2026
13c2721
docs(825): amend AC35 to remove the AC20 contradiction
drmoisan Sep 9, 2026
b8bf04f
docs(824): restore the interrupted preparation artifacts for the ILGl…
drmoisan Sep 9, 2026
1a008f8
docs(817): apply preflight round-1 fixes to the FolderPredictorTests …
drmoisan Sep 9, 2026
3320e57
docs(epic): fan in the prepared feature for issue 817
drmoisan Sep 9, 2026
4090364
docs(823): complete the atomic plan and re-anchor the diff base
drmoisan Sep 9, 2026
945659c
docs(825): adjudicate the timer-ordering conflict and add the draft a…
drmoisan Sep 9, 2026
b49a0ae
docs(813): clear atomic-plan preflight through four revision rounds
drmoisan Sep 9, 2026
4f92541
docs(epic): fan in the prepared feature for issue 813
drmoisan Sep 9, 2026
cb82d3b
docs(823): apply preflight round-1 revisions to the atomic plan
drmoisan Sep 9, 2026
fa67d4e
docs(825): revise the atomic plan after the Branch A adjudication
drmoisan Sep 9, 2026
035428e
docs(815): author the atomic plan for the coverage aggregation exposure
drmoisan Sep 9, 2026
7b4b08e
docs(epic): fan in the prepared feature for issue 815
drmoisan Sep 9, 2026
674ac4e
docs(823): apply preflight round-2 revisions to the atomic plan
drmoisan Sep 9, 2026
8bd3d1f
docs(memory): record the #815 preparation lessons and compact the index
drmoisan Sep 9, 2026
7f2f0ed
docs(epic): fan in the issue 815 preparation memory commit
drmoisan Sep 9, 2026
35d1a5e
docs(825): apply the executor preflight delta to the atomic plan
drmoisan Sep 9, 2026
46fce54
docs(821): add the preflight-cleared atomic plan for the teardown gua…
drmoisan Sep 9, 2026
1b5852c
docs(epic): fan in the prepared feature for issue 821
drmoisan Sep 9, 2026
a89e5a0
docs(epic): fan in the prepared feature for issue 823
drmoisan Sep 9, 2026
3668238
docs(825): close the tool-output-on-success defects in the atomic plan
drmoisan Sep 9, 2026
f288cbc
docs(824): author the atomic plan for the ILGlobals static publicatio…
drmoisan Sep 9, 2026
4b21d84
docs(epic): fan in the prepared feature for issue 824
drmoisan Sep 9, 2026
d1181cf
docs(826): author the atomic plan for the console-out and banned-symb…
drmoisan Sep 9, 2026
6693dd4
docs(epic): fan in the prepared feature for issue 826
drmoisan Sep 9, 2026
d022b35
docs(825): fix the coverage derivation and evidence-hygiene defects i…
drmoisan Sep 9, 2026
a07435a
docs(825): stop the plan writing stale line numbers into permanent so…
drmoisan Sep 9, 2026
0a50a4d
docs(825): correct the acceptance-criteria amendment provenance in th…
drmoisan Sep 9, 2026
bee75df
docs(epic): fan in the prepared feature for issue 825
drmoisan Sep 9, 2026
9daebc8
docs(epic): back-fill the review-residuals manifest and add the kicko…
drmoisan Sep 9, 2026
e708cf0
docs(epic): fan in the epic-planner memory from the preparation phase
drmoisan Sep 9, 2026
2f94eb2
docs(epic): seed the review-residuals-2026-09-08 epic status projection
drmoisan Sep 9, 2026
51e093c
fix(813): guard AssignFolderComboBox against a throwing Ol.ArchiveRoo…
drmoisan Sep 9, 2026
48cd004
Merge pull request #827 from drmoisan/bug/assignfoldercombobox-unguar…
drmoisan Sep 9, 2026
2831b09
docs(epic): record the 813 fan-in and two measured execution constraints
drmoisan Sep 9, 2026
0649538
fix(coverage): expose a deduplicated first-party Cobertura aggregatio…
drmoisan Sep 9, 2026
e3a3a2f
fix(coverage): make the mocked post-processed Cobertura stub structur…
drmoisan Sep 9, 2026
143fd5a
docs(815): record the Phase 4 scope gates and the Phase 5 QA loop evi…
drmoisan Sep 9, 2026
983bed1
docs(815): check off AC1 through AC13 and record AC14 as PARTIAL
drmoisan Sep 9, 2026
7849b20
docs(815): record the P6-T16 clean-tree observation and close the pla…
drmoisan Sep 9, 2026
a219ab5
docs(815): raise issue 828 and check off AC14
drmoisan Sep 9, 2026
732b84d
Merge pull request #829 from drmoisan/bug/coverage-aggregation-double…
drmoisan Sep 9, 2026
a9b4197
docs(epic): record the 815 fan-in and the first green integrated-tree…
drmoisan Sep 9, 2026
f5051f0
docs(817): capture pre-split baseline evidence
drmoisan Sep 9, 2026
bdd4c3e
test(817): split FolderPredictorTests.cs into 5 partial-class files
drmoisan Sep 9, 2026
468760a
build(817): wire the 4 new FolderPredictorTests split files into Util…
drmoisan Sep 9, 2026
f7b4da4
docs(817): record post-split non-vacuous test-count verification
drmoisan Sep 9, 2026
fb924fc
docs(817): sanitize absolute host paths from Phase 0 evidence artifacts
drmoisan Sep 9, 2026
2d854f7
docs(817): finalize FolderPredictorTests split - all AC checked, tool…
drmoisan Sep 9, 2026
cca4236
docs(817): check off all plan tasks and complete AC status summary
drmoisan Sep 9, 2026
89bdfe0
Merge pull request #830 from drmoisan/bug/utilitiescs-test-hygiene-re…
drmoisan Sep 9, 2026
8c683d4
docs(epic): record the 817 fan-in and the second green integrated-tre…
drmoisan Sep 9, 2026
564fefd
fix(821): guard the teardown callback and the cancel path at four sites
drmoisan Sep 9, 2026
f1c406f
docs(821): record the plan check-off state and post-commit status
drmoisan Sep 9, 2026
d636b0f
Merge pull request #831 from drmoisan/bug/qfchomecontroller-parentcle…
drmoisan Sep 9, 2026
63d487a
docs(epic): record the 821 fan-in and the third green integrated-tree…
drmoisan Sep 9, 2026
4317b3d
evidence(823): phase 0 baseline
drmoisan Sep 9, 2026
a434b69
test(823): add the R1 per-store fail-before regression test
drmoisan Sep 9, 2026
4049edb
fix(823): rescope the SMTP retry budget from per-controller to per-store
drmoisan Sep 9, 2026
b280dff
fix(823): reject null arguments to BreadcrumbPopupOwnerRegistry.Register
drmoisan Sep 9, 2026
0f7c353
docs(823): correct the stale line-count comment in BreadcrumbDropDown…
drmoisan Sep 9, 2026
403a1a1
docs(823): seed the R5 flake-watch observation log and point the test…
drmoisan Sep 9, 2026
be6e4ae
fix(823): quickfiler teardown review residuals
drmoisan Sep 9, 2026
553f874
Merge pull request #832 from drmoisan/bug/quickfiler-teardown-review-…
drmoisan Sep 9, 2026
582a06b
docs(epic): record the 823 fan-in and the fourth green integrated-tre…
drmoisan Sep 9, 2026
9a56dd0
fix(824): publish ILGlobals opcode tables from an explicit static con…
drmoisan Sep 9, 2026
53f1707
docs(824): record the closure artifact and the completed plan checklist
drmoisan Sep 9, 2026
970c4e8
docs(824): record the post-commit observation and the final plan chec…
drmoisan Sep 9, 2026
a9e53fc
docs(824): add the feature review audit artifacts
drmoisan Sep 9, 2026
96fd3dd
Merge pull request #833 from drmoisan/bug/ilglobals-loadopcodes-unsyn…
drmoisan Sep 9, 2026
8482cf2
docs(epic): record the 824 fan-in and the fifth green integrated-tree…
drmoisan Sep 9, 2026
4c607bd
fix(825): close the residual ETL deadline mechanics left by #811
drmoisan Sep 9, 2026
d4ad56b
docs(825): add the review handoff index and the P9-T4 gate record
drmoisan Sep 9, 2026
e738a7b
docs(825): add feature review artifacts and close the plan checklist
drmoisan Sep 9, 2026
049c142
Merge pull request #834 from drmoisan/bug/etl-deadline-mechanics-foll…
drmoisan Sep 9, 2026
dea7b49
docs(epic): close wave 0 with all seven features merged
drmoisan Sep 9, 2026
aff8285
docs(epic): fan in the agent memory wave 0 accumulated
drmoisan Sep 9, 2026
747e868
docs(epic): open wave 1 after durably confirming the 825 dependency
drmoisan Sep 9, 2026
f96d82f
fix(826): remove unrestored console-writer installs, route timeout di…
drmoisan Sep 9, 2026
077856c
docs(826): record the committed write-set gate and close the plan che…
drmoisan Sep 9, 2026
bdfe187
docs(826): add feature review artifacts for the console-out and banne…
drmoisan Sep 10, 2026
219804e
Merge pull request #835 from drmoisan/bug/console-out-aggressors-and-…
drmoisan Sep 10, 2026
5eaf33d
docs(epic): fan in the agent memory wave 1 accumulated
drmoisan Sep 10, 2026
86caef4
docs(epic): close wave 1 and record the delivered scope boundary
drmoisan Sep 10, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
84 changes: 44 additions & 40 deletions .claude/agent-memory/atomic-executor/MEMORY.md

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
---
name: cs1769-forces-reflection-for-outlook-returning-apis
description: A UtilitiesCS method returning Task<Outlook.X> cannot be awaited from UtilitiesCS.Test at all (CS1769, embedded interop type as generic argument) — a plan that says "call it on a mocked Explorer" is unimplementable as written and needs a reflective helper
metadata:
type: project
---

Any `UtilitiesCS` API whose return type is `Task<T>` where `T` is an Outlook interop type — for
example `OlTableExtensions.GetTableInViewAsync`, which returns `Task<Outlook.Table>` — **cannot be
awaited from `UtilitiesCS.Test`**. The build fails with:

error CS1769: Type 'Task<Table>' from assembly 'UtilitiesCS, ...' cannot be used across
assembly boundaries because it has a generic type argument that is an embedded interop type.

**Why:** both projects embed the Outlook interop types rather than referencing a shared PIA, so
`Outlook.Table` is a distinct type per assembly and cannot cross the boundary as a generic type
argument. This is the same CS1769 constraint that `DfDeedle.DefaultTableEtl` is declared over
`object` to avoid, and it is why the four existing `GetTableInViewAsync` binding sites in
`OlTableExtensions_Tests.cs` all go through the reflective `InvokeAsyncResult` helper rather than
calling the method directly. Reflection is *required*, not stylistic.

**How to apply:**
- Bind by name plus an explicit parameter-`Type[]`, invoke, cast the result to the **non-generic**
`Task`, `await` that, then read `task.GetType().GetProperty("Result").GetValue(task)`. The
non-generic `Task` and `object` both cross the boundary fine.
- `typeof(Outlook.Explorer)` in a `Type[]` is fine; only the *generic argument* position is
rejected.
- The explicit `Type[]` is a hidden coupling to the signature. A plan that adds a parameter to the
production method in a later phase silently breaks every reflective binding, including ones the
plan does not list — budget a micro-action to update them, the same way the plan already budgets
one for the direct call sites.
- Declare the array once as a `private static Type[] SignatureTypes => ...` in a new test file so a
future signature change is a one-place edit.

Encountered on issue #825 (2026-09-09): the plan's P2-T1 said the new test "calls
GetTableInViewAsync on a mocked Explorer", which does not compile; the fix was a local reflective
helper mirroring `InvokeAsyncResult`.

Related: [[project_test_file_name_vs_partial_class_name]], [[project_outlook_action_ambiguity]]
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
---
name: epic-child-branch-anchored-diff-lists-inherited-commits
description: On an epic child branch cut from the integration branch, `git diff <merge-base HEAD origin/main>` lists every sibling commit's paths, so footprint gates written against it are unsatisfiable
metadata:
type: project
---

A feature branch cut from an epic **integration** branch inherits every sibling feature's commits, so
`git merge-base HEAD origin/main` resolves below all of them. An anchored two-dot diff against that
base then lists the whole inherited set, not this feature's change.

Measured on issue #821 (`bug/...-821-exec`, 2026-09-09): merge base `6f08302a` = `origin/main` tip,
but **70 commits** and **184 paths** sat between it and HEAD. The anchored diff returned **192 paths**
against **38** authored ones. The inherited set included `UtilitiesCS.Test/UtilitiesCS.Test.csproj`,
entries under `.claude/agent-memory/`, and files named in the spec's own out-of-scope list.

**Why:** plans routinely write footprint gates as "zero `.csproj` in `git diff --name-only (git
merge-base HEAD origin/main)`" or "every path in that span belongs to the permitted set". On an epic
child branch both are **unsatisfiable regardless of what the executor does** — a sibling already put a
`.csproj` in the span. Plan #821 anticipated the mechanism but scoped it to four documents; the real
set was two orders of magnitude larger.

**How to apply:**
- Discriminate with `git diff --name-only HEAD` (authored, pre-commit) **plus** `git status
--porcelain --untracked-files=all` for untracked paths. That pair is the change the feature authored.
- Prove any offending inherited path is genuinely inherited, don't just assert it: `git log --oneline
<mb>..HEAD -- <path>` names the sibling commit, and `git diff --name-only HEAD -- <path>` returning
empty proves the worktree never touched it.
- Run the anchored span anyway and report it in full. Record the condition as *not met as literally
written*, with the discriminating evidence beside it. Do **not** silently substitute the narrower
span and call the gate passed, and do not widen the permitted-path list to swallow the inherited set.
- Beware `git log (git merge-base HEAD origin/main)..HEAD` from Bash-invoked pwsh: the `..HEAD` suffix
after a parenthesised expression does **not** concatenate and the command silently reports 0 commits.
Substitute the literal SHA. See [[project-pwsh-command-quoting-from-bash]].
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
---
name: fresh-worktree-needs-sdk-and-packages-config-restore
description: A fresh TaskMaster worktree needs .dotnet-sdk provisioning AND `/p:RestorePackagesConfig=true`; the plan-standard `dotnet tool restore` and `msbuild /t:Restore` both no-op or fail
metadata:
type: project
---

Two bootstrap steps that plans routinely omit, both required before any gate can run in a cold
TaskMaster worktree. Measured on issue #821, worktree `rr0908-821`, 2026-09-09.

**1. `dotnet tool restore` fails outright with no repo-local SDK.** `global.json` pins sdk `8.0.205`
with `rollForward: latestFeature` and search paths `.dotnet-sdk` then `$host$`. A fresh worktree has
no `.dotnet-sdk`, and the host had only `10.0.400`, which `latestFeature` on an `8.0.2xx` pin rejects.
`dotnet tool restore` exits `-2147450725` printing `global.json`'s own `errorMessage`. Fix: run
`./scripts/vscode/Install-RepoDotNetSdk.ps1` (~733 MB, ~1 min). It resolves its target from
`$PSScriptRoot/../..`, so invoking it by path in the target worktree is safe.

**2. `msbuild TaskMaster.sln /t:Restore /m` restores nothing.** It handles `PackageReference` only;
every project here is legacy `packages.config`. It exits 0 printing `Nothing to do. None of the
projects specified contain packages to restore.` while `packages/` stays absent —
`UtilitiesCS.csproj` alone carries **153** `..\packages\` references, so every later build would fail
on unresolvable `HintPath`/`Analyzer Include` rather than on a real diagnostic. Fix: add
`/p:RestorePackagesConfig=true`, which installed **172** packages.

**Why it matters for plan execution:** a plan may explicitly forbid provisioning ("do not provision a
repo-local .NET SDK: that is environment setup outside this plan's scope"). That instruction assumes a
usable SDK exists. When it does not, the plan is unexecutable at task 1 and the executor is past
preflight, so it cannot block — do the minimum needed and record it as a named deviation.

**How to apply:** both writes land only on gitignored or untracked-output paths — `.dotnet-sdk/` is
ignored at `.gitignore:350` (`.dotnet*/`, confirm with `git check-ignore -v .dotnet-sdk/x`) and
`packages/` is restore output — so neither widens an AC20-style footprint. Record each as an explicit
numbered deviation in the bootstrap artifact, quoting the failing command, its exit code and the
observation that proved the need, rather than quietly fixing the environment.
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
name: msbuild-log-has-two-absolute-path-leak-classes
description: A raw MSBuild file-logger log carries TWO distinct absolute host paths — the worktree root AND the main-checkout root via csc.exe /analyzerconfig: — so a worktree-root-only sanitisation leaves ~36 leaks per log
description: A raw MSBuild file-logger log carries FOUR absolute-host-path leak classes — worktree root, main-checkout root, MSBuildUserExtensionsPath and _DeploymentUrl — so even a two-root sanitisation leaves ~21 account-name leaks per log
metadata:
type: project
---
Expand All @@ -15,6 +15,21 @@ prefixes, not one:
emits two `/analyzerconfig:` arguments back to back for the same file: the main-checkout one
and the worktree-rooted one.

**Two further classes survive both root rewrites** (measured on issue #825, 2026-09-09, at
`Verbosity=detailed`): after rewriting both roots, 21 lines per log still carried `C:\Users\`, in
these forms:

3. **`MSBuildUserExtensionsPath`** — a property-reassignment line echoing
`C:\Users\<account>\AppData\Local\Microsoft\MSBuild` "expanded from the environment".
4. **`_DeploymentUrl`** — three property-reassignment lines echoing a OneDrive folder under the
user profile (a ClickOnce publish URL carried by the VSTO project).

Neither is under any repository root, so neither root substitution reaches it. A plan whose gate
demands a **zero** count of the token `C:\Users\` in the committed logs therefore cannot pass on a
two-root rewrite, however correct that rewrite is. Add a **third** pass mapping the user-profile
root (`C:\Users\<account>`) to `<user-profile-root>`, applied *after* the two root passes so it
only reaches residuals. Record it as a deviation if the plan's decision record names only two.

**Why:** when running inside a linked worktree, the main-checkout root is an *ancestor* of the
worktree root, so it is not itself prefixed by the worktree-root string and a worktree-root-only
substitution never matches it. Measured on issue #730 (2026-09-02): 36 `csc.exe` invocations per
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
---
name: noexecute-early-return-premise-hides-reachable-entry-point-tests
description: A plan claiming an entry-point block is unreachable because tests only use a -NoExecute early return is often false; verify by searching for calls that omit the switch before accepting an uncovered-by-construction argument.
metadata:
type: project
---

A plan premise of the form "the existing tests exercise this entry point only through its `-NoExecute`
early return, so no unit test can reach the block below it" must be verified before it is relied on.
In `scripts/vscode/Invoke-MSTestWithCoverage.ps1` it was **false**: six pre-existing tests call
`Invoke-MSTestWithCoverageMain` **without** `-NoExecute` and do reach the post-processing block, with
`ConvertTo-KoverageCoberturaXml` mocked.

**Why:** issue #815's plan decision D3 built two things on that premise — an argument that the one
added wiring line is "uncovered by construction", and an AC10 allowance letting the entry point's
missed LINE count rise by 1. Both were wrong in the safe direction (the line turned out covered;
missed stayed 10), but the premise also hid a real regression: the mocked document those six tests
supply is the minimal stub `<coverage line-rate="0.8" />`, which carries no `<packages>` node.
`Assert-CoberturaLineCoverageThreshold` tolerates it because it reads only the root attribute; any
new call that parses deeper throws, and the whole PoshQC test stage went red at P5-T6.

**How to apply:** before accepting an unreachability or uncovered-by-construction claim about an
entry-point block, run `git grep -n` for calls to the function and check which ones omit the guarding
switch. When adding a call into such a block, check what the existing mocks return: a stub that
satisfies the *previous* consumer can be structurally invalid for a new one. The right remedy is to
make the stub structurally realistic (here, adding an empty `<packages />`), not to relax the new
function's validation — that keeps every assertion exact and keeps fail-fast behaviour intact. Note
the collateral: the two test files needing the fixture fix were outside the spec's Write Set, and one
of them sits at 496 of 500 lines, so the edit had to be a same-line replacement with zero net lines.
Related: [[project-plan-checkoff-fixpoint-breaks-terminal-clean-tree-gate]].
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
---
name: pester5-helper-function-must-live-in-beforeall
description: A helper function defined at Pester 5 test-file scope is not resolvable from an It block; define it inside BeforeAll or every test using it fails CommandNotFoundException.
metadata:
type: project
---

In Pester 5, a `function` defined at the top level of a `*.Tests.ps1` file is **not** resolvable from
inside an `It` block. The test file is evaluated during the discovery pass into a session state the
run pass does not share, so the run pass raises `CommandNotFoundException: The term '<name>' is not
recognized`. Define the helper inside the file's `BeforeAll` block instead; `It` blocks run in a
child scope of the containing block, so a function defined there resolves.

**Why:** cost me one wasted red run on issue #815. The plan required a private differential helper in
the new test file; placed at file scope, the one test that called it failed with
`CommandNotFoundException` while the other six passed, which reads like a production defect and is
not one. Moving the function body unchanged into `BeforeAll` turned `PASSED=6 FAILED=1` into
`PASSED=7 FAILED=0`.

**How to apply:** when a Pester 5 test file needs a helper function, put it in `BeforeAll` from the
start. The same rule does not apply to `$script:`-scoped *variables*, which do survive from
`BeforeAll` into `It` — that is the established idiom in `tests/scripts/vscode/`. If a plan's task
text says the file "contains" the helper without saying where, `BeforeAll` is the only placement that
works, and moving it there is a mechanically necessary micro-action rather than a plan deviation.
Record the move in the pass-after artifact if it happens after a fail-before run was captured, since
it changes the delivered test file. See [[compile-red-needs-body-level-references]] for the analogous
C# case where placement decides whether a test can observe what it claims to.
2 changes: 2 additions & 0 deletions .claude/agent-memory/atomic-planner/MEMORY.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@

## Preflight revision seams (per-issue)

- [#826](project_826_factory_outside_try_reachability_seams.md) — a seam invoked OUTSIDE the `try` makes both catch bodies reachable; enumerate the seam's line vs the `try`'s, not the catch clauses
- [#815](project_815_coverage_aggregation_exposure_plan_seams.md) — `.//line` baseline already zero (needs a positive control); pinned nine-name allowlist zeroes the differential helper; test tree tighter than production; 500 lines legal, 501 not
- [#810 R1–R2](project_810_teardown_dropdown_residuals_plan_seams.md) — inherited paths must be a RULE not a list (executor writes agent-memory mid-run); never upper-bound a csharpier checked-file delta; `TokenSource` null before Cleanup too
- [#791](project_791_hc_deadline_cancel_teardown_plan_seams.md) — `QfcDatamodel` excluded from coverage; no shell var survives between tasks · [#781](project_781_excludefromcodecoverage_guard_plan_seams.md) — `[ExcludeFromCodeCoverage]` makes changed-line coverage unmeasurable
- [#736 R1–R5](project_736_efc_archiveroot_boundary_sink_plan_seams.md) — 485-line test file voids the Write Set; hardcoded floors; one shared `try`; name-vs-content gates; existence-only `*.log`
Expand Down
Loading
Loading