Every probe behind this layer was run on macOS. Nothing about Windows or Linux has been measured, and the code makes at least one choice that is wrong for Windows by convention.
What is known to be shaky
skills/01-cost/scripts/lib/sink.js resolves where figures are stored as:
process.env.AIDD_USER_CONFIG_DIR || path.join(process.env.HOME || os.homedir(), ".config", "aidd")
On Windows HOME is usually unset, so os.homedir() gives C:\Users\<name> and the figures land in C:\Users\<name>\.config\aidd. That works — and it is not where a Windows user, or anything else on a Windows machine, expects application data to live. %APPDATA% is.
What is unknown, which is the larger part
- The permission tightening.
0700 on directories, 0600 on files, plus an explicit chmod. The comment says "Windows ignores POSIX modes rather than erroring on them", which was read from documentation, never observed. What actually happens to the privacy of a journal on a Windows filesystem is unestablished.
- Every hook path. The five tools spawn the journal differently, and the commands are strings with paths in them. None of that has run on either platform.
- The git calls.
getRepoRoot shells out to git, and warnIfTracked runs git ls-files. Both assume a git on PATH behaving as it does here.
- The skill's own script search. It uses a
find invocation with ~-prefixed paths. That is a shell convention this repository's own tests never exercise off macOS.
Why it is worth a ticket rather than a fix
The fix for the first item is one line. The rest cannot be fixed without running them somewhere, and guessing at them would be the exact mistake this layer catalogues elsewhere: a claim written more confidently than its evidence.
Done when
- The figures are written where each platform expects them, and where they are written is stated per platform.
- The journal's privacy on Windows is established by observation, and if POSIX modes mean nothing there, that is written down rather than implied.
- One real session per tool that runs on the platform, on Windows and on Linux, journals and reports.
- Anything that cannot be made to work is declared, per platform, the way each tool's limits already are.
Bounds
This does not claim the layer is broken off macOS. It claims nobody knows, and that the documentation currently reads as though somebody does.
Every probe behind this layer was run on macOS. Nothing about Windows or Linux has been measured, and the code makes at least one choice that is wrong for Windows by convention.
What is known to be shaky
skills/01-cost/scripts/lib/sink.jsresolves where figures are stored as:On Windows
HOMEis usually unset, soos.homedir()givesC:\Users\<name>and the figures land inC:\Users\<name>\.config\aidd. That works — and it is not where a Windows user, or anything else on a Windows machine, expects application data to live.%APPDATA%is.What is unknown, which is the larger part
0700on directories,0600on files, plus an explicitchmod. The comment says "Windows ignores POSIX modes rather than erroring on them", which was read from documentation, never observed. What actually happens to the privacy of a journal on a Windows filesystem is unestablished.getRepoRootshells out togit, andwarnIfTrackedrunsgit ls-files. Both assume agiton PATH behaving as it does here.findinvocation with~-prefixed paths. That is a shell convention this repository's own tests never exercise off macOS.Why it is worth a ticket rather than a fix
The fix for the first item is one line. The rest cannot be fixed without running them somewhere, and guessing at them would be the exact mistake this layer catalogues elsewhere: a claim written more confidently than its evidence.
Done when
Bounds
This does not claim the layer is broken off macOS. It claims nobody knows, and that the documentation currently reads as though somebody does.